NeahNew/.next/static/chunks/app/courrier/page.js
2025-05-03 14:17:46 +02:00

2102 lines
3.8 MiB

/*
* 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["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["app/courrier/page"],{
/***/ "(app-pages-browser)/./app/courrier/page.tsx":
/*!*******************************!*\
!*** ./app/courrier/page.tsx ***!
\*******************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CourrierPage)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next-auth/react */ \"(app-pages-browser)/./node_modules/next-auth/react/index.js\");\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_auth_react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/inbox.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/send.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/archive.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/square-pen.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/octagon-alert.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/folder.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/menu.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-circle.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,AlertOctagon,Archive,Check,Edit,Folder,Inbox,Loader2,Menu,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\");\n/* harmony import */ var _components_ui_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/dialog */ \"(app-pages-browser)/./components/ui/dialog.tsx\");\n/* harmony import */ var _components_ui_alert__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/alert */ \"(app-pages-browser)/./components/ui/alert.tsx\");\n/* harmony import */ var _components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/ui/alert-dialog */ \"(app-pages-browser)/./components/ui/alert-dialog.tsx\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./components/ui/input.tsx\");\n/* harmony import */ var _components_ui_label__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/components/ui/label */ \"(app-pages-browser)/./components/ui/label.tsx\");\n/* harmony import */ var _components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/components/ui/use-toast */ \"(app-pages-browser)/./components/ui/use-toast.ts\");\n/* harmony import */ var _components_email_EmailSidebar__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/components/email/EmailSidebar */ \"(app-pages-browser)/./components/email/EmailSidebar.tsx\");\n/* harmony import */ var _components_email_EmailList__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/components/email/EmailList */ \"(app-pages-browser)/./components/email/EmailList.tsx\");\n/* harmony import */ var _components_email_EmailDetailView__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/components/email/EmailDetailView */ \"(app-pages-browser)/./components/email/EmailDetailView.tsx\");\n/* harmony import */ var _components_email_ComposeEmail__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/components/email/ComposeEmail */ \"(app-pages-browser)/./components/email/ComposeEmail.tsx\");\n/* harmony import */ var _components_email_EmailDialogs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/components/email/EmailDialogs */ \"(app-pages-browser)/./components/email/EmailDialogs.tsx\");\n/* harmony import */ var _hooks_use_email_state__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/hooks/use-email-state */ \"(app-pages-browser)/./hooks/use-email-state.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n// Import components\n\n\n\n\n\n// Import the custom hooks\n\n// Simplified version for this component\nfunction SimplifiedLoadingFix() {\n // In production, don't render anything\n if (false) {}\n // Simple debugging component\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed bottom-4 right-4 z-50 p-2 bg-white/80 shadow rounded-lg text-xs\",\n children: \"Debug: Email app loaded\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 65,\n columnNumber: 5\n }, this);\n}\n_c = SimplifiedLoadingFix;\n// Define a color palette for account circles\nconst colorPalette = [\n 'bg-blue-500',\n 'bg-green-500',\n 'bg-red-500',\n 'bg-yellow-500',\n 'bg-purple-500',\n 'bg-pink-500',\n 'bg-indigo-500',\n 'bg-teal-500',\n 'bg-orange-500',\n 'bg-cyan-500'\n];\n// Helper function for consistent logging\nconst logEmailOp = (operation, details, data)=>{\n const timestamp = new Date().toISOString().split('T')[1].substring(0, 12);\n console.log(\"[\".concat(timestamp, \"][EMAIL-APP][\").concat(operation, \"] \").concat(details));\n if (data) {\n console.log(\"[\".concat(timestamp, \"][EMAIL-APP][DATA]\"), data);\n }\n};\nfunction CourrierPage() {\n var _session_user;\n _s();\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n const { data: session } = (0,next_auth_react__WEBPACK_IMPORTED_MODULE_3__.useSession)();\n // Replace useCourrier with useEmailState\n const { // State values\n accounts, selectedAccount, selectedFolders, currentFolder, emails, selectedEmail, selectedEmailIds, isLoading, error, page, totalPages, totalEmails, mailboxes, unreadCountMap, showFolders, // Actions\n loadEmails, handleEmailSelect, toggleEmailSelection, toggleSelectAll, markEmailAsRead, toggleStarred, changeFolder, deleteEmails, sendEmail, searchEmails, formatEmailForAction, setPage, setEmails, selectAccount, handleLoadMore } = (0,_hooks_use_email_state__WEBPACK_IMPORTED_MODULE_16__.useEmailState)();\n // UI state (keeping only what's still needed)\n const [showComposeModal, setShowComposeModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [composeType, setComposeType] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('new');\n const [showDeleteConfirm, setShowDeleteConfirm] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showLoginNeeded, setShowLoginNeeded] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [sidebarOpen, setSidebarOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [mobileSidebarOpen, setMobileSidebarOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [prefetchStarted, setPrefetchStarted] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showAddAccountForm, setShowAddAccountForm] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // Add state for modals/dialogs\n const [showEditModal, setShowEditModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showDeleteDialog, setShowDeleteDialog] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [accountToEdit, setAccountToEdit] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [accountToDelete, setAccountToDelete] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [newPassword, setNewPassword] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const [editLoading, setEditLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [deleteLoading, setDeleteLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [selectedColor, setSelectedColor] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n // Use the reducer-managed values directly instead of tracked separately\n const [searchQuery, setSearchQuery] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const [unreadCount, setUnreadCount] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n // Calculate unread count for the selected folder\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"CourrierPage.useEffect\": ()=>{\n if (selectedAccount && selectedAccount.id !== 'loading-account') {\n const folderCounts = unreadCountMap[selectedAccount.id.toString()];\n if (folderCounts) {\n setUnreadCount(folderCounts[currentFolder] || 0);\n } else {\n setUnreadCount(0);\n }\n } else {\n // For 'loading-account', sum up all unread counts for the current folder\n let totalUnread = 0;\n Object.values(unreadCountMap).forEach({\n \"CourrierPage.useEffect\": (folderCounts)=>{\n totalUnread += folderCounts[currentFolder] || 0;\n }\n }[\"CourrierPage.useEffect\"]);\n setUnreadCount(totalUnread);\n }\n }\n }[\"CourrierPage.useEffect\"], [\n unreadCountMap,\n selectedAccount,\n currentFolder\n ]);\n // Initialize session and start prefetching\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"CourrierPage.useEffect\": ()=>{\n var _session_user;\n // Flag to prevent multiple initialization attempts\n let isMounted = true;\n let retryCount = 0;\n const MAX_RETRIES = 3;\n const RETRY_DELAY = 1000; // 1 second\n const initSession = {\n \"CourrierPage.useEffect.initSession\": async ()=>{\n try {\n var _data_allAccounts;\n if (!isMounted) return;\n logEmailOp('SESSION', 'Initializing email session');\n setLoading(true);\n // First check if Redis is ready before making API calls\n const redisStatus = await fetch('/api/redis/status').then({\n \"CourrierPage.useEffect.initSession\": (res)=>res.json()\n }[\"CourrierPage.useEffect.initSession\"]).catch({\n \"CourrierPage.useEffect.initSession\": ()=>({\n ready: false\n })\n }[\"CourrierPage.useEffect.initSession\"]);\n if (!isMounted) return;\n // Call the session API to check email credentials and start prefetching\n logEmailOp('SESSION', 'Fetching session data from API');\n const response = await fetch('/api/courrier/session', {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n // Handle 401 Unauthorized with retry logic\n if (response.status === 401) {\n if (retryCount < MAX_RETRIES) {\n retryCount++;\n console.log(\"Session request failed (attempt \".concat(retryCount, \"/\").concat(MAX_RETRIES, \"), retrying in \").concat(RETRY_DELAY, \"ms...\"));\n await new Promise({\n \"CourrierPage.useEffect.initSession\": (resolve)=>setTimeout(resolve, RETRY_DELAY)\n }[\"CourrierPage.useEffect.initSession\"]);\n return initSession();\n } else {\n console.error('Max retries reached for session request');\n return;\n }\n }\n if (!response.ok) {\n throw new Error(\"Session request failed with status \".concat(response.status));\n }\n const data = await response.json();\n // Log session response\n console.log('[DEBUG] Session API response details:', {\n authenticated: data.authenticated,\n hasEmailCredentials: data.hasEmailCredentials,\n accountsCount: ((_data_allAccounts = data.allAccounts) === null || _data_allAccounts === void 0 ? void 0 : _data_allAccounts.length) || 0\n });\n // Process accounts if authenticated\n if (data.authenticated && data.hasEmailCredentials) {\n setPrefetchStarted(Boolean(data.prefetchStarted));\n let updatedAccounts = [];\n // Process multiple accounts\n if (data.allAccounts && Array.isArray(data.allAccounts) && data.allAccounts.length > 0) {\n console.log('[DEBUG] Processing multiple accounts:', data.allAccounts.length);\n data.allAccounts.forEach({\n \"CourrierPage.useEffect.initSession\": (account)=>{\n // Use exact folders from IMAP\n const accountFolders = account.folders && Array.isArray(account.folders) ? account.folders : [];\n // Ensure folder names have account prefix\n const validFolders = accountFolders.map({\n \"CourrierPage.useEffect.initSession.validFolders\": (folder)=>{\n if (!folder.includes(':')) {\n return \"\".concat(account.id, \":\").concat(folder);\n }\n return folder;\n }\n }[\"CourrierPage.useEffect.initSession.validFolders\"]);\n updatedAccounts.push({\n id: account.id,\n name: account.display_name || account.email,\n email: account.email,\n color: account.color || colorPalette[updatedAccounts.length % colorPalette.length],\n folders: validFolders\n });\n }\n }[\"CourrierPage.useEffect.initSession\"]);\n console.log('[DEBUG] Constructed accounts:', updatedAccounts);\n } else {\n // Fallback to single account if allAccounts is not available\n const folderList = data.mailboxes && data.mailboxes.length > 0 ? data.mailboxes : [];\n updatedAccounts.push({\n id: 'default-account',\n name: data.displayName || data.email,\n email: data.email,\n color: colorPalette[0],\n folders: folderList\n });\n console.log('[DEBUG] Constructed single fallback account:', updatedAccounts[0]);\n }\n // Update accounts state using our reducer actions\n // First, set the accounts\n setEmails([]); // Clear any existing emails first\n // Log current state for debugging\n console.log('[DEBUG] Current state before setting accounts:', {\n accounts: (accounts === null || accounts === void 0 ? void 0 : accounts.length) || 0,\n selectedAccount: (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.id) || 'none',\n currentFolder: currentFolder || 'none'\n });\n // Use our reducer actions instead of setState\n setAccounts(updatedAccounts);\n // Auto-select the first account if available\n if (updatedAccounts.length > 0) {\n const firstAccount = updatedAccounts[0];\n console.log('[DEBUG] Auto-selecting first account:', firstAccount);\n // Use our new selectAccount function which handles state atomically\n // Add a slight delay to ensure the accounts are set first\n setTimeout({\n \"CourrierPage.useEffect.initSession\": ()=>{\n console.log('[DEBUG] Now calling selectAccount');\n selectAccount(firstAccount);\n }\n }[\"CourrierPage.useEffect.initSession\"], 100);\n }\n } else {\n // User is authenticated but doesn't have email credentials\n setShowLoginNeeded(true);\n }\n } catch (error) {\n console.error('Error initializing session:', error);\n } finally{\n if (isMounted) {\n setLoading(false);\n }\n }\n }\n }[\"CourrierPage.useEffect.initSession\"];\n if (session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id) {\n initSession();\n }\n return ({\n \"CourrierPage.useEffect\": ()=>{\n isMounted = false;\n }\n })[\"CourrierPage.useEffect\"];\n }\n }[\"CourrierPage.useEffect\"], [\n session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id,\n setEmails,\n selectAccount\n ]);\n // Helper to get folder icons\n const getFolderIcon = (folder)=>{\n const folderLower = folder.toLowerCase();\n if (folderLower.includes('inbox')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 382,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('sent')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 384,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('trash')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 386,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('archive')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 388,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('draft')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_21__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 390,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('spam') || folderLower.includes('junk')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 392,\n columnNumber: 14\n }, this);\n } else {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_23__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 394,\n columnNumber: 14\n }, this);\n }\n };\n // Helper to format folder names\n const formatFolderName = (folder)=>{\n // Extract base folder name if prefixed\n const baseFolderName = folder.includes(':') ? folder.split(':')[1] : folder;\n return baseFolderName.charAt(0).toUpperCase() + baseFolderName.slice(1).toLowerCase();\n };\n // Handle actions - replace with useReducer-based functions\n const handleMailboxChange = (folder, accountId)=>{\n // Simply call our new changeFolder function which handles everything atomically\n setLoading(true);\n changeFolder(folder, accountId).finally(()=>{\n setLoading(false);\n });\n };\n // Handle account selection - replace with reducer-based function\n const handleAccountSelect = (account)=>{\n var _account_folders;\n // Add extensive debugging to track the process\n console.log('[DEBUG] handleAccountSelect called with account:', {\n id: account.id,\n email: account.email,\n folders: (_account_folders = account.folders) === null || _account_folders === void 0 ? void 0 : _account_folders.length\n });\n // Skip if no valid account provided\n if (!account || !account.id) {\n console.error('Invalid account passed to handleAccountSelect');\n return;\n }\n // Skip if this is already the selected account\n if ((selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.id) === account.id) {\n console.log('[DEBUG] Account already selected, skipping');\n return;\n }\n // Simply call our new selectAccount function which handles everything atomically\n setLoading(true);\n // Clear all existing selections first\n console.log('[DEBUG] Now selecting account through reducer action');\n selectAccount(account);\n // Log what happened\n console.log('[DEBUG] Account selection completed');\n // Give some time for the UI to update\n setTimeout(()=>setLoading(false), 300);\n };\n // Email actions\n const handleReply = ()=>{\n if (!selectedEmail) return;\n setComposeType('reply');\n setShowComposeModal(true);\n };\n const handleReplyAll = ()=>{\n if (!selectedEmail) return;\n setComposeType('reply-all');\n setShowComposeModal(true);\n };\n const handleForward = ()=>{\n if (!selectedEmail) return;\n setComposeType('forward');\n setShowComposeModal(true);\n };\n const handleComposeNew = ()=>{\n setComposeType('new');\n setShowComposeModal(true);\n };\n // Handle bulk actions\n const handleBulkAction = async (action)=>{\n if (selectedEmailIds.length === 0) return;\n switch(action){\n case 'delete':\n setShowDeleteConfirm(true);\n break;\n case 'mark-read':\n // Mark all selected emails as read\n for (const emailId of selectedEmailIds){\n await markEmailAsRead(emailId, true);\n }\n break;\n case 'mark-unread':\n // Mark all selected emails as unread\n for (const emailId of selectedEmailIds){\n await markEmailAsRead(emailId, false);\n }\n break;\n case 'archive':\n break;\n }\n };\n const handleSendEmail = async (emailData)=>{\n try {\n const result = await sendEmail(emailData);\n if (!result.success) {\n throw new Error(result.error);\n }\n return result;\n } catch (error) {\n throw error;\n }\n };\n const handleDeleteConfirm = async ()=>{\n await deleteEmails(selectedEmailIds);\n setShowDeleteConfirm(false);\n // Clear selected emails after deletion\n // Using setEmails will reset the selection state\n setLoading(true);\n setPage(1);\n loadEmails(1, 20, false).finally(()=>{\n // Selection will be cleared by loading new emails\n setLoading(false);\n });\n };\n const handleGoToLogin = ()=>{\n router.push('/courrier/login');\n };\n // Update the accounts from state - fix type issues\n const setAccounts = (newAccounts)=>{\n console.log('[DEBUG] Setting accounts:', newAccounts);\n // In the previous implementation, we'd dispatch an action\n // But since we don't have direct access to the reducer's dispatch function,\n // we need to use the exported actions from our hook\n // This dispatch function should be made available by our hook\n const windowWithDispatch = window;\n if (typeof windowWithDispatch.dispatchEmailAction === 'function') {\n // Use the global dispatch function if available\n windowWithDispatch.dispatchEmailAction({\n type: 'SET_ACCOUNTS',\n payload: newAccounts\n });\n } else {\n console.error('Cannot dispatch SET_ACCOUNTS action - no dispatch function available');\n // Fallback: Try to directly modify the accounts array if we have access\n // This isn't ideal but ensures backward compatibility during transition\n console.log('[DEBUG] Using fallback method to update accounts');\n // Our reducer should expose this action\n const useEmailStateDispatch = windowWithDispatch.__emailStateDispatch;\n if (typeof useEmailStateDispatch === 'function') {\n useEmailStateDispatch({\n type: 'SET_ACCOUNTS',\n payload: newAccounts\n });\n } else {\n console.error('No fallback dispatch method available either');\n }\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SimplifiedLoadingFix, {}, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 571,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"w-full h-screen bg-black\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full h-full px-4 pt-12 pb-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex h-full bg-carnet-bg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_email_EmailSidebar__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n accounts: accounts,\n selectedAccount: selectedAccount,\n selectedFolders: selectedFolders,\n currentFolder: currentFolder,\n loading: loading || isLoading,\n unreadCount: unreadCountMap,\n showAddAccountForm: showAddAccountForm,\n onFolderChange: handleMailboxChange,\n onRefresh: ()=>{\n setLoading(true);\n setPage(1);\n loadEmails(page, 10, false).finally(()=>setLoading(false));\n },\n onComposeNew: handleComposeNew,\n onAccountSelect: handleAccountSelect,\n onShowAddAccountForm: setShowAddAccountForm,\n onAddAccount: async (formData)=>{\n var _formData_get, _formData_get1, _formData_get2, _formData_get3, _formData_get4, _formData_get5, _formData_get6, _formData_get7;\n setLoading(true);\n console.log('[DEBUG] Add account form submission:', formData);\n // Pull values from form with proper type handling\n const formValues = {\n email: ((_formData_get = formData.get('email')) === null || _formData_get === void 0 ? void 0 : _formData_get.toString()) || '',\n password: ((_formData_get1 = formData.get('password')) === null || _formData_get1 === void 0 ? void 0 : _formData_get1.toString()) || '',\n host: ((_formData_get2 = formData.get('host')) === null || _formData_get2 === void 0 ? void 0 : _formData_get2.toString()) || '',\n port: parseInt(((_formData_get3 = formData.get('port')) === null || _formData_get3 === void 0 ? void 0 : _formData_get3.toString()) || '993'),\n secure: formData.get('secure') === 'on',\n display_name: ((_formData_get4 = formData.get('display_name')) === null || _formData_get4 === void 0 ? void 0 : _formData_get4.toString()) || '',\n smtp_host: ((_formData_get5 = formData.get('smtp_host')) === null || _formData_get5 === void 0 ? void 0 : _formData_get5.toString()) || '',\n smtp_port: ((_formData_get6 = formData.get('smtp_port')) === null || _formData_get6 === void 0 ? void 0 : _formData_get6.toString()) ? parseInt(((_formData_get7 = formData.get('smtp_port')) === null || _formData_get7 === void 0 ? void 0 : _formData_get7.toString()) || '587') : undefined,\n smtp_secure: formData.get('smtp_secure') === 'on'\n };\n // If display_name is empty, use email\n if (!formValues.display_name) {\n formValues.display_name = formValues.email;\n }\n try {\n // First test the connection\n const testResponse = await fetch('/api/courrier/test-connection', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n email: formValues.email,\n password: formValues.password,\n host: formValues.host,\n port: formValues.port,\n secure: formValues.secure\n })\n });\n const testResult = await testResponse.json();\n if (!testResponse.ok) {\n throw new Error(testResult.error || 'Connection test failed');\n }\n console.log('Connection test successful:', testResult);\n // Only declare realAccounts once before using for color assignment\n const realAccounts = accounts.filter((a)=>a.id !== 'loading-account');\n const saveResponse = await fetch('/api/courrier/account', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(formValues)\n });\n const saveResult = await saveResponse.json();\n if (!saveResponse.ok) {\n throw new Error(saveResult.error || 'Failed to add account');\n }\n const realAccount = saveResult.account;\n realAccount.color = colorPalette[realAccounts.length % colorPalette.length];\n realAccount.folders = testResult.details.sampleFolders || [\n 'INBOX',\n 'Sent',\n 'Drafts',\n 'Trash'\n ];\n setAccounts([\n ...accounts,\n realAccount\n ]);\n setShowAddAccountForm(false);\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: \"Account added successfully\",\n description: \"Your email account \".concat(formValues.email, \" has been added.\"),\n duration: 5000\n });\n } catch (error) {\n console.error('Error adding account:', error);\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: \"Failed to add account\",\n description: error instanceof Error ? error.message : 'Unknown error',\n variant: \"destructive\",\n duration: 5000\n });\n } finally{\n setLoading(false);\n }\n },\n onEditAccount: async (account)=>{\n try {\n // Get the latest account data from accounts array\n const updatedAccount = accounts.find((a)=>a.id === account.id);\n if (updatedAccount) {\n setAccountToEdit(updatedAccount);\n setSelectedColor(updatedAccount.color || '');\n setShowEditModal(true);\n } else {\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: \"Error\",\n description: \"Could not find account data\",\n variant: \"destructive\",\n duration: 3000\n });\n }\n } catch (error) {\n console.error(\"Error preparing account edit:\", error);\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: \"Error\",\n description: \"Failed to load account settings\",\n variant: \"destructive\",\n duration: 3000\n });\n }\n },\n onDeleteAccount: (account)=>{\n setAccountToDelete(account);\n setShowDeleteDialog(true);\n },\n onSelectEmail: (emailId, accountId, folder)=>{\n if (typeof emailId === 'string') {\n handleEmailSelect(emailId, accountId || '', folder || currentFolder);\n }\n },\n ...{}\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 578,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-80 flex flex-col border-r border-gray-100 overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-2 border-b border-gray-100 bg-white flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_7__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"md:hidden h-9 w-9\",\n onClick: ()=>setMobileSidebarOpen(!mobileSidebarOpen),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n className: \"h-5 w-5 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 726,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 720,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n getFolderIcon(currentFolder),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"ml-2 font-medium text-gray-700\",\n children: [\n (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.email) ? \"\".concat(selectedAccount.email, \": \") : '',\n formatFolderName(currentFolder.includes(':') ? currentFolder.split(':')[1] : currentFolder)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 733,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 730,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 729,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 719,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-hidden bg-white\",\n children: isLoading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_25__[\"default\"], {\n className: \"h-8 w-8 text-blue-500 animate-spin mb-2\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 748,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-500\",\n children: \"Loading emails...\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 749,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 747,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 746,\n columnNumber: 19\n }, this) : error ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-md p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert__WEBPACK_IMPORTED_MODULE_5__.Alert, {\n variant: \"destructive\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_26__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 756,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert__WEBPACK_IMPORTED_MODULE_5__.AlertTitle, {\n children: \"Error\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 757,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert__WEBPACK_IMPORTED_MODULE_5__.AlertDescription, {\n children: error\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 758,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 755,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 754,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 753,\n columnNumber: 19\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full overflow-hidden flex flex-col\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto\",\n onScroll: (e)=>{\n const target = e.currentTarget;\n const { scrollTop, scrollHeight, clientHeight } = target;\n const distanceToBottom = scrollHeight - scrollTop - clientHeight;\n const scrollPercentage = (scrollTop + clientHeight) / scrollHeight;\n // Store last scroll position to detect direction\n const lastScrollTop = target.dataset.lastScrollTop ? parseInt(target.dataset.lastScrollTop) : 0;\n const scrollingDown = scrollTop > lastScrollTop;\n // Update last scroll position\n target.dataset.lastScrollTop = scrollTop.toString();\n // Prevent frequent log spam with a timestamp check\n const now = Date.now();\n const lastLog = parseInt(target.dataset.lastLogTime || '0');\n if (now - lastLog > 500) {\n console.log(\"[DEBUG-WRAPPER-SCROLL] Distance: \".concat(distanceToBottom, \"px, %: \").concat(Math.round(scrollPercentage * 100), \"%, direction: \").concat(scrollingDown ? 'down' : 'up', \", more: \").concat(page < totalPages, \", loading: \").concat(isLoading));\n target.dataset.lastLogTime = now.toString();\n }\n // Check throttle to prevent multiple rapid triggers\n const lastTrigger = parseInt(target.dataset.lastTriggerTime || '0');\n const throttleTime = 1000; // 1 second throttle\n // CRITICAL FIX: Only trigger loading more emails when:\n // 1. User is scrolling DOWN (not up)\n // 2. User is EXACTLY at the bottom (distance < 5px)\n // 3. Not currently loading\n // 4. More emails exist to load\n // 5. Not throttled (hasn't triggered in last second)\n if (scrollingDown && distanceToBottom < 5 && // Much stricter - truly at bottom\n !isLoading && page < totalPages && now - lastTrigger > throttleTime) {\n console.log(\"[DEBUG-WRAPPER-TRIGGER] *** AT BOTTOM *** Loading more emails\");\n target.dataset.lastTriggerTime = now.toString();\n handleLoadMore();\n }\n },\n children: emails.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n className: \"h-12 w-12 text-gray-300 mx-auto mb-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 815,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-medium text-gray-700\",\n children: \"No emails found\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 816,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-500 mt-1\",\n children: searchQuery ? 'No results found for \"'.concat(searchQuery, '\"') : \"Your \".concat(currentFolder.toLowerCase(), \" is empty\")\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 817,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 814,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 813,\n columnNumber: 25\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_email_EmailList__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n emails: emails,\n selectedEmailIds: selectedEmailIds,\n selectedEmail: selectedEmail,\n onSelectEmail: (emailId, emailAccountId, emailFolder)=>{\n // Always use the email's own accountId and folder if available\n handleEmailSelect(emailId, emailAccountId || (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.id) || '', emailFolder || currentFolder);\n },\n onToggleSelect: toggleEmailSelection,\n onToggleSelectAll: toggleSelectAll,\n onToggleStarred: toggleStarred,\n onLoadMore: handleLoadMore,\n hasMoreEmails: page < totalPages,\n currentFolder: currentFolder,\n isLoading: isLoading,\n totalEmails: emails.length,\n onBulkAction: handleBulkAction\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 825,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 767,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 765,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 744,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 717,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 flex flex-col overflow-hidden\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-hidden bg-white\",\n children: selectedEmail ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_email_EmailDetailView__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n email: selectedEmail,\n onBack: ()=>{\n handleEmailSelect('', '', '');\n // Ensure sidebar stays visible\n setSidebarOpen(true);\n },\n onReply: handleReply,\n onReplyAll: handleReplyAll,\n onForward: handleForward,\n onToggleStar: ()=>toggleStarred(selectedEmail.id)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 859,\n columnNumber: 19\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center text-muted-foreground\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"Select an email to view or\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 874,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"text-primary mt-2 hover:underline\",\n onClick: ()=>{\n setComposeType('new');\n setShowComposeModal(true);\n },\n children: \"Compose a new message\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 875,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 873,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 872,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 857,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 855,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 576,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 575,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 574,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_email_EmailDialogs__WEBPACK_IMPORTED_MODULE_15__.DeleteConfirmDialog, {\n show: showDeleteConfirm,\n selectedCount: selectedEmailIds.length,\n onConfirm: handleDeleteConfirm,\n onCancel: ()=>setShowDeleteConfirm(false)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 894,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_4__.Dialog, {\n open: showComposeModal,\n onOpenChange: (open)=>!open && setShowComposeModal(false),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_4__.DialogContent, {\n className: \"sm:max-w-[800px] p-0 h-[80vh]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_4__.DialogTitle, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"sr-only\",\n children: \"New Message\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 905,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 904,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_email_ComposeEmail__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n type: composeType,\n initialEmail: composeType !== 'new' ? selectedEmail : undefined,\n onSend: async (emailData)=>{\n try {\n const result = await sendEmail(emailData);\n return;\n } catch (error) {\n console.error('Error sending email:', error);\n throw error;\n }\n },\n onClose: ()=>setShowComposeModal(false),\n accounts: accounts\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 907,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 903,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 902,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_4__.Dialog, {\n open: showEditModal,\n onOpenChange: (open)=>{\n if (!open) {\n setShowEditModal(false);\n setEditLoading(false);\n setAccountToEdit(null);\n setNewPassword('');\n setSelectedColor('');\n window.location.reload();\n }\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_4__.DialogContent, {\n className: \"sm:max-w-[500px] bg-white text-gray-800\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dialog__WEBPACK_IMPORTED_MODULE_4__.DialogTitle, {\n className: \"text-gray-800\",\n children: \"Edit Account Settings\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 937,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: async (e)=>{\n e.preventDefault();\n if (!accountToEdit) return;\n setEditLoading(true);\n try {\n const formElement = e.target;\n const displayName = formElement.querySelector('#display-name').value;\n const color = selectedColor;\n // If password is changed, test the connection first\n if (newPassword) {\n try {\n // First get the account's connection details\n const accountDetailsRes = await fetch(\"/api/courrier/account-details?accountId=\".concat(accountToEdit.id));\n if (!accountDetailsRes.ok) {\n throw new Error('Failed to fetch account connection details');\n }\n const accountDetails = await accountDetailsRes.json();\n // Test connection with new password before saving\n const testResponse = await fetch('/api/courrier/test-connection', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n email: accountToEdit.email,\n password: newPassword,\n // Use the account's connection details from the API\n host: accountDetails.host,\n port: accountDetails.port || 993,\n secure: accountDetails.secure || true\n })\n });\n const testResult = await testResponse.json();\n if (!testResponse.ok) {\n throw new Error(testResult.error || 'Connection test failed with new password');\n }\n console.log('Connection test successful with new password');\n } catch (error) {\n console.error('Error testing connection:', error);\n throw new Error(\"Password test failed: \".concat(error instanceof Error ? error.message : 'Unknown error'));\n }\n }\n // Continue with the update if test passed or no password change\n const res = await fetch('/api/courrier/account', {\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n accountId: accountToEdit.id,\n newPassword: newPassword || undefined,\n display_name: displayName,\n color: color\n })\n });\n const data = await res.json();\n if (!res.ok) throw new Error(data.error || 'Failed to update account settings');\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: 'Account updated',\n description: 'Account settings updated successfully.'\n });\n setShowEditModal(false);\n setNewPassword('');\n // Update the local account data\n setAccounts(accounts.map((account)=>account.id === accountToEdit.id ? {\n ...account,\n name: displayName,\n color: color\n } : account));\n // Clear accountToEdit to ensure fresh data on next edit\n setAccountToEdit(null);\n // Force a page refresh to reset all UI states\n window.location.reload();\n } catch (err) {\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: 'Error',\n description: err instanceof Error ? err.message : 'Failed to update account settings',\n variant: 'destructive'\n });\n } finally{\n setEditLoading(false);\n }\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n htmlFor: \"display-name\",\n className: \"text-gray-800\",\n children: \"Account Name\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1019,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_8__.Input, {\n id: \"display-name\",\n type: \"text\",\n defaultValue: accountToEdit === null || accountToEdit === void 0 ? void 0 : accountToEdit.name,\n className: \"mt-1 bg-white text-gray-800\",\n disabled: editLoading\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1020,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1018,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n htmlFor: \"new-password\",\n className: \"text-gray-800\",\n children: \"New Password (optional)\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1030,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_8__.Input, {\n id: \"new-password\",\n type: \"password\",\n value: newPassword,\n onChange: (e)=>setNewPassword(e.target.value),\n className: \"mt-1 bg-white text-gray-800\",\n placeholder: \"Leave blank to keep current password\",\n disabled: editLoading\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1031,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1029,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_9__.Label, {\n className: \"block mb-2 text-gray-800\",\n children: \"Account Color\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1043,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-5 gap-2\",\n children: colorPalette.map((color, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n id: \"color-\".concat(index),\n name: \"color\",\n value: color,\n checked: selectedColor === color,\n onChange: ()=>setSelectedColor(color),\n className: \"sr-only\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1047,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: \"color-\".concat(index),\n className: \"w-8 h-8 rounded-full cursor-pointer flex items-center justify-center \".concat(color, \" hover:ring-2 hover:ring-blue-300 transition-all\"),\n style: {\n boxShadow: selectedColor === color ? '0 0 0 2px white, 0 0 0 4px #3b82f6' : 'none'\n },\n onClick: ()=>setSelectedColor(color),\n children: selectedColor === color && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_27__[\"default\"], {\n className: \"h-4 w-4 text-white\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1063,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1056,\n columnNumber: 21\n }, this)\n ]\n }, index, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1046,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1044,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1042,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-end gap-2 mt-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_7__.Button, {\n type: \"button\",\n className: \"bg-red-500 hover:bg-red-600 text-white\",\n onClick: ()=>{\n setShowEditModal(false);\n window.location.reload();\n },\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1072,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_7__.Button, {\n type: \"submit\",\n className: \"bg-blue-500 hover:bg-blue-600 text-white\",\n disabled: editLoading,\n children: [\n editLoading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_AlertOctagon_Archive_Check_Edit_Folder_Inbox_Loader2_Menu_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_25__[\"default\"], {\n className: \"h-4 w-4 animate-spin mr-2\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1087,\n columnNumber: 32\n }, this) : null,\n \"Save\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1082,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1071,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 938,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 936,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 926,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialog, {\n open: showDeleteDialog,\n onOpenChange: (open)=>{\n if (!open) setShowDeleteDialog(false);\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialogContent, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialogHeader, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialogTitle, {\n children: \"Delete Account\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1099,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialogDescription, {\n children: \"Are you sure you want to delete this account? This action cannot be undone.\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1100,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1098,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialogFooter, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialogCancel, {\n onClick: ()=>setShowDeleteDialog(false),\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1105,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_6__.AlertDialogAction, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_7__.Button, {\n variant: \"destructive\",\n disabled: deleteLoading,\n onClick: async ()=>{\n if (!accountToDelete) return;\n setDeleteLoading(true);\n try {\n const res = await fetch(\"/api/courrier/account?accountId=\".concat(accountToDelete.id), {\n method: 'DELETE'\n });\n const data = await res.json();\n if (!res.ok) throw new Error(data.error || 'Failed to delete account');\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: 'Account deleted',\n description: 'The account was deleted successfully.'\n });\n setShowDeleteDialog(false);\n window.location.reload();\n } catch (err) {\n (0,_components_ui_use_toast__WEBPACK_IMPORTED_MODULE_10__.toast)({\n title: 'Error',\n description: err instanceof Error ? err.message : 'Failed to delete account',\n variant: 'destructive'\n });\n } finally{\n setDeleteLoading(false);\n }\n },\n children: \"Delete\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1107,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1106,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1104,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1097,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/app/courrier/page.tsx\",\n lineNumber: 1096,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n}\n_s(CourrierPage, \"+EqHQB1AaVCMJ2wfeAySYgBnZNQ=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter,\n next_auth_react__WEBPACK_IMPORTED_MODULE_3__.useSession,\n _hooks_use_email_state__WEBPACK_IMPORTED_MODULE_16__.useEmailState\n ];\n});\n_c1 = CourrierPage;\nvar _c, _c1;\n$RefreshReg$(_c, \"SimplifiedLoadingFix\");\n$RefreshReg$(_c1, \"CourrierPage\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9jb3Vycmllci9wYWdlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbUQ7QUFDUDtBQUNDO0FBUXZCO0FBQ3NEO0FBQ0E7QUFVdEM7QUFHVTtBQUNGO0FBR0E7QUFDSTtBQUdsRCxvQkFBb0I7QUFDdUM7QUFDTjtBQUVZO0FBQ047QUFDVztBQUV0RSwwQkFBMEI7QUFDOEI7QUFXeEQsd0NBQXdDO0FBQ3hDLFNBQVN3QztJQUNQLHVDQUF1QztJQUN2QyxJQUFJQyxLQUFxQyxFQUFFLEVBRTFDO0lBRUQsNkJBQTZCO0lBQzdCLHFCQUNFLDhEQUFDQztRQUFJQyxXQUFVO2tCQUF3RTs7Ozs7O0FBSTNGO0tBWlNIO0FBMERULDZDQUE2QztBQUM3QyxNQUFNSSxlQUFlO0lBQ25CO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFRCx5Q0FBeUM7QUFDekMsTUFBTUMsYUFBYSxDQUFDQyxXQUFtQkMsU0FBaUJDO0lBQ3RELE1BQU1DLFlBQVksSUFBSUMsT0FBT0MsV0FBVyxHQUFHQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQ0MsU0FBUyxDQUFDLEdBQUc7SUFDdEVDLFFBQVFDLEdBQUcsQ0FBQyxJQUE2QlQsT0FBekJHLFdBQVUsaUJBQTZCRixPQUFkRCxXQUFVLE1BQVksT0FBUkM7SUFDdkQsSUFBSUMsTUFBTTtRQUNSTSxRQUFRQyxHQUFHLENBQUMsSUFBYyxPQUFWTixXQUFVLHVCQUFxQkQ7SUFDakQ7QUFDRjtBQUVlLFNBQVNRO1FBNk9sQkM7O0lBNU9KLE1BQU1DLFNBQVN2RCwwREFBU0E7SUFDeEIsTUFBTSxFQUFFNkMsTUFBTVMsT0FBTyxFQUFFLEdBQUdyRCwyREFBVUE7SUFFcEMseUNBQXlDO0lBQ3pDLE1BQU0sRUFDSixlQUFlO0lBQ2Z1RCxRQUFRLEVBQ1JDLGVBQWUsRUFDZkMsZUFBZSxFQUNmQyxh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NENBQ3RCTyxpQkFBaUI7NENBQ2pCLElBQUk7Z0RBQ0YsTUFBTXNCLE1BQU0sTUFBTUYsTUFBTSxtQ0FBc0QsT0FBbkIzQixnQkFBZ0JjLEVBQUUsR0FBSTtvREFBRTJHLFFBQVE7Z0RBQVM7Z0RBQ3BHLE1BQU0xTCxPQUFPLE1BQU04RixJQUFJQyxJQUFJO2dEQUMzQixJQUFJLENBQUNELElBQUlXLEVBQUUsRUFBRSxNQUFNLElBQUlDLE1BQU0xRyxLQUFLbUIsS0FBSyxJQUFJO2dEQUMzQ2xDLGdFQUFLQSxDQUFDO29EQUFFcU4sT0FBTztvREFBbUJDLGFBQWE7Z0RBQXdDO2dEQUN2RnpJLG9CQUFvQjtnREFDcEJrRyxPQUFPaUcsUUFBUSxDQUFDQyxNQUFNOzRDQUN4QixFQUFFLE9BQU9TLEtBQUs7Z0RBQ1oxUixnRUFBS0EsQ0FBQztvREFBRXFOLE9BQU87b0RBQVNDLGFBQWFvRSxlQUFlakssUUFBUWlLLElBQUlsRSxPQUFPLEdBQUc7b0RBQTRCQyxTQUFTO2dEQUFjOzRDQUMvSCxTQUFVO2dEQUNSbEksaUJBQWlCOzRDQUNuQjt3Q0FDRjtrREFBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT2pCO0dBLzlCd0JoRTs7UUFDUHJELHNEQUFTQTtRQUNFQyx1REFBVUE7UUFxQ2hDbUMsa0VBQWFBOzs7TUF2Q0tpQiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9hcHAvY291cnJpZXIvcGFnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJ25leHQvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyB1c2VTZXNzaW9uIH0gZnJvbSAnbmV4dC1hdXRoL3JlYWN0JztcbmltcG9ydCB7IFxuICBNYWlsLCBMb2FkZXIyLCBBbGVydENpcmNsZSwgXG4gIE1vcmVWZXJ0aWNhbCwgU2V0dGluZ3MsIFBsdXMgYXMgUGx1c0ljb24sIFRyYXNoMiwgRWRpdCwgXG4gIEluYm94LCBTZW5kLCBTdGFyLCBUcmFzaCwgUGx1cywgQ2hldnJvbkxlZnQsIENoZXZyb25SaWdodCwgXG4gIFNlYXJjaCwgQ2hldnJvbkRvd24sIEZvbGRlciwgQ2hldnJvblVwLCBSZXBseSwgRm9yd2FyZCwgUmVwbHlBbGwsIFxuICBNb3JlSG9yaXpvbnRhbCwgRm9sZGVyT3BlbiwgWCwgUGFwZXJjbGlwLCBNZXNzYWdlU3F1YXJlLCBDb3B5LCBFeWVPZmYsIFxuICBBbGVydE9jdGFnb24sIEFyY2hpdmUsIE1lbnUsIENoZWNrXG59IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyBEaWFsb2csIERpYWxvZ0NvbnRlbnQsIERpYWxvZ1RpdGxlIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL2RpYWxvZyc7XG5pbXBvcnQgeyBBbGVydCwgQWxlcnREZXNjcmlwdGlvbiwgQWxlcnRUaXRsZSB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9hbGVydCc7XG5pbXBvcnQge1xuICBBbGVydERpYWxvZyxcbiAgQWxlcnREaWFsb2dBY3Rpb24sXG4gIEFsZXJ0RGlhbG9nQ2FuY2VsLFxuICBBbGVydERpYWxvZ0NvbnRlbnQsXG4gIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb24sXG4gIEFsZXJ0RGlhbG9nRm9vdGVyLFxuICBBbGVydERpYWxvZ0hlYWRlcixcbiAgQWxlcnREaWFsb2dUaXRsZSxcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9hbGVydC1kaWFsb2dcIjtcbmltcG9ydCB7IFNjcm9sbEFyZWEgfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvc2Nyb2xsLWFyZWEnO1xuaW1wb3J0IHsgQXZhdGFyLCBBdmF0YXJGYWxsYmFjayB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9hdmF0YXInO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL2J1dHRvbic7XG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9pbnB1dCc7XG5pbXBvcnQgeyBUYWJzLCBUYWJzTGlzdCwgVGFic1RyaWdnZXIsIFRhYnNDb250ZW50IH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL3RhYnMnO1xuaW1wb3J0IHsgQ2hlY2tib3ggfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvY2hlY2tib3gnO1xuaW1wb3J0IHsgTGFiZWwgfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvbGFiZWwnO1xuaW1wb3J0IHsgdG9hc3QgfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvdXNlLXRvYXN0JztcbmltcG9ydCB7IERyb3Bkb3duTWVudSwgRHJvcGRvd25NZW51VHJpZ2dlciwgRHJvcGRvd25NZW51Q29udGVudCwgRHJvcGRvd25NZW51SXRlbSB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9kcm9wZG93bi1tZW51JztcblxuLy8gSW1wb3J0IGNvbXBvbmVudHNcbmltcG9ydCBFbWFpbFNpZGViYXIgZnJvbSAnQC9jb21wb25lbnRzL2VtYWlsL0VtYWlsU2lkZWJhcic7XG5pbXBvcnQgRW1haWxMaXN0IGZyb20gJ0AvY29tcG9uZW50cy9lbWFpbC9FbWFpbExpc3QnO1xuaW1wb3J0IEVtYWlsU2lkZWJhckNvbnRlbnQgZnJvbSAnQC9jb21wb25lbnRzL2VtYWlsL0VtYWlsU2lkZWJhckNvbnRlbnQnO1xuaW1wb3J0IEVtYWlsRGV0YWlsVmlldyBmcm9tICdAL2NvbXBvbmVudHMvZW1haWwvRW1haWxEZXRhaWxWaWV3JztcbmltcG9ydCBDb21wb3NlRW1haWwgZnJvbSAnQC9jb21wb25lbnRzL2VtYWlsL0NvbXBvc2VFbWFpbCc7XG5pbXBvcnQgeyBEZWxldGVDb25maXJtRGlhbG9nIH0gZnJvbSAnQC9jb21wb25lbnRzL2VtYWlsL0VtYWlsRGlhbG9ncyc7XG5cbi8vIEltcG9ydCB0aGUgY3VzdG9tIGhvb2tzXG5pbXBvcnQgeyB1c2VFbWFpbFN0YXRlIH0gZnJvbSAnQC9ob29rcy91c2UtZW1haWwtc3RhdGUnO1xuXG4vLyBJbXBvcnQgdGhlIHByZWZldGNoaW5nIGZ1bmN0aW9uXG5pbXBvcnQgeyBwcmVmZXRjaEZvbGRlckVtYWlscyB9IGZyb20gJ0AvbGliL3NlcnZpY2VzL3ByZWZldGNoLXNlcnZpY2UnO1xuXG4vLyBJbXBvcnQgQWNjb3VudCB0eXBlIGZyb20gdGhlIHJlZHVjZXJcbmltcG9ydCB7IEFjY291bnQgfSBmcm9tICdAL2xpYi9yZWR1Y2Vycy9lbWFpbFJlZHVjZXInO1xuXG4vLyBBZGQgdGhlIG1pc3NpbmcgRW1haWxEYXRhIGltcG9ydCBmcm9tIHVzZS1jb3VycmllclxuaW1wb3J0IHsgRW1haWxEYXRhIH0gZnJvbSAnQC9ob29rcy91c2UtY291cnJpZXInO1xuXG4vLyBTaW1wbGlmaWVkIHZlcnNpb24gZm9yIHRoaXMgY29tcG9uZW50XG5mdW5jdGlvbiBTaW1wbGlmaWVkTG9hZGluZ0ZpeCgpIHtcbiAgLy8gSW4gcHJvZHVjdGlvbiwgZG9uJ3QgcmVuZGVyIGFueXRoaW5nXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgXG4gIC8vIFNpbXBsZSBkZWJ1Z2dpbmcgY29tcG9uZW50XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmaXhlZCBib3R0b20tNCByaWdodC00IHotNTAgcC0yIGJnLXdoaXRlLzgwIHNoYWRvdyByb3VuZGVkLWxnIHRleHQteHNcIj5cbiAgICAgIERlYnVnOiBFbWFpbCBhcHAgbG9hZGVkXG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmludGVyZmFjZSBFbWFpbFdpdGhGbGFncyB7XG4gIGlkOiBzdHJpbmc7XG4gIHJlYWQ/OiBib29sZWFuO1xuICBmbGFncz86IHtcbiAgICBzZWVuPzogYm9vbGVhbjtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIEVtYWlsTWVzc2FnZSB7XG4gIGlkOiBzdHJpbmc7XG4gIGZyb206IHsgbmFtZTogc3RyaW5nOyBhZGRyZXNzOiBzdHJpbmcgfVtdO1xuICB0bzogeyBuYW1lOiBzdHJpbmc7IGFkZHJlc3M6IHN0cmluZyB9W107XG4gIHN1YmplY3Q6IHN0cmluZztcbiAgZGF0ZTogRGF0ZTtcbiAgZmxhZ3M6IHtcbiAgICBzZWVuOiBib29sZWFuO1xuICAgIGZsYWdnZWQ6IGJvb2xlYW47XG4gICAgYW5zd2VyZWQ6IGJvb2xlYW47XG4gICAgZHJhZnQ6IGJvb2xlYW47XG4gICAgZGVsZXRlZDogYm9vbGVhbjtcbiAgfTtcbiAgc2l6ZTogbnVtYmVyO1xuICBoYXNBdHRhY2htZW50czogYm9vbGVhbjtcbiAgZm9sZGVyOiBzdHJpbmc7XG4gIGNvbnRlbnRGZXRjaGVkOiBib29sZWFuO1xuICBhY2NvdW50SWQ6IHN0cmluZztcbiAgY29udGVudDoge1xuICAgIHRleHQ6IHN0cmluZztcbiAgICBodG1sOiBzdHJpbmc7XG4gIH07XG59XG5cbmludGVyZmFjZSBBY2NvdW50RGF0YSB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG4gIGhvc3Q6IHN0cmluZztcbiAgcG9ydDogbnVtYmVyO1xuICBzZWN1cmU6IGJvb2xlYW47XG4gIGRpc3BsYXlfbmFtZTogc3RyaW5nO1xuICBzbXRwX2hvc3Q/OiBzdHJpbmc7XG4gIHNtdHBfcG9ydD86IG51bWJlcjtcbiAgc210cF9zZWN1cmU/OiBib29sZWFuO1xufVxuXG4vLyBEZWZpbmUgYSBjb2xvciBwYWxldHRlIGZvciBhY2NvdW50IGNpcmNsZXNcbmNvbnN0IGNvbG9yUGFsZXR0ZSA9IFtcbiAgJ2JnLWJsdWUtNTAwJyxcbiAgJ2JnLWdyZWVuLTUwMCcsXG4gICdiZy1yZWQtNTAwJyxcbiAgJ2JnLXllbGxvdy01MDAnLFxuICAnYmctcHVycGxlLTUwMCcsXG4gICdiZy1waW5rLTUwMCcsXG4gICdiZy1pbmRpZ28tNTAwJyxcbiAgJ2JnLXRlYWwtNTAwJyxcbiAgJ2JnLW9yYW5nZS01MDAnLFxuICAnYmctY3lhbi01MDAnLFxuXTtcblxuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBjb25zaXN0ZW50IGxvZ2dpbmdcbmNvbnN0IGxvZ0VtYWlsT3AgPSAob3BlcmF0aW9uOiBzdHJpbmcsIGRldGFpbHM6IHN0cmluZywgZGF0YT86IGFueSkgPT4ge1xuICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVsxXS5zdWJzdHJpbmcoMCwgMTIpO1xuICBjb25zb2xlLmxvZyhgWyR7dGltZXN0YW1wfV1bRU1BSUwtQVBQXVske29wZXJhdGlvbn1dICR7ZGV0YWlsc31gKTtcbiAgaWYgKGRhdGEpIHtcbiAgICBjb25zb2xlLmxvZyhgWyR7dGltZXN0YW1wfV1bRU1BSUwtQVBQXVtEQVRBXWAsIGRhdGEpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBDb3VycmllclBhZ2UoKSB7XG4gIGNvbnN0IHJvdXRlciA9IHVzZVJvdXRlcigpO1xuICBjb25zdCB7IGRhdGE6IHNlc3Npb24gfSA9IHVzZVNlc3Npb24oKTtcbiAgXG4gIC8vIFJlcGxhY2UgdXNlQ291cnJpZXIgd2l0aCB1c2VFbWFpbFN0YXRlXG4gIGNvbnN0IHtcbiAgICAvLyBTdGF0ZSB2YWx1ZXNcbiAgICBhY2NvdW50cyxcbiAgICBzZWxlY3RlZEFjY291bnQsXG4gICAgc2VsZWN0ZWRGb2xkZXJzLFxuICAgIGN1cnJlbnRGb2xkZXIsXG4gICAgZW1haWxzLFxuICAgIHNlbGVjdGVkRW1haWwsXG4gICAgc2VsZWN0ZWRFbWFpbElkcyxcbiAgICBpc0xvYWRpbmcsXG4gICAgZXJyb3IsXG4gICAgcGFnZSxcbiAgICB0b3RhbFBhZ2VzLFxuICAgIHRvdGFsRW1haWxzLFxuICAgIG1haWxib3hlcyxcbiAgICB1bnJlYWRDb3VudE1hcCxcbiAgICBzaG93Rm9sZGVycyxcbiAgICBcbiAgICAvLyBBY3Rpb25zXG4gICAgbG9hZEVtYWlscyxcbiAgICBoYW5kbGVFbWFpbFNlbGVjdCxcbiAgICB0b2dnbGVFbWFpbFNlbGVjdGlvbixcbiAgICB0b2dnbGVTZWxlY3RBbGwsXG4gICAgbWFya0VtYWlsQXNSZWFkLFxuICAgIHRvZ2dsZVN0YXJyZWQsXG4gICAgY2hhbmdlRm9sZGVyLFxuICAgIGRlbGV0ZUVtYWlscyxcbiAgICBzZW5kRW1haWwsXG4gICAgc2VhcmNoRW1haWxzLFxuICAgIGZvcm1hdEVtYWlsRm9yQWN0aW9uLFxuICAgIHNldFBhZ2UsXG4gICAgc2V0RW1haWxzLFxuICAgIHNlbGVjdEFjY291bnQsXG4gICAgaGFuZGxlTG9hZE1vcmVcbiAgfSA9IHVzZUVtYWlsU3RhdGUoKTtcblxuICAvLyBVSSBzdGF0ZSAoa2VlcGluZyBvbmx5IHdoYXQncyBzdGlsbCBuZWVkZWQpXG4gIGNvbnN0IFtzaG93Q29tcG9zZU1vZGFsLCBzZXRTaG93Q29tcG9zZU1vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2NvbXBvc2VUeXBlLCBzZXRDb21wb3NlVHlwZV0gPSB1c2VTdGF0ZTwnbmV3JyB8ICdyZXBseScgfCAncmVwbHktYWxsJyB8ICdmb3J3YXJkJz4oJ25ldycpO1xuICBjb25zdCBbc2hvd0RlbGV0ZUNvbmZpcm0sIHNldFNob3dEZWxldGVDb25maXJtXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3Nob3dMb2dpbk5lZWRlZCwgc2V0U2hvd0xvZ2luTmVlZGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3NpZGViYXJPcGVuLCBzZXRTaWRlYmFyT3Blbl0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW21vYmlsZVNpZGViYXJPcGVuLCBzZXRNb2JpbGVTaWRlYmFyT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3ByZWZldGNoU3RhcnRlZCwgc2V0UHJlZmV0Y2hTdGFydGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3Nob3dBZGRBY2NvdW50Rm9ybSwgc2V0U2hvd0FkZEFjY291bnRGb3JtXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgXG4gIC8vIEFkZCBzdGF0ZSBmb3IgbW9kYWxzL2RpYWxvZ3NcbiAgY29uc3QgW3Nob3dFZGl0TW9kYWwsIHNldFNob3dFZGl0TW9kYWxdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd0RlbGV0ZURpYWxvZywgc2V0U2hvd0RlbGV0ZURpYWxvZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFthY2NvdW50VG9FZGl0LCBzZXRBY2NvdW50VG9FZGl0XSA9IHVzZVN0YXRlPEFjY291bnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2FjY291bnRUb0RlbGV0ZSwgc2V0QWNjb3VudFRvRGVsZXRlXSA9IHVzZVN0YXRlPEFjY291bnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW25ld1Bhc3N3b3JkLCBzZXROZXdQYXNzd29yZF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtlZGl0TG9hZGluZywgc2V0RWRpdExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZGVsZXRlTG9hZGluZywgc2V0RGVsZXRlTG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzZWxlY3RlZENvbG9yLCBzZXRTZWxlY3RlZENvbG9yXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuICBcbiAgLy8gVXNlIHRoZSByZWR1Y2VyLW1hbmFnZWQgdmFsdWVzIGRpcmVjdGx5IGluc3RlYWQgb2YgdHJhY2tlZCBzZXBhcmF0ZWx5XG4gIGNvbnN0IFtzZWFyY2hRdWVyeSwgc2V0U2VhcmNoUXVlcnldID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbdW5yZWFkQ291bnQsIHNldFVucmVhZENvdW50XSA9IHVzZVN0YXRlKDApO1xuICBcbiAgLy8gQ2FsY3VsYXRlIHVucmVhZCBjb3VudCBmb3IgdGhlIHNlbGVjdGVkIGZvbGRlclxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzZWxlY3RlZEFjY291bnQgJiYgc2VsZWN0ZWRBY2NvdW50LmlkICE9PSAnbG9hZGluZy1hY2NvdW50Jykge1xuICAgICAgY29uc3QgZm9sZGVyQ291bnRzID0gdW5yZWFkQ291bnRNYXBbc2VsZWN0ZWRBY2NvdW50LmlkLnRvU3RyaW5nKCldO1xuICAgICAgaWYgKGZvbGRlckNvdW50cykge1xuICAgICAgICBzZXRVbnJlYWRDb3VudChmb2xkZXJDb3VudHNbY3VycmVudEZvbGRlcl0gfHwgMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRVbnJlYWRDb3VudCgwKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yICdsb2FkaW5nLWFjY291bnQnLCBzdW0gdXAgYWxsIHVucmVhZCBjb3VudHMgZm9yIHRoZSBjdXJyZW50IGZvbGRlclxuICAgICAgbGV0IHRvdGFsVW5yZWFkID0gMDtcbiAgICAgIE9iamVjdC52YWx1ZXModW5yZWFkQ291bnRNYXApLmZvckVhY2goKGZvbGRlckNvdW50cykgPT4ge1xuICAgICAgICB0b3RhbFVucmVhZCArPSBmb2xkZXJDb3VudHNbY3VycmVudEZvbGRlcl0gfHwgMDtcbiAgICAgIH0pO1xuICAgICAgc2V0VW5yZWFkQ291bnQodG90YWxVbnJlYWQpO1xuICAgIH1cbiAgfSwgW3VucmVhZENvdW50TWFwLCBzZWxlY3RlZEFjY291bnQsIGN1cnJlbnRGb2xkZXJdKTtcbiAgXG4gIC8vIEluaXRpYWxpemUgc2Vzc2lvbiBhbmQgc3RhcnQgcHJlZmV0Y2hpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBGbGFnIHRvIHByZXZlbnQgbXVsdGlwbGUgaW5pdGlhbGl6YXRpb24gYXR0ZW1wdHNcbiAgICBsZXQgaXNNb3VudGVkID0gdHJ1ZTtcbiAgICBsZXQgcmV0cnlDb3VudCA9IDA7XG4gICAgY29uc3QgTUFYX1JFVFJJRVMgPSAzO1xuICAgIGNvbnN0IFJFVFJZX0RFTEFZID0gMTAwMDsgLy8gMSBzZWNvbmRcblxuICAgIGNvbnN0IGluaXRTZXNzaW9uID0gYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKCFpc01vdW50ZWQpIHJldHVybjtcbiAgICAgICAgbG9nRW1haWxPcCgnU0VTU0lPTicsICdJbml0aWFsaXppbmcgZW1haWwgc2Vzc2lvbicpO1xuICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICBcbiAgICAgICAgLy8gRmlyc3QgY2hlY2sgaWYgUmVkaXMgaXMgcmVhZHkgYmVmb3JlIG1ha2luZyBBUEkgY2FsbHNcbiAgICAgICAgY29uc3QgcmVkaXNTdGF0dXMgPSBhd2FpdCBmZXRjaCgnL2FwaS9yZWRpcy9zdGF0dXMnKVxuICAgICAgICAgIC50aGVuKHJlcyA9PiByZXMuanNvbigpKVxuICAgICAgICAgIC5jYXRjaCgoKSA9PiAoeyByZWFkeTogZmFsc2UgfSkpO1xuICAgICAgICBcbiAgICAgICAgaWYgKCFpc01vdW50ZWQpIHJldHVybjtcbiAgICAgICAgXG4gICAgICAgIC8vIENhbGwgdGhlIHNlc3Npb24gQVBJIHRvIGNoZWNrIGVtYWlsIGNyZWRlbnRpYWxzIGFuZCBzdGFydCBwcmVmZXRjaGluZ1xuICAgICAgICBsb2dFbWFpbE9wKCdTRVNTSU9OJywgJ0ZldGNoaW5nIHNlc3Npb24gZGF0YSBmcm9tIEFQSScpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCcvYXBpL2NvdXJyaWVyL3Nlc3Npb24nLCB7XG4gICAgICAgICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyBIYW5kbGUgNDAxIFVuYXV0aG9yaXplZCB3aXRoIHJldHJ5IGxvZ2ljXG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgIGlmIChyZXRyeUNvdW50IDwgTUFYX1JFVFJJRVMpIHtcbiAgICAgICAgICAgIHJldHJ5Q291bnQrKztcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBTZXNzaW9uIHJlcXVlc3QgZmFpbGVkIChhdHRlbXB0ICR7cmV0cnlDb3VudH0vJHtNQVhfUkVUUklFU30pLCByZXRyeWluZyBpbiAke1JFVFJZX0RFTEFZfW1zLi4uYCk7XG4gICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgUkVUUllfREVMQVkpKTtcbiAgICAgICAgICAgIHJldHVybiBpbml0U2Vzc2lvbigpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdNYXggcmV0cmllcyByZWFjaGVkIGZvciBzZXNzaW9uIHJlcXVlc3QnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTZXNzaW9uIHJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgXG4gICAgICAgIC8vIExvZyBzZXNzaW9uIHJlc3BvbnNlXG4gICAgICAgIGNvbnNvbGUubG9nKCdbREVCVUddIFNlc3Npb24gQVBJIHJlc3BvbnNlIGRldGFpbHM6Jywge1xuICAgICAgICAgIGF1dGhlbnRpY2F0ZWQ6IGRhdGEuYXV0aGVudGljYXRlZCxcbiAgICAgICAgICBoYXNFbWFpbENyZWRlbnRpYWxzOiBkYXRhLmhhc0VtYWlsQ3JlZGVudGlhbHMsXG4gICAgICAgICAgYWNjb3VudHNDb3VudDogZGF0YS5hbGxBY2NvdW50cz8ubGVuZ3RoIHx8IDBcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUHJvY2VzcyBhY2NvdW50cyBpZiBhdXRoZW50aWNhdGVkXG4gICAgICAgIGlmIChkYXRhLmF1dGhlbnRpY2F0ZWQgJiYgZGF0YS5oYXNFbWFpbENyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgc2V0UHJlZmV0Y2hTdGFydGVkKEJvb2xlYW4oZGF0YS5wcmVmZXRjaFN0YXJ0ZWQpKTtcbiAgICAgICAgICBcbiAgICAgICAgICBsZXQgdXBkYXRlZEFjY291bnRzOiBBY2NvdW50W10gPSBbXTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBQcm9jZXNzIG11bHRpcGxlIGFjY291bnRzXG4gICAgICAgICAgaWYgKGRhdGEuYWxsQWNjb3VudHMgJiYgQXJyYXkuaXNBcnJheShkYXRhLmFsbEFjY291bnRzKSAmJiBkYXRhLmFsbEFjY291bnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbREVCVUddIFByb2Nlc3NpbmcgbXVsdGlwbGUgYWNjb3VudHM6JywgZGF0YS5hbGxBY2NvdW50cy5sZW5ndGgpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBkYXRhLmFsbEFjY291bnRzLmZvckVhY2goKGFjY291bnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAvLyBVc2UgZXhhY3QgZm9sZGVycyBmcm9tIElNQVBcbiAgICAgICAgICAgICAgY29uc3QgYWNjb3VudEZvbGRlcnMgPSAoYWNjb3VudC5mb2xkZXJzICYmIEFycmF5LmlzQXJyYXkoYWNjb3VudC5mb2xkZXJzKSkgXG4gICAgICAgICAgICAgICAgPyBhY2NvdW50LmZvbGRlcnMgXG4gICAgICAgICAgICAgICAgOiBbXTtcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIC8vIEVuc3VyZSBmb2xkZXIgbmFtZXMgaGF2ZSBhY2NvdW50IHByZWZpeFxuICAgICAgICAgICAgICBjb25zdCB2YWxpZEZvbGRlcnMgPSBhY2NvdW50Rm9sZGVycy5tYXAoKGZvbGRlcjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFmb2xkZXIuaW5jbHVkZXMoJzonKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2FjY291bnQuaWR9OiR7Zm9sZGVyfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmb2xkZXI7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgdXBkYXRlZEFjY291bnRzLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiBhY2NvdW50LmlkLFxuICAgICAgICAgICAgICAgIG5hbWU6IGFjY291bnQuZGlzcGxheV9uYW1lIHx8IGFjY291bnQuZW1haWwsXG4gICAgICAgICAgICAgICAgZW1haWw6IGFjY291bnQuZW1haWwsXG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY291bnQuY29sb3IgfHwgY29sb3JQYWxldHRlWyh1cGRhdGVkQWNjb3VudHMubGVuZ3RoKSAlIGNvbG9yUGFsZXR0ZS5sZW5ndGhdLFxuICAgICAgICAgICAgICAgIGZvbGRlcnM6IHZhbGlkRm9sZGVyc1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnW0RFQlVHXSBDb25zdHJ1Y3RlZCBhY2NvdW50czonLCB1cGRhdGVkQWNjb3VudHMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGYWxsYmFjayB0byBzaW5nbGUgYWNjb3VudCBpZiBhbGxBY2NvdW50cyBpcyBub3QgYXZhaWxhYmxlXG4gICAgICAgICAgICBjb25zdCBmb2xkZXJMaXN0ID0gKGRhdGEubWFpbGJveGVzICYmIGRhdGEubWFpbGJveGVzLmxlbmd0aCA+IDApID8gXG4gICAgICAgICAgICAgIGRhdGEubWFpbGJveGVzIDogW107XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHVwZGF0ZWRBY2NvdW50cy5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6ICdkZWZhdWx0LWFjY291bnQnLFxuICAgICAgICAgICAgICBuYW1lOiBkYXRhLmRpc3BsYXlOYW1lIHx8IGRhdGEuZW1haWwsXG4gICAgICAgICAgICAgIGVtYWlsOiBkYXRhLmVtYWlsLFxuICAgICAgICAgICAgICBjb2xvcjogY29sb3JQYWxldHRlWzBdLFxuICAgICAgICAgICAgICBmb2xkZXJzOiBmb2xkZXJMaXN0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY29uc29sZS5sb2coJ1tERUJVR10gQ29uc3RydWN0ZWQgc2luZ2xlIGZhbGxiYWNrIGFjY291bnQ6JywgdXBkYXRlZEFjY291bnRzWzBdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gVXBkYXRlIGFjY291bnRzIHN0YXRlIHVzaW5nIG91ciByZWR1Y2VyIGFjdGlvbnNcbiAgICAgICAgICAvLyBGaXJzdCwgc2V0IHRoZSBhY2NvdW50c1xuICAgICAgICAgIHNldEVtYWlscyhbXSk7ICAvLyBDbGVhciBhbnkgZXhpc3RpbmcgZW1haWxzIGZpcnN0XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gTG9nIGN1cnJlbnQgc3RhdGUgZm9yIGRlYnVnZ2luZ1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdbREVCVUddIEN1cnJlbnQgc3RhdGUgYmVmb3JlIHNldHRpbmcgYWNjb3VudHM6Jywge1xuICAgICAgICAgICAgYWNjb3VudHM6IGFjY291bnRzPy5sZW5ndGggfHwgMCxcbiAgICAgICAgICAgIHNlbGVjdGVkQWNjb3VudDogc2VsZWN0ZWRBY2NvdW50Py5pZCB8fCAnbm9uZScsXG4gICAgICAgICAgICBjdXJyZW50Rm9sZGVyOiBjdXJyZW50Rm9sZGVyIHx8ICdub25lJ1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIFVzZSBvdXIgcmVkdWNlciBhY3Rpb25zIGluc3RlYWQgb2Ygc2V0U3RhdGVcbiAgICAgICAgICBzZXRBY2NvdW50cyh1cGRhdGVkQWNjb3VudHMpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIEF1dG8tc2VsZWN0IHRoZSBmaXJzdCBhY2NvdW50IGlmIGF2YWlsYWJsZVxuICAgICAgICAgIGlmICh1cGRhdGVkQWNjb3VudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3RBY2NvdW50ID0gdXBkYXRlZEFjY291bnRzWzBdO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1tERUJVR10gQXV0by1zZWxlY3RpbmcgZmlyc3QgYWNjb3VudDonLCBmaXJzdEFjY291bnQpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBVc2Ugb3VyIG5ldyBzZWxlY3RBY2NvdW50IGZ1bmN0aW9uIHdoaWNoIGhhbmRsZXMgc3RhdGUgYXRvbWljYWxseVxuICAgICAgICAgICAgLy8gQWRkIGEgc2xpZ2h0IGRlbGF5IHRvIGVuc3VyZSB0aGUgYWNjb3VudHMgYXJlIHNldCBmaXJzdFxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbREVCVUddIE5vdyBjYWxsaW5nIHNlbGVjdEFjY291bnQnKTtcbiAgICAgICAgICAgICAgc2VsZWN0QWNjb3VudChmaXJzdEFjY291bnQpO1xuICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVXNlciBpcyBhdXRoZW50aWNhdGVkIGJ1dCBkb2Vzbid0IGhhdmUgZW1haWwgY3JlZGVudGlhbHNcbiAgICAgICAgICBzZXRTaG93TG9naW5OZWVkZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluaXRpYWxpemluZyBzZXNzaW9uOicsIGVycm9yKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChpc01vdW50ZWQpIHtcbiAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgXG4gICAgaWYgKHNlc3Npb24/LnVzZXI/LmlkKSB7XG4gICAgICBpbml0U2Vzc2lvbigpO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaXNNb3VudGVkID0gZmFsc2U7XG4gICAgfTtcbiAgfSwgW3Nlc3Npb24/LnVzZXI/LmlkLCBzZXRFbWFpbHMsIHNlbGVjdEFjY291bnRdKTtcbiAgXG4gIC8vIEhlbHBlciB0byBnZXQgZm9sZGVyIGljb25zXG4gIGNvbnN0IGdldEZvbGRlckljb24gPSAoZm9sZGVyOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBmb2xkZXJMb3dlciA9IGZvbGRlci50b0xvd2VyQ2FzZSgpO1xuICAgIFxuICAgIGlmIChmb2xkZXJMb3dlci5pbmNsdWRlcygnaW5ib3gnKSkge1xuICAgICAgcmV0dXJuIDxJbmJveCBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtZ3JheS01MDBcIiAvPjtcbiAgICB9IGVsc2UgaWYgKGZvbGRlckxvd2VyLmluY2x1ZGVzKCdzZW50JykpIHtcbiAgICAgIHJldHVybiA8U2VuZCBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtZ3JheS01MDBcIiAvPjtcbiAgICB9IGVsc2UgaWYgKGZvbGRlckxvd2VyLmluY2x1ZGVzKCd0cmFzaCcpKSB7XG4gICAgICByZXR1cm4gPFRyYXNoIGNsYXNzTmFtZT1cImgtNCB3LTQgdGV4dC1ncmF5LTUwMFwiIC8+O1xuICAgIH0gZWxzZSBpZiAoZm9sZGVyTG93ZXIuaW5jbHVkZXMoJ2FyY2hpdmUnKSkge1xuICAgICAgcmV0dXJuIDxBcmNoaXZlIGNsYXNzTmFtZT1cImgtNCB3LTQgdGV4dC1ncmF5LTUwMFwiIC8+O1xuICAgIH0gZWxzZSBpZiAoZm9sZGVyTG93ZXIuaW5jbHVkZXMoJ2RyYWZ0JykpIHtcbiAgICAgIHJldHVybiA8RWRpdCBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtZ3JheS01MDBcIiAvPjtcbiAgICB9IGVsc2UgaWYgKGZvbGRlckxvd2VyLmluY2x1ZGVzKCdzcGFtJykgfHwgZm9sZGVyTG93ZXIuaW5jbHVkZXMoJ2p1bmsnKSkge1xuICAgICAgcmV0dXJuIDxBbGVydE9jdGFnb24gY2xhc3NOYW1lPVwiaC00IHctNCB0ZXh0LWdyYXktNTAwXCIgLz47XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA8Rm9sZGVyIGNsYXNzTmFtZT1cImgtNCB3LTQgdGV4dC1ncmF5LTUwMFwiIC8+O1xuICAgIH1cbiAgfTtcbiAgXG4gIC8vIEhlbHBlciB0byBmb3JtYXQgZm9sZGVyIG5hbWVzXG4gIGNvbnN0IGZvcm1hdEZvbGRlck5hbWUgPSAoZm9sZGVyOiBzdHJpbmcpID0+IHtcbiAgICAvLyBFeHRyYWN0IGJhc2UgZm9sZGVyIG5hbWUgaWYgcHJlZml4ZWRcbiAgICBjb25zdCBiYXNlRm9sZGVyTmFtZSA9IGZvbGRlci5pbmNsdWRlcygnOicpID8gZm9sZGVyLnNwbGl0KCc6JylbMV0gOiBmb2xkZXI7XG4gICAgcmV0dXJuIGJhc2VGb2xkZXJOYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgYmFzZUZvbGRlck5hbWUuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtcbiAgfTtcblxuICAvLyBIYW5kbGUgYWN0aW9ucyAtIHJlcGxhY2Ugd2l0aCB1c2VSZWR1Y2VyLWJhc2VkIGZ1bmN0aW9uc1xuICBjb25zdCBoYW5kbGVNYWlsYm94Q2hhbmdlID0gKGZvbGRlcjogc3RyaW5nLCBhY2NvdW50SWQ/OiBzdHJpbmcpID0+IHtcbiAgICAvLyBTaW1wbHkgY2FsbCBvdXIgbmV3IGNoYW5nZUZvbGRlciBmdW5jdGlvbiB3aGljaCBoYW5kbGVzIGV2ZXJ5dGhpbmcgYXRvbWljYWxseVxuICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgY2hhbmdlRm9sZGVyKGZvbGRlciwgYWNjb3VudElkKVxuICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH0pO1xuICB9O1xuXG4gIC8vIEhhbmRsZSBhY2NvdW50IHNlbGVjdGlvbiAtIHJlcGxhY2Ugd2l0aCByZWR1Y2VyLWJhc2VkIGZ1bmN0aW9uXG4gIGNvbnN0IGhhbmRsZUFjY291bnRTZWxlY3QgPSAoYWNjb3VudDogQWNjb3VudCkgPT4ge1xuICAgIC8vIEFkZCBleHRlbnNpdmUgZGVidWdnaW5nIHRvIHRyYWNrIHRoZSBwcm9jZXNzXG4gICAgY29uc29sZS5sb2coJ1tERUJVR10gaGFuZGxlQWNjb3VudFNlbGVjdCBjYWxsZWQgd2l0aCBhY2NvdW50OicsIHtcbiAgICAgIGlkOiBhY2NvdW50LmlkLCBcbiAgICAgIGVtYWlsOiBhY2NvdW50LmVtYWlsLFxuICAgICAgZm9sZGVyczogYWNjb3VudC5mb2xkZXJzPy5sZW5ndGhcbiAgICB9KTtcbiAgICBcbiAgICAvLyBTa2lwIGlmIG5vIHZhbGlkIGFjY291bnQgcHJvdmlkZWRcbiAgICBpZiAoIWFjY291bnQgfHwgIWFjY291bnQuaWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgYWNjb3VudCBwYXNzZWQgdG8gaGFuZGxlQWNjb3VudFNlbGVjdCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBTa2lwIGlmIHRoaXMgaXMgYWxyZWFkeSB0aGUgc2VsZWN0ZWQgYWNjb3VudFxuICAgIGlmIChzZWxlY3RlZEFjY291bnQ/LmlkID09PSBhY2NvdW50LmlkKSB7XG4gICAgICBjb25zb2xlLmxvZygnW0RFQlVHXSBBY2NvdW50IGFscmVhZHkgc2VsZWN0ZWQsIHNraXBwaW5nJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIFNpbXBseSBjYWxsIG91ciBuZXcgc2VsZWN0QWNjb3VudCBmdW5jdGlvbiB3aGljaCBoYW5kbGVzIGV2ZXJ5dGhpbmcgYXRvbWljYWxseVxuICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgXG4gICAgLy8gQ2xlYXIgYWxsIGV4aXN0aW5nIHNlbGVjdGlvbnMgZmlyc3RcbiAgICBjb25zb2xlLmxvZygnW0RFQlVHXSBOb3cgc2VsZWN0aW5nIGFjY291bnQgdGhyb3VnaCByZWR1Y2VyIGFjdGlvbicpO1xuICAgIHNlbGVjdEFjY291bnQoYWNjb3VudCk7XG4gICAgXG4gICAgLy8gTG9nIHdoYXQgaGFwcGVuZWRcbiAgICBjb25zb2xlLmxvZygnW0RFQlVHXSBBY2NvdW50IHNlbGVjdGlvbiBjb21wbGV0ZWQnKTtcbiAgICBcbiAgICAvLyBHaXZlIHNvbWUgdGltZSBmb3IgdGhlIFVJIHRvIHVwZGF0ZVxuICAgIHNldFRpbWVvdXQoKCkgPT4gc2V0TG9hZGluZyhmYWxzZSksIDMwMCk7XG4gIH07XG5cbiAgLy8gRW1haWwgYWN0aW9uc1xuICBjb25zdCBoYW5kbGVSZXBseSA9ICgpID0+IHtcbiAgICBpZiAoIXNlbGVjdGVkRW1haWwpIHJldHVybjtcbiAgICBzZXRDb21wb3NlVHlwZSgncmVwbHknKTtcbiAgICBzZXRTaG93Q29tcG9zZU1vZGFsKHRydWUpO1xuICB9O1xuICBcbiAgY29uc3QgaGFuZGxlUmVwbHlBbGwgPSAoKSA9PiB7XG4gICAgaWYgKCFzZWxlY3RlZEVtYWlsKSByZXR1cm47XG4gICAgc2V0Q29tcG9zZVR5cGUoJ3JlcGx5LWFsbCcpO1xuICAgIHNldFNob3dDb21wb3NlTW9kYWwodHJ1ZSk7XG4gIH07XG4gIFxuICBjb25zdCBoYW5kbGVGb3J3YXJkID0gKCkgPT4ge1xuICAgIGlmICghc2VsZWN0ZWRFbWFpbCkgcmV0dXJuO1xuICAgIHNldENvbXBvc2VUeXBlKCdmb3J3YXJkJyk7XG4gICAgc2V0U2hvd0NvbXBvc2VNb2RhbCh0cnVlKTtcbiAgfTtcbiAgXG4gIGNvbnN0IGhhbmRsZUNvbXBvc2VOZXcgPSAoKSA9PiB7XG4gICAgc2V0Q29tcG9zZVR5cGUoJ25ldycpO1xuICAgIHNldFNob3dDb21wb3NlTW9kYWwodHJ1ZSk7XG4gIH07XG5cbiAgLy8gSGFuZGxlIGJ1bGsgYWN0aW9uc1xuICBjb25zdCBoYW5kbGVCdWxrQWN0aW9uID0gYXN5bmMgKGFjdGlvbjogJ2RlbGV0ZScgfCAnbWFyay1yZWFkJyB8ICdtYXJrLXVucmVhZCcgfCAnYXJjaGl2ZScpID0+IHtcbiAgICBpZiAoc2VsZWN0ZWRFbWFpbElkcy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgc2V0U2hvd0RlbGV0ZUNvbmZpcm0odHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgICBcbiAgICAgIGNhc2UgJ21hcmstcmVhZCc6XG4gICAgICAgIC8vIE1hcmsgYWxsIHNlbGVjdGVkIGVtYWlscyBhcyByZWFkXG4gICAgICAgIGZvciAoY29uc3QgZW1haWxJZCBvZiBzZWxlY3RlZEVtYWlsSWRzKSB7XG4gICAgICAgICAgYXdhaXQgbWFya0VtYWlsQXNSZWFkKGVtYWlsSWQsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgICBcbiAgICAgIGNhc2UgJ21hcmstdW5yZWFkJzpcbiAgICAgICAgLy8gTWFyayBhbGwgc2VsZWN0ZWQgZW1haWxzIGFzIHVucmVhZFxuICAgICAgICBmb3IgKGNvbnN0IGVtYWlsSWQgb2Ygc2VsZWN0ZWRFbWFpbElkcykge1xuICAgICAgICAgIGF3YWl0IG1hcmtFbWFpbEFzUmVhZChlbWFpbElkLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICAgIFxuICAgICAgY2FzZSAnYXJjaGl2ZSc6XG4gICAgICAgIC8vIEFyY2hpdmUgZnVuY3Rpb25hbGl0eSB3b3VsZCBiZSBpbXBsZW1lbnRlZCBoZXJlXG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZW5kRW1haWwgPSBhc3luYyAoZW1haWxEYXRhOiBFbWFpbERhdGEpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2VuZEVtYWlsKGVtYWlsRGF0YSk7XG4gICAgICBpZiAoIXJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQuZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUNvbmZpcm0gPSBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgZGVsZXRlRW1haWxzKHNlbGVjdGVkRW1haWxJZHMpO1xuICAgIHNldFNob3dEZWxldGVDb25maXJtKGZhbHNlKTtcbiAgICBcbiAgICAvLyBDbGVhciBzZWxlY3RlZCBlbWFpbHMgYWZ0ZXIgZGVsZXRpb25cbiAgICAvLyBVc2luZyBzZXRFbWFpbHMgd2lsbCByZXNldCB0aGUgc2VsZWN0aW9uIHN0YXRlXG4gICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICBzZXRQYWdlKDEpO1xuICAgIGxvYWRFbWFpbHMoMSwgMjAsIGZhbHNlKS5maW5hbGx5KCgpID0+IHtcbiAgICAgIC8vIFNlbGVjdGlvbiB3aWxsIGJlIGNsZWFyZWQgYnkgbG9hZGluZyBuZXcgZW1haWxzXG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9KTtcbiAgfTtcbiAgXG4gIGNvbnN0IGhhbmRsZUdvVG9Mb2dpbiA9ICgpID0+IHtcbiAgICByb3V0ZXIucHVzaCgnL2NvdXJyaWVyL2xvZ2luJyk7XG4gIH07XG5cbiAgLy8gVXBkYXRlIHRoZSBhY2NvdW50cyBmcm9tIHN0YXRlIC0gZml4IHR5cGUgaXNzdWVzXG4gIGNvbnN0IHNldEFjY291bnRzID0gKG5ld0FjY291bnRzOiBBY2NvdW50W10pID0+IHtcbiAgICBjb25zb2xlLmxvZygnW0RFQlVHXSBTZXR0aW5nIGFjY291bnRzOicsIG5ld0FjY291bnRzKTtcbiAgICBcbiAgICAvLyBJbiB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24sIHdlJ2QgZGlzcGF0Y2ggYW4gYWN0aW9uXG4gICAgLy8gQnV0IHNpbmNlIHdlIGRvbid0IGhhdmUgZGlyZWN0IGFjY2VzcyB0byB0aGUgcmVkdWNlcidzIGRpc3BhdGNoIGZ1bmN0aW9uLFxuICAgIC8vIHdlIG5lZWQgdG8gdXNlIHRoZSBleHBvcnRlZCBhY3Rpb25zIGZyb20gb3VyIGhvb2tcbiAgICBcbiAgICAvLyBUaGlzIGRpc3BhdGNoIGZ1bmN0aW9uIHNob3VsZCBiZSBtYWRlIGF2YWlsYWJsZSBieSBvdXIgaG9va1xuICAgIGNvbnN0IHdpbmRvd1dpdGhEaXNwYXRjaCA9IHdpbmRvdyBhcyBhbnk7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3dXaXRoRGlzcGF0Y2guZGlzcGF0Y2hFbWFpbEFjdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gVXNlIHRoZSBnbG9iYWwgZGlzcGF0Y2ggZnVuY3Rpb24gaWYgYXZhaWxhYmxlXG4gICAgICB3aW5kb3dXaXRoRGlzcGF0Y2guZGlzcGF0Y2hFbWFpbEFjdGlvbih7IFxuICAgICAgICB0eXBlOiAnU0VUX0FDQ09VTlRTJywgXG4gICAgICAgIHBheWxvYWQ6IG5ld0FjY291bnRzIFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Nhbm5vdCBkaXNwYXRjaCBTRVRfQUNDT1VOVFMgYWN0aW9uIC0gbm8gZGlzcGF0Y2ggZnVuY3Rpb24gYXZhaWxhYmxlJyk7XG4gICAgICBcbiAgICAgIC8vIEZhbGxiYWNrOiBUcnkgdG8gZGlyZWN0bHkgbW9kaWZ5IHRoZSBhY2NvdW50cyBhcnJheSBpZiB3ZSBoYXZlIGFjY2Vzc1xuICAgICAgLy8gVGhpcyBpc24ndCBpZGVhbCBidXQgZW5zdXJlcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGR1cmluZyB0cmFuc2l0aW9uXG4gICAgICBjb25zb2xlLmxvZygnW0RFQlVHXSBVc2luZyBmYWxsYmFjayBtZXRob2QgdG8gdXBkYXRlIGFjY291bnRzJyk7XG4gICAgICBcbiAgICAgIC8vIE91ciByZWR1Y2VyIHNob3VsZCBleHBvc2UgdGhpcyBhY3Rpb25cbiAgICAgIGNvbnN0IHVzZUVtYWlsU3RhdGVEaXNwYXRjaCA9IHdpbmRvd1dpdGhEaXNwYXRjaC5fX2VtYWlsU3RhdGVEaXNwYXRjaDtcbiAgICAgIGlmICh0eXBlb2YgdXNlRW1haWxTdGF0ZURpc3BhdGNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHVzZUVtYWlsU3RhdGVEaXNwYXRjaCh7IFxuICAgICAgICAgIHR5cGU6ICdTRVRfQUNDT1VOVFMnLCBcbiAgICAgICAgICBwYXlsb2FkOiBuZXdBY2NvdW50cyBcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdObyBmYWxsYmFjayBkaXNwYXRjaCBtZXRob2QgYXZhaWxhYmxlIGVpdGhlcicpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U2ltcGxpZmllZExvYWRpbmdGaXggLz5cbiAgICAgIFxuICAgICAgey8qIE1haW4gbGF5b3V0ICovfVxuICAgICAgPG1haW4gY2xhc3NOYW1lPVwidy1mdWxsIGgtc2NyZWVuIGJnLWJsYWNrXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy1mdWxsIGgtZnVsbCBweC00IHB0LTEyIHBiLTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaC1mdWxsIGJnLWNhcm5ldC1iZ1wiPlxuICAgICAgICAgICAgey8qIFVzZSBFbWFpbFNpZGViYXIgY29tcG9uZW50IGluc3RlYWQgb2YgaW5saW5lIHNpZGViYXIgKi99XG4gICAgICAgICAgICA8RW1haWxTaWRlYmFyXG4gICAgICAgICAgICAgIGFjY291bnRzPXthY2NvdW50c31cbiAgICAgICAgICAgICAgc2VsZWN0ZWRBY2NvdW50PXtzZWxlY3RlZEFjY291bnR9XG4gICAgICAgICAgICAgIHNlbGVjdGVkRm9sZGVycz17c2VsZWN0ZWRGb2xkZXJzfVxuICAgICAgICAgICAgICBjdXJyZW50Rm9sZGVyPXtjdXJyZW50Rm9sZGVyfVxuICAgICAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nIHx8IGlzTG9hZGluZ31cbiAgICAgICAgICAgICAgdW5yZWFkQ291bnQ9e3VucmVhZENvdW50TWFwfVxuICAgICAgICAgICAgICBzaG93QWRkQWNjb3VudEZvcm09e3Nob3dBZGRBY2NvdW50Rm9ybX1cbiAgICAgICAgICAgICAgb25Gb2xkZXJDaGFuZ2U9e2hhbmRsZU1haWxib3hDaGFuZ2V9XG4gICAgICAgICAgICAgIG9uUmVmcmVzaD17KCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgICAgc2V0UGFnZSgxKTtcbiAgICAgICAgICAgICAgICBsb2FkRW1haWxzKHBhZ2UsIDEwLCBmYWxzZSkuZmluYWxseSgoKSA9PiBzZXRMb2FkaW5nKGZhbHNlKSk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG9uQ29tcG9zZU5ldz17aGFuZGxlQ29tcG9zZU5ld31cbiAgICAgICAgICAgICAgb25BY2NvdW50U2VsZWN0PXtoYW5kbGVBY2NvdW50U2VsZWN0fVxuICAgICAgICAgICAgICBvblNob3dBZGRBY2NvdW50Rm9ybT17c2V0U2hvd0FkZEFjY291bnRGb3JtfVxuICAgICAgICAgICAgICBvbkFkZEFjY291bnQ9e2FzeW5jIChmb3JtRGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1tERUJVR10gQWRkIGFjY291bnQgZm9ybSBzdWJtaXNzaW9uOicsIGZvcm1EYXRhKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBQdWxsIHZhbHVlcyBmcm9tIGZvcm0gd2l0aCBwcm9wZXIgdHlwZSBoYW5kbGluZ1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB7XG4gICAgICAgICAgICAgICAgICBlbWFpbDogZm9ybURhdGEuZ2V0KCdlbWFpbCcpPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6IGZvcm1EYXRhLmdldCgncGFzc3dvcmQnKT8udG9TdHJpbmcoKSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgIGhvc3Q6IGZvcm1EYXRhLmdldCgnaG9zdCcpPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgcG9ydDogcGFyc2VJbnQoZm9ybURhdGEuZ2V0KCdwb3J0Jyk/LnRvU3RyaW5nKCkgfHwgJzk5MycpLFxuICAgICAgICAgICAgICAgICAgc2VjdXJlOiBmb3JtRGF0YS5nZXQoJ3NlY3VyZScpID09PSAnb24nLFxuICAgICAgICAgICAgICAgICAgZGlzcGxheV9uYW1lOiBmb3JtRGF0YS5nZXQoJ2Rpc3BsYXlfbmFtZScpPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgc210cF9ob3N0OiBmb3JtRGF0YS5nZXQoJ3NtdHBfaG9zdCcpPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgc210cF9wb3J0OiBmb3JtRGF0YS5nZXQoJ3NtdHBfcG9ydCcpPy50b1N0cmluZygpID8gXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KGZvcm1EYXRhLmdldCgnc210cF9wb3J0Jyk/LnRvU3RyaW5nKCkgfHwgJzU4NycpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgc210cF9zZWN1cmU6IGZvcm1EYXRhLmdldCgnc210cF9zZWN1cmUnKSA9PT0gJ29uJ1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLy8gSWYgZGlzcGxheV9uYW1lIGlzIGVtcHR5LCB1c2UgZW1haWxcbiAgICAgICAgICAgICAgICBpZiAoIWZvcm1WYWx1ZXMuZGlzcGxheV9uYW1lKSB7XG4gICAgICAgICAgICAgICAgICBmb3JtVmFsdWVzLmRpc3BsYXlfbmFtZSA9IGZvcm1WYWx1ZXMuZW1haWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAvLyBGaXJzdCB0ZXN0IHRoZSBjb25uZWN0aW9uXG4gICAgICAgICAgICAgICAgICBjb25zdCB0ZXN0UmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FwaS9jb3Vycmllci90ZXN0LWNvbm5lY3Rpb24nLCB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgZW1haWw6IGZvcm1WYWx1ZXMuZW1haWwsXG4gICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6IGZvcm1WYWx1ZXMucGFzc3dvcmQsXG4gICAgICAgICAgICAgICAgICAgICAgaG9zdDogZm9ybVZhbHVlcy5ob3N0LFxuICAgICAgICAgICAgICAgICAgICAgIHBvcnQ6IGZvcm1WYWx1ZXMucG9ydCxcbiAgICAgICAgICAgICAgICAgICAgICBzZWN1cmU6IGZvcm1WYWx1ZXMuc2VjdXJlXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgY29uc3QgdGVzdFJlc3VsdCA9IGF3YWl0IHRlc3RSZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcih0ZXN0UmVzdWx0LmVycm9yIHx8ICdDb25uZWN0aW9uIHRlc3QgZmFpbGVkJyk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDb25uZWN0aW9uIHRlc3Qgc3VjY2Vzc2Z1bDonLCB0ZXN0UmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgLy8gT25seSBkZWNsYXJlIHJlYWxBY2NvdW50cyBvbmNlIGJlZm9yZSB1c2luZyBmb3IgY29sb3IgYXNzaWdubWVudFxuICAgICAgICAgICAgICAgICAgY29uc3QgcmVhbEFjY291bnRzID0gYWNjb3VudHMuZmlsdGVyKGEgPT4gYS5pZCAhPT0gJ2xvYWRpbmctYWNjb3VudCcpO1xuICAgICAgICAgICAgICAgICAgY29uc3Qgc2F2ZVJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9hcGkvY291cnJpZXIvYWNjb3VudCcsIHtcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGZvcm1WYWx1ZXMpXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNhdmVSZXN1bHQgPSBhd2FpdCBzYXZlUmVzcG9uc2UuanNvbigpO1xuICAgICAgICAgICAgICAgICAgaWYgKCFzYXZlUmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHNhdmVSZXN1bHQuZXJyb3IgfHwgJ0ZhaWxlZCB0byBhZGQgYWNjb3VudCcpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY29uc3QgcmVhbEFjY291bnQgPSBzYXZlUmVzdWx0LmFjY291bnQ7XG4gICAgICAgICAgICAgICAgICByZWFsQWNjb3VudC5jb2xvciA9IGNvbG9yUGFsZXR0ZVtyZWFsQWNjb3VudHMubGVuZ3RoICUgY29sb3JQYWxldHRlLmxlbmd0aF07XG4gICAgICAgICAgICAgICAgICByZWFsQWNjb3VudC5mb2xkZXJzID0gdGVzdFJlc3VsdC5kZXRhaWxzLnNhbXBsZUZvbGRlcnMgfHwgWydJTkJPWCcsICdTZW50JywgJ0RyYWZ0cycsICdUcmFzaCddO1xuICAgICAgICAgICAgICAgICAgc2V0QWNjb3VudHMoWy4uLmFjY291bnRzLCByZWFsQWNjb3VudF0pO1xuICAgICAgICAgICAgICAgICAgc2V0U2hvd0FkZEFjY291bnRGb3JtKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgIHRvYXN0KHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiQWNjb3VudCBhZGRlZCBzdWNjZXNzZnVsbHlcIixcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBZb3VyIGVtYWlsIGFjY291bnQgJHtmb3JtVmFsdWVzLmVtYWlsfSBoYXMgYmVlbiBhZGRlZC5gLFxuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogNTAwMFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGFkZGluZyBhY2NvdW50OicsIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgIHRvYXN0KHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiRmFpbGVkIHRvIGFkZCBhY2NvdW50XCIsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudDogXCJkZXN0cnVjdGl2ZVwiLFxuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogNTAwMFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgb25FZGl0QWNjb3VudD17YXN5bmMgKGFjY291bnQpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBsYXRlc3QgYWNjb3VudCBkYXRhIGZyb20gYWNjb3VudHMgYXJyYXlcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRBY2NvdW50ID0gYWNjb3VudHMuZmluZChhID0+IGEuaWQgPT09IGFjY291bnQuaWQpO1xuICAgICAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRBY2NvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHNldEFjY291bnRUb0VkaXQodXBkYXRlZEFjY291bnQgYXMgYW55KTtcbiAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRDb2xvcih1cGRhdGVkQWNjb3VudC5jb2xvciB8fCAnJyk7XG4gICAgICAgICAgICAgICAgICAgIHNldFNob3dFZGl0TW9kYWwodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdCh7XG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwiRXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJDb3VsZCBub3QgZmluZCBhY2NvdW50IGRhdGFcIixcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50OiBcImRlc3RydWN0aXZlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDMwMDBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBwcmVwYXJpbmcgYWNjb3VudCBlZGl0OlwiLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICB0b2FzdCh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIkVycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkZhaWxlZCB0byBsb2FkIGFjY291bnQgc2V0dGluZ3NcIixcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudDogXCJkZXN0cnVjdGl2ZVwiLFxuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMzAwMFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBvbkRlbGV0ZUFjY291bnQ9eyhhY2NvdW50KSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0QWNjb3VudFRvRGVsZXRlKGFjY291bnQgYXMgYW55KTsgXG4gICAgICAgICAgICAgICAgc2V0U2hvd0RlbGV0ZURpYWxvZyh0cnVlKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgb25TZWxlY3RFbWFpbD17KGVtYWlsSWQsIGFjY291bnRJZCwgZm9sZGVyKSA9PiB7IFxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZW1haWxJZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgIGhhbmRsZUVtYWlsU2VsZWN0KGVtYWlsSWQsIGFjY291bnRJZCB8fCAnJywgZm9sZGVyIHx8IGN1cnJlbnRGb2xkZXIpOyBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHsuLi4oe30gYXMgYW55KX1cbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIHsvKiBQYW5lbCAyOiBFbWFpbCBMaXN0IC0gQWx3YXlzIHZpc2libGUgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctODAgZmxleCBmbGV4LWNvbCBib3JkZXItciBib3JkZXItZ3JheS0xMDAgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICAgIHsvKiBIZWFkZXIgd2l0aG91dCBzZWFyY2ggYmFyIG9yIHByb2ZpbGUgKi99XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0yIGJvcmRlci1iIGJvcmRlci1ncmF5LTEwMCBiZy13aGl0ZSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICA8QnV0dG9uIFxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCIgXG4gICAgICAgICAgICAgICAgICBzaXplPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtZDpoaWRkZW4gaC05IHctOVwiXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRNb2JpbGVTaWRlYmFyT3BlbighbW9iaWxlU2lkZWJhck9wZW4pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxNZW51IGNsYXNzTmFtZT1cImgtNSB3LTUgdGV4dC1ncmF5LTUwMFwiIC8+XG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAge2dldEZvbGRlckljb24oY3VycmVudEZvbGRlcil9XG4gICAgICAgICAgICAgICAgICAgIHsvKiBFeHRyYWN0IGJhc2UgZm9sZGVyIGFuZCBzaG93IGVtYWlsIGFzIHByZWZpeCAqL31cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibWwtMiBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3NlbGVjdGVkQWNjb3VudD8uZW1haWwgPyBgJHtzZWxlY3RlZEFjY291bnQuZW1haWx9OiBgIDogJyd9XG4gICAgICAgICAgICAgICAgICAgICAge2Zvcm1hdEZvbGRlck5hbWUoY3VycmVudEZvbGRlci5pbmNsdWRlcygnOicpID8gY3VycmVudEZvbGRlci5zcGxpdCgnOicpWzFdIDogY3VycmVudEZvbGRlcil9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHsvKiBCdXR0b25zIHJlbW92ZWQgZnJvbSBoZXJlIHRvIGF2b2lkIGR1cGxpY2F0aW9uIHdpdGggdGhlIEJ1bGtBY3Rpb25zVG9vbGJhciAqL31cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICB7LyogRW1haWwgTGlzdCAtIEFsd2F5cyB2aXNpYmxlICovfVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBvdmVyZmxvdy1oaWRkZW4gYmctd2hpdGVcIj5cbiAgICAgICAgICAgICAgICB7aXNMb2FkaW5nID8gKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxMb2FkZXIyIGNsYXNzTmFtZT1cImgtOCB3LTggdGV4dC1ibHVlLTUwMCBhbmltYXRlLXNwaW4gbWItMlwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwXCI+TG9hZGluZyBlbWFpbHMuLi48L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKSA6IGVycm9yID8gKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy1tZCBwLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8QWxlcnQgdmFyaWFudD1cImRlc3RydWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QWxlcnRDaXJjbGUgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QWxlcnRUaXRsZT5FcnJvcjwvQWxlcnRUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxBbGVydERlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7ZXJyb3J9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0FsZXJ0RGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9BbGVydD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIGZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgey8qIEVtYWlsIExpc3QgKi99XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleC0xIG92ZXJmbG93LXktYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgb25TY3JvbGw9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBlLmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IHRhcmdldDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlVG9Cb3R0b20gPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBjbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxQZXJjZW50YWdlID0gKHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCkgLyBzY3JvbGxIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN0b3JlIGxhc3Qgc2Nyb2xsIHBvc2l0aW9uIHRvIGRldGVjdCBkaXJlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RTY3JvbGxUb3AgPSB0YXJnZXQuZGF0YXNldC5sYXN0U2Nyb2xsVG9wID8gXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KHRhcmdldC5kYXRhc2V0Lmxhc3RTY3JvbGxUb3ApIDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNjcm9sbGluZ0Rvd24gPSBzY3JvbGxUb3AgPiBsYXN0U2Nyb2xsVG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgbGFzdCBzY3JvbGwgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5kYXRhc2V0Lmxhc3RTY3JvbGxUb3AgPSBzY3JvbGxUb3AudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJldmVudCBmcmVxdWVudCBsb2cgc3BhbSB3aXRoIGEgdGltZXN0YW1wIGNoZWNrXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdExvZyA9IHBhcnNlSW50KHRhcmdldC5kYXRhc2V0Lmxhc3RMb2dUaW1lIHx8ICcwJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobm93IC0gbGFzdExvZyA+IDUwMCkgeyAvLyBMb2cgYXQgbW9zdCBldmVyeSA1MDBtc1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLVdSQVBQRVItU0NST0xMXSBEaXN0YW5jZTogJHtkaXN0YW5jZVRvQm90dG9tfXB4LCAlOiAke01hdGgucm91bmQoc2Nyb2xsUGVyY2VudGFnZSAqIDEwMCl9JSwgZGlyZWN0aW9uOiAke3Njcm9sbGluZ0Rvd24gPyAnZG93bicgOiAndXAnfSwgbW9yZTogJHtwYWdlIDwgdG90YWxQYWdlc30sIGxvYWRpbmc6ICR7aXNMb2FkaW5nfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuZGF0YXNldC5sYXN0TG9nVGltZSA9IG5vdy50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB0aHJvdHRsZSB0byBwcmV2ZW50IG11bHRpcGxlIHJhcGlkIHRyaWdnZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0VHJpZ2dlciA9IHBhcnNlSW50KHRhcmdldC5kYXRhc2V0Lmxhc3RUcmlnZ2VyVGltZSB8fCAnMCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhyb3R0bGVUaW1lID0gMTAwMDsgLy8gMSBzZWNvbmQgdGhyb3R0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ1JJVElDQUwgRklYOiBPbmx5IHRyaWdnZXIgbG9hZGluZyBtb3JlIGVtYWlscyB3aGVuOlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gMS4gVXNlciBpcyBzY3JvbGxpbmcgRE9XTiAobm90IHVwKVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gMi4gVXNlciBpcyBFWEFDVExZIGF0IHRoZSBib3R0b20gKGRpc3RhbmNlIDwgNXB4KVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gMy4gTm90IGN1cnJlbnRseSBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyA0LiBNb3JlIGVtYWlscyBleGlzdCB0byBsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyA1LiBOb3QgdGhyb3R0bGVkIChoYXNuJ3QgdHJpZ2dlcmVkIGluIGxhc3Qgc2Vjb25kKVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjcm9sbGluZ0Rvd24gJiYgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGFuY2VUb0JvdHRvbSA8IDUgJiYgLy8gTXVjaCBzdHJpY3RlciAtIHRydWx5IGF0IGJvdHRvbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpc0xvYWRpbmcgJiYgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZSA8IHRvdGFsUGFnZXMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3cgLSBsYXN0VHJpZ2dlciA+IHRocm90dGxlVGltZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLVdSQVBQRVItVFJJR0dFUl0gKioqIEFUIEJPVFRPTSAqKiogTG9hZGluZyBtb3JlIGVtYWlsc2ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuZGF0YXNldC5sYXN0VHJpZ2dlclRpbWUgPSBub3cudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlTG9hZE1vcmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2VtYWlscy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHAtNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmJveCBjbGFzc05hbWU9XCJoLTEyIHctMTIgdGV4dC1ncmF5LTMwMCBteC1hdXRvIG1iLTRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDBcIj5ObyBlbWFpbHMgZm91bmQ8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTUwMCBtdC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoUXVlcnkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYE5vIHJlc3VsdHMgZm91bmQgZm9yIFwiJHtzZWFyY2hRdWVyeX1cImBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBgWW91ciAke2N1cnJlbnRGb2xkZXIudG9Mb3dlckNhc2UoKX0gaXMgZW1wdHlgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEVtYWlsTGlzdCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW1haWxzPXtlbWFpbHN9IFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVtYWlsSWRzPXtzZWxlY3RlZEVtYWlsSWRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEVtYWlsPXtzZWxlY3RlZEVtYWlsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdEVtYWlsPXsoZW1haWxJZCwgZW1haWxBY2NvdW50SWQsIGVtYWlsRm9sZGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWx3YXlzIHVzZSB0aGUgZW1haWwncyBvd24gYWNjb3VudElkIGFuZCBmb2xkZXIgaWYgYXZhaWxhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRW1haWxTZWxlY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWFpbElkLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtYWlsQWNjb3VudElkIHx8IHNlbGVjdGVkQWNjb3VudD8uaWQgfHwgJycsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1haWxGb2xkZXIgfHwgY3VycmVudEZvbGRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVG9nZ2xlU2VsZWN0PXt0b2dnbGVFbWFpbFNlbGVjdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25Ub2dnbGVTZWxlY3RBbGw9e3RvZ2dsZVNlbGVjdEFsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25Ub2dnbGVTdGFycmVkPXt0b2dnbGVTdGFycmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkxvYWRNb3JlPXtoYW5kbGVMb2FkTW9yZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzTW9yZUVtYWlscz17cGFnZSA8IHRvdGFsUGFnZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGb2xkZXI9e2N1cnJlbnRGb2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbEVtYWlscz17ZW1haWxzLmxlbmd0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25CdWxrQWN0aW9uPXtoYW5kbGVCdWxrQWN0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIHsvKiBQYW5lbCAzOiBFbWFpbCBEZXRhaWwgLSBBbHdheXMgdmlzaWJsZSAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIGZsZXggZmxleC1jb2wgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICAgIHsvKiBDb250ZW50IGZvciBQYW5lbCAzIGJhc2VkIG9uIHN0YXRlIGJ1dCBhbHdheXMgdmlzaWJsZSAqL31cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgb3ZlcmZsb3ctaGlkZGVuIGJnLXdoaXRlXCI+XG4gICAgICAgICAgICAgICAge3NlbGVjdGVkRW1haWwgPyAoXG4gICAgICAgICAgICAgICAgICA8RW1haWxEZXRhaWxWaWV3IFxuICAgICAgICAgICAgICAgICAgICBlbWFpbD17c2VsZWN0ZWRFbWFpbCBhcyBhbnl9XG4gICAgICAgICAgICAgICAgICAgIG9uQmFjaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUVtYWlsU2VsZWN0KCcnLCAnJywgJycpO1xuICAgICAgICAgICAgICAgICAgICAgIC8vIEVuc3VyZSBzaWRlYmFyIHN0YXlzIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICBzZXRTaWRlYmFyT3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgb25SZXBseT17aGFuZGxlUmVwbHl9XG4gICAgICAgICAgICAgICAgICAgIG9uUmVwbHlBbGw9e2hhbmRsZVJlcGx5QWxsfVxuICAgICAgICAgICAgICAgICAgICBvbkZvcndhcmQ9e2hhbmRsZUZvcndhcmR9XG4gICAgICAgICAgICAgICAgICAgIG9uVG9nZ2xlU3Rhcj17KCkgPT4gdG9nZ2xlU3RhcnJlZChzZWxlY3RlZEVtYWlsLmlkKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXIgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHA+U2VsZWN0IGFuIGVtYWlsIHRvIHZpZXcgb3I8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtcHJpbWFyeSBtdC0yIGhvdmVyOnVuZGVybGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbXBvc2VUeXBlKCduZXcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd0NvbXBvc2VNb2RhbCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9zZSBhIG5ldyBtZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21haW4+XG5cbiAgICAgIHsvKiBNb2RhbHMgYW5kIERpYWxvZ3MgKi99XG4gICAgICA8RGVsZXRlQ29uZmlybURpYWxvZyBcbiAgICAgICAgc2hvdz17c2hvd0RlbGV0ZUNvbmZpcm19XG4gICAgICAgIHNlbGVjdGVkQ291bnQ9e3NlbGVjdGVkRW1haWxJZHMubGVuZ3RofVxuICAgICAgICBvbkNvbmZpcm09e2hhbmRsZURlbGV0ZUNvbmZpcm19XG4gICAgICAgIG9uQ2FuY2VsPXsoKSA9PiBzZXRTaG93RGVsZXRlQ29uZmlybShmYWxzZSl9XG4gICAgICAvPlxuXG4gICAgICB7LyogQ29tcG9zZSBFbWFpbCBEaWFsb2cgKi99XG4gICAgICA8RGlhbG9nIG9wZW49e3Nob3dDb21wb3NlTW9kYWx9IG9uT3BlbkNoYW5nZT17KG9wZW4pID0+ICFvcGVuICYmIHNldFNob3dDb21wb3NlTW9kYWwoZmFsc2UpfT5cbiAgICAgICAgPERpYWxvZ0NvbnRlbnQgY2xhc3NOYW1lPVwic206bWF4LXctWzgwMHB4XSBwLTAgaC1bODB2aF1cIj5cbiAgICAgICAgICA8RGlhbG9nVGl0bGUgYXNDaGlsZD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNyLW9ubHlcIj5OZXcgTWVzc2FnZTwvc3Bhbj5cbiAgICAgICAgICA8L0RpYWxvZ1RpdGxlPlxuICAgICAgICAgIDxDb21wb3NlRW1haWwgXG4gICAgICAgICAgICB0eXBlPXtjb21wb3NlVHlwZX1cbiAgICAgICAgICAgIGluaXRpYWxFbWFpbD17Y29tcG9zZVR5cGUgIT09ICduZXcnID8gKHNlbGVjdGVkRW1haWwgYXMgYW55KSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIG9uU2VuZD17YXN5bmMgKGVtYWlsRGF0YSkgPT4ge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNlbmRFbWFpbChlbWFpbERhdGEpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzZW5kaW5nIGVtYWlsOicsIGVycm9yKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldFNob3dDb21wb3NlTW9kYWwoZmFsc2UpfVxuICAgICAgICAgICAgYWNjb3VudHM9e2FjY291bnRzfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvRGlhbG9nQ29udGVudD5cbiAgICAgIDwvRGlhbG9nPlxuXG4gICAgICB7LyogRWRpdCBQYXNzd29yZCBNb2RhbCAqL31cbiAgICAgIDxEaWFsb2cgb3Blbj17c2hvd0VkaXRNb2RhbH0gb25PcGVuQ2hhbmdlPXtvcGVuID0+IHsgXG4gICAgICAgIGlmICghb3Blbikge1xuICAgICAgICAgIHNldFNob3dFZGl0TW9kYWwoZmFsc2UpO1xuICAgICAgICAgIHNldEVkaXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICBzZXRBY2NvdW50VG9FZGl0KG51bGwpO1xuICAgICAgICAgIHNldE5ld1Bhc3N3b3JkKCcnKTtcbiAgICAgICAgICBzZXRTZWxlY3RlZENvbG9yKCcnKTtcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgIH1cbiAgICAgIH19PlxuICAgICAgICA8RGlhbG9nQ29udGVudCBjbGFzc05hbWU9XCJzbTptYXgtdy1bNTAwcHhdIGJnLXdoaXRlIHRleHQtZ3JheS04MDBcIj5cbiAgICAgICAgICA8RGlhbG9nVGl0bGUgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTgwMFwiPkVkaXQgQWNjb3VudCBTZXR0aW5nczwvRGlhbG9nVGl0bGU+XG4gICAgICAgICAgPGZvcm0gb25TdWJtaXQ9e2FzeW5jIGUgPT4ge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKCFhY2NvdW50VG9FZGl0KSByZXR1cm47XG4gICAgICAgICAgICBzZXRFZGl0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZvcm1FbGVtZW50ID0gZS50YXJnZXQgYXMgSFRNTEZvcm1FbGVtZW50O1xuICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IChmb3JtRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcjZGlzcGxheS1uYW1lJykgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gc2VsZWN0ZWRDb2xvcjtcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIC8vIElmIHBhc3N3b3JkIGlzIGNoYW5nZWQsIHRlc3QgdGhlIGNvbm5lY3Rpb24gZmlyc3RcbiAgICAgICAgICAgICAgaWYgKG5ld1Bhc3N3b3JkKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIC8vIEZpcnN0IGdldCB0aGUgYWNjb3VudCdzIGNvbm5lY3Rpb24gZGV0YWlsc1xuICAgICAgICAgICAgICAgICAgY29uc3QgYWNjb3VudERldGFpbHNSZXMgPSBhd2FpdCBmZXRjaChgL2FwaS9jb3Vycmllci9hY2NvdW50LWRldGFpbHM/YWNjb3VudElkPSR7YWNjb3VudFRvRWRpdC5pZH1gKTtcbiAgICAgICAgICAgICAgICAgIGlmICghYWNjb3VudERldGFpbHNSZXMub2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggYWNjb3VudCBjb25uZWN0aW9uIGRldGFpbHMnKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGFjY291bnREZXRhaWxzID0gYXdhaXQgYWNjb3VudERldGFpbHNSZXMuanNvbigpO1xuICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAvLyBUZXN0IGNvbm5lY3Rpb24gd2l0aCBuZXcgcGFzc3dvcmQgYmVmb3JlIHNhdmluZ1xuICAgICAgICAgICAgICAgICAgY29uc3QgdGVzdFJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9hcGkvY291cnJpZXIvdGVzdC1jb25uZWN0aW9uJywge1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgIGVtYWlsOiBhY2NvdW50VG9FZGl0LmVtYWlsLFxuICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBuZXdQYXNzd29yZCxcbiAgICAgICAgICAgICAgICAgICAgICAvLyBVc2UgdGhlIGFjY291bnQncyBjb25uZWN0aW9uIGRldGFpbHMgZnJvbSB0aGUgQVBJXG4gICAgICAgICAgICAgICAgICAgICAgaG9zdDogYWNjb3VudERldGFpbHMuaG9zdCxcbiAgICAgICAgICAgICAgICAgICAgICBwb3J0OiBhY2NvdW50RGV0YWlscy5wb3J0IHx8IDk5MyxcbiAgICAgICAgICAgICAgICAgICAgICBzZWN1cmU6IGFjY291bnREZXRhaWxzLnNlY3VyZSB8fCB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgY29uc3QgdGVzdFJlc3VsdCA9IGF3YWl0IHRlc3RSZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcih0ZXN0UmVzdWx0LmVycm9yIHx8ICdDb25uZWN0aW9uIHRlc3QgZmFpbGVkIHdpdGggbmV3IHBhc3N3b3JkJyk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDb25uZWN0aW9uIHRlc3Qgc3VjY2Vzc2Z1bCB3aXRoIG5ldyBwYXNzd29yZCcpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciB0ZXN0aW5nIGNvbm5lY3Rpb246JywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXNzd29yZCB0ZXN0IGZhaWxlZDogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ31gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIC8vIENvbnRpbnVlIHdpdGggdGhlIHVwZGF0ZSBpZiB0ZXN0IHBhc3NlZCBvciBubyBwYXNzd29yZCBjaGFuZ2VcbiAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goJy9hcGkvY291cnJpZXIvYWNjb3VudCcsIHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBcbiAgICAgICAgICAgICAgICAgIGFjY291bnRJZDogYWNjb3VudFRvRWRpdC5pZCwgXG4gICAgICAgICAgICAgICAgICBuZXdQYXNzd29yZDogbmV3UGFzc3dvcmQgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgZGlzcGxheV9uYW1lOiBkaXNwbGF5TmFtZSxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvclxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlcy5qc29uKCk7XG4gICAgICAgICAgICAgIGlmICghcmVzLm9rKSB0aHJvdyBuZXcgRXJyb3IoZGF0YS5lcnJvciB8fCAnRmFpbGVkIHRvIHVwZGF0ZSBhY2NvdW50IHNldHRpbmdzJyk7XG4gICAgICAgICAgICAgIHRvYXN0KHsgdGl0bGU6ICdBY2NvdW50IHVwZGF0ZWQnLCBkZXNjcmlwdGlvbjogJ0FjY291bnQgc2V0dGluZ3MgdXBkYXRlZCBzdWNjZXNzZnVsbHkuJyB9KTtcbiAgICAgICAgICAgICAgc2V0U2hvd0VkaXRNb2RhbChmYWxzZSk7XG4gICAgICAgICAgICAgIHNldE5ld1Bhc3N3b3JkKCcnKTtcbiAgICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBsb2NhbCBhY2NvdW50IGRhdGFcbiAgICAgICAgICAgICAgc2V0QWNjb3VudHMoYWNjb3VudHMubWFwKGFjY291bnQgPT4gXG4gICAgICAgICAgICAgICAgYWNjb3VudC5pZCA9PT0gYWNjb3VudFRvRWRpdC5pZCBcbiAgICAgICAgICAgICAgICAgID8gey4uLmFjY291bnQsIG5hbWU6IGRpc3BsYXlOYW1lLCBjb2xvcjogY29sb3J9IFxuICAgICAgICAgICAgICAgICAgOiBhY2NvdW50XG4gICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAvLyBDbGVhciBhY2NvdW50VG9FZGl0IHRvIGVuc3VyZSBmcmVzaCBkYXRhIG9uIG5leHQgZWRpdFxuICAgICAgICAgICAgICBzZXRBY2NvdW50VG9FZGl0KG51bGwpO1xuICAgICAgICAgICAgICAvLyBGb3JjZSBhIHBhZ2UgcmVmcmVzaCB0byByZXNldCBhbGwgVUkgc3RhdGVzXG4gICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICB0b2FzdCh7IHRpdGxlOiAnRXJyb3InLCBkZXNjcmlwdGlvbjogZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdGYWlsZWQgdG8gdXBkYXRlIGFjY291bnQgc2V0dGluZ3MnLCB2YXJpYW50OiAnZGVzdHJ1Y3RpdmUnIH0pO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgc2V0RWRpdExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgICAgICAgIDxMYWJlbCBodG1sRm9yPVwiZGlzcGxheS1uYW1lXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTgwMFwiPkFjY291bnQgTmFtZTwvTGFiZWw+XG4gICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICBpZD1cImRpc3BsYXktbmFtZVwiIFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXthY2NvdW50VG9FZGl0Py5uYW1lfSBcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtdC0xIGJnLXdoaXRlIHRleHQtZ3JheS04MDBcIiBcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZWRpdExvYWRpbmd9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgICAgICAgIDxMYWJlbCBodG1sRm9yPVwibmV3LXBhc3N3b3JkXCIgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTgwMFwiPk5ldyBQYXNzd29yZCAob3B0aW9uYWwpPC9MYWJlbD5cbiAgICAgICAgICAgICAgPElucHV0IFxuICAgICAgICAgICAgICAgIGlkPVwibmV3LXBhc3N3b3JkXCIgXG4gICAgICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCIgXG4gICAgICAgICAgICAgICAgdmFsdWU9e25ld1Bhc3N3b3JkfSBcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBzZXROZXdQYXNzd29yZChlLnRhcmdldC52YWx1ZSl9IFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm10LTEgYmctd2hpdGUgdGV4dC1ncmF5LTgwMFwiIFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTGVhdmUgYmxhbmsgdG8ga2VlcCBjdXJyZW50IHBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZWRpdExvYWRpbmd9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgICAgICAgIDxMYWJlbCBjbGFzc05hbWU9XCJibG9jayBtYi0yIHRleHQtZ3JheS04MDBcIj5BY2NvdW50IENvbG9yPC9MYWJlbD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy01IGdhcC0yXCI+XG4gICAgICAgICAgICAgICAge2NvbG9yUGFsZXR0ZS5tYXAoKGNvbG9yLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgIGlkPXtgY29sb3ItJHtpbmRleH1gfVxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbG9yfVxuICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e3NlbGVjdGVkQ29sb3IgPT09IGNvbG9yfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiBzZXRTZWxlY3RlZENvbG9yKGNvbG9yKX1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzci1vbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgaHRtbEZvcj17YGNvbG9yLSR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2B3LTggaC04IHJvdW5kZWQtZnVsbCBjdXJzb3ItcG9pbnRlciBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciAke2NvbG9yfSBob3ZlcjpyaW5nLTIgaG92ZXI6cmluZy1ibHVlLTMwMCB0cmFuc2l0aW9uLWFsbGB9XG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgYm94U2hhZG93OiBzZWxlY3RlZENvbG9yID09PSBjb2xvciA/ICcwIDAgMCAycHggd2hpdGUsIDAgMCAwIDRweCAjM2I4MmY2JyA6ICdub25lJyB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNlbGVjdGVkQ29sb3IoY29sb3IpfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlbGVjdGVkQ29sb3IgPT09IGNvbG9yICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxDaGVjayBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtd2hpdGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktZW5kIGdhcC0yIG10LTZcIj5cbiAgICAgICAgICAgICAgPEJ1dHRvbiBcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctcmVkLTUwMCBob3ZlcjpiZy1yZWQtNjAwIHRleHQtd2hpdGVcIiBcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRTaG93RWRpdE1vZGFsKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICA8QnV0dG9uIFxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIiBcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1ibHVlLTUwMCBob3ZlcjpiZy1ibHVlLTYwMCB0ZXh0LXdoaXRlXCIgXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2VkaXRMb2FkaW5nfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2VkaXRMb2FkaW5nID8gPExvYWRlcjIgY2xhc3NOYW1lPVwiaC00IHctNCBhbmltYXRlLXNwaW4gbXItMlwiIC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICBTYXZlXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L0RpYWxvZ0NvbnRlbnQ+XG4gICAgICA8L0RpYWxvZz5cblxuICAgICAgey8qIERlbGV0ZSBBY2NvdW50IERpYWxvZyAqL31cbiAgICAgIDxBbGVydERpYWxvZyBvcGVuPXtzaG93RGVsZXRlRGlhbG9nfSBvbk9wZW5DaGFuZ2U9e29wZW4gPT4geyBpZiAoIW9wZW4pIHNldFNob3dEZWxldGVEaWFsb2coZmFsc2UpOyB9fT5cbiAgICAgICAgPEFsZXJ0RGlhbG9nQ29udGVudD5cbiAgICAgICAgICA8QWxlcnREaWFsb2dIZWFkZXI+XG4gICAgICAgICAgICA8QWxlcnREaWFsb2dUaXRsZT5EZWxldGUgQWNjb3VudDwvQWxlcnREaWFsb2dUaXRsZT5cbiAgICAgICAgICAgIDxBbGVydERpYWxvZ0Rlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgYWNjb3VudD8gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS5cbiAgICAgICAgICAgIDwvQWxlcnREaWFsb2dEZXNjcmlwdGlvbj5cbiAgICAgICAgICA8L0FsZXJ0RGlhbG9nSGVhZGVyPlxuICAgICAgICAgIDxBbGVydERpYWxvZ0Zvb3Rlcj5cbiAgICAgICAgICAgIDxBbGVydERpYWxvZ0NhbmNlbCBvbkNsaWNrPXsoKSA9PiBzZXRTaG93RGVsZXRlRGlhbG9nKGZhbHNlKX0+Q2FuY2VsPC9BbGVydERpYWxvZ0NhbmNlbD5cbiAgICAgICAgICAgIDxBbGVydERpYWxvZ0FjdGlvbiBhc0NoaWxkPlxuICAgICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJkZXN0cnVjdGl2ZVwiIGRpc2FibGVkPXtkZWxldGVMb2FkaW5nfSBvbkNsaWNrPXthc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFhY2NvdW50VG9EZWxldGUpIHJldHVybjtcbiAgICAgICAgICAgICAgICBzZXREZWxldGVMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChgL2FwaS9jb3Vycmllci9hY2NvdW50P2FjY291bnRJZD0ke2FjY291bnRUb0RlbGV0ZS5pZH1gLCB7IG1ldGhvZDogJ0RFTEVURScgfSk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzLmpzb24oKTtcbiAgICAgICAgICAgICAgICAgIGlmICghcmVzLm9rKSB0aHJvdyBuZXcgRXJyb3IoZGF0YS5lcnJvciB8fCAnRmFpbGVkIHRvIGRlbGV0ZSBhY2NvdW50Jyk7XG4gICAgICAgICAgICAgICAgICB0b2FzdCh7IHRpdGxlOiAnQWNjb3VudCBkZWxldGVkJywgZGVzY3JpcHRpb246ICdUaGUgYWNjb3VudCB3YXMgZGVsZXRlZCBzdWNjZXNzZnVsbHkuJyB9KTtcbiAgICAgICAgICAgICAgICAgIHNldFNob3dEZWxldGVEaWFsb2coZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgdG9hc3QoeyB0aXRsZTogJ0Vycm9yJywgZGVzY3JpcHRpb246IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnRmFpbGVkIHRvIGRlbGV0ZSBhY2NvdW50JywgdmFyaWFudDogJ2Rlc3RydWN0aXZlJyB9KTtcbiAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgc2V0RGVsZXRlTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fT5EZWxldGU8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvQWxlcnREaWFsb2dBY3Rpb24+XG4gICAgICAgICAgPC9BbGVydERpYWxvZ0Zvb3Rlcj5cbiAgICAgICAgPC9BbGVydERpYWxvZ0NvbnRlbnQ+XG4gICAgICA8L0FsZXJ0RGlhbG9nPlxuICAgIDwvPlxuICApO1xufSJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwidXNlUm91dGVyIiwidXNlU2Vzc2lvbiIsIkxvYWRlcjIiLCJBbGVydENpcmNsZSIsIkVkaXQiLCJJbmJveCIsIlNlbmQiLCJUcmFzaCIsIkZvbGRlciIsIkFsZXJ0T2N0YWdvbiIsIkFyY2hpdmUiLCJNZW51IiwiQ2hlY2siLCJEaWFsb2ciLCJEaWFsb2dDb250ZW50IiwiRGlhbG9nVGl0bGUiLCJBbGVydCIsIkFsZXJ0RGVzY3JpcHRpb24iLCJBbGVydFRpdGxlIiwiQWxlcnREaWFsb2ciLCJBbGVydERpYWxvZ0FjdGlvbiIsIkFsZXJ0RGlhbG9nQ2FuY2VsIiwiQWxlcnREaWFsb2dDb250ZW50IiwiQWxlcnREaWFsb2dEZXNjcmlwdGlvbiIsIkFsZXJ0RGlhbG9nRm9vdGVyIiwiQWxlcnREaWFsb2dIZWFkZXIiLCJBbGVydERpYWxvZ1RpdGxlIiwiQnV0dG9uIiwiSW5wdXQiLCJMYWJlbCIsInRvYXN0IiwiRW1haWxTaWRlYmFyIiwiRW1haWxMaXN0IiwiRW1haWxEZXRhaWxWaWV3IiwiQ29tcG9zZUVtYWlsIiwiRGVsZXRlQ29uZmlybURpYWxvZyIsInVzZUVtYWlsU3RhdGUiLCJTaW1wbGlmaWVkTG9hZGluZ0ZpeCIsInByb2Nlc3MiLCJkaXYiLCJjbGFzc05hbWUiLCJjb2xvclBhbGV0dGUiLCJsb2dFbWFpbE9wIiwib3BlcmF0aW9uIiwiZGV0YWlscyIsImRhdGEiLCJ0aW1lc3RhbXAiLCJEYXRlIiwidG9JU09TdHJpbmciLCJzcGxpdCIsInN1YnN0cmluZyIsImNvbnNvbGUiLCJsb2ciLCJDb3VycmllclBhZ2UiLCJzZXNzaW9uIiwicm91dGVyIiwiYWNjb3VudHMiLCJzZWxlY3RlZEFjY291bnQiLCJzZWxlY3RlZEZvbGRlcnMiLCJjdXJyZW50Rm9sZGVyIiwiZW1haWxzIiwic2VsZWN0ZWRFbWFpbCIsInNlbGVjdGVkRW1haWxJZHMiLCJpc0xvYWRpbmciLCJlcnJvciIsInBhZ2UiLCJ0b3RhbFBhZ2VzIiwidG90YWxFbWFpbHMiLCJtYWlsYm94ZXMiLCJ1bnJlYWRDb3VudE1hcCIsInNob3dGb2xkZXJzIiwibG9hZEVtYWlscyIsImhhbmRsZUVtYWlsU2VsZWN0IiwidG9nZ2xlRW1haWxTZWxlY3Rpb24iLCJ0b2dnbGVTZWxlY3RBbGwiLCJtYXJrRW1haWxBc1JlYWQiLCJ0b2dnbGVTdGFycmVkIiwiY2hhbmdlRm9sZGVyIiwiZGVsZXRlRW1haWxzIiwic2VuZEVtYWlsIiwic2VhcmNoRW1haWxzIiwiZm9ybWF0RW1haWxGb3JBY3Rpb24iLCJzZXRQYWdlIiwic2V0RW1haWxzIiwic2VsZWN0QWNjb3VudCIsImhhbmRsZUxvYWRNb3JlIiwic2hvd0NvbXBvc2VNb2RhbCIsInNldFNob3dDb21wb3NlTW9kYWwiLCJjb21wb3NlVHlwZSIsInNldENvbXBvc2VUeXBlIiwic2hvd0RlbGV0ZUNvbmZpcm0iLCJzZXRTaG93RGVsZXRlQ29uZmlybSIsInNob3dMb2dpbk5lZWRlZCIsInNldFNob3dMb2dpbk5lZWRlZCIsInNpZGViYXJPcGVuIiwic2V0U2lkZWJhck9wZW4iLCJtb2JpbGVTaWRlYmFyT3BlbiIsInNldE1vYmlsZVNpZGViYXJPcGVuIiwibG9hZGluZyIsInNldExvYWRpbmciLCJwcmVmZXRjaFN0YXJ0ZWQiLCJzZXRQcmVmZXRjaFN0YXJ0ZWQiLCJzaG93QWRkQWNjb3VudEZvcm0iLCJzZXRTaG93QWRkQWNjb3VudEZvcm0iLCJzaG93RWRpdE1vZGFsIiwic2V0U2hvd0VkaXRNb2RhbCIsInNob3dEZWxldGVEaWFsb2ciLCJzZXRTaG93RGVsZXRlRGlhbG9nIiwiYWNjb3VudFRvRWRpdCIsInNldEFjY291bnRUb0VkaXQiLCJhY2NvdW50VG9EZWxldGUiLCJzZXRBY2NvdW50VG9EZWxldGUiLCJuZXdQYXNzd29yZCIsInNldE5ld1Bhc3N3b3JkIiwiZWRpdExvYWRpbmciLCJzZXRFZGl0TG9hZGluZyIsImRlbGV0ZUxvYWRpbmciLCJzZXREZWxldGVMb2FkaW5nIiwic2VsZWN0ZWRDb2xvciIsInNldFNlbGVjdGVkQ29sb3IiLCJzZWFyY2hRdWVyeSIsInNldFNlYXJjaFF1ZXJ5IiwidW5yZWFkQ291bnQiLCJzZXRVbnJlYWRDb3VudCIsImlkIiwiZm9sZGVyQ291bnRzIiwidG9TdHJpbmciLCJ0b3RhbFVucmVhZCIsIk9iamVjdCIsInZhbHVlcyIsImZvckVhY2giLCJpc01vdW50ZWQiLCJyZXRyeUNvdW50IiwiTUFYX1JFVFJJRVMiLCJSRVRSWV9ERUxBWSIsImluaXRTZXNzaW9uIiwicmVkaXNTdGF0dXMiLCJmZXRjaCIsInRoZW4iLCJyZXMiLCJqc29uIiwiY2F0Y2giLCJyZWFkeSIsInJlc3BvbnNlIiwiY3JlZGVudGlhbHMiLCJoZWFkZXJzIiwic3RhdHVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXRUaW1lb3V0Iiwib2siLCJFcnJvciIsImF1dGhlbnRpY2F0ZWQiLCJoYXNFbWFpbENyZWRlbnRpYWxzIiwiYWNjb3VudHNDb3VudCIsImFsbEFjY291bnRzIiwibGVuZ3RoIiwiQm9vbGVhbiIsInVwZGF0ZWRBY2NvdW50cyIsIkFycmF5IiwiaXNBcnJheSIsImFjY291bnQiLCJhY2NvdW50Rm9sZGVycyIsImZvbGRlcnMiLCJ2YWxpZEZvbGRlcnMiLCJtYXAiLCJmb2xkZXIiLCJpbmNsdWRlcyIsInB1c2giLCJuYW1lIiwiZGlzcGxheV9uYW1lIiwiZW1haWwiLCJjb2xvciIsImZvbGRlckxpc3QiLCJkaXNwbGF5TmFtZSIsInNldEFjY291bnRzIiwiZmlyc3RBY2NvdW50IiwidXNlciIsImdldEZvbGRlckljb24iLCJmb2xkZXJMb3dlciIsInRvTG93ZXJDYXNlIiwiZm9ybWF0Rm9sZGVyTmFtZSIsImJhc2VGb2xkZXJOYW1lIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImhhbmRsZU1haWxib3hDaGFuZ2UiLCJhY2NvdW50SWQiLCJmaW5hbGx5IiwiaGFuZGxlQWNjb3VudFNlbGVjdCIsImhhbmRsZVJlcGx5IiwiaGFuZGxlUmVwbHlBbGwiLCJoYW5kbGVGb3J3YXJkIiwiaGFuZGxlQ29tcG9zZU5ldyIsImhhbmRsZUJ1bGtBY3Rpb24iLCJhY3Rpb24iLCJlbWFpbElkIiwiaGFuZGxlU2VuZEVtYWlsIiwiZW1haWxEYXRhIiwicmVzdWx0Iiwic3VjY2VzcyIsImhhbmRsZURlbGV0ZUNvbmZpcm0iLCJoYW5kbGVHb1RvTG9naW4iLCJuZXdBY2NvdW50cyIsIndpbmRvd1dpdGhEaXNwYXRjaCIsIndpbmRvdyIsImRpc3BhdGNoRW1haWxBY3Rpb24iLCJ0eXBlIiwicGF5bG9hZCIsInVzZUVtYWlsU3RhdGVEaXNwYXRjaCIsIl9fZW1haWxTdGF0ZURpc3BhdGNoIiwibWFpbiIsIm9uRm9sZGVyQ2hhbmdlIiwib25SZWZyZXNoIiwib25Db21wb3NlTmV3Iiwib25BY2NvdW50U2VsZWN0Iiwib25TaG93QWRkQWNjb3VudEZvcm0iLCJvbkFkZEFjY291bnQiLCJmb3JtRGF0YSIsImZvcm1WYWx1ZXMiLCJnZXQiLCJwYXNzd29yZCIsImhvc3QiLCJwb3J0IiwicGFyc2VJbnQiLCJzZWN1cmUiLCJzbXRwX2hvc3QiLCJzbXRwX3BvcnQiLCJ1bmRlZmluZWQiLCJzbXRwX3NlY3VyZSIsInRlc3RSZXNwb25zZSIsIm1ldGhvZCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwidGVzdFJlc3VsdCIsInJlYWxBY2NvdW50cyIsImZpbHRlciIsImEiLCJzYXZlUmVzcG9uc2UiLCJzYXZlUmVzdWx0IiwicmVhbEFjY291bnQiLCJzYW1wbGVGb2xkZXJzIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImR1cmF0aW9uIiwibWVzc2FnZSIsInZhcmlhbnQiLCJvbkVkaXRBY2NvdW50IiwidXBkYXRlZEFjY291bnQiLCJmaW5kIiwib25EZWxldGVBY2NvdW50Iiwib25TZWxlY3RFbWFpbCIsInNpemUiLCJvbkNsaWNrIiwic3BhbiIsInAiLCJvblNjcm9sbCIsImUiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiZGlzdGFuY2VUb0JvdHRvbSIsInNjcm9sbFBlcmNlbnRhZ2UiLCJsYXN0U2Nyb2xsVG9wIiwiZGF0YXNldCIsInNjcm9sbGluZ0Rvd24iLCJub3ciLCJsYXN0TG9nIiwibGFzdExvZ1RpbWUiLCJNYXRoIiwicm91bmQiLCJsYXN0VHJpZ2dlciIsImxhc3RUcmlnZ2VyVGltZSIsInRocm90dGxlVGltZSIsImgzIiwiZW1haWxBY2NvdW50SWQiLCJlbWFpbEZvbGRlciIsIm9uVG9nZ2xlU2VsZWN0Iiwib25Ub2dnbGVTZWxlY3RBbGwiLCJvblRvZ2dsZVN0YXJyZWQiLCJvbkxvYWRNb3JlIiwiaGFzTW9yZUVtYWlscyIsIm9uQnVsa0FjdGlvbiIsIm9uQmFjayIsIm9uUmVwbHkiLCJvblJlcGx5QWxsIiwib25Gb3J3YXJkIiwib25Ub2dnbGVTdGFyIiwiYnV0dG9uIiwic2hvdyIsInNlbGVjdGVkQ291bnQiLCJvbkNvbmZpcm0iLCJvbkNhbmNlbCIsIm9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJhc0NoaWxkIiwiaW5pdGlhbEVtYWlsIiwib25TZW5kIiwib25DbG9zZSIsImxvY2F0aW9uIiwicmVsb2FkIiwiZm9ybSIsIm9uU3VibWl0IiwicHJldmVudERlZmF1bHQiLCJmb3JtRWxlbWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJ2YWx1ZSIsImFjY291bnREZXRhaWxzUmVzIiwiYWNjb3VudERldGFpbHMiLCJlcnIiLCJodG1sRm9yIiwiZGVmYXVsdFZhbHVlIiwiZGlzYWJsZWQiLCJvbkNoYW5nZSIsInBsYWNlaG9sZGVyIiwiaW5kZXgiLCJpbnB1dCIsImNoZWNrZWQiLCJsYWJlbCIsInN0eWxlIiwiYm94U2hhZG93Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/courrier/page.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/email/BulkActionsToolbar.tsx":
/*!*************************************************!*\
!*** ./components/email/BulkActionsToolbar.tsx ***!
\*************************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BulkActionsToolbar)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _barrel_optimize_names_Archive_EyeOff_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Archive,EyeOff,Trash2!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/eye-off.js\");\n/* harmony import */ var _barrel_optimize_names_Archive_EyeOff_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Archive,EyeOff,Trash2!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/archive.js\");\n/* harmony import */ var _barrel_optimize_names_Archive_EyeOff_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Archive,EyeOff,Trash2!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash-2.js\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/tooltip */ \"(app-pages-browser)/./components/ui/tooltip.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\nfunction BulkActionsToolbar(param) {\n let { selectedCount, onBulkAction } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"bg-blue-50 border-b border-blue-100 px-4 py-2 flex items-center justify-between shadow-md transition-all duration-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs font-medium text-blue-700\",\n children: [\n selectedCount,\n \" selected\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 24,\n columnNumber: 7\n }, this),\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)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipProvider, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.Tooltip, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"h-7 w-7 text-blue-600 hover:text-blue-900 hover:bg-blue-100\",\n onClick: ()=>onBulkAction('mark-unread'),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Archive_EyeOff_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-3.5 w-3.5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 37,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 31,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 30,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipContent, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"Mark as unread\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 41,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 40,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 29,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 28,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipProvider, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.Tooltip, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"h-7 w-7 text-blue-600 hover:text-blue-900 hover:bg-blue-100\",\n onClick: ()=>onBulkAction('archive'),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Archive_EyeOff_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-3.5 w-3.5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 55,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 49,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 48,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipContent, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"Archive\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 59,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 58,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 47,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 46,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipProvider, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.Tooltip, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"h-7 w-7 text-red-600 hover:text-red-700 hover:bg-red-50\",\n onClick: ()=>onBulkAction('delete'),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Archive_EyeOff_Trash2_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-3.5 w-3.5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 73,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 67,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 66,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tooltip__WEBPACK_IMPORTED_MODULE_3__.TooltipContent, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"Delete\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 77,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 76,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 65,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 64,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 27,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/BulkActionsToolbar.tsx\",\n lineNumber: 23,\n columnNumber: 5\n }, this);\n}\n_c = BulkActionsToolbar;\nvar _c;\n$RefreshReg$(_c, \"BulkActionsToolbar\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvQnVsa0FjdGlvbnNUb29sYmFyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBRTBCO0FBQzZCO0FBQ1A7QUFNZjtBQU9sQixTQUFTUyxtQkFBbUIsS0FHakI7UUFIaUIsRUFDekNDLGFBQWEsRUFDYkMsWUFBWSxFQUNZLEdBSGlCO0lBSXpDLHFCQUNFLDhEQUFDQztRQUFJQyxXQUFVOzswQkFDYiw4REFBQ0M7Z0JBQUtELFdBQVU7O29CQUNiSDtvQkFBYzs7Ozs7OzswQkFFakIsOERBQUNFO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ04sbUVBQWVBO2tDQUNkLDRFQUFDRiwyREFBT0E7OzhDQUNOLDhEQUFDRyxrRUFBY0E7b0NBQUNPLE9BQU87OENBQ3JCLDRFQUFDWCx5REFBTUE7d0NBQ0xZLFNBQVE7d0NBQ1JDLE1BQUs7d0NBQ0xKLFdBQVU7d0NBQ1ZLLFNBQVMsSUFBTVAsYUFBYTtrREFFNUIsNEVBQUNSLGlHQUFNQTs0Q0FBQ1UsV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs4Q0FHdEIsOERBQUNQLGtFQUFjQTs4Q0FDYiw0RUFBQ2E7a0RBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBS1QsOERBQUNaLG1FQUFlQTtrQ0FDZCw0RUFBQ0YsMkRBQU9BOzs4Q0FDTiw4REFBQ0csa0VBQWNBO29DQUFDTyxPQUFPOzhDQUNyQiw0RUFBQ1gseURBQU1BO3dDQUNMWSxTQUFRO3dDQUNSQyxNQUFLO3dDQUNMSixXQUFVO3dDQUNWSyxTQUFTLElBQU1QLGFBQWE7a0RBRTVCLDRFQUFDVCxpR0FBT0E7NENBQUNXLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7OENBR3ZCLDhEQUFDUCxrRUFBY0E7OENBQ2IsNEVBQUNhO2tEQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQUtULDhEQUFDWixtRUFBZUE7a0NBQ2QsNEVBQUNGLDJEQUFPQTs7OENBQ04sOERBQUNHLGtFQUFjQTtvQ0FBQ08sT0FBTzs4Q0FDckIsNEVBQUNYLHlEQUFNQTt3Q0FDTFksU0FBUTt3Q0FDUkMsTUFBSzt3Q0FDTEosV0FBVTt3Q0FDVkssU0FBUyxJQUFNUCxhQUFhO2tEQUU1Qiw0RUFBQ1YsaUdBQU1BOzRDQUFDWSxXQUFVOzs7Ozs7Ozs7Ozs7Ozs7OzhDQUd0Qiw4REFBQ1Asa0VBQWNBOzhDQUNiLDRFQUFDYTtrREFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9qQjtLQWxFd0JWIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvZW1haWwvQnVsa0FjdGlvbnNUb29sYmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBUcmFzaDIsIEFyY2hpdmUsIEV5ZU9mZiB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvYnV0dG9uJztcbmltcG9ydCB7XG4gIFRvb2x0aXAsXG4gIFRvb2x0aXBDb250ZW50LFxuICBUb29sdGlwUHJvdmlkZXIsXG4gIFRvb2x0aXBUcmlnZ2VyLFxufSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL3Rvb2x0aXBcIjtcblxuaW50ZXJmYWNlIEJ1bGtBY3Rpb25zVG9vbGJhclByb3BzIHtcbiAgc2VsZWN0ZWRDb3VudDogbnVtYmVyO1xuICBvbkJ1bGtBY3Rpb246IChhY3Rpb246ICdkZWxldGUnIHwgJ21hcmstcmVhZCcgfCAnbWFyay11bnJlYWQnIHwgJ2FyY2hpdmUnKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBCdWxrQWN0aW9uc1Rvb2xiYXIoe1xuICBzZWxlY3RlZENvdW50LFxuICBvbkJ1bGtBY3Rpb25cbn06IEJ1bGtBY3Rpb25zVG9vbGJhclByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJiZy1ibHVlLTUwIGJvcmRlci1iIGJvcmRlci1ibHVlLTEwMCBweC00IHB5LTIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHNoYWRvdy1tZCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0yMDBcIj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1tZWRpdW0gdGV4dC1ibHVlLTcwMFwiPlxuICAgICAgICB7c2VsZWN0ZWRDb3VudH0gc2VsZWN0ZWRcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgICAgPFRvb2x0aXBQcm92aWRlcj5cbiAgICAgICAgICA8VG9vbHRpcD5cbiAgICAgICAgICAgIDxUb29sdGlwVHJpZ2dlciBhc0NoaWxkPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC03IHctNyB0ZXh0LWJsdWUtNjAwIGhvdmVyOnRleHQtYmx1ZS05MDAgaG92ZXI6YmctYmx1ZS0xMDBcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQnVsa0FjdGlvbignbWFyay11bnJlYWQnKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxFeWVPZmYgY2xhc3NOYW1lPVwiaC0zLjUgdy0zLjVcIiAvPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcFRyaWdnZXI+XG4gICAgICAgICAgICA8VG9vbHRpcENvbnRlbnQ+XG4gICAgICAgICAgICAgIDxwPk1hcmsgYXMgdW5yZWFkPC9wPlxuICAgICAgICAgICAgPC9Ub29sdGlwQ29udGVudD5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDwvVG9vbHRpcFByb3ZpZGVyPlxuXG4gICAgICAgIDxUb29sdGlwUHJvdmlkZXI+XG4gICAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgICA8VG9vbHRpcFRyaWdnZXIgYXNDaGlsZD5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cImljb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtNyB3LTcgdGV4dC1ibHVlLTYwMCBob3Zlcjp0ZXh0LWJsdWUtOTAwIGhvdmVyOmJnLWJsdWUtMTAwXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkJ1bGtBY3Rpb24oJ2FyY2hpdmUnKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxBcmNoaXZlIGNsYXNzTmFtZT1cImgtMy41IHctMy41XCIgLz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXBUcmlnZ2VyPlxuICAgICAgICAgICAgPFRvb2x0aXBDb250ZW50PlxuICAgICAgICAgICAgICA8cD5BcmNoaXZlPC9wPlxuICAgICAgICAgICAgPC9Ub29sdGlwQ29udGVudD5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDwvVG9vbHRpcFByb3ZpZGVyPlxuXG4gICAgICAgIDxUb29sdGlwUHJvdmlkZXI+XG4gICAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgICA8VG9vbHRpcFRyaWdnZXIgYXNDaGlsZD5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cImljb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtNyB3LTcgdGV4dC1yZWQtNjAwIGhvdmVyOnRleHQtcmVkLTcwMCBob3ZlcjpiZy1yZWQtNTBcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQnVsa0FjdGlvbignZGVsZXRlJyl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VHJhc2gyIGNsYXNzTmFtZT1cImgtMy41IHctMy41XCIgLz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L1Rvb2x0aXBUcmlnZ2VyPlxuICAgICAgICAgICAgPFRvb2x0aXBDb250ZW50PlxuICAgICAgICAgICAgICA8cD5EZWxldGU8L3A+XG4gICAgICAgICAgICA8L1Rvb2x0aXBDb250ZW50PlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgPC9Ub29sdGlwUHJvdmlkZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn0gIl0sIm5hbWVzIjpbIlJlYWN0IiwiVHJhc2gyIiwiQXJjaGl2ZSIsIkV5ZU9mZiIsIkJ1dHRvbiIsIlRvb2x0aXAiLCJUb29sdGlwQ29udGVudCIsIlRvb2x0aXBQcm92aWRlciIsIlRvb2x0aXBUcmlnZ2VyIiwiQnVsa0FjdGlvbnNUb29sYmFyIiwic2VsZWN0ZWRDb3VudCIsIm9uQnVsa0FjdGlvbiIsImRpdiIsImNsYXNzTmFtZSIsInNwYW4iLCJhc0NoaWxkIiwidmFyaWFudCIsInNpemUiLCJvbkNsaWNrIiwicCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/BulkActionsToolbar.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/email/ComposeEmail.tsx":
/*!*******************************************!*\
!*** ./components/email/ComposeEmail.tsx ***!
\*******************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ComposeEmail)\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 styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-jsx/style */ \"(app-pages-browser)/./node_modules/styled-jsx/style.js\");\n/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__);\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_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronDown,Loader2,Paperclip,SendHorizontal,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronDown,Loader2,Paperclip,SendHorizontal,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-down.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronDown,Loader2,Paperclip,SendHorizontal,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/paperclip.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronDown,Loader2,Paperclip,SendHorizontal,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-circle.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronDown,Loader2,Paperclip,SendHorizontal,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/send-horizontal.js\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./components/ui/input.tsx\");\n/* harmony import */ var _components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/dropdown-menu */ \"(app-pages-browser)/./components/ui/dropdown-menu.tsx\");\n/* harmony import */ var _components_email_RichEmailEditor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/email/RichEmailEditor */ \"(app-pages-browser)/./components/email/RichEmailEditor.tsx\");\n/* harmony import */ var _lib_utils_email_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/lib/utils/email-utils */ \"(app-pages-browser)/./lib/utils/email-utils.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n// Import from the centralized utils\n\nfunction ComposeEmail(props) {\n _s();\n const { initialEmail, type = 'new', onClose, onSend, accounts = [] } = props;\n // State for email form\n const [selectedAccount, setSelectedAccount] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(accounts[0]);\n const [to, setTo] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('');\n const [cc, setCc] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('');\n const [bcc, setBcc] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('');\n const [subject, setSubject] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('');\n const [emailContent, setEmailContent] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)('');\n const [showCc, setShowCc] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const [showBcc, setShowBcc] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const [sending, setSending] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const [attachments, setAttachments] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)([]);\n // Reference to editor\n const editorRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n // Helper function to get formatted info from email\n function getFormattedInfoForEmail(email) {\n var _email_from;\n // Format the subject\n const subject = email.subject || '';\n // Format the date\n const dateStr = email.date ? new Date(email.date).toLocaleString() : 'Unknown Date';\n // Format sender\n const fromStr = Array.isArray(email.from) ? email.from.map((addr)=>{\n if (typeof addr === 'string') return addr;\n return addr.name ? \"\".concat(addr.name, \" <\").concat(addr.address, \">\") : addr.address;\n }).join(', ') : typeof email.from === 'string' ? email.from : ((_email_from = email.from) === null || _email_from === void 0 ? void 0 : _email_from.address) ? email.from.name ? \"\".concat(email.from.name, \" <\").concat(email.from.address, \">\") : email.from.address : 'Unknown Sender';\n // Format recipients\n const toStr = Array.isArray(email.to) ? email.to.map((addr)=>{\n if (typeof addr === 'string') return addr;\n return addr.name ? \"\".concat(addr.name, \" <\").concat(addr.address, \">\") : addr.address;\n }).join(', ') : typeof email.to === 'string' ? email.to : '';\n // Format CC \n const ccStr = Array.isArray(email.cc) ? email.cc.map((addr)=>{\n if (typeof addr === 'string') return addr;\n return addr.name ? \"\".concat(addr.name, \" <\").concat(addr.address, \">\") : addr.address;\n }).join(', ') : typeof email.cc === 'string' ? email.cc : '';\n return {\n fromStr,\n toStr,\n ccStr,\n dateStr,\n subject\n };\n }\n // Initialize email form based on initial email and type\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)({\n \"ComposeEmail.useEffect\": ()=>{\n if (initialEmail) {\n try {\n console.log('Initializing compose with email:', {\n id: initialEmail.id,\n subject: initialEmail.subject,\n hasContent: !!initialEmail.content,\n contentType: initialEmail.content ? typeof initialEmail.content : 'none'\n });\n // Set default account from original email - use type assertion since accountId might be custom property\n const emailAny = initialEmail;\n if (emailAny.accountId && (accounts === null || accounts === void 0 ? void 0 : accounts.length)) {\n const account = accounts.find({\n \"ComposeEmail.useEffect.account\": (a)=>a.id === emailAny.accountId\n }[\"ComposeEmail.useEffect.account\"]);\n if (account) {\n setSelectedAccount(account);\n }\n }\n // Get recipients based on type\n if (type === 'reply' || type === 'reply-all') {\n // Get formatted data for reply\n const formatted = (0,_lib_utils_email_utils__WEBPACK_IMPORTED_MODULE_7__.formatReplyEmail)(initialEmail, type);\n // Set reply addresses\n setTo(formatted.to);\n if (formatted.cc) {\n setShowCc(true);\n setCc(formatted.cc);\n }\n // Set subject\n setSubject(formatted.subject);\n // Set content with original email - ensure we have content\n const content = formatted.content.html || formatted.content.text || '';\n if (!content) {\n console.warn('Reply content is empty, falling back to a basic template');\n // Provide a basic template if the content is empty\n const { fromStr, dateStr } = getFormattedInfoForEmail(initialEmail);\n const fallbackContent = '\\n <div style=\"margin: 20px 0 10px 0; color: #666; border-bottom: 1px solid #ddd; padding-bottom: 5px;\">\\n On '.concat(dateStr, \", \").concat(fromStr, ' wrote:\\n </div>\\n <blockquote style=\"margin: 0; padding-left: 10px; border-left: 3px solid #ddd; color: #505050; background-color: #f9f9f9; padding: 10px;\">\\n [Original message content could not be loaded]\\n </blockquote>\\n ');\n setEmailContent(fallbackContent);\n } else {\n console.log('Setting reply content:', {\n length: content.length,\n isHtml: formatted.content.isHtml,\n startsWithHtml: content.trim().startsWith('<'),\n contentType: typeof content\n });\n setEmailContent(content);\n }\n // Handle any attachments from reply (e.g., inline images extracted as attachments)\n if (formatted.attachments && formatted.attachments.length > 0) {\n const formattedAttachments = formatted.attachments.map({\n \"ComposeEmail.useEffect.formattedAttachments\": (att)=>({\n name: att.filename || 'attachment',\n type: att.contentType || 'application/octet-stream',\n content: att.content || ''\n })\n }[\"ComposeEmail.useEffect.formattedAttachments\"]);\n setAttachments(formattedAttachments);\n }\n } else if (type === 'forward') {\n // Get formatted data for forward\n const formatted = (0,_lib_utils_email_utils__WEBPACK_IMPORTED_MODULE_7__.formatForwardedEmail)(initialEmail);\n // Set subject\n setSubject(formatted.subject);\n // Set content with original email - ensure we have content\n const content = formatted.content.html || formatted.content.text || '';\n if (!content) {\n console.warn('Forward content is empty, falling back to a basic template');\n // Provide a basic template if the content is empty\n const { fromStr, dateStr, subject: origSubject, toStr, ccStr } = getFormattedInfoForEmail(initialEmail);\n console.log('Creating forward fallback with:', {\n fromStr,\n dateStr,\n origSubject\n });\n const fallbackContent = '\\n <div style=\"margin: 20px 0 10px 0; color: #666; font-family: Arial, sans-serif;\">\\n <div style=\"border-bottom: 1px solid #ccc; margin-bottom: 10px; padding-bottom: 5px;\">\\n <div>---------------------------- Forwarded Message ----------------------------</div>\\n </div>\\n <table style=\"margin-bottom: 10px; font-size: 14px;\">\\n <tr>\\n <td style=\"padding: 3px 10px 3px 0; font-weight: bold; text-align: right; vertical-align: top;\">From:</td>\\n <td style=\"padding: 3px 0;\">'.concat(fromStr, '</td>\\n </tr>\\n <tr>\\n <td style=\"padding: 3px 10px 3px 0; font-weight: bold; text-align: right; vertical-align: top;\">Date:</td>\\n <td style=\"padding: 3px 0;\">').concat(dateStr, '</td>\\n </tr>\\n <tr>\\n <td style=\"padding: 3px 10px 3px 0; font-weight: bold; text-align: right; vertical-align: top;\">Subject:</td>\\n <td style=\"padding: 3px 0;\">').concat(origSubject || '', '</td>\\n </tr>\\n <tr>\\n <td style=\"padding: 3px 10px 3px 0; font-weight: bold; text-align: right; vertical-align: top;\">To:</td>\\n <td style=\"padding: 3px 0;\">').concat(toStr, \"</td>\\n </tr>\\n \").concat(ccStr ? '\\n <tr>\\n <td style=\"padding: 3px 10px 3px 0; font-weight: bold; text-align: right; vertical-align: top;\">Cc:</td>\\n <td style=\"padding: 3px 0;\">'.concat(ccStr, \"</td>\\n </tr>\") : '', '\\n </table>\\n <div style=\"border-bottom: 1px solid #ccc; margin-top: 5px; margin-bottom: 15px; padding-bottom: 5px;\">\\n <div>----------------------------------------------------------------------</div>\\n </div>\\n </div>\\n <div class=\"forwarded-content\" style=\"margin: 0; color: #333;\">\\n [Original message content could not be loaded]\\n </div>\\n ');\n setEmailContent(fallbackContent);\n } else {\n console.log('Setting forward content:', {\n length: content.length,\n isHtml: formatted.content.isHtml\n });\n setEmailContent(content);\n }\n // Handle attachments for forward (original attachments + extracted inline images)\n if (formatted.attachments && formatted.attachments.length > 0) {\n console.log(\"Processing \".concat(formatted.attachments.length, \" attachments for forwarded email\"));\n const formattedAttachments = formatted.attachments.map({\n \"ComposeEmail.useEffect.formattedAttachments\": (att)=>({\n name: att.filename || 'attachment',\n type: att.contentType || 'application/octet-stream',\n content: att.content || ''\n })\n }[\"ComposeEmail.useEffect.formattedAttachments\"]);\n setAttachments(formattedAttachments);\n }\n }\n } catch (error) {\n console.error('Error initializing compose form:', error);\n // Provide a fallback in case of error\n setEmailContent('<p>Error loading email content</p>');\n }\n }\n }\n }[\"ComposeEmail.useEffect\"], [\n initialEmail,\n type,\n accounts\n ]);\n // Place cursor at beginning and ensure content is scrolled to top\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)({\n \"ComposeEmail.useEffect\": ()=>{\n if (editorRef.current && type !== 'new') {\n // Small delay to ensure DOM is ready\n setTimeout({\n \"ComposeEmail.useEffect\": ()=>{\n if (editorRef.current) {\n // Focus the editor\n editorRef.current.focus();\n // Also make sure editor container is scrolled to top\n editorRef.current.scrollTop = 0;\n // Find parent scrollable containers and scroll them to top\n let parent = editorRef.current.parentElement;\n while(parent){\n if (parent.classList.contains('overflow-y-auto')) {\n parent.scrollTop = 0;\n }\n parent = parent.parentElement;\n }\n }\n }\n }[\"ComposeEmail.useEffect\"], 100);\n }\n }\n }[\"ComposeEmail.useEffect\"], [\n emailContent,\n type\n ]);\n // Handle file attachments\n const handleAttachmentAdd = async (files)=>{\n const newAttachments = Array.from(files).map((file)=>({\n name: file.name,\n type: file.type,\n content: URL.createObjectURL(file)\n }));\n setAttachments((prev)=>[\n ...prev,\n ...newAttachments\n ]);\n };\n const handleAttachmentRemove = (index)=>{\n setAttachments((prev)=>prev.filter((_, i)=>i !== index));\n };\n // Handle sending email\n const handleSend = async ()=>{\n if (!to) {\n alert('Please specify at least one recipient');\n return;\n }\n setSending(true);\n try {\n await onSend({\n to,\n cc: cc || undefined,\n bcc: bcc || undefined,\n subject,\n body: emailContent,\n fromAccount: selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.id,\n attachments\n });\n // Reset form and close\n onClose();\n } catch (error) {\n console.error('Error sending email:', error);\n alert('Failed to send email. Please try again.');\n } finally{\n setSending(false);\n }\n };\n // Get compose title based on type\n const getComposeTitle = ()=>{\n switch(type){\n case 'reply':\n return 'Reply';\n case 'reply-all':\n return 'Reply All';\n case 'forward':\n return 'Forward';\n default:\n return 'New Message';\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex flex-col h-full max-h-[80vh] bg-white border rounded-md shadow-md\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center justify-between p-3 border-b bg-gray-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"text-lg font-medium text-gray-800\",\n children: getComposeTitle()\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 353,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n onClick: onClose,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 355,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 354,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 352,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex-1 overflow-y-auto bg-white\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"p-2 space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"border-b pb-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"w-16 text-gray-700 text-sm font-medium\",\n children: \"From:\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 365,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.DropdownMenu, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.DropdownMenuTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"outline\",\n className: \"w-full flex justify-between items-center h-8 px-2 py-1 text-left font-normal bg-white text-gray-800 border-gray-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"truncate\",\n children: selectedAccount ? selectedAccount.display_name ? \"\".concat(selectedAccount.display_name, \" <\").concat(selectedAccount.email, \">\") : selectedAccount.email : 'Select account'\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 372,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-4 w-4 opacity-50\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 379,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 368,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 367,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.DropdownMenuContent, {\n align: \"start\",\n className: \"w-[240px]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.DropdownMenuLabel, {\n children: \"Select account\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 383,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.DropdownMenuSeparator, {}, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 384,\n columnNumber: 19\n }, this),\n accounts.length > 0 ? accounts.map((account)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.DropdownMenuItem, {\n onClick: ()=>setSelectedAccount(account),\n className: \"cursor-pointer hover:bg-blue-50 focus:bg-blue-50\",\n children: account.display_name ? \"\".concat(account.display_name, \" <\").concat(account.email, \">\") : account.email\n }, account.id, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 387,\n columnNumber: 23\n }, this)) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.DropdownMenuItem, {\n disabled: true,\n children: \"No accounts available\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 398,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 382,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 366,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 364,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 363,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"border-b pb-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"w-16 text-gray-700 text-sm font-medium\",\n children: \"To:\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 408,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_4__.Input, {\n type: \"text\",\n value: to,\n onChange: (e)=>setTo(e.target.value),\n placeholder: \"recipient@example.com\",\n className: \"flex-1 border-0 shadow-none focus-visible:ring-0 px-0 h-8 bg-white text-gray-800\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 409,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 407,\n columnNumber: 13\n }, this),\n showCc && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"w-16 text-gray-700 text-sm font-medium\",\n children: \"Cc:\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 420,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_4__.Input, {\n type: \"text\",\n value: cc,\n onChange: (e)=>setCc(e.target.value),\n placeholder: \"cc@example.com\",\n className: \"flex-1 border-0 shadow-none focus-visible:ring-0 px-0 h-8 bg-white text-gray-800\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 421,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 419,\n columnNumber: 15\n }, this),\n showBcc && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"w-16 text-gray-700 text-sm font-medium\",\n children: \"Bcc:\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 433,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_4__.Input, {\n type: \"text\",\n value: bcc,\n onChange: (e)=>setBcc(e.target.value),\n placeholder: \"bcc@example.com\",\n className: \"flex-1 border-0 shadow-none focus-visible:ring-0 px-0 h-8 bg-white text-gray-800\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 434,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 432,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex gap-3 ml-16\",\n children: [\n !showCc && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowCc(true),\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"text-blue-600 text-sm hover:underline\",\n children: \"Add Cc\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 447,\n columnNumber: 17\n }, this),\n !showBcc && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowBcc(true),\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"text-blue-600 text-sm hover:underline\",\n children: \"Add Bcc\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 456,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 445,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 406,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"border-b pb-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"w-16 text-gray-700 text-sm font-medium\",\n children: \"Subject:\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 469,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_4__.Input, {\n type: \"text\",\n value: subject,\n onChange: (e)=>setSubject(e.target.value),\n placeholder: \"Subject\",\n className: \"flex-1 border-0 shadow-none focus-visible:ring-0 px-0 h-8 bg-white text-gray-800\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 470,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 468,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 467,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_email_RichEmailEditor__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n initialContent: emailContent,\n onChange: (html)=>{\n setEmailContent(html);\n },\n placeholder: \"Write your message here...\",\n minHeight: \"320px\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 481,\n columnNumber: 11\n }, this),\n attachments.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"p-2 border rounded-md bg-gray-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"text-sm font-medium mb-1 text-gray-700\",\n children: \"Attachments:\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 493,\n columnNumber: 15\n }, this),\n attachments.map((file, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center justify-between text-sm py-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"truncate mr-2 text-gray-800\",\n children: file.name\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 496,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"ghost\",\n size: \"sm\",\n onClick: ()=>handleAttachmentRemove(index),\n className: \"h-6 w-6 p-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 503,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 497,\n columnNumber: 19\n }, this)\n ]\n }, index, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 495,\n columnNumber: 17\n }, this))\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 492,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 361,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 360,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"border-t p-3 flex items-center justify-between bg-gray-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"file\",\n id: \"file-attachment\",\n multiple: true,\n onChange: (e)=>{\n if (e.target.files && e.target.files.length > 0) {\n handleAttachmentAdd(e.target.files);\n }\n },\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"hidden\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 516,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: \"file-attachment\",\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"cursor-pointer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"ghost\",\n size: \"sm\",\n className: \"p-1 text-gray-700 hover:bg-gray-100\",\n title: \"Attach files\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 534,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 528,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 527,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 514,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-4bd026b7b30bfd4c\" + \" \" + \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"default\",\n onClick: onClose,\n className: \"bg-red-600 hover:bg-red-700 text-white\",\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 540,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"default\",\n onClick: handleSend,\n disabled: sending,\n className: \"bg-blue-600 hover:bg-blue-700 text-white\",\n children: sending ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"mr-2 h-4 w-4 animate-spin\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 556,\n columnNumber: 17\n }, this),\n \"Sending\"\n ]\n }, void 0, true) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronDown_Loader2_Paperclip_SendHorizontal_X_lucide_react__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n className: \"mr-2 h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 561,\n columnNumber: 17\n }, this),\n \"Send\"\n ]\n }, void 0, true)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 548,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 539,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 513,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {\n id: \"4bd026b7b30bfd4c\",\n children: '[contenteditable]{-webkit-user-modify:read-write-plaintext-only;word-wrap:break-word;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:text;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif;font-size:14px;line-height:1.5;color:#333;background-color:#fff}[contenteditable]:focus{outline:none}[contenteditable] blockquote{margin:10px 0;padding-left:15px;border-left:2px solid#ddd;color:#666}[contenteditable] img{max-width:100%;height:auto}[contenteditable] table{border-collapse:collapse;width:100%;max-width:100%;margin-bottom:1rem}[contenteditable] th,[contenteditable] td{padding:5px;border:1px solid#ddd}[contenteditable] th{background-color:#f8f9fa;font-weight:600;text-align:left}.email-original-content{margin-top:20px;color:#505050}'\n }, void 0, false, void 0, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/ComposeEmail.tsx\",\n lineNumber: 350,\n columnNumber: 5\n }, this);\n}\n_s(ComposeEmail, \"YH9IrkUO0NjBIMqJAnsJbMh4UoQ=\");\n_c = ComposeEmail;\nvar _c;\n$RefreshReg$(_c, \"ComposeEmail\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvQ29tcG9zZUVtYWlsLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW9EO0FBRzlCO0FBQzBCO0FBQ0Y7QUFTUDtBQUMwQjtBQUdqRSxvQ0FBb0M7QUFJSDtBQStCbEIsU0FBU21CLGFBQWFDLEtBQXdCOztJQUMzRCxNQUFNLEVBQUVDLFlBQVksRUFBRUMsT0FBTyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxXQUFXLEVBQUUsRUFBRSxHQUFHTDtJQUV2RSx1QkFBdUI7SUFDdkIsTUFBTSxDQUFDTSxpQkFBaUJDLG1CQUFtQixHQUFHM0IsK0NBQVFBLENBQU15QixRQUFRLENBQUMsRUFBRTtJQUN2RSxNQUFNLENBQUNHLElBQUlDLE1BQU0sR0FBRzdCLCtDQUFRQSxDQUFDO0lBQzdCLE1BQU0sQ0FBQzhCLElBQUlDLE1BQU0sR0FBRy9CLCtDQUFRQSxDQUFDO0lBQzdCLE1BQU0sQ0FBQ2dDLEtBQUtDLE9BQU8sR0FBR2pDLCtDQUFRQSxDQUFDO0lBQy9CLE1BQU0sQ0FBQ2tDLFNBQVNDLFdBQVcsR0FBR25DLCtDQUFRQSxDQUFDO0lBQ3ZDLE1BQU0sQ0FBQ29DLGNBQWNDLGdCQUFnQixHQUFHckMsK0NBQVFBLENBQUM7SUFDakQsTUFBTSxDQUFDc0MsUUFBUUMsVUFBVSxHQUFHdkMsK0NBQVFBLENBQUM7SUFDckMsTUFBTSxDQUFDd0MsU0FBU0MsV0FBVyxHQUFHekMsK0NBQVFBLENBQUM7SUFDdkMsTUFBTSxDQUFDMEMsU0FBU0MsV0FBVyxHQUFHM0MsK0NBQVFBLENBQUM7SUFDdkMsTUFBTSxDQUFDNEMsYUFBYUMsZUFBZSxHQUFHN0MsK0NBQVFBLENBQXdELEVBQUU7SUFFeEcsc0JBQXNCO0lBQ3RCLE1BQU04QyxZQUFZN0MsNkNBQU1BLENBQWlCO0lBRXpDLG1EQUFtRDtJQUNuRCxTQUFTOEMseUJBQXlCQyxLQUFVO1lBZXBDQTtRQWROLHFCQUFx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b0NBQ0w4RyxTQUFRO29DQUNSQyxNQUFLO29DQUNMRSxXQUFVO29DQUNWa0IsT0FBTTs4Q0FFTiw0RUFBQ3ZJLDJIQUFTQTt3Q0FBQ3FILFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBSzNCLDhEQUFDTDtrRUFBYzs7MENBQ2IsOERBQUM1Ryx5REFBTUE7Z0NBQ0w4RyxTQUFRO2dDQUNSRSxTQUFTakc7Z0NBQ1RrRyxXQUFVOzBDQUNYOzs7Ozs7MENBSUQsOERBQUNqSCx5REFBTUE7Z0NBQ0w4RyxTQUFRO2dDQUNSRSxTQUFTVjtnQ0FDVGdCLFVBQVVwRjtnQ0FDVitFLFdBQVU7MENBRVQvRSx3QkFDQzs7c0RBQ0UsOERBQUNwQywySEFBT0E7NENBQUNtSCxXQUFVOzs7Ozs7d0NBQThCOztpRUFJbkQ7O3NEQUNFLDhEQUFDcEgsMkhBQWNBOzRDQUFDb0gsV0FBVTs7Ozs7O3dDQUFpQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUUzRDtHQTFqQndCdEc7S0FBQUEiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvY29tcG9uZW50cy9lbWFpbC9Db21wb3NlRW1haWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgXG4gIFgsIFBhcGVyY2xpcCwgU2VuZEhvcml6b250YWwsIExvYWRlcjIsIFBsdXMsIENoZXZyb25Eb3duXG59IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvYnV0dG9uJztcbmltcG9ydCB7IElucHV0IH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL2lucHV0JztcbmltcG9ydCBET01QdXJpZnkgZnJvbSAnaXNvbW9ycGhpYy1kb21wdXJpZnknO1xuaW1wb3J0IHtcbiAgRHJvcGRvd25NZW51LFxuICBEcm9wZG93bk1lbnVDb250ZW50LFxuICBEcm9wZG93bk1lbnVJdGVtLFxuICBEcm9wZG93bk1lbnVMYWJlbCxcbiAgRHJvcGRvd25NZW51U2VwYXJhdG9yLFxuICBEcm9wZG93bk1lbnVUcmlnZ2VyLFxufSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2Ryb3Bkb3duLW1lbnVcIjtcbmltcG9ydCBSaWNoRW1haWxFZGl0b3IgZnJvbSAnQC9jb21wb25lbnRzL2VtYWlsL1JpY2hFbWFpbEVkaXRvcic7XG5pbXBvcnQgeyBkZXRlY3RUZXh0RGlyZWN0aW9uIH0gZnJvbSAnQC9saWIvdXRpbHMvdGV4dC1kaXJlY3Rpb24nO1xuXG4vLyBJbXBvcnQgZnJvbSB0aGUgY2VudHJhbGl6ZWQgdXRpbHNcbmltcG9ydCB7IFxuICBmb3JtYXRSZXBseUVtYWlsLCBcbiAgZm9ybWF0Rm9yd2FyZGVkRW1haWxcbn0gZnJvbSAnQC9saWIvdXRpbHMvZW1haWwtdXRpbHMnO1xuaW1wb3J0IHsgRW1haWxNZXNzYWdlIH0gZnJvbSAnQC90eXBlcy9lbWFpbCc7XG5cbi8qKlxuICogRW1haWwgY29tcG9zZXIgY29tcG9uZW50XG4gKiBIYW5kbGVzIG5ldyBlbWFpbHMsIHJlcGxpZXMsIGFuZCBmb3J3YXJkcyB3aXRoIGEgY2xlYW4gVUlcbiAqL1xuaW50ZXJmYWNlIENvbXBvc2VFbWFpbFByb3BzIHtcbiAgaW5pdGlhbEVtYWlsPzogRW1haWxNZXNzYWdlIHwgbnVsbDtcbiAgdHlwZT86ICduZXcnIHwgJ3JlcGx5JyB8ICdyZXBseS1hbGwnIHwgJ2ZvcndhcmQnO1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xuICBvblNlbmQ6IChlbWFpbERhdGE6IHtcbiAgICB0bzogc3RyaW5nO1xuICAgIGNjPzogc3RyaW5nO1xuICAgIGJjYz86IHN0cmluZztcbiAgICBzdWJqZWN0OiBzdHJpbmc7XG4gICAgYm9keTogc3RyaW5nO1xuICAgIGZyb21BY2NvdW50Pzogc3RyaW5nO1xuICAgIGF0dGFjaG1lbnRzPzogQXJyYXk8e1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgY29udGVudDogc3RyaW5nO1xuICAgICAgdHlwZTogc3RyaW5nO1xuICAgIH0+O1xuICB9KSA9PiBQcm9taXNlPHZvaWQ+O1xuICBhY2NvdW50cz86IEFycmF5PHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgZGlzcGxheV9uYW1lPzogc3RyaW5nO1xuICB9Pjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ29tcG9zZUVtYWlsKHByb3BzOiBDb21wb3NlRW1haWxQcm9wcykge1xuICBjb25zdCB7IGluaXRpYWxFbWFpbCwgdHlwZSA9ICduZXcnLCBvbkNsb3NlLCBvblNlbmQsIGFjY291bnRzID0gW10gfSA9IHByb3BzO1xuICBcbiAgLy8gU3RhdGUgZm9yIGVtYWlsIGZvcm1cbiAgY29uc3QgW3NlbGVjdGVkQWNjb3VudCwgc2V0U2VsZWN0ZWRBY2NvdW50XSA9IHVzZVN0YXRlPGFueT4oYWNjb3VudHNbMF0pO1xuICBjb25zdCBbdG8sIHNldFRvXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW2NjLCBzZXRDY10gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtiY2MsIHNldEJjY10gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtzdWJqZWN0LCBzZXRTdWJqZWN0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW2VtYWlsQ29udGVudCwgc2V0RW1haWxDb250ZW50XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW3Nob3dDYywgc2V0U2hvd0NjXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3Nob3dCY2MsIHNldFNob3dCY2NdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2VuZGluZywgc2V0U2VuZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFthdHRhY2htZW50cywgc2V0QXR0YWNobWVudHNdID0gdXNlU3RhdGU8QXJyYXk8e25hbWU6IHN0cmluZzsgY29udGVudDogc3RyaW5nOyB0eXBlOiBzdHJpbmc7fT4+KFtdKTtcbiAgXG4gIC8vIFJlZmVyZW5jZSB0byBlZGl0b3JcbiAgY29uc3QgZWRpdG9yUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IGZvcm1hdHRlZCBpbmZvIGZyb20gZW1haWxcbiAgZnVuY3Rpb24gZ2V0Rm9ybWF0dGVkSW5mb0ZvckVtYWlsKGVtYWlsOiBhbnkpIHtcbiAgICAvLyBGb3JtYXQgdGhlIHN1YmplY3RcbiAgICBjb25zdCBzdWJqZWN0ID0gZW1haWwuc3ViamVjdCB8fCAnJztcblxuICAgIC8vIEZvcm1hdCB0aGUgZGF0ZVxuICAgIGNvbnN0IGRhdGVTdHIgPSBlbWFpbC5kYXRlID8gbmV3IERhdGUoZW1haWwuZGF0ZSkudG9Mb2NhbGVTdHJpbmcoKSA6ICdVbmtub3duIERhdGUnO1xuICAgIFxuICAgIC8vIEZvcm1hdCBzZW5kZXJcbiAgICBjb25zdCBmcm9tU3RyID0gQXJyYXkuaXNBcnJheShlbWFpbC5mcm9tKVxuICAgICAgPyBlbWFpbC5mcm9tLm1hcCgoYWRkcjogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBhZGRyID09PSAnc3RyaW5nJykgcmV0dXJuIGFkZHI7XG4gICAgICAgICAgcmV0dXJuIGFkZHIubmFtZSA/IGAke2FkZHIubmFtZX0gPCR7YWRkci5hZGRyZXNzfT5gIDogYWRkci5hZGRyZXNzO1xuICAgICAgICB9KS5qb2luKCcsICcpXG4gICAgICA6IHR5cGVvZiBlbWFpbC5mcm9tID09PSAnc3RyaW5nJ1xuICAgICAgICA/IGVtYWlsLmZyb21cbiAgICAgICAgOiBlbWFpbC5mcm9tPy5hZGRyZXNzXG4gICAgICAgICAgPyBlbWFpbC5mcm9tLm5hbWVcbiAgICAgICAgICAgID8gYCR7ZW1haWwuZnJvbS5uYW1lfSA8JHtlbWFpbC5mcm9tLmFkZHJlc3N9PmBcbiAgICAgICAgICAgIDogZW1haWwuZnJvbS5hZGRyZXNzXG4gICAgICAgICAgOiAnVW5rbm93biBTZW5kZXInO1xuICAgIFxuICAgIC8vIEZvcm1hdCByZWNpcGllbnRzXG4gICAgY29uc3QgdG9TdHIgPSBBcnJheS5pc0FycmF5KGVtYWlsLnRvKVxuICAgICAgPyBlbWFpbC50by5tYXAoKGFkZHI6IGFueSkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgYWRkciA9PT0gJ3N0cmluZycpIHJldHVybiBhZGRyO1xuICAgICAgICAgIHJldHVybiBhZGRyLm5hbWUgPyBgJHthZGRyLm5hbWV9IDwke2FkZHIuYWRkcmVzc30+YCA6IGFkZHIuYWRkcmVzcztcbiAgICAgICAgfSkuam9pbignLCAnKVxuICAgICAgOiB0eXBlb2YgZW1haWwudG8gPT09ICdzdHJpbmcnXG4gICAgICAgID8gZW1haWwudG9cbiAgICAgICAgOiAnJztcbiAgICBcbiAgICAvLyBGb3JtYXQgQ0MgXG4gICAgY29uc3QgY2NTdHIgPSBBcnJheS5pc0FycmF5KGVtYWlsLmNjKVxuICAgICAgPyBlbWFpbC5jYy5tYXAoKGFkZHI6IGFueSkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgYWRkciA9PT0gJ3N0cmluZycpIHJldHVybiBhZGRyO1xuICAgICAgICAgIHJldHVybiBhZGRyLm5hbWUgPyBgJHthZGRyLm5hbWV9IDwke2FkZHIuYWRkcmVzc30+YCA6IGFkZHIuYWRkcmVzcztcbiAgICAgICAgfSkuam9pbignLCAnKVxuICAgICAgOiB0eXBlb2YgZW1haWwuY2MgPT09ICdzdHJpbmcnXG4gICAgICAgID8gZW1haWwuY2NcbiAgICAgICAgOiAnJztcblxuICAgIHJldHVybiB7IGZyb21TdHIsIHRvU3RyLCBjY1N0ciwgZGF0ZVN0ciwgc3ViamVjdCB9O1xuICB9XG4gIFxuICAvLyBJbml0aWFsaXplIGVtYWlsIGZvcm0gYmFzZWQgb24gaW5pdGlhbCBlbWFpbCBhbmQgdHlwZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbml0aWFsRW1haWwpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdJbml0aWFsaXppbmcgY29tcG9zZSB3aXRoIGVtYWlsOicsIHtcbiAgICAgICAgICBpZDogaW5pdGlhbEVtYWlsLmlkLFxuICAgICAgICAgIHN1YmplY3Q6IGluaXRpYWxFbWFpbC5zdWJqZWN0LFxuICAgICAgICAgIGhhc0NvbnRlbnQ6ICEhaW5pdGlhbEVtYWlsLmNvbnRlbnQsXG4gICAgICAgICAgY29udGVudFR5cGU6IGluaXRpYWxFbWFpbC5jb250ZW50ID8gdHlwZW9mIGluaXRpYWxFbWFpbC5jb250ZW50IDogJ25vbmUnXG4gICAgICAgIH0pO1xuICAgICAgICBcbiAgICAgICAgLy8gU2V0IGRlZmF1bHQgYWNjb3VudCBmcm9tIG9yaWdpbmFsIGVtYWlsIC0gdXNlIHR5cGUgYXNzZXJ0aW9uIHNpbmNlIGFjY291bnRJZCBtaWdodCBiZSBjdXN0b20gcHJvcGVydHlcbiAgICAgICAgY29uc3QgZW1haWxBbnkgPSBpbml0aWFsRW1haWwgYXMgYW55O1xuICAgICAgICBpZiAoZW1haWxBbnkuYWNjb3VudElkICYmIGFjY291bnRzPy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBhY2NvdW50ID0gYWNjb3VudHMuZmluZChhID0+IGEuaWQgPT09IGVtYWlsQW55LmFjY291bnRJZCk7XG4gICAgICAgICAgaWYgKGFjY291bnQpIHtcbiAgICAgICAgICAgIHNldFNlbGVjdGVkQWNjb3VudChhY2NvdW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIEdldCByZWNpcGllbnRzIGJhc2VkIG9uIHR5cGVcbiAgICAgICAgaWYgKHR5cGUgPT09ICdyZXBseScgfHwgdHlwZSA9PT0gJ3JlcGx5LWFsbCcpIHtcbiAgICAgICAgICAvLyBHZXQgZm9ybWF0dGVkIGRhdGEgZm9yIHJlcGx5XG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0UmVwbHlFbWFpbChpbml0aWFsRW1haWwsIHR5cGUpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIFNldCByZXBseSBhZGRyZXNzZXNcbiAgICAgICAgICBzZXRUbyhmb3JtYXR0ZWQudG8pO1xuICAgICAgICAgIGlmIChmb3JtYXR0ZWQuY2MpIHtcbiAgICAgICAgICAgIHNldFNob3dDYyh0cnVlKTtcbiAgICAgICAgICAgIHNldENjKGZvcm1hdHRlZC5jYyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIFNldCBzdWJqZWN0XG4gICAgICAgICAgc2V0U3ViamVjdChmb3JtYXR0ZWQuc3ViamVjdCk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gU2V0IGNvbnRlbnQgd2l0aCBvcmlnaW5hbCBlbWFpbCAtIGVuc3VyZSB3ZSBoYXZlIGNvbnRlbnRcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gZm9ybWF0dGVkLmNvbnRlbnQuaHRtbCB8fCBmb3JtYXR0ZWQuY29udGVudC50ZXh0IHx8ICcnO1xuICAgICAgICAgIFxuICAgICAgICAgIGlmICghY29udGVudCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdSZXBseSBjb250ZW50IGlzIGVtcHR5LCBmYWxsaW5nIGJhY2sgdG8gYSBiYXNpYyB0ZW1wbGF0ZScpO1xuICAgICAgICAgICAgLy8gUHJvdmlkZSBhIGJhc2ljIHRlbXBsYXRlIGlmIHRoZSBjb250ZW50IGlzIGVtcHR5XG4gICAgICAgICAgICBjb25zdCB7IGZyb21TdHIsIGRhdGVTdHIgfSA9IGdldEZvcm1hdHRlZEluZm9Gb3JFbWFpbChpbml0aWFsRW1haWwpO1xuICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tDb250ZW50ID0gYFxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luOiAyMHB4IDAgMTBweCAwOyBjb2xvcjogIzY2NjsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7IHBhZGRpbmctYm90dG9tOiA1cHg7XCI+XG4gICAgICAgICAgICAgICAgT24gJHtkYXRlU3RyfSwgJHtmcm9tU3RyfSB3cm90ZTpcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxibG9ja3F1b3RlIHN0eWxlPVwibWFyZ2luOiAwOyBwYWRkaW5nLWxlZnQ6IDEwcHg7IGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2RkZDsgY29sb3I6ICM1MDUwNTA7IGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7IHBhZGRpbmc6IDEwcHg7XCI+XG4gICAgICAgICAgICAgICAgW09yaWdpbmFsIG1lc3NhZ2UgY29udGVudCBjb3VsZCBub3QgYmUgbG9hZGVkXVxuICAgICAgICAgICAgICA8L2Jsb2NrcXVvdGU+XG4gICAgICAgICAgICBgO1xuICAgICAgICAgICAgc2V0RW1haWxDb250ZW50KGZhbGxiYWNrQ29udGVudCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTZXR0aW5nIHJlcGx5IGNvbnRlbnQ6Jywge1xuICAgICAgICAgICAgICBsZW5ndGg6IGNvbnRlbnQubGVuZ3RoLFxuICAgICAgICAgICAgICBpc0h0bWw6IGZvcm1hdHRlZC5jb250ZW50LmlzSHRtbCxcbiAgICAgICAgICAgICAgc3RhcnRzV2l0aEh0bWw6IGNvbnRlbnQudHJpbSgpLnN0YXJ0c1dpdGgoJzwnKSxcbiAgICAgICAgICAgICAgY29udGVudFR5cGU6IHR5cGVvZiBjb250ZW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNldEVtYWlsQ29udGVudChjb250ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gSGFuZGxlIGFueSBhdHRhY2htZW50cyBmcm9tIHJlcGx5IChlLmcuLCBpbmxpbmUgaW1hZ2VzIGV4dHJhY3RlZCBhcyBhdHRhY2htZW50cylcbiAgICAgICAgICBpZiAoZm9ybWF0dGVkLmF0dGFjaG1lbnRzICYmIGZvcm1hdHRlZC5hdHRhY2htZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRBdHRhY2htZW50cyA9IGZvcm1hdHRlZC5hdHRhY2htZW50cy5tYXAoYXR0ID0+ICh7XG4gICAgICAgICAgICAgIG5hbWU6IGF0dC5maWxlbmFtZSB8fCAnYXR0YWNobWVudCcsXG4gICAgICAgICAgICAgIHR5cGU6IGF0dC5jb250ZW50VHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyxcbiAgICAgICAgICAgICAgY29udGVudDogYXR0LmNvbnRlbnQgfHwgJydcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHNldEF0dGFjaG1lbnRzKGZvcm1hdHRlZEF0dGFjaG1lbnRzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ2ZvcndhcmQnKSB7XG4gICAgICAgICAgLy8gR2V0IGZvcm1hdHRlZCBkYXRhIGZvciBmb3J3YXJkXG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0Rm9yd2FyZGVkRW1haWwoaW5pdGlhbEVtYWlsKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBTZXQgc3ViamVjdFxuICAgICAgICAgIHNldFN1YmplY3QoZm9ybWF0dGVkLnN1YmplY3QpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIFNldCBjb250ZW50IHdpdGggb3JpZ2luYWwgZW1haWwgLSBlbnN1cmUgd2UgaGF2ZSBjb250ZW50XG4gICAgICAgICAgY29uc3QgY29udGVudCA9IGZvcm1hdHRlZC5jb250ZW50Lmh0bWwgfHwgZm9ybWF0dGVkLmNvbnRlbnQudGV4dCB8fCAnJztcbiAgICAgICAgICBcbiAgICAgICAgICBpZiAoIWNvbnRlbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignRm9yd2FyZCBjb250ZW50IGlzIGVtcHR5LCBmYWxsaW5nIGJhY2sgdG8gYSBiYXNpYyB0ZW1wbGF0ZScpO1xuICAgICAgICAgICAgLy8gUHJvdmlkZSBhIGJhc2ljIHRlbXBsYXRlIGlmIHRoZSBjb250ZW50IGlzIGVtcHR5XG4gICAgICAgICAgICBjb25zdCB7IGZyb21TdHIsIGRhdGVTdHIsIHN1YmplY3Q6IG9yaWdTdWJqZWN0LCB0b1N0ciwgY2NTdHIgfSA9IGdldEZvcm1hdHRlZEluZm9Gb3JFbWFpbChpbml0aWFsRW1haWwpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0NyZWF0aW5nIGZvcndhcmQgZmFsbGJhY2sgd2l0aDonLCB7IGZyb21TdHIsIGRhdGVTdHIsIG9yaWdTdWJqZWN0IH0pO1xuICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tDb250ZW50ID0gYFxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luOiAyMHB4IDAgMTBweCAwOyBjb2xvcjogIzY2NjsgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsgbWFyZ2luLWJvdHRvbTogMTBweDsgcGFkZGluZy1ib3R0b206IDVweDtcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGb3J3YXJkZWQgTWVzc2FnZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHRhYmxlIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTBweDsgZm9udC1zaXplOiAxNHB4O1wiPlxuICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAzcHggMTBweCAzcHggMDsgZm9udC13ZWlnaHQ6IGJvbGQ7IHRleHQtYWxpZ246IHJpZ2h0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wO1wiPkZyb206PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogM3B4IDA7XCI+JHtmcm9tU3RyfTwvdGQ+XG4gICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAzcHggMTBweCAzcHggMDsgZm9udC13ZWlnaHQ6IGJvbGQ7IHRleHQtYWxpZ246IHJpZ2h0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wO1wiPkRhdGU6PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogM3B4IDA7XCI+JHtkYXRlU3RyfTwvdGQ+XG4gICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAzcHggMTBweCAzcHggMDsgZm9udC13ZWlnaHQ6IGJvbGQ7IHRleHQtYWxpZ246IHJpZ2h0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wO1wiPlN1YmplY3Q6PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogM3B4IDA7XCI+JHtvcmlnU3ViamVjdCB8fCAnJ308L3RkPlxuICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogM3B4IDEwcHggM3B4IDA7IGZvbnQtd2VpZ2h0OiBib2xkOyB0ZXh0LWFsaWduOiByaWdodDsgdmVydGljYWwtYWxpZ246IHRvcDtcIj5Ubzo8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAzcHggMDtcIj4ke3RvU3RyfTwvdGQ+XG4gICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgJHtjY1N0ciA/IGBcbiAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogM3B4IDEwcHggM3B4IDA7IGZvbnQtd2VpZ2h0OiBib2xkOyB0ZXh0LWFsaWduOiByaWdodDsgdmVydGljYWwtYWxpZ246IHRvcDtcIj5DYzo8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAzcHggMDtcIj4ke2NjU3RyfTwvdGQ+XG4gICAgICAgICAgICAgICAgICA8L3RyPmAgOiAnJ31cbiAgICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYzsgbWFyZ2luLXRvcDogNXB4OyBtYXJnaW4tYm90dG9tOiAxNXB4OyBwYWRkaW5nLWJvdHRvbTogNXB4O1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9yd2FyZGVkLWNvbnRlbnRcIiBzdHlsZT1cIm1hcmdpbjogMDsgY29sb3I6ICMzMzM7XCI+XG4gICAgICAgICAgICAgICAgW09yaWdpbmFsIG1lc3NhZ2UgY29udGVudCBjb3VsZCBub3QgYmUgbG9hZGVkXVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGA7XG4gICAgICAgICAgICBzZXRFbWFpbENvbnRlbnQoZmFsbGJhY2tDb250ZW50KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1NldHRpbmcgZm9yd2FyZCBjb250ZW50OicsIHtcbiAgICAgICAgICAgICAgbGVuZ3RoOiBjb250ZW50Lmxlbmd0aCxcbiAgICAgICAgICAgICAgaXNIdG1sOiBmb3JtYXR0ZWQuY29udGVudC5pc0h0bWxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2V0RW1haWxDb250ZW50KGNvbnRlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBcbiAgICAgICAgICAvLyBIYW5kbGUgYXR0YWNobWVudHMgZm9yIGZvcndhcmQgKG9yaWdpbmFsIGF0dGFjaG1lbnRzICsgZXh0cmFjdGVkIGlubGluZSBpbWFnZXMpXG4gICAgICAgICAgaWYgKGZvcm1hdHRlZC5hdHRhY2htZW50cyAmJiBmb3JtYXR0ZWQuYXR0YWNobWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFByb2Nlc3NpbmcgJHtmb3JtYXR0ZWQuYXR0YWNobWVudHMubGVuZ3RofSBhdHRhY2htZW50cyBmb3IgZm9yd2FyZGVkIGVtYWlsYCk7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRBdHRhY2htZW50cyA9IGZvcm1hdHRlZC5hdHRhY2htZW50cy5tYXAoYXR0ID0+ICh7XG4gICAgICAgICAgICAgIG5hbWU6IGF0dC5maWxlbmFtZSB8fCAnYXR0YWNobWVudCcsXG4gICAgICAgICAgICAgIHR5cGU6IGF0dC5jb250ZW50VHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyxcbiAgICAgICAgICAgICAgY29udGVudDogYXR0LmNvbnRlbnQgfHwgJydcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHNldEF0dGFjaG1lbnRzKGZvcm1hdHRlZEF0dGFjaG1lbnRzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluaXRpYWxpemluZyBjb21wb3NlIGZvcm06JywgZXJyb3IpO1xuICAgICAgICAvLyBQcm92aWRlIGEgZmFsbGJhY2sgaW4gY2FzZSBvZiBlcnJvclxuICAgICAgICBzZXRFbWFpbENvbnRlbnQoJzxwPkVycm9yIGxvYWRpbmcgZW1haWwgY29udGVudDwvcD4nKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpbml0aWFsRW1haWwsIHR5cGUsIGFjY291bnRzXSk7XG4gIFxuICAvLyBQbGFjZSBjdXJzb3IgYXQgYmVnaW5uaW5nIGFuZCBlbnN1cmUgY29udGVudCBpcyBzY3JvbGxlZCB0byB0b3BcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZWRpdG9yUmVmLmN1cnJlbnQgJiYgdHlwZSAhPT0gJ25ldycpIHtcbiAgICAgIC8vIFNtYWxsIGRlbGF5IHRvIGVuc3VyZSBET00gaXMgcmVhZHlcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoZWRpdG9yUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAvLyBGb2N1cyB0aGUgZWRpdG9yXG4gICAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBBbHNvIG1ha2Ugc3VyZSBlZGl0b3IgY29udGFpbmVyIGlzIHNjcm9sbGVkIHRvIHRvcFxuICAgICAgICAgIGVkaXRvclJlZi5jdXJyZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gRmluZCBwYXJlbnQgc2Nyb2xsYWJsZSBjb250YWluZXJzIGFuZCBzY3JvbGwgdGhlbSB0byB0b3BcbiAgICAgICAgICBsZXQgcGFyZW50ID0gZWRpdG9yUmVmLmN1cnJlbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICAgICAgICBpZiAocGFyZW50LmNsYXNzTGlzdC5jb250YWlucygnb3ZlcmZsb3cteS1hdXRvJykpIHtcbiAgICAgICAgICAgICAgcGFyZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIDEwMCk7XG4gICAgfVxuICB9LCBbZW1haWxDb250ZW50LCB0eXBlXSk7XG4gIFxuICAvLyBIYW5kbGUgZmlsZSBhdHRhY2htZW50c1xuICBjb25zdCBoYW5kbGVBdHRhY2htZW50QWRkID0gYXN5bmMgKGZpbGVzOiBGaWxlTGlzdCkgPT4ge1xuICAgIGNvbnN0IG5ld0F0dGFjaG1lbnRzID0gQXJyYXkuZnJvbShmaWxlcykubWFwKGZpbGUgPT4gKHtcbiAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgIGNvbnRlbnQ6IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSlcbiAgICB9KSk7XG4gICAgXG4gICAgc2V0QXR0YWNobWVudHMocHJldiA9PiBbLi4ucHJldiwgLi4ubmV3QXR0YWNobWVudHNdKTtcbiAgfTtcbiAgXG4gIGNvbnN0IGhhbmRsZUF0dGFjaG1lbnRSZW1vdmUgPSAoaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIHNldEF0dGFjaG1lbnRzKHByZXYgPT4gcHJldi5maWx0ZXIoKF8sIGkpID0+IGkgIT09IGluZGV4KSk7XG4gIH07XG4gIFxuICAvLyBIYW5kbGUgc2VuZGluZyBlbWFpbFxuICBjb25zdCBoYW5kbGVTZW5kID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICghdG8pIHtcbiAgICAgIGFsZXJ0KCdQbGVhc2Ugc3BlY2lmeSBhdCBsZWFzdCBvbmUgcmVjaXBpZW50Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIHNldFNlbmRpbmcodHJ1ZSk7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG9uU2VuZCh7XG4gICAgICAgIHRvLFxuICAgICAgICBjYzogY2MgfHwgdW5kZWZpbmVkLFxuICAgICAgICBiY2M6IGJjYyB8fCB1bmRlZmluZWQsXG4gICAgICAgIHN1YmplY3QsXG4gICAgICAgIGJvZHk6IGVtYWlsQ29udGVudCxcbiAgICAgICAgZnJvbUFjY291bnQ6IHNlbGVjdGVkQWNjb3VudD8uaWQsXG4gICAgICAgIGF0dGFjaG1lbnRzXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gUmVzZXQgZm9ybSBhbmQgY2xvc2VcbiAgICAgIG9uQ2xvc2UoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2VuZGluZyBlbWFpbDonLCBlcnJvcik7XG4gICAgICBhbGVydCgnRmFpbGVkIHRvIHNlbmQgZW1haWwuIFBsZWFzZSB0cnkgYWdhaW4uJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldFNlbmRpbmcoZmFsc2UpO1xuICAgIH1cbiAgfTtcbiAgXG4gIC8vIEdldCBjb21wb3NlIHRpdGxlIGJhc2VkIG9uIHR5cGVcbiAgY29uc3QgZ2V0Q29tcG9zZVRpdGxlID0gKCkgPT4ge1xuICAgIHN3aXRjaCh0eXBlKSB7XG4gICAgICBjYXNlICdyZXBseSc6IHJldHVybiAnUmVwbHknO1xuICAgICAgY2FzZSAncmVwbHktYWxsJzogcmV0dXJuICdSZXBseSBBbGwnO1xuICAgICAgY2FzZSAnZm9yd2FyZCc6IHJldHVybiAnRm9yd2FyZCc7XG4gICAgICBkZWZhdWx0OiByZXR1cm4gJ05ldyBNZXNzYWdlJztcbiAgICB9XG4gIH07XG4gIFxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBoLWZ1bGwgbWF4LWgtWzgwdmhdIGJnLXdoaXRlIGJvcmRlciByb3VuZGVkLW1kIHNoYWRvdy1tZFwiPlxuICAgICAgey8qIEhlYWRlciAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyBib3JkZXItYiBiZy1ncmF5LTUwXCI+XG4gICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIHRleHQtZ3JheS04MDBcIj57Z2V0Q29tcG9zZVRpdGxlKCl9PC9oMj5cbiAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwiZ2hvc3RcIiBzaXplPVwiaWNvblwiIG9uQ2xpY2s9e29uQ2xvc2V9PlxuICAgICAgICAgIDxYIGNsYXNzTmFtZT1cImgtNSB3LTVcIiAvPlxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICB7LyogRW1haWwgRm9ybSAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG92ZXJmbG93LXktYXV0byBiZy13aGl0ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtMiBzcGFjZS15LTJcIj5cbiAgICAgICAgICB7LyogRnJvbSAqL31cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJvcmRlci1iIHBiLTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidy0xNiB0ZXh0LWdyYXktNzAwIHRleHQtc20gZm9udC1tZWRpdW1cIj5Gcm9tOjwvc3Bhbj5cbiAgICAgICAgICAgICAgPERyb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51VHJpZ2dlciBhc0NoaWxkPlxuICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cIm91dGxpbmVcIiBcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBoLTggcHgtMiBweS0xIHRleHQtbGVmdCBmb250LW5vcm1hbCBiZy13aGl0ZSB0ZXh0LWdyYXktODAwIGJvcmRlci1ncmF5LTIwMFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3NlbGVjdGVkQWNjb3VudCA/IFxuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQWNjb3VudC5kaXNwbGF5X25hbWUgPyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7c2VsZWN0ZWRBY2NvdW50LmRpc3BsYXlfbmFtZX0gPCR7c2VsZWN0ZWRBY2NvdW50LmVtYWlsfT5gIDogXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQWNjb3VudC5lbWFpbCkgOiBcbiAgICAgICAgICAgICAgICAgICAgICAgICdTZWxlY3QgYWNjb3VudCd9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPENoZXZyb25Eb3duIGNsYXNzTmFtZT1cImgtNCB3LTQgb3BhY2l0eS01MFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudVRyaWdnZXI+XG4gICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUNvbnRlbnQgYWxpZ249XCJzdGFydFwiIGNsYXNzTmFtZT1cInctWzI0MHB4XVwiPlxuICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUxhYmVsPlNlbGVjdCBhY2NvdW50PC9Ecm9wZG93bk1lbnVMYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVTZXBhcmF0b3IgLz5cbiAgICAgICAgICAgICAgICAgIHthY2NvdW50cy5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICAgICAgICBhY2NvdW50cy5tYXAoYWNjb3VudCA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW0gXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2FjY291bnQuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTZWxlY3RlZEFjY291bnQoYWNjb3VudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjdXJzb3ItcG9pbnRlciBob3ZlcjpiZy1ibHVlLTUwIGZvY3VzOmJnLWJsdWUtNTBcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHthY2NvdW50LmRpc3BsYXlfbmFtZSA/IFxuICAgICAgICAgICAgICAgICAgICAgICAgICBgJHthY2NvdW50LmRpc3BsYXlfbmFtZX0gPCR7YWNjb3VudC5lbWFpbH0+YCA6IFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50LmVtYWlsfVxuICAgICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVJdGVtIGRpc2FibGVkPk5vIGFjY291bnRzIGF2YWlsYWJsZTwvRHJvcGRvd25NZW51SXRlbT5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9Ecm9wZG93bk1lbnVDb250ZW50PlxuICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIHsvKiBSZWNpcGllbnRzICovfVxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm9yZGVyLWIgcGItMVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ3LTE2IHRleHQtZ3JheS03MDAgdGV4dC1zbSBmb250LW1lZGl1bVwiPlRvOjwvc3Bhbj5cbiAgICAgICAgICAgICAgPElucHV0IFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17dG99XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRUbyhlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJyZWNpcGllbnRAZXhhbXBsZS5jb21cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSBib3JkZXItMCBzaGFkb3ctbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMCBweC0wIGgtOCBiZy13aGl0ZSB0ZXh0LWdyYXktODAwXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICB7c2hvd0NjICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInctMTYgdGV4dC1ncmF5LTcwMCB0ZXh0LXNtIGZvbnQtbWVkaXVtXCI+Q2M6PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtjY31cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Q2MoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJjY0BleGFtcGxlLmNvbVwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4LTEgYm9yZGVyLTAgc2hhZG93LW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTAgcHgtMCBoLTggYmctd2hpdGUgdGV4dC1ncmF5LTgwMFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICB7c2hvd0JjYyAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ3LTE2IHRleHQtZ3JheS03MDAgdGV4dC1zbSBmb250LW1lZGl1bVwiPkJjYzo8L3NwYW4+XG4gICAgICAgICAgICAgICAgPElucHV0IFxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2JjY31cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0QmNjKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiYmNjQGV4YW1wbGUuY29tXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSBib3JkZXItMCBzaGFkb3ctbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMCBweC0wIGgtOCBiZy13aGl0ZSB0ZXh0LWdyYXktODAwXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHsvKiBDQy9CQ0MgVG9nZ2xlIExpbmtzICovfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdhcC0zIG1sLTE2XCI+XG4gICAgICAgICAgICAgIHshc2hvd0NjICYmIChcbiAgICAgICAgICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ibHVlLTYwMCB0ZXh0LXNtIGhvdmVyOnVuZGVybGluZVwiXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93Q2ModHJ1ZSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQWRkIENjXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICB7IXNob3dCY2MgJiYgKFxuICAgICAgICAgICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWJsdWUtNjAwIHRleHQtc20gaG92ZXI6dW5kZXJsaW5lXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNob3dCY2ModHJ1ZSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQWRkIEJjY1xuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgey8qIFN1YmplY3QgKi99XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJib3JkZXItYiBwYi0xXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInctMTYgdGV4dC1ncmF5LTcwMCB0ZXh0LXNtIGZvbnQtbWVkaXVtXCI+U3ViamVjdDo8L3NwYW4+XG4gICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e3N1YmplY3R9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRTdWJqZWN0KGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlN1YmplY3RcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSBib3JkZXItMCBzaGFkb3ctbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMCBweC0wIGgtOCBiZy13aGl0ZSB0ZXh0LWdyYXktODAwXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIHsvKiBNZXNzYWdlIEJvZHkgKi99XG4gICAgICAgICAgPFJpY2hFbWFpbEVkaXRvclxuICAgICAgICAgICAgaW5pdGlhbENvbnRlbnQ9e2VtYWlsQ29udGVudH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoaHRtbCkgPT4ge1xuICAgICAgICAgICAgICBzZXRFbWFpbENvbnRlbnQoaHRtbCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJXcml0ZSB5b3VyIG1lc3NhZ2UgaGVyZS4uLlwiXG4gICAgICAgICAgICBtaW5IZWlnaHQ9XCIzMjBweFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICBcbiAgICAgICAgICB7LyogQXR0YWNobWVudHMgKi99XG4gICAgICAgICAge2F0dGFjaG1lbnRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTIgYm9yZGVyIHJvdW5kZWQtbWQgYmctZ3JheS01MFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gbWItMSB0ZXh0LWdyYXktNzAwXCI+QXR0YWNobWVudHM6PC9kaXY+XG4gICAgICAgICAgICAgIHthdHRhY2htZW50cy5tYXAoKGZpbGUsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbSBweS0xXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0cnVuY2F0ZSBtci0yIHRleHQtZ3JheS04MDBcIj57ZmlsZS5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxCdXR0b24gXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUF0dGFjaG1lbnRSZW1vdmUoaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTYgdy02IHAtMFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxYIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgey8qIEZvb3RlciAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm9yZGVyLXQgcC0zIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBiZy1ncmF5LTUwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICB7LyogRmlsZSBJbnB1dCBmb3IgQXR0YWNobWVudHMgLSBzaW1wbGVyIHZlcnNpb24gKi99XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICBpZD1cImZpbGUtYXR0YWNobWVudFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZS50YXJnZXQuZmlsZXMgJiYgZS50YXJnZXQuZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGhhbmRsZUF0dGFjaG1lbnRBZGQoZS50YXJnZXQuZmlsZXMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJmaWxlLWF0dGFjaG1lbnRcIiBjbGFzc05hbWU9XCJjdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgPEJ1dHRvbiBcbiAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCIgXG4gICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInAtMSB0ZXh0LWdyYXktNzAwIGhvdmVyOmJnLWdyYXktMTAwXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJBdHRhY2ggZmlsZXNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8UGFwZXJjbGlwIGNsYXNzTmFtZT1cImgtNSB3LTVcIiAvPlxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgPEJ1dHRvbiBcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xvc2V9XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1yZWQtNjAwIGhvdmVyOmJnLXJlZC03MDAgdGV4dC13aGl0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgXG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgdmFyaWFudD1cImRlZmF1bHRcIlxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtzZW5kaW5nfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctYmx1ZS02MDAgaG92ZXI6YmctYmx1ZS03MDAgdGV4dC13aGl0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlbmRpbmcgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPExvYWRlcjIgY2xhc3NOYW1lPVwibXItMiBoLTQgdy00IGFuaW1hdGUtc3BpblwiIC8+XG4gICAgICAgICAgICAgICAgU2VuZGluZ1xuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPFNlbmRIb3Jpem9udGFsIGNsYXNzTmFtZT1cIm1yLTIgaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgICAgU2VuZFxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIHsvKiBTdHlsZXMgZm9yIGVtYWlsIGNvbnRlbnQgKi99XG4gICAgICA8c3R5bGUganN4IGdsb2JhbD57YFxuICAgICAgICBbY29udGVudGVkaXRhYmxlXSB7XG4gICAgICAgICAgLXdlYmtpdC11c2VyLW1vZGlmeTogcmVhZC13cml0ZS1wbGFpbnRleHQtb25seTtcbiAgICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgICAgICAgIC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7XG4gICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDtcbiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgW2NvbnRlbnRlZGl0YWJsZV06Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIFtjb250ZW50ZWRpdGFibGVdIGJsb2NrcXVvdGUge1xuICAgICAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICNkZGQ7XG4gICAgICAgICAgY29sb3I6ICM2NjY7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIFtjb250ZW50ZWRpdGFibGVdIGltZyB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgW2NvbnRlbnRlZGl0YWJsZV0gdGFibGUge1xuICAgICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIFtjb250ZW50ZWRpdGFibGVdIHRoLFxuICAgICAgICBbY29udGVudGVkaXRhYmxlXSB0ZCB7XG4gICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIFtjb250ZW50ZWRpdGFibGVdIHRoIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogRm9yd2FyZGVkIG1lc3NhZ2Ugc3R5bGVzICovXG4gICAgICAgIC5lbWFpbC1vcmlnaW5hbC1jb250ZW50IHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICAgIGNvbG9yOiAjNTA1MDUwO1xuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9kaXY+XG4gICk7XG59ICJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsIlgiLCJQYXBlcmNsaXAiLCJTZW5kSG9yaXpvbnRhbCIsIkxvYWRlcjIiLCJDaGV2cm9uRG93biIsIkJ1dHRvbiIsIklucHV0IiwiRHJvcGRvd25NZW51IiwiRHJvcGRvd25NZW51Q29udGVudCIsIkRyb3Bkb3duTWVudUl0ZW0iLCJEcm9wZG93bk1lbnVMYWJlbCIsIkRyb3Bkb3duTWVudVNlcGFyYXRvciIsIkRyb3Bkb3duTWVudVRyaWdnZXIiLCJSaWNoRW1haWxFZGl0b3IiLCJmb3JtYXRSZXBseUVtYWlsIiwiZm9ybWF0Rm9yd2FyZGVkRW1haWwiLCJDb21wb3NlRW1haWwiLCJwcm9wcyIsImluaXRpYWxFbWFpbCIsInR5cGUiLCJvbkNsb3NlIiwib25TZW5kIiwiYWNjb3VudHMiLCJzZWxlY3RlZEFjY291bnQiLCJzZXRTZWxlY3RlZEFjY291bnQiLCJ0byIsInNldFRvIiwiY2MiLCJzZXRDYyIsImJjYyIsInNldEJjYyIsInN1YmplY3QiLCJzZXRTdWJqZWN0IiwiZW1haWxDb250ZW50Iiwic2V0RW1haWxDb250ZW50Iiwic2hvd0NjIiwic2V0U2hvd0NjIiwic2hvd0JjYyIsInNldFNob3dCY2MiLCJzZW5kaW5nIiwic2V0U2VuZGluZyIsImF0dGFjaG1lbnRzIiwic2V0QXR0YWNobWVudHMiLCJlZGl0b3JSZWYiLCJnZXRGb3JtYXR0ZWRJbmZvRm9yRW1haWwiLCJlbWFpbCIsImRhdGVTdHIiLCJkYXRlIiwiRGF0ZSIsInRvTG9jYWxlU3RyaW5nIiwiZnJvbVN0ciIsIkFycmF5IiwiaXNBcnJheSIsImZyb20iLCJtYXAiLCJhZGRyIiwibmFtZSIsImFkZHJlc3MiLCJqb2luIiwidG9TdHIiLCJjY1N0ciIsImNvbnNvbGUiLCJsb2ciLCJpZCIsImhhc0NvbnRlbnQiLCJjb250ZW50IiwiY29udGVudFR5cGUiLCJlbWFpbEFueSIsImFjY291bnRJZCIsImxlbmd0aCIsImFjY291bnQiLCJmaW5kIiwiYSIsImZvcm1hdHRlZCIsImh0bWwiLCJ0ZXh0Iiwid2FybiIsImZhbGxiYWNrQ29udGVudCIsImlzSHRtbCIsInN0YXJ0c1dpdGhIdG1sIiwidHJpbSIsInN0YXJ0c1dpdGgiLCJmb3JtYXR0ZWRBdHRhY2htZW50cyIsImF0dCIsImZpbGVuYW1lIiwib3JpZ1N1YmplY3QiLCJlcnJvciIsImN1cnJlbnQiLCJzZXRUaW1lb3V0IiwiZm9jdXMiLCJzY3JvbGxUb3AiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwiY2xhc3NMaXN0IiwiY29udGFpbnMiLCJoYW5kbGVBdHRhY2htZW50QWRkIiwiZmlsZXMiLCJuZXdBdHRhY2htZW50cyIsImZpbGUiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJwcmV2IiwiaGFuZGxlQXR0YWNobWVudFJlbW92ZSIsImluZGV4IiwiZmlsdGVyIiwiXyIsImkiLCJoYW5kbGVTZW5kIiwiYWxlcnQiLCJ1bmRlZmluZWQiLCJib2R5IiwiZnJvbUFjY291bnQiLCJnZXRDb21wb3NlVGl0bGUiLCJkaXYiLCJoMiIsInZhcmlhbnQiLCJzaXplIiwib25DbGljayIsImNsYXNzTmFtZSIsInNwYW4iLCJhc0NoaWxkIiwiZGlzcGxheV9uYW1lIiwiYWxpZ24iLCJkaXNhYmxlZCIsInZhbHVlIiwib25DaGFuZ2UiLCJlIiwidGFyZ2V0IiwicGxhY2Vob2xkZXIiLCJidXR0b24iLCJpbml0aWFsQ29udGVudCIsIm1pbkhlaWdodCIsImlucHV0IiwibXVsdGlwbGUiLCJsYWJlbCIsImh0bWxGb3IiLCJ0aXRsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/ComposeEmail.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/email/EmailDetailView.tsx":
/*!**********************************************!*\
!*** ./components/email/EmailDetailView.tsx ***!
\**********************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ EmailDetailView)\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 styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-jsx/style */ \"(app-pages-browser)/./node_modules/styled-jsx/style.js\");\n/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__);\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_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronLeft,Forward,Reply,ReplyAll,Star!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-left.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronLeft,Forward,Reply,ReplyAll,Star!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/reply.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronLeft,Forward,Reply,ReplyAll,Star!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/reply-all.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronLeft,Forward,Reply,ReplyAll,Star!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/forward.js\");\n/* harmony import */ var _barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=ChevronLeft,Forward,Reply,ReplyAll,Star!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/star.js\");\n/* harmony import */ var _components_ui_scroll_area__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/scroll-area */ \"(app-pages-browser)/./components/ui/scroll-area.tsx\");\n/* harmony import */ var _components_ui_avatar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/avatar */ \"(app-pages-browser)/./components/ui/avatar.tsx\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n\n\n\n\n\n\n\nfunction EmailDetailView(param) {\n let { email, onBack, onReply, onReplyAll, onForward, onToggleStar } = param;\n var _email_from_, _email_from, _email_from_1, _email_from1, _email_from_2, _email_from2, _email_from_3, _email_from3, _email_to_, _email_to;\n // Format date for display\n const formatDate = (dateString)=>{\n // Convert to Date object if string\n const date = typeof dateString === 'string' ? new Date(dateString) : dateString;\n const now = new Date();\n if (date.toDateString() === now.toDateString()) {\n return date.toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit'\n });\n } else {\n return date.toLocaleDateString([], {\n month: 'short',\n day: 'numeric'\n });\n }\n };\n // Render email content based on the email body\n const renderEmailContent = ()=>{\n try {\n console.log('EmailDetailView renderEmailContent', {\n hasContent: !!email.content,\n contentType: typeof email.content,\n hasHtml: !!email.html,\n hasText: !!email.text\n });\n // Determine what content to use and how to handle it\n let contentToUse = '';\n if (email.content) {\n // If content is a string, use it directly\n if (typeof email.content === 'string') {\n contentToUse = email.content;\n } else if (typeof email.content === 'object') {\n contentToUse = email.content.html || email.content.text || '';\n }\n } else if (email.html) {\n contentToUse = email.html;\n } else if (email.text) {\n // Convert plain text to HTML with line breaks\n contentToUse = email.text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\\n/g, '<br>');\n }\n // Return content or fallback message\n return contentToUse ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n dangerouslySetInnerHTML: {\n __html: contentToUse\n }\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 83,\n columnNumber: 9\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-500\",\n children: \"No content available\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 84,\n columnNumber: 9\n }, this);\n } catch (e) {\n console.error('Error rendering email:', e);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-gray-500\",\n children: \"Failed to render email content\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 87,\n columnNumber: 14\n }, this);\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex flex-col h-full overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex-none px-4 py-3 border-b border-gray-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex items-center gap-2 min-w-0 flex-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_5__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n onClick: onBack,\n className: \"md:hidden flex-shrink-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 103,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 97,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"min-w-0 max-w-[500px]\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-lg font-semibold text-gray-900 truncate\",\n children: email.subject\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 106,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 105,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 96,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex items-center gap-1 flex-shrink-0 ml-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex items-center border-l border-gray-200 pl-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_5__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"text-gray-400 hover:text-gray-900 h-9 w-9\",\n onClick: onReply,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 119,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 113,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_5__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"text-gray-400 hover:text-gray-900 h-9 w-9\",\n onClick: onReplyAll,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 127,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 121,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_5__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"text-gray-400 hover:text-gray-900 h-9 w-9\",\n onClick: onForward,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 135,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 129,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_5__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"text-gray-400 hover:text-gray-900 h-9 w-9\",\n onClick: onToggleStar,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_ChevronLeft_Forward_Reply_ReplyAll_Star_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-4 w-4 \".concat(email.starred ? 'fill-yellow-400 text-yellow-400' : '')\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 143,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 137,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 112,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 111,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 95,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 94,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_scroll_area__WEBPACK_IMPORTED_MODULE_3__.ScrollArea, {\n className: \"flex-1 overflow-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex items-center gap-4 mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_avatar__WEBPACK_IMPORTED_MODULE_4__.Avatar, {\n className: \"h-10 w-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_avatar__WEBPACK_IMPORTED_MODULE_4__.AvatarFallback, {\n children: (((_email_from = email.from) === null || _email_from === void 0 ? void 0 : (_email_from_ = _email_from[0]) === null || _email_from_ === void 0 ? void 0 : _email_from_.name) || '').charAt(0) || (((_email_from1 = email.from) === null || _email_from1 === void 0 ? void 0 : (_email_from_1 = _email_from1[0]) === null || _email_from_1 === void 0 ? void 0 : _email_from_1.address) || '').charAt(0) || '?'\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 156,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 155,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"font-medium text-gray-900\",\n children: [\n ((_email_from2 = email.from) === null || _email_from2 === void 0 ? void 0 : (_email_from_2 = _email_from2[0]) === null || _email_from_2 === void 0 ? void 0 : _email_from_2.name) || '',\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-gray-500\",\n children: [\n \"<\",\n ((_email_from3 = email.from) === null || _email_from3 === void 0 ? void 0 : (_email_from_3 = _email_from3[0]) === null || _email_from_3 === void 0 ? void 0 : _email_from_3.address) || '',\n \">\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 162,\n columnNumber: 47\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 161,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-sm text-gray-500\",\n children: [\n \"to \",\n ((_email_to = email.to) === null || _email_to === void 0 ? void 0 : (_email_to_ = _email_to[0]) === null || _email_to_ === void 0 ? void 0 : _email_to_.address) || ''\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 164,\n columnNumber: 15\n }, this),\n email.cc && email.cc.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-sm text-gray-500\",\n children: [\n \"cc \",\n email.cc.map((c)=>c.address).join(', ')\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 168,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 160,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-sm text-gray-500 whitespace-nowrap\",\n children: formatDate(email.date)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 173,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 154,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"prose prose-sm max-w-none email-content-wrapper\",\n children: renderEmailContent()\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 179,\n columnNumber: 11\n }, this),\n email.hasAttachments && email.attachments && email.attachments.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"mt-6 border-t border-gray-100 pt-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-sm font-medium text-gray-900 mb-2\",\n children: \"Attachments\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 186,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"grid grid-cols-1 sm:grid-cols-2 gap-2\",\n children: email.attachments.map((attachment, idx)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex items-center gap-2 p-2 border border-gray-200 rounded-md\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"flex-1 min-w-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-sm font-medium text-gray-700 truncate\",\n children: attachment.filename\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 194,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"jsx-a4b854e4f3e043c7\" + \" \" + \"text-xs text-gray-500\",\n children: [\n (attachment.size / 1024).toFixed(1),\n \" KB\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 195,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 193,\n columnNumber: 21\n }, this)\n }, idx, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 189,\n columnNumber: 19\n }, this))\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 187,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 185,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 152,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 151,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {\n id: \"a4b854e4f3e043c7\",\n children: \".email-content-wrapper{width:100%;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}.email-content-wrapper img{max-width:100%;height:auto}.email-content-wrapper table{max-width:100%;overflow-x:auto;display:block}@media(max-width:640px){.email-content-wrapper{font-size:14px}}\"\n }, void 0, false, void 0, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDetailView.tsx\",\n lineNumber: 92,\n columnNumber: 5\n }, this);\n}\n_c = EmailDetailView;\nvar _c;\n$RefreshReg$(_c, \"EmailDetailView\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvRW1haWxEZXRhaWxWaWV3LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTBCO0FBR0o7QUFDbUM7QUFDTztBQUNoQjtBQWdCakMsU0FBU1UsZ0JBQWdCLEtBT2pCO1FBUGlCLEVBQ3RDQyxLQUFLLEVBQ0xDLE1BQU0sRUFDTkMsT0FBTyxFQUNQQyxVQUFVLEVBQ1ZDLFNBQVMsRUFDVEMsWUFBWSxFQUNTLEdBUGlCO1FBc0l0QkwsY0FBQUEsYUFBMkNBLGVBQUFBLGNBSzVDQSxlQUFBQSxjQUFrRUEsZUFBQUEsY0FHL0RBLFlBQUFBO0lBcklsQiwwQkFBMEI7SUFDMUIsTUFBTU0sYUFBYSxDQUFDQztRQUNsQixtQ0FBbUM7UUFDbkMsTUFBTUMsT0FBTyxPQUFPRCxlQUFlLFdBQVcsSUFBSUUsS0FBS0YsY0FBY0E7UUFDckUsTUFBTUcsTUFBTSxJQUFJRDtRQUVoQixJQUFJRCxLQUFLRyxZQUFZLE9BQU9ELElBQUlDLFlBQVksSUFBSTtZQUM5QyxPQUFPSCxLQUFLSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUU7Z0JBQUVDLE1BQU07Z0JBQVdDLFFBQVE7WUFBVTtRQUMxRSxPQUFPO1lBQ0wsT0FBT04sS0FBS08sa0JBQWtCLENBQUMsRUFBRSxFQUFFO2dCQUFFQyxPQUFPO2dCQUFTQyxLQUFLO1lBQVU7UUFDdEU7SUFDRjtJQUVBLCtDQUErQztJQUMvQyxNQUFNQyxxQkFBcUI7UUFDekIsSUFBSTtZQUNGQyxRQUFRQyxHQUFHLENBQUMsc0NBQXNDO2dCQUNoREMsWUFBWSxDQUFDLENBQUNyQixNQUFNc0IsT0FBTztnQkFDM0JDLGFBQWEsT0FBT3ZCLE1BQU1zQixPQUFPO2dCQUNqQ0UsU0FBUyxDQUFDLENBQUN4QixNQUFNeUIsSUFBSTtnQkFDckJDLFNBQVMsQ0FBQyxDQUFDMUIsTUFBTTJCLElBQUk7WUFDdkI7WUFFQSxxREFBcUQ7WUFDckQsSUFBSUMsZUFBZTtZQUVuQixJ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REFBQzBCOzhFQUFhOzhDQUF5Qzs7Ozs7OzhDQUN2RCw4REFBQzFCOzhFQUFjOzhDQUNaOUIsTUFBTXVELFdBQVcsQ0FBQ0osR0FBRyxDQUFDLENBQUNNLFlBQVlDLG9CQUNsQyw4REFBQzVCO3NGQUVXO3NEQUVWLDRFQUFDQTswRkFBYzs7a0VBQ2IsOERBQUNnQjtrR0FBWTtrRUFBOENXLFdBQVdFLFFBQVE7Ozs7OztrRUFDOUUsOERBQUNiO2tHQUFZOzs0REFBMEJXLENBQUFBLFdBQVdwQixJQUFJLEdBQUcsSUFBRyxFQUFHdUIsT0FBTyxDQUFDOzREQUFHOzs7Ozs7Ozs7Ozs7OzJDQUx2RUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyQ3pCO0tBbE53QjNEIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvZW1haWwvRW1haWxEZXRhaWxWaWV3LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgXG4gIENoZXZyb25MZWZ0LCBSZXBseSwgUmVwbHlBbGwsIEZvcndhcmQsIFN0YXIsIE1vcmVIb3Jpem9udGFsXG59IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyBTY3JvbGxBcmVhIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL3Njcm9sbC1hcmVhJztcbmltcG9ydCB7IEF2YXRhciwgQXZhdGFyRmFsbGJhY2sgfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvYXZhdGFyJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9idXR0b24nO1xuaW1wb3J0IHsgRW1haWwgfSBmcm9tICdAL2hvb2tzL3VzZS1jb3Vycmllcic7XG5cbmludGVyZmFjZSBFbWFpbERldGFpbFZpZXdQcm9wcyB7XG4gIGVtYWlsOiBFbWFpbCAmIHsgXG4gICAgaHRtbD86IHN0cmluZzsgXG4gICAgdGV4dD86IHN0cmluZztcbiAgICBzdGFycmVkPzogYm9vbGVhbjsgLy8gQWRkIHN0YXJyZWQgcHJvcGVydHkgdG8gaW50ZXJmYWNlXG4gIH07XG4gIG9uQmFjazogKCkgPT4gdm9pZDtcbiAgb25SZXBseTogKCkgPT4gdm9pZDtcbiAgb25SZXBseUFsbDogKCkgPT4gdm9pZDtcbiAgb25Gb3J3YXJkOiAoKSA9PiB2b2lkO1xuICBvblRvZ2dsZVN0YXI6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEVtYWlsRGV0YWlsVmlldyh7XG4gIGVtYWlsLFxuICBvbkJhY2ssXG4gIG9uUmVwbHksXG4gIG9uUmVwbHlBbGwsXG4gIG9uRm9yd2FyZCxcbiAgb25Ub2dnbGVTdGFyXG59OiBFbWFpbERldGFpbFZpZXdQcm9wcykge1xuICBcbiAgLy8gRm9ybWF0IGRhdGUgZm9yIGRpc3BsYXlcbiAgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlU3RyaW5nOiBzdHJpbmcgfCBEYXRlKSA9PiB7XG4gICAgLy8gQ29udmVydCB0byBEYXRlIG9iamVjdCBpZiBzdHJpbmdcbiAgICBjb25zdCBkYXRlID0gdHlwZW9mIGRhdGVTdHJpbmcgPT09ICdzdHJpbmcnID8gbmV3IERhdGUoZGF0ZVN0cmluZykgOiBkYXRlU3RyaW5nO1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgXG4gICAgaWYgKGRhdGUudG9EYXRlU3RyaW5nKCkgPT09IG5vdy50b0RhdGVTdHJpbmcoKSkge1xuICAgICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVUaW1lU3RyaW5nKFtdLCB7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhbXSwgeyBtb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycgfSk7XG4gICAgfVxuICB9O1xuICBcbiAgLy8gUmVuZGVyIGVtYWlsIGNvbnRlbnQgYmFzZWQgb24gdGhlIGVtYWlsIGJvZHlcbiAgY29uc3QgcmVuZGVyRW1haWxDb250ZW50ID0gKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zb2xlLmxvZygnRW1haWxEZXRhaWxWaWV3IHJlbmRlckVtYWlsQ29udGVudCcsIHtcbiAgICAgICAgaGFzQ29udGVudDogISFlbWFpbC5jb250ZW50LFxuICAgICAgICBjb250ZW50VHlwZTogdHlwZW9mIGVtYWlsLmNvbnRlbnQsXG4gICAgICAgIGhhc0h0bWw6ICEhZW1haWwuaHRtbCxcbiAgICAgICAgaGFzVGV4dDogISFlbWFpbC50ZXh0XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gRGV0ZXJtaW5lIHdoYXQgY29udGVudCB0byB1c2UgYW5kIGhvdyB0byBoYW5kbGUgaXRcbiAgICAgIGxldCBjb250ZW50VG9Vc2UgPSAnJztcbiAgICAgIFxuICAgICAgaWYgKGVtYWlsLmNvbnRlbnQpIHtcbiAgICAgICAgLy8gSWYgY29udGVudCBpcyBhIHN0cmluZywgdXNlIGl0IGRpcmVjdGx5XG4gICAgICAgIGlmICh0eXBlb2YgZW1haWwuY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBjb250ZW50VG9Vc2UgPSBlbWFpbC5jb250ZW50O1xuICAgICAgICB9IFxuICAgICAgICAvLyBJZiBjb250ZW50IGlzIGFuIG9iamVjdCB3aXRoIGh0bWwvdGV4dCBwcm9wZXJ0aWVzXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBlbWFpbC5jb250ZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGNvbnRlbnRUb1VzZSA9IGVtYWlsLmNvbnRlbnQuaHRtbCB8fCBlbWFpbC5jb250ZW50LnRleHQgfHwgJyc7XG4gICAgICAgIH1cbiAgICAgIH0gXG4gICAgICAvLyBGYWxsIGJhY2sgdG8gaHRtbCBvciB0ZXh0IHByb3BlcnRpZXMgaWYgY29udGVudCBpcyBub3QgYXZhaWxhYmxlXG4gICAgICBlbHNlIGlmIChlbWFpbC5odG1sKSB7XG4gICAgICAgIGNvbnRlbnRUb1VzZSA9IGVtYWlsLmh0bWw7XG4gICAgICB9IFxuICAgICAgZWxzZSBpZiAoZW1haWwudGV4dCkge1xuICAgICAgICAvLyBDb252ZXJ0IHBsYWluIHRleHQgdG8gSFRNTCB3aXRoIGxpbmUgYnJlYWtzXG4gICAgICAgIGNvbnRlbnRUb1VzZSA9IGVtYWlsLnRleHRcbiAgICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuICAgICAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcbiAgICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpXG4gICAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCAnPGJyPicpO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBSZXR1cm4gY29udGVudCBvciBmYWxsYmFjayBtZXNzYWdlXG4gICAgICByZXR1cm4gY29udGVudFRvVXNlID8gXG4gICAgICAgIDxkaXYgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBjb250ZW50VG9Vc2UgfX0gLz4gOiBcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWdyYXktNTAwXCI+Tm8gY29udGVudCBhdmFpbGFibGU8L2Rpdj47XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVuZGVyaW5nIGVtYWlsOicsIGUpO1xuICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTUwMFwiPkZhaWxlZCB0byByZW5kZXIgZW1haWwgY29udGVudDwvZGl2PjtcbiAgICB9XG4gIH07XG4gIFxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBoLWZ1bGwgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICB7LyogRW1haWwgYWN0aW9ucyBoZWFkZXIgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtbm9uZSBweC00IHB5LTMgYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG1pbi13LTAgZmxleC0xXCI+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgIHNpemU9XCJpY29uXCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25CYWNrfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtZDpoaWRkZW4gZmxleC1zaHJpbmstMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxDaGV2cm9uTGVmdCBjbGFzc05hbWU9XCJoLTUgdy01XCIgLz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtaW4tdy0wIG1heC13LVs1MDBweF1cIj5cbiAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAge2VtYWlsLnN1YmplY3R9XG4gICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xIGZsZXgtc2hyaW5rLTAgbWwtYXV0b1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBib3JkZXItbCBib3JkZXItZ3JheS0yMDAgcGwtNFwiPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LWdyYXktOTAwIGgtOSB3LTlcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUmVwbHl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVwbHkgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LWdyYXktOTAwIGgtOSB3LTlcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uUmVwbHlBbGx9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVwbHlBbGwgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LWdyYXktOTAwIGgtOSB3LTlcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uRm9yd2FyZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxGb3J3YXJkIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cImljb25cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ncmF5LTkwMCBoLTkgdy05XCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvblRvZ2dsZVN0YXJ9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U3RhciBjbGFzc05hbWU9e2BoLTQgdy00ICR7ZW1haWwuc3RhcnJlZCA/ICdmaWxsLXllbGxvdy00MDAgdGV4dC15ZWxsb3ctNDAwJyA6ICcnfWB9IC8+XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIHsvKiBTY3JvbGxhYmxlIGNvbnRlbnQgYXJlYSAtIGVuaGFuY2VkIGZvciBiZXR0ZXIgc2Nyb2xsaW5nICovfVxuICAgICAgPFNjcm9sbEFyZWEgY2xhc3NOYW1lPVwiZmxleC0xIG92ZXJmbG93LWF1dG9cIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTZcIj5cbiAgICAgICAgICB7LyogRW1haWwgaGVhZGVyIGluZm8gKi99XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNCBtYi02XCI+XG4gICAgICAgICAgICA8QXZhdGFyIGNsYXNzTmFtZT1cImgtMTAgdy0xMFwiPlxuICAgICAgICAgICAgICA8QXZhdGFyRmFsbGJhY2s+XG4gICAgICAgICAgICAgICAgeyhlbWFpbC5mcm9tPy5bMF0/Lm5hbWUgfHwgJycpLmNoYXJBdCgwKSB8fCAoZW1haWwuZnJvbT8uWzBdPy5hZGRyZXNzIHx8ICcnKS5jaGFyQXQoMCkgfHwgJz8nfVxuICAgICAgICAgICAgICA8L0F2YXRhckZhbGxiYWNrPlxuICAgICAgICAgICAgPC9BdmF0YXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMVwiPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwXCI+XG4gICAgICAgICAgICAgICAge2VtYWlsLmZyb20/LlswXT8ubmFtZSB8fCAnJ30gPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1ncmF5LTUwMFwiPiZsdDt7ZW1haWwuZnJvbT8uWzBdPy5hZGRyZXNzIHx8ICcnfSZndDs8L3NwYW4+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwXCI+XG4gICAgICAgICAgICAgICAgdG8ge2VtYWlsLnRvPy5bMF0/LmFkZHJlc3MgfHwgJyd9XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAge2VtYWlsLmNjICYmIGVtYWlsLmNjLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTUwMFwiPlxuICAgICAgICAgICAgICAgICAgY2Mge2VtYWlsLmNjLm1hcChjID0+IGMuYWRkcmVzcykuam9pbignLCAnKX1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwIHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgIHtmb3JtYXREYXRlKGVtYWlsLmRhdGUpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgey8qIEVtYWlsIGNvbnRlbnQgd2l0aCBpbXByb3ZlZCBzY3JvbGxpbmcgKi99XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwcm9zZSBwcm9zZS1zbSBtYXgtdy1ub25lIGVtYWlsLWNvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgICAgICAge3JlbmRlckVtYWlsQ29udGVudCgpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIHsvKiBBdHRhY2htZW50cyAoaWYgYW55KSAqL31cbiAgICAgICAgICB7ZW1haWwuaGFzQXR0YWNobWVudHMgJiYgZW1haWwuYXR0YWNobWVudHMgJiYgZW1haWwuYXR0YWNobWVudHMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTYgYm9yZGVyLXQgYm9yZGVyLWdyYXktMTAwIHB0LTRcIj5cbiAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBtYi0yXCI+QXR0YWNobWVudHM8L2gzPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgc206Z3JpZC1jb2xzLTIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICB7ZW1haWwuYXR0YWNobWVudHMubWFwKChhdHRhY2htZW50LCBpZHgpID0+IChcbiAgICAgICAgICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAgICAgICAgIGtleT17aWR4fVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBwLTIgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLW1kXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgbWluLXctMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMCB0cnVuY2F0ZVwiPnthdHRhY2htZW50LmZpbGVuYW1lfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtZ3JheS01MDBcIj57KGF0dGFjaG1lbnQuc2l6ZSAvIDEwMjQpLnRvRml4ZWQoMSl9IEtCPC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9TY3JvbGxBcmVhPlxuXG4gICAgICB7LyogQWRkIENTUyBmb3IgYmV0dGVyIGVtYWlsIGNvbnRlbnQgZGlzcGxheSAqL31cbiAgICAgIDxzdHlsZSBqc3ggZ2xvYmFsPntgXG4gICAgICAgIC5lbWFpbC1jb250ZW50LXdyYXBwZXIge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5lbWFpbC1jb250ZW50LXdyYXBwZXIgaW1nIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuZW1haWwtY29udGVudC13cmFwcGVyIHRhYmxlIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICAgICAgLmVtYWlsLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9kaXY+XG4gICk7XG59ICJdLCJuYW1lcyI6WyJSZWFjdCIsIkNoZXZyb25MZWZ0IiwiUmVwbHkiLCJSZXBseUFsbCIsIkZvcndhcmQiLCJTdGFyIiwiU2Nyb2xsQXJlYSIsIkF2YXRhciIsIkF2YXRhckZhbGxiYWNrIiwiQnV0dG9uIiwiRW1haWxEZXRhaWxWaWV3IiwiZW1haWwiLCJvbkJhY2siLCJvblJlcGx5Iiwib25SZXBseUFsbCIsIm9uRm9yd2FyZCIsIm9uVG9nZ2xlU3RhciIsImZvcm1hdERhdGUiLCJkYXRlU3RyaW5nIiwiZGF0ZSIsIkRhdGUiLCJub3ciLCJ0b0RhdGVTdHJpbmciLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJob3VyIiwibWludXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwibW9udGgiLCJkYXkiLCJyZW5kZXJFbWFpbENvbnRlbnQiLCJjb25zb2xlIiwibG9nIiwiaGFzQ29udGVudCIsImNvbnRlbnQiLCJjb250ZW50VHlwZSIsImhhc0h0bWwiLCJodG1sIiwiaGFzVGV4dCIsInRleHQiLCJjb250ZW50VG9Vc2UiLCJyZXBsYWNlIiwiZGl2IiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJjbGFzc05hbWUiLCJlIiwiZXJyb3IiLCJ2YXJpYW50Iiwic2l6ZSIsIm9uQ2xpY2siLCJoMiIsInN1YmplY3QiLCJzdGFycmVkIiwiZnJvbSIsIm5hbWUiLCJjaGFyQXQiLCJhZGRyZXNzIiwicCIsInNwYW4iLCJ0byIsImNjIiwibGVuZ3RoIiwibWFwIiwiYyIsImpvaW4iLCJoYXNBdHRhY2htZW50cyIsImF0dGFjaG1lbnRzIiwiaDMiLCJhdHRhY2htZW50IiwiaWR4IiwiZmlsZW5hbWUiLCJ0b0ZpeGVkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/EmailDetailView.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/email/EmailDialogs.tsx":
/*!*******************************************!*\
!*** ./components/email/EmailDialogs.tsx ***!
\*******************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DeleteConfirmDialog: () => (/* binding */ DeleteConfirmDialog),\n/* harmony export */ LoginNeededAlert: () => (/* binding */ LoginNeededAlert)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _barrel_optimize_names_AlertCircle_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js\");\n/* harmony import */ var _components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/alert-dialog */ \"(app-pages-browser)/./components/ui/alert-dialog.tsx\");\n/* harmony import */ var _components_ui_alert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/alert */ \"(app-pages-browser)/./components/ui/alert.tsx\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n\n\n\n\n\n\nfunction DeleteConfirmDialog(param) {\n let { show, selectedCount, onConfirm, onCancel } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialog, {\n open: show,\n onOpenChange: (open)=>!open && onCancel(),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialogContent, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialogHeader, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialogTitle, {\n children: [\n \"Delete \",\n selectedCount,\n \" email\",\n selectedCount !== 1 ? 's' : '',\n \"?\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 33,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialogDescription, {\n children: [\n \"This will move the selected email\",\n selectedCount !== 1 ? 's' : '',\n \" to the trash folder. You can restore them later from the trash folder if needed.\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 34,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 32,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialogFooter, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialogCancel, {\n onClick: onCancel,\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 40,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert_dialog__WEBPACK_IMPORTED_MODULE_2__.AlertDialogAction, {\n onClick: onConfirm,\n children: \"Delete\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 41,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 39,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 31,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 30,\n columnNumber: 5\n }, this);\n}\n_c = DeleteConfirmDialog;\nfunction LoginNeededAlert(param) {\n let { show, onLogin, onClose } = param;\n if (!show) return null;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert__WEBPACK_IMPORTED_MODULE_3__.Alert, {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 63,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert__WEBPACK_IMPORTED_MODULE_3__.AlertTitle, {\n children: \"Please log in to your email account\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 64,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_alert__WEBPACK_IMPORTED_MODULE_3__.AlertDescription, {\n children: \"You need to connect your email account before you can access your emails.\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 65,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-2 flex gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_4__.Button, {\n size: \"sm\",\n onClick: onLogin,\n children: \"Go to Login\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 69,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_4__.Button, {\n size: \"sm\",\n variant: \"outline\",\n onClick: onClose,\n children: \"Dismiss\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 70,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 68,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailDialogs.tsx\",\n lineNumber: 62,\n columnNumber: 5\n }, this);\n}\n_c1 = LoginNeededAlert;\nvar _c, _c1;\n$RefreshReg$(_c, \"DeleteConfirmDialog\");\n$RefreshReg$(_c1, \"LoginNeededAlert\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvRW1haWxEaWFsb2dzLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQTBCO0FBQ2lCO0FBVUw7QUFDc0M7QUFDNUI7QUFTekMsU0FBU2Msb0JBQW9CLEtBS1Q7UUFMUyxFQUNsQ0MsSUFBSSxFQUNKQyxhQUFhLEVBQ2JDLFNBQVMsRUFDVEMsUUFBUSxFQUNpQixHQUxTO0lBTWxDLHFCQUNFLDhEQUFDaEIsb0VBQVdBO1FBQUNpQixNQUFNSjtRQUFNSyxjQUFjLENBQUNELE9BQVMsQ0FBQ0EsUUFBUUQ7a0JBQ3hELDRFQUFDYiwyRUFBa0JBOzs4QkFDakIsOERBQUNHLDBFQUFpQkE7O3NDQUNoQiw4REFBQ0MseUVBQWdCQTs7Z0NBQUM7Z0NBQVFPO2dDQUFjO2dDQUFPQSxrQkFBa0IsSUFBSSxNQUFNO2dDQUFHOzs7Ozs7O3NDQUM5RSw4REFBQ1YsK0VBQXNCQTs7Z0NBQUM7Z0NBQ1lVLGtCQUFrQixJQUFJLE1BQU07Z0NBQUc7Ozs7Ozs7Ozs7Ozs7OEJBSXJFLDhEQUFDVCwwRUFBaUJBOztzQ0FDaEIsOERBQUNILDBFQUFpQkE7NEJBQUNpQixTQUFTSDtzQ0FBVTs7Ozs7O3NDQUN0Qyw4REFBQ2YsMEVBQWlCQTs0QkFBQ2tCLFNBQVNKO3NDQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtqRDtLQXZCZ0JIO0FBK0JULFNBQVNRLGlCQUFpQixLQUlUO1FBSlMsRUFDL0JQLElBQUksRUFDSlEsT0FBTyxFQUNQQyxPQUFPLEVBQ2UsR0FKUztJQUsvQixJQUFJLENBQUNULE1BQU0sT0FBTztJQUVsQixxQkFDRSw4REFBQ0wsdURBQUtBO1FBQUNlLFdBQVU7OzBCQUNmLDhEQUFDeEIsdUZBQVdBO2dCQUFDd0IsV0FBVTs7Ozs7OzBCQUN2Qiw4REFBQ2IsNERBQVVBOzBCQUFDOzs7Ozs7MEJBQ1osOERBQUNELGtFQUFnQkE7MEJBQUM7Ozs7OzswQkFHbEIsOERBQUNlO2dCQUFJRCxXQUFVOztrQ0FDYiw4REFBQ1oseURBQU1BO3dCQUFDYyxNQUFLO3dCQUFLTixTQUFTRTtrQ0FBUzs7Ozs7O2tDQUNwQyw4REFBQ1YseURBQU1BO3dCQUFDYyxNQUFLO3dCQUFLQyxTQUFRO3dCQUFVUCxTQUFTRztrQ0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSTlEO01BcEJnQkYiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvY29tcG9uZW50cy9lbWFpbC9FbWFpbERpYWxvZ3MudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBBbGVydENpcmNsZSB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQge1xuICBBbGVydERpYWxvZyxcbiAgQWxlcnREaWFsb2dBY3Rpb24sXG4gIEFsZXJ0RGlhbG9nQ2FuY2VsLFxuICBBbGVydERpYWxvZ0NvbnRlbnQsXG4gIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb24sXG4gIEFsZXJ0RGlhbG9nRm9vdGVyLFxuICBBbGVydERpYWxvZ0hlYWRlcixcbiAgQWxlcnREaWFsb2dUaXRsZSxcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9hbGVydC1kaWFsb2dcIjtcbmltcG9ydCB7IEFsZXJ0LCBBbGVydERlc2NyaXB0aW9uLCBBbGVydFRpdGxlIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL2FsZXJ0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9idXR0b24nO1xuXG5pbnRlcmZhY2UgRGVsZXRlQ29uZmlybURpYWxvZ1Byb3BzIHtcbiAgc2hvdzogYm9vbGVhbjtcbiAgc2VsZWN0ZWRDb3VudDogbnVtYmVyO1xuICBvbkNvbmZpcm06ICgpID0+IFByb21pc2U8dm9pZD47XG4gIG9uQ2FuY2VsOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRGVsZXRlQ29uZmlybURpYWxvZyh7XG4gIHNob3csXG4gIHNlbGVjdGVkQ291bnQsXG4gIG9uQ29uZmlybSxcbiAgb25DYW5jZWxcbn06IERlbGV0ZUNvbmZpcm1EaWFsb2dQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxBbGVydERpYWxvZyBvcGVuPXtzaG93fSBvbk9wZW5DaGFuZ2U9eyhvcGVuKSA9PiAhb3BlbiAmJiBvbkNhbmNlbCgpfT5cbiAgICAgIDxBbGVydERpYWxvZ0NvbnRlbnQ+XG4gICAgICAgIDxBbGVydERpYWxvZ0hlYWRlcj5cbiAgICAgICAgICA8QWxlcnREaWFsb2dUaXRsZT5EZWxldGUge3NlbGVjdGVkQ291bnR9IGVtYWlse3NlbGVjdGVkQ291bnQgIT09IDEgPyAncycgOiAnJ30/PC9BbGVydERpYWxvZ1RpdGxlPlxuICAgICAgICAgIDxBbGVydERpYWxvZ0Rlc2NyaXB0aW9uPlxuICAgICAgICAgICAgVGhpcyB3aWxsIG1vdmUgdGhlIHNlbGVjdGVkIGVtYWlse3NlbGVjdGVkQ291bnQgIT09IDEgPyAncycgOiAnJ30gdG8gdGhlIHRyYXNoIGZvbGRlci5cbiAgICAgICAgICAgIFlvdSBjYW4gcmVzdG9yZSB0aGVtIGxhdGVyIGZyb20gdGhlIHRyYXNoIGZvbGRlciBpZiBuZWVkZWQuXG4gICAgICAgICAgPC9BbGVydERpYWxvZ0Rlc2NyaXB0aW9uPlxuICAgICAgICA8L0FsZXJ0RGlhbG9nSGVhZGVyPlxuICAgICAgICA8QWxlcnREaWFsb2dGb290ZXI+XG4gICAgICAgICAgPEFsZXJ0RGlhbG9nQ2FuY2VsIG9uQ2xpY2s9e29uQ2FuY2VsfT5DYW5jZWw8L0FsZXJ0RGlhbG9nQ2FuY2VsPlxuICAgICAgICAgIDxBbGVydERpYWxvZ0FjdGlvbiBvbkNsaWNrPXtvbkNvbmZpcm19PkRlbGV0ZTwvQWxlcnREaWFsb2dBY3Rpb24+XG4gICAgICAgIDwvQWxlcnREaWFsb2dGb290ZXI+XG4gICAgICA8L0FsZXJ0RGlhbG9nQ29udGVudD5cbiAgICA8L0FsZXJ0RGlhbG9nPlxuICApO1xufVxuXG5pbnRlcmZhY2UgTG9naW5OZWVkZWRBbGVydFByb3BzIHtcbiAgc2hvdzogYm9vbGVhbjtcbiAgb25Mb2dpbjogKCkgPT4gdm9pZDtcbiAgb25DbG9zZTogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIExvZ2luTmVlZGVkQWxlcnQoe1xuICBzaG93LFxuICBvbkxvZ2luLFxuICBvbkNsb3NlXG59OiBMb2dpbk5lZWRlZEFsZXJ0UHJvcHMpIHtcbiAgaWYgKCFzaG93KSByZXR1cm4gbnVsbDtcbiAgXG4gIHJldHVybiAoXG4gICAgPEFsZXJ0IGNsYXNzTmFtZT1cIm1iLTRcIj5cbiAgICAgIDxBbGVydENpcmNsZSBjbGFzc05hbWU9XCJoLTQgdy00XCIgLz5cbiAgICAgIDxBbGVydFRpdGxlPlBsZWFzZSBsb2cgaW4gdG8geW91ciBlbWFpbCBhY2NvdW50PC9BbGVydFRpdGxlPlxuICAgICAgPEFsZXJ0RGVzY3JpcHRpb24+XG4gICAgICAgIFlvdSBuZWVkIHRvIGNvbm5lY3QgeW91ciBlbWFpbCBhY2NvdW50IGJlZm9yZSB5b3UgY2FuIGFjY2VzcyB5b3VyIGVtYWlscy5cbiAgICAgIDwvQWxlcnREZXNjcmlwdGlvbj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMiBmbGV4IGdhcC0yXCI+XG4gICAgICAgIDxCdXR0b24gc2l6ZT1cInNtXCIgb25DbGljaz17b25Mb2dpbn0+R28gdG8gTG9naW48L0J1dHRvbj5cbiAgICAgICAgPEJ1dHRvbiBzaXplPVwic21cIiB2YXJpYW50PVwib3V0bGluZVwiIG9uQ2xpY2s9e29uQ2xvc2V9PkRpc21pc3M8L0J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvQWxlcnQ+XG4gICk7XG59ICJdLCJuYW1lcyI6WyJSZWFjdCIsIkFsZXJ0Q2lyY2xlIiwiQWxlcnREaWFsb2ciLCJBbGVydERpYWxvZ0FjdGlvbiIsIkFsZXJ0RGlhbG9nQ2FuY2VsIiwiQWxlcnREaWFsb2dDb250ZW50IiwiQWxlcnREaWFsb2dEZXNjcmlwdGlvbiIsIkFsZXJ0RGlhbG9nRm9vdGVyIiwiQWxlcnREaWFsb2dIZWFkZXIiLCJBbGVydERpYWxvZ1RpdGxlIiwiQWxlcnQiLCJBbGVydERlc2NyaXB0aW9uIiwiQWxlcnRUaXRsZSIsIkJ1dHRvbiIsIkRlbGV0ZUNvbmZpcm1EaWFsb2ciLCJzaG93Iiwic2VsZWN0ZWRDb3VudCIsIm9uQ29uZmlybSIsIm9uQ2FuY2VsIiwib3BlbiIsIm9uT3BlbkNoYW5nZSIsIm9uQ2xpY2siLCJMb2dpbk5lZWRlZEFsZXJ0Iiwib25Mb2dpbiIsIm9uQ2xvc2UiLCJjbGFzc05hbWUiLCJkaXYiLCJzaXplIiwidmFyaWFudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/EmailDialogs.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/email/EmailList.tsx":
/*!****************************************!*\
!*** ./components/email/EmailList.tsx ***!
\****************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ EmailList)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _barrel_optimize_names_Mail_Search_X_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Mail,Search,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\");\n/* harmony import */ var _barrel_optimize_names_Mail_Search_X_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Mail,Search,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/search.js\");\n/* harmony import */ var _barrel_optimize_names_Mail_Search_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Mail,Search,X!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js\");\n/* harmony import */ var _EmailListItem__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./EmailListItem */ \"(app-pages-browser)/./components/email/EmailListItem.tsx\");\n/* harmony import */ var _EmailListHeader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./EmailListHeader */ \"(app-pages-browser)/./components/email/EmailListHeader.tsx\");\n/* harmony import */ var _BulkActionsToolbar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BulkActionsToolbar */ \"(app-pages-browser)/./components/email/BulkActionsToolbar.tsx\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./components/ui/input.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\nfunction EmailList(param) {\n let { emails, selectedEmailIds, selectedEmail, currentFolder, isLoading, totalEmails, hasMoreEmails, onSelectEmail, onToggleSelect, onToggleSelectAll, onBulkAction, onToggleStarred, onLoadMore, onSearch } = param;\n _s();\n const [scrollPosition, setScrollPosition] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n const [searchQuery, setSearchQuery] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n // Handle scroll to detect when user reaches the bottom\n const handleScroll = (event)=>{\n const target = event.target;\n const { scrollTop, scrollHeight, clientHeight } = target;\n setScrollPosition(scrollTop);\n // Calculate how close to the bottom we are (in pixels)\n const distanceToBottom = scrollHeight - scrollTop - clientHeight;\n // DEBUG: Log scroll positions\n console.log(\"[DEBUG] Scroll metrics - Distance to bottom: \".concat(distanceToBottom, \"px, scrollHeight: \").concat(scrollHeight, \", scrollTop: \").concat(scrollTop, \", clientHeight: \").concat(clientHeight));\n // CRITICAL FIX: Much more aggressive threshold - load more when within 500px of bottom\n // Also add double-check with percentage to handle all screen sizes\n const scrollPercentage = (scrollTop + clientHeight) / scrollHeight;\n // DEBUG: Log scroll percentage and conditions\n console.log(\"[DEBUG] Scroll percentage: \".concat(Math.round(scrollPercentage * 100), \"%, hasMoreEmails: \").concat(hasMoreEmails, \", isLoading: \").concat(isLoading));\n // Trigger loading when within 500px OR at 80% of the scroll distance\n if ((distanceToBottom < 500 || scrollPercentage > 0.8) && hasMoreEmails && !isLoading) {\n console.log(\"[DEBUG-TRIGGER] Loading more emails - distance: \".concat(distanceToBottom, \"px, percentage: \").concat(Math.round(scrollPercentage * 100), \"%\"));\n onLoadMore();\n } else if ((distanceToBottom < 500 || scrollPercentage > 0.8) && hasMoreEmails && isLoading) {\n console.log(\"[DEBUG-BLOCKED] Not loading more emails because isLoading is true\");\n } else if ((distanceToBottom < 500 || scrollPercentage > 0.8) && !hasMoreEmails) {\n console.log(\"[DEBUG-BLOCKED] Not loading more emails because hasMoreEmails is false\");\n }\n };\n // Handle search\n const handleSearch = (e)=>{\n e.preventDefault();\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchQuery);\n };\n const clearSearch = ()=>{\n setSearchQuery('');\n onSearch === null || onSearch === void 0 ? void 0 : onSearch('');\n };\n // Render loading state\n if (isLoading && emails.length === 0) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center items-center h-full p-8 bg-white/95 backdrop-blur-sm\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-8 w-8 border-t-2 border-b-2 border-blue-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 93,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 92,\n columnNumber: 7\n }, this);\n }\n // Render empty state\n if (emails.length === 0) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col justify-center items-center h-64 p-8 text-center bg-white/95 backdrop-blur-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_Search_X_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-8 w-8 text-gray-400 mb-2\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 102,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-gray-500 text-sm\",\n children: searchQuery ? 'No emails match your search' : currentFolder === 'INBOX' ? \"Your inbox is empty. You're all caught up!\" : 'No emails in this folder'\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 103,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 101,\n columnNumber: 7\n }, this);\n }\n // Are all emails selected\n const allSelected = selectedEmailIds.length === emails.length && emails.length > 0;\n // Are some (but not all) emails selected\n const someSelected = selectedEmailIds.length > 0 && selectedEmailIds.length < emails.length;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-[320px] bg-white/95 backdrop-blur-sm border-r border-gray-100 flex flex-col\",\n children: [\n selectedEmailIds.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sticky top-0 z-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_BulkActionsToolbar__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n selectedCount: selectedEmailIds.length,\n onBulkAction: onBulkAction\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 125,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 124,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-b border-gray-100\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"px-4 py-2\",\n children: /*#__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_Mail_Search_X_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"absolute left-2 top-2.5 h-4 w-4 text-gray-400\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 136,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSearch,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n type: \"search\",\n placeholder: \"Search in folder...\",\n className: \"pl-8 h-9 bg-gray-50\",\n value: searchQuery,\n onChange: (e)=>setSearchQuery(e.target.value)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 138,\n columnNumber: 15\n }, this),\n searchQuery && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: clearSearch,\n className: \"absolute right-2 top-1/2 transform -translate-y-1/2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Mail_Search_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-4 w-4 text-gray-400\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 151,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 146,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 137,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 135,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 134,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_EmailListHeader__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n allSelected: allSelected,\n someSelected: someSelected,\n onToggleSelectAll: onToggleSelectAll,\n currentFolder: currentFolder,\n totalEmails: totalEmails\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 157,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 133,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto\",\n onScroll: handleScroll,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"divide-y divide-gray-100\",\n children: [\n emails.map((email)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_EmailListItem__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n email: email,\n isSelected: selectedEmailIds.includes(email.id),\n isActive: (selectedEmail === null || selectedEmail === void 0 ? void 0 : selectedEmail.id) === email.id,\n onSelect: ()=>onSelectEmail(email.id, email.accountId || '', email.folder || ''),\n onToggleSelect: (e)=>{\n e.stopPropagation();\n onToggleSelect(email.id);\n },\n onToggleStarred: (e)=>{\n e.stopPropagation();\n onToggleStarred(email.id);\n }\n }, email.id, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 172,\n columnNumber: 13\n }, this)),\n isLoading && emails.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-center p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-4 w-4 border-t-2 border-b-2 border-blue-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 191,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 190,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 170,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 166,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailList.tsx\",\n lineNumber: 121,\n columnNumber: 5\n }, this);\n}\n_s(EmailList, \"GvZU3IeD7wibiJyZa3LdMal4y7g=\");\n_c = EmailList;\nvar _c;\n$RefreshReg$(_c, \"EmailList\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvRW1haWxMaXN0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBRXdDO0FBQ2dCO0FBRVo7QUFDSTtBQUNNO0FBQ1I7QUFtQi9CLFNBQVNTLFVBQVUsS0FlakI7UUFmaUIsRUFDaENDLE1BQU0sRUFDTkMsZ0JBQWdCLEVBQ2hCQyxhQUFhLEVBQ2JDLGFBQWEsRUFDYkMsU0FBUyxFQUNUQyxXQUFXLEVBQ1hDLGFBQWEsRUFDYkMsYUFBYSxFQUNiQyxjQUFjLEVBQ2RDLGlCQUFpQixFQUNqQkMsWUFBWSxFQUNaQyxlQUFlLEVBQ2ZDLFVBQVUsRUFDVkMsUUFBUSxFQUNPLEdBZmlCOztJQWdCaEMsTUFBTSxDQUFDQyxnQkFBZ0JDLGtCQUFrQixHQUFHeEIsK0NBQVFBLENBQUM7SUFDckQsTUFBTSxDQUFDeUIsYUFBYUMsZUFBZSxHQUFHMUIsK0NBQVFBLENBQUM7SUFFL0MsdURBQXVEO0lBQ3ZELE1BQU0yQixlQUFlLENBQUNDO1FBQ3BCLE1BQU1DLFNBQVNELE1BQU1DLE1BQU07UUFDM0IsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFlBQVksRUFBRUMsWUFBWSxFQUFFLEdBQUdIO1FBRWxETCxrQkFBa0JNO1FBRWxCLHVEQUF1RDtRQUN2RCxNQUFNRyxtQkFBbUJGLGVBQWVELFlBQVlFO1FBRXBELDhCQUE4QjtRQUM5QkUsUUFBUUMsR0FBRyxDQUFDLGdEQUFxRkosT0FBckNFLGtCQUFpQixzQkFBZ0RILE9BQTVCQyxjQUFhLGlCQUEyQ0MsT0FBNUJGLFdBQVUsb0JBQStCLE9BQWJFO1FBRXpKLHVGQUF1RjtRQUN2RixtRUFBbUU7UUFDbkUsTUFBTUksbUJBQW1CLENBQUNOLFlBQVlFLFlBQVcsSUFBS0Q7UUFFdEQsOENBQThDO1FBQzlDRyxRQUFRQyxHQUFHLENBQUMsOEJBQXFGcEIsT0FBdkRzQixLQUFLQyxLQUFLLENBQUNGLG1CQUFtQixNQUFLLHNCQUFpRHZCLE9BQTdCRSxlQUFj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REFBYUE7Z0NBRVp3RCxPQUFPQTtnQ0FDUEMsWUFBWW5ELGlCQUFpQm9ELFFBQVEsQ0FBQ0YsTUFBTUcsRUFBRTtnQ0FDOUNDLFVBQVVyRCxDQUFBQSwwQkFBQUEsb0NBQUFBLGNBQWVvRCxFQUFFLE1BQUtILE1BQU1HLEVBQUU7Z0NBQ3hDRSxVQUFVLElBQU1qRCxjQUFjNEMsTUFBTUcsRUFBRSxFQUFFSCxNQUFNTSxTQUFTLElBQUksSUFBSU4sTUFBTU8sTUFBTSxJQUFJO2dDQUMvRWxELGdCQUFnQixDQUFDdUI7b0NBQ2ZBLEVBQUU0QixlQUFlO29DQUNqQm5ELGVBQWUyQyxNQUFNRyxFQUFFO2dDQUN6QjtnQ0FDQTNDLGlCQUFpQixDQUFDb0I7b0NBQ2hCQSxFQUFFNEIsZUFBZTtvQ0FDakJoRCxnQkFBZ0J3QyxNQUFNRyxFQUFFO2dDQUMxQjsrQkFaS0gsTUFBTUcsRUFBRTs7Ozs7d0JBZ0JoQmxELGFBQWFKLE9BQU9rQyxNQUFNLEdBQUcsbUJBQzVCLDhEQUFDQzs0QkFBSUMsV0FBVTtzQ0FDYiw0RUFBQ0Q7Z0NBQUlDLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPN0I7R0ExS3dCckM7S0FBQUEiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvY29tcG9uZW50cy9lbWFpbC9FbWFpbExpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTG9hZGVyMiwgTWFpbCwgU2VhcmNoLCBYIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB7IEVtYWlsIH0gZnJvbSAnQC9ob29rcy91c2UtY291cnJpZXInO1xuaW1wb3J0IEVtYWlsTGlzdEl0ZW0gZnJvbSAnLi9FbWFpbExpc3RJdGVtJztcbmltcG9ydCBFbWFpbExpc3RIZWFkZXIgZnJvbSAnLi9FbWFpbExpc3RIZWFkZXInO1xuaW1wb3J0IEJ1bGtBY3Rpb25zVG9vbGJhciBmcm9tICcuL0J1bGtBY3Rpb25zVG9vbGJhcic7XG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9pbnB1dCc7XG5cbmludGVyZmFjZSBFbWFpbExpc3RQcm9wcyB7XG4gIGVtYWlsczogRW1haWxbXTtcbiAgc2VsZWN0ZWRFbWFpbElkczogc3RyaW5nW107XG4gIHNlbGVjdGVkRW1haWw6IEVtYWlsIHwgbnVsbDtcbiAgY3VycmVudEZvbGRlcjogc3RyaW5nO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIHRvdGFsRW1haWxzOiBudW1iZXI7XG4gIGhhc01vcmVFbWFpbHM6IGJvb2xlYW47XG4gIG9uU2VsZWN0RW1haWw6IChlbWFpbElkOiBzdHJpbmcsIGFjY291bnRJZDogc3RyaW5nLCBmb2xkZXI6IHN0cmluZykgPT4gdm9pZDtcbiAgb25Ub2dnbGVTZWxlY3Q6IChlbWFpbElkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlU2VsZWN0QWxsOiAoKSA9PiB2b2lkO1xuICBvbkJ1bGtBY3Rpb246IChhY3Rpb246ICdkZWxldGUnIHwgJ21hcmstcmVhZCcgfCAnbWFyay11bnJlYWQnIHwgJ2FyY2hpdmUnKSA9PiB2b2lkO1xuICBvblRvZ2dsZVN0YXJyZWQ6IChlbWFpbElkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uTG9hZE1vcmU6ICgpID0+IHZvaWQ7XG4gIG9uU2VhcmNoPzogKHF1ZXJ5OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEVtYWlsTGlzdCh7XG4gIGVtYWlscyxcbiAgc2VsZWN0ZWRFbWFpbElkcyxcbiAgc2VsZWN0ZWRFbWFpbCxcbiAgY3VycmVudEZvbGRlcixcbiAgaXNMb2FkaW5nLFxuICB0b3RhbEVtYWlscyxcbiAgaGFzTW9yZUVtYWlscyxcbiAgb25TZWxlY3RFbWFpbCxcbiAgb25Ub2dnbGVTZWxlY3QsXG4gIG9uVG9nZ2xlU2VsZWN0QWxsLFxuICBvbkJ1bGtBY3Rpb24sXG4gIG9uVG9nZ2xlU3RhcnJlZCxcbiAgb25Mb2FkTW9yZSxcbiAgb25TZWFyY2hcbn06IEVtYWlsTGlzdFByb3BzKSB7XG4gIGNvbnN0IFtzY3JvbGxQb3NpdGlvbiwgc2V0U2Nyb2xsUG9zaXRpb25dID0gdXNlU3RhdGUoMCk7XG4gIGNvbnN0IFtzZWFyY2hRdWVyeSwgc2V0U2VhcmNoUXVlcnldID0gdXNlU3RhdGUoJycpO1xuXG4gIC8vIEhhbmRsZSBzY3JvbGwgdG8gZGV0ZWN0IHdoZW4gdXNlciByZWFjaGVzIHRoZSBib3R0b21cbiAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKGV2ZW50OiBSZWFjdC5VSUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IHRhcmdldDtcbiAgICBcbiAgICBzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxUb3ApO1xuICAgIFxuICAgIC8vIENhbGN1bGF0ZSBob3cgY2xvc2UgdG8gdGhlIGJvdHRvbSB3ZSBhcmUgKGluIHBpeGVscylcbiAgICBjb25zdCBkaXN0YW5jZVRvQm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gY2xpZW50SGVpZ2h0O1xuICAgIFxuICAgIC8vIERFQlVHOiBMb2cgc2Nyb2xsIHBvc2l0aW9uc1xuICAgIGNvbnNvbGUubG9nKGBbREVCVUddIFNjcm9sbCBtZXRyaWNzIC0gRGlzdGFuY2UgdG8gYm90dG9tOiAke2Rpc3RhbmNlVG9Cb3R0b219cHgsIHNjcm9sbEhlaWdodDogJHtzY3JvbGxIZWlnaHR9LCBzY3JvbGxUb3A6ICR7c2Nyb2xsVG9wfSwgY2xpZW50SGVpZ2h0OiAke2NsaWVudEhlaWdodH1gKTtcbiAgICBcbiAgICAvLyBDUklUSUNBTCBGSVg6IE11Y2ggbW9yZSBhZ2dyZXNzaXZlIHRocmVzaG9sZCAtIGxvYWQgbW9yZSB3aGVuIHdpdGhpbiA1MDBweCBvZiBib3R0b21cbiAgICAvLyBBbHNvIGFkZCBkb3VibGUtY2hlY2sgd2l0aCBwZXJjZW50YWdlIHRvIGhhbmRsZSBhbGwgc2NyZWVuIHNpemVzXG4gICAgY29uc3Qgc2Nyb2xsUGVyY2VudGFnZSA9IChzY3JvbGxUb3AgKyBjbGllbnRIZWlnaHQpIC8gc2Nyb2xsSGVpZ2h0O1xuICAgIFxuICAgIC8vIERFQlVHOiBMb2cgc2Nyb2xsIHBlcmNlbnRhZ2UgYW5kIGNvbmRpdGlvbnNcbiAgICBjb25zb2xlLmxvZyhgW0RFQlVHXSBTY3JvbGwgcGVyY2VudGFnZTogJHtNYXRoLnJvdW5kKHNjcm9sbFBlcmNlbnRhZ2UgKiAxMDApfSUsIGhhc01vcmVFbWFpbHM6ICR7aGFzTW9yZUVtYWlsc30sIGlzTG9hZGluZzogJHtpc0xvYWRpbmd9YCk7XG4gICAgXG4gICAgLy8gVHJpZ2dlciBsb2FkaW5nIHdoZW4gd2l0aGluIDUwMHB4IE9SIGF0IDgwJSBvZiB0aGUgc2Nyb2xsIGRpc3RhbmNlXG4gICAgaWYgKChkaXN0YW5jZVRvQm90dG9tIDwgNTAwIHx8IHNjcm9sbFBlcmNlbnRhZ2UgPiAwLjgpICYmIGhhc01vcmVFbWFpbHMgJiYgIWlzTG9hZGluZykge1xuICAgICAgY29uc29sZS5sb2coYFtERUJVRy1UUklHR0VSXSBMb2FkaW5nIG1vcmUgZW1haWxzIC0gZGlzdGFuY2U6ICR7ZGlzdGFuY2VUb0JvdHRvbX1weCwgcGVyY2VudGFnZTogJHtNYXRoLnJvdW5kKHNjcm9sbFBlcmNlbnRhZ2UgKiAxMDApfSVgKTtcbiAgICAgIG9uTG9hZE1vcmUoKTtcbiAgICB9IGVsc2UgaWYgKChkaXN0YW5jZVRvQm90dG9tIDwgNTAwIHx8IHNjcm9sbFBlcmNlbnRhZ2UgPiAwLjgpICYmIGhhc01vcmVFbWFpbHMgJiYgaXNMb2FkaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLUJMT0NLRURdIE5vdCBsb2FkaW5nIG1vcmUgZW1haWxzIGJlY2F1c2UgaXNMb2FkaW5nIGlzIHRydWVgKTtcbiAgICB9IGVsc2UgaWYgKChkaXN0YW5jZVRvQm90dG9tIDwgNTAwIHx8IHNjcm9sbFBlcmNlbnRhZ2UgPiAwLjgpICYmICFoYXNNb3JlRW1haWxzKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLUJMT0NLRURdIE5vdCBsb2FkaW5nIG1vcmUgZW1haWxzIGJlY2F1c2UgaGFzTW9yZUVtYWlscyBpcyBmYWxzZWApO1xuICAgIH1cbiAgfTtcblxuICAvLyBIYW5kbGUgc2VhcmNoXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9IChlOiBSZWFjdC5Gb3JtRXZlbnQpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgb25TZWFyY2g/LihzZWFyY2hRdWVyeSk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJTZWFyY2ggPSAoKSA9PiB7XG4gICAgc2V0U2VhcmNoUXVlcnkoJycpO1xuICAgIG9uU2VhcmNoPy4oJycpO1xuICB9O1xuXG4gIC8vIFJlbmRlciBsb2FkaW5nIHN0YXRlXG4gIGlmIChpc0xvYWRpbmcgJiYgZW1haWxzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIGgtZnVsbCBwLTggYmctd2hpdGUvOTUgYmFja2Ryb3AtYmx1ci1zbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFuaW1hdGUtc3BpbiByb3VuZGVkLWZ1bGwgaC04IHctOCBib3JkZXItdC0yIGJvcmRlci1iLTIgYm9yZGVyLWJsdWUtNTAwXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgLy8gUmVuZGVyIGVtcHR5IHN0YXRlXG4gIGlmIChlbWFpbHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgaC02NCBwLTggdGV4dC1jZW50ZXIgYmctd2hpdGUvOTUgYmFja2Ryb3AtYmx1ci1zbVwiPlxuICAgICAgICA8TWFpbCBjbGFzc05hbWU9XCJoLTggdy04IHRleHQtZ3JheS00MDAgbWItMlwiIC8+XG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtZ3JheS01MDAgdGV4dC1zbVwiPlxuICAgICAgICAgIHtzZWFyY2hRdWVyeSBcbiAgICAgICAgICAgID8gJ05vIGVtYWlscyBtYXRjaCB5b3VyIHNlYXJjaCdcbiAgICAgICAgICAgIDogY3VycmVudEZvbGRlciA9PT0gJ0lOQk9YJyBcbiAgICAgICAgICAgICAgPyBcIllvdXIgaW5ib3ggaXMgZW1wdHkuIFlvdSdyZSBhbGwgY2F1Z2h0IHVwIVwiIFxuICAgICAgICAgICAgICA6ICdObyBlbWFpbHMgaW4gdGhpcyBmb2xkZXInfVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgLy8gQXJlIGFsbCBlbWFpbHMgc2VsZWN0ZWRcbiAgY29uc3QgYWxsU2VsZWN0ZWQgPSBzZWxlY3RlZEVtYWlsSWRzLmxlbmd0aCA9PT0gZW1haWxzLmxlbmd0aCAmJiBlbWFpbHMubGVuZ3RoID4gMDtcbiAgXG4gIC8vIEFyZSBzb21lIChidXQgbm90IGFsbCkgZW1haWxzIHNlbGVjdGVkXG4gIGNvbnN0IHNvbWVTZWxlY3RlZCA9IHNlbGVjdGVkRW1haWxJZHMubGVuZ3RoID4gMCAmJiBzZWxlY3RlZEVtYWlsSWRzLmxlbmd0aCA8IGVtYWlscy5sZW5ndGg7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInctWzMyMHB4XSBiZy13aGl0ZS85NSBiYWNrZHJvcC1ibHVyLXNtIGJvcmRlci1yIGJvcmRlci1ncmF5LTEwMCBmbGV4IGZsZXgtY29sXCI+XG4gICAgICB7LyogU3RpY2t5IHRvb2xiYXIgLSBhbHdheXMgdmlzaWJsZSBhdCB0aGUgdG9wIHdoZW4gZW1haWxzIGFyZSBzZWxlY3RlZCAqL31cbiAgICAgIHtzZWxlY3RlZEVtYWlsSWRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0aWNreSB0b3AtMCB6LTEwXCI+XG4gICAgICAgICAgPEJ1bGtBY3Rpb25zVG9vbGJhciBcbiAgICAgICAgICAgIHNlbGVjdGVkQ291bnQ9e3NlbGVjdGVkRW1haWxJZHMubGVuZ3RofVxuICAgICAgICAgICAgb25CdWxrQWN0aW9uPXtvbkJ1bGtBY3Rpb259XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAgXG4gICAgICB7LyogU2VhcmNoIGhlYWRlciAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHgtNCBweS0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgPFNlYXJjaCBjbGFzc05hbWU9XCJhYnNvbHV0ZSBsZWZ0LTIgdG9wLTIuNSBoLTQgdy00IHRleHQtZ3JheS00MDBcIiAvPlxuICAgICAgICAgICAgPGZvcm0gb25TdWJtaXQ9e2hhbmRsZVNlYXJjaH0+XG4gICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGluIGZvbGRlci4uLlwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicGwtOCBoLTkgYmctZ3JheS01MFwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFF1ZXJ5fVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoUXVlcnkoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB7c2VhcmNoUXVlcnkgJiYgKFxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJTZWFyY2h9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSByaWdodC0yIHRvcC0xLzIgdHJhbnNmb3JtIC10cmFuc2xhdGUteS0xLzJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxYIGNsYXNzTmFtZT1cImgtNCB3LTQgdGV4dC1ncmF5LTQwMFwiIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8RW1haWxMaXN0SGVhZGVyIFxuICAgICAgICAgIGFsbFNlbGVjdGVkPXthbGxTZWxlY3RlZH1cbiAgICAgICAgICBzb21lU2VsZWN0ZWQ9e3NvbWVTZWxlY3RlZH1cbiAgICAgICAgICBvblRvZ2dsZVNlbGVjdEFsbD17b25Ub2dnbGVTZWxlY3RBbGx9XG4gICAgICAgICAgY3VycmVudEZvbGRlcj17Y3VycmVudEZvbGRlcn1cbiAgICAgICAgICB0b3RhbEVtYWlscz17dG90YWxFbWFpbHN9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgPGRpdiBcbiAgICAgICAgY2xhc3NOYW1lPVwiZmxleC0xIG92ZXJmbG93LXktYXV0b1wiXG4gICAgICAgIG9uU2Nyb2xsPXtoYW5kbGVTY3JvbGx9XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGl2aWRlLXkgZGl2aWRlLWdyYXktMTAwXCI+XG4gICAgICAgICAge2VtYWlscy5tYXAoKGVtYWlsKSA9PiAoXG4gICAgICAgICAgICA8RW1haWxMaXN0SXRlbVxuICAgICAgICAgICAgICBrZXk9e2VtYWlsLmlkfVxuICAgICAgICAgICAgICBlbWFpbD17ZW1haWx9XG4gICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e3NlbGVjdGVkRW1haWxJZHMuaW5jbHVkZXMoZW1haWwuaWQpfVxuICAgICAgICAgICAgICBpc0FjdGl2ZT17c2VsZWN0ZWRFbWFpbD8uaWQgPT09IGVtYWlsLmlkfVxuICAgICAgICAgICAgICBvblNlbGVjdD17KCkgPT4gb25TZWxlY3RFbWFpbChlbWFpbC5pZCwgZW1haWwuYWNjb3VudElkIHx8ICcnLCBlbWFpbC5mb2xkZXIgfHwgJycpfVxuICAgICAgICAgICAgICBvblRvZ2dsZVNlbGVjdD17KGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIG9uVG9nZ2xlU2VsZWN0KGVtYWlsLmlkKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgb25Ub2dnbGVTdGFycmVkPXsoZTogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgb25Ub2dnbGVTdGFycmVkKGVtYWlsLmlkKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgICAgXG4gICAgICAgICAge2lzTG9hZGluZyAmJiBlbWFpbHMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHAtNFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFuaW1hdGUtc3BpbiByb3VuZGVkLWZ1bGwgaC00IHctNCBib3JkZXItdC0yIGJvcmRlci1iLTIgYm9yZGVyLWJsdWUtNTAwXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufSAiXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsIk1haWwiLCJTZWFyY2giLCJYIiwiRW1haWxMaXN0SXRlbSIsIkVtYWlsTGlzdEhlYWRlciIsIkJ1bGtBY3Rpb25zVG9vbGJhciIsIklucHV0IiwiRW1haWxMaXN0IiwiZW1haWxzIiwic2VsZWN0ZWRFbWFpbElkcyIsInNlbGVjdGVkRW1haWwiLCJjdXJyZW50Rm9sZGVyIiwiaXNMb2FkaW5nIiwidG90YWxFbWFpbHMiLCJoYXNNb3JlRW1haWxzIiwib25TZWxlY3RFbWFpbCIsIm9uVG9nZ2xlU2VsZWN0Iiwib25Ub2dnbGVTZWxlY3RBbGwiLCJvbkJ1bGtBY3Rpb24iLCJvblRvZ2dsZVN0YXJyZWQiLCJvbkxvYWRNb3JlIiwib25TZWFyY2giLCJzY3JvbGxQb3NpdGlvbiIsInNldFNjcm9sbFBvc2l0aW9uIiwic2VhcmNoUXVlcnkiLCJzZXRTZWFyY2hRdWVyeSIsImhhbmRsZVNjcm9sbCIsImV2ZW50IiwidGFyZ2V0Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiZGlzdGFuY2VUb0JvdHRvbSIsImNvbnNvbGUiLCJsb2ciLCJzY3JvbGxQZXJjZW50YWdlIiwiTWF0aCIsInJvdW5kIiwiaGFuZGxlU2VhcmNoIiwiZSIsInByZXZlbnREZWZhdWx0IiwiY2xlYXJTZWFyY2giLCJsZW5ndGgiLCJkaXYiLCJjbGFzc05hbWUiLCJwIiwiYWxsU2VsZWN0ZWQiLCJzb21lU2VsZWN0ZWQiLCJzZWxlY3RlZENvdW50IiwiZm9ybSIsIm9uU3VibWl0IiwidHlwZSIsInBsYWNlaG9sZGVyIiwidmFsdWUiLCJvbkNoYW5nZSIsImJ1dHRvbiIsIm9uQ2xpY2siLCJvblNjcm9sbCIsIm1hcCIsImVtYWlsIiwiaXNTZWxlY3RlZCIsImluY2x1ZGVzIiwiaWQiLCJpc0FjdGl2ZSIsIm9uU2VsZWN0IiwiYWNjb3VudElkIiwiZm9sZGVyIiwic3RvcFByb3BhZ2F0aW9uIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/EmailList.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/email/EmailListHeader.tsx":
/*!**********************************************!*\
!*** ./components/email/EmailListHeader.tsx ***!
\**********************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ EmailListHeader)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_ui_checkbox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/checkbox */ \"(app-pages-browser)/./components/ui/checkbox.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\nfunction EmailListHeader(param) {\n let { allSelected, someSelected, onToggleSelectAll, currentFolder = 'Inbox', totalEmails = 0 } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between px-4 h-14\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_2__.Checkbox, {\n checked: allSelected,\n ref: (input)=>{\n if (input) {\n input.indeterminate = someSelected && !allSelected;\n }\n },\n onCheckedChange: onToggleSelectAll,\n className: \"mt-0.5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListHeader.tsx\",\n lineNumber: 25,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-base font-semibold text-gray-900 capitalize\",\n children: \"Messages\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListHeader.tsx\",\n lineNumber: 35,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListHeader.tsx\",\n lineNumber: 24,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm text-gray-600\",\n children: [\n totalEmails,\n \" \",\n totalEmails === 1 ? 'email' : 'emails'\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListHeader.tsx\",\n lineNumber: 38,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListHeader.tsx\",\n lineNumber: 23,\n columnNumber: 5\n }, this);\n}\n_c = EmailListHeader;\nvar _c;\n$RefreshReg$(_c, \"EmailListHeader\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvRW1haWxMaXN0SGVhZGVyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFMEI7QUFFMEI7QUFVckMsU0FBU0UsZ0JBQWdCLEtBTWpCO1FBTmlCLEVBQ3RDQyxXQUFXLEVBQ1hDLFlBQVksRUFDWkMsaUJBQWlCLEVBQ2pCQyxnQkFBZ0IsT0FBTyxFQUN2QkMsY0FBYyxDQUFDLEVBQ00sR0FOaUI7SUFPdEMscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNSLDZEQUFRQTt3QkFDUFMsU0FBU1A7d0JBQ1RRLEtBQUssQ0FBQ0M7NEJBQ0osSUFBSUEsT0FBTztnQ0FDUkEsTUFBc0NDLGFBQWEsR0FBR1QsZ0JBQWdCLENBQUNEOzRCQUMxRTt3QkFDRjt3QkFDQVcsaUJBQWlCVDt3QkFDakJJLFdBQVU7Ozs7OztrQ0FFWiw4REFBQ007d0JBQUdOLFdBQVU7a0NBQW1EOzs7Ozs7Ozs7Ozs7MEJBR25FLDhEQUFDTztnQkFBS1AsV0FBVTs7b0JBQ2JGO29CQUFZO29CQUFFQSxnQkFBZ0IsSUFBSSxVQUFVOzs7Ozs7Ozs7Ozs7O0FBSXJEO0tBNUJ3QkwiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvY29tcG9uZW50cy9lbWFpbC9FbWFpbExpc3RIZWFkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENoZXZyb25Eb3duLCBJbmJveCB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyBDaGVja2JveCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9jaGVja2JveCc7XG5cbmludGVyZmFjZSBFbWFpbExpc3RIZWFkZXJQcm9wcyB7XG4gIGFsbFNlbGVjdGVkOiBib29sZWFuO1xuICBzb21lU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIG9uVG9nZ2xlU2VsZWN0QWxsOiAoKSA9PiB2b2lkO1xuICBjdXJyZW50Rm9sZGVyPzogc3RyaW5nO1xuICB0b3RhbEVtYWlscz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRW1haWxMaXN0SGVhZGVyKHtcbiAgYWxsU2VsZWN0ZWQsXG4gIHNvbWVTZWxlY3RlZCxcbiAgb25Ub2dnbGVTZWxlY3RBbGwsXG4gIGN1cnJlbnRGb2xkZXIgPSAnSW5ib3gnLFxuICB0b3RhbEVtYWlscyA9IDBcbn06IEVtYWlsTGlzdEhlYWRlclByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcHgtNCBoLTE0XCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgIDxDaGVja2JveCBcbiAgICAgICAgICBjaGVja2VkPXthbGxTZWxlY3RlZH1cbiAgICAgICAgICByZWY9eyhpbnB1dCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICAgIChpbnB1dCBhcyB1bmtub3duIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmluZGV0ZXJtaW5hdGUgPSBzb21lU2VsZWN0ZWQgJiYgIWFsbFNlbGVjdGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgb25DaGVja2VkQ2hhbmdlPXtvblRvZ2dsZVNlbGVjdEFsbH1cbiAgICAgICAgICBjbGFzc05hbWU9XCJtdC0wLjVcIlxuICAgICAgICAvPlxuICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCBjYXBpdGFsaXplXCI+TWVzc2FnZXM8L2gyPlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTYwMFwiPlxuICAgICAgICB7dG90YWxFbWFpbHN9IHt0b3RhbEVtYWlscyA9PT0gMSA/ICdlbWFpbCcgOiAnZW1haWxzJ31cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn0gIl0sIm5hbWVzIjpbIlJlYWN0IiwiQ2hlY2tib3giLCJFbWFpbExpc3RIZWFkZXIiLCJhbGxTZWxlY3RlZCIsInNvbWVTZWxlY3RlZCIsIm9uVG9nZ2xlU2VsZWN0QWxsIiwiY3VycmVudEZvbGRlciIsInRvdGFsRW1haWxzIiwiZGl2IiwiY2xhc3NOYW1lIiwiY2hlY2tlZCIsInJlZiIsImlucHV0IiwiaW5kZXRlcm1pbmF0ZSIsIm9uQ2hlY2tlZENoYW5nZSIsImgyIiwic3BhbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/EmailListHeader.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/email/EmailListItem.tsx":
/*!********************************************!*\
!*** ./components/email/EmailListItem.tsx ***!
\********************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ EmailListItem)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _barrel_optimize_names_Star_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Star!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/star.js\");\n/* harmony import */ var _components_ui_checkbox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/checkbox */ \"(app-pages-browser)/./components/ui/checkbox.tsx\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\nconst PREVIEW_LENGTH = 70;\nfunction EmailListItem(param) {\n let { email, isSelected, isActive, onSelect, onToggleSelect, onToggleStarred } = param;\n var _email_flags, _email_flags1, _email_flags2;\n // Format the date in a readable way\n const formatDate = (dateString)=>{\n const date = new Date(dateString);\n const now = new Date();\n const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n const yesterday = new Date(today);\n yesterday.setDate(yesterday.getDate() - 1);\n // Check if date is today\n if (date >= today) {\n return date.toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit'\n });\n }\n // Check if date is yesterday\n if (date >= yesterday) {\n return 'Yesterday';\n }\n // Check if date is this year\n if (date.getFullYear() === now.getFullYear()) {\n return date.toLocaleDateString([], {\n month: 'short',\n day: 'numeric'\n });\n }\n // Date is from a previous year\n return date.toLocaleDateString([], {\n year: 'numeric',\n month: 'short',\n day: 'numeric'\n });\n };\n // Get the first letter of the sender's name or email for the avatar\n const getSenderInitial = ()=>{\n if (!email.from || email.from.length === 0) return '?';\n const sender = email.from[0];\n if (sender.name && sender.name.trim()) {\n return sender.name.trim()[0].toUpperCase();\n }\n if (sender.address && sender.address.trim()) {\n return sender.address.trim()[0].toUpperCase();\n }\n return '?';\n };\n // Get sender name or email\n const getSenderName = ()=>{\n if (!email.from || email.from.length === 0) return 'Unknown';\n const sender = email.from[0];\n if (sender.name && sender.name.trim()) {\n return sender.name.trim();\n }\n return sender.address || 'Unknown';\n };\n // Generate a stable color based on the sender's email\n const getAvatarColor = ()=>{\n if (!email.from || email.from.length === 0) return 'hsl(0, 0%, 50%)';\n const address = email.from[0].address || '';\n let hash = 0;\n for(let i = 0; i < address.length; i++){\n hash = address.charCodeAt(i) + ((hash << 5) - hash);\n }\n const h = hash % 360;\n return \"hsl(\".concat(h, \", 70%, 80%)\");\n };\n // Get preview text from email content\n const getPreviewText = (content)=>{\n let text = '';\n if (typeof content === 'string') {\n text = content;\n } else {\n // Prefer text content if available, fall back to HTML\n text = content.text || content.html;\n }\n // Strip HTML tags if present\n text = text.replace(/<[^>]+>/g, ' ');\n // Clean up whitespace\n text = text.replace(/\\s+/g, ' ').trim();\n // Truncate to preview length\n return text.length > PREVIEW_LENGTH ? text.substring(0, PREVIEW_LENGTH) + '...' : text;\n };\n // Handle email selection without affecting checkbox\n const handleEmailSelect = (e)=>{\n // Make sure we're not clicking on or near the checkbox\n const target = e.target;\n const checkboxArea = target.closest('.checkbox-area');\n if (!checkboxArea) {\n onSelect();\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)('flex items-center gap-3 px-4 py-2 hover:bg-gray-50/80 cursor-pointer', isActive ? 'bg-blue-50/50' : '', !((_email_flags = email.flags) === null || _email_flags === void 0 ? void 0 : _email_flags.seen) ? 'bg-blue-50/20' : ''),\n onClick: handleEmailSelect,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-shrink-0 pr-2 checkbox-area\",\n onClick: (e)=>{\n e.stopPropagation();\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_2__.Checkbox, {\n checked: isSelected,\n onCheckedChange: (checked)=>{\n // Only trigger toggle if the checkbox state actually changed\n if (checked !== isSelected) {\n // Create a dummy event object with just stopPropagation\n const dummyEvent = {\n stopPropagation: ()=>{}\n };\n onToggleSelect(dummyEvent);\n }\n },\n onClick: (e)=>{\n e.stopPropagation();\n // Don't call onToggleSelect here - let onCheckedChange handle it\n },\n className: \"mt-0.5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 148,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 142,\n columnNumber: 7\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 gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 min-w-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm truncate \".concat(!((_email_flags1 = email.flags) === null || _email_flags1 === void 0 ? void 0 : _email_flags1.seen) ? 'font-semibold text-gray-900' : 'text-gray-600'),\n children: getSenderName()\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 171,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 170,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 flex-shrink-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-gray-500 whitespace-nowrap\",\n children: formatDate(email.date.toString())\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 176,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"h-6 w-6 text-gray-400 hover:text-yellow-400\",\n onClick: (e)=>{\n e.stopPropagation();\n onToggleStarred(e);\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Star_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-4 w-4 \".concat(((_email_flags2 = email.flags) === null || _email_flags2 === void 0 ? void 0 : _email_flags2.flagged) ? 'fill-yellow-400 text-yellow-400' : '')\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 186,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 179,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 175,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 169,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-sm text-gray-900 truncate\",\n children: email.subject || '(No subject)'\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 191,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500 truncate\",\n children: getPreviewText(email.content)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 195,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 168,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailListItem.tsx\",\n lineNumber: 134,\n columnNumber: 5\n }, this);\n}\n_c = EmailListItem;\nvar _c;\n$RefreshReg$(_c, \"EmailListItem\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvRW1haWxMaXN0SXRlbS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFMEI7QUFDMEI7QUFDQTtBQUNuQjtBQWNqQyxNQUFNSSxpQkFBaUI7QUFFUixTQUFTQyxjQUFjLEtBT2pCO1FBUGlCLEVBQ3BDQyxLQUFLLEVBQ0xDLFVBQVUsRUFDVkMsUUFBUSxFQUNSQyxRQUFRLEVBQ1JDLGNBQWMsRUFDZEMsZUFBZSxFQUNJLEdBUGlCO1FBb0g3QkwsY0FpQ3lDQSxlQWVSQTtJQTVKeEMsb0NBQW9DO0lBQ3BDLE1BQU1NLGFBQWEsQ0FBQ0M7UUFDbEIsTUFBTUMsT0FBTyxJQUFJQyxLQUFLRjtRQUN0QixNQUFNRyxNQUFNLElBQUlEO1FBQ2hCLE1BQU1FLFFBQVEsSUFBSUYsS0FBS0MsSUFBSUUsV0FBVyxJQUFJRixJQUFJRyxRQUFRLElBQUlILElBQUlJLE9BQU87UUFDckUsTUFBTUMsWUFBWSxJQUFJTixLQUFLRTtRQUMzQkksVUFBVUMsT0FBTyxDQUFDRCxVQUFVRCxPQUFPLEtBQUs7UUFFeEMseUJBQXlCO1FBQ3pCLElBQUlOLFFBQVFHLE9BQU87WUFDakIsT0FBT0gsS0FBS1Msa0JBQWtCLENBQUMsRUFBRSxFQUFFO2dCQUFFQyxNQUFNO2dCQUFXQyxRQUFRO1lBQVU7UUFDMUU7UUFFQSw2QkFBNkI7UUFDN0IsSUFBSVgsUUFBUU8sV0FBVztZQUNyQixPQUFPO1FBQ1Q7UUFFQSw2QkFBNkI7UUFDN0IsSUFBSVAsS0FBS0ksV0FBVyxPQUFPRixJQUFJRSxXQUFXLElBQUk7WUFDNUMsT0FBT0osS0FBS1ksa0JBQWtCLENBQUMsRUFBRSxFQUFFO2dCQUFFQyxPQUFPO2dCQUFTQyxLQUFLO1lBQVU7UUFDdEU7UUFFQSwrQkFBK0I7UUFDL0IsT0FBT2QsS0FBS1ksa0JBQWtCLENBQUMsRUFBRSxFQUFFO1lBQUVHLE1BQU07WUFBV0YsT0FBTztZQUFTQyxLQUFLO1FBQVU7SUFDdkY7SUFFQSxv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bi9OZWFoLW1haWwvY29tcG9uZW50cy9lbWFpbC9FbWFpbExpc3RJdGVtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTdGFyLCBNYWlsLCBNYWlsT3BlbiB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyBDaGVja2JveCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9jaGVja2JveCc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJ0AvbGliL3V0aWxzJztcbmltcG9ydCB7IEVtYWlsIH0gZnJvbSAnQC9ob29rcy91c2UtY291cnJpZXInO1xuaW1wb3J0IHsgQmFkZ2UgfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvYmFkZ2UnO1xuaW1wb3J0IHsgQXZhdGFyLCBBdmF0YXJGYWxsYmFjayB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9hdmF0YXInO1xuXG5pbnRlcmZhY2UgRW1haWxMaXN0SXRlbVByb3BzIHtcbiAgZW1haWw6IEVtYWlsO1xuICBpc1NlbGVjdGVkOiBib29sZWFuO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgb25TZWxlY3Q6ICgpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlU2VsZWN0OiAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgb25Ub2dnbGVTdGFycmVkOiAoZTogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbn1cblxuY29uc3QgUFJFVklFV19MRU5HVEggPSA3MDtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRW1haWxMaXN0SXRlbSh7XG4gIGVtYWlsLFxuICBpc1NlbGVjdGVkLFxuICBpc0FjdGl2ZSxcbiAgb25TZWxlY3QsXG4gIG9uVG9nZ2xlU2VsZWN0LFxuICBvblRvZ2dsZVN0YXJyZWRcbn06IEVtYWlsTGlzdEl0ZW1Qcm9wcykge1xuICAvLyBGb3JtYXQgdGhlIGRhdGUgaW4gYSByZWFkYWJsZSB3YXlcbiAgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlU3RyaW5nOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZVN0cmluZyk7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKG5vdy5nZXRGdWxsWWVhcigpLCBub3cuZ2V0TW9udGgoKSwgbm93LmdldERhdGUoKSk7XG4gICAgY29uc3QgeWVzdGVyZGF5ID0gbmV3IERhdGUodG9kYXkpO1xuICAgIHllc3RlcmRheS5zZXREYXRlKHllc3RlcmRheS5nZXREYXRlKCkgLSAxKTtcbiAgICBcbiAgICAvLyBDaGVjayBpZiBkYXRlIGlzIHRvZGF5XG4gICAgaWYgKGRhdGUgPj0gdG9kYXkpIHtcbiAgICAgIHJldHVybiBkYXRlLnRvTG9jYWxlVGltZVN0cmluZyhbXSwgeyBob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTogJzItZGlnaXQnIH0pO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBpZiBkYXRlIGlzIHllc3RlcmRheVxuICAgIGlmIChkYXRlID49IHllc3RlcmRheSkge1xuICAgICAgcmV0dXJuICdZZXN0ZXJkYXknO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBpZiBkYXRlIGlzIHRoaXMgeWVhclxuICAgIGlmIChkYXRlLmdldEZ1bGxZZWFyKCkgPT09IG5vdy5nZXRGdWxsWWVhcigpKSB7XG4gICAgICByZXR1cm4gZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoW10sIHsgbW9udGg6ICdzaG9ydCcsIGRheTogJ251bWVyaWMnIH0pO1xuICAgIH1cbiAgICBcbiAgICAvLyBEYXRlIGlzIGZyb20gYSBwcmV2aW91cyB5ZWFyXG4gICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKFtdLCB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICdzaG9ydCcsIGRheTogJ251bWVyaWMnIH0pO1xuICB9O1xuXG4gIC8vIEdldCB0aGUgZmlyc3QgbGV0dGVyIG9mIHRoZSBzZW5kZXIncyBuYW1lIG9yIGVtYWlsIGZvciB0aGUgYXZhdGFyXG4gIGNvbnN0IGdldFNlbmRlckluaXRpYWwgPSAoKSA9PiB7XG4gICAgaWYgKCFlbWFpbC5mcm9tIHx8IGVtYWlsLmZyb20ubGVuZ3RoID09PSAwKSByZXR1cm4gJz8nO1xuICAgIFxuICAgIGNvbnN0IHNlbmRlciA9IGVtYWlsLmZyb21bMF07XG4gICAgaWYgKHNlbmRlci5uYW1lICYmIHNlbmRlci5uYW1lLnRyaW0oKSkge1xuICAgICAgcmV0dXJuIHNlbmRlci5uYW1lLnRyaW0oKVswXS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cbiAgICBcbiAgICBpZiAoc2VuZGVyLmFkZHJlc3MgJiYgc2VuZGVyLmFkZHJlc3MudHJpbSgpKSB7XG4gICAgICByZXR1cm4gc2VuZGVyLmFkZHJlc3MudHJpbSgpWzBdLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiAnPyc7XG4gIH07XG5cbiAgLy8gR2V0IHNlbmRlciBuYW1lIG9yIGVtYWlsXG4gIGNvbnN0IGdldFNlbmRlck5hbWUgPSAoKSA9PiB7XG4gICAgaWYgKCFlbWFpbC5mcm9tIHx8IGVtYWlsLmZyb20ubGVuZ3RoID09PSAwKSByZXR1cm4gJ1Vua25vd24nO1xuICAgIFxuICAgIGNvbnN0IHNlbmRlciA9IGVtYWlsLmZyb21bMF07XG4gICAgaWYgKHNlbmRlci5uYW1lICYmIHNlbmRlci5uYW1lLnRyaW0oKSkge1xuICAgICAgcmV0dXJuIHNlbmRlci5uYW1lLnRyaW0oKTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHNlbmRlci5hZGRyZXNzIHx8ICdVbmtub3duJztcbiAgfTtcblxuICAvLyBHZW5lcmF0ZSBhIHN0YWJsZSBjb2xvciBiYXNlZCBvbiB0aGUgc2VuZGVyJ3MgZW1haWxcbiAgY29uc3QgZ2V0QXZhdGFyQ29sb3IgPSAoKSA9PiB7XG4gICAgaWYgKCFlbWFpbC5mcm9tIHx8IGVtYWlsLmZyb20ubGVuZ3RoID09PSAwKSByZXR1cm4gJ2hzbCgwLCAwJSwgNTAlKSc7XG4gICAgXG4gICAgY29uc3QgYWRkcmVzcyA9IGVtYWlsLmZyb21bMF0uYWRkcmVzcyB8fCAnJztcbiAgICBsZXQgaGFzaCA9IDA7XG4gICAgXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhZGRyZXNzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBoYXNoID0gYWRkcmVzcy5jaGFyQ29kZUF0KGkpICsgKChoYXNoIDw8IDUpIC0gaGFzaCk7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGggPSBoYXNoICUgMzYwO1xuICAgIHJldHVybiBgaHNsKCR7aH0sIDcwJSwgODAlKWA7XG4gIH07XG5cbiAgLy8gR2V0IHByZXZpZXcgdGV4dCBmcm9tIGVtYWlsIGNvbnRlbnRcbiAgY29uc3QgZ2V0UHJldmlld1RleHQgPSAoY29udGVudDogeyB0ZXh0OiBzdHJpbmc7IGh0bWw6IHN0cmluZyB9IHwgc3RyaW5nKSA9PiB7XG4gICAgbGV0IHRleHQgPSAnJztcbiAgICBcbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0ZXh0ID0gY29udGVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUHJlZmVyIHRleHQgY29udGVudCBpZiBhdmFpbGFibGUsIGZhbGwgYmFjayB0byBIVE1MXG4gICAgICB0ZXh0ID0gY29udGVudC50ZXh0IHx8IGNvbnRlbnQuaHRtbDtcbiAgICB9XG4gICAgXG4gICAgLy8gU3RyaXAgSFRNTCB0YWdzIGlmIHByZXNlbnRcbiAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC88W14+XSs+L2csICcgJyk7XG4gICAgXG4gICAgLy8gQ2xlYW4gdXAgd2hpdGVzcGFjZVxuICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoL1xccysvZywgJyAnKS50cmltKCk7XG4gICAgXG4gICAgLy8gVHJ1bmNhdGUgdG8gcHJldmlldyBsZW5ndGhcbiAgICByZXR1cm4gdGV4dC5sZW5ndGggPiBQUkVWSUVXX0xFTkdUSCBcbiAgICAgID8gdGV4dC5zdWJzdHJpbmcoMCwgUFJFVklFV19MRU5HVEgpICsgJy4uLidcbiAgICAgIDogdGV4dDtcbiAgfTtcblxuICAvLyBIYW5kbGUgZW1haWwgc2VsZWN0aW9uIHdpdGhvdXQgYWZmZWN0aW5nIGNoZWNrYm94XG4gIGNvbnN0IGhhbmRsZUVtYWlsU2VsZWN0ID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAvLyBNYWtlIHN1cmUgd2UncmUgbm90IGNsaWNraW5nIG9uIG9yIG5lYXIgdGhlIGNoZWNrYm94XG4gICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgY2hlY2tib3hBcmVhID0gdGFyZ2V0LmNsb3Nlc3QoJy5jaGVja2JveC1hcmVhJyk7XG4gICAgaWYgKCFjaGVja2JveEFyZWEpIHtcbiAgICAgIG9uU2VsZWN0KCk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBcbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICdmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBweC00IHB5LTIgaG92ZXI6YmctZ3JheS01MC84MCBjdXJzb3ItcG9pbnRlcicsXG4gICAgICAgIGlzQWN0aXZlID8gJ2JnLWJsdWUtNTAvNTAnIDogJycsXG4gICAgICAgICFlbWFpbC5mbGFncz8uc2VlbiA/ICdiZy1ibHVlLTUwLzIwJyA6ICcnXG4gICAgICApfVxuICAgICAgb25DbGljaz17aGFuZGxlRW1haWxTZWxlY3R9XG4gICAgPlxuICAgICAgPGRpdiBcbiAgICAgICAgY2xhc3NOYW1lPVwiZmxleC1zaHJpbmstMCBwci0yIGNoZWNrYm94LWFyZWFcIiBcbiAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8Q2hlY2tib3ggXG4gICAgICAgICAgY2hlY2tlZD17aXNTZWxlY3RlZH1cbiAgICAgICAgICBvbkNoZWNrZWRDaGFuZ2U9eyhjaGVja2VkKSA9PiB7XG4gICAgICAgICAgICAvLyBPbmx5IHRyaWdnZXIgdG9nZ2xlIGlmIHRoZSBjaGVja2JveCBzdGF0ZSBhY3R1YWxseSBjaGFuZ2VkXG4gICAgICAgICAgICBpZiAoY2hlY2tlZCAhPT0gaXNTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBkdW1teSBldmVudCBvYmplY3Qgd2l0aCBqdXN0IHN0b3BQcm9wYWdhdGlvblxuICAgICAgICAgICAgICBjb25zdCBkdW1teUV2ZW50ID0geyBcbiAgICAgICAgICAgICAgICBzdG9wUHJvcGFnYXRpb246ICgpID0+IHt9IFxuICAgICAgICAgICAgICB9IGFzIFJlYWN0Lk1vdXNlRXZlbnQ7XG4gICAgICAgICAgICAgIG9uVG9nZ2xlU2VsZWN0KGR1bW15RXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAvLyBEb24ndCBjYWxsIG9uVG9nZ2xlU2VsZWN0IGhlcmUgLSBsZXQgb25DaGVja2VkQ2hhbmdlIGhhbmRsZSBpdFxuICAgICAgICAgIH19XG4gICAgICAgICAgY2xhc3NOYW1lPVwibXQtMC41XCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBtaW4tdy0wXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBtaW4tdy0wXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2B0ZXh0LXNtIHRydW5jYXRlICR7IWVtYWlsLmZsYWdzPy5zZWVuID8gJ2ZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCcgOiAndGV4dC1ncmF5LTYwMCd9YH0+XG4gICAgICAgICAgICAgIHtnZXRTZW5kZXJOYW1lKCl9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBmbGV4LXNocmluay0wXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgICAgICAge2Zvcm1hdERhdGUoZW1haWwuZGF0ZS50b1N0cmluZygpKX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC02IHctNiB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQteWVsbG93LTQwMFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBvblRvZ2dsZVN0YXJyZWQoZSk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdGFyIGNsYXNzTmFtZT17YGgtNCB3LTQgJHtlbWFpbC5mbGFncz8uZmxhZ2dlZCA/ICdmaWxsLXllbGxvdy00MDAgdGV4dC15ZWxsb3ctNDAwJyA6ICcnfWB9IC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktOTAwIHRydW5jYXRlXCI+XG4gICAgICAgICAge2VtYWlsLnN1YmplY3QgfHwgJyhObyBzdWJqZWN0KSd9XG4gICAgICAgIDwvaDM+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1ncmF5LTUwMCB0cnVuY2F0ZVwiPlxuICAgICAgICAgIHtnZXRQcmV2aWV3VGV4dChlbWFpbC5jb250ZW50KX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn0gIl0sIm5hbWVzIjpbIlJlYWN0IiwiU3RhciIsIkNoZWNrYm94IiwiY24iLCJQUkVWSUVXX0xFTkdUSCIsIkVtYWlsTGlzdEl0ZW0iLCJlbWFpbCIsImlzU2VsZWN0ZWQiLCJpc0FjdGl2ZSIsIm9uU2VsZWN0Iiwib25Ub2dnbGVTZWxlY3QiLCJvblRvZ2dsZVN0YXJyZWQiLCJmb3JtYXREYXRlIiwiZGF0ZVN0cmluZyIsImRhdGUiLCJEYXRlIiwibm93IiwidG9kYXkiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsInllc3RlcmRheSIsInNldERhdGUiLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJob3VyIiwibWludXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwibW9udGgiLCJkYXkiLCJ5ZWFyIiwiZ2V0U2VuZGVySW5pdGlhbCIsImZyb20iLCJsZW5ndGgiLCJzZW5kZXIiLCJuYW1lIiwidHJpbSIsInRvVXBwZXJDYXNlIiwiYWRkcmVzcyIsImdldFNlbmRlck5hbWUiLCJnZXRBdmF0YXJDb2xvciIsImhhc2giLCJpIiwiY2hhckNvZGVBdCIsImgiLCJnZXRQcmV2aWV3VGV4dCIsImNvbnRlbnQiLCJ0ZXh0IiwiaHRtbCIsInJlcGxhY2UiLCJzdWJzdHJpbmciLCJoYW5kbGVFbWFpbFNlbGVjdCIsImUiLCJ0YXJnZXQiLCJjaGVja2JveEFyZWEiLCJjbG9zZXN0IiwiZGl2IiwiY2xhc3NOYW1lIiwiZmxhZ3MiLCJzZWVuIiwib25DbGljayIsInN0b3BQcm9wYWdhdGlvbiIsImNoZWNrZWQiLCJvbkNoZWNrZWRDaGFuZ2UiLCJkdW1teUV2ZW50Iiwic3BhbiIsInRvU3RyaW5nIiwiYnV0dG9uIiwiZmxhZ2dlZCIsImgzIiwic3ViamVjdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/EmailListItem.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/email/EmailSidebar.tsx":
/*!*******************************************!*\
!*** ./components/email/EmailSidebar.tsx ***!
\*******************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ EmailSidebar)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/inbox.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/send.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/archive.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/square-pen.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/octagon-alert.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/message-square.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/plus.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-up.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-down.js\");\n/* harmony import */ var _barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! __barrel_optimize__?names=AlertOctagon,Archive,ChevronDown,ChevronUp,Edit,Inbox,Loader2,Mail,MessageSquare,Plus,RefreshCw,Send,Trash!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-circle.js\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* harmony import */ var _components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/dropdown-menu */ \"(app-pages-browser)/./components/ui/dropdown-menu.tsx\");\n/* harmony import */ var _components_ui_tabs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/tabs */ \"(app-pages-browser)/./components/ui/tabs.tsx\");\n/* harmony import */ var _components_ui_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/input */ \"(app-pages-browser)/./components/ui/input.tsx\");\n/* harmony import */ var _components_ui_checkbox__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/ui/checkbox */ \"(app-pages-browser)/./components/ui/checkbox.tsx\");\n/* harmony import */ var _components_ui_label__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/ui/label */ \"(app-pages-browser)/./components/ui/label.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\n\nfunction EmailSidebar(param) {\n let { accounts, selectedAccount, selectedFolders, currentFolder, loading, unreadCount, showAddAccountForm, showFolders = true, onFolderChange, onRefresh, onComposeNew, onAccountSelect, onShowAddAccountForm, onAddAccount, onEditAccount, onDeleteAccount, onSelectEmail, onShowFoldersToggle } = param;\n _s();\n const [isSaving, setIsSaving] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [formData, setFormData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n email: '',\n password: '',\n displayName: '',\n host: '',\n port: '993',\n useSSL: true,\n smtpHost: '',\n smtpPort: '587',\n smtpUseSSL: false\n });\n const [activeTab, setActiveTab] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('imap');\n // Handle form submission\n const handleSubmit = async (e)=>{\n e.preventDefault();\n setIsSaving(true);\n try {\n await onAddAccount(formData);\n setFormData({\n email: '',\n password: '',\n displayName: '',\n host: '',\n port: '993',\n useSSL: true,\n smtpHost: '',\n smtpPort: '587',\n smtpUseSSL: false\n });\n onShowAddAccountForm(false);\n } catch (err) {\n console.error('Failed to add account:', err);\n } finally{\n setIsSaving(false);\n }\n };\n // Handle input changes\n const handleChange = (e)=>{\n const { name, value, type, checked } = e.target;\n setFormData((prev)=>({\n ...prev,\n [name]: type === 'checkbox' ? checked : value\n }));\n };\n // Get the appropriate icon for a folder\n const getFolderIcon = (folder)=>{\n const folderLower = folder.toLowerCase();\n if (folderLower.includes('inbox')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 122,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('sent')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 124,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('trash')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 126,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('archive')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 128,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('draft')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 130,\n columnNumber: 14\n }, this);\n } else if (folderLower.includes('spam') || folderLower.includes('junk')) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 132,\n columnNumber: 14\n }, this);\n } else {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n className: \"h-4 w-4 text-gray-500\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 134,\n columnNumber: 14\n }, this);\n }\n };\n // Format folder names\n const formatFolderName = (folder)=>{\n return folder.charAt(0).toUpperCase() + folder.slice(1).toLowerCase();\n };\n // Improve the renderFolderButton function to ensure consistent handling\n const renderFolderButton = (folder, accountId)=>{\n var _selectedFolders_accountId;\n // Ensure folder has a consistent format\n let prefixedFolder = folder;\n let baseFolderName = folder;\n let folderAccountId = accountId;\n // Extract parts if the folder has a prefix\n if (folder.includes(':')) {\n const parts = folder.split(':');\n folderAccountId = parts[0];\n baseFolderName = parts[1];\n } else {\n // Add account prefix if missing\n prefixedFolder = \"\".concat(accountId, \":\").concat(folder);\n }\n // Only show folders that belong to this account\n if (folderAccountId !== accountId) {\n return null;\n }\n // Check if this folder is selected for this account\n // Must handle both prefixed and non-prefixed versions in the selected map\n const isSelected = selectedFolders[accountId] === prefixedFolder || selectedFolders[accountId] === baseFolderName || ((_selectedFolders_accountId = selectedFolders[accountId]) === null || _selectedFolders_accountId === void 0 ? void 0 : _selectedFolders_accountId.split(':')[1]) === baseFolderName;\n // Get unread count - check all possible formats\n let folderUnreadCount = 0;\n // Check if this is an inbox folder (only show unread counts for inbox folders)\n // Use exact matching instead of includes() to avoid matching substrings in folder names\n const folderLower = baseFolderName.toLowerCase();\n const isInboxFolder = folderLower === 'inbox';\n // Only calculate unread count for inbox folders\n if (isInboxFolder && unreadCount && unreadCount[accountId]) {\n // Try the base folder name first\n if (typeof unreadCount[accountId][baseFolderName] === 'number') {\n folderUnreadCount = unreadCount[accountId][baseFolderName];\n } else if (typeof unreadCount[accountId][prefixedFolder] === 'number') {\n folderUnreadCount = unreadCount[accountId][prefixedFolder];\n } else {\n // Check for case-insensitive match\n const folderMap = unreadCount[accountId];\n for(const key in folderMap){\n if (key.toLowerCase() === baseFolderName.toLowerCase() || key.toLowerCase() === prefixedFolder.toLowerCase()) {\n folderUnreadCount = folderMap[key];\n break;\n }\n }\n }\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n className: \"w-full justify-start text-xs py-1 h-7 \".concat(isSelected ? 'bg-gray-100' : ''),\n onClick: ()=>{\n // Always ensure the folder name includes the account ID prefix\n const fullyPrefixedFolder = folder.includes(':') ? folder : \"\".concat(accountId, \":\").concat(folder);\n // Make sure we pass the EXACT accountId parameter here, not the folder's extracted account ID\n onFolderChange(fullyPrefixedFolder, accountId);\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center w-full\",\n children: [\n getFolderIcon(baseFolderName),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"ml-2 truncate text-gray-700\",\n children: formatFolderName(baseFolderName)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 219,\n columnNumber: 11\n }, this),\n isInboxFolder && folderUnreadCount > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"ml-auto bg-blue-500 text-white text-[10px] px-1.5 rounded-full\",\n children: folderUnreadCount\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 221,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 217,\n columnNumber: 9\n }, this)\n }, prefixedFolder, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 205,\n columnNumber: 7\n }, this);\n };\n // Add Microsoft button logic\n const handleConnectMicrosoft = async ()=>{\n try {\n const response = await fetch('/api/courrier/microsoft');\n const data = await response.json();\n if (response.ok && data.authUrl) {\n // Redirect to Microsoft's authorization page\n window.location.href = data.authUrl;\n } else {\n console.error('Failed to initiate Microsoft authentication:', data.error);\n }\n } catch (error) {\n console.error('Error connecting Microsoft account:', error);\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-60 bg-white/95 backdrop-blur-sm border-r border-gray-100 flex flex-col md:flex\",\n style: {\n display: \"flex !important\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 border-b border-gray-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n className: \"h-6 w-6 text-gray-600\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 252,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xl font-semibold text-gray-900\",\n children: \"COURRIER\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 253,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 251,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 250,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-2 border-b border-gray-100 flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n className: \"flex-1 bg-blue-600 text-white rounded-lg hover:bg-blue-700 flex items-center justify-center transition-all py-1.5 text-sm\",\n onClick: onComposeNew,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n className: \"h-3.5 w-3.5\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 264,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: \"Compose\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 265,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 263,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 259,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"h-9 w-9 text-gray-400 hover:text-gray-600\",\n onClick: onRefresh,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n className: \"h-4 w-4 \".concat(loading ? 'animate-spin' : '')\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 274,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 268,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 258,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 border-b border-gray-100\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-medium text-gray-500\",\n children: \"Accounts\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 283,\n columnNumber: 13\n }, this),\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)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n size: \"sm\",\n className: \"h-7 w-7 p-0 text-gray-400 hover:text-gray-600\",\n onClick: ()=>onShowFoldersToggle === null || onShowFoldersToggle === void 0 ? void 0 : onShowFoldersToggle(showFolders ? false : true),\n children: showFolders ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 292,\n columnNumber: 19\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 294,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 285,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n variant: \"ghost\",\n size: \"sm\",\n className: \"h-7 w-7 p-0 text-gray-400 hover:text-gray-600\",\n onClick: ()=>onShowAddAccountForm(!showAddAccountForm),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 303,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 297,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 284,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 282,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1\",\n children: [\n showAddAccountForm && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-2 p-2 border border-gray-200 rounded-md bg-white\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-xs font-medium mb-0.5 text-gray-700\",\n children: \"Add IMAP Account\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 313,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSubmit,\n children: /*#__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)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_4__.Tabs, {\n defaultValue: \"imap\",\n className: \"w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_4__.TabsList, {\n className: \"grid w-full grid-cols-2 h-6 mb-0.5 bg-gray-100\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_4__.TabsTrigger, {\n value: \"imap\",\n className: \"text-xs h-5 data-[state=active]:bg-blue-500 data-[state=active]:text-white\",\n children: \"IMAP\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 318,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_4__.TabsTrigger, {\n value: \"smtp\",\n className: \"text-xs h-5 data-[state=active]:bg-blue-500 data-[state=active]:text-white\",\n children: \"SMTP\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 319,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 317,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_4__.TabsContent, {\n value: \"imap\",\n className: \"mt-0.5 space-y-0.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n id: \"email\",\n name: \"email\",\n placeholder: \"email@example.com\",\n className: \"h-7 text-xs bg-white border-gray-300 mb-0.5 text-gray-900\",\n required: true,\n value: formData.email,\n onChange: handleChange\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 324,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 323,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n id: \"password\",\n name: \"password\",\n type: \"password\",\n placeholder: \"•••••••••\",\n className: \"h-7 text-xs bg-white border-gray-300 mb-0.5 text-gray-900\",\n required: true,\n value: formData.password,\n onChange: handleChange\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 335,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 334,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n id: \"display_name\",\n name: \"displayName\",\n placeholder: \"John Doe\",\n className: \"h-7 text-xs bg-white border-gray-300 mb-0.5 text-gray-900\",\n value: formData.displayName,\n onChange: handleChange\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 347,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 346,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n id: \"host\",\n name: \"host\",\n placeholder: \"imap.example.com\",\n className: \"h-7 text-xs bg-white border-gray-300 mb-0.5 text-gray-900\",\n required: true,\n value: formData.host,\n onChange: handleChange\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 357,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 356,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n id: \"port\",\n name: \"port\",\n placeholder: \"993\",\n className: \"h-7 text-xs bg-white border-gray-300 text-gray-900\",\n value: formData.port,\n onChange: handleChange\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 369,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 368,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center pl-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_6__.Checkbox, {\n id: \"useSSL\",\n name: \"useSSL\",\n checked: formData.useSSL,\n onCheckedChange: (checked)=>{\n setFormData((prev)=>({\n ...prev,\n useSSL: checked === true\n }));\n }\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 380,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_7__.Label, {\n htmlFor: \"useSSL\",\n className: \"text-xs\",\n children: \"SSL\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 391,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 379,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 378,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 367,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 322,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_tabs__WEBPACK_IMPORTED_MODULE_4__.TabsContent, {\n value: \"smtp\",\n className: \"mt-0.5 space-y-0.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n id: \"smtp_host\",\n name: \"smtpHost\",\n placeholder: \"smtp.example.com\",\n className: \"h-7 text-xs bg-white border-gray-300 mb-0.5 text-gray-900\",\n value: formData.smtpHost,\n onChange: handleChange\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 399,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 398,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_input__WEBPACK_IMPORTED_MODULE_5__.Input, {\n id: \"smtp_port\",\n name: \"smtpPort\",\n placeholder: \"587\",\n className: \"h-7 text-xs bg-white border-gray-300 text-gray-900\",\n value: formData.smtpPort,\n onChange: handleChange\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 410,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 409,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center pl-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center space-x-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_checkbox__WEBPACK_IMPORTED_MODULE_6__.Checkbox, {\n id: \"smtp_secure\",\n name: \"smtpUseSSL\",\n checked: formData.smtpUseSSL,\n onCheckedChange: (checked)=>{\n setFormData((prev)=>({\n ...prev,\n smtpUseSSL: checked === true\n }));\n }\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 421,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_label__WEBPACK_IMPORTED_MODULE_7__.Label, {\n htmlFor: \"smtp_secure\",\n className: \"text-xs\",\n children: \"SSL\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 432,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 420,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 419,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 408,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500 italic\",\n children: \"Note: SMTP settings needed for sending emails\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 436,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 397,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 316,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-1 mt-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n type: \"submit\",\n className: \"flex-1 h-6 text-xs bg-blue-500 hover:bg-blue-600 text-white rounded-md px-2 py-0\",\n disabled: isSaving,\n children: [\n isSaving ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertOctagon_Archive_ChevronDown_ChevronUp_Edit_Inbox_Loader2_Mail_MessageSquare_Plus_RefreshCw_Send_Trash_lucide_react__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n className: \"h-3 w-3 animate-spin mr-1\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 448,\n columnNumber: 37\n }, this) : null,\n \"Test & Add\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 443,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n type: \"button\",\n className: \"h-6 text-xs bg-gray-200 text-gray-800 hover:bg-gray-300 rounded-md px-2 py-0\",\n onClick: ()=>onShowAddAccountForm(false),\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 451,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 442,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 315,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 314,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-2 pt-2 border-t border-gray-100\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: handleConnectMicrosoft,\n className: \"w-full flex items-center justify-center gap-2 h-7 text-xs bg-[#0078D4] hover:bg-[#106EBE] text-white rounded-md px-2 py-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 23 23\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n fill: \"#f3f3f3\",\n d: \"M0 0h23v23H0z\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 470,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n fill: \"#f35325\",\n d: \"M1 1h10v10H1z\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 471,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n fill: \"#81bc06\",\n d: \"M12 1h10v10H12z\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 472,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n fill: \"#05a6f0\",\n d: \"M1 12h10v10H1z\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 473,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n fill: \"#ffba08\",\n d: \"M12 12h10v10H12z\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 474,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 469,\n columnNumber: 21\n }, this),\n \"Connect Microsoft Account\"\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 464,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 463,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 312,\n columnNumber: 15\n }, this),\n accounts.map((account)=>{\n var _account_color;\n return /*#__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)(\"div\", {\n className: \"flex items-center w-full px-1 py-1 rounded-md cursor-pointer \".concat((selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.id) === account.id ? 'bg-gray-100' : ''),\n onClick: ()=>onAccountSelect(account),\n tabIndex: 0,\n role: \"button\",\n onKeyDown: (e)=>{\n if (e.key === 'Enter' || e.key === ' ') onAccountSelect(account);\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-3 h-3 rounded-full \".concat(((_account_color = account.color) === null || _account_color === void 0 ? void 0 : _account_color.startsWith('#')) ? 'bg-blue-500' : account.color || 'bg-blue-500', \" mr-2\")\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 490,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"truncate text-gray-700 flex-1\",\n children: account.name\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 491,\n columnNumber: 19\n }, this),\n account.id !== 'loading-account' && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenu, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuTrigger, {\n asChild: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n className: \"ml-1 text-gray-400 hover:text-gray-600 cursor-pointer flex items-center justify-center h-5 w-5\",\n tabIndex: -1,\n onClick: (e)=>e.stopPropagation(),\n \"aria-label\": \"Account options\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n fontSize: '18px',\n lineHeight: 1\n },\n children: \"⋮\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 503,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 496,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 495,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuContent, {\n align: \"end\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuItem, {\n onClick: (e)=>{\n e.stopPropagation();\n onEditAccount(account);\n },\n children: \"Edit\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 507,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.DropdownMenuItem, {\n onClick: (e)=>{\n e.stopPropagation();\n onDeleteAccount(account);\n },\n children: \"Delete\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 510,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 506,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 494,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 484,\n columnNumber: 17\n }, this),\n (selectedAccount === null || selectedAccount === void 0 ? void 0 : selectedAccount.id) === account.id && showFolders && account.folders && account.folders.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pl-4\",\n children: account.folders.map((folder)=>renderFolderButton(folder, account.id.toString()))\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 519,\n columnNumber: 19\n }, this)\n ]\n }, account.id, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 483,\n columnNumber: 15\n }, this);\n })\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 309,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 281,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 279,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/EmailSidebar.tsx\",\n lineNumber: 248,\n columnNumber: 5\n }, this);\n}\n_s(EmailSidebar, \"atPsgTSSvQU+A16vq8IkkLQ0/Qg=\");\n_c = EmailSidebar;\nvar _c;\n$RefreshReg$(_c, \"EmailSidebar\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvRW1haWxTaWRlYmFyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXdDO0FBTWxCO0FBQzBCO0FBSXlFO0FBQ3pDO0FBQ2xDO0FBQ007QUFDTjtBQStCL0IsU0FBUzRCLGFBQWEsS0FtQmpCO1FBbkJpQixFQUNuQ0MsUUFBUSxFQUNSQyxlQUFlLEVBQ2ZDLGVBQWUsRUFDZkMsYUFBYSxFQUNiQyxPQUFPLEVBQ1BDLFdBQVcsRUFDWEMsa0JBQWtCLEVBQ2xCQyxjQUFjLElBQUksRUFDbEJDLGNBQWMsRUFDZEMsU0FBUyxFQUNUQyxZQUFZLEVBQ1pDLGVBQWUsRUFDZkMsb0JBQW9CLEVBQ3BCQyxZQUFZLEVBQ1pDLGFBQWEsRUFDYkMsZUFBZSxFQUNmQyxhQUFhLEVBQ2JDLG1CQUFtQixFQUNELEdBbkJpQjs7SUFvQm5DLE1BQU0sQ0FBQ0MsVUFBVUMsWUFBWSxHQUFHL0MsK0NBQVFBLENBQUM7SUFDekMsTUFBTSxDQUFDZ0QsVUFBVUMsWUFBWSxHQUFHakQsK0NBQVFBLENBQUM7UUFDdkNrRCxPQUFPO1FBQ1BDLFVBQVU7UUFDVkMsYUFBYTtRQUNiQyxNQUFNO1FBQ05DLE1BQU07UUFDTkMsUUFBUTtRQUNSQyxVQUFVO1FBQ1ZDLFVBQVU7UUFDVkMsWUFBWTtJQUNkO0lBQ0EsTUFBTSxDQUFDQyxXQUFXQyxhQUFhLEdBQUc1RCwrQ0FBUUEsQ0FBQztJQUUzQyx5QkFBeUI7SUFDekIsTUFBTTZELGVBQWUsT0FBT0M7UUFDMUJBLEVBQUVDLGNBQWM7UUFDaEJoQixZQUFZO1FBQ1osSUFBSTtZQUNGLE1BQU1OLGFBQWFPO1lBQ25CQyxZQUFZO2dCQUNWQyxPQUFPO2dCQUNQQyxVQUFVO2dCQUNWQyxhQUFhO2dCQUNiQyxNQUFNO2dCQUNOQyxNQUFNO2dCQUNOQyxRQUFRO2dCQUNSQyxVQUFVO2dCQUNWQyxVQUFVO2dCQUNWQyxZQUFZO1lBQ2Q7WUFDQWxCLHFC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REFBSXBCLFdBQVU7MERBQ1p3RCxRQUFRWSxPQUFPLENBQUNiLEdBQUcsQ0FBQyxDQUFDM0QsU0FBbUJTLG1CQUFtQlQsUUFBUTRELFFBQVFqQixFQUFFLENBQUMrQixRQUFROzs7Ozs7O3VDQXJDbkZkLFFBQVFqQixFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStDbEM7R0FqZXdCM0Y7S0FBQUEiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvY29tcG9uZW50cy9lbWFpbC9FbWFpbFNpZGViYXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgXG4gIEluYm94LCBTZW5kLCBUcmFzaCwgQXJjaGl2ZSwgU3RhciwgXG4gIEZpbGUsIFJlZnJlc2hDdywgUGx1cyBhcyBQbHVzSWNvbiwgRWRpdCwgXG4gIENoZXZyb25Eb3duLCBDaGV2cm9uVXAsIE1haWwsIE1lbnUsXG4gIFNldHRpbmdzLCBMb2FkZXIyLCBBbGVydE9jdGFnb24sIE1lc3NhZ2VTcXVhcmVcbn0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9idXR0b24nO1xuaW1wb3J0IHsgY24gfSBmcm9tICdAL2xpYi91dGlscyc7XG5pbXBvcnQgeyBTY3JvbGxBcmVhIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL3Njcm9sbC1hcmVhJztcbmltcG9ydCB7IEJhZGdlIH0gZnJvbSAnQC9jb21wb25lbnRzL3VpL2JhZGdlJztcbmltcG9ydCB7IERyb3Bkb3duTWVudSwgRHJvcGRvd25NZW51VHJpZ2dlciwgRHJvcGRvd25NZW51Q29udGVudCwgRHJvcGRvd25NZW51SXRlbSB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9kcm9wZG93bi1tZW51JztcbmltcG9ydCB7IFRhYnMsIFRhYnNMaXN0LCBUYWJzVHJpZ2dlciwgVGFic0NvbnRlbnQgfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvdGFicyc7XG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9pbnB1dCc7XG5pbXBvcnQgeyBDaGVja2JveCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9jaGVja2JveCc7XG5pbXBvcnQgeyBMYWJlbCB9IGZyb20gJ0AvY29tcG9uZW50cy91aS9sYWJlbCc7XG5cbmludGVyZmFjZSBBY2NvdW50IHtcbiAgaWQ6IG51bWJlciB8IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICBmb2xkZXJzPzogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBFbWFpbFNpZGViYXJQcm9wcyB7XG4gIGFjY291bnRzOiBBY2NvdW50W107XG4gIHNlbGVjdGVkQWNjb3VudDogQWNjb3VudCB8IG51bGw7XG4gIHNlbGVjdGVkRm9sZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgY3VycmVudEZvbGRlcjogc3RyaW5nO1xuICBsb2FkaW5nOiBib29sZWFuO1xuICB1bnJlYWRDb3VudDogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgbnVtYmVyPj47XG4gIHNob3dBZGRBY2NvdW50Rm9ybTogYm9vbGVhbjtcbiAgc2hvd0ZvbGRlcnM/OiBib29sZWFuO1xuICBvbkZvbGRlckNoYW5nZTogKGZvbGRlcjogc3RyaW5nLCBhY2NvdW50SWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgb25SZWZyZXNoOiAoKSA9PiB2b2lkO1xuICBvbkNvbXBvc2VOZXc6ICgpID0+IHZvaWQ7XG4gIG9uQWNjb3VudFNlbGVjdDogKGFjY291bnQ6IEFjY291bnQpID0+IHZvaWQ7XG4gIG9uU2hvd0FkZEFjY291bnRGb3JtOiAoc2hvdzogYm9vbGVhbikgPT4gdm9pZDtcbiAgb25BZGRBY2NvdW50OiAoZm9ybURhdGE6IGFueSkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgb25FZGl0QWNjb3VudDogKGFjY291bnQ6IEFjY291bnQpID0+IHZvaWQ7XG4gIG9uRGVsZXRlQWNjb3VudDogKGFjY291bnQ6IEFjY291bnQpID0+IHZvaWQ7XG4gIG9uU2VsZWN0RW1haWw/OiAoZW1haWxJZDogc3RyaW5nLCBhY2NvdW50SWQ6IHN0cmluZywgZm9sZGVyOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uU2hvd0ZvbGRlcnNUb2dnbGU/OiAoc2hvdzogYm9vbGVhbikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRW1haWxTaWRlYmFyKHtcbiAgYWNjb3VudHMsXG4gIHNlbGVjdGVkQWNjb3VudCxcbiAgc2VsZWN0ZWRGb2xkZXJzLFxuICBjdXJyZW50Rm9sZGVyLFxuICBsb2FkaW5nLFxuICB1bnJlYWRDb3VudCxcbiAgc2hvd0FkZEFjY291bnRGb3JtLFxuICBzaG93Rm9sZGVycyA9IHRydWUsXG4gIG9uRm9sZGVyQ2hhbmdlLFxuICBvblJlZnJlc2gsXG4gIG9uQ29tcG9zZU5ldyxcbiAgb25BY2NvdW50U2VsZWN0LFxuICBvblNob3dBZGRBY2NvdW50Rm9ybSxcbiAgb25BZGRBY2NvdW50LFxuICBvbkVkaXRBY2NvdW50LFxuICBvbkRlbGV0ZUFjY291bnQsXG4gIG9uU2VsZWN0RW1haWwsXG4gIG9uU2hvd0ZvbGRlcnNUb2dnbGVcbn06IEVtYWlsU2lkZWJhclByb3BzKSB7XG4gIGNvbnN0IFtpc1NhdmluZywgc2V0SXNTYXZpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZm9ybURhdGEsIHNldEZvcm1EYXRhXSA9IHVzZVN0YXRlKHtcbiAgICBlbWFpbDogJycsXG4gICAgcGFzc3dvcmQ6ICcnLFxuICAgIGRpc3BsYXlOYW1lOiAnJyxcbiAgICBob3N0OiAnJyxcbiAgICBwb3J0OiAnOTkzJyxcbiAgICB1c2VTU0w6IHRydWUsXG4gICAgc210cEhvc3Q6ICcnLFxuICAgIHNtdHBQb3J0OiAnNTg3JyxcbiAgICBzbXRwVXNlU1NMOiBmYWxzZVxuICB9KTtcbiAgY29uc3QgW2FjdGl2ZVRhYiwgc2V0QWN0aXZlVGFiXSA9IHVzZVN0YXRlKCdpbWFwJyk7XG5cbiAgLy8gSGFuZGxlIGZvcm0gc3VibWlzc2lvblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSBhc3luYyAoZTogUmVhY3QuRm9ybUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHNldElzU2F2aW5nKHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBvbkFkZEFjY291bnQoZm9ybURhdGEpO1xuICAgICAgc2V0Rm9ybURhdGEoe1xuICAgICAgICBlbWFpbDogJycsXG4gICAgICAgIHBhc3N3b3JkOiAnJyxcbiAgICAgICAgZGlzcGxheU5hbWU6ICcnLFxuICAgICAgICBob3N0OiAnJyxcbiAgICAgICAgcG9ydDogJzk5MycsXG4gICAgICAgIHVzZVNTTDogdHJ1ZSxcbiAgICAgICAgc210cEhvc3Q6ICcnLFxuICAgICAgICBzbXRwUG9ydDogJzU4NycsXG4gICAgICAgIHNtdHBVc2VTU0w6IGZhbHNlXG4gICAgICB9KTtcbiAgICAgIG9uU2hvd0FkZEFjY291bnRGb3JtKGZhbHNlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBhZGQgYWNjb3VudDonLCBlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRJc1NhdmluZyhmYWxzZSk7XG4gICAgfVxuICB9O1xuXG4gIC8vIEhhbmRsZSBpbnB1dCBjaGFuZ2VzXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IHsgbmFtZSwgdmFsdWUsIHR5cGUsIGNoZWNrZWQgfSA9IGUudGFyZ2V0O1xuICAgIHNldEZvcm1EYXRhKHByZXYgPT4gKHtcbiAgICAgIC4uLnByZXYsXG4gICAgICBbbmFtZV06IHR5cGUgPT09ICdjaGVja2JveCcgPyBjaGVja2VkIDogdmFsdWVcbiAgICB9KSk7XG4gIH07XG5cbiAgLy8gR2V0IHRoZSBhcHByb3ByaWF0ZSBpY29uIGZvciBhIGZvbGRlclxuICBjb25zdCBnZXRGb2xkZXJJY29uID0gKGZvbGRlcjogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZm9sZGVyTG93ZXIgPSBmb2xkZXIudG9Mb3dlckNhc2UoKTtcbiAgICBcbiAgICBpZiAoZm9sZGVyTG93ZXIuaW5jbHVkZXMoJ2luYm94JykpIHtcbiAgICAgIHJldHVybiA8SW5ib3ggY2xhc3NOYW1lPVwiaC00IHctNCB0ZXh0LWdyYXktNTAwXCIgLz47XG4gICAgfSBlbHNlIGlmIChmb2xkZXJMb3dlci5pbmNsdWRlcygnc2VudCcpKSB7XG4gICAgICByZXR1cm4gPFNlbmQgY2xhc3NOYW1lPVwiaC00IHctNCB0ZXh0LWdyYXktNTAwXCIgLz47XG4gICAgfSBlbHNlIGlmIChmb2xkZXJMb3dlci5pbmNsdWRlcygndHJhc2gnKSkge1xuICAgICAgcmV0dXJuIDxUcmFzaCBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtZ3JheS01MDBcIiAvPjtcbiAgICB9IGVsc2UgaWYgKGZvbGRlckxvd2VyLmluY2x1ZGVzKCdhcmNoaXZlJykpIHtcbiAgICAgIHJldHVybiA8QXJjaGl2ZSBjbGFzc05hbWU9XCJoLTQgdy00IHRleHQtZ3JheS01MDBcIiAvPjtcbiAgICB9IGVsc2UgaWYgKGZvbGRlckxvd2VyLmluY2x1ZGVzKCdkcmFmdCcpKSB7XG4gICAgICByZXR1cm4gPEVkaXQgY2xhc3NOYW1lPVwiaC00IHctNCB0ZXh0LWdyYXktNTAwXCIgLz47XG4gICAgfSBlbHNlIGlmIChmb2xkZXJMb3dlci5pbmNsdWRlcygnc3BhbScpIHx8IGZvbGRlckxvd2VyLmluY2x1ZGVzKCdqdW5rJykpIHtcbiAgICAgIHJldHVybiA8QWxlcnRPY3RhZ29uIGNsYXNzTmFtZT1cImgtNCB3LTQgdGV4dC1ncmF5LTUwMFwiIC8+O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gPE1lc3NhZ2VTcXVhcmUgY2xhc3NOYW1lPVwiaC00IHctNCB0ZXh0LWdyYXktNTAwXCIgLz47XG4gICAgfVxuICB9O1xuXG4gIC8vIEZvcm1hdCBmb2xkZXIgbmFtZXNcbiAgY29uc3QgZm9ybWF0Rm9sZGVyTmFtZSA9IChmb2xkZXI6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBmb2xkZXIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBmb2xkZXIuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtcbiAgfTtcblxuICAvLyBJbXByb3ZlIHRoZSByZW5kZXJGb2xkZXJCdXR0b24gZnVuY3Rpb24gdG8gZW5zdXJlIGNvbnNpc3RlbnQgaGFuZGxpbmdcbiAgY29uc3QgcmVuZGVyRm9sZGVyQnV0dG9uID0gKGZvbGRlcjogc3RyaW5nLCBhY2NvdW50SWQ6IHN0cmluZykgPT4ge1xuICAgIC8vIEVuc3VyZSBmb2xkZXIgaGFzIGEgY29uc2lzdGVudCBmb3JtYXRcbiAgICBsZXQgcHJlZml4ZWRGb2xkZXIgPSBmb2xkZXI7XG4gICAgbGV0IGJhc2VGb2xkZXJOYW1lID0gZm9sZGVyO1xuICAgIGxldCBmb2xkZXJBY2NvdW50SWQgPSBhY2NvdW50SWQ7XG4gICAgXG4gICAgLy8gRXh0cmFjdCBwYXJ0cyBpZiB0aGUgZm9sZGVyIGhhcyBhIHByZWZpeFxuICAgIGlmIChmb2xkZXIuaW5jbHVkZXMoJzonKSkge1xuICAgICAgY29uc3QgcGFydHMgPSBmb2xkZXIuc3BsaXQoJzonKTtcbiAgICAgIGZvbGRlckFjY291bnRJZCA9IHBhcnRzWzBdO1xuICAgICAgYmFzZUZvbGRlck5hbWUgPSBwYXJ0c1sxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQWRkIGFjY291bnQgcHJlZml4IGlmIG1pc3NpbmdcbiAgICAgIHByZWZpeGVkRm9sZGVyID0gYCR7YWNjb3VudElkfToke2ZvbGRlcn1gO1xuICAgIH1cbiAgICBcbiAgICAvLyBPbmx5IHNob3cgZm9sZGVycyB0aGF0IGJlbG9uZyB0byB0aGlzIGFjY291bnRcbiAgICBpZiAoZm9sZGVyQWNjb3VudElkICE9PSBhY2NvdW50SWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBpZiB0aGlzIGZvbGRlciBpcyBzZWxlY3RlZCBmb3IgdGhpcyBhY2NvdW50XG4gICAgLy8gTXVzdCBoYW5kbGUgYm90aCBwcmVmaXhlZCBhbmQgbm9uLXByZWZpeGVkIHZlcnNpb25zIGluIHRoZSBzZWxlY3RlZCBtYXBcbiAgICBjb25zdCBpc1NlbGVjdGVkID0gXG4gICAgICAoc2VsZWN0ZWRGb2xkZXJzW2FjY291bnRJZF0gPT09IHByZWZpeGVkRm9sZGVyKSB8fCBcbiAgICAgIChzZWxlY3RlZEZvbGRlcnNbYWNjb3VudElkXSA9PT0gYmFzZUZvbGRlck5hbWUpIHx8XG4gICAgICAoc2VsZWN0ZWRGb2xkZXJzW2FjY291bnRJZF0/LnNwbGl0KCc6JylbMV0gPT09IGJhc2VGb2xkZXJOYW1lKTtcbiAgICBcbiAgICAvLyBHZXQgdW5yZWFkIGNvdW50IC0gY2hlY2sgYWxsIHBvc3NpYmxlIGZvcm1hdHNcbiAgICBsZXQgZm9sZGVyVW5yZWFkQ291bnQgPSAwO1xuICAgIFxuICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgYW4gaW5ib3ggZm9sZGVyIChvbmx5IHNob3cgdW5yZWFkIGNvdW50cyBmb3IgaW5ib3ggZm9sZGVycylcbiAgICAvLyBVc2UgZXhhY3QgbWF0Y2hpbmcgaW5zdGVhZCBvZiBpbmNsdWRlcygpIHRvIGF2b2lkIG1hdGNoaW5nIHN1YnN0cmluZ3MgaW4gZm9sZGVyIG5hbWVzXG4gICAgY29uc3QgZm9sZGVyTG93ZXIgPSBiYXNlRm9sZGVyTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGlzSW5ib3hGb2xkZXIgPSBmb2xkZXJMb3dlciA9PT0gJ2luYm94JztcbiAgICBcbiAgICAvLyBPbmx5IGNhbGN1bGF0ZSB1bnJlYWQgY291bnQgZm9yIGluYm94IGZvbGRlcnNcbiAgICBpZiAoaXNJbmJveEZvbGRlciAmJiB1bnJlYWRDb3VudCAmJiB1bnJlYWRDb3VudFthY2NvdW50SWRdKSB7XG4gICAgICAvLyBUcnkgdGhlIGJhc2UgZm9sZGVyIG5hbWUgZmlyc3RcbiAgICAgIGlmICh0eXBlb2YgdW5yZWFkQ291bnRbYWNjb3VudElkXVtiYXNlRm9sZGVyTmFtZV0gPT09ICdudW1iZXInKSB7XG4gICAgICAgIGZvbGRlclVucmVhZENvdW50ID0gdW5yZWFkQ291bnRbYWNjb3VudElkXVtiYXNlRm9sZGVyTmFtZV07XG4gICAgICB9XG4gICAgICAvLyBUaGVuIHRyeSB0aGUgcHJlZml4ZWQgZm9sZGVyIG5hbWVcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiB1bnJlYWRDb3VudFthY2NvdW50SWRdW3ByZWZpeGVkRm9sZGVyXSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgZm9sZGVyVW5yZWFkQ291bnQgPSB1bnJlYWRDb3VudFthY2NvdW50SWRdW3ByZWZpeGVkRm9sZGVyXTtcbiAgICAgIH1cbiAgICAgIC8vIEZpbmFsbHkgdHJ5IHdpdGggdXBwZXJjYXNlL2xvd2VyY2FzZSB2YXJpYXRpb25zXG4gICAgICBlbHNlIHtcbiAgICAgICAgLy8gQ2hlY2sgZm9yIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hcbiAgICAgICAgY29uc3QgZm9sZGVyTWFwID0gdW5yZWFkQ291bnRbYWNjb3VudElkXTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZm9sZGVyTWFwKSB7XG4gICAgICAgICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSBiYXNlRm9sZGVyTmFtZS50b0xvd2VyQ2FzZSgpIHx8IFxuICAgICAgICAgICAgICBrZXkudG9Mb3dlckNhc2UoKSA9PT0gcHJlZml4ZWRGb2xkZXIudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgZm9sZGVyVW5yZWFkQ291bnQgPSBmb2xkZXJNYXBba2V5XTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICByZXR1cm4gKFxuICAgICAgPEJ1dHRvblxuICAgICAgICBrZXk9e3ByZWZpeGVkRm9sZGVyfVxuICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxuICAgICAgICBjbGFzc05hbWU9e2B3LWZ1bGwganVzdGlmeS1zdGFydCB0ZXh0LXhzIHB5LTEgaC03ICR7aXNTZWxlY3RlZCA/ICdiZy1ncmF5LTEwMCcgOiAnJ31gfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgLy8gQWx3YXlzIGVuc3VyZSB0aGUgZm9sZGVyIG5hbWUgaW5jbHVkZXMgdGhlIGFjY291bnQgSUQgcHJlZml4XG4gICAgICAgICAgY29uc3QgZnVsbHlQcmVmaXhlZEZvbGRlciA9IGZvbGRlci5pbmNsdWRlcygnOicpID8gZm9sZGVyIDogYCR7YWNjb3VudElkfToke2ZvbGRlcn1gO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBwYXNzIHRoZSBFWEFDVCBhY2NvdW50SWQgcGFyYW1ldGVyIGhlcmUsIG5vdCB0aGUgZm9sZGVyJ3MgZXh0cmFjdGVkIGFjY291bnQgSURcbiAgICAgICAgICBvbkZvbGRlckNoYW5nZShmdWxseVByZWZpeGVkRm9sZGVyLCBhY2NvdW50SWQpO1xuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIHctZnVsbFwiPlxuICAgICAgICAgIHtnZXRGb2xkZXJJY29uKGJhc2VGb2xkZXJOYW1lKX1cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtbC0yIHRydW5jYXRlIHRleHQtZ3JheS03MDBcIj57Zm9ybWF0Rm9sZGVyTmFtZShiYXNlRm9sZGVyTmFtZSl9PC9zcGFuPlxuICAgICAgICAgIHtpc0luYm94Rm9sZGVyICYmIGZvbGRlclVucmVhZENvdW50ID4gMCAmJiAoXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtbC1hdXRvIGJnLWJsdWUtNTAwIHRleHQtd2hpdGUgdGV4dC1bMTBweF0gcHgtMS41IHJvdW5kZWQtZnVsbFwiPlxuICAgICAgICAgICAgICB7Zm9sZGVyVW5yZWFkQ291bnR9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0J1dHRvbj5cbiAgICApO1xuICB9O1xuXG4gIC8vIEFkZCBNaWNyb3NvZnQgYnV0dG9uIGxvZ2ljXG4gIGNvbnN0IGhhbmRsZUNvbm5lY3RNaWNyb3NvZnQgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9hcGkvY291cnJpZXIvbWljcm9zb2Z0Jyk7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgXG4gICAgICBpZiAocmVzcG9uc2Uub2sgJiYgZGF0YS5hdXRoVXJsKSB7XG4gICAgICAgIC8vIFJlZGlyZWN0IHRvIE1pY3Jvc29mdCdzIGF1dGhvcml6YXRpb24gcGFnZVxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGRhdGEuYXV0aFVybDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBpbml0aWF0ZSBNaWNyb3NvZnQgYXV0aGVudGljYXRpb246JywgZGF0YS5lcnJvcik7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNvbm5lY3RpbmcgTWljcm9zb2Z0IGFjY291bnQ6JywgZXJyb3IpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwidy02MCBiZy13aGl0ZS85NSBiYWNrZHJvcC1ibHVyLXNtIGJvcmRlci1yIGJvcmRlci1ncmF5LTEwMCBmbGV4IGZsZXgtY29sIG1kOmZsZXhcIiBzdHlsZT17e2Rpc3BsYXk6IFwiZmxleCAhaW1wb3J0YW50XCJ9fT5cbiAgICAgIHsvKiBDb3VycmllciBUaXRsZSAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0zIGJvcmRlci1iIGJvcmRlci1ncmF5LTEwMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgPE1haWwgY2xhc3NOYW1lPVwiaC02IHctNiB0ZXh0LWdyYXktNjAwXCIgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMFwiPkNPVVJSSUVSPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogQ29tcG9zZSBidXR0b24gYW5kIHJlZnJlc2ggYnV0dG9uICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTIgYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxCdXR0b24gXG4gICAgICAgICAgY2xhc3NOYW1lPVwiZmxleC0xIGJnLWJsdWUtNjAwIHRleHQtd2hpdGUgcm91bmRlZC1sZyBob3ZlcjpiZy1ibHVlLTcwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0cmFuc2l0aW9uLWFsbCBweS0xLjUgdGV4dC1zbVwiXG4gICAgICAgICAgb25DbGljaz17b25Db21wb3NlTmV3fVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgPFBsdXNJY29uIGNsYXNzTmFtZT1cImgtMy41IHctMy41XCIgLz5cbiAgICAgICAgICAgIDxzcGFuPkNvbXBvc2U8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvQnV0dG9uPlxuICAgICAgICA8QnV0dG9uIFxuICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiIFxuICAgICAgICAgIHNpemU9XCJpY29uXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJoLTkgdy05IHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ncmF5LTYwMFwiXG4gICAgICAgICAgb25DbGljaz17b25SZWZyZXNofVxuICAgICAgICA+XG4gICAgICAgICAgPFJlZnJlc2hDdyBjbGFzc05hbWU9e2BoLTQgdy00ICR7bG9hZGluZyA/ICdhbmltYXRlLXNwaW4nIDogJyd9YH0gLz5cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIFNjcm9sbGFibGUgYXJlYSBmb3IgYWNjb3VudHMgYW5kIGZvbGRlcnMgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBvdmVyZmxvdy15LWF1dG9cIj5cbiAgICAgICAgey8qIEFjY291bnRzIFNlY3Rpb24gKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0zIGJvcmRlci1iIGJvcmRlci1ncmF5LTEwMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTUwMFwiPkFjY291bnRzPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtNyB3LTcgcC0wIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25TaG93Rm9sZGVyc1RvZ2dsZT8uKHNob3dGb2xkZXJzID8gZmFsc2UgOiB0cnVlKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtzaG93Rm9sZGVycyA/IChcbiAgICAgICAgICAgICAgICAgIDxDaGV2cm9uVXAgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxDaGV2cm9uRG93biBjbGFzc05hbWU9XCJoLTQgdy00XCIgLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTcgdy03IHAtMCB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uU2hvd0FkZEFjY291bnRGb3JtKCFzaG93QWRkQWNjb3VudEZvcm0pfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBsdXNJY29uIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPlxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICAgIHsvKiBEaXNwbGF5IGFsbCBhY2NvdW50cyAqL31cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTFcIj5cbiAgICAgICAgICAgIHsvKiBGb3JtIGZvciBhZGRpbmcgYSBuZXcgYWNjb3VudCAtIENvbnRlbnQgaXMgaWRlbnRpY2FsIHRvIGNvdXJyaWVyIHBhZ2UgKi99XG4gICAgICAgICAgICB7c2hvd0FkZEFjY291bnRGb3JtICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi0yIHAtMiBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbWQgYmctd2hpdGVcIj5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LW1lZGl1bSBtYi0wLjUgdGV4dC1ncmF5LTcwMFwiPkFkZCBJTUFQIEFjY291bnQ8L2g0PlxuICAgICAgICAgICAgICAgIDxmb3JtIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9PlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPFRhYnMgZGVmYXVsdFZhbHVlPVwiaW1hcFwiIGNsYXNzTmFtZT1cInctZnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxUYWJzTGlzdCBjbGFzc05hbWU9XCJncmlkIHctZnVsbCBncmlkLWNvbHMtMiBoLTYgbWItMC41IGJnLWdyYXktMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8VGFic1RyaWdnZXIgdmFsdWU9XCJpbWFwXCIgY2xhc3NOYW1lPVwidGV4dC14cyBoLTUgZGF0YS1bc3RhdGU9YWN0aXZlXTpiZy1ibHVlLTUwMCBkYXRhLVtzdGF0ZT1hY3RpdmVdOnRleHQtd2hpdGVcIj5JTUFQPC9UYWJzVHJpZ2dlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJzVHJpZ2dlciB2YWx1ZT1cInNtdHBcIiBjbGFzc05hbWU9XCJ0ZXh0LXhzIGgtNSBkYXRhLVtzdGF0ZT1hY3RpdmVdOmJnLWJsdWUtNTAwIGRhdGEtW3N0YXRlPWFjdGl2ZV06dGV4dC13aGl0ZVwiPlNNVFA8L1RhYnNUcmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvVGFic0xpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgPFRhYnNDb250ZW50IHZhbHVlPVwiaW1hcFwiIGNsYXNzTmFtZT1cIm10LTAuNSBzcGFjZS15LTAuNVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZW1haWxcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZW1haWxcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImVtYWlsQGV4YW1wbGUuY29tXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC03IHRleHQteHMgYmctd2hpdGUgYm9yZGVyLWdyYXktMzAwIG1iLTAuNSB0ZXh0LWdyYXktOTAwXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1EYXRhLmVtYWlsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInBhc3N3b3JkXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInBhc3N3b3JkXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLigKLigKLigKLigKLigKLigKLigKLigKLigKJcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTcgdGV4dC14cyBiZy13aGl0ZSBib3JkZXItZ3JheS0zMDAgbWItMC41IHRleHQtZ3JheS05MDBcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Zm9ybURhdGEucGFzc3dvcmR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZGlzcGxheV9uYW1lXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImRpc3BsYXlOYW1lXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJKb2huIERvZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtNyB0ZXh0LXhzIGJnLXdoaXRlIGJvcmRlci1ncmF5LTMwMCBtYi0wLjUgdGV4dC1ncmF5LTkwMFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb3JtRGF0YS5kaXNwbGF5TmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJob3N0XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImhvc3RcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImltYXAuZXhhbXBsZS5jb21cIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTcgdGV4dC14cyBiZy13aGl0ZSBib3JkZXItZ3JheS0zMDAgbWItMC41IHRleHQtZ3JheS05MDBcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Zm9ybURhdGEuaG9zdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInBvcnRcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJwb3J0XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjk5M1wiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC03IHRleHQteHMgYmctd2hpdGUgYm9yZGVyLWdyYXktMzAwIHRleHQtZ3JheS05MDBcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtmb3JtRGF0YS5wb3J0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBwbC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGVja2JveCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ1c2VTU0xcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInVzZVNTTFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtmb3JtRGF0YS51c2VTU0x9IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoZWNrZWRDaGFuZ2U9eyhjaGVja2VkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Rm9ybURhdGEocHJldiA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVNTTDogY2hlY2tlZCA9PT0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExhYmVsIGh0bWxGb3I9XCJ1c2VTU0xcIiBjbGFzc05hbWU9XCJ0ZXh0LXhzXCI+U1NMPC9MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1RhYnNDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgIDxUYWJzQ29udGVudCB2YWx1ZT1cInNtdHBcIiBjbGFzc05hbWU9XCJtdC0wLjUgc3BhY2UteS0wLjVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInNtdHBfaG9zdFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzbXRwSG9zdFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwic210cC5leGFtcGxlLmNvbVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtNyB0ZXh0LXhzIGJnLXdoaXRlIGJvcmRlci1ncmF5LTMwMCBtYi0wLjUgdGV4dC1ncmF5LTkwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1EYXRhLnNtdHBIb3N0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBnYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwic210cF9wb3J0XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic210cFBvcnRcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiNTg3XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTcgdGV4dC14cyBiZy13aGl0ZSBib3JkZXItZ3JheS0zMDAgdGV4dC1ncmF5LTkwMFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1EYXRhLnNtdHBQb3J0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBwbC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGVja2JveCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzbXRwX3NlY3VyZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic210cFVzZVNTTFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtmb3JtRGF0YS5zbXRwVXNlU1NMfSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGVja2VkQ2hhbmdlPXsoY2hlY2tlZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEZvcm1EYXRhKHByZXYgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbXRwVXNlU1NMOiBjaGVja2VkID09PSB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGFiZWwgaHRtbEZvcj1cInNtdHBfc2VjdXJlXCIgY2xhc3NOYW1lPVwidGV4dC14c1wiPlNTTDwvTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1ncmF5LTUwMCBpdGFsaWNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgTm90ZTogU01UUCBzZXR0aW5ncyBuZWVkZWQgZm9yIHNlbmRpbmcgZW1haWxzXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1RhYnNDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L1RhYnM+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTEgbXQtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleC0xIGgtNiB0ZXh0LXhzIGJnLWJsdWUtNTAwIGhvdmVyOmJnLWJsdWUtNjAwIHRleHQtd2hpdGUgcm91bmRlZC1tZCBweC0yIHB5LTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzU2F2aW5nfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpc1NhdmluZyA/IDxMb2FkZXIyIGNsYXNzTmFtZT1cImgtMyB3LTMgYW5pbWF0ZS1zcGluIG1yLTFcIiAvPiA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICBUZXN0ICYgQWRkXG4gICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTYgdGV4dC14cyBiZy1ncmF5LTIwMCB0ZXh0LWdyYXktODAwIGhvdmVyOmJnLWdyYXktMzAwIHJvdW5kZWQtbWQgcHgtMiBweS0wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uU2hvd0FkZEFjY291bnRGb3JtKGZhbHNlKX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgey8qIEFkZCBNaWNyb3NvZnQgb3B0aW9uICovfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMiBwdC0yIGJvcmRlci10IGJvcmRlci1ncmF5LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQ29ubmVjdE1pY3Jvc29mdH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yIGgtNyB0ZXh0LXhzIGJnLVsjMDA3OEQ0XSBob3ZlcjpiZy1bIzEwNkVCRV0gdGV4dC13aGl0ZSByb3VuZGVkLW1kIHB4LTIgcHktMFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjMgMjNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiI2YzZjNmM1wiIGQ9XCJNMCAwaDIzdjIzSDB6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiI2YzNTMyNVwiIGQ9XCJNMSAxaDEwdjEwSDF6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiIzgxYmMwNlwiIGQ9XCJNMTIgMWgxMHYxMEgxMnpcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCIjMDVhNmYwXCIgZD1cIk0xIDEyaDEwdjEwSDF6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiI2ZmYmEwOFwiIGQ9XCJNMTIgMTJoMTB2MTBIMTJ6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIENvbm5lY3QgTWljcm9zb2Z0IEFjY291bnRcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHthY2NvdW50cy5tYXAoKGFjY291bnQpID0+IChcbiAgICAgICAgICAgICAgPGRpdiBrZXk9e2FjY291bnQuaWR9IGNsYXNzTmFtZT1cIm1iLTFcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YGZsZXggaXRlbXMtY2VudGVyIHctZnVsbCBweC0xIHB5LTEgcm91bmRlZC1tZCBjdXJzb3ItcG9pbnRlciAke3NlbGVjdGVkQWNjb3VudD8uaWQgPT09IGFjY291bnQuaWQgPyAnYmctZ3JheS0xMDAnIDogJyd9YH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQWNjb3VudFNlbGVjdChhY2NvdW50KX1cbiAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBvbktleURvd249e2UgPT4geyBpZiAoZS5rZXkgPT09ICdFbnRlcicgfHwgZS5rZXkgPT09ICcgJykgb25BY2NvdW50U2VsZWN0KGFjY291bnQpOyB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgdy0zIGgtMyByb3VuZGVkLWZ1bGwgJHthY2NvdW50LmNvbG9yPy5zdGFydHNXaXRoKCcjJykgPyAnYmctYmx1ZS01MDAnIDogYWNjb3VudC5jb2xvciB8fCAnYmctYmx1ZS01MDAnfSBtci0yYH0+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0cnVuY2F0ZSB0ZXh0LWdyYXktNzAwIGZsZXgtMVwiPnthY2NvdW50Lm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgey8qIE1vcmUgb3B0aW9ucyBidXR0b24gKOKLrikgKi99XG4gICAgICAgICAgICAgICAgICB7YWNjb3VudC5pZCAhPT0gJ2xvYWRpbmctYWNjb3VudCcgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51PlxuICAgICAgICAgICAgICAgICAgICAgIDxEcm9wZG93bk1lbnVUcmlnZ2VyIGFzQ2hpbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtbC0xIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ncmF5LTYwMCBjdXJzb3ItcG9pbnRlciBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBoLTUgdy01XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJBY2NvdW50IG9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBmb250U2l6ZTogJzE4cHgnLCBsaW5lSGVpZ2h0OiAxIH19PuKLrjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvRHJvcGRvd25NZW51VHJpZ2dlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51Q29udGVudCBhbGlnbj1cImVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW0gb25DbGljaz17ZSA9PiB7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IG9uRWRpdEFjY291bnQoYWNjb3VudCk7IH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICBFZGl0XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd25NZW51SXRlbSBvbkNsaWNrPXtlID0+IHsgZS5zdG9wUHJvcGFnYXRpb24oKTsgb25EZWxldGVBY2NvdW50KGFjY291bnQpOyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVsZXRlXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bk1lbnVDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgey8qIFNob3cgZm9sZGVycyBmb3IgZWFjaCBhY2NvdW50IHdoZW4gc2VsZWN0ZWQgYW5kIHdoZW4gZm9sZGVycyBhcmUgdmlzaWJsZSAqL31cbiAgICAgICAgICAgICAgICB7c2VsZWN0ZWRBY2NvdW50Py5pZCA9PT0gYWNjb3VudC5pZCAmJiBzaG93Rm9sZGVycyAmJiBhY2NvdW50LmZvbGRlcnMgJiYgYWNjb3VudC5mb2xkZXJzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwbC00XCI+XG4gICAgICAgICAgICAgICAgICAgIHthY2NvdW50LmZvbGRlcnMubWFwKChmb2xkZXI6IHN0cmluZykgPT4gcmVuZGVyRm9sZGVyQnV0dG9uKGZvbGRlciwgYWNjb3VudC5pZC50b1N0cmluZygpKSl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufSAiXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsIkluYm94IiwiU2VuZCIsIlRyYXNoIiwiQXJjaGl2ZSIsIlJlZnJlc2hDdyIsIlBsdXMiLCJQbHVzSWNvbiIsIkVkaXQiLCJDaGV2cm9uRG93biIsIkNoZXZyb25VcCIsIk1haWwiLCJMb2FkZXIyIiwiQWxlcnRPY3RhZ29uIiwiTWVzc2FnZVNxdWFyZSIsIkJ1dHRvbiIsIkRyb3Bkb3duTWVudSIsIkRyb3Bkb3duTWVudVRyaWdnZXIiLCJEcm9wZG93bk1lbnVDb250ZW50IiwiRHJvcGRvd25NZW51SXRlbSIsIlRhYnMiLCJUYWJzTGlzdCIsIlRhYnNUcmlnZ2VyIiwiVGFic0NvbnRlbnQiLCJJbnB1dCIsIkNoZWNrYm94IiwiTGFiZWwiLCJFbWFpbFNpZGViYXIiLCJhY2NvdW50cyIsInNlbGVjdGVkQWNjb3VudCIsInNlbGVjdGVkRm9sZGVycyIsImN1cnJlbnRGb2xkZXIiLCJsb2FkaW5nIiwidW5yZWFkQ291bnQiLCJzaG93QWRkQWNjb3VudEZvcm0iLCJzaG93Rm9sZGVycyIsIm9uRm9sZGVyQ2hhbmdlIiwib25SZWZyZXNoIiwib25Db21wb3NlTmV3Iiwib25BY2NvdW50U2VsZWN0Iiwib25TaG93QWRkQWNjb3VudEZvcm0iLCJvbkFkZEFjY291bnQiLCJvbkVkaXRBY2NvdW50Iiwib25EZWxldGVBY2NvdW50Iiwib25TZWxlY3RFbWFpbCIsIm9uU2hvd0ZvbGRlcnNUb2dnbGUiLCJpc1NhdmluZyIsInNldElzU2F2aW5nIiwiZm9ybURhdGEiLCJzZXRGb3JtRGF0YSIsImVtYWlsIiwicGFzc3dvcmQiLCJkaXNwbGF5TmFtZSIsImhvc3QiLCJwb3J0IiwidXNlU1NMIiwic210cEhvc3QiLCJzbXRwUG9ydCIsInNtdHBVc2VTU0wiLCJhY3RpdmVUYWIiLCJzZXRBY3RpdmVUYWIiLCJoYW5kbGVTdWJtaXQiLCJlIiwicHJldmVudERlZmF1bHQiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJoYW5kbGVDaGFuZ2UiLCJuYW1lIiwidmFsdWUiLCJ0eXBlIiwiY2hlY2tlZCIsInRhcmdldCIsInByZXYiLCJnZXRGb2xkZXJJY29uIiwiZm9sZGVyIiwiZm9sZGVyTG93ZXIiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwiY2xhc3NOYW1lIiwiZm9ybWF0Rm9sZGVyTmFtZSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJyZW5kZXJGb2xkZXJCdXR0b24iLCJhY2NvdW50SWQiLCJwcmVmaXhlZEZvbGRlciIsImJhc2VGb2xkZXJOYW1lIiwiZm9sZGVyQWNjb3VudElkIiwicGFydHMiLCJzcGxpdCIsImlzU2VsZWN0ZWQiLCJmb2xkZXJVbnJlYWRDb3VudCIsImlzSW5ib3hGb2xkZXIiLCJmb2xkZXJNYXAiLCJrZXkiLCJ2YXJpYW50Iiwib25DbGljayIsImZ1bGx5UHJlZml4ZWRGb2xkZXIiLCJkaXYiLCJzcGFuIiwiaGFuZGxlQ29ubmVjdE1pY3Jvc29mdCIsInJlc3BvbnNlIiwiZmV0Y2giLCJkYXRhIiwianNvbiIsIm9rIiwiYXV0aFVybCIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsInN0eWxlIiwiZGlzcGxheSIsInNpemUiLCJoNCIsImZvcm0iLCJvblN1Ym1pdCIsImRlZmF1bHRWYWx1ZSIsImlkIiwicGxhY2Vob2xkZXIiLCJyZXF1aXJlZCIsIm9uQ2hhbmdlIiwib25DaGVja2VkQ2hhbmdlIiwiaHRtbEZvciIsImRpc2FibGVkIiwiYnV0dG9uIiwic3ZnIiwieG1sbnMiLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJwYXRoIiwiZmlsbCIsImQiLCJtYXAiLCJhY2NvdW50IiwidGFiSW5kZXgiLCJyb2xlIiwib25LZXlEb3duIiwiY29sb3IiLCJzdGFydHNXaXRoIiwiYXNDaGlsZCIsInN0b3BQcm9wYWdhdGlvbiIsImFyaWEtbGFiZWwiLCJmb250U2l6ZSIsImxpbmVIZWlnaHQiLCJhbGlnbiIsImZvbGRlcnMiLCJsZW5ndGgiLCJ0b1N0cmluZyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/EmailSidebar.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/email/RichEmailEditor.tsx":
/*!**********************************************!*\
!*** ./components/email/RichEmailEditor.tsx ***!
\**********************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\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 styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-jsx/style */ \"(app-pages-browser)/./node_modules/styled-jsx/style.js\");\n/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(styled_jsx_style__WEBPACK_IMPORTED_MODULE_1__);\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 quill_dist_quill_snow_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! quill/dist/quill.snow.css */ \"(app-pages-browser)/./node_modules/quill/dist/quill.snow.css\");\n/* harmony import */ var _lib_utils_dom_purify_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/lib/utils/dom-purify-config */ \"(app-pages-browser)/./lib/utils/dom-purify-config.ts\");\n/* harmony import */ var _lib_utils_text_direction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/lib/utils/text-direction */ \"(app-pages-browser)/./lib/utils/text-direction.ts\");\n/* harmony import */ var _lib_utils_email_content__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/lib/utils/email-content */ \"(app-pages-browser)/./lib/utils/email-content.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\nconst RichEmailEditor = (param)=>{\n let { initialContent, onChange, placeholder = 'Write your message here...', minHeight = '200px', maxHeight = 'calc(100vh - 400px)', preserveFormatting = false } = param;\n _s();\n const editorRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n const toolbarRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n const quillRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n const [isReady, setIsReady] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n // Initialize Quill editor when component mounts\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)({\n \"RichEmailEditor.useEffect\": ()=>{\n // Import Quill dynamically (client-side only)\n const initializeQuill = {\n \"RichEmailEditor.useEffect.initializeQuill\": async ()=>{\n if (!editorRef.current || !toolbarRef.current) return;\n const Quill = (await __webpack_require__.e(/*! import() */ \"_app-pages-browser_node_modules_quill_quill_js\").then(__webpack_require__.bind(__webpack_require__, /*! quill */ \"(app-pages-browser)/./node_modules/quill/quill.js\"))).default;\n // Import quill-better-table\n let tableModule = null;\n try {\n const QuillBetterTable = await __webpack_require__.e(/*! import() */ \"_app-pages-browser_node_modules_quill-better-table_dist_quill-better-table_js\").then(__webpack_require__.t.bind(__webpack_require__, /*! quill-better-table */ \"(app-pages-browser)/./node_modules/quill-better-table/dist/quill-better-table.js\", 23));\n // Register the table module if available\n if (QuillBetterTable && QuillBetterTable.default) {\n Quill.register({\n 'modules/better-table': QuillBetterTable.default\n }, true);\n tableModule = QuillBetterTable.default;\n console.log('Better Table module registered successfully');\n }\n } catch (err) {\n console.warn('Table module not available:', err);\n }\n // Define custom formats/modules with table support\n const emailToolbarOptions = [\n [\n 'bold',\n 'italic',\n 'underline',\n 'strike'\n ],\n [\n {\n 'color': []\n },\n {\n 'background': []\n }\n ],\n [\n {\n 'list': 'ordered'\n },\n {\n 'list': 'bullet'\n }\n ],\n [\n {\n 'indent': '-1'\n },\n {\n 'indent': '+1'\n }\n ],\n [\n {\n 'align': []\n }\n ],\n [\n {\n 'direction': 'rtl'\n }\n ],\n [\n 'link'\n ],\n [\n 'clean'\n ]\n ];\n // Create new Quill instance with the DOM element and custom toolbar\n const editorElement = editorRef.current;\n quillRef.current = new Quill(editorElement, {\n modules: {\n toolbar: {\n container: toolbarRef.current,\n handlers: {\n }\n },\n clipboard: {\n matchVisual: false // Disable clipboard matching for better HTML handling\n },\n // Don't initialize better-table yet - we'll do it after content is loaded\n 'better-table': false\n },\n placeholder: placeholder,\n theme: 'snow'\n });\n // Set initial content properly\n if (initialContent) {\n try {\n console.log('Setting initial content in editor', {\n length: initialContent.length,\n startsWithHtml: initialContent.trim().startsWith('<'),\n containsForwardedMessage: initialContent.includes('---------- Forwarded message ----------'),\n containsReplyIndicator: initialContent.includes('wrote:'),\n hasBlockquote: initialContent.includes('<blockquote')\n });\n // Detect text direction\n const direction = (0,_lib_utils_text_direction__WEBPACK_IMPORTED_MODULE_5__.detectTextDirection)(initialContent);\n // Check if content already appears to be properly formatted as a reply or forward\n const isPreFormattedContent = (initialContent.includes('---------- Forwarded message ----------') || initialContent.includes('wrote:')) && initialContent.includes('<blockquote');\n // Process HTML content using centralized utility or use as-is if pre-formatted\n let sanitizedContent;\n if (isPreFormattedContent) {\n console.log('Content appears to be pre-formatted as reply/forward, using as-is');\n // Just do basic sanitization without additional processing\n sanitizedContent = (0,_lib_utils_dom_purify_config__WEBPACK_IMPORTED_MODULE_4__.sanitizeHtml)(initialContent);\n } else {\n // Full processing for regular content\n sanitizedContent = (0,_lib_utils_email_content__WEBPACK_IMPORTED_MODULE_6__.processHtmlContent)(initialContent);\n }\n // Log sanitized content details for debugging\n console.log('Sanitized content details:', {\n length: sanitizedContent.length,\n isEmpty: sanitizedContent.trim().length === 0,\n startsWithDiv: sanitizedContent.trim().startsWith('<div'),\n containsForwardedMessage: sanitizedContent.includes('---------- Forwarded message ----------'),\n containsQuoteHeader: sanitizedContent.includes('wrote:'),\n hasTable: sanitizedContent.includes('<table'),\n hasBlockquote: sanitizedContent.includes('<blockquote'),\n firstNChars: sanitizedContent.substring(0, 100).replace(/\\n/g, '\\\\n')\n });\n // Check if sanitized content is valid\n if (sanitizedContent.trim().length === 0) {\n console.warn('Sanitized content is empty after processing, using fallback approach');\n // Try to extract text content if HTML processing failed\n try {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = initialContent;\n const textContent = tempDiv.textContent || tempDiv.innerText || 'Empty content';\n // Set text directly to ensure something displays\n quillRef.current.setText(textContent);\n } catch (e) {\n console.error('Text extraction fallback failed:', e);\n quillRef.current.setText('Error loading content');\n }\n } else {\n // Use direct innerHTML setting for the initial content\n quillRef.current.root.innerHTML = sanitizedContent;\n // Set the direction for the content\n if (quillRef.current && quillRef.current.format) {\n quillRef.current.format('direction', direction);\n if (direction === 'rtl') {\n quillRef.current.format('align', 'right');\n }\n } else {\n console.warn('Cannot format content: editor not fully initialized');\n }\n }\n // Set cursor at the beginning\n quillRef.current.setSelection(0, 0);\n // Ensure the cursor and scroll position is at the top of the editor\n if (editorRef.current) {\n editorRef.current.scrollTop = 0;\n // Find and scroll parent containers that might have scroll\n const scrollable = [\n editorRef.current.closest('.ql-container'),\n editorRef.current.closest('.rich-email-editor-container'),\n editorRef.current.closest('.overflow-y-auto'),\n document.querySelector('.overflow-y-auto')\n ];\n scrollable.forEach({\n \"RichEmailEditor.useEffect.initializeQuill\": (el)=>{\n if (el instanceof HTMLElement) {\n el.scrollTop = 0;\n }\n }\n }[\"RichEmailEditor.useEffect.initializeQuill\"]);\n }\n } catch (err) {\n console.error('Error setting initial content:', err);\n // Enhanced fallback mechanism for complex content\n try {\n // First try to extract text from HTML\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = initialContent;\n const textContent = tempDiv.textContent || tempDiv.innerText || '';\n if (textContent.trim()) {\n console.log('Using extracted text fallback, length:', textContent.length);\n quillRef.current.setText(textContent);\n } else {\n // If text extraction fails or returns empty, provide a message\n console.log('Using empty content fallback');\n quillRef.current.setText('Unable to load original content');\n }\n } catch (e) {\n console.error('All fallbacks failed:', e);\n quillRef.current.setText('Error loading content');\n }\n }\n }\n // Add change listener\n quillRef.current.on('text-change', {\n \"RichEmailEditor.useEffect.initializeQuill\": ()=>{\n const html = quillRef.current.root.innerHTML;\n onChange(html);\n }\n }[\"RichEmailEditor.useEffect.initializeQuill\"]);\n // Improve editor layout\n const editorContainer = editorElement.closest('.ql-container');\n if (editorContainer) {\n editorContainer.classList.add('email-editor-container');\n }\n setIsReady(true);\n }\n }[\"RichEmailEditor.useEffect.initializeQuill\"];\n initializeQuill().catch({\n \"RichEmailEditor.useEffect\": (err)=>{\n console.error('Failed to initialize Quill editor:', err);\n }\n }[\"RichEmailEditor.useEffect\"]);\n // Clean up on unmount\n return ({\n \"RichEmailEditor.useEffect\": ()=>{\n if (quillRef.current) {\n // Clean up any event listeners or resources\n quillRef.current.off('text-change');\n }\n }\n })[\"RichEmailEditor.useEffect\"];\n }\n }[\"RichEmailEditor.useEffect\"], []);\n // Update content from props if changed externally - using a simpler approach\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)({\n \"RichEmailEditor.useEffect\": ()=>{\n if (quillRef.current && isReady && initialContent) {\n const currentContent = quillRef.current.root.innerHTML;\n // Only update if content changed to avoid editor position reset\n if (initialContent !== currentContent) {\n try {\n console.log('Updating content in editor:', {\n contentLength: initialContent.length,\n startsWithHtml: initialContent.trim().startsWith('<'),\n containsForwardedMessage: initialContent.includes('---------- Forwarded message ----------'),\n containsQuoteHeader: initialContent.includes('wrote:'),\n hasBlockquote: initialContent.includes('<blockquote'),\n hasTable: initialContent.includes('<table'),\n firstNChars: initialContent.substring(0, 100).replace(/\\n/g, '\\\\n')\n });\n // Detect text direction\n const direction = (0,_lib_utils_text_direction__WEBPACK_IMPORTED_MODULE_5__.detectTextDirection)(initialContent);\n // Check if content already appears to be properly formatted as a reply or forward\n const isPreFormattedContent = (initialContent.includes('---------- Forwarded message ----------') || initialContent.includes('wrote:')) && initialContent.includes('<blockquote');\n // Process HTML content using centralized utility or use as-is if pre-formatted\n let sanitizedContent;\n if (isPreFormattedContent) {\n console.log('Content appears to be pre-formatted as reply/forward, using as-is');\n // Just do basic sanitization without additional processing\n sanitizedContent = (0,_lib_utils_dom_purify_config__WEBPACK_IMPORTED_MODULE_4__.sanitizeHtml)(initialContent);\n } else {\n // Full processing for regular content\n sanitizedContent = (0,_lib_utils_email_content__WEBPACK_IMPORTED_MODULE_6__.processHtmlContent)(initialContent);\n }\n // Log sanitized content details for debugging\n console.log('Sanitized content details:', {\n length: sanitizedContent.length,\n isEmpty: sanitizedContent.trim().length === 0,\n startsWithDiv: sanitizedContent.trim().startsWith('<div'),\n containsForwardedMessage: sanitizedContent.includes('---------- Forwarded message ----------'),\n containsQuoteHeader: sanitizedContent.includes('wrote:'),\n hasTable: sanitizedContent.includes('<table'),\n hasBlockquote: sanitizedContent.includes('<blockquote'),\n firstNChars: sanitizedContent.substring(0, 100).replace(/\\n/g, '\\\\n')\n });\n // Check if content is valid HTML\n if (sanitizedContent.trim().length === 0) {\n console.warn('Sanitized content is empty, using original content');\n // If sanitized content is empty, try to extract text from original\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = initialContent;\n const textContent = tempDiv.textContent || tempDiv.innerText || '';\n // Create simple HTML with text content\n if (quillRef.current) {\n quillRef.current.setText(textContent || 'No content available');\n }\n } else {\n // SIMPLIFIED: Set content directly to the root element rather than using clipboard\n if (quillRef.current && quillRef.current.root) {\n // First set the content\n quillRef.current.root.innerHTML = sanitizedContent;\n // Then safely apply formatting only if quillRef is valid\n try {\n if (quillRef.current && quillRef.current.format && quillRef.current.root.innerHTML.trim().length > 0) {\n // Set the direction for the content\n quillRef.current.format('direction', direction);\n if (direction === 'rtl') {\n quillRef.current.format('align', 'right');\n }\n // Force update\n quillRef.current.update();\n // Set selection to beginning\n quillRef.current.setSelection(0, 0);\n } else {\n console.warn('Skipping format - either editor not ready or content empty');\n }\n } catch (formatError) {\n console.error('Error applying formatting:', formatError);\n // Continue without formatting if there's an error\n }\n }\n }\n } catch (err) {\n console.error('Error updating content:', err);\n // Safer fallback that avoids clipboard API\n try {\n // Extract basic text if everything else fails\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = initialContent;\n const textContent = tempDiv.textContent || tempDiv.innerText || '';\n if (quillRef.current) {\n quillRef.current.setText(textContent || 'Error loading content');\n }\n } catch (e) {\n console.error('All fallbacks failed:', e);\n // Last resort\n if (quillRef.current) {\n quillRef.current.setText('Error loading content');\n }\n }\n }\n }\n }\n }\n }[\"RichEmailEditor.useEffect\"], [\n initialContent,\n isReady\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"rich-email-editor-wrapper\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: toolbarRef,\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-toolbar ql-snow\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-bold\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 357,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-italic\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 358,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-underline\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 359,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-strike\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 360,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 356,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-color\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 363,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-background\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 364,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 362,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n value: \"ordered\",\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-list\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 367,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n value: \"bullet\",\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-list\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 368,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 366,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n value: \"-1\",\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-indent\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 371,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n value: \"+1\",\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-indent\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 372,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 370,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-align\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 375,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 374,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n value: \"rtl\",\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-direction\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 378,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 377,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-link\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 381,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 380,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-formats\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"ql-clean\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 384,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 383,\n columnNumber: 9\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 355,\n columnNumber: 7\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"rich-email-editor-container\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: editorRef,\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"quill-editor\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 390,\n columnNumber: 9\n }, undefined),\n !isReady && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"flex items-center justify-center py-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default().dynamic([\n [\n \"768df40fab0720e1\",\n [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ]\n ]\n ]) + \" \" + \"h-6 w-6 animate-spin rounded-full border-2 border-primary border-t-transparent\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 398,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 397,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 389,\n columnNumber: 7\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((styled_jsx_style__WEBPACK_IMPORTED_MODULE_1___default()), {\n id: \"768df40fab0720e1\",\n dynamic: [\n minHeight,\n maxHeight,\n !isReady ? '{ display: none; }' : '',\n minHeight,\n minHeight\n ],\n children: \".rich-email-editor-wrapper.__jsx-style-dynamic-selector{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;height:100%;overflow:hidden;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;border:1px solid#e2e8f0}.rich-email-editor-container.__jsx-style-dynamic-selector{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;height:100%;overflow:auto;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-ms-flex:1;flex:1;position:relative}.quill-editor.__jsx-style-dynamic-selector{width:100%;min-height:\".concat(minHeight, \";max-height:\").concat(maxHeight, \";overflow-y:auto;overflow-x:hidden}.quill-editor.__jsx-style-dynamic-selector \").concat(!isReady ? '{ display: none; }' : '', '.__jsx-style-dynamic-selector .ql-toolbar.ql-snow+.ql-toolbar.ql-snow{display:none!important}[dir=\"rtl\"] .ql-editor{text-align:right;direction:rtl}.ql-editor[dir=\"rtl\"]{text-align:right;direction:rtl}.ql-container{border:none!important;height:auto!important;min-height:').concat(minHeight, \";max-height:none!important;overflow:visible}.ql-editor{padding:12px;min-height:\").concat(minHeight, ';overflow-y:auto!important;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Arial,sans-serif;font-size:14px;line-height:1.5;color:#333!important}.ql-editor p,.ql-editor div,.ql-editor span,.ql-editor li{color:#333!important}.ql-editor.ql-blank::before{color:#aaa!important;font-style:italic!important}.ql-editor blockquote{border-left:2px solid#ddd!important;margin:0!important;padding:10px 0 10px 15px!important;color:#505050!important;background-color:#f9f9f9!important;-webkit-border-radius:4px!important;-moz-border-radius:4px!important;border-radius:4px!important;font-size:13px!important}.ql-editor[dir=\"rtl\"] blockquote,[dir=\"rtl\"] .ql-editor blockquote{border-left:none!important;border-right:2px solid#ddd!important;padding:10px 15px 10px 0!important}.ql-editor table{width:100%!important;border-collapse:collapse!important;table-layout:fixed!important;margin:10px 0!important;border:1px solid#ddd!important}.ql-editor td,.ql-editor th{border:1px solid#ddd!important;padding:6px 8px!important;word-wrap:break-word!important;overflow-wrap:break-word!important;word-break:break-word!important;min-width:30px!important;font-size:13px!important}.email-original-content{margin-top:20px!important;padding-top:10px!important;border-top:1px solid#ddd!important;color:#555!important;font-size:13px!important}.ql-editor blockquote p{margin-bottom:8px!important;margin-top:0!important}.ql-editor div[style*=\"font-weight: 400\"]{margin-top:20px!important;margin-bottom:8px!important;color:#555!important;font-size:13px!important}')\n }, void 0, false, void 0, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/email/RichEmailEditor.tsx\",\n lineNumber: 353,\n columnNumber: 5\n }, undefined);\n};\n_s(RichEmailEditor, \"CJc+KPbBvimsb68LXgtBQksNois=\");\n_c = RichEmailEditor;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RichEmailEditor);\nvar _c;\n$RefreshReg$(_c, \"RichEmailEditor\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvZW1haWwvUmljaEVtYWlsRWRpdG9yLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBRTJEO0FBQ3hCO0FBQzBCO0FBQ0k7QUFDRjtBQVcvRCxNQUFNTyxrQkFBa0Q7UUFBQyxFQUN2REMsY0FBYyxFQUNkQyxRQUFRLEVBQ1JDLGNBQWMsNEJBQTRCLEVBQzFDQyxZQUFZLE9BQU8sRUFDbkJDLFlBQVkscUJBQXFCLEVBQ2pDQyxxQkFBcUIsS0FBSyxFQUMzQjs7SUFDQyxNQUFNQyxZQUFZWiw2Q0FBTUEsQ0FBaUI7SUFDekMsTUFBTWEsYUFBYWIsNkNBQU1BLENBQWlCO0lBQzFDLE1BQU1jLFdBQVdkLDZDQUFNQSxDQUFNO0lBQzdCLE1BQU0sQ0FBQ2UsU0FBU0MsV0FBVyxHQUFHZiwrQ0FBUUEsQ0FBQztJQUV2QyxnREFBZ0Q7SUFDaERGLGdEQUFTQTtxQ0FBQztZQUNSLDhDQUE4QztZQUM5QyxNQUFNa0I7NkRBQWtCO29CQUN0QixJQUFJLENBQUNMLFVBQVVNLE9BQU8sSUFBSSxDQUFDTCxXQUFXSyxPQUFPLEVBQUU7b0JBRS9DLE1BQU1DLFFBQVEsQ0FBQyxNQUFNLDZNQUFjLEVBQUdDLE9BQU87b0JBRTdDLDRCQUE0QjtvQkFDNUIsSUFBSUMsY0FBYztvQkFDbEIsSUFBSTt3QkFDRixNQUFNQyxtQkFBbUIsTUFBTSw4UkFBNEI7d0JBRTNELHlDQUF5Qzt3QkFDekMsSUFBSUEsb0JBQW9CQSxpQkFBaUJGLE9BQU8sRUFBRTs0QkFDaERELE1BQU1JLFFBQVEsQ0FBQztnQ0FDYix3QkFBd0JELGlCQUFpQkYsT0FBTzs0QkFDbEQsR0FBRzs0QkFDSEMsY0FBY0MsaUJBQWlCRixPQUFPOzRCQUN0Q0ksUUFBUUMsR0FBRyxDQUFDO3dCQUNkO29CQUNGLEVBQUUsT0FBT0MsS0FBSzt3QkFDWkYsUUFBUUcsSUFBSSxDQUFDLCtCQUErQkQ7b0JBQzlDO29CQUVBLG1EQUFtRDtvQkFDbkQsTUFBTUUs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Q0FBQ00sVUFBVSx1QkFBdUIscVJBNEJsQ04sT0FQQUEscUdBT0FBOzs7Ozs7OztBQXFGeEI7R0FsaEJNSjtLQUFBQTtBQW9oQk4saUVBQWVBLGVBQWVBLEVBQUMiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvY29tcG9uZW50cy9lbWFpbC9SaWNoRW1haWxFZGl0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCAncXVpbGwvZGlzdC9xdWlsbC5zbm93LmNzcyc7XG5pbXBvcnQgeyBzYW5pdGl6ZUh0bWwgfSBmcm9tICdAL2xpYi91dGlscy9kb20tcHVyaWZ5LWNvbmZpZyc7XG5pbXBvcnQgeyBkZXRlY3RUZXh0RGlyZWN0aW9uIH0gZnJvbSAnQC9saWIvdXRpbHMvdGV4dC1kaXJlY3Rpb24nO1xuaW1wb3J0IHsgcHJvY2Vzc0h0bWxDb250ZW50IH0gZnJvbSAnQC9saWIvdXRpbHMvZW1haWwtY29udGVudCc7XG5cbmludGVyZmFjZSBSaWNoRW1haWxFZGl0b3JQcm9wcyB7XG4gIGluaXRpYWxDb250ZW50OiBzdHJpbmc7XG4gIG9uQ2hhbmdlOiAoY29udGVudDogc3RyaW5nKSA9PiB2b2lkO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgbWluSGVpZ2h0Pzogc3RyaW5nO1xuICBtYXhIZWlnaHQ/OiBzdHJpbmc7XG4gIHByZXNlcnZlRm9ybWF0dGluZz86IGJvb2xlYW47XG59XG5cbmNvbnN0IFJpY2hFbWFpbEVkaXRvcjogUmVhY3QuRkM8UmljaEVtYWlsRWRpdG9yUHJvcHM+ID0gKHtcbiAgaW5pdGlhbENvbnRlbnQsXG4gIG9uQ2hhbmdlLFxuICBwbGFjZWhvbGRlciA9ICdXcml0ZSB5b3VyIG1lc3NhZ2UgaGVyZS4uLicsXG4gIG1pbkhlaWdodCA9ICcyMDBweCcsXG4gIG1heEhlaWdodCA9ICdjYWxjKDEwMHZoIC0gNDAwcHgpJyxcbiAgcHJlc2VydmVGb3JtYXR0aW5nID0gZmFsc2UsXG59KSA9PiB7XG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IHRvb2xiYXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBxdWlsbFJlZiA9IHVzZVJlZjxhbnk+KG51bGwpO1xuICBjb25zdCBbaXNSZWFkeSwgc2V0SXNSZWFkeV0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8gSW5pdGlhbGl6ZSBRdWlsbCBlZGl0b3Igd2hlbiBjb21wb25lbnQgbW91bnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gSW1wb3J0IFF1aWxsIGR5bmFtaWNhbGx5IChjbGllbnQtc2lkZSBvbmx5KVxuICAgIGNvbnN0IGluaXRpYWxpemVRdWlsbCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGlmICghZWRpdG9yUmVmLmN1cnJlbnQgfHwgIXRvb2xiYXJSZWYuY3VycmVudCkgcmV0dXJuO1xuICAgICAgXG4gICAgICBjb25zdCBRdWlsbCA9IChhd2FpdCBpbXBvcnQoJ3F1aWxsJykpLmRlZmF1bHQ7XG4gICAgICBcbiAgICAgIC8vIEltcG9ydCBxdWlsbC1iZXR0ZXItdGFibGVcbiAgICAgIGxldCB0YWJsZU1vZHVsZSA9IG51bGw7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBRdWlsbEJldHRlclRhYmxlID0gYXdhaXQgaW1wb3J0KCdxdWlsbC1iZXR0ZXItdGFibGUnKTtcbiAgICAgICAgXG4gICAgICAgIC8vIFJlZ2lzdGVyIHRoZSB0YWJsZSBtb2R1bGUgaWYgYXZhaWxhYmxlXG4gICAgICAgIGlmIChRdWlsbEJldHRlclRhYmxlICYmIFF1aWxsQmV0dGVyVGFibGUuZGVmYXVsdCkge1xuICAgICAgICAgIFF1aWxsLnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICdtb2R1bGVzL2JldHRlci10YWJsZSc6IFF1aWxsQmV0dGVyVGFibGUuZGVmYXVsdFxuICAgICAgICAgIH0sIHRydWUpO1xuICAgICAgICAgIHRhYmxlTW9kdWxlID0gUXVpbGxCZXR0ZXJUYWJsZS5kZWZhdWx0O1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdCZXR0ZXIgVGFibGUgbW9kdWxlIHJlZ2lzdGVyZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1RhYmxlIG1vZHVsZSBub3QgYXZhaWxhYmxlOicsIGVycik7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIERlZmluZSBjdXN0b20gZm9ybWF0cy9tb2R1bGVzIHdpdGggdGFibGUgc3VwcG9ydFxuICAgICAgY29uc3QgZW1haWxUb29sYmFyT3B0aW9ucyA9IFtcbiAgICAgICAgWydib2xkJywgJ2l0YWxpYycsICd1bmRlcmxpbmUnLCAnc3RyaWtlJ10sXG4gICAgICAgIFt7ICdjb2xvcic6IFtdIH0sIHsgJ2JhY2tncm91bmQnOiBbXSB9XSxcbiAgICAgICAgW3sgJ2xpc3QnOiAnb3JkZXJlZCd9LCB7ICdsaXN0JzogJ2J1bGxldCcgfV0sXG4gICAgICAgIFt7ICdpbmRlbnQnOiAnLTEnfSwgeyAnaW5kZW50JzogJysxJyB9XSxcbiAgICAgICAgW3sgJ2FsaWduJzogW10gfV0sXG4gICAgICAgIFt7ICdkaXJlY3Rpb24nOiAncnRsJyB9XSwgLy8gQWRkIGRpcmVjdGlvbiB0byB0b29sYmFyXG4gICAgICAgIFsnbGluayddLFxuICAgICAgICBbJ2NsZWFuJ10sXG4gICAgICBdO1xuXG4gICAgICAvLyBDcmVhdGUgbmV3IFF1aWxsIGluc3RhbmNlIHdpdGggdGhlIERPTSBlbGVtZW50IGFuZCBjdXN0b20gdG9vbGJhclxuICAgICAgY29uc3QgZWRpdG9yRWxlbWVudCA9IGVkaXRvclJlZi5jdXJyZW50O1xuICAgICAgcXVpbGxSZWYuY3VycmVudCA9IG5ldyBRdWlsbChlZGl0b3JFbGVtZW50LCB7XG4gICAgICAgIG1vZHVsZXM6IHtcbiAgICAgICAgICB0b29sYmFyOiB7XG4gICAgICAgICAgICBjb250YWluZXI6IHRvb2xiYXJSZWYuY3VycmVudCxcbiAgICAgICAgICAgIGhhbmRsZXJzOiB7XG4gICAgICAgICAgICAgIC8vIEFkZCBhbnkgY3VzdG9tIHRvb2xiYXIgaGFuZGxlcnMgaGVyZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2xpcGJvYXJkOiB7XG4gICAgICAgICAgICBtYXRjaFZpc3VhbDogZmFsc2UgLy8gRGlzYWJsZSBjbGlwYm9hcmQgbWF0Y2hpbmcgZm9yIGJldHRlciBIVE1MIGhhbmRsaW5nXG4gICAgICAgICAgfSxcbiAgICAgICAgICAvLyBEb24ndCBpbml0aWFsaXplIGJldHRlci10YWJsZSB5ZXQgLSB3ZSdsbCBkbyBpdCBhZnRlciBjb250ZW50IGlzIGxvYWRlZFxuICAgICAgICAgICdiZXR0ZXItdGFibGUnOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLFxuICAgICAgICB0aGVtZTogJ3Nub3cnLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFNldCBpbml0aWFsIGNvbnRlbnQgcHJvcGVybHlcbiAgICAgIGlmIChpbml0aWFsQ29udGVudCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdTZXR0aW5nIGluaXRpYWwgY29udGVudCBpbiBlZGl0b3InLCB7IFxuICAgICAgICAgICAgbGVuZ3RoOiBpbml0aWFsQ29udGVudC5sZW5ndGgsXG4gICAgICAgICAgICBzdGFydHNXaXRoSHRtbDogaW5pdGlhbENvbnRlbnQudHJpbSgpLnN0YXJ0c1dpdGgoJzwnKSxcbiAgICAgICAgICAgIGNvbnRhaW5zRm9yd2FyZGVkTWVzc2FnZTogaW5pdGlhbENvbnRlbnQuaW5jbHVkZXMoJy0tLS0tLS0tLS0gRm9yd2FyZGVkIG1lc3NhZ2UgLS0tLS0tLS0tLScpLFxuICAgICAgICAgICAgY29udGFpbnNSZXBseUluZGljYXRvcjogaW5pdGlhbENvbnRlbnQuaW5jbHVkZXMoJ3dyb3RlOicpLFxuICAgICAgICAgICAgaGFzQmxvY2txdW90ZTogaW5pdGlhbENvbnRlbnQuaW5jbHVkZXMoJzxibG9ja3F1b3RlJylcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBEZXRlY3QgdGV4dCBkaXJlY3Rpb25cbiAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBkZXRlY3RUZXh0RGlyZWN0aW9uKGluaXRpYWxDb250ZW50KTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBDaGVjayBpZiBjb250ZW50IGFscmVhZHkgYXBwZWFycyB0byBiZSBwcm9wZXJseSBmb3JtYXR0ZWQgYXMgYSByZXBseSBvciBmb3J3YXJkXG4gICAgICAgICAgY29uc3QgaXNQcmVGb3JtYXR0ZWRDb250ZW50ID0gKFxuICAgICAgICAgICAgKGluaXRpYWxDb250ZW50LmluY2x1ZGVzKCctLS0tLS0tLS0tIEZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0nKSB8fCBcbiAgICAgICAgICAgICBpbml0aWFsQ29udGVudC5pbmNsdWRlcygnd3JvdGU6JykpICYmXG4gICAgICAgICAgICBpbml0aWFsQ29udGVudC5pbmNsdWRlcygnPGJsb2NrcXVvdGUnKVxuICAgICAgICAgICk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gUHJvY2VzcyBIVE1MIGNvbnRlbnQgdXNpbmcgY2VudHJhbGl6ZWQgdXRpbGl0eSBvciB1c2UgYXMtaXMgaWYgcHJlLWZvcm1hdHRlZFxuICAgICAgICAgIGxldCBzYW5pdGl6ZWRDb250ZW50O1xuICAgICAgICAgIGlmIChpc1ByZUZvcm1hdHRlZENvbnRlbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDb250ZW50IGFwcGVhcnMgdG8gYmUgcHJlLWZvcm1hdHRlZCBhcyByZXBseS9mb3J3YXJkLCB1c2luZyBhcy1pcycpO1xuICAgICAgICAgICAgLy8gSnVzdCBkbyBiYXNpYyBzYW5pdGl6YXRpb24gd2l0aG91dCBhZGRpdGlvbmFsIHByb2Nlc3NpbmdcbiAgICAgICAgICAgIHNhbml0aXplZENvbnRlbnQgPSBzYW5pdGl6ZUh0bWwoaW5pdGlhbENvbnRlbnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGdWxsIHByb2Nlc3NpbmcgZm9yIHJlZ3VsYXIgY29udGVudFxuICAgICAgICAgICAgc2FuaXRpemVkQ29udGVudCA9IHByb2Nlc3NIdG1sQ29udGVudChpbml0aWFsQ29udGVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIExvZyBzYW5pdGl6ZWQgY29udGVudCBkZXRhaWxzIGZvciBkZWJ1Z2dpbmdcbiAgICAgICAgICBjb25zb2xlLmxvZygnU2FuaXRpemVkIGNvbnRlbnQgZGV0YWlsczonLCB7XG4gICAgICAgICAgICBsZW5ndGg6IHNhbml0aXplZENvbnRlbnQubGVuZ3RoLFxuICAgICAgICAgICAgaXNFbXB0eTogc2FuaXRpemVkQ29udGVudC50cmltKCkubGVuZ3RoID09PSAwLFxuICAgICAgICAgICAgc3RhcnRzV2l0aERpdjogc2FuaXRpemVkQ29udGVudC50cmltKCkuc3RhcnRzV2l0aCgnPGRpdicpLFxuICAgICAgICAgICAgY29udGFpbnNGb3J3YXJkZWRNZXNzYWdlOiBzYW5pdGl6ZWRDb250ZW50LmluY2x1ZGVzKCctLS0tLS0tLS0tIEZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0nKSxcbiAgICAgICAgICAgIGNvbnRhaW5zUXVvdGVIZWFkZXI6IHNhbml0aXplZENvbnRlbnQuaW5jbHVkZXMoJ3dyb3RlOicpLFxuICAgICAgICAgICAgaGFzVGFibGU6IHNhbml0aXplZENvbnRlbnQuaW5jbHVkZXMoJzx0YWJsZScpLFxuICAgICAgICAgICAgaGFzQmxvY2txdW90ZTogc2FuaXRpemVkQ29udGVudC5pbmNsdWRlcygnPGJsb2NrcXVvdGUnKSxcbiAgICAgICAgICAgIGZpcnN0TkNoYXJzOiBzYW5pdGl6ZWRDb250ZW50LnN1YnN0cmluZygwLCAxMDApLnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIENoZWNrIGlmIHNhbml0aXplZCBjb250ZW50IGlzIHZhbGlkXG4gICAgICAgICAgaWYgKHNhbml0aXplZENvbnRlbnQudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdTYW5pdGl6ZWQgY29udGVudCBpcyBlbXB0eSBhZnRlciBwcm9jZXNzaW5nLCB1c2luZyBmYWxsYmFjayBhcHByb2FjaCcpO1xuICAgICAgICAgICAgLy8gVHJ5IHRvIGV4dHJhY3QgdGV4dCBjb250ZW50IGlmIEhUTUwgcHJvY2Vzc2luZyBmYWlsZWRcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgICAgdGVtcERpdi5pbm5lckhUTUwgPSBpbml0aWFsQ29udGVudDtcbiAgICAgICAgICAgICAgY29uc3QgdGV4dENvbnRlbnQgPSB0ZW1wRGl2LnRleHRDb250ZW50IHx8IHRlbXBEaXYuaW5uZXJUZXh0IHx8ICdFbXB0eSBjb250ZW50JztcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIC8vIFNldCB0ZXh0IGRpcmVjdGx5IHRvIGVuc3VyZSBzb21ldGhpbmcgZGlzcGxheXNcbiAgICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5zZXRUZXh0KHRleHRDb250ZW50KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignVGV4dCBleHRyYWN0aW9uIGZhbGxiYWNrIGZhaWxlZDonLCBlKTtcbiAgICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5zZXRUZXh0KCdFcnJvciBsb2FkaW5nIGNvbnRlbnQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVXNlIGRpcmVjdCBpbm5lckhUTUwgc2V0dGluZyBmb3IgdGhlIGluaXRpYWwgY29udGVudFxuICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5yb290LmlubmVySFRNTCA9IHNhbml0aXplZENvbnRlbnQ7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIFNldCB0aGUgZGlyZWN0aW9uIGZvciB0aGUgY29udGVudFxuICAgICAgICAgICAgaWYgKHF1aWxsUmVmLmN1cnJlbnQgJiYgcXVpbGxSZWYuY3VycmVudC5mb3JtYXQpIHtcbiAgICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5mb3JtYXQoJ2RpcmVjdGlvbicsIGRpcmVjdGlvbik7XG4gICAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5mb3JtYXQoJ2FsaWduJywgJ3JpZ2h0Jyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybignQ2Fubm90IGZvcm1hdCBjb250ZW50OiBlZGl0b3Igbm90IGZ1bGx5IGluaXRpYWxpemVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIFNldCBjdXJzb3IgYXQgdGhlIGJlZ2lubmluZ1xuICAgICAgICAgIHF1aWxsUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uKDAsIDApO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIEVuc3VyZSB0aGUgY3Vyc29yIGFuZCBzY3JvbGwgcG9zaXRpb24gaXMgYXQgdGhlIHRvcCBvZiB0aGUgZWRpdG9yXG4gICAgICAgICAgaWYgKGVkaXRvclJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBlZGl0b3JSZWYuY3VycmVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBGaW5kIGFuZCBzY3JvbGwgcGFyZW50IGNvbnRhaW5lcnMgdGhhdCBtaWdodCBoYXZlIHNjcm9sbFxuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZSA9IFtcbiAgICAgICAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQuY2xvc2VzdCgnLnFsLWNvbnRhaW5lcicpLFxuICAgICAgICAgICAgICBlZGl0b3JSZWYuY3VycmVudC5jbG9zZXN0KCcucmljaC1lbWFpbC1lZGl0b3ItY29udGFpbmVyJyksXG4gICAgICAgICAgICAgIGVkaXRvclJlZi5jdXJyZW50LmNsb3Nlc3QoJy5vdmVyZmxvdy15LWF1dG8nKSxcbiAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm92ZXJmbG93LXktYXV0bycpXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBzY3JvbGxhYmxlLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgICAgICBpZiAoZWwgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGVsLnNjcm9sbFRvcCA9IDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2V0dGluZyBpbml0aWFsIGNvbnRlbnQ6JywgZXJyKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBFbmhhbmNlZCBmYWxsYmFjayBtZWNoYW5pc20gZm9yIGNvbXBsZXggY29udGVudFxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBGaXJzdCB0cnkgdG8gZXh0cmFjdCB0ZXh0IGZyb20gSFRNTFxuICAgICAgICAgICAgY29uc3QgdGVtcERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgdGVtcERpdi5pbm5lckhUTUwgPSBpbml0aWFsQ29udGVudDtcbiAgICAgICAgICAgIGNvbnN0IHRleHRDb250ZW50ID0gdGVtcERpdi50ZXh0Q29udGVudCB8fCB0ZW1wRGl2LmlubmVyVGV4dCB8fCAnJztcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHRleHRDb250ZW50LnRyaW0oKSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnVXNpbmcgZXh0cmFjdGVkIHRleHQgZmFsbGJhY2ssIGxlbmd0aDonLCB0ZXh0Q29udGVudC5sZW5ndGgpO1xuICAgICAgICAgICAgICBxdWlsbFJlZi5jdXJyZW50LnNldFRleHQodGV4dENvbnRlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gSWYgdGV4dCBleHRyYWN0aW9uIGZhaWxzIG9yIHJldHVybnMgZW1wdHksIHByb3ZpZGUgYSBtZXNzYWdlXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdVc2luZyBlbXB0eSBjb250ZW50IGZhbGxiYWNrJyk7XG4gICAgICAgICAgICAgIHF1aWxsUmVmLmN1cnJlbnQuc2V0VGV4dCgnVW5hYmxlIHRvIGxvYWQgb3JpZ2luYWwgY29udGVudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0FsbCBmYWxsYmFja3MgZmFpbGVkOicsIGUpO1xuICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5zZXRUZXh0KCdFcnJvciBsb2FkaW5nIGNvbnRlbnQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQWRkIGNoYW5nZSBsaXN0ZW5lclxuICAgICAgcXVpbGxSZWYuY3VycmVudC5vbigndGV4dC1jaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGh0bWwgPSBxdWlsbFJlZi5jdXJyZW50LnJvb3QuaW5uZXJIVE1MO1xuICAgICAgICBvbkNoYW5nZShodG1sKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBJbXByb3ZlIGVkaXRvciBsYXlvdXRcbiAgICAgIGNvbnN0IGVkaXRvckNvbnRhaW5lciA9IGVkaXRvckVsZW1lbnQuY2xvc2VzdCgnLnFsLWNvbnRhaW5lcicpO1xuICAgICAgaWYgKGVkaXRvckNvbnRhaW5lcikge1xuICAgICAgICBlZGl0b3JDb250YWluZXIuY2xhc3NMaXN0LmFkZCgnZW1haWwtZWRpdG9yLWNvbnRhaW5lcicpO1xuICAgICAgfVxuXG4gICAgICBzZXRJc1JlYWR5KHRydWUpO1xuICAgIH07XG5cbiAgICBpbml0aWFsaXplUXVpbGwoKS5jYXRjaChlcnIgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGluaXRpYWxpemUgUXVpbGwgZWRpdG9yOicsIGVycik7XG4gICAgfSk7XG5cbiAgICAvLyBDbGVhbiB1cCBvbiB1bm1vdW50XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChxdWlsbFJlZi5jdXJyZW50KSB7XG4gICAgICAgIC8vIENsZWFuIHVwIGFueSBldmVudCBsaXN0ZW5lcnMgb3IgcmVzb3VyY2VzXG4gICAgICAgIHF1aWxsUmVmLmN1cnJlbnQub2ZmKCd0ZXh0LWNoYW5nZScpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtdKTtcblxuICAvLyBVcGRhdGUgY29udGVudCBmcm9tIHByb3BzIGlmIGNoYW5nZWQgZXh0ZXJuYWxseSAtIHVzaW5nIGEgc2ltcGxlciBhcHByb2FjaFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChxdWlsbFJlZi5jdXJyZW50ICYmIGlzUmVhZHkgJiYgaW5pdGlhbENvbnRlbnQpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRDb250ZW50ID0gcXVpbGxSZWYuY3VycmVudC5yb290LmlubmVySFRNTDtcbiAgICAgIFxuICAgICAgLy8gT25seSB1cGRhdGUgaWYgY29udGVudCBjaGFuZ2VkIHRvIGF2b2lkIGVkaXRvciBwb3NpdGlvbiByZXNldFxuICAgICAgaWYgKGluaXRpYWxDb250ZW50ICE9PSBjdXJyZW50Q29udGVudCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdVcGRhdGluZyBjb250ZW50IGluIGVkaXRvcjonLCB7IFxuICAgICAgICAgICAgY29udGVudExlbmd0aDogaW5pdGlhbENvbnRlbnQubGVuZ3RoLFxuICAgICAgICAgICAgc3RhcnRzV2l0aEh0bWw6IGluaXRpYWxDb250ZW50LnRyaW0oKS5zdGFydHNXaXRoKCc8JyksXG4gICAgICAgICAgICBjb250YWluc0ZvcndhcmRlZE1lc3NhZ2U6IGluaXRpYWxDb250ZW50LmluY2x1ZGVzKCctLS0tLS0tLS0tIEZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0nKSxcbiAgICAgICAgICAgIGNvbnRhaW5zUXVvdGVIZWFkZXI6IGluaXRpYWxDb250ZW50LmluY2x1ZGVzKCd3cm90ZTonKSxcbiAgICAgICAgICAgIGhhc0Jsb2NrcXVvdGU6IGluaXRpYWxDb250ZW50LmluY2x1ZGVzKCc8YmxvY2txdW90ZScpLFxuICAgICAgICAgICAgaGFzVGFibGU6IGluaXRpYWxDb250ZW50LmluY2x1ZGVzKCc8dGFibGUnKSxcbiAgICAgICAgICAgIGZpcnN0TkNoYXJzOiBpbml0aWFsQ29udGVudC5zdWJzdHJpbmcoMCwgMTAwKS5yZXBsYWNlKC9cXG4vZywgJ1xcXFxuJylcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBEZXRlY3QgdGV4dCBkaXJlY3Rpb25cbiAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBkZXRlY3RUZXh0RGlyZWN0aW9uKGluaXRpYWxDb250ZW50KTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBDaGVjayBpZiBjb250ZW50IGFscmVhZHkgYXBwZWFycyB0byBiZSBwcm9wZXJseSBmb3JtYXR0ZWQgYXMgYSByZXBseSBvciBmb3J3YXJkXG4gICAgICAgICAgY29uc3QgaXNQcmVGb3JtYXR0ZWRDb250ZW50ID0gKFxuICAgICAgICAgICAgKGluaXRpYWxDb250ZW50LmluY2x1ZGVzKCctLS0tLS0tLS0tIEZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0nKSB8fCBcbiAgICAgICAgICAgICBpbml0aWFsQ29udGVudC5pbmNsdWRlcygnd3JvdGU6JykpICYmXG4gICAgICAgICAgICBpbml0aWFsQ29udGVudC5pbmNsdWRlcygnPGJsb2NrcXVvdGUnKVxuICAgICAgICAgICk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gUHJvY2VzcyBIVE1MIGNvbnRlbnQgdXNpbmcgY2VudHJhbGl6ZWQgdXRpbGl0eSBvciB1c2UgYXMtaXMgaWYgcHJlLWZvcm1hdHRlZFxuICAgICAgICAgIGxldCBzYW5pdGl6ZWRDb250ZW50O1xuICAgICAgICAgIGlmIChpc1ByZUZvcm1hdHRlZENvbnRlbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDb250ZW50IGFwcGVhcnMgdG8gYmUgcHJlLWZvcm1hdHRlZCBhcyByZXBseS9mb3J3YXJkLCB1c2luZyBhcy1pcycpO1xuICAgICAgICAgICAgLy8gSnVzdCBkbyBiYXNpYyBzYW5pdGl6YXRpb24gd2l0aG91dCBhZGRpdGlvbmFsIHByb2Nlc3NpbmdcbiAgICAgICAgICAgIHNhbml0aXplZENvbnRlbnQgPSBzYW5pdGl6ZUh0bWwoaW5pdGlhbENvbnRlbnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGdWxsIHByb2Nlc3NpbmcgZm9yIHJlZ3VsYXIgY29udGVudFxuICAgICAgICAgICAgc2FuaXRpemVkQ29udGVudCA9IHByb2Nlc3NIdG1sQ29udGVudChpbml0aWFsQ29udGVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIExvZyBzYW5pdGl6ZWQgY29udGVudCBkZXRhaWxzIGZvciBkZWJ1Z2dpbmdcbiAgICAgICAgICBjb25zb2xlLmxvZygnU2FuaXRpemVkIGNvbnRlbnQgZGV0YWlsczonLCB7XG4gICAgICAgICAgICBsZW5ndGg6IHNhbml0aXplZENvbnRlbnQubGVuZ3RoLFxuICAgICAgICAgICAgaXNFbXB0eTogc2FuaXRpemVkQ29udGVudC50cmltKCkubGVuZ3RoID09PSAwLFxuICAgICAgICAgICAgc3RhcnRzV2l0aERpdjogc2FuaXRpemVkQ29udGVudC50cmltKCkuc3RhcnRzV2l0aCgnPGRpdicpLFxuICAgICAgICAgICAgY29udGFpbnNGb3J3YXJkZWRNZXNzYWdlOiBzYW5pdGl6ZWRDb250ZW50LmluY2x1ZGVzKCctLS0tLS0tLS0tIEZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0nKSxcbiAgICAgICAgICAgIGNvbnRhaW5zUXVvdGVIZWFkZXI6IHNhbml0aXplZENvbnRlbnQuaW5jbHVkZXMoJ3dyb3RlOicpLFxuICAgICAgICAgICAgaGFzVGFibGU6IHNhbml0aXplZENvbnRlbnQuaW5jbHVkZXMoJzx0YWJsZScpLFxuICAgICAgICAgICAgaGFzQmxvY2txdW90ZTogc2FuaXRpemVkQ29udGVudC5pbmNsdWRlcygnPGJsb2NrcXVvdGUnKSxcbiAgICAgICAgICAgIGZpcnN0TkNoYXJzOiBzYW5pdGl6ZWRDb250ZW50LnN1YnN0cmluZygwLCAxMDApLnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIENoZWNrIGlmIGNvbnRlbnQgaXMgdmFsaWQgSFRNTFxuICAgICAgICAgIGlmIChzYW5pdGl6ZWRDb250ZW50LnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignU2FuaXRpemVkIGNvbnRlbnQgaXMgZW1wdHksIHVzaW5nIG9yaWdpbmFsIGNvbnRlbnQnKTtcbiAgICAgICAgICAgIC8vIElmIHNhbml0aXplZCBjb250ZW50IGlzIGVtcHR5LCB0cnkgdG8gZXh0cmFjdCB0ZXh0IGZyb20gb3JpZ2luYWxcbiAgICAgICAgICAgIGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIHRlbXBEaXYuaW5uZXJIVE1MID0gaW5pdGlhbENvbnRlbnQ7XG4gICAgICAgICAgICBjb25zdCB0ZXh0Q29udGVudCA9IHRlbXBEaXYudGV4dENvbnRlbnQgfHwgdGVtcERpdi5pbm5lclRleHQgfHwgJyc7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIENyZWF0ZSBzaW1wbGUgSFRNTCB3aXRoIHRleHQgY29udGVudFxuICAgICAgICAgICAgaWYgKHF1aWxsUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5zZXRUZXh0KHRleHRDb250ZW50IHx8ICdObyBjb250ZW50IGF2YWlsYWJsZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBTSU1QTElGSUVEOiBTZXQgY29udGVudCBkaXJlY3RseSB0byB0aGUgcm9vdCBlbGVtZW50IHJhdGhlciB0aGFuIHVzaW5nIGNsaXBib2FyZFxuICAgICAgICAgICAgaWYgKHF1aWxsUmVmLmN1cnJlbnQgJiYgcXVpbGxSZWYuY3VycmVudC5yb290KSB7XG4gICAgICAgICAgICAgIC8vIEZpcnN0IHNldCB0aGUgY29udGVudFxuICAgICAgICAgICAgICBxdWlsbFJlZi5jdXJyZW50LnJvb3QuaW5uZXJIVE1MID0gc2FuaXRpemVkQ29udGVudDtcbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIC8vIFRoZW4gc2FmZWx5IGFwcGx5IGZvcm1hdHRpbmcgb25seSBpZiBxdWlsbFJlZiBpcyB2YWxpZFxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGlmIChxdWlsbFJlZi5jdXJyZW50ICYmIHF1aWxsUmVmLmN1cnJlbnQuZm9ybWF0ICYmIHF1aWxsUmVmLmN1cnJlbnQucm9vdC5pbm5lckhUTUwudHJpbSgpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgZGlyZWN0aW9uIGZvciB0aGUgY29udGVudFxuICAgICAgICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5mb3JtYXQoJ2RpcmVjdGlvbicsIGRpcmVjdGlvbik7XG4gICAgICAgICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09PSAncnRsJykge1xuICAgICAgICAgICAgICAgICAgICBxdWlsbFJlZi5jdXJyZW50LmZvcm1hdCgnYWxpZ24nLCAncmlnaHQnKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgLy8gRm9yY2UgdXBkYXRlXG4gICAgICAgICAgICAgICAgICBxdWlsbFJlZi5jdXJyZW50LnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAvLyBTZXQgc2VsZWN0aW9uIHRvIGJlZ2lubmluZ1xuICAgICAgICAgICAgICAgICAgcXVpbGxSZWYuY3VycmVudC5zZXRTZWxlY3Rpb24oMCwgMCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignU2tpcHBpbmcgZm9ybWF0IC0gZWl0aGVyIGVkaXRvciBub3QgcmVhZHkgb3IgY29udGVudCBlbXB0eScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBjYXRjaCAoZm9ybWF0RXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBhcHBseWluZyBmb3JtYXR0aW5nOicsIGZvcm1hdEVycm9yKTtcbiAgICAgICAgICAgICAgICAvLyBDb250aW51ZSB3aXRob3V0IGZvcm1hdHRpbmcgaWYgdGhlcmUncyBhbiBlcnJvclxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciB1cGRhdGluZyBjb250ZW50OicsIGVycik7XG4gICAgICAgICAgLy8gU2FmZXIgZmFsbGJhY2sgdGhhdCBhdm9pZHMgY2xpcGJvYXJkIEFQSVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBFeHRyYWN0IGJhc2ljIHRleHQgaWYgZXZlcnl0aGluZyBlbHNlIGZhaWxzXG4gICAgICAgICAgICBjb25zdCB0ZW1wRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICB0ZW1wRGl2LmlubmVySFRNTCA9IGluaXRpYWxDb250ZW50O1xuICAgICAgICAgICAgY29uc3QgdGV4dENvbnRlbnQgPSB0ZW1wRGl2LnRleHRDb250ZW50IHx8IHRlbXBEaXYuaW5uZXJUZXh0IHx8ICcnO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAocXVpbGxSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICBxdWlsbFJlZi5jdXJyZW50LnNldFRleHQodGV4dENvbnRlbnQgfHwgJ0Vycm9yIGxvYWRpbmcgY29udGVudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0FsbCBmYWxsYmFja3MgZmFpbGVkOicsIGUpO1xuICAgICAgICAgICAgLy8gTGFzdCByZXNvcnRcbiAgICAgICAgICAgIGlmIChxdWlsbFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgIHF1aWxsUmVmLmN1cnJlbnQuc2V0VGV4dCgnRXJyb3IgbG9hZGluZyBjb250ZW50Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LCBbaW5pdGlhbENvbnRlbnQsIGlzUmVhZHldKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwicmljaC1lbWFpbC1lZGl0b3Itd3JhcHBlclwiPlxuICAgICAgey8qIEN1c3RvbSB0b29sYmFyIGNvbnRhaW5lciAqL31cbiAgICAgIDxkaXYgcmVmPXt0b29sYmFyUmVmfSBjbGFzc05hbWU9XCJxbC10b29sYmFyIHFsLXNub3dcIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtYm9sZFwiPjwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtaXRhbGljXCI+PC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJxbC11bmRlcmxpbmVcIj48L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cInFsLXN0cmlrZVwiPjwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICA8c2VsZWN0IGNsYXNzTmFtZT1cInFsLWNvbG9yXCI+PC9zZWxlY3Q+XG4gICAgICAgICAgPHNlbGVjdCBjbGFzc05hbWU9XCJxbC1iYWNrZ3JvdW5kXCI+PC9zZWxlY3Q+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtbGlzdFwiIHZhbHVlPVwib3JkZXJlZFwiPjwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtbGlzdFwiIHZhbHVlPVwiYnVsbGV0XCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtaW5kZW50XCIgdmFsdWU9XCItMVwiPjwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtaW5kZW50XCIgdmFsdWU9XCIrMVwiPjwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICA8c2VsZWN0IGNsYXNzTmFtZT1cInFsLWFsaWduXCI+PC9zZWxlY3Q+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtZGlyZWN0aW9uXCIgdmFsdWU9XCJydGxcIj48L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJxbC1saW5rXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwicWwtY2xlYW5cIj48L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIHsvKiBFZGl0b3IgY29udGFpbmVyIHdpdGggaW1wcm92ZWQgc2Nyb2xsaW5nICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyaWNoLWVtYWlsLWVkaXRvci1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBcbiAgICAgICAgICByZWY9e2VkaXRvclJlZn0gXG4gICAgICAgICAgY2xhc3NOYW1lPVwicXVpbGwtZWRpdG9yXCJcbiAgICAgICAgLz5cbiAgICAgICAgXG4gICAgICAgIHsvKiBMb2FkaW5nIGluZGljYXRvciAqL31cbiAgICAgICAgeyFpc1JlYWR5ICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LThcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC02IHctNiBhbmltYXRlLXNwaW4gcm91bmRlZC1mdWxsIGJvcmRlci0yIGJvcmRlci1wcmltYXJ5IGJvcmRlci10LXRyYW5zcGFyZW50XCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgey8qIEN1c3RvbSBzdHlsZXMgZm9yIGVtYWlsIGNvbnRleHQgKi99XG4gICAgICA8c3R5bGUganN4PntgXG4gICAgICAgIC5yaWNoLWVtYWlsLWVkaXRvci13cmFwcGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnJpY2gtZW1haWwtZWRpdG9yLWNvbnRhaW5lciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLnF1aWxsLWVkaXRvciB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWluLWhlaWdodDogJHttaW5IZWlnaHR9O1xuICAgICAgICAgIG1heC1oZWlnaHQ6ICR7bWF4SGVpZ2h0fTtcbiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogSGlkZSB0aGUgZWRpdG9yIHVudGlsIGl0J3MgcmVhZHkgKi9cbiAgICAgICAgLnF1aWxsLWVkaXRvciAkeyFpc1JlYWR5ID8gJ3sgZGlzcGxheTogbm9uZTsgfScgOiAnJ31cbiAgICAgICAgXG4gICAgICAgIC8qIEhpZGUgZHVwbGljYXRlIHRvb2xiYXIgKi9cbiAgICAgICAgOmdsb2JhbCgucWwtdG9vbGJhci5xbC1zbm93ICsgLnFsLXRvb2xiYXIucWwtc25vdykge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogQWRkIFJUTCBzdXBwb3J0IHN0eWxlcyAqL1xuICAgICAgICA6Z2xvYmFsKFtkaXI9XCJydGxcIl0gLnFsLWVkaXRvcikge1xuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICA6Z2xvYmFsKC5xbC1lZGl0b3JbZGlyPVwicnRsXCJdKSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIDpnbG9iYWwoLnFsLWNvbnRhaW5lcikge1xuICAgICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6ICR7bWluSGVpZ2h0fTtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIDpnbG9iYWwoLnFsLWVkaXRvcikge1xuICAgICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgICAgbWluLWhlaWdodDogJHttaW5IZWlnaHR9O1xuICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgICAgY29sb3I6ICMzMzMgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogRW5zdXJlIGFsbCB0ZXh0IGlzIHZpc2libGUgKi9cbiAgICAgICAgOmdsb2JhbCgucWwtZWRpdG9yIHApLFxuICAgICAgICA6Z2xvYmFsKC5xbC1lZGl0b3IgZGl2KSxcbiAgICAgICAgOmdsb2JhbCgucWwtZWRpdG9yIHNwYW4pLFxuICAgICAgICA6Z2xvYmFsKC5xbC1lZGl0b3IgbGkpIHtcbiAgICAgICAgICBjb2xvcjogIzMzMyAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvKiBFbnN1cmUgcGxhY2Vob2xkZXIgdGV4dCBpcyB2aXNpYmxlIGJ1dCBkaXN0aW5jdCAqL1xuICAgICAgICA6Z2xvYmFsKC5xbC1lZGl0b3IucWwtYmxhbms6OmJlZm9yZSkge1xuICAgICAgICAgIGNvbG9yOiAjYWFhICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8qIEZvcmNlIGJsb2NrcXVvdGUgc3R5bGluZyAqL1xuICAgICAgICA6Z2xvYmFsKC5xbC1lZGl0b3IgYmxvY2txdW90ZSkge1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2RkZCAhaW1wb3J0YW50O1xuICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIHBhZGRpbmc6IDEwcHggMCAxMHB4IDE1cHggIWltcG9ydGFudDtcbiAgICAgICAgICBjb2xvcjogIzUwNTA1MCAhaW1wb3J0YW50O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5ZjkgIWltcG9ydGFudDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDtcbiAgICAgICAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogUlRMIGJsb2NrcXVvdGUgc3R5bGluZyAqL1xuICAgICAgICA6Z2xvYmFsKC5xbC1lZGl0b3JbZGlyPVwicnRsXCJdIGJsb2NrcXVvdGUpLFxuICAgICAgICA6Z2xvYmFsKFtkaXI9XCJydGxcIl0gLnFsLWVkaXRvciBibG9ja3F1b3RlKSB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjZGRkICFpbXBvcnRhbnQ7XG4gICAgICAgICAgcGFkZGluZzogMTBweCAxNXB4IDEwcHggMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvKiBGaXggdGFibGUgcmVuZGVyaW5nICovXG4gICAgICAgIDpnbG9iYWwoLnFsLWVkaXRvciB0YWJsZSkge1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xuICAgICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQgIWltcG9ydGFudDtcbiAgICAgICAgICBtYXJnaW46IDEwcHggMCAhaW1wb3J0YW50O1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgOmdsb2JhbCgucWwtZWRpdG9yIHRkKSwgXG4gICAgICAgIDpnbG9iYWwoLnFsLWVkaXRvciB0aCkge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQgIWltcG9ydGFudDtcbiAgICAgICAgICBwYWRkaW5nOiA2cHggOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQgIWltcG9ydGFudDtcbiAgICAgICAgICBtaW4td2lkdGg6IDMwcHggIWltcG9ydGFudDtcbiAgICAgICAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogRW1haWwgcXVvdGUgc3R5bGluZyAqL1xuICAgICAgICA6Z2xvYmFsKC5lbWFpbC1vcmlnaW5hbC1jb250ZW50KSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMjBweCAhaW1wb3J0YW50O1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQgIWltcG9ydGFudDtcbiAgICAgICAgICBjb2xvcjogIzU1NSAhaW1wb3J0YW50O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvKiBGaXggcXVvdGVkIHBhcmFncmFwaHMgKi9cbiAgICAgICAgOmdsb2JhbCgucWwtZWRpdG9yIGJsb2NrcXVvdGUgcCkge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50O1xuICAgICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogRml4IGZvciByZXBseSBoZWFkZXJzICovXG4gICAgICAgIDpnbG9iYWwoLnFsLWVkaXRvciBkaXZbc3R5bGUqPVwiZm9udC13ZWlnaHQ6IDQwMFwiXSkge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHggIWltcG9ydGFudDtcbiAgICAgICAgICBjb2xvcjogIzU1NSAhaW1wb3J0YW50O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBSaWNoRW1haWxFZGl0b3I7ICJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwic2FuaXRpemVIdG1sIiwiZGV0ZWN0VGV4dERpcmVjdGlvbiIsInByb2Nlc3NIdG1sQ29udGVudCIsIlJpY2hFbWFpbEVkaXRvciIsImluaXRpYWxDb250ZW50Iiwib25DaGFuZ2UiLCJwbGFjZWhvbGRlciIsIm1pbkhlaWdodCIsIm1heEhlaWdodCIsInByZXNlcnZlRm9ybWF0dGluZyIsImVkaXRvclJlZiIsInRvb2xiYXJSZWYiLCJxdWlsbFJlZiIsImlzUmVhZHkiLCJzZXRJc1JlYWR5IiwiaW5pdGlhbGl6ZVF1aWxsIiwiY3VycmVudCIsIlF1aWxsIiwiZGVmYXVsdCIsInRhYmxlTW9kdWxlIiwiUXVpbGxCZXR0ZXJUYWJsZSIsInJlZ2lzdGVyIiwiY29uc29sZSIsImxvZyIsImVyciIsIndhcm4iLCJlbWFpbFRvb2xiYXJPcHRpb25zIiwiZWRpdG9yRWxlbWVudCIsIm1vZHVsZXMiLCJ0b29sYmFyIiwiY29udGFpbmVyIiwiaGFuZGxlcnMiLCJjbGlwYm9hcmQiLCJtYXRjaFZpc3VhbCIsInRoZW1lIiwibGVuZ3RoIiwic3RhcnRzV2l0aEh0bWwiLCJ0cmltIiwic3RhcnRzV2l0aCIsImNvbnRhaW5zRm9yd2FyZGVkTWVzc2FnZSIsImluY2x1ZGVzIiwiY29udGFpbnNSZXBseUluZGljYXRvciIsImhhc0Jsb2NrcXVvdGUiLCJkaXJlY3Rpb24iLCJpc1ByZUZvcm1hdHRlZENvbnRlbnQiLCJzYW5pdGl6ZWRDb250ZW50IiwiaXNFbXB0eSIsInN0YXJ0c1dpdGhEaXYiLCJjb250YWluc1F1b3RlSGVhZGVyIiwiaGFzVGFibGUiLCJmaXJzdE5DaGFycyIsInN1YnN0cmluZyIsInJlcGxhY2UiLCJ0ZW1wRGl2IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaW5uZXJIVE1MIiwidGV4dENvbnRlbnQiLCJpbm5lclRleHQiLCJzZXRUZXh0IiwiZSIsImVycm9yIiwicm9vdCIsImZvcm1hdCIsInNldFNlbGVjdGlvbiIsInNjcm9sbFRvcCIsInNjcm9sbGFibGUiLCJjbG9zZXN0IiwicXVlcnlTZWxlY3RvciIsImZvckVhY2giLCJlbCIsIkhUTUxFbGVtZW50Iiwib24iLCJodG1sIiwiZWRpdG9yQ29udGFpbmVyIiwiY2xhc3NMaXN0IiwiYWRkIiwiY2F0Y2giLCJvZmYiLCJjdXJyZW50Q29udGVudCIsImNvbnRlbnRMZW5ndGgiLCJ1cGRhdGUiLCJmb3JtYXRFcnJvciIsImRpdiIsInJlZiIsInNwYW4iLCJidXR0b24iLCJzZWxlY3QiLCJ2YWx1ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/email/RichEmailEditor.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/ui/alert-dialog.tsx":
/*!****************************************!*\
!*** ./components/ui/alert-dialog.tsx ***!
\****************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AlertDialog: () => (/* binding */ AlertDialog),\n/* harmony export */ AlertDialogAction: () => (/* binding */ AlertDialogAction),\n/* harmony export */ AlertDialogCancel: () => (/* binding */ AlertDialogCancel),\n/* harmony export */ AlertDialogContent: () => (/* binding */ AlertDialogContent),\n/* harmony export */ AlertDialogDescription: () => (/* binding */ AlertDialogDescription),\n/* harmony export */ AlertDialogFooter: () => (/* binding */ AlertDialogFooter),\n/* harmony export */ AlertDialogHeader: () => (/* binding */ AlertDialogHeader),\n/* harmony export */ AlertDialogOverlay: () => (/* binding */ AlertDialogOverlay),\n/* harmony export */ AlertDialogPortal: () => (/* binding */ AlertDialogPortal),\n/* harmony export */ AlertDialogTitle: () => (/* binding */ AlertDialogTitle),\n/* harmony export */ AlertDialogTrigger: () => (/* binding */ AlertDialogTrigger)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-alert-dialog */ \"(app-pages-browser)/./node_modules/@radix-ui/react-alert-dialog/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* harmony import */ var _components_ui_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/button */ \"(app-pages-browser)/./components/ui/button.tsx\");\n/* __next_internal_client_entry_do_not_use__ AlertDialog,AlertDialogPortal,AlertDialogOverlay,AlertDialogTrigger,AlertDialogContent,AlertDialogHeader,AlertDialogFooter,AlertDialogTitle,AlertDialogDescription,AlertDialogAction,AlertDialogCancel auto */ \n\n\n\n\nconst AlertDialog = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Root;\nconst AlertDialogTrigger = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Trigger;\nconst AlertDialogPortal = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Portal;\nconst AlertDialogOverlay = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Overlay, {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\", className),\n ...props,\n ref: ref\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 19,\n columnNumber: 3\n }, undefined);\n});\n_c = AlertDialogOverlay;\nAlertDialogOverlay.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Overlay.displayName;\nconst AlertDialogContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c1 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(AlertDialogPortal, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(AlertDialogOverlay, {}, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 35,\n columnNumber: 5\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Content, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 36,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 34,\n columnNumber: 3\n }, undefined);\n});\n_c2 = AlertDialogContent;\nAlertDialogContent.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Content.displayName;\nconst AlertDialogHeader = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex flex-col space-y-2 text-center sm:text-left\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 52,\n columnNumber: 3\n }, undefined);\n};\n_c3 = AlertDialogHeader;\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\nconst AlertDialogFooter = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 66,\n columnNumber: 3\n }, undefined);\n};\n_c4 = AlertDialogFooter;\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\nconst AlertDialogTitle = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c5 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Title, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-lg font-semibold\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 80,\n columnNumber: 3\n }, undefined);\n});\n_c6 = AlertDialogTitle;\nAlertDialogTitle.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Title.displayName;\nconst AlertDialogDescription = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c7 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Description, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-sm text-muted-foreground\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 92,\n columnNumber: 3\n }, undefined);\n});\n_c8 = AlertDialogDescription;\nAlertDialogDescription.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Description.displayName;\nconst AlertDialogAction = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c9 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Action, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)((0,_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.buttonVariants)(), className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 105,\n columnNumber: 3\n }, undefined);\n});\n_c10 = AlertDialogAction;\nAlertDialogAction.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Action.displayName;\nconst AlertDialogCancel = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c11 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Cancel, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)((0,_components_ui_button__WEBPACK_IMPORTED_MODULE_3__.buttonVariants)({\n variant: \"outline\"\n }), \"mt-2 sm:mt-0\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert-dialog.tsx\",\n lineNumber: 117,\n columnNumber: 3\n }, undefined);\n});\n_c12 = AlertDialogCancel;\nAlertDialogCancel.displayName = _radix_ui_react_alert_dialog__WEBPACK_IMPORTED_MODULE_4__.Cancel.displayName;\n\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12;\n$RefreshReg$(_c, \"AlertDialogOverlay\");\n$RefreshReg$(_c1, \"AlertDialogContent$React.forwardRef\");\n$RefreshReg$(_c2, \"AlertDialogContent\");\n$RefreshReg$(_c3, \"AlertDialogHeader\");\n$RefreshReg$(_c4, \"AlertDialogFooter\");\n$RefreshReg$(_c5, \"AlertDialogTitle$React.forwardRef\");\n$RefreshReg$(_c6, \"AlertDialogTitle\");\n$RefreshReg$(_c7, \"AlertDialogDescription$React.forwardRef\");\n$RefreshReg$(_c8, \"AlertDialogDescription\");\n$RefreshReg$(_c9, \"AlertDialogAction$React.forwardRef\");\n$RefreshReg$(_c10, \"AlertDialogAction\");\n$RefreshReg$(_c11, \"AlertDialogCancel$React.forwardRef\");\n$RefreshReg$(_c12, \"AlertDialogCancel\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvYWxlcnQtZGlhbG9nLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFOEI7QUFDc0M7QUFFcEM7QUFDdUI7QUFFdkQsTUFBTUksY0FBY0gsOERBQXlCO0FBRTdDLE1BQU1LLHFCQUFxQkwsaUVBQTRCO0FBRXZELE1BQU1PLG9CQUFvQlAsZ0VBQTJCO0FBRXJELE1BQU1TLG1DQUFxQlYsNkNBQWdCLENBR3pDLFFBQTBCWTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNiLGlFQUE0QjtRQUMzQlksV0FBV1gsOENBQUVBLENBQ1gsMkpBQ0FXO1FBRUQsR0FBR0MsS0FBSztRQUNURixLQUFLQTs7Ozs7OztLQVZIRjtBQWFOQSxtQkFBbUJNLFdBQVcsR0FBR2YsaUVBQTRCLENBQUNlLFdBQVc7QUFFekUsTUFBTUMsbUNBQXFCakIsNkNBQWdCLE9BR3pDLFFBQTBCWTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNOOzswQkFDQyw4REFBQ0U7Ozs7OzBCQUNELDhEQUFDVCxpRUFBNEI7Z0JBQzNCVyxLQUFLQTtnQkFDTEMsV0FBV1gsOENBQUVBLENBQ1gsK2ZBQ0FXO2dCQUVELEdBQUdDLEtBQUs7Ozs7Ozs7Ozs7Ozs7O0FBSWZHLG1CQUFtQkQsV0FBVyxHQUFHZixpRUFBNEIsQ0FBQ2UsV0FBVztBQUV6RSxNQUFNRyxvQkFBb0I7UUFBQyxFQUN6Qk4sU0FBUyxFQUNULEdBQUdDLE9BQ2tDO3lCQUNyQyw4REFBQ007UUFDQ1AsV0FBV1gsOENBQUVBLENBQ1gsb0RBQ0FXO1FBRUQsR0FBR0MsS0FBSzs7Ozs7OztNQVRQSztBQVlOQSxrQkFBa0JILFdBQVcsR0FBRztBQUVoQyxNQUFNSyxvQkFBb0I7UUFBQyxFQUN6QlIsU0FBUyxFQUNULEdBQUdDLE9BQ2tDO3lCQUNyQyw4REFBQ007UUFDQ1AsV0FBV1gsOENBQUVBLENBQ1gsaUVBQ0FXO1FBRUQsR0FBR0MsS0FBSzs7Ozs7OztNQVRQTztBQVlOQSxrQkFBa0JMLFdBQVcsR0FBRztBQUVoQyxNQUFNTSxpQ0FBbUJ0Qiw2Q0FBZ0IsT0FHdkMsUUFBMEJZO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ2IsK0RBQTBCO1FBQ3pCVyxLQUFLQTtRQUNMQyxXQUFXWCw4Q0FBRUEsQ0FBQyx5QkFBeUJXO1FBQ3RDLEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JRLGlCQUFpQk4sV0FBVyxHQUFHZiwrREFBMEIsQ0FBQ2UsV0FBVztBQUVyRSxNQUFNUSx1Q0FBeUJ4Qiw2Q0FBZ0IsT0FHN0MsUUFBMEJZO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ2IscUVBQWdDO1FBQy9CVyxLQUFLQTtRQUNMQyxXQUFXWCw4Q0FBRUEsQ0FBQyxpQ0FBaUNXO1FBQzlDLEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JVLHVCQUF1QlIsV0FBVyxHQUNoQ2YscUVBQWdDLENBQUNlLFdBQVc7QUFFOUMsTUFBTVUsa0NBQW9CMUIsNkNBQWdCLE9BR3hDLFFBQTBCWTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNiLGdFQUEyQjtRQUMxQlcsS0FBS0E7UUFDTEMsV0FBV1gsOENBQUVBLENBQUNDLHFFQUFjQSxJQUFJVTtRQUMvQixHQUFHQyxLQUFLOzs7Ozs7OztBQUdiWSxrQkFBa0JWLFdBQVcsR0FBR2YsZ0VBQTJCLENBQUNlLFdBQVc7QUFFdkUsTUFBTVksa0NBQW9CNUIsNkNBQWdCLFFBR3hDLFFBQTBCWTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNiLGdFQUEyQjtRQUMxQlcsS0FBS0E7UUFDTEMsV0FBV1gsOENBQUVBLENBQ1hDLHFFQUFjQSxDQUFDO1lBQUUyQixTQUFTO1FBQVUsSUFDcEMsZ0JBQ0FqQjtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JjLGtCQUFrQlosV0FBVyxHQUFHZixnRUFBMkIsQ0FBQ2UsV0FBVztBQWN0RSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9jb21wb25lbnRzL3VpL2FsZXJ0LWRpYWxvZy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCAqIGFzIEFsZXJ0RGlhbG9nUHJpbWl0aXZlIGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtYWxlcnQtZGlhbG9nXCJcblxuaW1wb3J0IHsgY24gfSBmcm9tIFwiQC9saWIvdXRpbHNcIlxuaW1wb3J0IHsgYnV0dG9uVmFyaWFudHMgfSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL2J1dHRvblwiXG5cbmNvbnN0IEFsZXJ0RGlhbG9nID0gQWxlcnREaWFsb2dQcmltaXRpdmUuUm9vdFxuXG5jb25zdCBBbGVydERpYWxvZ1RyaWdnZXIgPSBBbGVydERpYWxvZ1ByaW1pdGl2ZS5UcmlnZ2VyXG5cbmNvbnN0IEFsZXJ0RGlhbG9nUG9ydGFsID0gQWxlcnREaWFsb2dQcmltaXRpdmUuUG9ydGFsXG5cbmNvbnN0IEFsZXJ0RGlhbG9nT3ZlcmxheSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLk92ZXJsYXk+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLk92ZXJsYXk+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxBbGVydERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiZml4ZWQgaW5zZXQtMCB6LTUwIGJnLWJsYWNrLzgwICBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gICAgcmVmPXtyZWZ9XG4gIC8+XG4pKVxuQWxlcnREaWFsb2dPdmVybGF5LmRpc3BsYXlOYW1lID0gQWxlcnREaWFsb2dQcmltaXRpdmUuT3ZlcmxheS5kaXNwbGF5TmFtZVxuXG5jb25zdCBBbGVydERpYWxvZ0NvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBBbGVydERpYWxvZ1ByaW1pdGl2ZS5Db250ZW50PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBBbGVydERpYWxvZ1ByaW1pdGl2ZS5Db250ZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8QWxlcnREaWFsb2dQb3J0YWw+XG4gICAgPEFsZXJ0RGlhbG9nT3ZlcmxheSAvPlxuICAgIDxBbGVydERpYWxvZ1ByaW1pdGl2ZS5Db250ZW50XG4gICAgICByZWY9e3JlZn1cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIFwiZml4ZWQgbGVmdC1bNTAlXSB0b3AtWzUwJV0gei01MCBncmlkIHctZnVsbCBtYXgtdy1sZyB0cmFuc2xhdGUteC1bLTUwJV0gdHJhbnNsYXRlLXktWy01MCVdIGdhcC00IGJvcmRlciBiZy1iYWNrZ3JvdW5kIHAtNiBzaGFkb3ctbGcgZHVyYXRpb24tMjAwIGRhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1jbG9zZWRdOmZhZGUtb3V0LTAgZGF0YS1bc3RhdGU9b3Blbl06ZmFkZS1pbi0wIGRhdGEtW3N0YXRlPWNsb3NlZF06em9vbS1vdXQtOTUgZGF0YS1bc3RhdGU9b3Blbl06em9vbS1pbi05NSBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by1sZWZ0LTEvMiBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by10b3AtWzQ4JV0gZGF0YS1bc3RhdGU9b3Blbl06c2xpZGUtaW4tZnJvbS1sZWZ0LTEvMiBkYXRhLVtzdGF0ZT1vcGVuXTpzbGlkZS1pbi1mcm9tLXRvcC1bNDglXSBzbTpyb3VuZGVkLWxnXCIsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICA8L0FsZXJ0RGlhbG9nUG9ydGFsPlxuKSlcbkFsZXJ0RGlhbG9nQ29udGVudC5kaXNwbGF5TmFtZSA9IEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkNvbnRlbnQuZGlzcGxheU5hbWVcblxuY29uc3QgQWxlcnREaWFsb2dIZWFkZXIgPSAoe1xuICBjbGFzc05hbWUsXG4gIC4uLnByb3BzXG59OiBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4pID0+IChcbiAgPGRpdlxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcImZsZXggZmxleC1jb2wgc3BhY2UteS0yIHRleHQtY2VudGVyIHNtOnRleHQtbGVmdFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pXG5BbGVydERpYWxvZ0hlYWRlci5kaXNwbGF5TmFtZSA9IFwiQWxlcnREaWFsb2dIZWFkZXJcIlxuXG5jb25zdCBBbGVydERpYWxvZ0Zvb3RlciA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PikgPT4gKFxuICA8ZGl2XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiZmxleCBmbGV4LWNvbC1yZXZlcnNlIHNtOmZsZXgtcm93IHNtOmp1c3RpZnktZW5kIHNtOnNwYWNlLXgtMlwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pXG5BbGVydERpYWxvZ0Zvb3Rlci5kaXNwbGF5TmFtZSA9IFwiQWxlcnREaWFsb2dGb290ZXJcIlxuXG5jb25zdCBBbGVydERpYWxvZ1RpdGxlID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgQWxlcnREaWFsb2dQcmltaXRpdmUuVGl0bGU+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLlRpdGxlPlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8QWxlcnREaWFsb2dQcmltaXRpdmUuVGl0bGVcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFwidGV4dC1sZyBmb250LXNlbWlib2xkXCIsIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkFsZXJ0RGlhbG9nVGl0bGUuZGlzcGxheU5hbWUgPSBBbGVydERpYWxvZ1ByaW1pdGl2ZS5UaXRsZS5kaXNwbGF5TmFtZVxuXG5jb25zdCBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgQWxlcnREaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb24+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkRlc2NyaXB0aW9uPlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8QWxlcnREaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb25cbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIiwgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQWxlcnREaWFsb2dEZXNjcmlwdGlvbi5kaXNwbGF5TmFtZSA9XG4gIEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkRlc2NyaXB0aW9uLmRpc3BsYXlOYW1lXG5cbmNvbnN0IEFsZXJ0RGlhbG9nQWN0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgQWxlcnREaWFsb2dQcmltaXRpdmUuQWN0aW9uPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBBbGVydERpYWxvZ1ByaW1pdGl2ZS5BY3Rpb24+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxBbGVydERpYWxvZ1ByaW1pdGl2ZS5BY3Rpb25cbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKGJ1dHRvblZhcmlhbnRzKCksIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkFsZXJ0RGlhbG9nQWN0aW9uLmRpc3BsYXlOYW1lID0gQWxlcnREaWFsb2dQcmltaXRpdmUuQWN0aW9uLmRpc3BsYXlOYW1lXG5cbmNvbnN0IEFsZXJ0RGlhbG9nQ2FuY2VsID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgQWxlcnREaWFsb2dQcmltaXRpdmUuQ2FuY2VsPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBBbGVydERpYWxvZ1ByaW1pdGl2ZS5DYW5jZWw+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxBbGVydERpYWxvZ1ByaW1pdGl2ZS5DYW5jZWxcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgYnV0dG9uVmFyaWFudHMoeyB2YXJpYW50OiBcIm91dGxpbmVcIiB9KSxcbiAgICAgIFwibXQtMiBzbTptdC0wXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5BbGVydERpYWxvZ0NhbmNlbC5kaXNwbGF5TmFtZSA9IEFsZXJ0RGlhbG9nUHJpbWl0aXZlLkNhbmNlbC5kaXNwbGF5TmFtZVxuXG5leHBvcnQge1xuICBBbGVydERpYWxvZyxcbiAgQWxlcnREaWFsb2dQb3J0YWwsXG4gIEFsZXJ0RGlhbG9nT3ZlcmxheSxcbiAgQWxlcnREaWFsb2dUcmlnZ2VyLFxuICBBbGVydERpYWxvZ0NvbnRlbnQsXG4gIEFsZXJ0RGlhbG9nSGVhZGVyLFxuICBBbGVydERpYWxvZ0Zvb3RlcixcbiAgQWxlcnREaWFsb2dUaXRsZSxcbiAgQWxlcnREaWFsb2dEZXNjcmlwdGlvbixcbiAgQWxlcnREaWFsb2dBY3Rpb24sXG4gIEFsZXJ0RGlhbG9nQ2FuY2VsLFxufVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiQWxlcnREaWFsb2dQcmltaXRpdmUiLCJjbiIsImJ1dHRvblZhcmlhbnRzIiwiQWxlcnREaWFsb2ciLCJSb290IiwiQWxlcnREaWFsb2dUcmlnZ2VyIiwiVHJpZ2dlciIsIkFsZXJ0RGlhbG9nUG9ydGFsIiwiUG9ydGFsIiwiQWxlcnREaWFsb2dPdmVybGF5IiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsInByb3BzIiwiT3ZlcmxheSIsImRpc3BsYXlOYW1lIiwiQWxlcnREaWFsb2dDb250ZW50IiwiQ29udGVudCIsIkFsZXJ0RGlhbG9nSGVhZGVyIiwiZGl2IiwiQWxlcnREaWFsb2dGb290ZXIiLCJBbGVydERpYWxvZ1RpdGxlIiwiVGl0bGUiLCJBbGVydERpYWxvZ0Rlc2NyaXB0aW9uIiwiRGVzY3JpcHRpb24iLCJBbGVydERpYWxvZ0FjdGlvbiIsIkFjdGlvbiIsIkFsZXJ0RGlhbG9nQ2FuY2VsIiwiQ2FuY2VsIiwidmFyaWFudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/alert-dialog.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/ui/alert.tsx":
/*!*********************************!*\
!*** ./components/ui/alert.tsx ***!
\*********************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Alert: () => (/* binding */ Alert),\n/* harmony export */ AlertDescription: () => (/* binding */ AlertDescription),\n/* harmony export */ AlertTitle: () => (/* binding */ AlertTitle)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var class_variance_authority__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! class-variance-authority */ \"(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\n\n\nconst alertVariants = (0,class_variance_authority__WEBPACK_IMPORTED_MODULE_2__.cva)(\"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground\", {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive: \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\"\n }\n },\n defaultVariants: {\n variant: \"default\"\n }\n});\nconst Alert = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, variant, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n role: \"alert\",\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(alertVariants({\n variant\n }), className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert.tsx\",\n lineNumber: 26,\n columnNumber: 3\n }, undefined);\n});\n_c1 = Alert;\nAlert.displayName = \"Alert\";\nconst AlertTitle = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c2 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h5\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(\"mb-1 font-medium leading-none tracking-tight\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert.tsx\",\n lineNumber: 39,\n columnNumber: 3\n }, undefined);\n});\n_c3 = AlertTitle;\nAlertTitle.displayName = \"AlertTitle\";\nconst AlertDescription = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c4 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(\"text-sm [&_p]:leading-relaxed\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/alert.tsx\",\n lineNumber: 51,\n columnNumber: 3\n }, undefined);\n});\n_c5 = AlertDescription;\nAlertDescription.displayName = \"AlertDescription\";\n\nvar _c, _c1, _c2, _c3, _c4, _c5;\n$RefreshReg$(_c, \"Alert$React.forwardRef\");\n$RefreshReg$(_c1, \"Alert\");\n$RefreshReg$(_c2, \"AlertTitle$React.forwardRef\");\n$RefreshReg$(_c3, \"AlertTitle\");\n$RefreshReg$(_c4, \"AlertDescription$React.forwardRef\");\n$RefreshReg$(_c5, \"AlertDescription\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvYWxlcnQudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUE4QjtBQUNtQztBQUVqQztBQUVoQyxNQUFNRyxnQkFBZ0JGLDZEQUFHQSxDQUN2Qiw2SkFDQTtJQUNFRyxVQUFVO1FBQ1JDLFNBQVM7WUFDUEMsU0FBUztZQUNUQyxhQUNFO1FBQ0o7SUFDRjtJQUNBQyxpQkFBaUI7UUFDZkgsU0FBUztJQUNYO0FBQ0Y7QUFHRixNQUFNSSxzQkFBUVQsNkNBQWdCLE1BRzVCLFFBQW1DVztRQUFsQyxFQUFFQyxTQUFTLEVBQUVQLE9BQU8sRUFBRSxHQUFHUSxPQUFPO3lCQUNqQyw4REFBQ0M7UUFDQ0gsS0FBS0E7UUFDTEksTUFBSztRQUNMSCxXQUFXViw4Q0FBRUEsQ0FBQ0MsY0FBYztZQUFFRTtRQUFRLElBQUlPO1FBQ3pDLEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JKLE1BQU1PLFdBQVcsR0FBRztBQUVwQixNQUFNQywyQkFBYWpCLDZDQUFnQixPQUdqQyxRQUEwQlc7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDSztRQUNDUCxLQUFLQTtRQUNMQyxXQUFXViw4Q0FBRUEsQ0FBQyxnREFBZ0RVO1FBQzdELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JJLFdBQVdELFdBQVcsR0FBRztBQUV6QixNQUFNRyxpQ0FBbUJuQiw2Q0FBZ0IsT0FHdkMsUUFBMEJXO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ0M7UUFDQ0gsS0FBS0E7UUFDTEMsV0FBV1YsOENBQUVBLENBQUMsaUNBQWlDVTtRQUM5QyxHQUFHQyxLQUFLOzs7Ozs7OztBQUdiTSxpQkFBaUJILFdBQVcsR0FBRztBQUVlIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvdWkvYWxlcnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSBcImNsYXNzLXZhcmlhbmNlLWF1dGhvcml0eVwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgYWxlcnRWYXJpYW50cyA9IGN2YShcbiAgXCJyZWxhdGl2ZSB3LWZ1bGwgcm91bmRlZC1sZyBib3JkZXIgcC00IFsmPnN2Z34qXTpwbC03IFsmPnN2ZytkaXZdOnRyYW5zbGF0ZS15LVstM3B4XSBbJj5zdmddOmFic29sdXRlIFsmPnN2Z106bGVmdC00IFsmPnN2Z106dG9wLTQgWyY+c3ZnXTp0ZXh0LWZvcmVncm91bmRcIixcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiB7XG4gICAgICAgIGRlZmF1bHQ6IFwiYmctYmFja2dyb3VuZCB0ZXh0LWZvcmVncm91bmRcIixcbiAgICAgICAgZGVzdHJ1Y3RpdmU6XG4gICAgICAgICAgXCJib3JkZXItZGVzdHJ1Y3RpdmUvNTAgdGV4dC1kZXN0cnVjdGl2ZSBkYXJrOmJvcmRlci1kZXN0cnVjdGl2ZSBbJj5zdmddOnRleHQtZGVzdHJ1Y3RpdmVcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHtcbiAgICAgIHZhcmlhbnQ6IFwiZGVmYXVsdFwiLFxuICAgIH0sXG4gIH1cbilcblxuY29uc3QgQWxlcnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCxcbiAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+ICYgVmFyaWFudFByb3BzPHR5cGVvZiBhbGVydFZhcmlhbnRzPlxuPigoeyBjbGFzc05hbWUsIHZhcmlhbnQsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8ZGl2XG4gICAgcmVmPXtyZWZ9XG4gICAgcm9sZT1cImFsZXJ0XCJcbiAgICBjbGFzc05hbWU9e2NuKGFsZXJ0VmFyaWFudHMoeyB2YXJpYW50IH0pLCBjbGFzc05hbWUpfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5BbGVydC5kaXNwbGF5TmFtZSA9IFwiQWxlcnRcIlxuXG5jb25zdCBBbGVydFRpdGxlID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTFBhcmFncmFwaEVsZW1lbnQsXG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxIZWFkaW5nRWxlbWVudD5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPGg1XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcIm1iLTEgZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRyYWNraW5nLXRpZ2h0XCIsIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkFsZXJ0VGl0bGUuZGlzcGxheU5hbWUgPSBcIkFsZXJ0VGl0bGVcIlxuXG5jb25zdCBBbGVydERlc2NyaXB0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTFBhcmFncmFwaEVsZW1lbnQsXG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxQYXJhZ3JhcGhFbGVtZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8ZGl2XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcInRleHQtc20gWyZfcF06bGVhZGluZy1yZWxheGVkXCIsIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkFsZXJ0RGVzY3JpcHRpb24uZGlzcGxheU5hbWUgPSBcIkFsZXJ0RGVzY3JpcHRpb25cIlxuXG5leHBvcnQgeyBBbGVydCwgQWxlcnRUaXRsZSwgQWxlcnREZXNjcmlwdGlvbiB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJjdmEiLCJjbiIsImFsZXJ0VmFyaWFudHMiLCJ2YXJpYW50cyIsInZhcmlhbnQiLCJkZWZhdWx0IiwiZGVzdHJ1Y3RpdmUiLCJkZWZhdWx0VmFyaWFudHMiLCJBbGVydCIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJwcm9wcyIsImRpdiIsInJvbGUiLCJkaXNwbGF5TmFtZSIsIkFsZXJ0VGl0bGUiLCJoNSIsIkFsZXJ0RGVzY3JpcHRpb24iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/alert.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/ui/avatar.tsx":
/*!**********************************!*\
!*** ./components/ui/avatar.tsx ***!
\**********************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Avatar: () => (/* binding */ Avatar),\n/* harmony export */ AvatarFallback: () => (/* binding */ AvatarFallback),\n/* harmony export */ AvatarImage: () => (/* binding */ AvatarImage)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-avatar */ \"(app-pages-browser)/./node_modules/@radix-ui/react-avatar/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Avatar,AvatarImage,AvatarFallback auto */ \n\n\n\nconst Avatar = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/avatar.tsx\",\n lineNumber: 12,\n columnNumber: 3\n }, undefined);\n});\n_c1 = Avatar;\nAvatar.displayName = _radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Root.displayName;\nconst AvatarImage = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c2 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Image, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"aspect-square h-full w-full\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/avatar.tsx\",\n lineNumber: 27,\n columnNumber: 3\n }, undefined);\n});\n_c3 = AvatarImage;\nAvatarImage.displayName = _radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Image.displayName;\nconst AvatarFallback = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c4 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Fallback, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex h-full w-full items-center justify-center rounded-full bg-muted\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/avatar.tsx\",\n lineNumber: 39,\n columnNumber: 3\n }, undefined);\n});\n_c5 = AvatarFallback;\nAvatarFallback.displayName = _radix_ui_react_avatar__WEBPACK_IMPORTED_MODULE_3__.Fallback.displayName;\n\nvar _c, _c1, _c2, _c3, _c4, _c5;\n$RefreshReg$(_c, \"Avatar$React.forwardRef\");\n$RefreshReg$(_c1, \"Avatar\");\n$RefreshReg$(_c2, \"AvatarImage$React.forwardRef\");\n$RefreshReg$(_c3, \"AvatarImage\");\n$RefreshReg$(_c4, \"AvatarFallback$React.forwardRef\");\n$RefreshReg$(_c5, \"AvatarFallback\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvYXZhdGFyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFFOEI7QUFDMkI7QUFFekI7QUFFaEMsTUFBTUcsdUJBQVNILDZDQUFnQixNQUc3QixRQUEwQks7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDTix3REFBb0I7UUFDbkJJLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUNYLGlFQUNBSTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JKLE9BQU9NLFdBQVcsR0FBR1Isd0RBQW9CLENBQUNRLFdBQVc7QUFFckQsTUFBTUMsNEJBQWNWLDZDQUFnQixPQUdsQyxRQUEwQks7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDTix5REFBcUI7UUFDcEJJLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUFDLCtCQUErQkk7UUFDNUMsR0FBR0MsS0FBSzs7Ozs7Ozs7QUFHYkcsWUFBWUQsV0FBVyxHQUFHUix5REFBcUIsQ0FBQ1EsV0FBVztBQUUzRCxNQUFNRywrQkFBaUJaLDZDQUFnQixPQUdyQyxRQUEwQks7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDTiw0REFBd0I7UUFDdkJJLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUNYLHdFQUNBSTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JLLGVBQWVILFdBQVcsR0FBR1IsNERBQXdCLENBQUNRLFdBQVc7QUFFbkIiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvY29tcG9uZW50cy91aS9hdmF0YXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgKiBhcyBBdmF0YXJQcmltaXRpdmUgZnJvbSBcIkByYWRpeC11aS9yZWFjdC1hdmF0YXJcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IEF2YXRhciA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIEF2YXRhclByaW1pdGl2ZS5Sb290PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBBdmF0YXJQcmltaXRpdmUuUm9vdD5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPEF2YXRhclByaW1pdGl2ZS5Sb290XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwicmVsYXRpdmUgZmxleCBoLTEwIHctMTAgc2hyaW5rLTAgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtZnVsbFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQXZhdGFyLmRpc3BsYXlOYW1lID0gQXZhdGFyUHJpbWl0aXZlLlJvb3QuZGlzcGxheU5hbWVcblxuY29uc3QgQXZhdGFySW1hZ2UgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBBdmF0YXJQcmltaXRpdmUuSW1hZ2U+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEF2YXRhclByaW1pdGl2ZS5JbWFnZT5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPEF2YXRhclByaW1pdGl2ZS5JbWFnZVxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXCJhc3BlY3Qtc3F1YXJlIGgtZnVsbCB3LWZ1bGxcIiwgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuQXZhdGFySW1hZ2UuZGlzcGxheU5hbWUgPSBBdmF0YXJQcmltaXRpdmUuSW1hZ2UuZGlzcGxheU5hbWVcblxuY29uc3QgQXZhdGFyRmFsbGJhY2sgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBBdmF0YXJQcmltaXRpdmUuRmFsbGJhY2s+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEF2YXRhclByaW1pdGl2ZS5GYWxsYmFjaz5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPEF2YXRhclByaW1pdGl2ZS5GYWxsYmFja1xuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcImZsZXggaC1mdWxsIHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJnLW11dGVkXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5BdmF0YXJGYWxsYmFjay5kaXNwbGF5TmFtZSA9IEF2YXRhclByaW1pdGl2ZS5GYWxsYmFjay5kaXNwbGF5TmFtZVxuXG5leHBvcnQgeyBBdmF0YXIsIEF2YXRhckltYWdlLCBBdmF0YXJGYWxsYmFjayB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJBdmF0YXJQcmltaXRpdmUiLCJjbiIsIkF2YXRhciIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJwcm9wcyIsIlJvb3QiLCJkaXNwbGF5TmFtZSIsIkF2YXRhckltYWdlIiwiSW1hZ2UiLCJBdmF0YXJGYWxsYmFjayIsIkZhbGxiYWNrIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/avatar.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/ui/button.tsx":
/*!**********************************!*\
!*** ./components/ui/button.tsx ***!
\**********************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Button: () => (/* binding */ Button),\n/* harmony export */ buttonVariants: () => (/* binding */ buttonVariants)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var class_variance_authority__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! class-variance-authority */ \"(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\n\n\n\nconst buttonVariants = (0,class_variance_authority__WEBPACK_IMPORTED_MODULE_2__.cva)(\"inline-flex items-center justify-center gap-2 whitespace-nowrap 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 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\", {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\"\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n});\nconst Button = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, variant, size, asChild = false, ...props } = param;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__.Slot : \"button\";\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Comp, {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(buttonVariants({\n variant,\n size,\n className\n })),\n ref: ref,\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/button.tsx\",\n lineNumber: 46,\n columnNumber: 7\n }, undefined);\n});\n_c1 = Button;\nButton.displayName = \"Button\";\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Button$React.forwardRef\");\n$RefreshReg$(_c1, \"Button\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvYnV0dG9uLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBOEI7QUFDYTtBQUNzQjtBQUVqQztBQUVoQyxNQUFNSSxpQkFBaUJGLDZEQUFHQSxDQUN4Qiw0VkFDQTtJQUNFRyxVQUFVO1FBQ1JDLFNBQVM7WUFDUEMsU0FBUztZQUNUQyxhQUNFO1lBQ0ZDLFNBQ0U7WUFDRkMsV0FDRTtZQUNGQyxPQUFPO1lBQ1BDLE1BQU07UUFDUjtRQUNBQyxNQUFNO1lBQ0pOLFNBQVM7WUFDVE8sSUFBSTtZQUNKQyxJQUFJO1lBQ0pDLE1BQU07UUFDUjtJQUNGO0lBQ0FDLGlCQUFpQjtRQUNmWCxTQUFTO1FBQ1RPLE1BQU07SUFDUjtBQUNGO0FBU0YsTUFBTUssdUJBQVNsQiw2Q0FBZ0IsTUFDN0IsUUFBMERvQjtRQUF6RCxFQUFFQyxTQUFTLEVBQUVmLE9BQU8sRUFBRU8sSUFBSSxFQUFFUyxVQUFVLEtBQUssRUFBRSxHQUFHQyxPQUFPO0lBQ3RELE1BQU1DLE9BQU9GLFVBQVVyQixzREFBSUEsR0FBRztJQUM5QixxQkFDRSw4REFBQ3VCO1FBQ0NILFdBQVdsQiw4Q0FBRUEsQ0FBQ0MsZUFBZTtZQUFFRTtZQUFTTztZQUFNUTtRQUFVO1FBQ3hERCxLQUFLQTtRQUNKLEdBQUdHLEtBQUs7Ozs7OztBQUdmOztBQUVGTCxPQUFPTyxXQUFXLEdBQUc7QUFFWSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9jb21wb25lbnRzL3VpL2J1dHRvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IFNsb3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXNsb3RcIlxuaW1wb3J0IHsgY3ZhLCB0eXBlIFZhcmlhbnRQcm9wcyB9IGZyb20gXCJjbGFzcy12YXJpYW5jZS1hdXRob3JpdHlcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IGJ1dHRvblZhcmlhbnRzID0gY3ZhKFxuICBcImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMiB3aGl0ZXNwYWNlLW5vd3JhcCByb3VuZGVkLW1kIHRleHQtc20gZm9udC1tZWRpdW0gcmluZy1vZmZzZXQtYmFja2dyb3VuZCB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZyBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LTIgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwIFsmX3N2Z106cG9pbnRlci1ldmVudHMtbm9uZSBbJl9zdmddOnNpemUtNCBbJl9zdmddOnNocmluay0wXCIsXG4gIHtcbiAgICB2YXJpYW50czoge1xuICAgICAgdmFyaWFudDoge1xuICAgICAgICBkZWZhdWx0OiBcImJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgaG92ZXI6YmctcHJpbWFyeS85MFwiLFxuICAgICAgICBkZXN0cnVjdGl2ZTpcbiAgICAgICAgICBcImJnLWRlc3RydWN0aXZlIHRleHQtZGVzdHJ1Y3RpdmUtZm9yZWdyb3VuZCBob3ZlcjpiZy1kZXN0cnVjdGl2ZS85MFwiLFxuICAgICAgICBvdXRsaW5lOlxuICAgICAgICAgIFwiYm9yZGVyIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIGhvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kXCIsXG4gICAgICAgIHNlY29uZGFyeTpcbiAgICAgICAgICBcImJnLXNlY29uZGFyeSB0ZXh0LXNlY29uZGFyeS1mb3JlZ3JvdW5kIGhvdmVyOmJnLXNlY29uZGFyeS84MFwiLFxuICAgICAgICBnaG9zdDogXCJob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZFwiLFxuICAgICAgICBsaW5rOiBcInRleHQtcHJpbWFyeSB1bmRlcmxpbmUtb2Zmc2V0LTQgaG92ZXI6dW5kZXJsaW5lXCIsXG4gICAgICB9LFxuICAgICAgc2l6ZToge1xuICAgICAgICBkZWZhdWx0OiBcImgtMTAgcHgtNCBweS0yXCIsXG4gICAgICAgIHNtOiBcImgtOSByb3VuZGVkLW1kIHB4LTNcIixcbiAgICAgICAgbGc6IFwiaC0xMSByb3VuZGVkLW1kIHB4LThcIixcbiAgICAgICAgaWNvbjogXCJoLTEwIHctMTBcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHtcbiAgICAgIHZhcmlhbnQ6IFwiZGVmYXVsdFwiLFxuICAgICAgc2l6ZTogXCJkZWZhdWx0XCIsXG4gICAgfSxcbiAgfVxuKVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1dHRvblByb3BzXG4gIGV4dGVuZHMgUmVhY3QuQnV0dG9uSFRNTEF0dHJpYnV0ZXM8SFRNTEJ1dHRvbkVsZW1lbnQ+LFxuICAgIFZhcmlhbnRQcm9wczx0eXBlb2YgYnV0dG9uVmFyaWFudHM+IHtcbiAgYXNDaGlsZD86IGJvb2xlYW5cbn1cblxuY29uc3QgQnV0dG9uID0gUmVhY3QuZm9yd2FyZFJlZjxIVE1MQnV0dG9uRWxlbWVudCwgQnV0dG9uUHJvcHM+KFxuICAoeyBjbGFzc05hbWUsIHZhcmlhbnQsIHNpemUsIGFzQ2hpbGQgPSBmYWxzZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gICAgY29uc3QgQ29tcCA9IGFzQ2hpbGQgPyBTbG90IDogXCJidXR0b25cIlxuICAgIHJldHVybiAoXG4gICAgICA8Q29tcFxuICAgICAgICBjbGFzc05hbWU9e2NuKGJ1dHRvblZhcmlhbnRzKHsgdmFyaWFudCwgc2l6ZSwgY2xhc3NOYW1lIH0pKX1cbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgIC8+XG4gICAgKVxuICB9XG4pXG5CdXR0b24uZGlzcGxheU5hbWUgPSBcIkJ1dHRvblwiXG5cbmV4cG9ydCB7IEJ1dHRvbiwgYnV0dG9uVmFyaWFudHMgfVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU2xvdCIsImN2YSIsImNuIiwiYnV0dG9uVmFyaWFudHMiLCJ2YXJpYW50cyIsInZhcmlhbnQiLCJkZWZhdWx0IiwiZGVzdHJ1Y3RpdmUiLCJvdXRsaW5lIiwic2Vjb25kYXJ5IiwiZ2hvc3QiLCJsaW5rIiwic2l6ZSIsInNtIiwibGciLCJpY29uIiwiZGVmYXVsdFZhcmlhbnRzIiwiQnV0dG9uIiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsImFzQ2hpbGQiLCJwcm9wcyIsIkNvbXAiLCJkaXNwbGF5TmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/button.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/ui/checkbox.tsx":
/*!************************************!*\
!*** ./components/ui/checkbox.tsx ***!
\************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Checkbox: () => (/* binding */ Checkbox)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-checkbox */ \"(app-pages-browser)/./node_modules/@radix-ui/react-checkbox/dist/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_Check_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Check!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Checkbox auto */ \n\n\n\n\nconst Checkbox = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\", className),\n ...props,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__.Indicator, {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex items-center justify-center text-current\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/checkbox.tsx\",\n lineNumber: 24,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/checkbox.tsx\",\n lineNumber: 21,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/checkbox.tsx\",\n lineNumber: 13,\n columnNumber: 3\n }, undefined);\n});\n_c1 = Checkbox;\nCheckbox.displayName = _radix_ui_react_checkbox__WEBPACK_IMPORTED_MODULE_3__.Root.displayName;\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Checkbox$React.forwardRef\");\n$RefreshReg$(_c1, \"Checkbox\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvY2hlY2tib3gudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRThCO0FBQytCO0FBQ3pCO0FBRUo7QUFFaEMsTUFBTUkseUJBQVdKLDZDQUFnQixNQUcvQixRQUEwQk07UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDUCwwREFBc0I7UUFDckJLLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUNYLGtUQUNBSTtRQUVELEdBQUdDLEtBQUs7a0JBRVQsNEVBQUNQLCtEQUEyQjtZQUMxQk0sV0FBV0osOENBQUVBLENBQUM7c0JBRWQsNEVBQUNELGlGQUFLQTtnQkFBQ0ssV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSXZCSCxTQUFTTyxXQUFXLEdBQUdWLDBEQUFzQixDQUFDVSxXQUFXO0FBRXRDIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvdWkvY2hlY2tib3gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgKiBhcyBDaGVja2JveFByaW1pdGl2ZSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNoZWNrYm94XCJcbmltcG9ydCB7IENoZWNrIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgQ2hlY2tib3ggPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBDaGVja2JveFByaW1pdGl2ZS5Sb290PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBDaGVja2JveFByaW1pdGl2ZS5Sb290PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8Q2hlY2tib3hQcmltaXRpdmUuUm9vdFxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcInBlZXIgaC00IHctNCBzaHJpbmstMCByb3VuZGVkLXNtIGJvcmRlciBib3JkZXItcHJpbWFyeSByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMiBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MCBkYXRhLVtzdGF0ZT1jaGVja2VkXTpiZy1wcmltYXJ5IGRhdGEtW3N0YXRlPWNoZWNrZWRdOnRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgPlxuICAgIDxDaGVja2JveFByaW1pdGl2ZS5JbmRpY2F0b3JcbiAgICAgIGNsYXNzTmFtZT17Y24oXCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LWN1cnJlbnRcIil9XG4gICAgPlxuICAgICAgPENoZWNrIGNsYXNzTmFtZT1cImgtNCB3LTRcIiAvPlxuICAgIDwvQ2hlY2tib3hQcmltaXRpdmUuSW5kaWNhdG9yPlxuICA8L0NoZWNrYm94UHJpbWl0aXZlLlJvb3Q+XG4pKVxuQ2hlY2tib3guZGlzcGxheU5hbWUgPSBDaGVja2JveFByaW1pdGl2ZS5Sb290LmRpc3BsYXlOYW1lXG5cbmV4cG9ydCB7IENoZWNrYm94IH1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkNoZWNrYm94UHJpbWl0aXZlIiwiQ2hlY2siLCJjbiIsIkNoZWNrYm94IiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsInByb3BzIiwiUm9vdCIsIkluZGljYXRvciIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/checkbox.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/ui/dialog.tsx":
/*!**********************************!*\
!*** ./components/ui/dialog.tsx ***!
\**********************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Dialog: () => (/* binding */ Dialog),\n/* harmony export */ DialogClose: () => (/* binding */ DialogClose),\n/* harmony export */ DialogContent: () => (/* binding */ DialogContent),\n/* harmony export */ DialogDescription: () => (/* binding */ DialogDescription),\n/* harmony export */ DialogFooter: () => (/* binding */ DialogFooter),\n/* harmony export */ DialogHeader: () => (/* binding */ DialogHeader),\n/* harmony export */ DialogOverlay: () => (/* binding */ DialogOverlay),\n/* harmony export */ DialogPortal: () => (/* binding */ DialogPortal),\n/* harmony export */ DialogTitle: () => (/* binding */ DialogTitle),\n/* harmony export */ DialogTrigger: () => (/* binding */ DialogTrigger)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-dialog */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dialog/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Dialog,DialogPortal,DialogOverlay,DialogClose,DialogTrigger,DialogContent,DialogHeader,DialogFooter,DialogTitle,DialogDescription auto */ \n\n\n\nconst Dialog = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Root;\nconst DialogTrigger = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Trigger;\nconst DialogPortal = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Portal;\nconst DialogClose = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Close;\nconst DialogOverlay = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Overlay, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 21,\n columnNumber: 3\n }, undefined);\n});\n_c = DialogOverlay;\nDialogOverlay.displayName = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Overlay.displayName;\nconst DialogContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c1 = (param, ref)=>{\n let { className, children, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(DialogPortal, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(DialogOverlay, {}, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 37,\n columnNumber: 5\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Content, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\", className),\n ...props,\n children: children\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 38,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 36,\n columnNumber: 3\n }, undefined);\n});\n_c2 = DialogContent;\nDialogContent.displayName = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Content.displayName;\nconst DialogHeader = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex flex-col space-y-1.5 text-center sm:text-left\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 56,\n columnNumber: 3\n }, undefined);\n};\n_c3 = DialogHeader;\nDialogHeader.displayName = \"DialogHeader\";\nconst DialogFooter = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 70,\n columnNumber: 3\n }, undefined);\n};\n_c4 = DialogFooter;\nDialogFooter.displayName = \"DialogFooter\";\nconst DialogTitle = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c5 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Title, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-lg font-semibold leading-none tracking-tight\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 84,\n columnNumber: 3\n }, undefined);\n});\n_c6 = DialogTitle;\nDialogTitle.displayName = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Title.displayName;\nconst DialogDescription = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c7 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Description, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"text-sm text-muted-foreground\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dialog.tsx\",\n lineNumber: 99,\n columnNumber: 3\n }, undefined);\n});\n_c8 = DialogDescription;\nDialogDescription.displayName = _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Description.displayName;\n\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8;\n$RefreshReg$(_c, \"DialogOverlay\");\n$RefreshReg$(_c1, \"DialogContent$React.forwardRef\");\n$RefreshReg$(_c2, \"DialogContent\");\n$RefreshReg$(_c3, \"DialogHeader\");\n$RefreshReg$(_c4, \"DialogFooter\");\n$RefreshReg$(_c5, \"DialogTitle$React.forwardRef\");\n$RefreshReg$(_c6, \"DialogTitle\");\n$RefreshReg$(_c7, \"DialogDescription$React.forwardRef\");\n$RefreshReg$(_c8, \"DialogDescription\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvZGlhbG9nLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRThCO0FBQzJCO0FBR3pCO0FBRWhDLE1BQU1HLFNBQVNGLHdEQUFvQjtBQUVuQyxNQUFNSSxnQkFBZ0JKLDJEQUF1QjtBQUU3QyxNQUFNTSxlQUFlTiwwREFBc0I7QUFFM0MsTUFBTVEsY0FBY1IseURBQXFCO0FBRXpDLE1BQU1VLDhCQUFnQlgsNkNBQWdCLENBR3BDLFFBQTBCYTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNkLDJEQUF1QjtRQUN0QlksS0FBS0E7UUFDTEMsV0FBV1osOENBQUVBLENBQ1gsMkpBQ0FZO1FBRUQsR0FBR0MsS0FBSzs7Ozs7OztLQVZQSjtBQWFOQSxjQUFjTSxXQUFXLEdBQUdoQiwyREFBdUIsQ0FBQ2dCLFdBQVc7QUFFL0QsTUFBTUMsOEJBQWdCbEIsNkNBQWdCLE9BR3BDLFFBQW9DYTtRQUFuQyxFQUFFQyxTQUFTLEVBQUVLLFFBQVEsRUFBRSxHQUFHSixPQUFPO3lCQUNsQyw4REFBQ1I7OzBCQUNDLDhEQUFDSTs7Ozs7MEJBQ0QsOERBQUNWLDJEQUF1QjtnQkFDdEJZLEtBQUtBO2dCQUNMQyxXQUFXWiw4Q0FBRUEsQ0FDWCwwZkFDQVk7Z0JBRUQsR0FBR0MsS0FBSzswQkFFUkk7Ozs7Ozs7Ozs7Ozs7O0FBSVBELGNBQWNELFdBQVcsR0FBR2hCLDJEQUF1QixDQUFDZ0IsV0FBVztBQUUvRCxNQUFNSSxlQUFlO1FBQUMsRUFDcEJQLFNBQVMsRUFDVCxHQUFHQyxPQUNrQzt5QkFDckMsOERBQUNPO1FBQ0NSLFdBQVdaLDhDQUFFQSxDQUNYLHNEQUNBWTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7TUFUUE07QUFZTkEsYUFBYUosV0FBVyxHQUFHO0FBRTNCLE1BQU1NLGVBQWU7UUFBQyxFQUNwQlQsU0FBUyxFQUNULEdBQUdDLE9BQ2tDO3lCQUNyQyw4REFBQ087UUFDQ1IsV0FBV1osOENBQUVBLENBQ1gsaUVBQ0FZO1FBRUQsR0FBR0MsS0FBSzs7Ozs7OztNQVRQUTtBQVlOQSxhQUFhTixXQUFXLEdBQUc7QUFFM0IsTUFBTU8sNEJBQWN4Qiw2Q0FBZ0IsT0FHbEMsUUFBMEJhO1FBQXpCLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxPQUFPO3lCQUN4Qiw4REFBQ2QseURBQXFCO1FBQ3BCWSxLQUFLQTtRQUNMQyxXQUFXWiw4Q0FBRUEsQ0FDWCxxREFDQVk7UUFFRCxHQUFHQyxLQUFLOzs7Ozs7OztBQUdiUyxZQUFZUCxXQUFXLEdBQUdoQix5REFBcUIsQ0FBQ2dCLFdBQVc7QUFFM0QsTUFBTVMsa0NBQW9CMUIsNkNBQWdCLE9BR3hDLFFBQTBCYTtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNkLCtEQUEyQjtRQUMxQlksS0FBS0E7UUFDTEMsV0FBV1osOENBQUVBLENBQUMsaUNBQWlDWTtRQUM5QyxHQUFHQyxLQUFLOzs7Ozs7OztBQUdiVyxrQkFBa0JULFdBQVcsR0FBR2hCLCtEQUEyQixDQUFDZ0IsV0FBVztBQWF0RSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9jb21wb25lbnRzL3VpL2RpYWxvZy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCAqIGFzIERpYWxvZ1ByaW1pdGl2ZSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWRpYWxvZ1wiXG5pbXBvcnQgeyBYIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgRGlhbG9nID0gRGlhbG9nUHJpbWl0aXZlLlJvb3RcblxuY29uc3QgRGlhbG9nVHJpZ2dlciA9IERpYWxvZ1ByaW1pdGl2ZS5UcmlnZ2VyXG5cbmNvbnN0IERpYWxvZ1BvcnRhbCA9IERpYWxvZ1ByaW1pdGl2ZS5Qb3J0YWxcblxuY29uc3QgRGlhbG9nQ2xvc2UgPSBEaWFsb2dQcmltaXRpdmUuQ2xvc2VcblxuY29uc3QgRGlhbG9nT3ZlcmxheSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuT3ZlcmxheT5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiZml4ZWQgaW5zZXQtMCB6LTUwIGJnLWJsYWNrLzgwICBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuRGlhbG9nT3ZlcmxheS5kaXNwbGF5TmFtZSA9IERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5LmRpc3BsYXlOYW1lXG5cbmNvbnN0IERpYWxvZ0NvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuQ29udGVudD4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkNvbnRlbnQ+XG4+KCh7IGNsYXNzTmFtZSwgY2hpbGRyZW4sIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8RGlhbG9nUG9ydGFsPlxuICAgIDxEaWFsb2dPdmVybGF5IC8+XG4gICAgPERpYWxvZ1ByaW1pdGl2ZS5Db250ZW50XG4gICAgICByZWY9e3JlZn1cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIFwiZml4ZWQgbGVmdC1bNTAlXSB0b3AtWzUwJV0gei01MCBncmlkIHctZnVsbCBtYXgtdy1sZyB0cmFuc2xhdGUteC1bLTUwJV0gdHJhbnNsYXRlLXktWy01MCVdIGdhcC00IGJvcmRlciBiZy13aGl0ZSBwLTYgc2hhZG93LWxnIGR1cmF0aW9uLTIwMCBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnpvb20tb3V0LTk1IGRhdGEtW3N0YXRlPW9wZW5dOnpvb20taW4tOTUgZGF0YS1bc3RhdGU9Y2xvc2VkXTpzbGlkZS1vdXQtdG8tbGVmdC0xLzIgZGF0YS1bc3RhdGU9Y2xvc2VkXTpzbGlkZS1vdXQtdG8tdG9wLVs0OCVdIGRhdGEtW3N0YXRlPW9wZW5dOnNsaWRlLWluLWZyb20tbGVmdC0xLzIgZGF0YS1bc3RhdGU9b3Blbl06c2xpZGUtaW4tZnJvbS10b3AtWzQ4JV0gc206cm91bmRlZC1sZ1wiLFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRGlhbG9nUHJpbWl0aXZlLkNvbnRlbnQ+XG4gIDwvRGlhbG9nUG9ydGFsPlxuKSlcbkRpYWxvZ0NvbnRlbnQuZGlzcGxheU5hbWUgPSBEaWFsb2dQcmltaXRpdmUuQ29udGVudC5kaXNwbGF5TmFtZVxuXG5jb25zdCBEaWFsb2dIZWFkZXIgPSAoe1xuICBjbGFzc05hbWUsXG4gIC4uLnByb3BzXG59OiBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4pID0+IChcbiAgPGRpdlxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcImZsZXggZmxleC1jb2wgc3BhY2UteS0xLjUgdGV4dC1jZW50ZXIgc206dGV4dC1sZWZ0XCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbilcbkRpYWxvZ0hlYWRlci5kaXNwbGF5TmFtZSA9IFwiRGlhbG9nSGVhZGVyXCJcblxuY29uc3QgRGlhbG9nRm9vdGVyID0gKHtcbiAgY2xhc3NOYW1lLFxuICAuLi5wcm9wc1xufTogUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+KSA9PiAoXG4gIDxkaXZcbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJmbGV4IGZsZXgtY29sLXJldmVyc2Ugc206ZmxleC1yb3cgc206anVzdGlmeS1lbmQgc206c3BhY2UteC0yXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbilcbkRpYWxvZ0Zvb3Rlci5kaXNwbGF5TmFtZSA9IFwiRGlhbG9nRm9vdGVyXCJcblxuY29uc3QgRGlhbG9nVGl0bGUgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuVGl0bGU+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5UaXRsZT5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPERpYWxvZ1ByaW1pdGl2ZS5UaXRsZVxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcInRleHQtbGcgZm9udC1zZW1pYm9sZCBsZWFkaW5nLW5vbmUgdHJhY2tpbmctdGlnaHRcIixcbiAgICAgIGNsYXNzTmFtZVxuICAgICl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkRpYWxvZ1RpdGxlLmRpc3BsYXlOYW1lID0gRGlhbG9nUHJpbWl0aXZlLlRpdGxlLmRpc3BsYXlOYW1lXG5cbmNvbnN0IERpYWxvZ0Rlc2NyaXB0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkRlc2NyaXB0aW9uPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb24+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxEaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb25cbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIiwgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuRGlhbG9nRGVzY3JpcHRpb24uZGlzcGxheU5hbWUgPSBEaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb24uZGlzcGxheU5hbWVcblxuZXhwb3J0IHtcbiAgRGlhbG9nLFxuICBEaWFsb2dQb3J0YWwsXG4gIERpYWxvZ092ZXJsYXksXG4gIERpYWxvZ0Nsb3NlLFxuICBEaWFsb2dUcmlnZ2VyLFxuICBEaWFsb2dDb250ZW50LFxuICBEaWFsb2dIZWFkZXIsXG4gIERpYWxvZ0Zvb3RlcixcbiAgRGlhbG9nVGl0bGUsXG4gIERpYWxvZ0Rlc2NyaXB0aW9uLFxufVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiRGlhbG9nUHJpbWl0aXZlIiwiY24iLCJEaWFsb2ciLCJSb290IiwiRGlhbG9nVHJpZ2dlciIsIlRyaWdnZXIiLCJEaWFsb2dQb3J0YWwiLCJQb3J0YWwiLCJEaWFsb2dDbG9zZSIsIkNsb3NlIiwiRGlhbG9nT3ZlcmxheSIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJwcm9wcyIsIk92ZXJsYXkiLCJkaXNwbGF5TmFtZSIsIkRpYWxvZ0NvbnRlbnQiLCJjaGlsZHJlbiIsIkNvbnRlbnQiLCJEaWFsb2dIZWFkZXIiLCJkaXYiLCJEaWFsb2dGb290ZXIiLCJEaWFsb2dUaXRsZSIsIlRpdGxlIiwiRGlhbG9nRGVzY3JpcHRpb24iLCJEZXNjcmlwdGlvbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/dialog.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/ui/dropdown-menu.tsx":
/*!*****************************************!*\
!*** ./components/ui/dropdown-menu.tsx ***!
\*****************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DropdownMenu: () => (/* binding */ DropdownMenu),\n/* harmony export */ DropdownMenuCheckboxItem: () => (/* binding */ DropdownMenuCheckboxItem),\n/* harmony export */ DropdownMenuContent: () => (/* binding */ DropdownMenuContent),\n/* harmony export */ DropdownMenuGroup: () => (/* binding */ DropdownMenuGroup),\n/* harmony export */ DropdownMenuItem: () => (/* binding */ DropdownMenuItem),\n/* harmony export */ DropdownMenuLabel: () => (/* binding */ DropdownMenuLabel),\n/* harmony export */ DropdownMenuPortal: () => (/* binding */ DropdownMenuPortal),\n/* harmony export */ DropdownMenuRadioGroup: () => (/* binding */ DropdownMenuRadioGroup),\n/* harmony export */ DropdownMenuRadioItem: () => (/* binding */ DropdownMenuRadioItem),\n/* harmony export */ DropdownMenuSeparator: () => (/* binding */ DropdownMenuSeparator),\n/* harmony export */ DropdownMenuShortcut: () => (/* binding */ DropdownMenuShortcut),\n/* harmony export */ DropdownMenuSub: () => (/* binding */ DropdownMenuSub),\n/* harmony export */ DropdownMenuSubContent: () => (/* binding */ DropdownMenuSubContent),\n/* harmony export */ DropdownMenuSubTrigger: () => (/* binding */ DropdownMenuSubTrigger),\n/* harmony export */ DropdownMenuTrigger: () => (/* binding */ DropdownMenuTrigger)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-dropdown-menu */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Check,ChevronRight,Circle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-right.js\");\n/* harmony import */ var _barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Check,ChevronRight,Circle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\");\n/* harmony import */ var _barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Check,ChevronRight,Circle!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ DropdownMenu,DropdownMenuTrigger,DropdownMenuContent,DropdownMenuItem,DropdownMenuCheckboxItem,DropdownMenuRadioItem,DropdownMenuLabel,DropdownMenuSeparator,DropdownMenuShortcut,DropdownMenuGroup,DropdownMenuPortal,DropdownMenuSub,DropdownMenuSubContent,DropdownMenuSubTrigger,DropdownMenuRadioGroup auto */ \n\n\n\n\nconst DropdownMenu = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Root;\nconst DropdownMenuTrigger = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Trigger;\nconst DropdownMenuGroup = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Group;\nconst DropdownMenuPortal = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Portal;\nconst DropdownMenuSub = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Sub;\nconst DropdownMenuRadioGroup = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.RadioGroup;\nconst DropdownMenuSubTrigger = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, inset, children, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.SubTrigger, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\", inset && \"pl-8\", className),\n ...props,\n children: [\n children,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"ml-auto\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 37,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 27,\n columnNumber: 3\n }, undefined);\n});\n_c1 = DropdownMenuSubTrigger;\nDropdownMenuSubTrigger.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.SubTrigger.displayName;\nconst DropdownMenuSubContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c2 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.SubContent, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 47,\n columnNumber: 3\n }, undefined);\n});\n_c3 = DropdownMenuSubContent;\nDropdownMenuSubContent.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.SubContent.displayName;\nconst DropdownMenuContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c4 = (param, ref)=>{\n let { className, sideOffset = 4, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Portal, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Content, {\n ref: ref,\n sideOffset: sideOffset,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 64,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 63,\n columnNumber: 3\n }, undefined);\n});\n_c5 = DropdownMenuContent;\nDropdownMenuContent.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Content.displayName;\nconst DropdownMenuItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c6 = (param, ref)=>{\n let { className, inset, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Item, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\", inset && \"pl-8\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 83,\n columnNumber: 3\n }, undefined);\n});\n_c7 = DropdownMenuItem;\nDropdownMenuItem.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Item.displayName;\nconst DropdownMenuCheckboxItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c8 = (param, ref)=>{\n let { className, children, checked, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.CheckboxItem, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\", className),\n checked: checked,\n ...props,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.ItemIndicator, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 110,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 109,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 108,\n columnNumber: 5\n }, undefined),\n children\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 99,\n columnNumber: 3\n }, undefined);\n});\n_c9 = DropdownMenuCheckboxItem;\nDropdownMenuCheckboxItem.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.CheckboxItem.displayName;\nconst DropdownMenuRadioItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c10 = (param, ref)=>{\n let { className, children, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.RadioItem, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\", className),\n ...props,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.ItemIndicator, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Check_ChevronRight_Circle_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-2 w-2 fill-current\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 133,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 132,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 131,\n columnNumber: 5\n }, undefined),\n children\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 123,\n columnNumber: 3\n }, undefined);\n});\n_c11 = DropdownMenuRadioItem;\nDropdownMenuRadioItem.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.RadioItem.displayName;\nconst DropdownMenuLabel = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c12 = (param, ref)=>{\n let { className, inset, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Label, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"px-2 py-1.5 text-sm font-semibold\", inset && \"pl-8\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 147,\n columnNumber: 3\n }, undefined);\n});\n_c13 = DropdownMenuLabel;\nDropdownMenuLabel.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Label.displayName;\nconst DropdownMenuSeparator = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c14 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Separator, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"-mx-1 my-1 h-px bg-muted\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 163,\n columnNumber: 3\n }, undefined);\n});\n_c15 = DropdownMenuSeparator;\nDropdownMenuSeparator.displayName = _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_3__.Separator.displayName;\nconst DropdownMenuShortcut = (param)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"ml-auto text-xs tracking-widest opacity-60\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/dropdown-menu.tsx\",\n lineNumber: 176,\n columnNumber: 5\n }, undefined);\n};\n_c16 = DropdownMenuShortcut;\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15, _c16;\n$RefreshReg$(_c, \"DropdownMenuSubTrigger$React.forwardRef\");\n$RefreshReg$(_c1, \"DropdownMenuSubTrigger\");\n$RefreshReg$(_c2, \"DropdownMenuSubContent$React.forwardRef\");\n$RefreshReg$(_c3, \"DropdownMenuSubContent\");\n$RefreshReg$(_c4, \"DropdownMenuContent$React.forwardRef\");\n$RefreshReg$(_c5, \"DropdownMenuContent\");\n$RefreshReg$(_c6, \"DropdownMenuItem$React.forwardRef\");\n$RefreshReg$(_c7, \"DropdownMenuItem\");\n$RefreshReg$(_c8, \"DropdownMenuCheckboxItem$React.forwardRef\");\n$RefreshReg$(_c9, \"DropdownMenuCheckboxItem\");\n$RefreshReg$(_c10, \"DropdownMenuRadioItem$React.forwardRef\");\n$RefreshReg$(_c11, \"DropdownMenuRadioItem\");\n$RefreshReg$(_c12, \"DropdownMenuLabel$React.forwardRef\");\n$RefreshReg$(_c13, \"DropdownMenuLabel\");\n$RefreshReg$(_c14, \"DropdownMenuSeparator$React.forwardRef\");\n$RefreshReg$(_c15, \"DropdownMenuSeparator\");\n$RefreshReg$(_c16, \"DropdownMenuShortcut\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvZHJvcGRvd24tbWVudS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRStCO0FBQ3dDO0FBQ1o7QUFFMUI7QUFFakMsTUFBTU0sZUFBZUwsK0RBQTBCO0FBRS9DLE1BQU1PLHNCQUFzQlAsa0VBQTZCO0FBRXpELE1BQU1TLG9CQUFvQlQsZ0VBQTJCO0FBRXJELE1BQU1XLHFCQUFxQlgsaUVBQTRCO0FBRXZELE1BQU1hLGtCQUFrQmIsOERBQXlCO0FBRWpELE1BQU1lLHlCQUF5QmYscUVBQWdDO0FBRS9ELE1BQU1pQix1Q0FBeUJsQiw2Q0FBZ0IsTUFLN0MsUUFBMkNvQjtRQUExQyxFQUFFQyxTQUFTLEVBQUVDLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLE9BQU87eUJBQ3pDLDhEQUFDdkIscUVBQWdDO1FBQy9CbUIsS0FBS0E7UUFDTEMsV0FBV2hCLDhDQUFFQSxDQUNYLDBNQUNBaUIsU0FBUyxRQUNURDtRQUVELEdBQUdHLEtBQUs7O1lBRVJEOzBCQUNELDhEQUFDcEIscUdBQVlBO2dCQUFDa0IsV0FBVTs7Ozs7Ozs7Ozs7Ozs7QUFHNUJILHVCQUF1QlEsV0FBVyxHQUNoQ3pCLHFFQUFnQyxDQUFDeUIsV0FBVztBQUU5QyxNQUFNQyx1Q0FBeUIzQiw2Q0FBZ0IsT0FHN0MsUUFBMEJvQjtRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0csT0FBTzt5QkFDeEIsOERBQUN2QixxRUFBZ0M7UUFDL0JtQixLQUFLQTtRQUNMQyxXQUFXaEIsOENBQUVBLENBQ1gseWJBQ0FnQjtRQUVELEdBQUdHLEtBQUs7Ozs7Ozs7O0FBR2JHLHVCQUF1QkQsV0FBVyxHQUNoQ3pCLHFFQUFnQyxDQUFDeUIsV0FBVztBQUU5QyxNQUFNRyxvQ0FBc0I3Qiw2Q0FBZ0IsT0FHMUMsUUFBMENvQjtRQUF6QyxFQUFFQyxTQUFTLEVBQUVTLGFBQWEsQ0FBQyxFQUFFLEdBQUdOLE9BQU87eUJBQ3hDLDhEQUFDdkIsaUVBQTRCO2tCQUMzQiw0RUFBQ0Esa0VBQTZCO1lBQzVCbUIsS0FBS0E7WUFDTFUsWUFBWUE7WUFDWlQsV0FBV2hCLDhDQUFFQSxDQUNYLHliQUNBZ0I7WUFFRCxHQUFHRyxLQUFLOzs7Ozs7Ozs7Ozs7O0FBSWZLLG9CQUFvQkgsV0FBVyxHQUFHekIsa0VBQTZCLENBQUN5QixXQUFXO0FBRTNFLE1BQU1NLGlDQUFtQmhDLDZDQUFnQixPQUt2QyxRQUFpQ29CO1FBQWhDLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxFQUFFLEdBQUdFLE9BQU87eUJBQy9CLDhEQUFDdkIsK0RBQTBCO1FBQ3pCbUIsS0FBS0E7UUFDTEMsV0FBV2hCLDhDQUFFQSxDQUNYLHFTQUNBaUIsU0FBUyxRQUNURDtRQUVELEdBQUdHLEtBQUs7Ozs7Ozs7O0FBR2JRLGlCQUFpQk4sV0FBVyxHQUFHekIsK0RBQTBCLENBQUN5QixXQUFXO0FBRXJFLE1BQU1RLHlDQUEyQmxDLDZDQUFnQixPQUcvQyxRQUE2Q29CO1FBQTVDLEVBQUVDLFNBQVMsRUFBRUUsUUFBUSxFQUFFWSxPQUFPLEVBQUUsR0FBR1gsT0FBTzt5QkFDM0MsOERBQUN2Qix1RUFBa0M7UUFDakNtQixLQUFLQTtRQUNMQyxXQUFXaEIsOENBQUVBLENBQ1gsd09BQ0FnQjtRQUVGYyxTQUFTQTtRQUNSLEdBQUdYLEtBQUs7OzBCQUVULDhEQUFDYTtnQkFBS2hCLFdBQVU7MEJBQ2QsNEVBQUNwQix3RUFBbUM7OEJBQ2xDLDRFQUFDQyxxR0FBS0E7d0JBQUNtQixXQUFVOzs7Ozs7Ozs7Ozs7Ozs7O1lBR3BCRTs7Ozs7Ozs7O0FBR0xXLHlCQUF5QlIsV0FBVyxHQUNsQ3pCLHVFQUFrQyxDQUFDeUIsV0FBVztBQUVoRCxNQUFNYSxzQ0FBd0J2Qyw2Q0FBZ0IsUUFHNUMsUUFBb0NvQjtRQUFuQyxFQUFFQyxTQUFTLEVBQUVFLFFBQVEsRUFBRSxHQUFHQyxPQUFPO3lCQUNsQyw4REFBQ3ZCLG9FQUErQjtRQUM5Qm1CLEtBQUtBO1FBQ0xDLFdBQVdoQiw4Q0FBRUEsQ0FDWCx3T0FDQWdCO1FBRUQsR0FBR0csS0FBSzs7MEJBRVQsOERBQUNhO2dCQUFLaEIsV0FBVTswQkFDZCw0RUFBQ3BCLHdFQUFtQzs4QkFDbEMsNEVBQUNHLHFHQUFNQTt3QkFBQ2lCLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7WUFHckJFOzs7Ozs7Ozs7QUFHTGdCLHNCQUFzQmIsV0FBVyxHQUFHekIsb0VBQStCLENBQUN5QixXQUFXO0FBRS9FLE1BQU1lLGtDQUFvQnpDLDZDQUFnQixRQUt4QyxRQUFpQ29CO1FBQWhDLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxFQUFFLEdBQUdFLE9BQU87eUJBQy9CLDhEQUFDdkIsZ0VBQTJCO1FBQzFCbUIsS0FBS0E7UUFDTEMsV0FBV2hCLDhDQUFFQSxDQUNYLHFDQUNBaUIsU0FBUyxRQUNURDtRQUVELEdBQUdHLEtBQUs7Ozs7Ozs7O0FBR2JpQixrQkFBa0JmLFdBQVcsR0FBR3pCLGdFQUEyQixDQUFDeUIsV0FBVztBQUV2RSxNQUFNaUIsc0NBQXdCM0MsNkNBQWdCLFFBRzVDLFFBQTBCb0I7UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdHLE9BQU87eUJBQ3hCLDhEQUFDdkIsb0VBQStCO1FBQzlCbUIsS0FBS0E7UUFDTEMsV0FBV2hCLDhDQUFFQSxDQUFDLDRCQUE0QmdCO1FBQ3pDLEdBQUdHLEtBQUs7Ozs7Ozs7O0FBR2JtQixzQkFBc0JqQixXQUFXLEdBQUd6QixvRUFBK0IsQ0FBQ3lCLFdBQVc7QUFFL0UsTUFBTW1CLHVCQUF1QjtRQUFDLEVBQzVCeEIsU0FBUyxFQUNULEdBQUdHLE9BQ21DO0lBQ3RDLHFCQUNFLDhEQUFDYTtRQUNDaEIsV0FBV2hCLDhDQUFFQSxDQUFDLDhDQUE4Q2dCO1FBQzNELEdBQUdHLEtBQUs7Ozs7OztBQUdmO09BVk1xQjtBQVdOQSxxQkFBcUJuQixXQUFXLEdBQUc7QUFrQmpDIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvdWkvZHJvcGRvd24tbWVudS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0ICogYXMgRHJvcGRvd25NZW51UHJpbWl0aXZlIGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtZHJvcGRvd24tbWVudVwiO1xuaW1wb3J0IHsgQ2hlY2ssIENoZXZyb25SaWdodCwgQ2lyY2xlIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiO1xuXG5jb25zdCBEcm9wZG93bk1lbnUgPSBEcm9wZG93bk1lbnVQcmltaXRpdmUuUm9vdDtcblxuY29uc3QgRHJvcGRvd25NZW51VHJpZ2dlciA9IERyb3Bkb3duTWVudVByaW1pdGl2ZS5UcmlnZ2VyO1xuXG5jb25zdCBEcm9wZG93bk1lbnVHcm91cCA9IERyb3Bkb3duTWVudVByaW1pdGl2ZS5Hcm91cDtcblxuY29uc3QgRHJvcGRvd25NZW51UG9ydGFsID0gRHJvcGRvd25NZW51UHJpbWl0aXZlLlBvcnRhbDtcblxuY29uc3QgRHJvcGRvd25NZW51U3ViID0gRHJvcGRvd25NZW51UHJpbWl0aXZlLlN1YjtcblxuY29uc3QgRHJvcGRvd25NZW51UmFkaW9Hcm91cCA9IERyb3Bkb3duTWVudVByaW1pdGl2ZS5SYWRpb0dyb3VwO1xuXG5jb25zdCBEcm9wZG93bk1lbnVTdWJUcmlnZ2VyID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLlN1YlRyaWdnZXI+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5TdWJUcmlnZ2VyPiAmIHtcbiAgICBpbnNldD86IGJvb2xlYW47XG4gIH1cbj4oKHsgY2xhc3NOYW1lLCBpbnNldCwgY2hpbGRyZW4sIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8RHJvcGRvd25NZW51UHJpbWl0aXZlLlN1YlRyaWdnZXJcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJmbGV4IGN1cnNvci1kZWZhdWx0IGdhcC0yIHNlbGVjdC1ub25lIGl0ZW1zLWNlbnRlciByb3VuZGVkLXNtIHB4LTIgcHktMS41IHRleHQtc20gb3V0bGluZS1ub25lIGZvY3VzOmJnLWFjY2VudCBkYXRhLVtzdGF0ZT1vcGVuXTpiZy1hY2NlbnQgWyZfc3ZnXTpwb2ludGVyLWV2ZW50cy1ub25lIFsmX3N2Z106c2l6ZS00IFsmX3N2Z106c2hyaW5rLTBcIixcbiAgICAgIGluc2V0ICYmIFwicGwtOFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gID5cbiAgICB7Y2hpbGRyZW59XG4gICAgPENoZXZyb25SaWdodCBjbGFzc05hbWU9J21sLWF1dG8nIC8+XG4gIDwvRHJvcGRvd25NZW51UHJpbWl0aXZlLlN1YlRyaWdnZXI+XG4pKTtcbkRyb3Bkb3duTWVudVN1YlRyaWdnZXIuZGlzcGxheU5hbWUgPVxuICBEcm9wZG93bk1lbnVQcmltaXRpdmUuU3ViVHJpZ2dlci5kaXNwbGF5TmFtZTtcblxuY29uc3QgRHJvcGRvd25NZW51U3ViQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5TdWJDb250ZW50PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEcm9wZG93bk1lbnVQcmltaXRpdmUuU3ViQ29udGVudD5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPERyb3Bkb3duTWVudVByaW1pdGl2ZS5TdWJDb250ZW50XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiei01MCBtaW4tdy1bOHJlbV0gb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbWQgYm9yZGVyIGJnLXBvcG92ZXIgcC0xIHRleHQtcG9wb3Zlci1mb3JlZ3JvdW5kIHNoYWRvdy1sZyBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnpvb20tb3V0LTk1IGRhdGEtW3N0YXRlPW9wZW5dOnpvb20taW4tOTUgZGF0YS1bc2lkZT1ib3R0b21dOnNsaWRlLWluLWZyb20tdG9wLTIgZGF0YS1bc2lkZT1sZWZ0XTpzbGlkZS1pbi1mcm9tLXJpZ2h0LTIgZGF0YS1bc2lkZT1yaWdodF06c2xpZGUtaW4tZnJvbS1sZWZ0LTIgZGF0YS1bc2lkZT10b3BdOnNsaWRlLWluLWZyb20tYm90dG9tLTJcIixcbiAgICAgIGNsYXNzTmFtZVxuICAgICl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSk7XG5Ecm9wZG93bk1lbnVTdWJDb250ZW50LmRpc3BsYXlOYW1lID1cbiAgRHJvcGRvd25NZW51UHJpbWl0aXZlLlN1YkNvbnRlbnQuZGlzcGxheU5hbWU7XG5cbmNvbnN0IERyb3Bkb3duTWVudUNvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEcm9wZG93bk1lbnVQcmltaXRpdmUuQ29udGVudD4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLkNvbnRlbnQ+XG4+KCh7IGNsYXNzTmFtZSwgc2lkZU9mZnNldCA9IDQsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8RHJvcGRvd25NZW51UHJpbWl0aXZlLlBvcnRhbD5cbiAgICA8RHJvcGRvd25NZW51UHJpbWl0aXZlLkNvbnRlbnRcbiAgICAgIHJlZj17cmVmfVxuICAgICAgc2lkZU9mZnNldD17c2lkZU9mZnNldH1cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIFwiei01MCBtaW4tdy1bOHJlbV0gb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbWQgYm9yZGVyIGJnLXBvcG92ZXIgcC0xIHRleHQtcG9wb3Zlci1mb3JlZ3JvdW5kIHNoYWRvdy1tZCBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnpvb20tb3V0LTk1IGRhdGEtW3N0YXRlPW9wZW5dOnpvb20taW4tOTUgZGF0YS1bc2lkZT1ib3R0b21dOnNsaWRlLWluLWZyb20tdG9wLTIgZGF0YS1bc2lkZT1sZWZ0XTpzbGlkZS1pbi1mcm9tLXJpZ2h0LTIgZGF0YS1bc2lkZT1yaWdodF06c2xpZGUtaW4tZnJvbS1sZWZ0LTIgZGF0YS1bc2lkZT10b3BdOnNsaWRlLWluLWZyb20tYm90dG9tLTJcIixcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIDwvRHJvcGRvd25NZW51UHJpbWl0aXZlLlBvcnRhbD5cbikpO1xuRHJvcGRvd25NZW51Q29udGVudC5kaXNwbGF5TmFtZSA9IERyb3Bkb3duTWVudVByaW1pdGl2ZS5Db250ZW50LmRpc3BsYXlOYW1lO1xuXG5jb25zdCBEcm9wZG93bk1lbnVJdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLkl0ZW0+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5JdGVtPiAmIHtcbiAgICBpbnNldD86IGJvb2xlYW47XG4gIH1cbj4oKHsgY2xhc3NOYW1lLCBpbnNldCwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxEcm9wZG93bk1lbnVQcmltaXRpdmUuSXRlbVxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcInJlbGF0aXZlIGZsZXggY3Vyc29yLWRlZmF1bHQgc2VsZWN0LW5vbmUgaXRlbXMtY2VudGVyIGdhcC0yIHJvdW5kZWQtc20gcHgtMiBweS0xLjUgdGV4dC1zbSBvdXRsaW5lLW5vbmUgdHJhbnNpdGlvbi1jb2xvcnMgZm9jdXM6YmctYWNjZW50IGZvY3VzOnRleHQtYWNjZW50LWZvcmVncm91bmQgZGF0YS1bZGlzYWJsZWRdOnBvaW50ZXItZXZlbnRzLW5vbmUgZGF0YS1bZGlzYWJsZWRdOm9wYWNpdHktNTAgWyZfc3ZnXTpwb2ludGVyLWV2ZW50cy1ub25lIFsmX3N2Z106c2l6ZS00IFsmX3N2Z106c2hyaW5rLTBcIixcbiAgICAgIGluc2V0ICYmIFwicGwtOFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKTtcbkRyb3Bkb3duTWVudUl0ZW0uZGlzcGxheU5hbWUgPSBEcm9wZG93bk1lbnVQcmltaXRpdmUuSXRlbS5kaXNwbGF5TmFtZTtcblxuY29uc3QgRHJvcGRvd25NZW51Q2hlY2tib3hJdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLkNoZWNrYm94SXRlbT4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLkNoZWNrYm94SXRlbT5cbj4oKHsgY2xhc3NOYW1lLCBjaGlsZHJlbiwgY2hlY2tlZCwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxEcm9wZG93bk1lbnVQcmltaXRpdmUuQ2hlY2tib3hJdGVtXG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwicmVsYXRpdmUgZmxleCBjdXJzb3ItZGVmYXVsdCBzZWxlY3Qtbm9uZSBpdGVtcy1jZW50ZXIgcm91bmRlZC1zbSBweS0xLjUgcGwtOCBwci0yIHRleHQtc20gb3V0bGluZS1ub25lIHRyYW5zaXRpb24tY29sb3JzIGZvY3VzOmJnLWFjY2VudCBmb2N1czp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIGRhdGEtW2Rpc2FibGVkXTpwb2ludGVyLWV2ZW50cy1ub25lIGRhdGEtW2Rpc2FibGVkXTpvcGFjaXR5LTUwXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIGNoZWNrZWQ9e2NoZWNrZWR9XG4gICAgey4uLnByb3BzfVxuICA+XG4gICAgPHNwYW4gY2xhc3NOYW1lPSdhYnNvbHV0ZSBsZWZ0LTIgZmxleCBoLTMuNSB3LTMuNSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXInPlxuICAgICAgPERyb3Bkb3duTWVudVByaW1pdGl2ZS5JdGVtSW5kaWNhdG9yPlxuICAgICAgICA8Q2hlY2sgY2xhc3NOYW1lPSdoLTQgdy00JyAvPlxuICAgICAgPC9Ecm9wZG93bk1lbnVQcmltaXRpdmUuSXRlbUluZGljYXRvcj5cbiAgICA8L3NwYW4+XG4gICAge2NoaWxkcmVufVxuICA8L0Ryb3Bkb3duTWVudVByaW1pdGl2ZS5DaGVja2JveEl0ZW0+XG4pKTtcbkRyb3Bkb3duTWVudUNoZWNrYm94SXRlbS5kaXNwbGF5TmFtZSA9XG4gIERyb3Bkb3duTWVudVByaW1pdGl2ZS5DaGVja2JveEl0ZW0uZGlzcGxheU5hbWU7XG5cbmNvbnN0IERyb3Bkb3duTWVudVJhZGlvSXRlbSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5SYWRpb0l0ZW0+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5SYWRpb0l0ZW0+XG4+KCh7IGNsYXNzTmFtZSwgY2hpbGRyZW4sIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8RHJvcGRvd25NZW51UHJpbWl0aXZlLlJhZGlvSXRlbVxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcInJlbGF0aXZlIGZsZXggY3Vyc29yLWRlZmF1bHQgc2VsZWN0LW5vbmUgaXRlbXMtY2VudGVyIHJvdW5kZWQtc20gcHktMS41IHBsLTggcHItMiB0ZXh0LXNtIG91dGxpbmUtbm9uZSB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1czpiZy1hY2NlbnQgZm9jdXM6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCBkYXRhLVtkaXNhYmxlZF06cG9pbnRlci1ldmVudHMtbm9uZSBkYXRhLVtkaXNhYmxlZF06b3BhY2l0eS01MFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gID5cbiAgICA8c3BhbiBjbGFzc05hbWU9J2Fic29sdXRlIGxlZnQtMiBmbGV4IGgtMy41IHctMy41IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlcic+XG4gICAgICA8RHJvcGRvd25NZW51UHJpbWl0aXZlLkl0ZW1JbmRpY2F0b3I+XG4gICAgICAgIDxDaXJjbGUgY2xhc3NOYW1lPSdoLTIgdy0yIGZpbGwtY3VycmVudCcgLz5cbiAgICAgIDwvRHJvcGRvd25NZW51UHJpbWl0aXZlLkl0ZW1JbmRpY2F0b3I+XG4gICAgPC9zcGFuPlxuICAgIHtjaGlsZHJlbn1cbiAgPC9Ecm9wZG93bk1lbnVQcmltaXRpdmUuUmFkaW9JdGVtPlxuKSk7XG5Ecm9wZG93bk1lbnVSYWRpb0l0ZW0uZGlzcGxheU5hbWUgPSBEcm9wZG93bk1lbnVQcmltaXRpdmUuUmFkaW9JdGVtLmRpc3BsYXlOYW1lO1xuXG5jb25zdCBEcm9wZG93bk1lbnVMYWJlbCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERyb3Bkb3duTWVudVByaW1pdGl2ZS5MYWJlbD4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRHJvcGRvd25NZW51UHJpbWl0aXZlLkxhYmVsPiAmIHtcbiAgICBpbnNldD86IGJvb2xlYW47XG4gIH1cbj4oKHsgY2xhc3NOYW1lLCBpbnNldCwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxEcm9wZG93bk1lbnVQcmltaXRpdmUuTGFiZWxcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgXCJweC0yIHB5LTEuNSB0ZXh0LXNtIGZvbnQtc2VtaWJvbGRcIixcbiAgICAgIGluc2V0ICYmIFwicGwtOFwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKTtcbkRyb3Bkb3duTWVudUxhYmVsLmRpc3BsYXlOYW1lID0gRHJvcGRvd25NZW51UHJpbWl0aXZlLkxhYmVsLmRpc3BsYXlOYW1lO1xuXG5jb25zdCBEcm9wZG93bk1lbnVTZXBhcmF0b3IgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEcm9wZG93bk1lbnVQcmltaXRpdmUuU2VwYXJhdG9yPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEcm9wZG93bk1lbnVQcmltaXRpdmUuU2VwYXJhdG9yPlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8RHJvcGRvd25NZW51UHJpbWl0aXZlLlNlcGFyYXRvclxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXCItbXgtMSBteS0xIGgtcHggYmctbXV0ZWRcIiwgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKTtcbkRyb3Bkb3duTWVudVNlcGFyYXRvci5kaXNwbGF5TmFtZSA9IERyb3Bkb3duTWVudVByaW1pdGl2ZS5TZXBhcmF0b3IuZGlzcGxheU5hbWU7XG5cbmNvbnN0IERyb3Bkb3duTWVudVNob3J0Y3V0ID0gKHtcbiAgY2xhc3NOYW1lLFxuICAuLi5wcm9wc1xufTogUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTFNwYW5FbGVtZW50PikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICBjbGFzc05hbWU9e2NuKFwibWwtYXV0byB0ZXh0LXhzIHRyYWNraW5nLXdpZGVzdCBvcGFjaXR5LTYwXCIsIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKTtcbn07XG5Ecm9wZG93bk1lbnVTaG9ydGN1dC5kaXNwbGF5TmFtZSA9IFwiRHJvcGRvd25NZW51U2hvcnRjdXRcIjtcblxuZXhwb3J0IHtcbiAgRHJvcGRvd25NZW51LFxuICBEcm9wZG93bk1lbnVUcmlnZ2VyLFxuICBEcm9wZG93bk1lbnVDb250ZW50LFxuICBEcm9wZG93bk1lbnVJdGVtLFxuICBEcm9wZG93bk1lbnVDaGVja2JveEl0ZW0sXG4gIERyb3Bkb3duTWVudVJhZGlvSXRlbSxcbiAgRHJvcGRvd25NZW51TGFiZWwsXG4gIERyb3Bkb3duTWVudVNlcGFyYXRvcixcbiAgRHJvcGRvd25NZW51U2hvcnRjdXQsXG4gIERyb3Bkb3duTWVudUdyb3VwLFxuICBEcm9wZG93bk1lbnVQb3J0YWwsXG4gIERyb3Bkb3duTWVudVN1YixcbiAgRHJvcGRvd25NZW51U3ViQ29udGVudCxcbiAgRHJvcGRvd25NZW51U3ViVHJpZ2dlcixcbiAgRHJvcGRvd25NZW51UmFkaW9Hcm91cCxcbn07XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJEcm9wZG93bk1lbnVQcmltaXRpdmUiLCJDaGVjayIsIkNoZXZyb25SaWdodCIsIkNpcmNsZSIsImNuIiwiRHJvcGRvd25NZW51IiwiUm9vdCIsIkRyb3Bkb3duTWVudVRyaWdnZXIiLCJUcmlnZ2VyIiwiRHJvcGRvd25NZW51R3JvdXAiLCJHcm91cCIsIkRyb3Bkb3duTWVudVBvcnRhbCIsIlBvcnRhbCIsIkRyb3Bkb3duTWVudVN1YiIsIlN1YiIsIkRyb3Bkb3duTWVudVJhZGlvR3JvdXAiLCJSYWRpb0dyb3VwIiwiRHJvcGRvd25NZW51U3ViVHJpZ2dlciIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJpbnNldCIsImNoaWxkcmVuIiwicHJvcHMiLCJTdWJUcmlnZ2VyIiwiZGlzcGxheU5hbWUiLCJEcm9wZG93bk1lbnVTdWJDb250ZW50IiwiU3ViQ29udGVudCIsIkRyb3Bkb3duTWVudUNvbnRlbnQiLCJzaWRlT2Zmc2V0IiwiQ29udGVudCIsIkRyb3Bkb3duTWVudUl0ZW0iLCJJdGVtIiwiRHJvcGRvd25NZW51Q2hlY2tib3hJdGVtIiwiY2hlY2tlZCIsIkNoZWNrYm94SXRlbSIsInNwYW4iLCJJdGVtSW5kaWNhdG9yIiwiRHJvcGRvd25NZW51UmFkaW9JdGVtIiwiUmFkaW9JdGVtIiwiRHJvcGRvd25NZW51TGFiZWwiLCJMYWJlbCIsIkRyb3Bkb3duTWVudVNlcGFyYXRvciIsIlNlcGFyYXRvciIsIkRyb3Bkb3duTWVudVNob3J0Y3V0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/dropdown-menu.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/ui/input.tsx":
/*!*********************************!*\
!*** ./components/ui/input.tsx ***!
\*********************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Input: () => (/* binding */ Input)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n\n\n\nconst Input = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, type, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: type,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\", className),\n ref: ref,\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/input.tsx\",\n lineNumber: 8,\n columnNumber: 7\n }, undefined);\n});\n_c1 = Input;\nInput.displayName = \"Input\";\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Input$React.forwardRef\");\n$RefreshReg$(_c1, \"Input\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvaW5wdXQudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUE4QjtBQUVFO0FBRWhDLE1BQU1FLHNCQUFRRiw2Q0FBZ0IsTUFDNUIsUUFBZ0NJO1FBQS9CLEVBQUVDLFNBQVMsRUFBRUMsSUFBSSxFQUFFLEdBQUdDLE9BQU87SUFDNUIscUJBQ0UsOERBQUNDO1FBQ0NGLE1BQU1BO1FBQ05ELFdBQVdKLDhDQUFFQSxDQUNYLGtZQUNBSTtRQUVGRCxLQUFLQTtRQUNKLEdBQUdHLEtBQUs7Ozs7OztBQUdmOztBQUVGTCxNQUFNTyxXQUFXLEdBQUc7QUFFSiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9jb21wb25lbnRzL3VpL2lucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IElucHV0ID0gUmVhY3QuZm9yd2FyZFJlZjxIVE1MSW5wdXRFbGVtZW50LCBSZWFjdC5Db21wb25lbnRQcm9wczxcImlucHV0XCI+PihcbiAgKHsgY2xhc3NOYW1lLCB0eXBlLCAuLi5wcm9wcyB9LCByZWYpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgXCJmbGV4IGgtMTAgdy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1pbnB1dCBiZy1iYWNrZ3JvdW5kIHB4LTMgcHktMiB0ZXh0LWJhc2UgcmluZy1vZmZzZXQtYmFja2dyb3VuZCBmaWxlOmJvcmRlci0wIGZpbGU6YmctdHJhbnNwYXJlbnQgZmlsZTp0ZXh0LXNtIGZpbGU6Zm9udC1tZWRpdW0gZmlsZTp0ZXh0LWZvcmVncm91bmQgcGxhY2Vob2xkZXI6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMiBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MCBtZDp0ZXh0LXNtXCIsXG4gICAgICAgICAgY2xhc3NOYW1lXG4gICAgICAgICl9XG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAvPlxuICAgIClcbiAgfVxuKVxuSW5wdXQuZGlzcGxheU5hbWUgPSBcIklucHV0XCJcblxuZXhwb3J0IHsgSW5wdXQgfVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiY24iLCJJbnB1dCIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJ0eXBlIiwicHJvcHMiLCJpbnB1dCIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/input.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/ui/label.tsx":
/*!*********************************!*\
!*** ./components/ui/label.tsx ***!
\*********************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Label: () => (/* binding */ Label)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_label__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-label */ \"(app-pages-browser)/./node_modules/@radix-ui/react-label/dist/index.mjs\");\n/* harmony import */ var class_variance_authority__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! class-variance-authority */ \"(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Label auto */ \n\n\n\n\nconst labelVariants = (0,class_variance_authority__WEBPACK_IMPORTED_MODULE_2__.cva)(\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\");\nconst Label = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_label__WEBPACK_IMPORTED_MODULE_4__.Root, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(labelVariants(), className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/label.tsx\",\n lineNumber: 18,\n columnNumber: 3\n }, undefined);\n});\n_c1 = Label;\nLabel.displayName = _radix_ui_react_label__WEBPACK_IMPORTED_MODULE_4__.Root.displayName;\n\nvar _c, _c1;\n$RefreshReg$(_c, \"Label$React.forwardRef\");\n$RefreshReg$(_c1, \"Label\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvbGFiZWwudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRThCO0FBQ3lCO0FBQ1U7QUFFakM7QUFFaEMsTUFBTUksZ0JBQWdCRiw2REFBR0EsQ0FDdkI7QUFHRixNQUFNRyxzQkFBUUwsNkNBQWdCLE1BSTVCLFFBQTBCTztRQUF6QixFQUFFQyxTQUFTLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEIsOERBQUNSLHVEQUFtQjtRQUNsQk0sS0FBS0E7UUFDTEMsV0FBV0wsOENBQUVBLENBQUNDLGlCQUFpQkk7UUFDOUIsR0FBR0MsS0FBSzs7Ozs7Ozs7QUFHYkosTUFBTU0sV0FBVyxHQUFHVix1REFBbUIsQ0FBQ1UsV0FBVztBQUVuQyIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9jb21wb25lbnRzL3VpL2xhYmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0ICogYXMgTGFiZWxQcmltaXRpdmUgZnJvbSBcIkByYWRpeC11aS9yZWFjdC1sYWJlbFwiXG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSBcImNsYXNzLXZhcmlhbmNlLWF1dGhvcml0eVwiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgbGFiZWxWYXJpYW50cyA9IGN2YShcbiAgXCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSBwZWVyLWRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBwZWVyLWRpc2FibGVkOm9wYWNpdHktNzBcIlxuKVxuXG5jb25zdCBMYWJlbCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIExhYmVsUHJpbWl0aXZlLlJvb3Q+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIExhYmVsUHJpbWl0aXZlLlJvb3Q+ICZcbiAgICBWYXJpYW50UHJvcHM8dHlwZW9mIGxhYmVsVmFyaWFudHM+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxMYWJlbFByaW1pdGl2ZS5Sb290XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihsYWJlbFZhcmlhbnRzKCksIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcbkxhYmVsLmRpc3BsYXlOYW1lID0gTGFiZWxQcmltaXRpdmUuUm9vdC5kaXNwbGF5TmFtZVxuXG5leHBvcnQgeyBMYWJlbCB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJMYWJlbFByaW1pdGl2ZSIsImN2YSIsImNuIiwibGFiZWxWYXJpYW50cyIsIkxhYmVsIiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsInByb3BzIiwiUm9vdCIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/label.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/ui/scroll-area.tsx":
/*!***************************************!*\
!*** ./components/ui/scroll-area.tsx ***!
\***************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ScrollArea: () => (/* binding */ ScrollArea),\n/* harmony export */ ScrollBar: () => (/* binding */ ScrollBar)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-scroll-area */ \"(app-pages-browser)/./node_modules/@radix-ui/react-scroll-area/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ ScrollArea,ScrollBar auto */ \n\n\n\nconst ScrollArea = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, children, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"relative overflow-hidden\", className),\n ...props,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__.Viewport, {\n className: \"h-full w-full rounded-[inherit]\",\n children: children\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/scroll-area.tsx\",\n lineNumber: 17,\n columnNumber: 5\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(ScrollBar, {}, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/scroll-area.tsx\",\n lineNumber: 20,\n columnNumber: 5\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__.Corner, {}, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/scroll-area.tsx\",\n lineNumber: 21,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/scroll-area.tsx\",\n lineNumber: 12,\n columnNumber: 3\n }, undefined);\n});\n_c1 = ScrollArea;\nScrollArea.displayName = _radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__.Root.displayName;\nconst ScrollBar = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef((param, ref)=>{\n let { className, orientation = \"vertical\", ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__.ScrollAreaScrollbar, {\n ref: ref,\n orientation: orientation,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"flex touch-none select-none transition-colors\", orientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent p-[1px]\", orientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent p-[1px]\", className),\n ...props,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__.ScrollAreaThumb, {\n className: \"relative flex-1 rounded-full bg-border\"\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/scroll-area.tsx\",\n lineNumber: 43,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/scroll-area.tsx\",\n lineNumber: 30,\n columnNumber: 3\n }, undefined);\n});\n_c2 = ScrollBar;\nScrollBar.displayName = _radix_ui_react_scroll_area__WEBPACK_IMPORTED_MODULE_3__.ScrollAreaScrollbar.displayName;\n\nvar _c, _c1, _c2;\n$RefreshReg$(_c, \"ScrollArea$React.forwardRef\");\n$RefreshReg$(_c1, \"ScrollArea\");\n$RefreshReg$(_c2, \"ScrollBar\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvc2Nyb2xsLWFyZWEudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRThCO0FBQ29DO0FBRWxDO0FBRWhDLE1BQU1HLDJCQUFhSCw2Q0FBZ0IsTUFHakMsUUFBb0NLO1FBQW5DLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxFQUFFLEdBQUdDLE9BQU87eUJBQ2xDLDhEQUFDUCw2REFBd0I7UUFDdkJJLEtBQUtBO1FBQ0xDLFdBQVdKLDhDQUFFQSxDQUFDLDRCQUE0Qkk7UUFDekMsR0FBR0UsS0FBSzs7MEJBRVQsOERBQUNQLGlFQUE0QjtnQkFBQ0ssV0FBVTswQkFDckNDOzs7Ozs7MEJBRUgsOERBQUNJOzs7OzswQkFDRCw4REFBQ1YsK0RBQTBCOzs7Ozs7Ozs7Ozs7O0FBRy9CRSxXQUFXVSxXQUFXLEdBQUdaLDZEQUF3QixDQUFDWSxXQUFXO0FBRTdELE1BQU1GLDBCQUFZWCw2Q0FBZ0IsQ0FHaEMsUUFBb0RLO1FBQW5ELEVBQUVDLFNBQVMsRUFBRVEsY0FBYyxVQUFVLEVBQUUsR0FBR04sT0FBTzt5QkFDbEQsOERBQUNQLDRFQUF1QztRQUN0Q0ksS0FBS0E7UUFDTFMsYUFBYUE7UUFDYlIsV0FBV0osOENBQUVBLENBQ1gsaURBQ0FZLGdCQUFnQixjQUNkLHNEQUNGQSxnQkFBZ0IsZ0JBQ2Qsd0RBQ0ZSO1FBRUQsR0FBR0UsS0FBSztrQkFFVCw0RUFBQ1Asd0VBQW1DO1lBQUNLLFdBQVU7Ozs7Ozs7Ozs7OztNQWpCN0NLO0FBb0JOQSxVQUFVRSxXQUFXLEdBQUdaLDRFQUF1QyxDQUFDWSxXQUFXO0FBRTNDIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvdWkvc2Nyb2xsLWFyZWEudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgKiBhcyBTY3JvbGxBcmVhUHJpbWl0aXZlIGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtc2Nyb2xsLWFyZWFcIlxuXG5pbXBvcnQgeyBjbiB9IGZyb20gXCJAL2xpYi91dGlsc1wiXG5cbmNvbnN0IFNjcm9sbEFyZWEgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBTY3JvbGxBcmVhUHJpbWl0aXZlLlJvb3Q+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFNjcm9sbEFyZWFQcmltaXRpdmUuUm9vdD5cbj4oKHsgY2xhc3NOYW1lLCBjaGlsZHJlbiwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxTY3JvbGxBcmVhUHJpbWl0aXZlLlJvb3RcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFwicmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuXCIsIGNsYXNzTmFtZSl9XG4gICAgey4uLnByb3BzfVxuICA+XG4gICAgPFNjcm9sbEFyZWFQcmltaXRpdmUuVmlld3BvcnQgY2xhc3NOYW1lPVwiaC1mdWxsIHctZnVsbCByb3VuZGVkLVtpbmhlcml0XVwiPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvU2Nyb2xsQXJlYVByaW1pdGl2ZS5WaWV3cG9ydD5cbiAgICA8U2Nyb2xsQmFyIC8+XG4gICAgPFNjcm9sbEFyZWFQcmltaXRpdmUuQ29ybmVyIC8+XG4gIDwvU2Nyb2xsQXJlYVByaW1pdGl2ZS5Sb290PlxuKSlcblNjcm9sbEFyZWEuZGlzcGxheU5hbWUgPSBTY3JvbGxBcmVhUHJpbWl0aXZlLlJvb3QuZGlzcGxheU5hbWVcblxuY29uc3QgU2Nyb2xsQmFyID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgU2Nyb2xsQXJlYVByaW1pdGl2ZS5TY3JvbGxBcmVhU2Nyb2xsYmFyPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBTY3JvbGxBcmVhUHJpbWl0aXZlLlNjcm9sbEFyZWFTY3JvbGxiYXI+XG4+KCh7IGNsYXNzTmFtZSwgb3JpZW50YXRpb24gPSBcInZlcnRpY2FsXCIsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8U2Nyb2xsQXJlYVByaW1pdGl2ZS5TY3JvbGxBcmVhU2Nyb2xsYmFyXG4gICAgcmVmPXtyZWZ9XG4gICAgb3JpZW50YXRpb249e29yaWVudGF0aW9ufVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcImZsZXggdG91Y2gtbm9uZSBzZWxlY3Qtbm9uZSB0cmFuc2l0aW9uLWNvbG9yc1wiLFxuICAgICAgb3JpZW50YXRpb24gPT09IFwidmVydGljYWxcIiAmJlxuICAgICAgICBcImgtZnVsbCB3LTIuNSBib3JkZXItbCBib3JkZXItbC10cmFuc3BhcmVudCBwLVsxcHhdXCIsXG4gICAgICBvcmllbnRhdGlvbiA9PT0gXCJob3Jpem9udGFsXCIgJiZcbiAgICAgICAgXCJoLTIuNSBmbGV4LWNvbCBib3JkZXItdCBib3JkZXItdC10cmFuc3BhcmVudCBwLVsxcHhdXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgPlxuICAgIDxTY3JvbGxBcmVhUHJpbWl0aXZlLlNjcm9sbEFyZWFUaHVtYiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBmbGV4LTEgcm91bmRlZC1mdWxsIGJnLWJvcmRlclwiIC8+XG4gIDwvU2Nyb2xsQXJlYVByaW1pdGl2ZS5TY3JvbGxBcmVhU2Nyb2xsYmFyPlxuKSlcblNjcm9sbEJhci5kaXNwbGF5TmFtZSA9IFNjcm9sbEFyZWFQcmltaXRpdmUuU2Nyb2xsQXJlYVNjcm9sbGJhci5kaXNwbGF5TmFtZVxuXG5leHBvcnQgeyBTY3JvbGxBcmVhLCBTY3JvbGxCYXIgfVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU2Nyb2xsQXJlYVByaW1pdGl2ZSIsImNuIiwiU2Nyb2xsQXJlYSIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsInByb3BzIiwiUm9vdCIsIlZpZXdwb3J0IiwiU2Nyb2xsQmFyIiwiQ29ybmVyIiwiZGlzcGxheU5hbWUiLCJvcmllbnRhdGlvbiIsIlNjcm9sbEFyZWFTY3JvbGxiYXIiLCJTY3JvbGxBcmVhVGh1bWIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/scroll-area.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/ui/tabs.tsx":
/*!********************************!*\
!*** ./components/ui/tabs.tsx ***!
\********************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Tabs: () => (/* binding */ Tabs),\n/* harmony export */ TabsContent: () => (/* binding */ TabsContent),\n/* harmony export */ TabsList: () => (/* binding */ TabsList),\n/* harmony export */ TabsTrigger: () => (/* binding */ TabsTrigger)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-tabs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-tabs/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Tabs,TabsList,TabsTrigger,TabsContent auto */ \n\n\n\nconst Tabs = _radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__.Root;\nconst TabsList = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__.List, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/tabs.tsx\",\n lineNumber: 14,\n columnNumber: 3\n }, undefined);\n});\n_c1 = TabsList;\nTabsList.displayName = _radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__.List.displayName;\nconst TabsTrigger = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c2 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__.Trigger, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/tabs.tsx\",\n lineNumber: 29,\n columnNumber: 3\n }, undefined);\n});\n_c3 = TabsTrigger;\nTabsTrigger.displayName = _radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__.Trigger.displayName;\nconst TabsContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c4 = (param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__.Content, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/tabs.tsx\",\n lineNumber: 44,\n columnNumber: 3\n }, undefined);\n});\n_c5 = TabsContent;\nTabsContent.displayName = _radix_ui_react_tabs__WEBPACK_IMPORTED_MODULE_3__.Content.displayName;\n\nvar _c, _c1, _c2, _c3, _c4, _c5;\n$RefreshReg$(_c, \"TabsList$React.forwardRef\");\n$RefreshReg$(_c1, \"TabsList\");\n$RefreshReg$(_c2, \"TabsTrigger$React.forwardRef\");\n$RefreshReg$(_c3, \"TabsTrigger\");\n$RefreshReg$(_c4, \"TabsContent$React.forwardRef\");\n$RefreshReg$(_c5, \"TabsContent\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvdGFicy50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUU4QjtBQUN1QjtBQUVyQjtBQUVoQyxNQUFNRyxPQUFPRixzREFBa0I7QUFFL0IsTUFBTUkseUJBQVdMLDZDQUFnQixNQUcvQixRQUEwQk87UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDUixzREFBa0I7UUFDakJNLEtBQUtBO1FBQ0xDLFdBQVdOLDhDQUFFQSxDQUNYLDhGQUNBTTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JKLFNBQVNNLFdBQVcsR0FBR1Ysc0RBQWtCLENBQUNVLFdBQVc7QUFFckQsTUFBTUMsNEJBQWNaLDZDQUFnQixPQUdsQyxRQUEwQk87UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDUix5REFBcUI7UUFDcEJNLEtBQUtBO1FBQ0xDLFdBQVdOLDhDQUFFQSxDQUNYLHVZQUNBTTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JHLFlBQVlELFdBQVcsR0FBR1YseURBQXFCLENBQUNVLFdBQVc7QUFFM0QsTUFBTUcsNEJBQWNkLDZDQUFnQixPQUdsQyxRQUEwQk87UUFBekIsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLE9BQU87eUJBQ3hCLDhEQUFDUix5REFBcUI7UUFDcEJNLEtBQUtBO1FBQ0xDLFdBQVdOLDhDQUFFQSxDQUNYLG1JQUNBTTtRQUVELEdBQUdDLEtBQUs7Ozs7Ozs7O0FBR2JLLFlBQVlILFdBQVcsR0FBR1YseURBQXFCLENBQUNVLFdBQVc7QUFFUiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9jb21wb25lbnRzL3VpL3RhYnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgKiBhcyBUYWJzUHJpbWl0aXZlIGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdGFic1wiXG5cbmltcG9ydCB7IGNuIH0gZnJvbSBcIkAvbGliL3V0aWxzXCJcblxuY29uc3QgVGFicyA9IFRhYnNQcmltaXRpdmUuUm9vdFxuXG5jb25zdCBUYWJzTGlzdCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFRhYnNQcmltaXRpdmUuTGlzdD4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgVGFic1ByaW1pdGl2ZS5MaXN0PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8VGFic1ByaW1pdGl2ZS5MaXN0XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiaW5saW5lLWZsZXggaC0xMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBiZy1tdXRlZCBwLTEgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5UYWJzTGlzdC5kaXNwbGF5TmFtZSA9IFRhYnNQcmltaXRpdmUuTGlzdC5kaXNwbGF5TmFtZVxuXG5jb25zdCBUYWJzVHJpZ2dlciA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFRhYnNQcmltaXRpdmUuVHJpZ2dlcj4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgVGFic1ByaW1pdGl2ZS5UcmlnZ2VyPlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8VGFic1ByaW1pdGl2ZS5UcmlnZ2VyXG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHdoaXRlc3BhY2Utbm93cmFwIHJvdW5kZWQtc20gcHgtMyBweS0xLjUgdGV4dC1zbSBmb250LW1lZGl1bSByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tYWxsIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMiBkaXNhYmxlZDpwb2ludGVyLWV2ZW50cy1ub25lIGRpc2FibGVkOm9wYWNpdHktNTAgZGF0YS1bc3RhdGU9YWN0aXZlXTpiZy1iYWNrZ3JvdW5kIGRhdGEtW3N0YXRlPWFjdGl2ZV06dGV4dC1mb3JlZ3JvdW5kIGRhdGEtW3N0YXRlPWFjdGl2ZV06c2hhZG93LXNtXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5UYWJzVHJpZ2dlci5kaXNwbGF5TmFtZSA9IFRhYnNQcmltaXRpdmUuVHJpZ2dlci5kaXNwbGF5TmFtZVxuXG5jb25zdCBUYWJzQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFRhYnNQcmltaXRpdmUuQ29udGVudD4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgVGFic1ByaW1pdGl2ZS5Db250ZW50PlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8VGFic1ByaW1pdGl2ZS5Db250ZW50XG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbihcbiAgICAgIFwibXQtMiByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMlwiLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuVGFic0NvbnRlbnQuZGlzcGxheU5hbWUgPSBUYWJzUHJpbWl0aXZlLkNvbnRlbnQuZGlzcGxheU5hbWVcblxuZXhwb3J0IHsgVGFicywgVGFic0xpc3QsIFRhYnNUcmlnZ2VyLCBUYWJzQ29udGVudCB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJUYWJzUHJpbWl0aXZlIiwiY24iLCJUYWJzIiwiUm9vdCIsIlRhYnNMaXN0IiwiZm9yd2FyZFJlZiIsInJlZiIsImNsYXNzTmFtZSIsInByb3BzIiwiTGlzdCIsImRpc3BsYXlOYW1lIiwiVGFic1RyaWdnZXIiLCJUcmlnZ2VyIiwiVGFic0NvbnRlbnQiLCJDb250ZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/tabs.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/ui/tooltip.tsx":
/*!***********************************!*\
!*** ./components/ui/tooltip.tsx ***!
\***********************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Tooltip: () => (/* binding */ Tooltip),\n/* harmony export */ TooltipContent: () => (/* binding */ TooltipContent),\n/* harmony export */ TooltipProvider: () => (/* binding */ TooltipProvider),\n/* harmony export */ TooltipTrigger: () => (/* binding */ TooltipTrigger)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-tooltip */ \"(app-pages-browser)/./node_modules/@radix-ui/react-tooltip/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(app-pages-browser)/./lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Tooltip,TooltipTrigger,TooltipContent,TooltipProvider auto */ \n\n\n\nconst TooltipProvider = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Provider;\nconst Tooltip = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Root;\nconst TooltipTrigger = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Trigger;\nconst TooltipContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(_c = (param, ref)=>{\n let { className, sideOffset = 4, ...props } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Content, {\n ref: ref,\n sideOffset: sideOffset,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)(\"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\", className),\n ...props\n }, void 0, false, {\n fileName: \"/home/alma/nextgen/Neah-mail/components/ui/tooltip.tsx\",\n lineNumber: 18,\n columnNumber: 3\n }, undefined);\n});\n_c1 = TooltipContent;\nTooltipContent.displayName = _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_3__.Content.displayName;\n\nvar _c, _c1;\n$RefreshReg$(_c, \"TooltipContent$React.forwardRef\");\n$RefreshReg$(_c1, \"TooltipContent\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvdG9vbHRpcC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUU4QjtBQUM2QjtBQUUzQjtBQUVoQyxNQUFNRyxrQkFBa0JGLDZEQUF5QjtBQUVqRCxNQUFNSSxVQUFVSix5REFBcUI7QUFFckMsTUFBTU0saUJBQWlCTiw0REFBd0I7QUFFL0MsTUFBTVEsK0JBQWlCVCw2Q0FBZ0IsTUFHckMsUUFBMENXO1FBQXpDLEVBQUVDLFNBQVMsRUFBRUMsYUFBYSxDQUFDLEVBQUUsR0FBR0MsT0FBTzt5QkFDeEMsOERBQUNiLDREQUF3QjtRQUN2QlUsS0FBS0E7UUFDTEUsWUFBWUE7UUFDWkQsV0FBV1YsOENBQUVBLENBQ1gsc1lBQ0FVO1FBRUQsR0FBR0UsS0FBSzs7Ozs7Ozs7QUFHYkwsZUFBZU8sV0FBVyxHQUFHZiw0REFBd0IsQ0FBQ2UsV0FBVztBQUVFIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvdWkvdG9vbHRpcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCAqIGFzIFRvb2x0aXBQcmltaXRpdmUgZnJvbSBcIkByYWRpeC11aS9yZWFjdC10b29sdGlwXCJcblxuaW1wb3J0IHsgY24gfSBmcm9tIFwiQC9saWIvdXRpbHNcIlxuXG5jb25zdCBUb29sdGlwUHJvdmlkZXIgPSBUb29sdGlwUHJpbWl0aXZlLlByb3ZpZGVyXG5cbmNvbnN0IFRvb2x0aXAgPSBUb29sdGlwUHJpbWl0aXZlLlJvb3RcblxuY29uc3QgVG9vbHRpcFRyaWdnZXIgPSBUb29sdGlwUHJpbWl0aXZlLlRyaWdnZXJcblxuY29uc3QgVG9vbHRpcENvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBUb29sdGlwUHJpbWl0aXZlLkNvbnRlbnQ+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFRvb2x0aXBQcmltaXRpdmUuQ29udGVudD5cbj4oKHsgY2xhc3NOYW1lLCBzaWRlT2Zmc2V0ID0gNCwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxUb29sdGlwUHJpbWl0aXZlLkNvbnRlbnRcbiAgICByZWY9e3JlZn1cbiAgICBzaWRlT2Zmc2V0PXtzaWRlT2Zmc2V0fVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICBcInotNTAgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbWQgYm9yZGVyIGJnLXBvcG92ZXIgcHgtMyBweS0xLjUgdGV4dC1zbSB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWQgYW5pbWF0ZS1pbiBmYWRlLWluLTAgem9vbS1pbi05NSBkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0IGRhdGEtW3N0YXRlPWNsb3NlZF06ZmFkZS1vdXQtMCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnpvb20tb3V0LTk1IGRhdGEtW3NpZGU9Ym90dG9tXTpzbGlkZS1pbi1mcm9tLXRvcC0yIGRhdGEtW3NpZGU9bGVmdF06c2xpZGUtaW4tZnJvbS1yaWdodC0yIGRhdGEtW3NpZGU9cmlnaHRdOnNsaWRlLWluLWZyb20tbGVmdC0yIGRhdGEtW3NpZGU9dG9wXTpzbGlkZS1pbi1mcm9tLWJvdHRvbS0yXCIsXG4gICAgICBjbGFzc05hbWVcbiAgICApfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5Ub29sdGlwQ29udGVudC5kaXNwbGF5TmFtZSA9IFRvb2x0aXBQcmltaXRpdmUuQ29udGVudC5kaXNwbGF5TmFtZVxuXG5leHBvcnQgeyBUb29sdGlwLCBUb29sdGlwVHJpZ2dlciwgVG9vbHRpcENvbnRlbnQsIFRvb2x0aXBQcm92aWRlciB9XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJUb29sdGlwUHJpbWl0aXZlIiwiY24iLCJUb29sdGlwUHJvdmlkZXIiLCJQcm92aWRlciIsIlRvb2x0aXAiLCJSb290IiwiVG9vbHRpcFRyaWdnZXIiLCJUcmlnZ2VyIiwiVG9vbHRpcENvbnRlbnQiLCJmb3J3YXJkUmVmIiwicmVmIiwiY2xhc3NOYW1lIiwic2lkZU9mZnNldCIsInByb3BzIiwiQ29udGVudCIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/tooltip.tsx\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/ui/use-toast.ts":
/*!************************************!*\
!*** ./components/ui/use-toast.ts ***!
\************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ reducer: () => (/* binding */ reducer),\n/* harmony export */ toast: () => (/* binding */ toast),\n/* harmony export */ useToast: () => (/* binding */ useToast)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ reducer,useToast,toast auto */ // Inspired by react-hot-toast library\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\"\n};\nlet count = 0;\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\nconst toastTimeouts = new Map();\nconst addToRemoveQueue = (toastId)=>{\n if (toastTimeouts.has(toastId)) {\n return;\n }\n const timeout = setTimeout(()=>{\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId\n });\n }, TOAST_REMOVE_DELAY);\n toastTimeouts.set(toastId, timeout);\n};\nconst reducer = (state, action)=>{\n switch(action.type){\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [\n action.toast,\n ...state.toasts\n ].slice(0, TOAST_LIMIT)\n };\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t)=>t.id === action.toast.id ? {\n ...t,\n ...action.toast\n } : t)\n };\n case \"DISMISS_TOAST\":\n {\n const { toastId } = action;\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast)=>{\n addToRemoveQueue(toast.id);\n });\n }\n return {\n ...state,\n toasts: state.toasts.map((t)=>t.id === toastId || toastId === undefined ? {\n ...t,\n open: false\n } : t)\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: []\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t)=>t.id !== action.toastId)\n };\n }\n};\nconst listeners = [];\nlet memoryState = {\n toasts: []\n};\nfunction dispatch(action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener)=>{\n listener(memoryState);\n });\n}\nfunction toast(param) {\n let { ...props } = param;\n const id = genId();\n const update = (props)=>dispatch({\n type: \"UPDATE_TOAST\",\n toast: {\n ...props,\n id\n }\n });\n const dismiss = ()=>dispatch({\n type: \"DISMISS_TOAST\",\n toastId: id\n });\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open)=>{\n if (!open) dismiss();\n }\n }\n });\n return {\n id: id,\n dismiss,\n update\n };\n}\nfunction useToast() {\n const [state, setState] = react__WEBPACK_IMPORTED_MODULE_0__.useState(memoryState);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"useToast.useEffect\": ()=>{\n listeners.push(setState);\n return ({\n \"useToast.useEffect\": ()=>{\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n })[\"useToast.useEffect\"];\n }\n }[\"useToast.useEffect\"], [\n state\n ]);\n return {\n ...state,\n toast,\n dismiss: (toastId)=>dispatch({\n type: \"DISMISS_TOAST\",\n toastId\n })\n };\n}\n\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvdWkvdXNlLXRvYXN0LnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OzRFQUVBLHNDQUFzQztBQUNSO0FBTzlCLE1BQU1DLGNBQWM7QUFDcEIsTUFBTUMscUJBQXFCO0FBUzNCLE1BQU1DLGNBQWM7SUFDbEJDLFdBQVc7SUFDWEMsY0FBYztJQUNkQyxlQUFlO0lBQ2ZDLGNBQWM7QUFDaEI7QUFFQSxJQUFJQyxRQUFRO0FBRVosU0FBU0M7SUFDUEQsUUFBUSxDQUFDQSxRQUFRLEtBQUtFLE9BQU9DLGdCQUFnQjtJQUM3QyxPQUFPSCxNQUFNSSxRQUFRO0FBQ3ZCO0FBMEJBLE1BQU1DLGdCQUFnQixJQUFJQztBQUUxQixNQUFNQyxtQkFBbUIsQ0FBQ0M7SUFDeEIsSUFBSUgsY0FBY0ksR0FBRyxDQUFDRCxVQUFVO1FBQzlCO0lBQ0Y7SUFFQSxNQUFNRSxVQUFVQyxXQUFXO1FBQ3pCTixjQUFjTyxNQUFNLENBQUNKO1FBQ3JCSyxTQUFTO1lBQ1BDLE1BQU07WUFDTk4sU0FBU0E7UUFDWDtJQUNGLEdBQUdkO0lBRUhXLGNBQWNVLEdBQUcsQ0FBQ1AsU0FBU0U7QUFDN0I7QUFFTyxNQUFNTSxVQUFVLENBQUNDLE9BQWNDO0lBQ3BDLE9BQVFBLE9BQU9KLElBQUk7UUFDakIsS0FBSztZQUNILE9BQU87Z0JBQ0wsR0FBR0csS0FBSztnQkFDUkUsUUFBUTtvQkFBQ0QsT0FBT0UsS0FBSzt1QkFBS0gsTUFBTUUsTUFBTTtpQkFBQyxDQUFDRSxLQUFLLENBQUMsR0FBRzVCO1lBQ25EO1FBRUYsS0FBSztZQUNILE9BQU87Z0JBQ0wsR0FBR3dCLEtBQUs7Z0JBQ1JFLFFBQVFGLE1BQU1FLE1BQU0sQ0FBQ0csR0FBRyxDQUFDLENBQUNDLElBQ3hCQSxFQUFFQyxFQUFFLEtBQUtOLE9BQU9FLEtBQUssQ0FBQ0ksRUFBRSxHQUFHO3dCQUFFLEdBQUdELENBQUM7d0JBQUUsR0FBR0wsT0FBT0UsS0FBSztvQkFBQyxJQUFJRztZQUUzRDtRQUVGLEtBQUs7WUFBaUI7Z0JBQ3BCLE1BQU0sRUFBRWYsT0FBTyxFQUFFLEdBQUdVO2dCQUVwQiwyRUFBMkU7Z0JBQzNFLHVDQUF1QztnQkFDdkMsSUFBSVYsU0FBUztvQkFDWEQsaUJBQWlCQztnQkFDbkIsT0FBTztvQkFDTFMsTUFBTUUsTUFBTSxDQUFDTSxPQUFPLENBQUMsQ0FBQ0w7d0JBQ3BCYixpQkFBaUJhLE1BQU1JLEVBQUU7b0JBQzNCO2dCQUNGO2dCQUVBLE9BQU87b0JBQ0wsR0FBR1AsS0FBSztvQkFDUkUsUUFBUUYsTUFBTUUsTUFBTSxDQUFDRyxHQUFHLENBQUMsQ0FBQ0MsSUFDeEJBLEVBQUVDLEVBQUUsS0FBS2hCLFdBQVdBLFlBQVlrQixZQUM1Qjs0QkFDRSxHQUFHSCxDQUFDOzRCQUNKSSxNQUFNO3dCQUNSLElBQ0FKO2dCQUVSO1lBQ0Y7UUFDQSxLQUFLO1lBQ0gsSUFBSUwsT0FBT1YsT0FBTyxLQUFLa0IsV0FBVztnQkFDaEMsT0FBTztvQkFDTCxHQUFHVCxLQUFLO29CQUNSRSxRQUFRLEVBQUU7Z0JBQ1o7WUFDRjtZQUNBLE9BQU87Z0JBQ0wsR0FBR0YsS0FBSztnQkFDUkUsUUFBUUYsTUFBTUUsTUFBTSxDQUFDUyxNQUFNLENBQUMsQ0FBQ0wsSUFBTUEsRUFBRUMsRUFBRSxLQUFLTixPQUFPVixPQUFPO1lBQzVEO0lBQ0o7QUFDRixFQUFDO0FBRUQsTUFBTXFCLFlBQTJDLEVBQUU7QUFFbkQsSUFBSUMsY0FBcUI7SUFBRVgsUUFBUSxFQUFFO0FBQUM7QUFFdEMsU0FBU04sU0FBU0ssTUFBYztJQUM5QlksY0FBY2QsUUFBUWMsYUFBYVo7SUFDbkNXLFVBQVVKLE9BQU8sQ0FBQyxDQUFDTTtRQUNqQkEsU0FBU0Q7SUFDWDtBQUNGO0FBSUEsU0FBU1YsTUFBTSxLQUFtQjtRQUFuQixFQUFFLEdBQUdZLE9BQWMsR0FBbkI7SUFDYixNQUFNUixLQUFLdkI7SUFFWCxNQUFNZ0MsU0FBUyxDQUFDRCxRQUNkbkIsU0FBUztZQUNQQyxNQUFNO1lBQ05NLE9BQU87Z0JBQUUsR0FBR1ksS0FBSztnQkFBRVI7WUFBRztRQUN4QjtJQUNGLE1BQU1VLFVBQVUsSUFBTXJCLFNBQVM7WUFBRUMsTUFBTTtZQUFpQk4sU0FBU2dCO1FBQUc7SUFFcEVYLFNBQVM7UUFDUEMsTUFBTTtRQUNOTSxPQUFPO1lBQ0wsR0FBR1ksS0FBSztZQUNSUjtZQUNBRyxNQUFNO1lBQ05RLGNBQWMsQ0FBQ1I7Z0JBQ2IsSUFBSSxDQUFDQSxNQUFNTztZQUNiO1FBQ0Y7SUFDRjtJQUVBLE9BQU87UUFDTFYsSUFBSUE7UUFDSlU7UUFDQUQ7SUFDRjtBQUNGO0FBRUEsU0FBU0c7SUFDUCxNQUFNLENBQUNuQixPQUFPb0IsU0FBUyxHQUFHN0MsMkNBQWMsQ0FBUXNDO0lBRWhEdEMsNENBQWU7OEJBQUM7WUFDZHFDLFVBQVVXLElBQUksQ0FBQ0g7WUFDZjtzQ0FBTztvQkFDTCxNQUFNSSxRQUFRWixVQUFVYSxPQUFPLENBQUNMO29CQUNoQyxJQUFJSSxRQUFRLENBQUMsR0FBRzt3QkFDZFosVUFBVWMsTUFBTSxDQUFDRixPQUFPO29CQUMxQjtnQkFDRjs7UUFDRjs2QkFBRztRQUFDeEI7S0FBTTtJQUVWLE9BQU87UUFDTCxHQUFHQSxLQUFLO1FBQ1JHO1FBQ0FjLFNBQVMsQ0FBQzFCLFVBQXFCSyxTQUFTO2dCQUFFQyxNQUFNO2dCQUFpQk47WUFBUTtJQUMzRTtBQUNGO0FBRTBCIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2NvbXBvbmVudHMvdWkvdXNlLXRvYXN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbi8vIEluc3BpcmVkIGJ5IHJlYWN0LWhvdC10b2FzdCBsaWJyYXJ5XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgdHlwZSB7XG4gIFRvYXN0QWN0aW9uRWxlbWVudCxcbiAgVG9hc3RQcm9wcyxcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS90b2FzdFwiXG5cbmNvbnN0IFRPQVNUX0xJTUlUID0gMVxuY29uc3QgVE9BU1RfUkVNT1ZFX0RFTEFZID0gMTAwMDAwMFxuXG50eXBlIFRvYXN0ZXJUb2FzdCA9IFRvYXN0UHJvcHMgJiB7XG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU/OiBSZWFjdC5SZWFjdE5vZGVcbiAgZGVzY3JpcHRpb24/OiBSZWFjdC5SZWFjdE5vZGVcbiAgYWN0aW9uPzogVG9hc3RBY3Rpb25FbGVtZW50XG59XG5cbmNvbnN0IGFjdGlvblR5cGVzID0ge1xuICBBRERfVE9BU1Q6IFwiQUREX1RPQVNUXCIsXG4gIFVQREFURV9UT0FTVDogXCJVUERBVEVfVE9BU1RcIixcbiAgRElTTUlTU19UT0FTVDogXCJESVNNSVNTX1RPQVNUXCIsXG4gIFJFTU9WRV9UT0FTVDogXCJSRU1PVkVfVE9BU1RcIixcbn0gYXMgY29uc3RcblxubGV0IGNvdW50ID0gMFxuXG5mdW5jdGlvbiBnZW5JZCgpIHtcbiAgY291bnQgPSAoY291bnQgKyAxKSAlIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXG4gIHJldHVybiBjb3VudC50b1N0cmluZygpXG59XG5cbnR5cGUgQWN0aW9uVHlwZSA9IHR5cGVvZiBhY3Rpb25UeXBlc1xuXG50eXBlIEFjdGlvbiA9XG4gIHwge1xuICAgICAgdHlwZTogQWN0aW9uVHlwZVtcIkFERF9UT0FTVFwiXVxuICAgICAgdG9hc3Q6IFRvYXN0ZXJUb2FzdFxuICAgIH1cbiAgfCB7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlW1wiVVBEQVRFX1RPQVNUXCJdXG4gICAgICB0b2FzdDogUGFydGlhbDxUb2FzdGVyVG9hc3Q+XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6IEFjdGlvblR5cGVbXCJESVNNSVNTX1RPQVNUXCJdXG4gICAgICB0b2FzdElkPzogVG9hc3RlclRvYXN0W1wiaWRcIl1cbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogQWN0aW9uVHlwZVtcIlJFTU9WRV9UT0FTVFwiXVxuICAgICAgdG9hc3RJZD86IFRvYXN0ZXJUb2FzdFtcImlkXCJdXG4gICAgfVxuXG5pbnRlcmZhY2UgU3RhdGUge1xuICB0b2FzdHM6IFRvYXN0ZXJUb2FzdFtdXG59XG5cbmNvbnN0IHRvYXN0VGltZW91dHMgPSBuZXcgTWFwPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+KClcblxuY29uc3QgYWRkVG9SZW1vdmVRdWV1ZSA9ICh0b2FzdElkOiBzdHJpbmcpID0+IHtcbiAgaWYgKHRvYXN0VGltZW91dHMuaGFzKHRvYXN0SWQpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgdG9hc3RUaW1lb3V0cy5kZWxldGUodG9hc3RJZClcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBcIlJFTU9WRV9UT0FTVFwiLFxuICAgICAgdG9hc3RJZDogdG9hc3RJZCxcbiAgICB9KVxuICB9LCBUT0FTVF9SRU1PVkVfREVMQVkpXG5cbiAgdG9hc3RUaW1lb3V0cy5zZXQodG9hc3RJZCwgdGltZW91dClcbn1cblxuZXhwb3J0IGNvbnN0IHJlZHVjZXIgPSAoc3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbik6IFN0YXRlID0+IHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgXCJBRERfVE9BU1RcIjpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB0b2FzdHM6IFthY3Rpb24udG9hc3QsIC4uLnN0YXRlLnRvYXN0c10uc2xpY2UoMCwgVE9BU1RfTElNSVQpLFxuICAgICAgfVxuXG4gICAgY2FzZSBcIlVQREFURV9UT0FTVFwiOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHRvYXN0czogc3RhdGUudG9hc3RzLm1hcCgodCkgPT5cbiAgICAgICAgICB0LmlkID09PSBhY3Rpb24udG9hc3QuaWQgPyB7IC4uLnQsIC4uLmFjdGlvbi50b2FzdCB9IDogdFxuICAgICAgICApLFxuICAgICAgfVxuXG4gICAgY2FzZSBcIkRJU01JU1NfVE9BU1RcIjoge1xuICAgICAgY29uc3QgeyB0b2FzdElkIH0gPSBhY3Rpb25cblxuICAgICAgLy8gISBTaWRlIGVmZmVjdHMgISAtIFRoaXMgY291bGQgYmUgZXh0cmFjdGVkIGludG8gYSBkaXNtaXNzVG9hc3QoKSBhY3Rpb24sXG4gICAgICAvLyBidXQgSSdsbCBrZWVwIGl0IGhlcmUgZm9yIHNpbXBsaWNpdHlcbiAgICAgIGlmICh0b2FzdElkKSB7XG4gICAgICAgIGFkZFRvUmVtb3ZlUXVldWUodG9hc3RJZClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlLnRvYXN0cy5mb3JFYWNoKCh0b2FzdCkgPT4ge1xuICAgICAgICAgIGFkZFRvUmVtb3ZlUXVldWUodG9hc3QuaWQpXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB0b2FzdHM6IHN0YXRlLnRvYXN0cy5tYXAoKHQpID0+XG4gICAgICAgICAgdC5pZCA9PT0gdG9hc3RJZCB8fCB0b2FzdElkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIC4uLnQsXG4gICAgICAgICAgICAgICAgb3BlbjogZmFsc2UsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdFxuICAgICAgICApLFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIFwiUkVNT1ZFX1RPQVNUXCI6XG4gICAgICBpZiAoYWN0aW9uLnRvYXN0SWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIHRvYXN0czogW10sXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB0b2FzdHM6IHN0YXRlLnRvYXN0cy5maWx0ZXIoKHQpID0+IHQuaWQgIT09IGFjdGlvbi50b2FzdElkKSxcbiAgICAgIH1cbiAgfVxufVxuXG5jb25zdCBsaXN0ZW5lcnM6IEFycmF5PChzdGF0ZTogU3RhdGUpID0+IHZvaWQ+ID0gW11cblxubGV0IG1lbW9yeVN0YXRlOiBTdGF0ZSA9IHsgdG9hc3RzOiBbXSB9XG5cbmZ1bmN0aW9uIGRpc3BhdGNoKGFjdGlvbjogQWN0aW9uKSB7XG4gIG1lbW9yeVN0YXRlID0gcmVkdWNlcihtZW1vcnlTdGF0ZSwgYWN0aW9uKVxuICBsaXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IHtcbiAgICBsaXN0ZW5lcihtZW1vcnlTdGF0ZSlcbiAgfSlcbn1cblxudHlwZSBUb2FzdCA9IE9taXQ8VG9hc3RlclRvYXN0LCBcImlkXCI+XG5cbmZ1bmN0aW9uIHRvYXN0KHsgLi4ucHJvcHMgfTogVG9hc3QpIHtcbiAgY29uc3QgaWQgPSBnZW5JZCgpXG5cbiAgY29uc3QgdXBkYXRlID0gKHByb3BzOiBUb2FzdGVyVG9hc3QpID0+XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogXCJVUERBVEVfVE9BU1RcIixcbiAgICAgIHRvYXN0OiB7IC4uLnByb3BzLCBpZCB9LFxuICAgIH0pXG4gIGNvbnN0IGRpc21pc3MgPSAoKSA9PiBkaXNwYXRjaCh7IHR5cGU6IFwiRElTTUlTU19UT0FTVFwiLCB0b2FzdElkOiBpZCB9KVxuXG4gIGRpc3BhdGNoKHtcbiAgICB0eXBlOiBcIkFERF9UT0FTVFwiLFxuICAgIHRvYXN0OiB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGlkLFxuICAgICAgb3BlbjogdHJ1ZSxcbiAgICAgIG9uT3BlbkNoYW5nZTogKG9wZW4pID0+IHtcbiAgICAgICAgaWYgKCFvcGVuKSBkaXNtaXNzKClcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcblxuICByZXR1cm4ge1xuICAgIGlkOiBpZCxcbiAgICBkaXNtaXNzLFxuICAgIHVwZGF0ZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VUb2FzdCgpIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSBSZWFjdC51c2VTdGF0ZTxTdGF0ZT4obWVtb3J5U3RhdGUpXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBsaXN0ZW5lcnMucHVzaChzZXRTdGF0ZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBsaXN0ZW5lcnMuaW5kZXhPZihzZXRTdGF0ZSlcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIGxpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpXG4gICAgICB9XG4gICAgfVxuICB9LCBbc3RhdGVdKVxuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgdG9hc3QsXG4gICAgZGlzbWlzczogKHRvYXN0SWQ/OiBzdHJpbmcpID0+IGRpc3BhdGNoKHsgdHlwZTogXCJESVNNSVNTX1RPQVNUXCIsIHRvYXN0SWQgfSksXG4gIH1cbn1cblxuZXhwb3J0IHsgdXNlVG9hc3QsIHRvYXN0IH1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlRPQVNUX0xJTUlUIiwiVE9BU1RfUkVNT1ZFX0RFTEFZIiwiYWN0aW9uVHlwZXMiLCJBRERfVE9BU1QiLCJVUERBVEVfVE9BU1QiLCJESVNNSVNTX1RPQVNUIiwiUkVNT1ZFX1RPQVNUIiwiY291bnQiLCJnZW5JZCIsIk51bWJlciIsIk1BWF9TQUZFX0lOVEVHRVIiLCJ0b1N0cmluZyIsInRvYXN0VGltZW91dHMiLCJNYXAiLCJhZGRUb1JlbW92ZVF1ZXVlIiwidG9hc3RJZCIsImhhcyIsInRpbWVvdXQiLCJzZXRUaW1lb3V0IiwiZGVsZXRlIiwiZGlzcGF0Y2giLCJ0eXBlIiwic2V0IiwicmVkdWNlciIsInN0YXRlIiwiYWN0aW9uIiwidG9hc3RzIiwidG9hc3QiLCJzbGljZSIsIm1hcCIsInQiLCJpZCIsImZvckVhY2giLCJ1bmRlZmluZWQiLCJvcGVuIiwiZmlsdGVyIiwibGlzdGVuZXJzIiwibWVtb3J5U3RhdGUiLCJsaXN0ZW5lciIsInByb3BzIiwidXBkYXRlIiwiZGlzbWlzcyIsIm9uT3BlbkNoYW5nZSIsInVzZVRvYXN0Iiwic2V0U3RhdGUiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInB1c2giLCJpbmRleCIsImluZGV4T2YiLCJzcGxpY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/ui/use-toast.ts\n"));
/***/ }),
/***/ "(app-pages-browser)/./hooks/use-email-state.ts":
/*!**********************************!*\
!*** ./hooks/use-email-state.ts ***!
\**********************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useEmailState: () => (/* binding */ useEmailState)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next-auth/react */ \"(app-pages-browser)/./node_modules/next-auth/react/index.js\");\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_auth_react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _use_toast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-toast */ \"(app-pages-browser)/./hooks/use-toast.ts\");\n/* harmony import */ var _lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/reducers/emailReducer */ \"(app-pages-browser)/./lib/reducers/emailReducer.ts\");\n/* harmony import */ var _lib_services_prefetch_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/lib/services/prefetch-service */ \"(app-pages-browser)/./lib/services/prefetch-service.ts\");\n/* harmony import */ var _lib_utils_email_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/lib/utils/email-utils */ \"(app-pages-browser)/./lib/utils/email-utils.ts\");\n\n\n\n\n\n\nconst useEmailState = ()=>{\n var _session_user, _session_user1, _session_user2, _session_user3, _session_user4;\n const [state, dispatch] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.emailReducer, _lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.initialState);\n const { data: session } = (0,next_auth_react__WEBPACK_IMPORTED_MODULE_1__.useSession)();\n const { toast } = (0,_use_toast__WEBPACK_IMPORTED_MODULE_2__.useToast)();\n // Refs to track state\n const updateUnreadTimerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const lastEmailViewedRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const failedFetchCountRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n const lastFolderRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const lastPageLoadedRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n const prevFolderRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const loadMoreTriggerTimeRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n // Expose dispatch function to window for external components\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"useEmailState.useEffect\": ()=>{\n // Make dispatch available globally for older code\n window.dispatchEmailAction = dispatch;\n window.__emailStateDispatch = dispatch;\n // Clean up on unmount\n return ({\n \"useEmailState.useEffect\": ()=>{\n window.dispatchEmailAction = undefined;\n window.__emailStateDispatch = undefined;\n }\n })[\"useEmailState.useEffect\"];\n }\n }[\"useEmailState.useEffect\"], [\n dispatch\n ]);\n // Helper function to log operations\n const logEmailOp = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[logEmailOp]\": (operation, details, data)=>{\n const timestamp = new Date().toISOString().split('T')[1].substring(0, 12);\n console.log(\"[\".concat(timestamp, \"][EMAIL-STATE][\").concat(operation, \"] \").concat(details));\n if (data) {\n console.log(\"[\".concat(timestamp, \"][EMAIL-STATE][DATA]\"), data);\n }\n }\n }[\"useEmailState.useCallback[logEmailOp]\"], []);\n // Load emails from the server\n const loadEmails = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[loadEmails]\": async function(page, perPage) {\n let isLoadMore = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;\n var _session_user;\n // CRITICAL FIX: Do important validation before setting loading state\n if (!(session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id)) return;\n // CRITICAL FIX: Always log the isLoadMore parameter\n console.log(\"[DEBUG-LOAD_EMAILS] Called with isLoadMore=\".concat(isLoadMore, \", page=\").concat(page, \", currentEmails=\").concat(state.emails.length));\n // Set the current folder and account being loaded to detect changes\n const startFolder = state.currentFolder;\n const startAccount = state.selectedAccount ? state.selectedAccount.id : 'default';\n // CRITICAL FIX: Force loading state to true\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n try {\n var _data_emails, _data_emails1;\n // Get normalized parameters using helper function with proper account ID handling\n const accountId = state.selectedAccount ? state.selectedAccount.id : undefined;\n const { normalizedFolder, effectiveAccountId, prefixedFolder } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(state.currentFolder, accountId);\n logEmailOp('LOAD_EMAILS', \"Loading emails for \".concat(prefixedFolder, \" (account: \").concat(effectiveAccountId, \", isLoadMore: \").concat(isLoadMore, \", page: \").concat(page, \")\"));\n // Construct query parameters\n const queryParams = new URLSearchParams({\n folder: normalizedFolder,\n page: page.toString(),\n perPage: perPage.toString(),\n accountId: effectiveAccountId\n });\n // Debug log existing emails count\n if (isLoadMore) {\n console.log(\"[DEBUG-PAGINATION] Loading more emails. Current page: \".concat(page, \", existing emails: \").concat(state.emails.length));\n }\n // Try to get cached emails first\n logEmailOp('CACHE_CHECK', \"Checking cache for \".concat(prefixedFolder, \", page: \").concat(page));\n const cachedEmails = await (0,_lib_services_prefetch_service__WEBPACK_IMPORTED_MODULE_4__.getCachedEmailsWithTimeout)(session.user.id, prefixedFolder, page, perPage, 100, effectiveAccountId);\n if (cachedEmails) {\n var _cachedEmails_emails;\n logEmailOp('CACHE_HIT', \"Using cached data for \".concat(prefixedFolder, \", page: \").concat(page, \", emails: \").concat(((_cachedEmails_emails = cachedEmails.emails) === null || _cachedEmails_emails === void 0 ? void 0 : _cachedEmails_emails.length) || 0, \", isLoadMore: \").concat(isLoadMore));\n // Ensure cached data has emails array property\n if (Array.isArray(cachedEmails.emails)) {\n // CRITICAL FIX: Double check we're using the right action type based on isLoadMore param\n console.log(\"[DEBUG-CACHE_HIT] Dispatching \".concat(isLoadMore ? 'APPEND_EMAILS' : 'SET_EMAILS', \" with \").concat(cachedEmails.emails.length, \" emails\"));\n // Dispatch appropriate action based on if we're loading more - DO NOT OVERRIDE isLoadMore!\n dispatch({\n type: isLoadMore ? 'APPEND_EMAILS' : 'SET_EMAILS',\n payload: cachedEmails.emails\n });\n // Set pagination info from cache if available\n if (cachedEmails.totalEmails) {\n dispatch({\n type: 'SET_TOTAL_EMAILS',\n payload: cachedEmails.totalEmails\n });\n }\n if (cachedEmails.totalPages) {\n dispatch({\n type: 'SET_TOTAL_PAGES',\n payload: cachedEmails.totalPages\n });\n }\n // Update available mailboxes if provided\n if (cachedEmails.mailboxes && cachedEmails.mailboxes.length > 0) {\n dispatch({\n type: 'SET_MAILBOXES',\n payload: cachedEmails.mailboxes\n });\n }\n }\n // CRITICAL FIX: If this was a loadMore operation, check the result after the dispatch\n if (isLoadMore) {\n setTimeout({\n \"useEmailState.useCallback[loadEmails]\": ()=>{\n console.log(\"[DEBUG-CACHE_HIT_APPEND] After \".concat(isLoadMore ? 'APPEND' : 'SET', \", email count is now: \").concat(state.emails.length));\n }\n }[\"useEmailState.useCallback[loadEmails]\"], 0);\n }\n return;\n }\n // Fetch emails from API if no cache hit\n logEmailOp('API_FETCH', \"Fetching emails from API: \".concat(queryParams.toString(), \", isLoadMore: \").concat(isLoadMore));\n console.log(\"[DEBUG-API_FETCH] Fetching from /api/courrier/emails?\".concat(queryParams.toString()));\n const response = await fetch(\"/api/courrier/emails?\".concat(queryParams.toString()));\n if (!response.ok) {\n // CRITICAL FIX: Try to recover from fetch errors by retrying with different pagination\n if (isLoadMore && page > 1) {\n logEmailOp('ERROR_RECOVERY', \"Failed to fetch emails for page \".concat(page, \", attempting to recover by decrementing page\"));\n console.log(\"[DEBUG-ERROR] API returned \".concat(response.status, \" for page \").concat(page));\n // If we're loading more and there's an error, just decrement the page to avoid getting stuck\n dispatch({\n type: 'SET_PAGE',\n payload: page - 1\n });\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n // Also reset total pages to try again\n dispatch({\n type: 'SET_TOTAL_PAGES',\n payload: page\n });\n return;\n }\n const errorData = await response.json();\n throw new Error(errorData.error || 'Failed to fetch emails');\n }\n const data = await response.json();\n console.log(\"[DEBUG-API_RESPONSE] Got response with \".concat(((_data_emails = data.emails) === null || _data_emails === void 0 ? void 0 : _data_emails.length) || 0, \" emails, totalPages: \").concat(data.totalPages, \", totalEmails: \").concat(data.totalEmails, \", isLoadMore: \").concat(isLoadMore));\n // CRITICAL FIX: Enhanced empty results handling\n if (!data.emails || data.emails.length === 0) {\n console.log(\"[DEBUG-EMPTY] No emails in response for page \".concat(page));\n // If we're at a page > 1 and got no results, the paging is off, so try again with page 1\n if (page > 1 && !isLoadMore) {\n logEmailOp('EMPTY_RESULTS', \"No emails returned for page \".concat(page, \", resetting to page 1\"));\n dispatch({\n type: 'SET_PAGE',\n payload: 1\n });\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n return;\n }\n // If we're already at page 1, just update the state with no emails\n if (!isLoadMore) {\n logEmailOp('EMPTY_RESULTS', \"No emails found in \".concat(state.currentFolder));\n dispatch({\n type: 'SET_EMAILS',\n payload: []\n });\n dispatch({\n type: 'SET_TOTAL_EMAILS',\n payload: 0\n });\n dispatch({\n type: 'SET_TOTAL_PAGES',\n payload: 0\n });\n } else {\n // For load more, just set loading to false but keep existing emails\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n }\n return;\n }\n // Ensure all emails have proper account ID and folder format\n if (Array.isArray(data.emails)) {\n // Log email dates for debugging\n if (data.emails.length > 0) {\n logEmailOp('EMAIL_DATES', \"First few email dates before processing:\", data.emails.slice(0, 5).map({\n \"useEmailState.useCallback[loadEmails]\": (e)=>{\n var _e_subject;\n return {\n id: e.id.substring(0, 8),\n subject: (_e_subject = e.subject) === null || _e_subject === void 0 ? void 0 : _e_subject.substring(0, 20),\n date: e.date,\n dateObj: new Date(e.date),\n timestamp: new Date(e.date).getTime()\n };\n }\n }[\"useEmailState.useCallback[loadEmails]\"]));\n }\n data.emails.forEach({\n \"useEmailState.useCallback[loadEmails]\": (email)=>{\n // If email doesn't have an accountId, set it to the effective one\n if (!email.accountId) {\n email.accountId = effectiveAccountId;\n }\n // Ensure folder has the proper prefix format\n if (email.folder && !email.folder.includes(':')) {\n email.folder = \"\".concat(email.accountId, \":\").concat(email.folder);\n }\n // Ensure date is a valid Date object (handle strings or timestamps)\n if (email.date && !(email.date instanceof Date)) {\n try {\n // Convert to a proper Date object if it's a string or number\n const dateObj = new Date(email.date);\n // Verify it's a valid date\n if (!isNaN(dateObj.getTime())) {\n email.date = dateObj;\n }\n } catch (err) {\n // If conversion fails, log and use current date as fallback\n console.error(\"Invalid date format for email \".concat(email.id, \": \").concat(email.date));\n email.date = new Date();\n }\n }\n }\n }[\"useEmailState.useCallback[loadEmails]\"]);\n }\n // CRITICAL FIX: Log what we're about to do\n console.log(\"[DEBUG-DISPATCH] About to dispatch \".concat(isLoadMore ? 'APPEND_EMAILS' : 'SET_EMAILS', \" with \").concat(((_data_emails1 = data.emails) === null || _data_emails1 === void 0 ? void 0 : _data_emails1.length) || 0, \" emails\"));\n // Update state with fetched data\n dispatch({\n type: isLoadMore ? 'APPEND_EMAILS' : 'SET_EMAILS',\n payload: Array.isArray(data.emails) ? data.emails : []\n });\n // Double-check that we've updated the email list correctly after dispatch\n setTimeout({\n \"useEmailState.useCallback[loadEmails]\": ()=>{\n var _data_emails;\n console.log(\"[DEBUG-AFTER-DISPATCH] Email count is now: \".concat(state.emails.length, \", should include the \").concat(((_data_emails = data.emails) === null || _data_emails === void 0 ? void 0 : _data_emails.length) || 0, \" new emails we just loaded\"));\n }\n }[\"useEmailState.useCallback[loadEmails]\"], 0);\n if (data.totalEmails) {\n dispatch({\n type: 'SET_TOTAL_EMAILS',\n payload: data.totalEmails\n });\n }\n if (data.totalPages) {\n dispatch({\n type: 'SET_TOTAL_PAGES',\n payload: data.totalPages\n });\n }\n // Update available mailboxes if provided\n if (data.mailboxes && data.mailboxes.length > 0) {\n dispatch({\n type: 'SET_MAILBOXES',\n payload: data.mailboxes\n });\n }\n } catch (err) {\n logEmailOp('ERROR', \"Failed to load emails: \".concat(err instanceof Error ? err.message : String(err)));\n dispatch({\n type: 'SET_ERROR',\n payload: err instanceof Error ? err.message : 'Failed to load emails'\n });\n toast({\n variant: \"destructive\",\n title: \"Error\",\n description: err instanceof Error ? err.message : 'Failed to load emails'\n });\n } finally{\n var _state_selectedAccount;\n // CRITICAL FIX: Only clear loading state if the folder/account hasn't changed\n if (startFolder === state.currentFolder && startAccount === (((_state_selectedAccount = state.selectedAccount) === null || _state_selectedAccount === void 0 ? void 0 : _state_selectedAccount.id) || 'default')) {\n // Safe to clear loading state\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n } else {\n console.log(\"[DEBUG-LOAD_EMAILS] Folder/account changed during load, not clearing loading state\");\n }\n }\n }\n }[\"useEmailState.useCallback[loadEmails]\"], [\n session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id,\n state.currentFolder,\n state.selectedAccount,\n state.page,\n state.perPage,\n state.emails.length,\n toast,\n logEmailOp\n ]);\n // Change folder\n const changeFolder = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[changeFolder]\": async (folder, accountId)=>{\n logEmailOp('CHANGE_FOLDER', \"Changing to folder \".concat(folder, \" with account \").concat(accountId || 'default'));\n try {\n // CRITICAL FIX: Reset pagination state immediately\n lastPageLoadedRef.current = 0;\n // Reset page to 1 directly to prevent any issues with page effects\n // This will be atomic with the CHANGE_FOLDER action\n dispatch({\n type: 'SET_PAGE',\n payload: 1\n });\n // Clear existing emails - don't show old emails during load\n dispatch({\n type: 'SET_EMAILS',\n payload: []\n });\n // Set loading state explicitly - this is critical\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n // This will handle folder setting in a single atomic operation\n dispatch({\n type: 'CHANGE_FOLDER',\n payload: {\n folder,\n accountId: accountId || 'default'\n }\n });\n // CRITICAL: The email loading will be triggered by the folder effect\n // We don't need to call loadEmails directly here\n } catch (error) {\n logEmailOp('ERROR', \"Failed to change folder: \".concat(error instanceof Error ? error.message : String(error)));\n dispatch({\n type: 'SET_ERROR',\n payload: error instanceof Error ? error.message : 'Failed to change folder'\n });\n // Always ensure loading state is cleared on error\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n }\n }\n }[\"useEmailState.useCallback[changeFolder]\"], [\n logEmailOp,\n dispatch\n ]);\n // Select account\n const selectAccount = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[selectAccount]\": (account)=>{\n logEmailOp('SELECT_ACCOUNT', \"Selecting account: \".concat(account.email, \" (\").concat(account.id, \")\"));\n // Handle the entire account selection in a single atomic operation\n dispatch({\n type: 'SELECT_ACCOUNT',\n payload: account\n });\n // The folder loading will be triggered by the useEffect watching for currentFolder changes\n }\n }[\"useEmailState.useCallback[selectAccount]\"], [\n logEmailOp\n ]);\n // Handle email selection\n const handleEmailSelect = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[handleEmailSelect]\": async (emailId, accountId, folder)=>{\n logEmailOp('SELECT_EMAIL', \"Selecting email \".concat(emailId, \" from account \").concat(accountId, \" in folder \").concat(folder));\n if (!emailId) {\n dispatch({\n type: 'SELECT_EMAIL',\n payload: {\n emailId: '',\n accountId: '',\n folder: '',\n email: null\n }\n });\n return;\n }\n try {\n // Find the email in the current list\n const existingEmail = state.emails.find({\n \"useEmailState.useCallback[handleEmailSelect].existingEmail\": (e)=>e.id === emailId\n }[\"useEmailState.useCallback[handleEmailSelect].existingEmail\"]);\n if (existingEmail && existingEmail.contentFetched) {\n // Use the existing email if it has content already\n dispatch({\n type: 'SELECT_EMAIL',\n payload: {\n emailId,\n accountId,\n folder,\n email: existingEmail\n }\n });\n // Mark as read if not already\n if (!existingEmail.flags.seen) {\n markEmailAsRead(emailId, true, accountId);\n }\n return;\n }\n // Need to fetch the email content\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n // Extract account ID from folder name if present and none was explicitly provided\n const { normalizedFolder, effectiveAccountId } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(folder, accountId);\n // Fetch email content from API\n const response = await fetch(\"/api/courrier/\".concat(emailId, \"?folder=\").concat(normalizedFolder, \"&accountId=\").concat(effectiveAccountId));\n if (!response.ok) {\n throw new Error(\"Failed to fetch email content: \".concat(response.status));\n }\n const emailData = await response.json();\n // Mark the email as read on the server\n markEmailAsRead(emailId, true, effectiveAccountId);\n // Select the email\n dispatch({\n type: 'SELECT_EMAIL',\n payload: {\n emailId,\n accountId: effectiveAccountId,\n folder,\n email: emailData\n }\n });\n } catch (error) {\n logEmailOp('ERROR', \"Failed to select email: \".concat(error instanceof Error ? error.message : String(error)));\n dispatch({\n type: 'SET_ERROR',\n payload: error instanceof Error ? error.message : 'Failed to select email'\n });\n } finally{\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n }\n }\n }[\"useEmailState.useCallback[handleEmailSelect]\"], [\n state.emails,\n logEmailOp\n ]);\n // Toggle email selection for multi-select\n const toggleEmailSelection = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[toggleEmailSelection]\": (emailId)=>{\n dispatch({\n type: 'TOGGLE_EMAIL_SELECTION',\n payload: emailId\n });\n }\n }[\"useEmailState.useCallback[toggleEmailSelection]\"], []);\n // Toggle select all\n const toggleSelectAll = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[toggleSelectAll]\": ()=>{\n dispatch({\n type: 'TOGGLE_SELECT_ALL'\n });\n }\n }[\"useEmailState.useCallback[toggleSelectAll]\"], []);\n // Mark email as read/unread\n const markEmailAsRead = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[markEmailAsRead]\": async (emailId, isRead, accountId)=>{\n try {\n // Find the email to get its account ID if not provided\n const email = state.emails.find({\n \"useEmailState.useCallback[markEmailAsRead].email\": (e)=>e.id === emailId\n }[\"useEmailState.useCallback[markEmailAsRead].email\"]);\n const effectiveAccountId = accountId || (email === null || email === void 0 ? void 0 : email.accountId) || 'default';\n const folder = (email === null || email === void 0 ? void 0 : email.folder) || state.currentFolder;\n // Extract normalized folder\n const { normalizedFolder } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(folder, effectiveAccountId);\n logEmailOp('MARK_READ', \"Marking email \".concat(emailId, \" as \").concat(isRead ? 'read' : 'unread', \" in \").concat(normalizedFolder));\n // Update UI state immediately (optimistic update)\n dispatch({\n type: 'MARK_EMAIL_AS_READ',\n payload: {\n emailId,\n isRead,\n accountId: effectiveAccountId\n }\n });\n // NOTE: Don't update unread counts here - that's now handled by the updateUnreadCounts function\n // which is triggered by the email update above via the useEffect\n // Make API call to update on server\n const response = await fetch(\"/api/courrier/\".concat(emailId, \"/mark-read\"), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n isRead,\n folder: normalizedFolder,\n accountId: effectiveAccountId\n })\n });\n if (!response.ok) {\n throw new Error('Failed to mark email as read');\n }\n return true;\n } catch (error) {\n logEmailOp('ERROR', \"Failed to mark email as read: \".concat(error instanceof Error ? error.message : String(error)));\n toast({\n variant: \"destructive\",\n title: \"Error\",\n description: 'Failed to update email read status'\n });\n return false;\n }\n }\n }[\"useEmailState.useCallback[markEmailAsRead]\"], [\n state.emails,\n state.currentFolder,\n toast,\n logEmailOp\n ]);\n // Toggle starred status\n const toggleStarred = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[toggleStarred]\": async (emailId)=>{\n try {\n // Find the email in current list\n const email = state.emails.find({\n \"useEmailState.useCallback[toggleStarred].email\": (e)=>e.id === emailId\n }[\"useEmailState.useCallback[toggleStarred].email\"]);\n if (!email) {\n throw new Error('Email not found');\n }\n const newFlaggedStatus = !email.flags.flagged;\n logEmailOp('TOGGLE_STAR', \"Setting starred status to \".concat(newFlaggedStatus, \" for email \").concat(emailId));\n // TODO: Implement optimistic update\n // Make API call\n const response = await fetch(\"/api/courrier/\".concat(emailId, \"/flag\"), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n flagged: newFlaggedStatus,\n folder: email.folder,\n accountId: email.accountId\n })\n });\n if (!response.ok) {\n throw new Error('Failed to update star status');\n }\n // Reload emails to get updated state\n loadEmails(state.page, state.perPage, true);\n return true;\n } catch (error) {\n logEmailOp('ERROR', \"Failed to toggle star: \".concat(error instanceof Error ? error.message : String(error)));\n toast({\n variant: \"destructive\",\n title: \"Error\",\n description: 'Failed to update star status'\n });\n return false;\n }\n }\n }[\"useEmailState.useCallback[toggleStarred]\"], [\n state.emails,\n toast,\n loadEmails,\n logEmailOp\n ]);\n // Function to check for new emails without disrupting the user\n const checkForNewEmails = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[checkForNewEmails]\": async ()=>{\n var _session_user;\n if (!(session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id)) return;\n // Don't check if already loading emails\n if (state.isLoading) return;\n try {\n // Get normalized parameters using helper function\n const accountId = state.selectedAccount ? state.selectedAccount.id : undefined;\n const { normalizedFolder, effectiveAccountId, prefixedFolder } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(state.currentFolder, accountId);\n logEmailOp('CHECK_NEW_EMAILS', \"Checking for new emails in \".concat(prefixedFolder));\n // Quietly check for new emails with a special parameter\n const queryParams = new URLSearchParams({\n folder: normalizedFolder,\n page: '1',\n perPage: '1',\n accountId: effectiveAccountId,\n checkOnly: 'true' // Special parameter to indicate this is just a check\n });\n const response = await fetch(\"/api/courrier/emails?\".concat(queryParams.toString()), {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n },\n cache: 'no-cache'\n });\n if (!response.ok) {\n throw new Error(\"Failed to check for new emails: \".concat(response.status));\n }\n const data = await response.json();\n // Store the latest email's ID for easier reference\n const lastKnownEmailId = state.emails.length > 0 ? parseInt(state.emails[0].id) : 0;\n // Use newestEmailId from API response (more reliable than checking emails array)\n if (data.newestEmailId && data.newestEmailId > lastKnownEmailId) {\n logEmailOp('NEW_EMAILS', \"Found new emails, newest ID: \".concat(data.newestEmailId, \" (current: \").concat(lastKnownEmailId, \")\"));\n // Show a toast notification with the new custom variant\n toast({\n variant: \"new-email\",\n title: \"New emails\",\n description: \"You have new emails in your inbox\",\n duration: 5000\n });\n // Full refresh just like the refresh button in sidebar\n // Reset to page 1 to ensure we get the newest emails\n dispatch({\n type: 'SET_PAGE',\n payload: 1\n });\n loadEmails(1, state.perPage, false);\n // Also update unread counts - this will be handled in the effect\n // The fetchUnreadCounts function will be available when this callback is called\n } else {\n logEmailOp('CHECK_NEW_EMAILS', 'No new emails found');\n }\n } catch (error) {\n console.error('Error checking for new emails:', error);\n }\n }\n }[\"useEmailState.useCallback[checkForNewEmails]\"], [\n session === null || session === void 0 ? void 0 : (_session_user1 = session.user) === null || _session_user1 === void 0 ? void 0 : _session_user1.id,\n state.currentFolder,\n state.isLoading,\n state.emails,\n state.perPage,\n toast,\n loadEmails,\n logEmailOp,\n dispatch\n ]);\n // Delete emails\n const deleteEmails = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[deleteEmails]\": async (emailIds)=>{\n if (emailIds.length === 0) return;\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n try {\n logEmailOp('DELETE', \"Deleting \".concat(emailIds.length, \" emails\"));\n // Find the first email to get account ID and folder\n const firstEmail = state.emails.find({\n \"useEmailState.useCallback[deleteEmails].firstEmail\": (e)=>e.id === emailIds[0]\n }[\"useEmailState.useCallback[deleteEmails].firstEmail\"]);\n const accountId = (firstEmail === null || firstEmail === void 0 ? void 0 : firstEmail.accountId) || 'default';\n const folder = (firstEmail === null || firstEmail === void 0 ? void 0 : firstEmail.folder) || state.currentFolder;\n const { normalizedFolder } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(folder, accountId);\n // Make API call to delete emails\n const response = await fetch('/api/courrier/delete', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n emailIds,\n folder: normalizedFolder,\n accountId\n })\n });\n if (!response.ok) {\n throw new Error('Failed to delete emails');\n }\n // Clear selections\n dispatch({\n type: 'CLEAR_SELECTED_EMAILS'\n });\n // Show toast notification\n toast({\n title: \"Emails Deleted\",\n description: \"\".concat(emailIds.length, \" email(s) moved to trash\")\n });\n // Full refresh just like the refresh button in sidebar\n // Reset to page 1 to ensure we get the updated email list\n dispatch({\n type: 'SET_PAGE',\n payload: 1\n });\n loadEmails(1, state.perPage, false);\n // Also update unread counts - this will be handled in the effect\n // The fetchUnreadCounts function will be available when this callback is called\n return true;\n } catch (error) {\n logEmailOp('ERROR', \"Failed to delete emails: \".concat(error instanceof Error ? error.message : String(error)));\n toast({\n variant: \"destructive\",\n title: \"Error\",\n description: 'Failed to delete emails'\n });\n return false;\n } finally{\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n }\n }\n }[\"useEmailState.useCallback[deleteEmails]\"], [\n state.emails,\n state.currentFolder,\n state.perPage,\n toast,\n loadEmails,\n logEmailOp,\n dispatch\n ]);\n // Send email\n const sendEmail = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[sendEmail]\": async (emailData)=>{\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n try {\n logEmailOp('SEND', \"Sending email to \".concat(emailData.to));\n // Make API call to send email\n const response = await fetch('/api/courrier/send', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(emailData)\n });\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || 'Failed to send email');\n }\n const result = await response.json();\n toast({\n title: \"Email Sent\",\n description: \"Your message has been sent successfully\"\n });\n // Wait a moment for the email to be available in the sent folder\n // (emails may need time to be stored on IMAP server)\n setTimeout({\n \"useEmailState.useCallback[sendEmail]\": ()=>{\n // Check for new emails and refresh mailbox\n checkForNewEmails();\n // Refresh emails to show the sent email in current view\n loadEmails(state.page, state.perPage, false);\n }\n }[\"useEmailState.useCallback[sendEmail]\"], 1500);\n return {\n success: true,\n ...result\n };\n } catch (error) {\n logEmailOp('ERROR', \"Failed to send email: \".concat(error instanceof Error ? error.message : String(error)));\n toast({\n variant: \"destructive\",\n title: \"Error\",\n description: error instanceof Error ? error.message : 'Failed to send email'\n });\n return {\n success: false,\n error: error instanceof Error ? error.message : 'Failed to send email'\n };\n } finally{\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n }\n }\n }[\"useEmailState.useCallback[sendEmail]\"], [\n toast,\n loadEmails,\n logEmailOp,\n checkForNewEmails\n ]);\n // Search emails\n const searchEmails = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[searchEmails]\": async (query)=>{\n // Set loading state\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n try {\n var _session_user;\n if (!(session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id)) return;\n logEmailOp('SEARCH', 'Searching for \"'.concat(query, '\" in ').concat(state.currentFolder));\n // Extract account ID from current folder\n const { normalizedFolder, effectiveAccountId } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(state.currentFolder);\n // Construct query params for search\n const queryParams = new URLSearchParams({\n folder: normalizedFolder,\n search: query,\n accountId: effectiveAccountId\n });\n // Call API for search\n const response = await fetch(\"/api/courrier/search?\".concat(queryParams.toString()));\n if (!response.ok) {\n const errorData = await response.json();\n throw new Error(errorData.error || 'Failed to search emails');\n }\n const results = await response.json();\n // Update emails with search results\n dispatch({\n type: 'SET_EMAILS',\n payload: results.emails || []\n });\n if (results.totalEmails) {\n dispatch({\n type: 'SET_TOTAL_EMAILS',\n payload: results.totalEmails\n });\n }\n if (results.totalPages) {\n dispatch({\n type: 'SET_TOTAL_PAGES',\n payload: results.totalPages\n });\n }\n } catch (error) {\n logEmailOp('ERROR', \"Search failed: \".concat(error instanceof Error ? error.message : String(error)));\n dispatch({\n type: 'SET_ERROR',\n payload: error instanceof Error ? error.message : 'Failed to search emails'\n });\n toast({\n variant: \"destructive\",\n title: \"Error\",\n description: 'Failed to search emails'\n });\n } finally{\n dispatch({\n type: 'SET_LOADING',\n payload: false\n });\n }\n }\n }[\"useEmailState.useCallback[searchEmails]\"], [\n session === null || session === void 0 ? void 0 : (_session_user2 = session.user) === null || _session_user2 === void 0 ? void 0 : _session_user2.id,\n state.currentFolder,\n toast,\n logEmailOp\n ]);\n // Format email for reply, reply all, or forward\n const formatEmailForAction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[formatEmailForAction]\": (email, type)=>{\n return (0,_lib_utils_email_utils__WEBPACK_IMPORTED_MODULE_5__.formatEmailForReplyOrForward)(email, type);\n }\n }[\"useEmailState.useCallback[formatEmailForAction]\"], []);\n // Update page\n const setPage = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[setPage]\": (page)=>{\n dispatch({\n type: 'SET_PAGE',\n payload: page\n });\n }\n }[\"useEmailState.useCallback[setPage]\"], []);\n // Set emails directly\n const setEmails = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[setEmails]\": (emails)=>{\n dispatch({\n type: 'SET_EMAILS',\n payload: emails\n });\n }\n }[\"useEmailState.useCallback[setEmails]\"], []);\n // Handle loading more emails\n const handleLoadMore = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[handleLoadMore]\": ()=>{\n // Don't load more if already loading or if there are no more pages\n if (state.isLoading || state.page >= state.totalPages) {\n console.log(\"[LOAD_MORE] Skipping load more - already loading: \".concat(state.isLoading, \", page: \").concat(state.page, \", totalPages: \").concat(state.totalPages));\n return;\n }\n // Log the current state\n console.log(\"[LOAD_MORE] Loading more emails for \".concat(state.currentFolder, \", currentPage: \").concat(state.page, \", totalPages: \").concat(state.totalPages, \", current email count: \").concat(state.emails.length));\n // Set loading state immediately to prevent double-loading\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n // Calculate next page\n const nextPage = state.page + 1;\n // Update the page state - fix type issue\n dispatch({\n type: 'SET_PAGE',\n payload: nextPage\n });\n // CRITICAL FIX: Update the lastLoadedPage ref to track pagination state\n lastPageLoadedRef.current = nextPage;\n // Load the next page\n loadEmails(nextPage, state.perPage, true).then({\n \"useEmailState.useCallback[handleLoadMore]\": ()=>{\n console.log(\"[LOAD_MORE] Completed loading more emails for page \".concat(nextPage));\n }\n }[\"useEmailState.useCallback[handleLoadMore]\"]);\n }\n }[\"useEmailState.useCallback[handleLoadMore]\"], [\n state.isLoading,\n state.page,\n state.totalPages,\n state.currentFolder,\n state.emails.length,\n state.perPage,\n dispatch,\n loadEmails\n ]);\n // Effect to load emails when folder changes\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"useEmailState.useEffect\": ()=>{\n var _session_user;\n if ((session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id) && state.currentFolder) {\n // CRITICAL FIX: REMOVE this check that's causing the problem\n // Instead, detect a real folder change and always load when that happens\n // Extract account ID for consistent loading\n const { effectiveAccountId } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(state.currentFolder);\n // Track if the folder actually changed\n const folderChanged = prevFolderRef.current !== state.currentFolder;\n if (folderChanged) {\n console.log(\"[DEBUG-FOLDER_EFFECT] Folder changed from \".concat(prevFolderRef.current, \" to \").concat(state.currentFolder));\n prevFolderRef.current = state.currentFolder;\n // CRITICAL FIX: Always reset pagination state when folder actually changes\n console.log(\"[DEBUG-FOLDER_EFFECT] Folder changed - resetting pagination state\");\n // Reset page to 1 AND reset lastPageLoadedRef to ensure we load\n lastPageLoadedRef.current = 0;\n if (state.page !== 1) {\n console.log(\"[DEBUG-FOLDER_EFFECT] Resetting page to 1 because folder changed\");\n dispatch({\n type: 'SET_PAGE',\n payload: 1\n });\n }\n // CRITICAL FIX: Clear emails and set loading when folder changes\n dispatch({\n type: 'SET_EMAILS',\n payload: []\n });\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n // CRITICAL FIX: Always load emails when folder changes, no matter what\n console.log(\"[DEBUG-FOLDER_EFFECT] Loading emails for new folder: \".concat(state.currentFolder));\n loadEmails(1, state.perPage, false);\n return; // Exit early after handling folder change\n }\n // If no folder change detected, only load if on page 1 and not already loaded\n if (state.page === 1 && lastPageLoadedRef.current === 0) {\n logEmailOp('FOLDER_LOAD', \"Loading initial emails for folder \".concat(state.currentFolder));\n loadEmails(state.page, state.perPage, false);\n }\n }\n }\n }[\"useEmailState.useEffect\"], [\n session === null || session === void 0 ? void 0 : (_session_user3 = session.user) === null || _session_user3 === void 0 ? void 0 : _session_user3.id,\n state.currentFolder,\n state.page,\n state.perPage,\n loadEmails,\n logEmailOp,\n dispatch\n ]);\n // Effect to load more emails when page changes\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"useEmailState.useEffect\": ()=>{\n var _session_user;\n if (!(session === null || session === void 0 ? void 0 : (_session_user = session.user) === null || _session_user === void 0 ? void 0 : _session_user.id) || !state.currentFolder) return;\n // Make sure we're on at least page 1\n if (state.page < 1) {\n dispatch({\n type: 'SET_PAGE',\n payload: 1\n });\n return;\n }\n console.log(\"[DEBUG-PAGE_EFFECT] Page changed to \".concat(state.page));\n // CRITICAL FIX: Add a special case for page 1 loads - we should never skip loading the first page\n // This ensures that after a folder change, page 1 always loads even if loading state is true\n if (state.page === 1) {\n const currentFolder = state.currentFolder;\n const lastLoadedFolder = prevFolderRef.current;\n // Check if this is a fresh folder load (folder changed or first time loading)\n if (currentFolder !== lastLoadedFolder || lastPageLoadedRef.current === 0) {\n // Force loading page 1 for new folders, regardless of loading state\n console.log(\"[DEBUG-PAGE_EFFECT] Force loading page 1 for folder: \".concat(currentFolder));\n // Set the loading state explicitly (might already be true)\n dispatch({\n type: 'SET_LOADING',\n payload: true\n });\n // Update refs to track the current state\n prevFolderRef.current = currentFolder;\n lastPageLoadedRef.current = 1;\n // Call loadEmails to load the first page - never skip this!\n loadEmails(1, state.perPage, false);\n return;\n }\n }\n // For pages > 1 or already loaded folders, follow normal rules\n // Skip if already loading\n if (state.isLoading) {\n console.log(\"[DEBUG-PAGE_EFFECT] Skipping effect execution entirely - already loading\");\n return;\n }\n // Normalize folder and get account ID\n const { effectiveAccountId } = (0,_lib_reducers_emailReducer__WEBPACK_IMPORTED_MODULE_3__.normalizeFolderAndAccount)(state.currentFolder);\n // Check if this is a duplicate page load\n if (state.page === lastPageLoadedRef.current) {\n console.log(\"[DEBUG-PAGE_EFFECT] Skipping - already loaded page \".concat(state.page));\n return;\n }\n // Skip loads for zero-based pages\n if (state.page === 0) {\n console.log(\"[DEBUG-PAGE_EFFECT] Skipping load for invalid page \".concat(state.page));\n return;\n }\n // Update our reference to prevent duplicate loads\n lastPageLoadedRef.current = state.page;\n // Always use isLoadMore=true when page > 1\n console.log(\"[DEBUG-PAGE_EFFECT] Calling loadEmails with isLoadMore=true for page \".concat(state.page));\n loadEmails(state.page, state.perPage, true);\n // Do NOT include state.emails.length here to prevent infinite loops\n }\n }[\"useEmailState.useEffect\"], [\n session === null || session === void 0 ? void 0 : (_session_user4 = session.user) === null || _session_user4 === void 0 ? void 0 : _session_user4.id,\n state.page,\n state.currentFolder,\n state.isLoading,\n state.perPage,\n loadEmails,\n logEmailOp,\n dispatch\n ]);\n // Fetch unread counts from API\n const fetchUnreadCounts = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[fetchUnreadCounts]\": async ()=>{\n var _window___unreadCountFailures;\n if (!(session === null || session === void 0 ? void 0 : session.user)) return;\n // Don't fetch if we're already fetching\n if (state.isLoadingUnreadCounts) return;\n // Skip fetching if an email was viewed recently (within last 5 seconds)\n const now = Date.now();\n // Initialize the ref to the current time if it's null\n if (lastEmailViewedRef.current === null) {\n lastEmailViewedRef.current = now;\n }\n // Now we can safely use it since we've initialized it\n if (now - lastEmailViewedRef.current < 5000) {\n console.log('Skipping unread count update - email viewed recently');\n return;\n }\n // Try to get from sessionStorage first for faster response\n try {\n const storageKey = \"unread_counts_\".concat(session.user.id);\n const storedData = sessionStorage.getItem(storageKey);\n if (storedData) {\n const { data, timestamp } = JSON.parse(storedData);\n // Use stored data if it's less than 30 seconds old\n if (now - timestamp < 30000) {\n logEmailOp('FETCH_UNREAD', 'Using sessionStorage data', {\n age: Math.round((now - timestamp) / 1000) + 's'\n });\n dispatch({\n type: 'SET_UNREAD_COUNTS',\n payload: data\n });\n return;\n }\n }\n } catch (err) {\n // Ignore storage errors\n }\n // Reset failure tracking if it's been more than 1 minute since last failure\n if (((_window___unreadCountFailures = window.__unreadCountFailures) === null || _window___unreadCountFailures === void 0 ? void 0 : _window___unreadCountFailures.lastFailureTime) && now - window.__unreadCountFailures.lastFailureTime > 60000) {\n window.__unreadCountFailures = {\n count: 0,\n lastFailureTime: 0\n };\n }\n // Exponential backoff for failures with proper tracking object\n if (!window.__unreadCountFailures) {\n window.__unreadCountFailures = {\n count: 0,\n lastFailureTime: 0\n };\n }\n if (window.__unreadCountFailures.count > 0) {\n const failures = window.__unreadCountFailures.count;\n const backoffMs = Math.min(30000, 1000 * Math.pow(2, failures - 1));\n if (now - window.__unreadCountFailures.lastFailureTime < backoffMs) {\n logEmailOp('BACKOFF', \"Skipping unread fetch, in backoff period (\".concat(backoffMs, \"ms)\"));\n return;\n }\n }\n try {\n dispatch({\n type: 'SET_LOADING_UNREAD_COUNTS',\n payload: true\n });\n const timeBeforeCall = performance.now();\n logEmailOp('FETCH_UNREAD', 'Fetching unread counts from API');\n const response = await fetch('/api/courrier/unread-counts', {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n },\n // Add cache control headers\n cache: 'no-cache',\n next: {\n revalidate: 0\n }\n });\n if (!response.ok) {\n // If request failed, track failures properly\n window.__unreadCountFailures.count = Math.min(window.__unreadCountFailures.count + 1, 10);\n window.__unreadCountFailures.lastFailureTime = now;\n const failures = window.__unreadCountFailures.count;\n if (failures > 3) {\n // After 3 failures, slow down requests with exponential backoff\n const backoffTime = Math.min(Math.pow(2, failures - 3) * 1000, 30000); // Max 30 seconds\n logEmailOp('FETCH_UNREAD', \"API failure #\".concat(failures, \", backing off for \").concat(backoffTime, \"ms\"));\n // Schedule next attempt with backoff\n if (window.__failureBackoffTimer) {\n clearTimeout(window.__failureBackoffTimer);\n }\n window.__failureBackoffTimer = setTimeout({\n \"useEmailState.useCallback[fetchUnreadCounts]\": ()=>{\n fetchUnreadCounts();\n }\n }[\"useEmailState.useCallback[fetchUnreadCounts]\"], backoffTime);\n throw new Error(\"Failed to fetch unread counts: \".concat(response.status));\n }\n } else {\n // Reset failure counter on success\n window.__unreadCountFailures = {\n count: 0,\n lastFailureTime: 0\n };\n const data = await response.json();\n const timeAfterCall = performance.now();\n // Skip if we got the \"pending_refresh\" status\n if (data._status === 'pending_refresh') {\n logEmailOp('FETCH_UNREAD', 'Server is refreshing counts, will try again soon');\n // Retry after a short delay\n setTimeout({\n \"useEmailState.useCallback[fetchUnreadCounts]\": ()=>{\n fetchUnreadCounts();\n }\n }[\"useEmailState.useCallback[fetchUnreadCounts]\"], 2000);\n return;\n }\n logEmailOp('FETCH_UNREAD', \"Received unread counts in \".concat((timeAfterCall - timeBeforeCall).toFixed(2), \"ms\"));\n if (data && typeof data === 'object') {\n dispatch({\n type: 'SET_UNREAD_COUNTS',\n payload: data\n });\n // Store in sessionStorage for faster future access\n try {\n sessionStorage.setItem(\"unread_counts_\".concat(session.user.id), JSON.stringify({\n data,\n timestamp: now\n }));\n } catch (err) {\n // Ignore storage errors\n }\n }\n }\n } catch (error) {\n console.error('Error fetching unread counts:', error);\n } finally{\n dispatch({\n type: 'SET_LOADING_UNREAD_COUNTS',\n payload: false\n });\n }\n }\n }[\"useEmailState.useCallback[fetchUnreadCounts]\"], [\n dispatch,\n session === null || session === void 0 ? void 0 : session.user,\n state.isLoadingUnreadCounts,\n logEmailOp\n ]);\n // Calculate and update unread counts\n const updateUnreadCounts = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[updateUnreadCounts]\": ()=>{\n // Skip if no emails or accounts\n if (state.emails.length === 0 || state.accounts.length === 0) return;\n // To avoid running this too frequently, check the timestamp of last update\n if (!window.__lastUnreadUpdate) {\n window.__lastUnreadUpdate = {\n timestamp: 0\n };\n }\n const now = Date.now();\n const lastUpdate = window.__lastUnreadUpdate;\n const MIN_UPDATE_INTERVAL = 10000; // 10 seconds minimum between updates (increased from 2s)\n if (now - lastUpdate.timestamp < MIN_UPDATE_INTERVAL) {\n return; // Skip if updated too recently\n }\n // Rather than calculating locally, fetch from the API\n fetchUnreadCounts();\n // Update timestamp of last update\n lastUpdate.timestamp = now;\n }\n }[\"useEmailState.useCallback[updateUnreadCounts]\"], [\n state.emails.length,\n state.accounts.length,\n fetchUnreadCounts\n ]);\n // Call updateUnreadCounts when relevant state changes\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"useEmailState.useEffect\": ()=>{\n if (!state.emails || state.emails.length === 0) return;\n // Debounce unread count updates to prevent rapid multiple updates\n let updateTimeoutId;\n const debounceMs = 5000; // Increase debounce to 5 seconds (from 2s)\n // Function to call after debounce period\n const debouncedUpdate = {\n \"useEmailState.useEffect.debouncedUpdate\": ()=>{\n updateTimeoutId = setTimeout({\n \"useEmailState.useEffect.debouncedUpdate\": ()=>{\n updateUnreadCounts();\n }\n }[\"useEmailState.useEffect.debouncedUpdate\"], debounceMs);\n }\n }[\"useEmailState.useEffect.debouncedUpdate\"];\n // Clear any existing timeout and start a new one\n debouncedUpdate();\n // Also set up a periodic refresh every minute if the tab is active\n const periodicRefreshId = setInterval({\n \"useEmailState.useEffect.periodicRefreshId\": ()=>{\n if (document.visibilityState === 'visible') {\n updateUnreadCounts();\n }\n }\n }[\"useEmailState.useEffect.periodicRefreshId\"], 60000); // 1 minute\n // Cleanup timeout on unmount or state change\n return ({\n \"useEmailState.useEffect\": ()=>{\n clearTimeout(updateTimeoutId);\n clearInterval(periodicRefreshId);\n }\n })[\"useEmailState.useEffect\"];\n // Deliberately exclude unreadCountMap to prevent infinite loops\n }\n }[\"useEmailState.useEffect\"], [\n state.emails,\n updateUnreadCounts\n ]);\n // Set up periodic check for new emails\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"useEmailState.useEffect\": ()=>{\n if (!state.emails || state.emails.length === 0) return;\n // Set up a periodic check for new emails at the same interval as unread counts\n const checkNewEmailsId = setInterval({\n \"useEmailState.useEffect.checkNewEmailsId\": ()=>{\n if (document.visibilityState === 'visible') {\n checkForNewEmails();\n }\n }\n }[\"useEmailState.useEffect.checkNewEmailsId\"], 60000); // 1 minute - same as unread count refresh\n // Cleanup interval on unmount or state change\n return ({\n \"useEmailState.useEffect\": ()=>{\n clearInterval(checkNewEmailsId);\n }\n })[\"useEmailState.useEffect\"];\n }\n }[\"useEmailState.useEffect\"], [\n state.emails,\n checkForNewEmails\n ]);\n // Tracking when an email is viewed to optimize unread count refreshes\n const lastViewedEmailRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n const fetchFailuresRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0);\n const lastFetchFailureRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n // Modify viewEmail to track when an email is viewed\n const viewEmail = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[viewEmail]\": (emailId, accountId, folder, email)=>{\n dispatch({\n type: 'SELECT_EMAIL',\n payload: {\n emailId,\n accountId,\n folder,\n email\n }\n });\n // Track when an email is viewed to delay unread count refresh\n if (email) {\n lastViewedEmailRef.current = Date.now();\n // If email is unread, mark it as read\n if (email.flags && !email.flags.seen) {\n dispatch({\n type: 'MARK_EMAIL_AS_READ',\n payload: {\n emailId,\n isRead: true,\n accountId\n }\n });\n }\n } else {\n // Email was deselected, schedule a refresh of unread counts after delay\n setTimeout({\n \"useEmailState.useCallback[viewEmail]\": ()=>{\n fetchUnreadCounts();\n }\n }[\"useEmailState.useCallback[viewEmail]\"], 2000);\n }\n }\n }[\"useEmailState.useCallback[viewEmail]\"], [\n dispatch,\n fetchUnreadCounts\n ]);\n // Set up a function to manually trigger checking for new emails\n const forceCheckForNewEmails = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useEmailState.useCallback[forceCheckForNewEmails]\": ()=>{\n // Don't check if we're already loading\n if (state.isLoading) return;\n // Log that we're manually checking\n logEmailOp('MANUAL_CHECK', 'Manually checking for new emails');\n // Reset to page 1 to ensure we get the newest emails\n dispatch({\n type: 'SET_PAGE',\n payload: 1\n });\n // Perform a complete refresh of emails\n loadEmails(1, state.perPage, false);\n // Also update unread counts\n fetchUnreadCounts();\n }\n }[\"useEmailState.useCallback[forceCheckForNewEmails]\"], [\n state.isLoading,\n state.perPage,\n loadEmails,\n logEmailOp,\n dispatch,\n fetchUnreadCounts\n ]);\n // Return all state values and actions\n return {\n // State values\n ...state,\n // Actions\n loadEmails,\n handleEmailSelect,\n toggleEmailSelection,\n toggleSelectAll,\n markEmailAsRead,\n toggleStarred,\n changeFolder,\n deleteEmails,\n sendEmail,\n searchEmails,\n formatEmailForAction,\n setPage,\n setEmails,\n selectAccount,\n handleLoadMore,\n fetchUnreadCounts,\n viewEmail,\n checkForNewEmails,\n forceCheckForNewEmails\n };\n};\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2hvb2tzL3VzZS1lbWFpbC1zdGF0ZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBbUU7QUFDdEI7QUFDTjtBQVFGO0FBSUk7QUFFOEI7QUFXaEUsTUFBTVcsZ0JBQWdCO1FBc1F2QkMsZUEwUkFBLGdCQXVLQUEsZ0JBK0ZBQSxnQkFxRUFBO0lBMTJCSixNQUFNLENBQUNDLE9BQU9DLFNBQVMsR0FBR2QsaURBQVVBLENBQUNNLG9FQUFZQSxFQUFFQyxvRUFBWUE7SUFDL0QsTUFBTSxFQUFFUSxNQUFNSCxPQUFPLEVBQUUsR0FBR1IsMkRBQVVBO0lBQ3BDLE1BQU0sRUFBRVksS0FBSyxFQUFFLEdBQUdYLG9EQUFRQTtJQUUxQixzQkFBc0I7SUFDdEIsTUFBTVksdUJBQXVCZCw2Q0FBTUEsQ0FBZ0I7SUFDbkQsTUFBTWUscUJBQXFCZiw2Q0FBTUEsQ0FBZ0I7SUFDakQsTUFBTWdCLHNCQUFzQmhCLDZDQUFNQSxDQUFTO0lBQzNDLE1BQU1pQixnQkFBZ0JqQiw2Q0FBTUEsQ0FBZ0I7SUFDNUMsTUFBTWtCLG9CQUFvQmxCLDZDQUFNQSxDQUFTO0lBQ3pDLE1BQU1tQixnQkFBZ0JuQiw2Q0FBTUEsQ0FBZ0I7SUFDNUMsTUFBTW9CLHlCQUF5QnBCLDZDQUFNQSxDQUFTO0lBRTlDLDZEQUE2RDtJQUM3REQsZ0RBQVNBO21DQUFDO1lBQ1Isa0RBQWtEO1lBQ2xEc0IsT0FBT0MsbUJBQW1CLEdBQUdYO1lBQzdCVSxPQUFPRSxvQkFBb0IsR0FBR1o7WUFFOUIsc0JBQXNCO1lBQ3RCOzJDQUFPO29CQUNMVSxPQUFPQyxtQkFBbUIsR0FBR0U7b0JBQzdCSCxPQUFPRSxvQkFBb0IsR0FBR0M7Z0JBQ2hDOztRQUNGO2tDQUFHO1FBQUNiO0tBQVM7SUFFYixvQ0FBb0M7SUFDcEMsTUFBTWMsYUFBYTNCLGtEQUFXQTtpREFBQyxDQUFDNEIsV0FBbUJDLFNBQWlCZjtZQUNsRSxNQUFNZ0IsWUFBWSxJQUFJQyxPQUFPQyxXQUFXLEdBQUdD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b0JBQ3BDeEYsU0FBUzt3QkFDUG9DLE1BQU07d0JBQ05DLFNBQVM7NEJBQUU4Qzs0QkFBU1UsUUFBUTs0QkFBTXZEO3dCQUFVO29CQUM5QztnQkFDRjtZQUNGLE9BQU87Z0JBQ0wsd0VBQXdFO2dCQUN4RWM7NERBQVc7d0JBQ1Q2RTtvQkFDRjsyREFBRztZQUNMO1FBQ0Y7K0NBQUc7UUFBQ2pJO1FBQVVpSTtLQUFrQjtJQUVoQyxnRUFBZ0U7SUFDaEUsTUFBTStDLHlCQUF5QjdMLGtEQUFXQTs2REFBQztZQUN6Qyx1Q0FBdUM7WUFDdkMsSUFBSVksTUFBTXdHLFNBQVMsRUFBRTtZQUVyQixtQ0FBbUM7WUFDbkN6RixXQUFXLGdCQUFnQjtZQUUzQixxREFBcUQ7WUFDckRkLFNBQVM7Z0JBQUVvQyxNQUFNO2dCQUFZQyxTQUFTO1lBQUU7WUFFeEMsdUNBQXVDO1lBQ3ZDYixXQUFXLEdBQUd6QixNQUFNMkIsT0FBTyxFQUFFO1lBRTdCLDRCQUE0QjtZQUM1QnVHO1FBQ0Y7NERBQUc7UUFBQ2xJLE1BQU13RyxTQUFTO1FBQUV4RyxNQUFNMkIsT0FBTztRQUFFRjtRQUFZVjtRQUFZZDtRQUFVaUk7S0FBa0I7SUFFeEYsc0NBQXNDO0lBQ3RDLE9BQU87UUFDTCxlQUFlO1FBQ2YsR0FBR2xJLEtBQUs7UUFFUixVQUFVO1FBQ1Z5QjtRQUNBMEQ7UUFDQVM7UUFDQUM7UUFDQUg7UUFDQVU7UUFDQXJCO1FBQ0FnQztRQUNBRztRQUNBSTtRQUNBSTtRQUNBQztRQUNBQztRQUNBM0M7UUFDQTRDO1FBQ0FLO1FBQ0E4QztRQUNBekU7UUFDQTBFO0lBQ0Y7QUFDRixFQUFFIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2hvb2tzL3VzZS1lbWFpbC1zdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VSZWR1Y2VyLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VTZXNzaW9uIH0gZnJvbSAnbmV4dC1hdXRoL3JlYWN0JztcbmltcG9ydCB7IHVzZVRvYXN0IH0gZnJvbSAnLi91c2UtdG9hc3QnO1xuaW1wb3J0IHsgXG4gIGVtYWlsUmVkdWNlciwgXG4gIGluaXRpYWxTdGF0ZSwgXG4gIEVtYWlsU3RhdGUsIFxuICBFbWFpbEFjdGlvbixcbiAgbm9ybWFsaXplRm9sZGVyQW5kQWNjb3VudCxcbiAgQWNjb3VudFxufSBmcm9tICdAL2xpYi9yZWR1Y2Vycy9lbWFpbFJlZHVjZXInO1xuaW1wb3J0IHsgXG4gIGdldENhY2hlZEVtYWlsc1dpdGhUaW1lb3V0LCBcbiAgcmVmcmVzaEVtYWlsc0luQmFja2dyb3VuZCBcbn0gZnJvbSAnQC9saWIvc2VydmljZXMvcHJlZmV0Y2gtc2VydmljZSc7XG5pbXBvcnQgeyBFbWFpbCwgRW1haWxEYXRhIH0gZnJvbSAnLi91c2UtY291cnJpZXInO1xuaW1wb3J0IHsgZm9ybWF0RW1haWxGb3JSZXBseU9yRm9yd2FyZCB9IGZyb20gJ0AvbGliL3V0aWxzL2VtYWlsLXV0aWxzJztcblxuLy8gQWRkIGEgZ2xvYmFsIGRpc3BhdGNoZXIgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciBjb2RlXG4vLyBUaGlzIGlzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uIHVudGlsIHdlIGZ1bGx5IG1pZ3JhdGUgdG8gdGhlIHJlZHVjZXIgcGF0dGVyblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICBkaXNwYXRjaEVtYWlsQWN0aW9uPzogKGFjdGlvbjogRW1haWxBY3Rpb24pID0+IHZvaWQ7XG4gICAgX19lbWFpbFN0YXRlRGlzcGF0Y2g/OiAoYWN0aW9uOiBFbWFpbEFjdGlvbikgPT4gdm9pZDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdXNlRW1haWxTdGF0ZSA9ICgpID0+IHtcbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VSZWR1Y2VyKGVtYWlsUmVkdWNlciwgaW5pdGlhbFN0YXRlKTtcbiAgY29uc3QgeyBkYXRhOiBzZXNzaW9uIH0gPSB1c2VTZXNzaW9uKCk7XG4gIGNvbnN0IHsgdG9hc3QgfSA9IHVzZVRvYXN0KCk7XG5cbiAgLy8gUmVmcyB0byB0cmFjayBzdGF0ZVxuICBjb25zdCB1cGRhdGVVbnJlYWRUaW1lclJlZiA9IHVzZVJlZjxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgY29uc3QgbGFzdEVtYWlsVmlld2VkUmVmID0gdXNlUmVmPG51bWJlciB8IG51bGw+KG51bGwpO1xuICBjb25zdCBmYWlsZWRGZXRjaENvdW50UmVmID0gdXNlUmVmPG51bWJlcj4oMCk7XG4gIGNvbnN0IGxhc3RGb2xkZXJSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGxhc3RQYWdlTG9hZGVkUmVmID0gdXNlUmVmPG51bWJlcj4oMCk7XG4gIGNvbnN0IHByZXZGb2xkZXJSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGxvYWRNb3JlVHJpZ2dlclRpbWVSZWYgPSB1c2VSZWY8bnVtYmVyPigwKTtcblxuICAvLyBFeHBvc2UgZGlzcGF0Y2ggZnVuY3Rpb24gdG8gd2luZG93IGZvciBleHRlcm5hbCBjb21wb25lbnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gTWFrZSBkaXNwYXRjaCBhdmFpbGFibGUgZ2xvYmFsbHkgZm9yIG9sZGVyIGNvZGVcbiAgICB3aW5kb3cuZGlzcGF0Y2hFbWFpbEFjdGlvbiA9IGRpc3BhdGNoO1xuICAgIHdpbmRvdy5fX2VtYWlsU3RhdGVEaXNwYXRjaCA9IGRpc3BhdGNoO1xuICAgIFxuICAgIC8vIENsZWFuIHVwIG9uIHVubW91bnRcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LmRpc3BhdGNoRW1haWxBY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICB3aW5kb3cuX19lbWFpbFN0YXRlRGlzcGF0Y2ggPSB1bmRlZmluZWQ7XG4gICAgfTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG5cbiAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGxvZyBvcGVyYXRpb25zXG4gIGNvbnN0IGxvZ0VtYWlsT3AgPSB1c2VDYWxsYmFjaygob3BlcmF0aW9uOiBzdHJpbmcsIGRldGFpbHM6IHN0cmluZywgZGF0YT86IGFueSkgPT4ge1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzFdLnN1YnN0cmluZygwLCAxMik7XG4gICAgY29uc29sZS5sb2coYFske3RpbWVzdGFtcH1dW0VNQUlMLVNUQVRFXVske29wZXJhdGlvbn1dICR7ZGV0YWlsc31gKTtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgY29uc29sZS5sb2coYFske3RpbWVzdGFtcH1dW0VNQUlMLVNUQVRFXVtEQVRBXWAsIGRhdGEpO1xuICAgIH1cbiAgfSwgW10pO1xuXG4gIC8vIExvYWQgZW1haWxzIGZyb20gdGhlIHNlcnZlclxuICBjb25zdCBsb2FkRW1haWxzID0gdXNlQ2FsbGJhY2soYXN5bmMgKHBhZ2U6IG51bWJlciwgcGVyUGFnZTogbnVtYmVyLCBpc0xvYWRNb3JlOiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAvLyBDUklUSUNBTCBGSVg6IERvIGltcG9ydGFudCB2YWxpZGF0aW9uIGJlZm9yZSBzZXR0aW5nIGxvYWRpbmcgc3RhdGVcbiAgICBpZiAoIXNlc3Npb24/LnVzZXI/LmlkKSByZXR1cm47XG4gICAgXG4gICAgLy8gQ1JJVElDQUwgRklYOiBBbHdheXMgbG9nIHRoZSBpc0xvYWRNb3JlIHBhcmFtZXRlclxuICAgIGNvbnNvbGUubG9nKGBbREVCVUctTE9BRF9FTUFJTFNdIENhbGxlZCB3aXRoIGlzTG9hZE1vcmU9JHtpc0xvYWRNb3JlfSwgcGFnZT0ke3BhZ2V9LCBjdXJyZW50RW1haWxzPSR7c3RhdGUuZW1haWxzLmxlbmd0aH1gKTtcbiAgICBcbiAgICAvLyBTZXQgdGhlIGN1cnJlbnQgZm9sZGVyIGFuZCBhY2NvdW50IGJlaW5nIGxvYWRlZCB0byBkZXRlY3QgY2hhbmdlc1xuICAgIGNvbnN0IHN0YXJ0Rm9sZGVyID0gc3RhdGUuY3VycmVudEZvbGRlcjtcbiAgICBjb25zdCBzdGFydEFjY291bnQgPSBzdGF0ZS5zZWxlY3RlZEFjY291bnQgPyBzdGF0ZS5zZWxlY3RlZEFjY291bnQuaWQgOiAnZGVmYXVsdCc7XG4gICAgXG4gICAgLy8gQ1JJVElDQUwgRklYOiBGb3JjZSBsb2FkaW5nIHN0YXRlIHRvIHRydWVcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfTE9BRElORycsIHBheWxvYWQ6IHRydWUgfSk7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIC8vIEdldCBub3JtYWxpemVkIHBhcmFtZXRlcnMgdXNpbmcgaGVscGVyIGZ1bmN0aW9uIHdpdGggcHJvcGVyIGFjY291bnQgSUQgaGFuZGxpbmdcbiAgICAgIGNvbnN0IGFjY291bnRJZCA9IHN0YXRlLnNlbGVjdGVkQWNjb3VudCA/IHN0YXRlLnNlbGVjdGVkQWNjb3VudC5pZCA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHsgbm9ybWFsaXplZEZvbGRlciwgZWZmZWN0aXZlQWNjb3VudElkLCBwcmVmaXhlZEZvbGRlciB9ID0gXG4gICAgICAgIG5vcm1hbGl6ZUZvbGRlckFuZEFjY291bnQoc3RhdGUuY3VycmVudEZvbGRlciwgYWNjb3VudElkKTtcbiAgICAgIFxuICAgICAgbG9nRW1haWxPcCgnTE9BRF9FTUFJTFMnLCBgTG9hZGluZyBlbWFpbHMgZm9yICR7cHJlZml4ZWRGb2xkZXJ9IChhY2NvdW50OiAke2VmZmVjdGl2ZUFjY291bnRJZH0sIGlzTG9hZE1vcmU6ICR7aXNMb2FkTW9yZX0sIHBhZ2U6ICR7cGFnZX0pYCk7XG4gICAgICBcbiAgICAgIC8vIENvbnN0cnVjdCBxdWVyeSBwYXJhbWV0ZXJzXG4gICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICBmb2xkZXI6IG5vcm1hbGl6ZWRGb2xkZXIsXG4gICAgICAgIHBhZ2U6IHBhZ2UudG9TdHJpbmcoKSxcbiAgICAgICAgcGVyUGFnZTogcGVyUGFnZS50b1N0cmluZygpLFxuICAgICAgICBhY2NvdW50SWQ6IGVmZmVjdGl2ZUFjY291bnRJZFxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIERlYnVnIGxvZyBleGlzdGluZyBlbWFpbHMgY291bnRcbiAgICAgIGlmIChpc0xvYWRNb3JlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctUEFHSU5BVElPTl0gTG9hZGluZyBtb3JlIGVtYWlscy4gQ3VycmVudCBwYWdlOiAke3BhZ2V9LCBleGlzdGluZyBlbWFpbHM6ICR7c3RhdGUuZW1haWxzLmxlbmd0aH1gKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gVHJ5IHRvIGdldCBjYWNoZWQgZW1haWxzIGZpcnN0XG4gICAgICBsb2dFbWFpbE9wKCdDQUNIRV9DSEVDSycsIGBDaGVja2luZyBjYWNoZSBmb3IgJHtwcmVmaXhlZEZvbGRlcn0sIHBhZ2U6ICR7cGFnZX1gKTtcbiAgICAgIGNvbnN0IGNhY2hlZEVtYWlscyA9IGF3YWl0IGdldENhY2hlZEVtYWlsc1dpdGhUaW1lb3V0KFxuICAgICAgICBzZXNzaW9uLnVzZXIuaWQsXG4gICAgICAgIHByZWZpeGVkRm9sZGVyLFxuICAgICAgICBwYWdlLFxuICAgICAgICBwZXJQYWdlLFxuICAgICAgICAxMDAsXG4gICAgICAgIGVmZmVjdGl2ZUFjY291bnRJZFxuICAgICAgKTtcbiAgICAgIFxuICAgICAgaWYgKGNhY2hlZEVtYWlscykge1xuICAgICAgICBsb2dFbWFpbE9wKCdDQUNIRV9ISVQnLCBgVXNpbmcgY2FjaGVkIGRhdGEgZm9yICR7cHJlZml4ZWRGb2xkZXJ9LCBwYWdlOiAke3BhZ2V9LCBlbWFpbHM6ICR7Y2FjaGVkRW1haWxzLmVtYWlscz8ubGVuZ3RoIHx8IDB9LCBpc0xvYWRNb3JlOiAke2lzTG9hZE1vcmV9YCk7XG4gICAgICAgIFxuICAgICAgICAvLyBFbnN1cmUgY2FjaGVkIGRhdGEgaGFzIGVtYWlscyBhcnJheSBwcm9wZXJ0eVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjYWNoZWRFbWFpbHMuZW1haWxzKSkge1xuICAgICAgICAgIC8vIENSSVRJQ0FMIEZJWDogRG91YmxlIGNoZWNrIHdlJ3JlIHVzaW5nIHRoZSByaWdodCBhY3Rpb24gdHlwZSBiYXNlZCBvbiBpc0xvYWRNb3JlIHBhcmFtXG4gICAgICAgICAgY29uc29sZS5sb2coYFtERUJVRy1DQUNIRV9ISVRdIERpc3BhdGNoaW5nICR7aXNMb2FkTW9yZSA/ICdBUFBFTkRfRU1BSUxTJyA6ICdTRVRfRU1BSUxTJ30gd2l0aCAke2NhY2hlZEVtYWlscy5lbWFpbHMubGVuZ3RofSBlbWFpbHNgKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBEaXNwYXRjaCBhcHByb3ByaWF0ZSBhY3Rpb24gYmFzZWQgb24gaWYgd2UncmUgbG9hZGluZyBtb3JlIC0gRE8gTk9UIE9WRVJSSURFIGlzTG9hZE1vcmUhXG4gICAgICAgICAgZGlzcGF0Y2goeyBcbiAgICAgICAgICAgIHR5cGU6IGlzTG9hZE1vcmUgPyAnQVBQRU5EX0VNQUlMUycgOiAnU0VUX0VNQUlMUycsIFxuICAgICAgICAgICAgcGF5bG9hZDogY2FjaGVkRW1haWxzLmVtYWlscyBcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBTZXQgcGFnaW5hdGlvbiBpbmZvIGZyb20gY2FjaGUgaWYgYXZhaWxhYmxlXG4gICAgICAgICAgaWYgKGNhY2hlZEVtYWlscy50b3RhbEVtYWlscykge1xuICAgICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX1RPVEFMX0VNQUlMUycsIHBheWxvYWQ6IGNhY2hlZEVtYWlscy50b3RhbEVtYWlscyB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgaWYgKGNhY2hlZEVtYWlscy50b3RhbFBhZ2VzKSB7XG4gICAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfVE9UQUxfUEFHRVMnLCBwYXlsb2FkOiBjYWNoZWRFbWFpbHMudG90YWxQYWdlcyB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gVXBkYXRlIGF2YWlsYWJsZSBtYWlsYm94ZXMgaWYgcHJvdmlkZWRcbiAgICAgICAgICBpZiAoY2FjaGVkRW1haWxzLm1haWxib3hlcyAmJiBjYWNoZWRFbWFpbHMubWFpbGJveGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9NQUlMQk9YRVMnLCBwYXlsb2FkOiBjYWNoZWRFbWFpbHMubWFpbGJveGVzIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gQ1JJVElDQUwgRklYOiBJZiB0aGlzIHdhcyBhIGxvYWRNb3JlIG9wZXJhdGlvbiwgY2hlY2sgdGhlIHJlc3VsdCBhZnRlciB0aGUgZGlzcGF0Y2hcbiAgICAgICAgaWYgKGlzTG9hZE1vcmUpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctQ0FDSEVfSElUX0FQUEVORF0gQWZ0ZXIgJHtpc0xvYWRNb3JlID8gJ0FQUEVORCcgOiAnU0VUJ30sIGVtYWlsIGNvdW50IGlzIG5vdzogJHtzdGF0ZS5lbWFpbHMubGVuZ3RofWApO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIEZldGNoIGVtYWlscyBmcm9tIEFQSSBpZiBubyBjYWNoZSBoaXRcbiAgICAgIGxvZ0VtYWlsT3AoJ0FQSV9GRVRDSCcsIGBGZXRjaGluZyBlbWFpbHMgZnJvbSBBUEk6ICR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX0sIGlzTG9hZE1vcmU6ICR7aXNMb2FkTW9yZX1gKTtcbiAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctQVBJX0ZFVENIXSBGZXRjaGluZyBmcm9tIC9hcGkvY291cnJpZXIvZW1haWxzPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC9hcGkvY291cnJpZXIvZW1haWxzPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gKTtcbiAgICAgIFxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAvLyBDUklUSUNBTCBGSVg6IFRyeSB0byByZWNvdmVyIGZyb20gZmV0Y2ggZXJyb3JzIGJ5IHJldHJ5aW5nIHdpdGggZGlmZmVyZW50IHBhZ2luYXRpb25cbiAgICAgICAgaWYgKGlzTG9hZE1vcmUgJiYgcGFnZSA+IDEpIHtcbiAgICAgICAgICBsb2dFbWFpbE9wKCdFUlJPUl9SRUNPVkVSWScsIGBGYWlsZWQgdG8gZmV0Y2ggZW1haWxzIGZvciBwYWdlICR7cGFnZX0sIGF0dGVtcHRpbmcgdG8gcmVjb3ZlciBieSBkZWNyZW1lbnRpbmcgcGFnZWApO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctRVJST1JdIEFQSSByZXR1cm5lZCAke3Jlc3BvbnNlLnN0YXR1c30gZm9yIHBhZ2UgJHtwYWdlfWApO1xuICAgICAgICAgIC8vIElmIHdlJ3JlIGxvYWRpbmcgbW9yZSBhbmQgdGhlcmUncyBhbiBlcnJvciwganVzdCBkZWNyZW1lbnQgdGhlIHBhZ2UgdG8gYXZvaWQgZ2V0dGluZyBzdHVja1xuICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9QQUdFJywgcGF5bG9hZDogcGFnZSAtIDEgfSk7XG4gICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgICAgICAgICAvLyBBbHNvIHJlc2V0IHRvdGFsIHBhZ2VzIHRvIHRyeSBhZ2FpblxuICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9UT1RBTF9QQUdFUycsIHBheWxvYWQ6IHBhZ2UgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBjb25zdCBlcnJvckRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvckRhdGEuZXJyb3IgfHwgJ0ZhaWxlZCB0byBmZXRjaCBlbWFpbHMnKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctQVBJX1JFU1BPTlNFXSBHb3QgcmVzcG9uc2Ugd2l0aCAke2RhdGEuZW1haWxzPy5sZW5ndGggfHwgMH0gZW1haWxzLCB0b3RhbFBhZ2VzOiAke2RhdGEudG90YWxQYWdlc30sIHRvdGFsRW1haWxzOiAke2RhdGEudG90YWxFbWFpbHN9LCBpc0xvYWRNb3JlOiAke2lzTG9hZE1vcmV9YCk7XG4gICAgICBcbiAgICAgIC8vIENSSVRJQ0FMIEZJWDogRW5oYW5jZWQgZW1wdHkgcmVzdWx0cyBoYW5kbGluZ1xuICAgICAgaWYgKCFkYXRhLmVtYWlscyB8fCBkYXRhLmVtYWlscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY29uc29sZS5sb2coYFtERUJVRy1FTVBUWV0gTm8gZW1haWxzIGluIHJlc3BvbnNlIGZvciBwYWdlICR7cGFnZX1gKTtcbiAgICAgICAgLy8gSWYgd2UncmUgYXQgYSBwYWdlID4gMSBhbmQgZ290IG5vIHJlc3VsdHMsIHRoZSBwYWdpbmcgaXMgb2ZmLCBzbyB0cnkgYWdhaW4gd2l0aCBwYWdlIDFcbiAgICAgICAgaWYgKHBhZ2UgPiAxICYmICFpc0xvYWRNb3JlKSB7XG4gICAgICAgICAgbG9nRW1haWxPcCgnRU1QVFlfUkVTVUxUUycsIGBObyBlbWFpbHMgcmV0dXJuZWQgZm9yIHBhZ2UgJHtwYWdlfSwgcmVzZXR0aW5nIHRvIHBhZ2UgMWApO1xuICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9QQUdFJywgcGF5bG9hZDogMSB9KTtcbiAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfTE9BRElORycsIHBheWxvYWQ6IGZhbHNlIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gSWYgd2UncmUgYWxyZWFkeSBhdCBwYWdlIDEsIGp1c3QgdXBkYXRlIHRoZSBzdGF0ZSB3aXRoIG5vIGVtYWlsc1xuICAgICAgICBpZiAoIWlzTG9hZE1vcmUpIHtcbiAgICAgICAgICBsb2dFbWFpbE9wKCdFTVBUWV9SRVNVTFRTJywgYE5vIGVtYWlscyBmb3VuZCBpbiAke3N0YXRlLmN1cnJlbnRGb2xkZXJ9YCk7XG4gICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0VNQUlMUycsIHBheWxvYWQ6IFtdIH0pO1xuICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9UT1RBTF9FTUFJTFMnLCBwYXlsb2FkOiAwIH0pO1xuICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9UT1RBTF9QQUdFUycsIHBheWxvYWQ6IDAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRm9yIGxvYWQgbW9yZSwganVzdCBzZXQgbG9hZGluZyB0byBmYWxzZSBidXQga2VlcCBleGlzdGluZyBlbWFpbHNcbiAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfTE9BRElORycsIHBheWxvYWQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gRW5zdXJlIGFsbCBlbWFpbHMgaGF2ZSBwcm9wZXIgYWNjb3VudCBJRCBhbmQgZm9sZGVyIGZvcm1hdFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YS5lbWFpbHMpKSB7XG4gICAgICAgIC8vIExvZyBlbWFpbCBkYXRlcyBmb3IgZGVidWdnaW5nXG4gICAgICAgIGlmIChkYXRhLmVtYWlscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgbG9nRW1haWxPcCgnRU1BSUxfREFURVMnLCBgRmlyc3QgZmV3IGVtYWlsIGRhdGVzIGJlZm9yZSBwcm9jZXNzaW5nOmAsIFxuICAgICAgICAgICAgZGF0YS5lbWFpbHMuc2xpY2UoMCwgNSkubWFwKChlOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgIGlkOiBlLmlkLnN1YnN0cmluZygwLCA4KSxcbiAgICAgICAgICAgICAgc3ViamVjdDogZS5zdWJqZWN0Py5zdWJzdHJpbmcoMCwgMjApLFxuICAgICAgICAgICAgICBkYXRlOiBlLmRhdGUsXG4gICAgICAgICAgICAgIGRhdGVPYmo6IG5ldyBEYXRlKGUuZGF0ZSksXG4gICAgICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoZS5kYXRlKS5nZXRUaW1lKClcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGRhdGEuZW1haWxzLmZvckVhY2goKGVtYWlsOiBFbWFpbCkgPT4ge1xuICAgICAgICAgIC8vIElmIGVtYWlsIGRvZXNuJ3QgaGF2ZSBhbiBhY2NvdW50SWQsIHNldCBpdCB0byB0aGUgZWZmZWN0aXZlIG9uZVxuICAgICAgICAgIGlmICghZW1haWwuYWNjb3VudElkKSB7XG4gICAgICAgICAgICBlbWFpbC5hY2NvdW50SWQgPSBlZmZlY3RpdmVBY2NvdW50SWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIEVuc3VyZSBmb2xkZXIgaGFzIHRoZSBwcm9wZXIgcHJlZml4IGZvcm1hdFxuICAgICAgICAgIGlmIChlbWFpbC5mb2xkZXIgJiYgIWVtYWlsLmZvbGRlci5pbmNsdWRlcygnOicpKSB7XG4gICAgICAgICAgICBlbWFpbC5mb2xkZXIgPSBgJHtlbWFpbC5hY2NvdW50SWR9OiR7ZW1haWwuZm9sZGVyfWA7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIEVuc3VyZSBkYXRlIGlzIGEgdmFsaWQgRGF0ZSBvYmplY3QgKGhhbmRsZSBzdHJpbmdzIG9yIHRpbWVzdGFtcHMpXG4gICAgICAgICAgaWYgKGVtYWlsLmRhdGUgJiYgIShlbWFpbC5kYXRlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIC8vIENvbnZlcnQgdG8gYSBwcm9wZXIgRGF0ZSBvYmplY3QgaWYgaXQncyBhIHN0cmluZyBvciBudW1iZXJcbiAgICAgICAgICAgICAgY29uc3QgZGF0ZU9iaiA9IG5ldyBEYXRlKGVtYWlsLmRhdGUpO1xuICAgICAgICAgICAgICAvLyBWZXJpZnkgaXQncyBhIHZhbGlkIGRhdGVcbiAgICAgICAgICAgICAgaWYgKCFpc05hTihkYXRlT2JqLmdldFRpbWUoKSkpIHtcbiAgICAgICAgICAgICAgICBlbWFpbC5kYXRlID0gZGF0ZU9iajtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgIC8vIElmIGNvbnZlcnNpb24gZmFpbHMsIGxvZyBhbmQgdXNlIGN1cnJlbnQgZGF0ZSBhcyBmYWxsYmFja1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIGRhdGUgZm9ybWF0IGZvciBlbWFpbCAke2VtYWlsLmlkfTogJHtlbWFpbC5kYXRlfWApO1xuICAgICAgICAgICAgICBlbWFpbC5kYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBDUklUSUNBTCBGSVg6IExvZyB3aGF0IHdlJ3JlIGFib3V0IHRvIGRvXG4gICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLURJU1BBVENIXSBBYm91dCB0byBkaXNwYXRjaCAke2lzTG9hZE1vcmUgPyAnQVBQRU5EX0VNQUlMUycgOiAnU0VUX0VNQUlMUyd9IHdpdGggJHtkYXRhLmVtYWlscz8ubGVuZ3RoIHx8IDB9IGVtYWlsc2ApO1xuICAgICAgXG4gICAgICAvLyBVcGRhdGUgc3RhdGUgd2l0aCBmZXRjaGVkIGRhdGFcbiAgICAgIGRpc3BhdGNoKHsgXG4gICAgICAgIHR5cGU6IGlzTG9hZE1vcmUgPyAnQVBQRU5EX0VNQUlMUycgOiAnU0VUX0VNQUlMUycsIFxuICAgICAgICBwYXlsb2FkOiBBcnJheS5pc0FycmF5KGRhdGEuZW1haWxzKSA/IGRhdGEuZW1haWxzIDogW10gXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gRG91YmxlLWNoZWNrIHRoYXQgd2UndmUgdXBkYXRlZCB0aGUgZW1haWwgbGlzdCBjb3JyZWN0bHkgYWZ0ZXIgZGlzcGF0Y2hcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLUFGVEVSLURJU1BBVENIXSBFbWFpbCBjb3VudCBpcyBub3c6ICR7c3RhdGUuZW1haWxzLmxlbmd0aH0sIHNob3VsZCBpbmNsdWRlIHRoZSAke2RhdGEuZW1haWxzPy5sZW5ndGggfHwgMH0gbmV3IGVtYWlscyB3ZSBqdXN0IGxvYWRlZGApO1xuICAgICAgfSwgMCk7XG4gICAgICBcbiAgICAgIGlmIChkYXRhLnRvdGFsRW1haWxzKSB7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9UT1RBTF9FTUFJTFMnLCBwYXlsb2FkOiBkYXRhLnRvdGFsRW1haWxzIH0pO1xuICAgICAgfVxuICAgICAgXG4gICAgICBpZiAoZGF0YS50b3RhbFBhZ2VzKSB7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9UT1RBTF9QQUdFUycsIHBheWxvYWQ6IGRhdGEudG90YWxQYWdlcyB9KTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gVXBkYXRlIGF2YWlsYWJsZSBtYWlsYm94ZXMgaWYgcHJvdmlkZWRcbiAgICAgIGlmIChkYXRhLm1haWxib3hlcyAmJiBkYXRhLm1haWxib3hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9NQUlMQk9YRVMnLCBwYXlsb2FkOiBkYXRhLm1haWxib3hlcyB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ0VtYWlsT3AoJ0VSUk9SJywgYEZhaWxlZCB0byBsb2FkIGVtYWlsczogJHtlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycil9YCk7XG4gICAgICBkaXNwYXRjaCh7IFxuICAgICAgICB0eXBlOiAnU0VUX0VSUk9SJywgXG4gICAgICAgIHBheWxvYWQ6IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnRmFpbGVkIHRvIGxvYWQgZW1haWxzJyBcbiAgICAgIH0pO1xuICAgICAgdG9hc3Qoe1xuICAgICAgICB2YXJpYW50OiBcImRlc3RydWN0aXZlXCIsXG4gICAgICAgIHRpdGxlOiBcIkVycm9yXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ0ZhaWxlZCB0byBsb2FkIGVtYWlscydcbiAgICAgIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAvLyBDUklUSUNBTCBGSVg6IE9ubHkgY2xlYXIgbG9hZGluZyBzdGF0ZSBpZiB0aGUgZm9sZGVyL2FjY291bnQgaGFzbid0IGNoYW5nZWRcbiAgICAgIGlmIChzdGFydEZvbGRlciA9PT0gc3RhdGUuY3VycmVudEZvbGRlciAmJiBcbiAgICAgICAgICAoc3RhcnRBY2NvdW50ID09PSAoc3RhdGUuc2VsZWN0ZWRBY2NvdW50Py5pZCB8fCAnZGVmYXVsdCcpKSkge1xuICAgICAgICAvLyBTYWZlIHRvIGNsZWFyIGxvYWRpbmcgc3RhdGVcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctTE9BRF9FTUFJTFNdIEZvbGRlci9hY2NvdW50IGNoYW5nZWQgZHVyaW5nIGxvYWQsIG5vdCBjbGVhcmluZyBsb2FkaW5nIHN0YXRlYCk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbc2Vzc2lvbj8udXNlcj8uaWQsIHN0YXRlLmN1cnJlbnRGb2xkZXIsIHN0YXRlLnNlbGVjdGVkQWNjb3VudCwgc3RhdGUucGFnZSwgc3RhdGUucGVyUGFnZSwgc3RhdGUuZW1haWxzLmxlbmd0aCwgdG9hc3QsIGxvZ0VtYWlsT3BdKTtcblxuICAvLyBDaGFuZ2UgZm9sZGVyXG4gIGNvbnN0IGNoYW5nZUZvbGRlciA9IHVzZUNhbGxiYWNrKGFzeW5jIChmb2xkZXI6IHN0cmluZywgYWNjb3VudElkPzogc3RyaW5nKSA9PiB7XG4gICAgbG9nRW1haWxPcCgnQ0hBTkdFX0ZPTERFUicsIGBDaGFuZ2luZyB0byBmb2xkZXIgJHtmb2xkZXJ9IHdpdGggYWNjb3VudCAke2FjY291bnRJZCB8fCAnZGVmYXVsdCd9YCk7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIC8vIENSSVRJQ0FMIEZJWDogUmVzZXQgcGFnaW5hdGlvbiBzdGF0ZSBpbW1lZGlhdGVseVxuICAgICAgbGFzdFBhZ2VMb2FkZWRSZWYuY3VycmVudCA9IDA7XG4gICAgICBcbiAgICAgIC8vIFJlc2V0IHBhZ2UgdG8gMSBkaXJlY3RseSB0byBwcmV2ZW50IGFueSBpc3N1ZXMgd2l0aCBwYWdlIGVmZmVjdHNcbiAgICAgIC8vIFRoaXMgd2lsbCBiZSBhdG9taWMgd2l0aCB0aGUgQ0hBTkdFX0ZPTERFUiBhY3Rpb25cbiAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9QQUdFJywgcGF5bG9hZDogMSB9KTtcbiAgICAgIFxuICAgICAgLy8gQ2xlYXIgZXhpc3RpbmcgZW1haWxzIC0gZG9uJ3Qgc2hvdyBvbGQgZW1haWxzIGR1cmluZyBsb2FkXG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfRU1BSUxTJywgcGF5bG9hZDogW10gfSk7XG4gICAgICBcbiAgICAgIC8vIFNldCBsb2FkaW5nIHN0YXRlIGV4cGxpY2l0bHkgLSB0aGlzIGlzIGNyaXRpY2FsXG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfTE9BRElORycsIHBheWxvYWQ6IHRydWUgfSk7XG4gICAgICBcbiAgICAgIC8vIFRoaXMgd2lsbCBoYW5kbGUgZm9sZGVyIHNldHRpbmcgaW4gYSBzaW5nbGUgYXRvbWljIG9wZXJhdGlvblxuICAgICAgZGlzcGF0Y2goeyBcbiAgICAgICAgdHlwZTogJ0NIQU5HRV9GT0xERVInLCBcbiAgICAgICAgcGF5bG9hZDogeyBmb2xkZXIsIGFjY291bnRJZDogYWNjb3VudElkIHx8ICdkZWZhdWx0JyB9IFxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIENSSVRJQ0FMOiBUaGUgZW1haWwgbG9hZGluZyB3aWxsIGJlIHRyaWdnZXJlZCBieSB0aGUgZm9sZGVyIGVmZmVjdFxuICAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBjYWxsIGxvYWRFbWFpbHMgZGlyZWN0bHkgaGVyZVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dFbWFpbE9wKCdFUlJPUicsIGBGYWlsZWQgdG8gY2hhbmdlIGZvbGRlcjogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YCk7XG4gICAgICBkaXNwYXRjaCh7IFxuICAgICAgICB0eXBlOiAnU0VUX0VSUk9SJywgXG4gICAgICAgIHBheWxvYWQ6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0ZhaWxlZCB0byBjaGFuZ2UgZm9sZGVyJyBcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBBbHdheXMgZW5zdXJlIGxvYWRpbmcgc3RhdGUgaXMgY2xlYXJlZCBvbiBlcnJvclxuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgICB9XG4gIH0sIFtsb2dFbWFpbE9wLCBkaXNwYXRjaF0pO1xuXG4gIC8vIFNlbGVjdCBhY2NvdW50XG4gIGNvbnN0IHNlbGVjdEFjY291bnQgPSB1c2VDYWxsYmFjaygoYWNjb3VudDogQWNjb3VudCkgPT4ge1xuICAgIGxvZ0VtYWlsT3AoJ1NFTEVDVF9BQ0NPVU5UJywgYFNlbGVjdGluZyBhY2NvdW50OiAke2FjY291bnQuZW1haWx9ICgke2FjY291bnQuaWR9KWApO1xuICAgIFxuICAgIC8vIEhhbmRsZSB0aGUgZW50aXJlIGFjY291bnQgc2VsZWN0aW9uIGluIGEgc2luZ2xlIGF0b21pYyBvcGVyYXRpb25cbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRUxFQ1RfQUNDT1VOVCcsIHBheWxvYWQ6IGFjY291bnQgfSk7XG4gICAgXG4gICAgLy8gVGhlIGZvbGRlciBsb2FkaW5nIHdpbGwgYmUgdHJpZ2dlcmVkIGJ5IHRoZSB1c2VFZmZlY3Qgd2F0Y2hpbmcgZm9yIGN1cnJlbnRGb2xkZXIgY2hhbmdlc1xuICB9LCBbbG9nRW1haWxPcF0pO1xuXG4gIC8vIEhhbmRsZSBlbWFpbCBzZWxlY3Rpb25cbiAgY29uc3QgaGFuZGxlRW1haWxTZWxlY3QgPSB1c2VDYWxsYmFjayhhc3luYyAoZW1haWxJZDogc3RyaW5nLCBhY2NvdW50SWQ6IHN0cmluZywgZm9sZGVyOiBzdHJpbmcpID0+IHtcbiAgICBsb2dFbWFpbE9wKCdTRUxFQ1RfRU1BSUwnLCBgU2VsZWN0aW5nIGVtYWlsICR7ZW1haWxJZH0gZnJvbSBhY2NvdW50ICR7YWNjb3VudElkfSBpbiBmb2xkZXIgJHtmb2xkZXJ9YCk7XG4gICAgXG4gICAgaWYgKCFlbWFpbElkKSB7XG4gICAgICBkaXNwYXRjaCh7IFxuICAgICAgICB0eXBlOiAnU0VMRUNUX0VNQUlMJywgXG4gICAgICAgIHBheWxvYWQ6IHsgZW1haWxJZDogJycsIGFjY291bnRJZDogJycsIGZvbGRlcjogJycsIGVtYWlsOiBudWxsIH0gXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIC8vIEZpbmQgdGhlIGVtYWlsIGluIHRoZSBjdXJyZW50IGxpc3RcbiAgICAgIGNvbnN0IGV4aXN0aW5nRW1haWwgPSBzdGF0ZS5lbWFpbHMuZmluZChlID0+IGUuaWQgPT09IGVtYWlsSWQpO1xuICAgICAgXG4gICAgICBpZiAoZXhpc3RpbmdFbWFpbCAmJiBleGlzdGluZ0VtYWlsLmNvbnRlbnRGZXRjaGVkKSB7XG4gICAgICAgIC8vIFVzZSB0aGUgZXhpc3RpbmcgZW1haWwgaWYgaXQgaGFzIGNvbnRlbnQgYWxyZWFkeVxuICAgICAgICBkaXNwYXRjaCh7IFxuICAgICAgICAgIHR5cGU6ICdTRUxFQ1RfRU1BSUwnLFxuICAgICAgICAgIHBheWxvYWQ6IHsgZW1haWxJZCwgYWNjb3VudElkLCBmb2xkZXIsIGVtYWlsOiBleGlzdGluZ0VtYWlsIH1cbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyBNYXJrIGFzIHJlYWQgaWYgbm90IGFscmVhZHlcbiAgICAgICAgaWYgKCFleGlzdGluZ0VtYWlsLmZsYWdzLnNlZW4pIHtcbiAgICAgICAgICBtYXJrRW1haWxBc1JlYWQoZW1haWxJZCwgdHJ1ZSwgYWNjb3VudElkKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBOZWVkIHRvIGZldGNoIHRoZSBlbWFpbCBjb250ZW50XG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfTE9BRElORycsIHBheWxvYWQ6IHRydWUgfSk7XG4gICAgICBcbiAgICAgIC8vIEV4dHJhY3QgYWNjb3VudCBJRCBmcm9tIGZvbGRlciBuYW1lIGlmIHByZXNlbnQgYW5kIG5vbmUgd2FzIGV4cGxpY2l0bHkgcHJvdmlkZWRcbiAgICAgIGNvbnN0IHsgbm9ybWFsaXplZEZvbGRlciwgZWZmZWN0aXZlQWNjb3VudElkIH0gPSBub3JtYWxpemVGb2xkZXJBbmRBY2NvdW50KGZvbGRlciwgYWNjb3VudElkKTtcbiAgICAgIFxuICAgICAgLy8gRmV0Y2ggZW1haWwgY29udGVudCBmcm9tIEFQSVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgL2FwaS9jb3Vycmllci8ke2VtYWlsSWR9P2ZvbGRlcj0ke25vcm1hbGl6ZWRGb2xkZXJ9JmFjY291bnRJZD0ke2VmZmVjdGl2ZUFjY291bnRJZH1gKTtcbiAgICAgIFxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCBlbWFpbCBjb250ZW50OiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgY29uc3QgZW1haWxEYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgXG4gICAgICAvLyBNYXJrIHRoZSBlbWFpbCBhcyByZWFkIG9uIHRoZSBzZXJ2ZXJcbiAgICAgIG1hcmtFbWFpbEFzUmVhZChlbWFpbElkLCB0cnVlLCBlZmZlY3RpdmVBY2NvdW50SWQpO1xuICAgICAgXG4gICAgICAvLyBTZWxlY3QgdGhlIGVtYWlsXG4gICAgICBkaXNwYXRjaCh7IFxuICAgICAgICB0eXBlOiAnU0VMRUNUX0VNQUlMJyxcbiAgICAgICAgcGF5bG9hZDogeyBlbWFpbElkLCBhY2NvdW50SWQ6IGVmZmVjdGl2ZUFjY291bnRJZCwgZm9sZGVyLCBlbWFpbDogZW1haWxEYXRhIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dFbWFpbE9wKCdFUlJPUicsIGBGYWlsZWQgdG8gc2VsZWN0IGVtYWlsOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gKTtcbiAgICAgIGRpc3BhdGNoKHsgXG4gICAgICAgIHR5cGU6ICdTRVRfRVJST1InLCBcbiAgICAgICAgcGF5bG9hZDogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnRmFpbGVkIHRvIHNlbGVjdCBlbWFpbCcgXG4gICAgICB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgICB9XG4gIH0sIFtzdGF0ZS5lbWFpbHMsIGxvZ0VtYWlsT3BdKTtcblxuICAvLyBUb2dnbGUgZW1haWwgc2VsZWN0aW9uIGZvciBtdWx0aS1zZWxlY3RcbiAgY29uc3QgdG9nZ2xlRW1haWxTZWxlY3Rpb24gPSB1c2VDYWxsYmFjaygoZW1haWxJZDogc3RyaW5nKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiAnVE9HR0xFX0VNQUlMX1NFTEVDVElPTicsIHBheWxvYWQ6IGVtYWlsSWQgfSk7XG4gIH0sIFtdKTtcblxuICAvLyBUb2dnbGUgc2VsZWN0IGFsbFxuICBjb25zdCB0b2dnbGVTZWxlY3RBbGwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiAnVE9HR0xFX1NFTEVDVF9BTEwnIH0pO1xuICB9LCBbXSk7XG5cbiAgLy8gTWFyayBlbWFpbCBhcyByZWFkL3VucmVhZFxuICBjb25zdCBtYXJrRW1haWxBc1JlYWQgPSB1c2VDYWxsYmFjayhhc3luYyAoZW1haWxJZDogc3RyaW5nLCBpc1JlYWQ6IGJvb2xlYW4sIGFjY291bnRJZD86IHN0cmluZykgPT4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBGaW5kIHRoZSBlbWFpbCB0byBnZXQgaXRzIGFjY291bnQgSUQgaWYgbm90IHByb3ZpZGVkXG4gICAgICBjb25zdCBlbWFpbCA9IHN0YXRlLmVtYWlscy5maW5kKGUgPT4gZS5pZCA9PT0gZW1haWxJZCk7XG4gICAgICBjb25zdCBlZmZlY3RpdmVBY2NvdW50SWQgPSBhY2NvdW50SWQgfHwgZW1haWw/LmFjY291bnRJZCB8fCAnZGVmYXVsdCc7XG4gICAgICBjb25zdCBmb2xkZXIgPSBlbWFpbD8uZm9sZGVyIHx8IHN0YXRlLmN1cnJlbnRGb2xkZXI7XG4gICAgICBcbiAgICAgIC8vIEV4dHJhY3Qgbm9ybWFsaXplZCBmb2xkZXJcbiAgICAgIGNvbnN0IHsgbm9ybWFsaXplZEZvbGRlciB9ID0gbm9ybWFsaXplRm9sZGVyQW5kQWNjb3VudChmb2xkZXIsIGVmZmVjdGl2ZUFjY291bnRJZCk7XG4gICAgICBcbiAgICAgIGxvZ0VtYWlsT3AoJ01BUktfUkVBRCcsIGBNYXJraW5nIGVtYWlsICR7ZW1haWxJZH0gYXMgJHtpc1JlYWQgPyAncmVhZCcgOiAndW5yZWFkJ30gaW4gJHtub3JtYWxpemVkRm9sZGVyfWApO1xuICAgICAgXG4gICAgICAvLyBVcGRhdGUgVUkgc3RhdGUgaW1tZWRpYXRlbHkgKG9wdGltaXN0aWMgdXBkYXRlKVxuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiAnTUFSS19FTUFJTF9BU19SRUFEJyxcbiAgICAgICAgcGF5bG9hZDogeyBlbWFpbElkLCBpc1JlYWQsIGFjY291bnRJZDogZWZmZWN0aXZlQWNjb3VudElkIH1cbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBOT1RFOiBEb24ndCB1cGRhdGUgdW5yZWFkIGNvdW50cyBoZXJlIC0gdGhhdCdzIG5vdyBoYW5kbGVkIGJ5IHRoZSB1cGRhdGVVbnJlYWRDb3VudHMgZnVuY3Rpb25cbiAgICAgIC8vIHdoaWNoIGlzIHRyaWdnZXJlZCBieSB0aGUgZW1haWwgdXBkYXRlIGFib3ZlIHZpYSB0aGUgdXNlRWZmZWN0XG4gICAgICBcbiAgICAgIC8vIE1ha2UgQVBJIGNhbGwgdG8gdXBkYXRlIG9uIHNlcnZlclxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgL2FwaS9jb3Vycmllci8ke2VtYWlsSWR9L21hcmstcmVhZGAsIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgaXNSZWFkLFxuICAgICAgICAgIGZvbGRlcjogbm9ybWFsaXplZEZvbGRlcixcbiAgICAgICAgICBhY2NvdW50SWQ6IGVmZmVjdGl2ZUFjY291bnRJZFxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gbWFyayBlbWFpbCBhcyByZWFkJyk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dFbWFpbE9wKCdFUlJPUicsIGBGYWlsZWQgdG8gbWFyayBlbWFpbCBhcyByZWFkOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gKTtcbiAgICAgIHRvYXN0KHtcbiAgICAgICAgdmFyaWFudDogXCJkZXN0cnVjdGl2ZVwiLFxuICAgICAgICB0aXRsZTogXCJFcnJvclwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0ZhaWxlZCB0byB1cGRhdGUgZW1haWwgcmVhZCBzdGF0dXMnXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0sIFtzdGF0ZS5lbWFpbHMsIHN0YXRlLmN1cnJlbnRGb2xkZXIsIHRvYXN0LCBsb2dFbWFpbE9wXSk7XG5cbiAgLy8gVG9nZ2xlIHN0YXJyZWQgc3RhdHVzXG4gIGNvbnN0IHRvZ2dsZVN0YXJyZWQgPSB1c2VDYWxsYmFjayhhc3luYyAoZW1haWxJZDogc3RyaW5nKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEZpbmQgdGhlIGVtYWlsIGluIGN1cnJlbnQgbGlzdFxuICAgICAgY29uc3QgZW1haWwgPSBzdGF0ZS5lbWFpbHMuZmluZChlID0+IGUuaWQgPT09IGVtYWlsSWQpO1xuICAgICAgaWYgKCFlbWFpbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VtYWlsIG5vdCBmb3VuZCcpO1xuICAgICAgfVxuICAgICAgXG4gICAgICBjb25zdCBuZXdGbGFnZ2VkU3RhdHVzID0gIWVtYWlsLmZsYWdzLmZsYWdnZWQ7XG4gICAgICBsb2dFbWFpbE9wKCdUT0dHTEVfU1RBUicsIGBTZXR0aW5nIHN0YXJyZWQgc3RhdHVzIHRvICR7bmV3RmxhZ2dlZFN0YXR1c30gZm9yIGVtYWlsICR7ZW1haWxJZH1gKTtcbiAgICAgIFxuICAgICAgLy8gVE9ETzogSW1wbGVtZW50IG9wdGltaXN0aWMgdXBkYXRlXG4gICAgICBcbiAgICAgIC8vIE1ha2UgQVBJIGNhbGxcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC9hcGkvY291cnJpZXIvJHtlbWFpbElkfS9mbGFnYCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBmbGFnZ2VkOiBuZXdGbGFnZ2VkU3RhdHVzLFxuICAgICAgICAgIGZvbGRlcjogZW1haWwuZm9sZGVyLFxuICAgICAgICAgIGFjY291bnRJZDogZW1haWwuYWNjb3VudElkXG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byB1cGRhdGUgc3RhciBzdGF0dXMnKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gUmVsb2FkIGVtYWlscyB0byBnZXQgdXBkYXRlZCBzdGF0ZVxuICAgICAgbG9hZEVtYWlscyhzdGF0ZS5wYWdlLCBzdGF0ZS5wZXJQYWdlLCB0cnVlKTtcbiAgICAgIFxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ0VtYWlsT3AoJ0VSUk9SJywgYEZhaWxlZCB0byB0b2dnbGUgc3RhcjogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YCk7XG4gICAgICB0b2FzdCh7XG4gICAgICAgIHZhcmlhbnQ6IFwiZGVzdHJ1Y3RpdmVcIixcbiAgICAgICAgdGl0bGU6IFwiRXJyb3JcIixcbiAgICAgICAgZGVzY3JpcHRpb246ICdGYWlsZWQgdG8gdXBkYXRlIHN0YXIgc3RhdHVzJ1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9LCBbc3RhdGUuZW1haWxzLCB0b2FzdCwgbG9hZEVtYWlscywgbG9nRW1haWxPcF0pO1xuXG4gIC8vIEZ1bmN0aW9uIHRvIGNoZWNrIGZvciBuZXcgZW1haWxzIHdpdGhvdXQgZGlzcnVwdGluZyB0aGUgdXNlclxuICBjb25zdCBjaGVja0Zvck5ld0VtYWlscyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBpZiAoIXNlc3Npb24/LnVzZXI/LmlkKSByZXR1cm47XG4gICAgXG4gICAgLy8gRG9uJ3QgY2hlY2sgaWYgYWxyZWFkeSBsb2FkaW5nIGVtYWlsc1xuICAgIGlmIChzdGF0ZS5pc0xvYWRpbmcpIHJldHVybjtcbiAgICBcbiAgICB0cnkge1xuICAgICAgLy8gR2V0IG5vcm1hbGl6ZWQgcGFyYW1ldGVycyB1c2luZyBoZWxwZXIgZnVuY3Rpb25cbiAgICAgIGNvbnN0IGFjY291bnRJZCA9IHN0YXRlLnNlbGVjdGVkQWNjb3VudCA/IHN0YXRlLnNlbGVjdGVkQWNjb3VudC5pZCA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHsgbm9ybWFsaXplZEZvbGRlciwgZWZmZWN0aXZlQWNjb3VudElkLCBwcmVmaXhlZEZvbGRlciB9ID0gXG4gICAgICAgIG5vcm1hbGl6ZUZvbGRlckFuZEFjY291bnQoc3RhdGUuY3VycmVudEZvbGRlciwgYWNjb3VudElkKTtcbiAgICAgIFxuICAgICAgbG9nRW1haWxPcCgnQ0hFQ0tfTkVXX0VNQUlMUycsIGBDaGVja2luZyBmb3IgbmV3IGVtYWlscyBpbiAke3ByZWZpeGVkRm9sZGVyfWApO1xuICAgICAgXG4gICAgICAvLyBRdWlldGx5IGNoZWNrIGZvciBuZXcgZW1haWxzIHdpdGggYSBzcGVjaWFsIHBhcmFtZXRlclxuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgZm9sZGVyOiBub3JtYWxpemVkRm9sZGVyLFxuICAgICAgICBwYWdlOiAnMScsXG4gICAgICAgIHBlclBhZ2U6ICcxJywgLy8gV2Ugb25seSBuZWVkIHRvIGNoZWNrIHRoZSBuZXdlc3QgZW1haWxcbiAgICAgICAgYWNjb3VudElkOiBlZmZlY3RpdmVBY2NvdW50SWQsXG4gICAgICAgIGNoZWNrT25seTogJ3RydWUnIC8vIFNwZWNpYWwgcGFyYW1ldGVyIHRvIGluZGljYXRlIHRoaXMgaXMganVzdCBhIGNoZWNrXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgL2FwaS9jb3Vycmllci9lbWFpbHM/JHtxdWVyeVBhcmFtcy50b1N0cmluZygpfWAsIHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgIGNhY2hlOiAnbm8tY2FjaGUnXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBjaGVjayBmb3IgbmV3IGVtYWlsczogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICBcbiAgICAgIC8vIFN0b3JlIHRoZSBsYXRlc3QgZW1haWwncyBJRCBmb3IgZWFzaWVyIHJlZmVyZW5jZVxuICAgICAgY29uc3QgbGFzdEtub3duRW1haWxJZCA9IHN0YXRlLmVtYWlscy5sZW5ndGggPiAwID8gcGFyc2VJbnQoc3RhdGUuZW1haWxzWzBdLmlkKSA6IDA7XG4gICAgICBcbiAgICAgIC8vIFVzZSBuZXdlc3RFbWFpbElkIGZyb20gQVBJIHJlc3BvbnNlIChtb3JlIHJlbGlhYmxlIHRoYW4gY2hlY2tpbmcgZW1haWxzIGFycmF5KVxuICAgICAgaWYgKGRhdGEubmV3ZXN0RW1haWxJZCAmJiBkYXRhLm5ld2VzdEVtYWlsSWQgPiBsYXN0S25vd25FbWFpbElkKSB7XG4gICAgICAgIGxvZ0VtYWlsT3AoJ05FV19FTUFJTFMnLCBgRm91bmQgbmV3IGVtYWlscywgbmV3ZXN0IElEOiAke2RhdGEubmV3ZXN0RW1haWxJZH0gKGN1cnJlbnQ6ICR7bGFzdEtub3duRW1haWxJZH0pYCk7XG4gICAgICAgIFxuICAgICAgICAvLyBTaG93IGEgdG9hc3Qgbm90aWZpY2F0aW9uIHdpdGggdGhlIG5ldyBjdXN0b20gdmFyaWFudFxuICAgICAgICB0b2FzdCh7XG4gICAgICAgICAgdmFyaWFudDogXCJuZXctZW1haWxcIiwgLy8gVXNlIG91ciBuZXcgY3VzdG9tIHZhcmlhbnRcbiAgICAgICAgICB0aXRsZTogXCJOZXcgZW1haWxzXCIsXG4gICAgICAgICAgZGVzY3JpcHRpb246IFwiWW91IGhhdmUgbmV3IGVtYWlscyBpbiB5b3VyIGluYm94XCIsXG4gICAgICAgICAgZHVyYXRpb246IDUwMDBcbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyBGdWxsIHJlZnJlc2gganVzdCBsaWtlIHRoZSByZWZyZXNoIGJ1dHRvbiBpbiBzaWRlYmFyXG4gICAgICAgIC8vIFJlc2V0IHRvIHBhZ2UgMSB0byBlbnN1cmUgd2UgZ2V0IHRoZSBuZXdlc3QgZW1haWxzXG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9QQUdFJywgcGF5bG9hZDogMSB9KTtcbiAgICAgICAgbG9hZEVtYWlscygxLCBzdGF0ZS5wZXJQYWdlLCBmYWxzZSk7XG4gICAgICAgIFxuICAgICAgICAvLyBBbHNvIHVwZGF0ZSB1bnJlYWQgY291bnRzIC0gdGhpcyB3aWxsIGJlIGhhbmRsZWQgaW4gdGhlIGVmZmVjdFxuICAgICAgICAvLyBUaGUgZmV0Y2hVbnJlYWRDb3VudHMgZnVuY3Rpb24gd2lsbCBiZSBhdmFpbGFibGUgd2hlbiB0aGlzIGNhbGxiYWNrIGlzIGNhbGxlZFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nRW1haWxPcCgnQ0hFQ0tfTkVXX0VNQUlMUycsICdObyBuZXcgZW1haWxzIGZvdW5kJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNoZWNraW5nIGZvciBuZXcgZW1haWxzOicsIGVycm9yKTtcbiAgICB9XG4gIH0sIFtzZXNzaW9uPy51c2VyPy5pZCwgc3RhdGUuY3VycmVudEZvbGRlciwgc3RhdGUuaXNMb2FkaW5nLCBzdGF0ZS5lbWFpbHMsIHN0YXRlLnBlclBhZ2UsIHRvYXN0LCBsb2FkRW1haWxzLCBsb2dFbWFpbE9wLCBkaXNwYXRjaF0pO1xuXG4gIC8vIERlbGV0ZSBlbWFpbHNcbiAgY29uc3QgZGVsZXRlRW1haWxzID0gdXNlQ2FsbGJhY2soYXN5bmMgKGVtYWlsSWRzOiBzdHJpbmdbXSkgPT4ge1xuICAgIGlmIChlbWFpbElkcy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfTE9BRElORycsIHBheWxvYWQ6IHRydWUgfSk7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIGxvZ0VtYWlsT3AoJ0RFTEVURScsIGBEZWxldGluZyAke2VtYWlsSWRzLmxlbmd0aH0gZW1haWxzYCk7XG4gICAgICBcbiAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IGVtYWlsIHRvIGdldCBhY2NvdW50IElEIGFuZCBmb2xkZXJcbiAgICAgIGNvbnN0IGZpcnN0RW1haWwgPSBzdGF0ZS5lbWFpbHMuZmluZChlID0+IGUuaWQgPT09IGVtYWlsSWRzWzBdKTtcbiAgICAgIGNvbnN0IGFjY291bnRJZCA9IGZpcnN0RW1haWw/LmFjY291bnRJZCB8fCAnZGVmYXVsdCc7XG4gICAgICBjb25zdCBmb2xkZXIgPSBmaXJzdEVtYWlsPy5mb2xkZXIgfHwgc3RhdGUuY3VycmVudEZvbGRlcjtcbiAgICAgIGNvbnN0IHsgbm9ybWFsaXplZEZvbGRlciB9ID0gbm9ybWFsaXplRm9sZGVyQW5kQWNjb3VudChmb2xkZXIsIGFjY291bnRJZCk7XG4gICAgICBcbiAgICAgIC8vIE1ha2UgQVBJIGNhbGwgdG8gZGVsZXRlIGVtYWlsc1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FwaS9jb3Vycmllci9kZWxldGUnLCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGVtYWlsSWRzLFxuICAgICAgICAgIGZvbGRlcjogbm9ybWFsaXplZEZvbGRlcixcbiAgICAgICAgICBhY2NvdW50SWRcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGRlbGV0ZSBlbWFpbHMnKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gQ2xlYXIgc2VsZWN0aW9uc1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnQ0xFQVJfU0VMRUNURURfRU1BSUxTJyB9KTtcbiAgICAgIFxuICAgICAgLy8gU2hvdyB0b2FzdCBub3RpZmljYXRpb25cbiAgICAgIHRvYXN0KHtcbiAgICAgICAgdGl0bGU6IFwiRW1haWxzIERlbGV0ZWRcIixcbiAgICAgICAgZGVzY3JpcHRpb246IGAke2VtYWlsSWRzLmxlbmd0aH0gZW1haWwocykgbW92ZWQgdG8gdHJhc2hgXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gRnVsbCByZWZyZXNoIGp1c3QgbGlrZSB0aGUgcmVmcmVzaCBidXR0b24gaW4gc2lkZWJhclxuICAgICAgLy8gUmVzZXQgdG8gcGFnZSAxIHRvIGVuc3VyZSB3ZSBnZXQgdGhlIHVwZGF0ZWQgZW1haWwgbGlzdFxuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX1BBR0UnLCBwYXlsb2FkOiAxIH0pO1xuICAgICAgbG9hZEVtYWlscygxLCBzdGF0ZS5wZXJQYWdlLCBmYWxzZSk7XG4gICAgICBcbiAgICAgIC8vIEFsc28gdXBkYXRlIHVucmVhZCBjb3VudHMgLSB0aGlzIHdpbGwgYmUgaGFuZGxlZCBpbiB0aGUgZWZmZWN0XG4gICAgICAvLyBUaGUgZmV0Y2hVbnJlYWRDb3VudHMgZnVuY3Rpb24gd2lsbCBiZSBhdmFpbGFibGUgd2hlbiB0aGlzIGNhbGxiYWNrIGlzIGNhbGxlZFxuICAgICAgXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nRW1haWxPcCgnRVJST1InLCBgRmFpbGVkIHRvIGRlbGV0ZSBlbWFpbHM6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpfWApO1xuICAgICAgdG9hc3Qoe1xuICAgICAgICB2YXJpYW50OiBcImRlc3RydWN0aXZlXCIsXG4gICAgICAgIHRpdGxlOiBcIkVycm9yXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRmFpbGVkIHRvIGRlbGV0ZSBlbWFpbHMnXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgICB9XG4gIH0sIFtzdGF0ZS5lbWFpbHMsIHN0YXRlLmN1cnJlbnRGb2xkZXIsIHN0YXRlLnBlclBhZ2UsIHRvYXN0LCBsb2FkRW1haWxzLCBsb2dFbWFpbE9wLCBkaXNwYXRjaF0pO1xuXG4gIC8vIFNlbmQgZW1haWxcbiAgY29uc3Qgc2VuZEVtYWlsID0gdXNlQ2FsbGJhY2soYXN5bmMgKGVtYWlsRGF0YTogRW1haWxEYXRhKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiB0cnVlIH0pO1xuICAgIFxuICAgIHRyeSB7XG4gICAgICBsb2dFbWFpbE9wKCdTRU5EJywgYFNlbmRpbmcgZW1haWwgdG8gJHtlbWFpbERhdGEudG99YCk7XG4gICAgICBcbiAgICAgIC8vIE1ha2UgQVBJIGNhbGwgdG8gc2VuZCBlbWFpbFxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2FwaS9jb3Vycmllci9zZW5kJywge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGVtYWlsRGF0YSlcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yRGF0YS5lcnJvciB8fCAnRmFpbGVkIHRvIHNlbmQgZW1haWwnKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgXG4gICAgICB0b2FzdCh7XG4gICAgICAgIHRpdGxlOiBcIkVtYWlsIFNlbnRcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiWW91ciBtZXNzYWdlIGhhcyBiZWVuIHNlbnQgc3VjY2Vzc2Z1bGx5XCJcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBXYWl0IGEgbW9tZW50IGZvciB0aGUgZW1haWwgdG8gYmUgYXZhaWxhYmxlIGluIHRoZSBzZW50IGZvbGRlclxuICAgICAgLy8gKGVtYWlscyBtYXkgbmVlZCB0aW1lIHRvIGJlIHN0b3JlZCBvbiBJTUFQIHNlcnZlcilcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAvLyBDaGVjayBmb3IgbmV3IGVtYWlscyBhbmQgcmVmcmVzaCBtYWlsYm94XG4gICAgICAgIGNoZWNrRm9yTmV3RW1haWxzKCk7XG4gICAgICAgIFxuICAgICAgICAvLyBSZWZyZXNoIGVtYWlscyB0byBzaG93IHRoZSBzZW50IGVtYWlsIGluIGN1cnJlbnQgdmlld1xuICAgICAgICBsb2FkRW1haWxzKHN0YXRlLnBhZ2UsIHN0YXRlLnBlclBhZ2UsIGZhbHNlKTtcbiAgICAgIH0sIDE1MDApO1xuICAgICAgXG4gICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCAuLi5yZXN1bHQgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nRW1haWxPcCgnRVJST1InLCBgRmFpbGVkIHRvIHNlbmQgZW1haWw6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpfWApO1xuICAgICAgdG9hc3Qoe1xuICAgICAgICB2YXJpYW50OiBcImRlc3RydWN0aXZlXCIsXG4gICAgICAgIHRpdGxlOiBcIkVycm9yXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdGYWlsZWQgdG8gc2VuZCBlbWFpbCdcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdGYWlsZWQgdG8gc2VuZCBlbWFpbCcgfTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiBmYWxzZSB9KTtcbiAgICB9XG4gIH0sIFt0b2FzdCwgbG9hZEVtYWlscywgbG9nRW1haWxPcCwgY2hlY2tGb3JOZXdFbWFpbHNdKTtcbiAgXG4gIC8vIFNlYXJjaCBlbWFpbHNcbiAgY29uc3Qgc2VhcmNoRW1haWxzID0gdXNlQ2FsbGJhY2soYXN5bmMgKHF1ZXJ5OiBzdHJpbmcpID0+IHtcbiAgICAvLyBTZXQgbG9hZGluZyBzdGF0ZVxuICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9MT0FESU5HJywgcGF5bG9hZDogdHJ1ZSB9KTtcbiAgICBcbiAgICB0cnkge1xuICAgICAgaWYgKCFzZXNzaW9uPy51c2VyPy5pZCkgcmV0dXJuO1xuICAgICAgXG4gICAgICBsb2dFbWFpbE9wKCdTRUFSQ0gnLCBgU2VhcmNoaW5nIGZvciBcIiR7cXVlcnl9XCIgaW4gJHtzdGF0ZS5jdXJyZW50Rm9sZGVyfWApO1xuICAgICAgXG4gICAgICAvLyBFeHRyYWN0IGFjY291bnQgSUQgZnJvbSBjdXJyZW50IGZvbGRlclxuICAgICAgY29uc3QgeyBub3JtYWxpemVkRm9sZGVyLCBlZmZlY3RpdmVBY2NvdW50SWQgfSA9IG5vcm1hbGl6ZUZvbGRlckFuZEFjY291bnQoc3RhdGUuY3VycmVudEZvbGRlcik7XG4gICAgICBcbiAgICAgIC8vIENvbnN0cnVjdCBxdWVyeSBwYXJhbXMgZm9yIHNlYXJjaFxuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgZm9sZGVyOiBub3JtYWxpemVkRm9sZGVyLFxuICAgICAgICBzZWFyY2g6IHF1ZXJ5LFxuICAgICAgICBhY2NvdW50SWQ6IGVmZmVjdGl2ZUFjY291bnRJZFxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIENhbGwgQVBJIGZvciBzZWFyY2hcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYC9hcGkvY291cnJpZXIvc2VhcmNoPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gKTtcbiAgICAgIFxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICBjb25zdCBlcnJvckRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvckRhdGEuZXJyb3IgfHwgJ0ZhaWxlZCB0byBzZWFyY2ggZW1haWxzJyk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSBlbWFpbHMgd2l0aCBzZWFyY2ggcmVzdWx0c1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0VNQUlMUycsIHBheWxvYWQ6IHJlc3VsdHMuZW1haWxzIHx8IFtdIH0pO1xuICAgICAgXG4gICAgICBpZiAocmVzdWx0cy50b3RhbEVtYWlscykge1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfVE9UQUxfRU1BSUxTJywgcGF5bG9hZDogcmVzdWx0cy50b3RhbEVtYWlscyB9KTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgaWYgKHJlc3VsdHMudG90YWxQYWdlcykge1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfVE9UQUxfUEFHRVMnLCBwYXlsb2FkOiByZXN1bHRzLnRvdGFsUGFnZXMgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ0VtYWlsT3AoJ0VSUk9SJywgYFNlYXJjaCBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpfWApO1xuICAgICAgZGlzcGF0Y2goeyBcbiAgICAgICAgdHlwZTogJ1NFVF9FUlJPUicsIFxuICAgICAgICBwYXlsb2FkOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdGYWlsZWQgdG8gc2VhcmNoIGVtYWlscycgXG4gICAgICB9KTtcbiAgICAgIHRvYXN0KHtcbiAgICAgICAgdmFyaWFudDogXCJkZXN0cnVjdGl2ZVwiLFxuICAgICAgICB0aXRsZTogXCJFcnJvclwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0ZhaWxlZCB0byBzZWFyY2ggZW1haWxzJ1xuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9MT0FESU5HJywgcGF5bG9hZDogZmFsc2UgfSk7XG4gICAgfVxuICB9LCBbc2Vzc2lvbj8udXNlcj8uaWQsIHN0YXRlLmN1cnJlbnRGb2xkZXIsIHRvYXN0LCBsb2dFbWFpbE9wXSk7XG4gIFxuICAvLyBGb3JtYXQgZW1haWwgZm9yIHJlcGx5LCByZXBseSBhbGwsIG9yIGZvcndhcmRcbiAgY29uc3QgZm9ybWF0RW1haWxGb3JBY3Rpb24gPSB1c2VDYWxsYmFjaygoZW1haWw6IGFueSwgdHlwZTogJ3JlcGx5JyB8ICdyZXBseS1hbGwnIHwgJ2ZvcndhcmQnKSA9PiB7XG4gICAgcmV0dXJuIGZvcm1hdEVtYWlsRm9yUmVwbHlPckZvcndhcmQoZW1haWwsIHR5cGUpO1xuICB9LCBbXSk7XG5cbiAgLy8gVXBkYXRlIHBhZ2VcbiAgY29uc3Qgc2V0UGFnZSA9IHVzZUNhbGxiYWNrKChwYWdlOiBudW1iZXIpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfUEFHRScsIHBheWxvYWQ6IHBhZ2UgfSk7XG4gIH0sIFtdKTtcblxuICAvLyBTZXQgZW1haWxzIGRpcmVjdGx5XG4gIGNvbnN0IHNldEVtYWlscyA9IHVzZUNhbGxiYWNrKChlbWFpbHM6IEVtYWlsW10pID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfRU1BSUxTJywgcGF5bG9hZDogZW1haWxzIH0pO1xuICB9LCBbXSk7XG5cbiAgLy8gSGFuZGxlIGxvYWRpbmcgbW9yZSBlbWFpbHNcbiAgY29uc3QgaGFuZGxlTG9hZE1vcmUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgLy8gRG9uJ3QgbG9hZCBtb3JlIGlmIGFscmVhZHkgbG9hZGluZyBvciBpZiB0aGVyZSBhcmUgbm8gbW9yZSBwYWdlc1xuICAgIGlmIChzdGF0ZS5pc0xvYWRpbmcgfHwgc3RhdGUucGFnZSA+PSBzdGF0ZS50b3RhbFBhZ2VzKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW0xPQURfTU9SRV0gU2tpcHBpbmcgbG9hZCBtb3JlIC0gYWxyZWFkeSBsb2FkaW5nOiAke3N0YXRlLmlzTG9hZGluZ30sIHBhZ2U6ICR7c3RhdGUucGFnZX0sIHRvdGFsUGFnZXM6ICR7c3RhdGUudG90YWxQYWdlc31gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gTG9nIHRoZSBjdXJyZW50IHN0YXRlXG4gICAgY29uc29sZS5sb2coYFtMT0FEX01PUkVdIExvYWRpbmcgbW9yZSBlbWFpbHMgZm9yICR7c3RhdGUuY3VycmVudEZvbGRlcn0sIGN1cnJlbnRQYWdlOiAke3N0YXRlLnBhZ2V9LCB0b3RhbFBhZ2VzOiAke3N0YXRlLnRvdGFsUGFnZXN9LCBjdXJyZW50IGVtYWlsIGNvdW50OiAke3N0YXRlLmVtYWlscy5sZW5ndGh9YCk7XG4gICAgXG4gICAgLy8gU2V0IGxvYWRpbmcgc3RhdGUgaW1tZWRpYXRlbHkgdG8gcHJldmVudCBkb3VibGUtbG9hZGluZ1xuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6ICdTRVRfTE9BRElORycsXG4gICAgICBwYXlsb2FkOiB0cnVlXG4gICAgfSk7XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIG5leHQgcGFnZVxuICAgIGNvbnN0IG5leHRQYWdlID0gc3RhdGUucGFnZSArIDE7XG4gICAgXG4gICAgLy8gVXBkYXRlIHRoZSBwYWdlIHN0YXRlIC0gZml4IHR5cGUgaXNzdWVcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiAnU0VUX1BBR0UnLFxuICAgICAgcGF5bG9hZDogbmV4dFBhZ2VcbiAgICB9KTtcbiAgICBcbiAgICAvLyBDUklUSUNBTCBGSVg6IFVwZGF0ZSB0aGUgbGFzdExvYWRlZFBhZ2UgcmVmIHRvIHRyYWNrIHBhZ2luYXRpb24gc3RhdGVcbiAgICBsYXN0UGFnZUxvYWRlZFJlZi5jdXJyZW50ID0gbmV4dFBhZ2U7XG4gICAgXG4gICAgLy8gTG9hZCB0aGUgbmV4dCBwYWdlXG4gICAgbG9hZEVtYWlscyhuZXh0UGFnZSwgc3RhdGUucGVyUGFnZSwgdHJ1ZSkudGhlbigoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhgW0xPQURfTU9SRV0gQ29tcGxldGVkIGxvYWRpbmcgbW9yZSBlbWFpbHMgZm9yIHBhZ2UgJHtuZXh0UGFnZX1gKTtcbiAgICB9KTtcbiAgfSwgW3N0YXRlLmlzTG9hZGluZywgc3RhdGUucGFnZSwgc3RhdGUudG90YWxQYWdlcywgc3RhdGUuY3VycmVudEZvbGRlciwgc3RhdGUuZW1haWxzLmxlbmd0aCwgc3RhdGUucGVyUGFnZSwgZGlzcGF0Y2gsIGxvYWRFbWFpbHNdKTtcblxuICAvLyBFZmZlY3QgdG8gbG9hZCBlbWFpbHMgd2hlbiBmb2xkZXIgY2hhbmdlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzZXNzaW9uPy51c2VyPy5pZCAmJiBzdGF0ZS5jdXJyZW50Rm9sZGVyKSB7XG4gICAgICAvLyBDUklUSUNBTCBGSVg6IFJFTU9WRSB0aGlzIGNoZWNrIHRoYXQncyBjYXVzaW5nIHRoZSBwcm9ibGVtXG4gICAgICAvLyBJbnN0ZWFkLCBkZXRlY3QgYSByZWFsIGZvbGRlciBjaGFuZ2UgYW5kIGFsd2F5cyBsb2FkIHdoZW4gdGhhdCBoYXBwZW5zXG4gICAgICBcbiAgICAgIC8vIEV4dHJhY3QgYWNjb3VudCBJRCBmb3IgY29uc2lzdGVudCBsb2FkaW5nXG4gICAgICBjb25zdCB7IGVmZmVjdGl2ZUFjY291bnRJZCB9ID0gbm9ybWFsaXplRm9sZGVyQW5kQWNjb3VudChzdGF0ZS5jdXJyZW50Rm9sZGVyKTtcbiAgICAgIFxuICAgICAgLy8gVHJhY2sgaWYgdGhlIGZvbGRlciBhY3R1YWxseSBjaGFuZ2VkXG4gICAgICBjb25zdCBmb2xkZXJDaGFuZ2VkID0gcHJldkZvbGRlclJlZi5jdXJyZW50ICE9PSBzdGF0ZS5jdXJyZW50Rm9sZGVyO1xuICAgICAgXG4gICAgICBpZiAoZm9sZGVyQ2hhbmdlZCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLUZPTERFUl9FRkZFQ1RdIEZvbGRlciBjaGFuZ2VkIGZyb20gJHtwcmV2Rm9sZGVyUmVmLmN1cnJlbnR9IHRvICR7c3RhdGUuY3VycmVudEZvbGRlcn1gKTtcbiAgICAgICAgcHJldkZvbGRlclJlZi5jdXJyZW50ID0gc3RhdGUuY3VycmVudEZvbGRlcjtcbiAgICAgICAgXG4gICAgICAgIC8vIENSSVRJQ0FMIEZJWDogQWx3YXlzIHJlc2V0IHBhZ2luYXRpb24gc3RhdGUgd2hlbiBmb2xkZXIgYWN0dWFsbHkgY2hhbmdlc1xuICAgICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLUZPTERFUl9FRkZFQ1RdIEZvbGRlciBjaGFuZ2VkIC0gcmVzZXR0aW5nIHBhZ2luYXRpb24gc3RhdGVgKTtcbiAgICAgICAgXG4gICAgICAgIC8vIFJlc2V0IHBhZ2UgdG8gMSBBTkQgcmVzZXQgbGFzdFBhZ2VMb2FkZWRSZWYgdG8gZW5zdXJlIHdlIGxvYWRcbiAgICAgICAgbGFzdFBhZ2VMb2FkZWRSZWYuY3VycmVudCA9IDA7XG4gICAgICAgIFxuICAgICAgICBpZiAoc3RhdGUucGFnZSAhPT0gMSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctRk9MREVSX0VGRkVDVF0gUmVzZXR0aW5nIHBhZ2UgdG8gMSBiZWNhdXNlIGZvbGRlciBjaGFuZ2VkYCk7XG4gICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX1BBR0UnLCBwYXlsb2FkOiAxIH0pO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBDUklUSUNBTCBGSVg6IENsZWFyIGVtYWlscyBhbmQgc2V0IGxvYWRpbmcgd2hlbiBmb2xkZXIgY2hhbmdlc1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfRU1BSUxTJywgcGF5bG9hZDogW10gfSk7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ1NFVF9MT0FESU5HJywgcGF5bG9hZDogdHJ1ZSB9KTtcbiAgICAgICAgXG4gICAgICAgIC8vIENSSVRJQ0FMIEZJWDogQWx3YXlzIGxvYWQgZW1haWxzIHdoZW4gZm9sZGVyIGNoYW5nZXMsIG5vIG1hdHRlciB3aGF0XG4gICAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctRk9MREVSX0VGRkVDVF0gTG9hZGluZyBlbWFpbHMgZm9yIG5ldyBmb2xkZXI6ICR7c3RhdGUuY3VycmVudEZvbGRlcn1gKTtcbiAgICAgICAgbG9hZEVtYWlscygxLCBzdGF0ZS5wZXJQYWdlLCBmYWxzZSk7XG4gICAgICAgIHJldHVybjsgLy8gRXhpdCBlYXJseSBhZnRlciBoYW5kbGluZyBmb2xkZXIgY2hhbmdlXG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIElmIG5vIGZvbGRlciBjaGFuZ2UgZGV0ZWN0ZWQsIG9ubHkgbG9hZCBpZiBvbiBwYWdlIDEgYW5kIG5vdCBhbHJlYWR5IGxvYWRlZFxuICAgICAgaWYgKHN0YXRlLnBhZ2UgPT09IDEgJiYgbGFzdFBhZ2VMb2FkZWRSZWYuY3VycmVudCA9PT0gMCkge1xuICAgICAgICBsb2dFbWFpbE9wKCdGT0xERVJfTE9BRCcsIGBMb2FkaW5nIGluaXRpYWwgZW1haWxzIGZvciBmb2xkZXIgJHtzdGF0ZS5jdXJyZW50Rm9sZGVyfWApO1xuICAgICAgICBsb2FkRW1haWxzKHN0YXRlLnBhZ2UsIHN0YXRlLnBlclBhZ2UsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzZXNzaW9uPy51c2VyPy5pZCwgc3RhdGUuY3VycmVudEZvbGRlciwgc3RhdGUucGFnZSwgc3RhdGUucGVyUGFnZSwgbG9hZEVtYWlscywgbG9nRW1haWxPcCwgZGlzcGF0Y2hdKTtcblxuICAvLyBFZmZlY3QgdG8gbG9hZCBtb3JlIGVtYWlscyB3aGVuIHBhZ2UgY2hhbmdlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghc2Vzc2lvbj8udXNlcj8uaWQgfHwgIXN0YXRlLmN1cnJlbnRGb2xkZXIpIHJldHVybjtcbiAgICBcbiAgICAvLyBNYWtlIHN1cmUgd2UncmUgb24gYXQgbGVhc3QgcGFnZSAxXG4gICAgaWYgKHN0YXRlLnBhZ2UgPCAxKSB7XG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfUEFHRScsIHBheWxvYWQ6IDEgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGNvbnNvbGUubG9nKGBbREVCVUctUEFHRV9FRkZFQ1RdIFBhZ2UgY2hhbmdlZCB0byAke3N0YXRlLnBhZ2V9YCk7XG4gICAgXG4gICAgLy8gQ1JJVElDQUwgRklYOiBBZGQgYSBzcGVjaWFsIGNhc2UgZm9yIHBhZ2UgMSBsb2FkcyAtIHdlIHNob3VsZCBuZXZlciBza2lwIGxvYWRpbmcgdGhlIGZpcnN0IHBhZ2VcbiAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCBhZnRlciBhIGZvbGRlciBjaGFuZ2UsIHBhZ2UgMSBhbHdheXMgbG9hZHMgZXZlbiBpZiBsb2FkaW5nIHN0YXRlIGlzIHRydWVcbiAgICBpZiAoc3RhdGUucGFnZSA9PT0gMSkge1xuICAgICAgY29uc3QgY3VycmVudEZvbGRlciA9IHN0YXRlLmN1cnJlbnRGb2xkZXI7XG4gICAgICBjb25zdCBsYXN0TG9hZGVkRm9sZGVyID0gcHJldkZvbGRlclJlZi5jdXJyZW50O1xuICAgICAgXG4gICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgZnJlc2ggZm9sZGVyIGxvYWQgKGZvbGRlciBjaGFuZ2VkIG9yIGZpcnN0IHRpbWUgbG9hZGluZylcbiAgICAgIGlmIChjdXJyZW50Rm9sZGVyICE9PSBsYXN0TG9hZGVkRm9sZGVyIHx8IGxhc3RQYWdlTG9hZGVkUmVmLmN1cnJlbnQgPT09IDApIHtcbiAgICAgICAgLy8gRm9yY2UgbG9hZGluZyBwYWdlIDEgZm9yIG5ldyBmb2xkZXJzLCByZWdhcmRsZXNzIG9mIGxvYWRpbmcgc3RhdGVcbiAgICAgICAgY29uc29sZS5sb2coYFtERUJVRy1QQUdFX0VGRkVDVF0gRm9yY2UgbG9hZGluZyBwYWdlIDEgZm9yIGZvbGRlcjogJHtjdXJyZW50Rm9sZGVyfWApO1xuICAgICAgICBcbiAgICAgICAgLy8gU2V0IHRoZSBsb2FkaW5nIHN0YXRlIGV4cGxpY2l0bHkgKG1pZ2h0IGFscmVhZHkgYmUgdHJ1ZSlcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkcnLCBwYXlsb2FkOiB0cnVlIH0pO1xuICAgICAgICBcbiAgICAgICAgLy8gVXBkYXRlIHJlZnMgdG8gdHJhY2sgdGhlIGN1cnJlbnQgc3RhdGVcbiAgICAgICAgcHJldkZvbGRlclJlZi5jdXJyZW50ID0gY3VycmVudEZvbGRlcjtcbiAgICAgICAgbGFzdFBhZ2VMb2FkZWRSZWYuY3VycmVudCA9IDE7XG4gICAgICAgIFxuICAgICAgICAvLyBDYWxsIGxvYWRFbWFpbHMgdG8gbG9hZCB0aGUgZmlyc3QgcGFnZSAtIG5ldmVyIHNraXAgdGhpcyFcbiAgICAgICAgbG9hZEVtYWlscygxLCBzdGF0ZS5wZXJQYWdlLCBmYWxzZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gRm9yIHBhZ2VzID4gMSBvciBhbHJlYWR5IGxvYWRlZCBmb2xkZXJzLCBmb2xsb3cgbm9ybWFsIHJ1bGVzXG4gICAgXG4gICAgLy8gU2tpcCBpZiBhbHJlYWR5IGxvYWRpbmdcbiAgICBpZiAoc3RhdGUuaXNMb2FkaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLVBBR0VfRUZGRUNUXSBTa2lwcGluZyBlZmZlY3QgZXhlY3V0aW9uIGVudGlyZWx5IC0gYWxyZWFkeSBsb2FkaW5nYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIE5vcm1hbGl6ZSBmb2xkZXIgYW5kIGdldCBhY2NvdW50IElEXG4gICAgY29uc3QgeyBlZmZlY3RpdmVBY2NvdW50SWQgfSA9IG5vcm1hbGl6ZUZvbGRlckFuZEFjY291bnQoc3RhdGUuY3VycmVudEZvbGRlcik7XG4gICAgXG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBpcyBhIGR1cGxpY2F0ZSBwYWdlIGxvYWRcbiAgICBpZiAoc3RhdGUucGFnZSA9PT0gbGFzdFBhZ2VMb2FkZWRSZWYuY3VycmVudCkge1xuICAgICAgY29uc29sZS5sb2coYFtERUJVRy1QQUdFX0VGRkVDVF0gU2tpcHBpbmcgLSBhbHJlYWR5IGxvYWRlZCBwYWdlICR7c3RhdGUucGFnZX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgLy8gU2tpcCBsb2FkcyBmb3IgemVyby1iYXNlZCBwYWdlc1xuICAgIGlmIChzdGF0ZS5wYWdlID09PSAwKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLVBBR0VfRUZGRUNUXSBTa2lwcGluZyBsb2FkIGZvciBpbnZhbGlkIHBhZ2UgJHtzdGF0ZS5wYWdlfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICAvLyBVcGRhdGUgb3VyIHJlZmVyZW5jZSB0byBwcmV2ZW50IGR1cGxpY2F0ZSBsb2Fkc1xuICAgIGxhc3RQYWdlTG9hZGVkUmVmLmN1cnJlbnQgPSBzdGF0ZS5wYWdlO1xuICAgIFxuICAgIC8vIEFsd2F5cyB1c2UgaXNMb2FkTW9yZT10cnVlIHdoZW4gcGFnZSA+IDFcbiAgICBjb25zb2xlLmxvZyhgW0RFQlVHLVBBR0VfRUZGRUNUXSBDYWxsaW5nIGxvYWRFbWFpbHMgd2l0aCBpc0xvYWRNb3JlPXRydWUgZm9yIHBhZ2UgJHtzdGF0ZS5wYWdlfWApO1xuICAgIGxvYWRFbWFpbHMoc3RhdGUucGFnZSwgc3RhdGUucGVyUGFnZSwgdHJ1ZSk7XG4gICAgXG4gIC8vIERvIE5PVCBpbmNsdWRlIHN0YXRlLmVtYWlscy5sZW5ndGggaGVyZSB0byBwcmV2ZW50IGluZmluaXRlIGxvb3BzXG4gIH0sIFtzZXNzaW9uPy51c2VyPy5pZCwgc3RhdGUucGFnZSwgc3RhdGUuY3VycmVudEZvbGRlciwgc3RhdGUuaXNMb2FkaW5nLCBzdGF0ZS5wZXJQYWdlLCBsb2FkRW1haWxzLCBsb2dFbWFpbE9wLCBkaXNwYXRjaF0pO1xuXG4gIC8vIEZldGNoIHVucmVhZCBjb3VudHMgZnJvbSBBUElcbiAgY29uc3QgZmV0Y2hVbnJlYWRDb3VudHMgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFzZXNzaW9uPy51c2VyKSByZXR1cm47XG4gICAgXG4gICAgLy8gRG9uJ3QgZmV0Y2ggaWYgd2UncmUgYWxyZWFkeSBmZXRjaGluZ1xuICAgIGlmIChzdGF0ZS5pc0xvYWRpbmdVbnJlYWRDb3VudHMpIHJldHVybjtcbiAgICBcbiAgICAvLyBTa2lwIGZldGNoaW5nIGlmIGFuIGVtYWlsIHdhcyB2aWV3ZWQgcmVjZW50bHkgKHdpdGhpbiBsYXN0IDUgc2Vjb25kcylcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIC8vIEluaXRpYWxpemUgdGhlIHJlZiB0byB0aGUgY3VycmVudCB0aW1lIGlmIGl0J3MgbnVsbFxuICAgIGlmIChsYXN0RW1haWxWaWV3ZWRSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgbGFzdEVtYWlsVmlld2VkUmVmLmN1cnJlbnQgPSBub3c7XG4gICAgfVxuICAgIFxuICAgIC8vIE5vdyB3ZSBjYW4gc2FmZWx5IHVzZSBpdCBzaW5jZSB3ZSd2ZSBpbml0aWFsaXplZCBpdFxuICAgIGlmIChub3cgLSBsYXN0RW1haWxWaWV3ZWRSZWYuY3VycmVudCA8IDUwMDApIHtcbiAgICAgIGNvbnNvbGUubG9nKCdTa2lwcGluZyB1bnJlYWQgY291bnQgdXBkYXRlIC0gZW1haWwgdmlld2VkIHJlY2VudGx5Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIFRyeSB0byBnZXQgZnJvbSBzZXNzaW9uU3RvcmFnZSBmaXJzdCBmb3IgZmFzdGVyIHJlc3BvbnNlXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSBgdW5yZWFkX2NvdW50c18ke3Nlc3Npb24udXNlci5pZH1gO1xuICAgICAgY29uc3Qgc3RvcmVkRGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oc3RvcmFnZUtleSk7XG4gICAgICBcbiAgICAgIGlmIChzdG9yZWREYXRhKSB7XG4gICAgICAgIGNvbnN0IHsgZGF0YSwgdGltZXN0YW1wIH0gPSBKU09OLnBhcnNlKHN0b3JlZERhdGEpO1xuICAgICAgICAvLyBVc2Ugc3RvcmVkIGRhdGEgaWYgaXQncyBsZXNzIHRoYW4gMzAgc2Vjb25kcyBvbGRcbiAgICAgICAgaWYgKG5vdyAtIHRpbWVzdGFtcCA8IDMwMDAwKSB7XG4gICAgICAgICAgbG9nRW1haWxPcCgnRkVUQ0hfVU5SRUFEJywgJ1VzaW5nIHNlc3Npb25TdG9yYWdlIGRhdGEnLCB7IGFnZTogTWF0aC5yb3VuZCgobm93IC0gdGltZXN0YW1wKS8xMDAwKSArICdzJyB9KTtcbiAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfVU5SRUFEX0NPVU5UUycsIHBheWxvYWQ6IGRhdGEgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBJZ25vcmUgc3RvcmFnZSBlcnJvcnNcbiAgICB9XG4gICAgXG4gICAgLy8gUmVzZXQgZmFpbHVyZSB0cmFja2luZyBpZiBpdCdzIGJlZW4gbW9yZSB0aGFuIDEgbWludXRlIHNpbmNlIGxhc3QgZmFpbHVyZVxuICAgIGlmICgod2luZG93IGFzIGFueSkuX191bnJlYWRDb3VudEZhaWx1cmVzPy5sYXN0RmFpbHVyZVRpbWUgJiYgXG4gICAgICAgIG5vdyAtICh3aW5kb3cgYXMgYW55KS5fX3VucmVhZENvdW50RmFpbHVyZXMubGFzdEZhaWx1cmVUaW1lID4gNjAwMDApIHtcbiAgICAgICh3aW5kb3cgYXMgYW55KS5fX3VucmVhZENvdW50RmFpbHVyZXMgPSB7IGNvdW50OiAwLCBsYXN0RmFpbHVyZVRpbWU6IDAgfTtcbiAgICB9XG4gICAgXG4gICAgLy8gRXhwb25lbnRpYWwgYmFja29mZiBmb3IgZmFpbHVyZXMgd2l0aCBwcm9wZXIgdHJhY2tpbmcgb2JqZWN0XG4gICAgaWYgKCEod2luZG93IGFzIGFueSkuX191bnJlYWRDb3VudEZhaWx1cmVzKSB7XG4gICAgICAod2luZG93IGFzIGFueSkuX191bnJlYWRDb3VudEZhaWx1cmVzID0geyBjb3VudDogMCwgbGFzdEZhaWx1cmVUaW1lOiAwIH07XG4gICAgfVxuICAgIFxuICAgIGlmICgod2luZG93IGFzIGFueSkuX191bnJlYWRDb3VudEZhaWx1cmVzLmNvdW50ID4gMCkge1xuICAgICAgY29uc3QgZmFpbHVyZXMgPSAod2luZG93IGFzIGFueSkuX191bnJlYWRDb3VudEZhaWx1cmVzLmNvdW50O1xuICAgICAgY29uc3QgYmFja29mZk1zID0gTWF0aC5taW4oMzAwMDAsIDEwMDAgKiBNYXRoLnBvdygyLCBmYWlsdXJlcyAtIDEpKTtcbiAgICAgIGlmIChub3cgLSAod2luZG93IGFzIGFueSkuX191bnJlYWRDb3VudEZhaWx1cmVzLmxhc3RGYWlsdXJlVGltZSA8IGJhY2tvZmZNcykge1xuICAgICAgICBsb2dFbWFpbE9wKCdCQUNLT0ZGJywgYFNraXBwaW5nIHVucmVhZCBmZXRjaCwgaW4gYmFja29mZiBwZXJpb2QgKCR7YmFja29mZk1zfW1zKWApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIHRyeSB7XG4gICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfTE9BRElOR19VTlJFQURfQ09VTlRTJywgcGF5bG9hZDogdHJ1ZSB9KTtcbiAgICAgIFxuICAgICAgY29uc3QgdGltZUJlZm9yZUNhbGwgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgIGxvZ0VtYWlsT3AoJ0ZFVENIX1VOUkVBRCcsICdGZXRjaGluZyB1bnJlYWQgY291bnRzIGZyb20gQVBJJyk7XG4gICAgICBcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goJy9hcGkvY291cnJpZXIvdW5yZWFkLWNvdW50cycsIHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgIC8vIEFkZCBjYWNoZSBjb250cm9sIGhlYWRlcnNcbiAgICAgICAgY2FjaGU6ICduby1jYWNoZScsXG4gICAgICAgIG5leHQ6IHsgcmV2YWxpZGF0ZTogMCB9XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAvLyBJZiByZXF1ZXN0IGZhaWxlZCwgdHJhY2sgZmFpbHVyZXMgcHJvcGVybHlcbiAgICAgICAgKHdpbmRvdyBhcyBhbnkpLl9fdW5yZWFkQ291bnRGYWlsdXJlcy5jb3VudCA9IFxuICAgICAgICAgIE1hdGgubWluKCh3aW5kb3cgYXMgYW55KS5fX3VucmVhZENvdW50RmFpbHVyZXMuY291bnQgKyAxLCAxMCk7XG4gICAgICAgICh3aW5kb3cgYXMgYW55KS5fX3VucmVhZENvdW50RmFpbHVyZXMubGFzdEZhaWx1cmVUaW1lID0gbm93O1xuICAgICAgICBcbiAgICAgICAgY29uc3QgZmFpbHVyZXMgPSAod2luZG93IGFzIGFueSkuX191bnJlYWRDb3VudEZhaWx1cmVzLmNvdW50O1xuICAgICAgICBcbiAgICAgICAgaWYgKGZhaWx1cmVzID4gMykge1xuICAgICAgICAgIC8vIEFmdGVyIDMgZmFpbHVyZXMsIHNsb3cgZG93biByZXF1ZXN0cyB3aXRoIGV4cG9uZW50aWFsIGJhY2tvZmZcbiAgICAgICAgICBjb25zdCBiYWNrb2ZmVGltZSA9IE1hdGgubWluKE1hdGgucG93KDIsIGZhaWx1cmVzIC0gMykgKiAxMDAwLCAzMDAwMCk7IC8vIE1heCAzMCBzZWNvbmRzXG4gICAgICAgICAgbG9nRW1haWxPcCgnRkVUQ0hfVU5SRUFEJywgYEFQSSBmYWlsdXJlICMke2ZhaWx1cmVzfSwgYmFja2luZyBvZmYgZm9yICR7YmFja29mZlRpbWV9bXNgKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBTY2hlZHVsZSBuZXh0IGF0dGVtcHQgd2l0aCBiYWNrb2ZmXG4gICAgICAgICAgaWYgKCh3aW5kb3cgYXMgYW55KS5fX2ZhaWx1cmVCYWNrb2ZmVGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCgod2luZG93IGFzIGFueSkuX19mYWlsdXJlQmFja29mZlRpbWVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgKHdpbmRvdyBhcyBhbnkpLl9fZmFpbHVyZUJhY2tvZmZUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgZmV0Y2hVbnJlYWRDb3VudHMoKTtcbiAgICAgICAgICB9LCBiYWNrb2ZmVGltZSk7XG4gICAgICAgICAgXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggdW5yZWFkIGNvdW50czogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlc2V0IGZhaWx1cmUgY291bnRlciBvbiBzdWNjZXNzXG4gICAgICAgICh3aW5kb3cgYXMgYW55KS5fX3VucmVhZENvdW50RmFpbHVyZXMgPSB7IGNvdW50OiAwLCBsYXN0RmFpbHVyZVRpbWU6IDAgfTtcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHRpbWVBZnRlckNhbGwgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgXG4gICAgICAgIC8vIFNraXAgaWYgd2UgZ290IHRoZSBcInBlbmRpbmdfcmVmcmVzaFwiIHN0YXR1c1xuICAgICAgICBpZiAoZGF0YS5fc3RhdHVzID09PSAncGVuZGluZ19yZWZyZXNoJykge1xuICAgICAgICAgIGxvZ0VtYWlsT3AoJ0ZFVENIX1VOUkVBRCcsICdTZXJ2ZXIgaXMgcmVmcmVzaGluZyBjb3VudHMsIHdpbGwgdHJ5IGFnYWluIHNvb24nKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBSZXRyeSBhZnRlciBhIHNob3J0IGRlbGF5XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBmZXRjaFVucmVhZENvdW50cygpO1xuICAgICAgICAgIH0sIDIwMDApO1xuICAgICAgICAgIFxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgbG9nRW1haWxPcCgnRkVUQ0hfVU5SRUFEJywgYFJlY2VpdmVkIHVucmVhZCBjb3VudHMgaW4gJHsodGltZUFmdGVyQ2FsbCAtIHRpbWVCZWZvcmVDYWxsKS50b0ZpeGVkKDIpfW1zYCk7XG4gICAgICAgIFxuICAgICAgICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfVU5SRUFEX0NPVU5UUycsIHBheWxvYWQ6IGRhdGEgfSk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gU3RvcmUgaW4gc2Vzc2lvblN0b3JhZ2UgZm9yIGZhc3RlciBmdXR1cmUgYWNjZXNzXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXG4gICAgICAgICAgICAgIGB1bnJlYWRfY291bnRzXyR7c2Vzc2lvbi51c2VyLmlkfWAsIFxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IG5vd1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIElnbm9yZSBzdG9yYWdlIGVycm9yc1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyB1bnJlYWQgY291bnRzOicsIGVycm9yKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnU0VUX0xPQURJTkdfVU5SRUFEX0NPVU5UUycsIHBheWxvYWQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBzZXNzaW9uPy51c2VyLCBzdGF0ZS5pc0xvYWRpbmdVbnJlYWRDb3VudHMsIGxvZ0VtYWlsT3BdKTtcblxuICAvLyBDYWxjdWxhdGUgYW5kIHVwZGF0ZSB1bnJlYWQgY291bnRzXG4gIGNvbnN0IHVwZGF0ZVVucmVhZENvdW50cyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBTa2lwIGlmIG5vIGVtYWlscyBvciBhY2NvdW50c1xuICAgIGlmIChzdGF0ZS5lbWFpbHMubGVuZ3RoID09PSAwIHx8IHN0YXRlLmFjY291bnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIFxuICAgIC8vIFRvIGF2b2lkIHJ1bm5pbmcgdGhpcyB0b28gZnJlcXVlbnRseSwgY2hlY2sgdGhlIHRpbWVzdGFtcCBvZiBsYXN0IHVwZGF0ZVxuICAgIGlmICghKHdpbmRvdyBhcyBhbnkpLl9fbGFzdFVucmVhZFVwZGF0ZSkge1xuICAgICAgKHdpbmRvdyBhcyBhbnkpLl9fbGFzdFVucmVhZFVwZGF0ZSA9IHsgdGltZXN0YW1wOiAwIH07XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgbGFzdFVwZGF0ZSA9ICh3aW5kb3cgYXMgYW55KS5fX2xhc3RVbnJlYWRVcGRhdGU7XG4gICAgY29uc3QgTUlOX1VQREFURV9JTlRFUlZBTCA9IDEwMDAwOyAvLyAxMCBzZWNvbmRzIG1pbmltdW0gYmV0d2VlbiB1cGRhdGVzIChpbmNyZWFzZWQgZnJvbSAycylcbiAgICBcbiAgICBpZiAobm93IC0gbGFzdFVwZGF0ZS50aW1lc3RhbXAgPCBNSU5fVVBEQVRFX0lOVEVSVkFMKSB7XG4gICAgICByZXR1cm47IC8vIFNraXAgaWYgdXBkYXRlZCB0b28gcmVjZW50bHlcbiAgICB9XG4gICAgXG4gICAgLy8gUmF0aGVyIHRoYW4gY2FsY3VsYXRpbmcgbG9jYWxseSwgZmV0Y2ggZnJvbSB0aGUgQVBJXG4gICAgZmV0Y2hVbnJlYWRDb3VudHMoKTtcbiAgICBcbiAgICAvLyBVcGRhdGUgdGltZXN0YW1wIG9mIGxhc3QgdXBkYXRlXG4gICAgbGFzdFVwZGF0ZS50aW1lc3RhbXAgPSBub3c7XG4gIH0sIFtzdGF0ZS5lbWFpbHMubGVuZ3RoLCBzdGF0ZS5hY2NvdW50cy5sZW5ndGgsIGZldGNoVW5yZWFkQ291bnRzXSk7XG4gIFxuICAvLyBDYWxsIHVwZGF0ZVVucmVhZENvdW50cyB3aGVuIHJlbGV2YW50IHN0YXRlIGNoYW5nZXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXN0YXRlLmVtYWlscyB8fCBzdGF0ZS5lbWFpbHMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgXG4gICAgLy8gRGVib3VuY2UgdW5yZWFkIGNvdW50IHVwZGF0ZXMgdG8gcHJldmVudCByYXBpZCBtdWx0aXBsZSB1cGRhdGVzXG4gICAgbGV0IHVwZGF0ZVRpbWVvdXRJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gICAgXG4gICAgY29uc3QgZGVib3VuY2VNcyA9IDUwMDA7IC8vIEluY3JlYXNlIGRlYm91bmNlIHRvIDUgc2Vjb25kcyAoZnJvbSAycylcbiAgICBcbiAgICAvLyBGdW5jdGlvbiB0byBjYWxsIGFmdGVyIGRlYm91bmNlIHBlcmlvZFxuICAgIGNvbnN0IGRlYm91bmNlZFVwZGF0ZSA9ICgpID0+IHtcbiAgICAgIHVwZGF0ZVRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB1cGRhdGVVbnJlYWRDb3VudHMoKTtcbiAgICAgIH0sIGRlYm91bmNlTXMpO1xuICAgIH07XG4gICAgXG4gICAgLy8gQ2xlYXIgYW55IGV4aXN0aW5nIHRpbWVvdXQgYW5kIHN0YXJ0IGEgbmV3IG9uZVxuICAgIGRlYm91bmNlZFVwZGF0ZSgpO1xuICAgIFxuICAgIC8vIEFsc28gc2V0IHVwIGEgcGVyaW9kaWMgcmVmcmVzaCBldmVyeSBtaW51dGUgaWYgdGhlIHRhYiBpcyBhY3RpdmVcbiAgICBjb25zdCBwZXJpb2RpY1JlZnJlc2hJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICd2aXNpYmxlJykge1xuICAgICAgICB1cGRhdGVVbnJlYWRDb3VudHMoKTtcbiAgICAgIH1cbiAgICB9LCA2MDAwMCk7IC8vIDEgbWludXRlXG4gICAgXG4gICAgLy8gQ2xlYW51cCB0aW1lb3V0IG9uIHVubW91bnQgb3Igc3RhdGUgY2hhbmdlXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dCh1cGRhdGVUaW1lb3V0SWQpO1xuICAgICAgY2xlYXJJbnRlcnZhbChwZXJpb2RpY1JlZnJlc2hJZCk7XG4gICAgfTtcbiAgLy8gRGVsaWJlcmF0ZWx5IGV4Y2x1ZGUgdW5yZWFkQ291bnRNYXAgdG8gcHJldmVudCBpbmZpbml0ZSBsb29wc1xuICB9LCBbc3RhdGUuZW1haWxzLCB1cGRhdGVVbnJlYWRDb3VudHNdKTtcblxuICAvLyBTZXQgdXAgcGVyaW9kaWMgY2hlY2sgZm9yIG5ldyBlbWFpbHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXN0YXRlLmVtYWlscyB8fCBzdGF0ZS5lbWFpbHMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgXG4gICAgLy8gU2V0IHVwIGEgcGVyaW9kaWMgY2hlY2sgZm9yIG5ldyBlbWFpbHMgYXQgdGhlIHNhbWUgaW50ZXJ2YWwgYXMgdW5yZWFkIGNvdW50c1xuICAgIGNvbnN0IGNoZWNrTmV3RW1haWxzSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAndmlzaWJsZScpIHtcbiAgICAgICAgY2hlY2tGb3JOZXdFbWFpbHMoKTtcbiAgICAgIH1cbiAgICB9LCA2MDAwMCk7IC8vIDEgbWludXRlIC0gc2FtZSBhcyB1bnJlYWQgY291bnQgcmVmcmVzaFxuICAgIFxuICAgIC8vIENsZWFudXAgaW50ZXJ2YWwgb24gdW5tb3VudCBvciBzdGF0ZSBjaGFuZ2VcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2xlYXJJbnRlcnZhbChjaGVja05ld0VtYWlsc0lkKTtcbiAgICB9O1xuICB9LCBbc3RhdGUuZW1haWxzLCBjaGVja0Zvck5ld0VtYWlsc10pO1xuXG4gIC8vIFRyYWNraW5nIHdoZW4gYW4gZW1haWwgaXMgdmlld2VkIHRvIG9wdGltaXplIHVucmVhZCBjb3VudCByZWZyZXNoZXNcbiAgY29uc3QgbGFzdFZpZXdlZEVtYWlsUmVmID0gdXNlUmVmPG51bWJlciB8IG51bGw+KG51bGwpO1xuICBjb25zdCBmZXRjaEZhaWx1cmVzUmVmID0gdXNlUmVmPG51bWJlcj4oMCk7XG4gIGNvbnN0IGxhc3RGZXRjaEZhaWx1cmVSZWYgPSB1c2VSZWY8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgLy8gTW9kaWZ5IHZpZXdFbWFpbCB0byB0cmFjayB3aGVuIGFuIGVtYWlsIGlzIHZpZXdlZFxuICBjb25zdCB2aWV3RW1haWwgPSB1c2VDYWxsYmFjaygoZW1haWxJZDogc3RyaW5nLCBhY2NvdW50SWQ6IHN0cmluZywgZm9sZGVyOiBzdHJpbmcsIGVtYWlsOiBFbWFpbCB8IG51bGwpID0+IHtcbiAgICBkaXNwYXRjaCh7IFxuICAgICAgdHlwZTogJ1NFTEVDVF9FTUFJTCcsIFxuICAgICAgcGF5bG9hZDogeyBlbWFpbElkLCBhY2NvdW50SWQsIGZvbGRlciwgZW1haWwgfSBcbiAgICB9KTtcbiAgICBcbiAgICAvLyBUcmFjayB3aGVuIGFuIGVtYWlsIGlzIHZpZXdlZCB0byBkZWxheSB1bnJlYWQgY291bnQgcmVmcmVzaFxuICAgIGlmIChlbWFpbCkge1xuICAgICAgbGFzdFZpZXdlZEVtYWlsUmVmLmN1cnJlbnQgPSBEYXRlLm5vdygpO1xuICAgICAgXG4gICAgICAvLyBJZiBlbWFpbCBpcyB1bnJlYWQsIG1hcmsgaXQgYXMgcmVhZFxuICAgICAgaWYgKGVtYWlsLmZsYWdzICYmICFlbWFpbC5mbGFncy5zZWVuKSB7XG4gICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiAnTUFSS19FTUFJTF9BU19SRUFEJyxcbiAgICAgICAgICBwYXlsb2FkOiB7IGVtYWlsSWQsIGlzUmVhZDogdHJ1ZSwgYWNjb3VudElkIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEVtYWlsIHdhcyBkZXNlbGVjdGVkLCBzY2hlZHVsZSBhIHJlZnJlc2ggb2YgdW5yZWFkIGNvdW50cyBhZnRlciBkZWxheVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGZldGNoVW5yZWFkQ291bnRzKCk7XG4gICAgICB9LCAyMDAwKTtcbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgZmV0Y2hVbnJlYWRDb3VudHNdKTtcblxuICAvLyBTZXQgdXAgYSBmdW5jdGlvbiB0byBtYW51YWxseSB0cmlnZ2VyIGNoZWNraW5nIGZvciBuZXcgZW1haWxzXG4gIGNvbnN0IGZvcmNlQ2hlY2tGb3JOZXdFbWFpbHMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgLy8gRG9uJ3QgY2hlY2sgaWYgd2UncmUgYWxyZWFkeSBsb2FkaW5nXG4gICAgaWYgKHN0YXRlLmlzTG9hZGluZykgcmV0dXJuO1xuICAgIFxuICAgIC8vIExvZyB0aGF0IHdlJ3JlIG1hbnVhbGx5IGNoZWNraW5nXG4gICAgbG9nRW1haWxPcCgnTUFOVUFMX0NIRUNLJywgJ01hbnVhbGx5IGNoZWNraW5nIGZvciBuZXcgZW1haWxzJyk7XG4gICAgXG4gICAgLy8gUmVzZXQgdG8gcGFnZSAxIHRvIGVuc3VyZSB3ZSBnZXQgdGhlIG5ld2VzdCBlbWFpbHNcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdTRVRfUEFHRScsIHBheWxvYWQ6IDEgfSk7XG4gICAgXG4gICAgLy8gUGVyZm9ybSBhIGNvbXBsZXRlIHJlZnJlc2ggb2YgZW1haWxzXG4gICAgbG9hZEVtYWlscygxLCBzdGF0ZS5wZXJQYWdlLCBmYWxzZSk7XG4gICAgXG4gICAgLy8gQWxzbyB1cGRhdGUgdW5yZWFkIGNvdW50c1xuICAgIGZldGNoVW5yZWFkQ291bnRzKCk7XG4gIH0sIFtzdGF0ZS5pc0xvYWRpbmcsIHN0YXRlLnBlclBhZ2UsIGxvYWRFbWFpbHMsIGxvZ0VtYWlsT3AsIGRpc3BhdGNoLCBmZXRjaFVucmVhZENvdW50c10pO1xuXG4gIC8vIFJldHVybiBhbGwgc3RhdGUgdmFsdWVzIGFuZCBhY3Rpb25zXG4gIHJldHVybiB7XG4gICAgLy8gU3RhdGUgdmFsdWVzXG4gICAgLi4uc3RhdGUsXG4gICAgXG4gICAgLy8gQWN0aW9uc1xuICAgIGxvYWRFbWFpbHMsXG4gICAgaGFuZGxlRW1haWxTZWxlY3QsXG4gICAgdG9nZ2xlRW1haWxTZWxlY3Rpb24sXG4gICAgdG9nZ2xlU2VsZWN0QWxsLFxuICAgIG1hcmtFbWFpbEFzUmVhZCxcbiAgICB0b2dnbGVTdGFycmVkLFxuICAgIGNoYW5nZUZvbGRlcixcbiAgICBkZWxldGVFbWFpbHMsXG4gICAgc2VuZEVtYWlsLFxuICAgIHNlYXJjaEVtYWlscyxcbiAgICBmb3JtYXRFbWFpbEZvckFjdGlvbixcbiAgICBzZXRQYWdlLFxuICAgIHNldEVtYWlscyxcbiAgICBzZWxlY3RBY2NvdW50LFxuICAgIGhhbmRsZUxvYWRNb3JlLFxuICAgIGZldGNoVW5yZWFkQ291bnRzLFxuICAgIHZpZXdFbWFpbCxcbiAgICBjaGVja0Zvck5ld0VtYWlscyxcbiAgICBmb3JjZUNoZWNrRm9yTmV3RW1haWxzXG4gIH07XG59OyAiXSwibmFtZXMiOlsidXNlUmVkdWNlciIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlUmVmIiwidXNlU2Vzc2lvbiIsInVzZVRvYXN0IiwiZW1haWxSZWR1Y2VyIiwiaW5pdGlhbFN0YXRlIiwibm9ybWFsaXplRm9sZGVyQW5kQWNjb3VudCIsImdldENhY2hlZEVtYWlsc1dpdGhUaW1lb3V0IiwiZm9ybWF0RW1haWxGb3JSZXBseU9yRm9yd2FyZCIsInVzZUVtYWlsU3RhdGUiLCJzZXNzaW9uIiwic3RhdGUiLCJkaXNwYXRjaCIsImRhdGEiLCJ0b2FzdCIsInVwZGF0ZVVucmVhZFRpbWVyUmVmIiwibGFzdEVtYWlsVmlld2VkUmVmIiwiZmFpbGVkRmV0Y2hDb3VudFJlZiIsImxhc3RGb2xkZXJSZWYiLCJsYXN0UGFnZUxvYWRlZFJlZiIsInByZXZGb2xkZXJSZWYiLCJsb2FkTW9yZVRyaWdnZXJUaW1lUmVmIiwid2luZG93IiwiZGlzcGF0Y2hFbWFpbEFjdGlvbiIsIl9fZW1haWxTdGF0ZURpc3BhdGNoIiwidW5kZWZpbmVkIiwibG9nRW1haWxPcCIsIm9wZXJhdGlvbiIsImRldGFpbHMiLCJ0aW1lc3RhbXAiLCJEYXRlIiwidG9JU09TdHJpbmciLCJzcGxpdCIsInN1YnN0cmluZyIsImNvbnNvbGUiLCJsb2ciLCJsb2FkRW1haWxzIiwicGFnZSIsInBlclBhZ2UiLCJpc0xvYWRNb3JlIiwidXNlciIsImlkIiwiZW1haWxzIiwibGVuZ3RoIiwic3RhcnRGb2xkZXIiLCJjdXJyZW50Rm9sZGVyIiwic3RhcnRBY2NvdW50Iiwic2VsZWN0ZWRBY2NvdW50IiwidHlwZSIsInBheWxvYWQiLCJhY2NvdW50SWQiLCJub3JtYWxpemVkRm9sZGVyIiwiZWZmZWN0aXZlQWNjb3VudElkIiwicHJlZml4ZWRGb2xkZXIiLCJxdWVyeVBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImZvbGRlciIsInRvU3RyaW5nIiwiY2FjaGVkRW1haWxzIiwiQXJyYXkiLCJpc0FycmF5IiwidG90YWxFbWFpbHMiLCJ0b3RhbFBhZ2VzIiwibWFpbGJveGVzIiwic2V0VGltZW91dCIsInJlc3BvbnNlIiwiZmV0Y2giLCJvayIsInN0YXR1cyIsImVycm9yRGF0YSIsImpzb24iLCJFcnJvciIsImVycm9yIiwic2xpY2UiLCJtYXAiLCJlIiwic3ViamVjdCIsImRhdGUiLCJkYXRlT2JqIiwiZ2V0VGltZSIsImZvckVhY2giLCJlbWFpbCIsImluY2x1ZGVzIiwiaXNOYU4iLCJlcnIiLCJtZXNzYWdlIiwiU3RyaW5nIiwidmFyaWFudCIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJjaGFuZ2VGb2xkZXIiLCJjdXJyZW50Iiwic2VsZWN0QWNjb3VudCIsImFjY291bnQiLCJoYW5kbGVFbWFpbFNlbGVjdCIsImVtYWlsSWQiLCJleGlzdGluZ0VtYWlsIiwiZmluZCIsImNvbnRlbnRGZXRjaGVkIiwiZmxhZ3MiLCJzZWVuIiwibWFya0VtYWlsQXNSZWFkIiwiZW1haWxEYXRhIiwidG9nZ2xlRW1haWxTZWxlY3Rpb24iLCJ0b2dnbGVTZWxlY3RBbGwiLCJpc1JlYWQiLCJtZXRob2QiLCJoZWFkZXJzIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0b2dnbGVTdGFycmVkIiwibmV3RmxhZ2dlZFN0YXR1cyIsImZsYWdnZWQiLCJjaGVja0Zvck5ld0VtYWlscyIsImlzTG9hZGluZyIsImNoZWNrT25seSIsImNhY2hlIiwibGFzdEtub3duRW1haWxJZCIsInBhcnNlSW50IiwibmV3ZXN0RW1haWxJZCIsImR1cmF0aW9uIiwiZGVsZXRlRW1haWxzIiwiZW1haWxJZHMiLCJmaXJzdEVtYWlsIiwic2VuZEVtYWlsIiwidG8iLCJyZXN1bHQiLCJzdWNjZXNzIiwic2VhcmNoRW1haWxzIiwicXVlcnkiLCJzZWFyY2giLCJyZXN1bHRzIiwiZm9ybWF0RW1haWxGb3JBY3Rpb24iLCJzZXRQYWdlIiwic2V0RW1haWxzIiwiaGFuZGxlTG9hZE1vcmUiLCJuZXh0UGFnZSIsInRoZW4iLCJmb2xkZXJDaGFuZ2VkIiwibGFzdExvYWRlZEZvbGRlciIsImZldGNoVW5yZWFkQ291bnRzIiwiaXNMb2FkaW5nVW5yZWFkQ291bnRzIiwibm93Iiwic3RvcmFnZUtleSIsInN0b3JlZERhdGEiLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJwYXJzZSIsImFnZSIsIk1hdGgiLCJyb3VuZCIsIl9fdW5yZWFkQ291bnRGYWlsdXJlcyIsImxhc3RGYWlsdXJlVGltZSIsImNvdW50IiwiZmFpbHVyZXMiLCJiYWNrb2ZmTXMiLCJtaW4iLCJwb3ciLCJ0aW1lQmVmb3JlQ2FsbCIsInBlcmZvcm1hbmNlIiwibmV4dCIsInJldmFsaWRhdGUiLCJiYWNrb2ZmVGltZSIsIl9fZmFpbHVyZUJhY2tvZmZUaW1lciIsImNsZWFyVGltZW91dCIsInRpbWVBZnRlckNhbGwiLCJfc3RhdHVzIiwidG9GaXhlZCIsInNldEl0ZW0iLCJ1cGRhdGVVbnJlYWRDb3VudHMiLCJhY2NvdW50cyIsIl9fbGFzdFVucmVhZFVwZGF0ZSIsImxhc3RVcGRhdGUiLCJNSU5fVVBEQVRFX0lOVEVSVkFMIiwidXBkYXRlVGltZW91dElkIiwiZGVib3VuY2VNcyIsImRlYm91bmNlZFVwZGF0ZSIsInBlcmlvZGljUmVmcmVzaElkIiwic2V0SW50ZXJ2YWwiLCJkb2N1bWVudCIsInZpc2liaWxpdHlTdGF0ZSIsImNsZWFySW50ZXJ2YWwiLCJjaGVja05ld0VtYWlsc0lkIiwibGFzdFZpZXdlZEVtYWlsUmVmIiwiZmV0Y2hGYWlsdXJlc1JlZiIsImxhc3RGZXRjaEZhaWx1cmVSZWYiLCJ2aWV3RW1haWwiLCJmb3JjZUNoZWNrRm9yTmV3RW1haWxzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./hooks/use-email-state.ts\n"));
/***/ }),
/***/ "(app-pages-browser)/./hooks/use-toast.ts":
/*!****************************!*\
!*** ./hooks/use-toast.ts ***!
\****************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ reducer: () => (/* binding */ reducer),\n/* harmony export */ toast: () => (/* binding */ toast),\n/* harmony export */ useToast: () => (/* binding */ useToast)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ reducer,useToast,toast auto */ // Inspired by react-hot-toast library\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\"\n};\nlet count = 0;\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\nconst toastTimeouts = new Map();\nconst addToRemoveQueue = (toastId)=>{\n if (toastTimeouts.has(toastId)) {\n return;\n }\n const timeout = setTimeout(()=>{\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId\n });\n }, TOAST_REMOVE_DELAY);\n toastTimeouts.set(toastId, timeout);\n};\nconst reducer = (state, action)=>{\n switch(action.type){\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [\n action.toast,\n ...state.toasts\n ].slice(0, TOAST_LIMIT)\n };\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t)=>t.id === action.toast.id ? {\n ...t,\n ...action.toast\n } : t)\n };\n case \"DISMISS_TOAST\":\n {\n const { toastId } = action;\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast)=>{\n addToRemoveQueue(toast.id);\n });\n }\n return {\n ...state,\n toasts: state.toasts.map((t)=>t.id === toastId || toastId === undefined ? {\n ...t,\n open: false\n } : t)\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: []\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t)=>t.id !== action.toastId)\n };\n }\n};\nconst listeners = [];\nlet memoryState = {\n toasts: []\n};\nfunction dispatch(action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener)=>{\n listener(memoryState);\n });\n}\nfunction toast(param) {\n let { ...props } = param;\n const id = genId();\n const update = (props)=>dispatch({\n type: \"UPDATE_TOAST\",\n toast: {\n ...props,\n id\n }\n });\n const dismiss = ()=>dispatch({\n type: \"DISMISS_TOAST\",\n toastId: id\n });\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open)=>{\n if (!open) dismiss();\n }\n }\n });\n return {\n id: id,\n dismiss,\n update\n };\n}\nfunction useToast() {\n const [state, setState] = react__WEBPACK_IMPORTED_MODULE_0__.useState(memoryState);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"useToast.useEffect\": ()=>{\n listeners.push(setState);\n return ({\n \"useToast.useEffect\": ()=>{\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n })[\"useToast.useEffect\"];\n }\n }[\"useToast.useEffect\"], [\n state\n ]);\n return {\n ...state,\n toast,\n dismiss: (toastId)=>dispatch({\n type: \"DISMISS_TOAST\",\n toastId\n })\n };\n}\n\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Z0JBQUVSO1lBQUc7UUFDeEI7SUFDRixNQUFNVSxVQUFVLElBQU1yQixTQUFTO1lBQUVDLE1BQU07WUFBaUJOLFNBQVNnQjtRQUFHO0lBRXBFWCxTQUFTO1FBQ1BDLE1BQU07UUFDTk0sT0FBTztZQUNMLEdBQUdZLEtBQUs7WUFDUlI7WUFDQUcsTUFBTTtZQUNOUSxjQUFjLENBQUNSO2dCQUNiLElBQUksQ0FBQ0EsTUFBTU87WUFDYjtRQUNGO0lBQ0Y7SUFFQSxPQUFPO1FBQ0xWLElBQUlBO1FBQ0pVO1FBQ0FEO0lBQ0Y7QUFDRjtBQUVBLFNBQVNHO0lBQ1AsTUFBTSxDQUFDbkIsT0FBT29CLFNBQVMsR0FBRzdDLDJDQUFjLENBQVFzQztJQUVoRHRDLDRDQUFlOzhCQUFDO1lBQ2RxQyxVQUFVVyxJQUFJLENBQUNIO1lBQ2Y7c0NBQU87b0JBQ0wsTUFBTUksUUFBUVosVUFBVWEsT0FBTyxDQUFDTDtvQkFDaEMsSUFBSUksUUFBUSxDQUFDLEdBQUc7d0JBQ2RaLFVBQVVjLE1BQU0sQ0FBQ0YsT0FBTztvQkFDMUI7Z0JBQ0Y7O1FBQ0Y7NkJBQUc7UUFBQ3hCO0tBQU07SUFFVixPQUFPO1FBQ0wsR0FBR0EsS0FBSztRQUNSRztRQUNBYyxTQUFTLENBQUMxQixVQUFxQkssU0FBUztnQkFBRUMsTUFBTTtnQkFBaUJOO1lBQVE7SUFDM0U7QUFDRjtBQUUwQiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ob29rcy91c2UtdG9hc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuLy8gSW5zcGlyZWQgYnkgcmVhY3QtaG90LXRvYXN0IGxpYnJhcnlcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5cbmltcG9ydCB0eXBlIHtcbiAgVG9hc3RBY3Rpb25FbGVtZW50LFxuICBUb2FzdFByb3BzLFxufSBmcm9tIFwiQC9jb21wb25lbnRzL3VpL3RvYXN0XCJcblxuY29uc3QgVE9BU1RfTElNSVQgPSAxXG5jb25zdCBUT0FTVF9SRU1PVkVfREVMQVkgPSAxMDAwMDAwXG5cbnR5cGUgVG9hc3RlclRvYXN0ID0gVG9hc3RQcm9wcyAmIHtcbiAgaWQ6IHN0cmluZ1xuICB0aXRsZT86IFJlYWN0LlJlYWN0Tm9kZVxuICBkZXNjcmlwdGlvbj86IFJlYWN0LlJlYWN0Tm9kZVxuICBhY3Rpb24/OiBUb2FzdEFjdGlvbkVsZW1lbnRcbn1cblxuY29uc3QgYWN0aW9uVHlwZXMgPSB7XG4gIEFERF9UT0FTVDogXCJBRERfVE9BU1RcIixcbiAgVVBEQVRFX1RPQVNUOiBcIlVQREFURV9UT0FTVFwiLFxuICBESVNNSVNTX1RPQVNUOiBcIkRJU01JU1NfVE9BU1RcIixcbiAgUkVNT1ZFX1RPQVNUOiBcIlJFTU9WRV9UT0FTVFwiLFxufSBhcyBjb25zdFxuXG5sZXQgY291bnQgPSAwXG5cbmZ1bmN0aW9uIGdlbklkKCkge1xuICBjb3VudCA9IChjb3VudCArIDEpICUgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJcbiAgcmV0dXJuIGNvdW50LnRvU3RyaW5nKClcbn1cblxudHlwZSBBY3Rpb25UeXBlID0gdHlwZW9mIGFjdGlvblR5cGVzXG5cbnR5cGUgQWN0aW9uID1cbiAgfCB7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlW1wiQUREX1RPQVNUXCJdXG4gICAgICB0b2FzdDogVG9hc3RlclRvYXN0XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6IEFjdGlvblR5cGVbXCJVUERBVEVfVE9BU1RcIl1cbiAgICAgIHRvYXN0OiBQYXJ0aWFsPFRvYXN0ZXJUb2FzdD5cbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogQWN0aW9uVHlwZVtcIkRJU01JU1NfVE9BU1RcIl1cbiAgICAgIHRvYXN0SWQ/OiBUb2FzdGVyVG9hc3RbXCJpZFwiXVxuICAgIH1cbiAgfCB7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlW1wiUkVNT1ZFX1RPQVNUXCJdXG4gICAgICB0b2FzdElkPzogVG9hc3RlclRvYXN0W1wiaWRcIl1cbiAgICB9XG5cbmludGVyZmFjZSBTdGF0ZSB7XG4gIHRvYXN0czogVG9hc3RlclRvYXN0W11cbn1cblxuY29uc3QgdG9hc3RUaW1lb3V0cyA9IG5ldyBNYXA8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4oKVxuXG5jb25zdCBhZGRUb1JlbW92ZVF1ZXVlID0gKHRvYXN0SWQ6IHN0cmluZykgPT4ge1xuICBpZiAodG9hc3RUaW1lb3V0cy5oYXModG9hc3RJZCkpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICB0b2FzdFRpbWVvdXRzLmRlbGV0ZSh0b2FzdElkKVxuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IFwiUkVNT1ZFX1RPQVNUXCIsXG4gICAgICB0b2FzdElkOiB0b2FzdElkLFxuICAgIH0pXG4gIH0sIFRPQVNUX1JFTU9WRV9ERUxBWSlcblxuICB0b2FzdFRpbWVvdXRzLnNldCh0b2FzdElkLCB0aW1lb3V0KVxufVxuXG5leHBvcnQgY29uc3QgcmVkdWNlciA9IChzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUgPT4ge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBcIkFERF9UT0FTVFwiOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHRvYXN0czogW2FjdGlvbi50b2FzdCwgLi4uc3RhdGUudG9hc3RzXS5zbGljZSgwLCBUT0FTVF9MSU1JVCksXG4gICAgICB9XG5cbiAgICBjYXNlIFwiVVBEQVRFX1RPQVNUXCI6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdG9hc3RzOiBzdGF0ZS50b2FzdHMubWFwKCh0KSA9PlxuICAgICAgICAgIHQuaWQgPT09IGFjdGlvbi50b2FzdC5pZCA/IHsgLi4udCwgLi4uYWN0aW9uLnRvYXN0IH0gOiB0XG4gICAgICAgICksXG4gICAgICB9XG5cbiAgICBjYXNlIFwiRElTTUlTU19UT0FTVFwiOiB7XG4gICAgICBjb25zdCB7IHRvYXN0SWQgfSA9IGFjdGlvblxuXG4gICAgICAvLyAhIFNpZGUgZWZmZWN0cyAhIC0gVGhpcyBjb3VsZCBiZSBleHRyYWN0ZWQgaW50byBhIGRpc21pc3NUb2FzdCgpIGFjdGlvbixcbiAgICAgIC8vIGJ1dCBJJ2xsIGtlZXAgaXQgaGVyZSBmb3Igc2ltcGxpY2l0eVxuICAgICAgaWYgKHRvYXN0SWQpIHtcbiAgICAgICAgYWRkVG9SZW1vdmVRdWV1ZSh0b2FzdElkKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUudG9hc3RzLmZvckVhY2goKHRvYXN0KSA9PiB7XG4gICAgICAgICAgYWRkVG9SZW1vdmVRdWV1ZSh0b2FzdC5pZClcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHRvYXN0czogc3RhdGUudG9hc3RzLm1hcCgodCkgPT5cbiAgICAgICAgICB0LmlkID09PSB0b2FzdElkIHx8IHRvYXN0SWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgLi4udCxcbiAgICAgICAgICAgICAgICBvcGVuOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB0XG4gICAgICAgICksXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgXCJSRU1PVkVfVE9BU1RcIjpcbiAgICAgIGlmIChhY3Rpb24udG9hc3RJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgdG9hc3RzOiBbXSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHRvYXN0czogc3RhdGUudG9hc3RzLmZpbHRlcigodCkgPT4gdC5pZCAhPT0gYWN0aW9uLnRvYXN0SWQpLFxuICAgICAgfVxuICB9XG59XG5cbmNvbnN0IGxpc3RlbmVyczogQXJyYXk8KHN0YXRlOiBTdGF0ZSkgPT4gdm9pZD4gPSBbXVxuXG5sZXQgbWVtb3J5U3RhdGU6IFN0YXRlID0geyB0b2FzdHM6IFtdIH1cblxuZnVuY3Rpb24gZGlzcGF0Y2goYWN0aW9uOiBBY3Rpb24pIHtcbiAgbWVtb3J5U3RhdGUgPSByZWR1Y2VyKG1lbW9yeVN0YXRlLCBhY3Rpb24pXG4gIGxpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4ge1xuICAgIGxpc3RlbmVyKG1lbW9yeVN0YXRlKVxuICB9KVxufVxuXG50eXBlIFRvYXN0ID0gT21pdDxUb2FzdGVyVG9hc3QsIFwiaWRcIj5cblxuZnVuY3Rpb24gdG9hc3QoeyAuLi5wcm9wcyB9OiBUb2FzdCkge1xuICBjb25zdCBpZCA9IGdlbklkKClcblxuICBjb25zdCB1cGRhdGUgPSAocHJvcHM6IFRvYXN0ZXJUb2FzdCkgPT5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBcIlVQREFURV9UT0FTVFwiLFxuICAgICAgdG9hc3Q6IHsgLi4ucHJvcHMsIGlkIH0sXG4gICAgfSlcbiAgY29uc3QgZGlzbWlzcyA9ICgpID0+IGRpc3BhdGNoKHsgdHlwZTogXCJESVNNSVNTX1RPQVNUXCIsIHRvYXN0SWQ6IGlkIH0pXG5cbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IFwiQUREX1RPQVNUXCIsXG4gICAgdG9hc3Q6IHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgaWQsXG4gICAgICBvcGVuOiB0cnVlLFxuICAgICAgb25PcGVuQ2hhbmdlOiAob3BlbikgPT4ge1xuICAgICAgICBpZiAoIW9wZW4pIGRpc21pc3MoKVxuICAgICAgfSxcbiAgICB9LFxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgaWQ6IGlkLFxuICAgIGRpc21pc3MsXG4gICAgdXBkYXRlLFxuICB9XG59XG5cbmZ1bmN0aW9uIHVzZVRvYXN0KCkge1xuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlXSA9IFJlYWN0LnVzZVN0YXRlPFN0YXRlPihtZW1vcnlTdGF0ZSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxpc3RlbmVycy5wdXNoKHNldFN0YXRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IGxpc3RlbmVycy5pbmRleE9mKHNldFN0YXRlKVxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgbGlzdGVuZXJzLnNwbGljZShpbmRleCwgMSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzdGF0ZV0pXG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICB0b2FzdCxcbiAgICBkaXNtaXNzOiAodG9hc3RJZD86IHN0cmluZykgPT4gZGlzcGF0Y2goeyB0eXBlOiBcIkRJU01JU1NfVE9BU1RcIiwgdG9hc3RJZCB9KSxcbiAgfVxufVxuXG5leHBvcnQgeyB1c2VUb2FzdCwgdG9hc3QgfVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiVE9BU1RfTElNSVQiLCJUT0FTVF9SRU1PVkVfREVMQVkiLCJhY3Rpb25UeXBlcyIsIkFERF9UT0FTVCIsIlVQREFURV9UT0FTVCIsIkRJU01JU1NfVE9BU1QiLCJSRU1PVkVfVE9BU1QiLCJjb3VudCIsImdlbklkIiwiTnVtYmVyIiwiTUFYX1NBRkVfSU5URUdFUiIsInRvU3RyaW5nIiwidG9hc3RUaW1lb3V0cyIsIk1hcCIsImFkZFRvUmVtb3ZlUXVldWUiLCJ0b2FzdElkIiwiaGFzIiwidGltZW91dCIsInNldFRpbWVvdXQiLCJkZWxldGUiLCJkaXNwYXRjaCIsInR5cGUiLCJzZXQiLCJyZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJ0b2FzdHMiLCJ0b2FzdCIsInNsaWNlIiwibWFwIiwidCIsImlkIiwiZm9yRWFjaCIsInVuZGVmaW5lZCIsIm9wZW4iLCJmaWx0ZXIiLCJsaXN0ZW5lcnMiLCJtZW1vcnlTdGF0ZSIsImxpc3RlbmVyIiwicHJvcHMiLCJ1cGRhdGUiLCJkaXNtaXNzIiwib25PcGVuQ2hhbmdlIiwidXNlVG9hc3QiLCJzZXRTdGF0ZSIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwicHVzaCIsImluZGV4IiwiaW5kZXhPZiIsInNwbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./hooks/use-toast.ts\n"));
/***/ }),
/***/ "(app-pages-browser)/./lib/reducers/emailReducer.ts":
/*!**************************************!*\
!*** ./lib/reducers/emailReducer.ts ***!
\**************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ emailReducer: () => (/* binding */ emailReducer),\n/* harmony export */ initialState: () => (/* binding */ initialState),\n/* harmony export */ normalizeFolderAndAccount: () => (/* binding */ normalizeFolderAndAccount)\n/* harmony export */ });\n// Initial state\nconst initialState = {\n accounts: [],\n selectedAccount: null,\n selectedFolders: {},\n currentFolder: 'INBOX',\n emails: [],\n selectedEmail: null,\n selectedEmailIds: [],\n isLoading: false,\n isLoadingUnreadCounts: false,\n error: null,\n page: 1,\n perPage: 20,\n totalPages: 0,\n totalEmails: 0,\n mailboxes: [],\n unreadCountMap: {},\n showFolders: false\n};\n// Helper functions for consistency\nconst normalizeFolderAndAccount = (folder, accountId)=>{\n let normalizedFolder;\n let effectiveAccountId = accountId || 'default';\n // First, handle the folder format\n if (folder.includes(':')) {\n // Extract parts if folder already has a prefix\n const parts = folder.split(':');\n const folderAccountId = parts[0];\n normalizedFolder = parts[1];\n // If explicit accountId is provided, it ALWAYS takes precedence\n if (accountId) {\n console.log(\"Using provided accountId (\".concat(accountId, \") over folder prefix (\").concat(folderAccountId, \")\"));\n effectiveAccountId = accountId;\n } else {\n effectiveAccountId = folderAccountId;\n }\n } else {\n // No folder prefix, use the folder name as is\n normalizedFolder = folder;\n }\n return {\n normalizedFolder,\n effectiveAccountId,\n prefixedFolder: \"\".concat(effectiveAccountId, \":\").concat(normalizedFolder)\n };\n};\n// Reducer function\nfunction emailReducer(state, action) {\n console.log(\"[EMAIL_REDUCER] Action: \".concat(action.type), action);\n switch(action.type){\n case 'SET_ACCOUNTS':\n return {\n ...state,\n accounts: action.payload\n };\n case 'SELECT_ACCOUNT':\n {\n // This is a critical action that needs special handling\n const account = action.payload;\n const inboxFolder = \"\".concat(account.id, \":INBOX\");\n console.log(\"[EMAIL_REDUCER] Selecting account: \".concat(account.email, \" (\").concat(account.id, \")\"));\n // Return a completely new state that's atomically consistent\n return {\n ...state,\n selectedAccount: account,\n currentFolder: inboxFolder,\n selectedFolders: {\n ...state.selectedFolders,\n [account.id]: inboxFolder\n },\n // Clear email selections as part of the atomic account switch\n selectedEmail: null,\n selectedEmailIds: [],\n emails: [],\n isLoading: true,\n showFolders: true,\n page: 1\n };\n }\n case 'CHANGE_FOLDER':\n {\n const { folder, accountId } = action.payload;\n // Use our helper to ensure consistent folder/account handling\n const { normalizedFolder, effectiveAccountId, prefixedFolder } = normalizeFolderAndAccount(folder, accountId);\n console.log(\"[EMAIL_REDUCER] Changing folder to: \".concat(prefixedFolder, \" (account: \").concat(effectiveAccountId, \")\"));\n // Return a new state with consistent folder and account info\n return {\n ...state,\n currentFolder: prefixedFolder,\n selectedFolders: {\n ...state.selectedFolders,\n [effectiveAccountId]: prefixedFolder\n },\n // Clear email-specific state when changing folders\n selectedEmail: null,\n selectedEmailIds: [],\n emails: [],\n isLoading: true,\n page: 1\n };\n }\n case 'SET_EMAILS':\n // Sort emails by date (newest first) to ensure consistent sorting\n // First make a copy to avoid mutating the input\n const unsortedEmails = [\n ...action.payload\n ];\n // For debugging - log a few emails before sorting\n if (unsortedEmails.length > 0) {\n console.log(\"[EMAIL_REDUCER] Sorting \".concat(unsortedEmails.length, \" emails\"));\n // Log a sample of emails before sorting\n console.log('[EMAIL_REDUCER] Sample emails before sorting:', unsortedEmails.slice(0, 3).map((e)=>{\n var _e_subject;\n return {\n id: e.id.substring(0, 8),\n subject: (_e_subject = e.subject) === null || _e_subject === void 0 ? void 0 : _e_subject.substring(0, 20),\n date: e.date,\n timestamp: new Date(e.date).getTime()\n };\n }));\n }\n // CRITICAL FIX: Enhanced sorting function that ensures proper date handling\n const sortedEmails = unsortedEmails.sort((a, b)=>{\n // Convert all dates to timestamps for comparison\n let dateA, dateB;\n try {\n dateA = a.date instanceof Date ? a.date.getTime() : new Date(a.date).getTime();\n } catch (e) {\n dateA = 0; // Default to oldest if invalid\n }\n try {\n dateB = b.date instanceof Date ? b.date.getTime() : new Date(b.date).getTime();\n } catch (e) {\n dateB = 0; // Default to oldest if invalid\n }\n // Handle invalid dates\n if (isNaN(dateA) && isNaN(dateB)) return 0;\n if (isNaN(dateA)) return 1; // Put invalid dates at the end\n if (isNaN(dateB)) return -1;\n // Sort newest first\n return dateB - dateA;\n });\n // For debugging - log a few emails after sorting\n if (sortedEmails.length > 0) {\n console.log('[EMAIL_REDUCER] Sample emails after sorting:', sortedEmails.slice(0, 3).map((e)=>{\n var _e_subject;\n return {\n id: e.id.substring(0, 8),\n subject: (_e_subject = e.subject) === null || _e_subject === void 0 ? void 0 : _e_subject.substring(0, 20),\n date: e.date,\n timestamp: new Date(e.date).getTime()\n };\n }));\n }\n return {\n ...state,\n emails: sortedEmails,\n isLoading: false\n };\n case 'APPEND_EMAILS':\n {\n // Create a set of existing email IDs to avoid duplicates\n const existingIds = new Set(state.emails.map((email)=>email.id));\n console.log(\"[DEBUG-REDUCER] APPEND_EMAILS - Got \".concat(action.payload.length, \" emails to append, current list has \").concat(state.emails.length));\n // Filter out any duplicates before appending\n const newEmails = action.payload.filter((email)=>!existingIds.has(email.id));\n // Log appending for debugging\n console.log(\"[DEBUG-REDUCER] Filtered to \".concat(newEmails.length, \" new non-duplicate emails\"));\n // CRITICAL FIX: If no new emails were found, set isLoading to false but don't change the email list\n if (newEmails.length === 0) {\n console.log('[DEBUG-REDUCER] No new emails to append, returning current state with isLoading=false');\n return {\n ...state,\n isLoading: false\n };\n }\n // Debug the dates to check sorting\n if (newEmails.length > 0) {\n console.log('[DEBUG-REDUCER] Sample new emails before combining:', newEmails.slice(0, 3).map((e)=>{\n var _e_subject;\n return {\n id: e.id.substring(0, 8),\n subject: (_e_subject = e.subject) === null || _e_subject === void 0 ? void 0 : _e_subject.substring(0, 20),\n date: e.date,\n timestamp: new Date(e.date).getTime()\n };\n }));\n }\n // FIXED: Properly combine existing and new emails\n // We need to ensure we keep ALL emails when appending\n const combinedEmails = [\n ...state.emails,\n ...newEmails\n ];\n // Sort combined emails by date (newest first)\n const sortedEmails = combinedEmails.sort((a, b)=>{\n // Convert all dates to timestamps for comparison\n let dateA, dateB;\n try {\n dateA = a.date instanceof Date ? a.date.getTime() : new Date(a.date).getTime();\n } catch (e) {\n dateA = 0; // Default to oldest if invalid\n }\n try {\n dateB = b.date instanceof Date ? b.date.getTime() : new Date(b.date).getTime();\n } catch (e) {\n dateB = 0; // Default to oldest if invalid\n }\n // Handle invalid dates\n if (isNaN(dateA) && isNaN(dateB)) return 0;\n if (isNaN(dateA)) return 1; // Put invalid dates at the end\n if (isNaN(dateB)) return -1;\n // Sort newest first\n return dateB - dateA;\n });\n console.log(\"[DEBUG-REDUCER] Final combined list has \".concat(sortedEmails.length, \" emails (\").concat(state.emails.length, \" old + \").concat(newEmails.length, \" new)\"));\n return {\n ...state,\n emails: sortedEmails,\n isLoading: false\n };\n }\n case 'SELECT_EMAIL':\n return {\n ...state,\n selectedEmail: action.payload.email\n };\n case 'TOGGLE_EMAIL_SELECTION':\n {\n const emailId = action.payload;\n const isSelected = state.selectedEmailIds.includes(emailId);\n return {\n ...state,\n selectedEmailIds: isSelected ? state.selectedEmailIds.filter((id)=>id !== emailId) : [\n ...state.selectedEmailIds,\n emailId\n ]\n };\n }\n case 'TOGGLE_SELECT_ALL':\n {\n // If all emails are already selected, clear the selection\n const allEmailIds = state.emails.map((email)=>email.id);\n const allSelected = allEmailIds.every((id)=>state.selectedEmailIds.includes(id));\n return {\n ...state,\n selectedEmailIds: allSelected ? [] : allEmailIds\n };\n }\n case 'CLEAR_SELECTED_EMAILS':\n return {\n ...state,\n selectedEmailIds: [],\n selectedEmail: null\n };\n case 'SET_LOADING':\n return {\n ...state,\n isLoading: action.payload\n };\n case 'SET_LOADING_UNREAD_COUNTS':\n return {\n ...state,\n isLoadingUnreadCounts: action.payload\n };\n case 'SET_ERROR':\n return {\n ...state,\n error: action.payload,\n isLoading: false\n };\n case 'SET_PAGE':\n return {\n ...state,\n page: action.payload\n };\n case 'INCREMENT_PAGE':\n return {\n ...state,\n page: state.page + 1\n };\n case 'SET_TOTAL_PAGES':\n return {\n ...state,\n totalPages: action.payload\n };\n case 'SET_TOTAL_EMAILS':\n return {\n ...state,\n totalEmails: action.payload\n };\n case 'SET_MAILBOXES':\n return {\n ...state,\n mailboxes: action.payload\n };\n case 'UPDATE_UNREAD_COUNT':\n {\n const { accountId, folder, count } = action.payload;\n return {\n ...state,\n unreadCountMap: {\n ...state.unreadCountMap,\n [accountId]: {\n ...state.unreadCountMap[accountId] || {},\n [folder]: count\n }\n }\n };\n }\n case 'SET_UNREAD_COUNTS':\n return {\n ...state,\n unreadCountMap: action.payload\n };\n case 'TOGGLE_SHOW_FOLDERS':\n return {\n ...state,\n showFolders: action.payload\n };\n case 'MARK_EMAIL_AS_READ':\n {\n const { emailId, isRead, accountId } = action.payload;\n // Update emails list\n const updatedEmails = state.emails.map((email)=>email.id === emailId && (!accountId || email.accountId === accountId) ? {\n ...email,\n flags: {\n ...email.flags,\n seen: isRead\n }\n } : email);\n // Update selected email if it matches\n const updatedSelectedEmail = state.selectedEmail && state.selectedEmail.id === emailId && (!accountId || state.selectedEmail.accountId === accountId) ? {\n ...state.selectedEmail,\n flags: {\n ...state.selectedEmail.flags,\n seen: isRead\n }\n } : state.selectedEmail;\n return {\n ...state,\n emails: updatedEmails,\n selectedEmail: updatedSelectedEmail\n };\n }\n default:\n return state;\n }\n}\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi9yZWR1Y2Vycy9lbWFpbFJlZHVjZXIudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBd0RBLGdCQUFnQjtBQUNULE1BQU1BLGVBQTJCO0lBQ3RDQyxVQUFVLEVBQUU7SUFDWkMsaUJBQWlCO0lBQ2pCQyxpQkFBaUIsQ0FBQztJQUNsQkMsZUFBZTtJQUNmQyxRQUFRLEVBQUU7SUFDVkMsZUFBZTtJQUNmQyxrQkFBa0IsRUFBRTtJQUNwQkMsV0FBVztJQUNYQyx1QkFBdUI7SUFDdkJDLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxTQUFTO0lBQ1RDLFlBQVk7SUFDWkMsYUFBYTtJQUNiQyxXQUFXLEVBQUU7SUFDYkMsZ0JBQWdCLENBQUM7SUFDakJDLGFBQWE7QUFDZixFQUFFO0FBRUYsbUNBQW1DO0FBQzVCLE1BQU1DLDRCQUE0QixDQUFDQyxRQUFnQkM7SUFDeEQsSUFBSUM7SUFDSixJQUFJQyxxQkFBNkJGLGFBQWE7SUFFOUMsa0NBQWtDO0lBQ2xDLElBQUlELE9BQU9JLFFBQVEsQ0FBQyxNQUFNO1FBQ3hCLCtDQUErQztRQUMvQyxNQUFNQyxRQUFRTCxPQUFPTSxLQUFLLENBQUM7UUFDM0IsTUFBTUMsa0JBQWtCRixLQUFLLENBQUMsRUFBRTtRQUNoQ0gsbUJBQW1CRyxLQUFLLENBQUMsRUFBRTtRQUUzQixnRUFBZ0U7UUFDaEUsSUFBSUosV0FBVztZQUNiTyxRQUFRQyxHQUFHLENBQUMsNkJBQStERixPQUFsQ04sV0FBVSwwQkFBd0MsT0FBaEJNLGlCQUFnQjtZQUMzRkoscUJBQXFCRjtRQUN2QixPQUFPO1lBQ0xFLHFCQUFxQkk7UUFDdkI7SUFDRixPQUFPO1FBQ0wsOENBQThDO1FBQzlDTCxtQkFBbUJGO0lBQ3JCO0lBRUEsT0FBTztRQUNMRTtRQUNBQztRQUNBTyxnQkFBZ0IsR0FBeUJSLE9BQXRCQyxvQkFBbUIsS0FBb0IsT0FBakJEO0lBQzNDO0FBQ0YsRUFBRTtBQUVGLG1CQUFtQjtBQUNaLFNBQVNTLGFBQWFDLEtB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ekIsYUFBYSxJQUM5Q3lCLE1BQU16QixhQUFhLENBQUMrQixFQUFFLEtBQUswQixXQUMxQixFQUFDM0MsYUFBYVcsTUFBTXpCLGFBQWEsQ0FBQ2MsU0FBUyxLQUFLQSxTQUFRLElBQ3JEO29CQUFFLEdBQUdXLE1BQU16QixhQUFhO29CQUFFaUUsT0FBTzt3QkFBRSxHQUFHeEMsTUFBTXpCLGFBQWEsQ0FBQ2lFLEtBQUs7d0JBQUVDLE1BQU1IO29CQUFPO2dCQUFFLElBQ2hGdEMsTUFBTXpCLGFBQWE7Z0JBRXpCLE9BQU87b0JBQ0wsR0FBR3lCLEtBQUs7b0JBQ1IxQixRQUFRaUU7b0JBQ1JoRSxlQUFlbUU7Z0JBQ2pCO1lBQ0Y7UUFFQTtZQUNFLE9BQU8xQztJQUNYO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbGliL3JlZHVjZXJzL2VtYWlsUmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbWFpbCB9IGZyb20gJ0AvaG9va3MvdXNlLWNvdXJyaWVyJztcblxuLy8gRGVmaW5lIGFsbCBwb3NzaWJsZSBzdGF0ZSB0eXBlc1xuZXhwb3J0IGludGVyZmFjZSBBY2NvdW50IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICBmb2xkZXJzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbWFpbFN0YXRlIHtcbiAgYWNjb3VudHM6IEFjY291bnRbXTtcbiAgc2VsZWN0ZWRBY2NvdW50OiBBY2NvdW50IHwgbnVsbDtcbiAgc2VsZWN0ZWRGb2xkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBjdXJyZW50Rm9sZGVyOiBzdHJpbmc7XG4gIGVtYWlsczogRW1haWxbXTtcbiAgc2VsZWN0ZWRFbWFpbDogRW1haWwgfCBudWxsO1xuICBzZWxlY3RlZEVtYWlsSWRzOiBzdHJpbmdbXTtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBpc0xvYWRpbmdVbnJlYWRDb3VudHM6IGJvb2xlYW47XG4gIGVycm9yOiBzdHJpbmcgfCBudWxsO1xuICBwYWdlOiBudW1iZXI7XG4gIHBlclBhZ2U6IG51bWJlcjtcbiAgdG90YWxQYWdlczogbnVtYmVyO1xuICB0b3RhbEVtYWlsczogbnVtYmVyO1xuICBtYWlsYm94ZXM6IHN0cmluZ1tdO1xuICB1bnJlYWRDb3VudE1hcDogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgbnVtYmVyPj47XG4gIHNob3dGb2xkZXJzOiBib29sZWFuO1xuICBjdXJyZW50QWNjb3VudElkPzogc3RyaW5nO1xufVxuXG4vLyBEZWZpbmUgYWxsIHBvc3NpYmxlIGFjdGlvbiB0eXBlc1xuZXhwb3J0IHR5cGUgRW1haWxBY3Rpb24gPSBcbiAgfCB7IHR5cGU6ICdTRVRfQUNDT1VOVFMnLCBwYXlsb2FkOiBBY2NvdW50W10gfVxuICB8IHsgdHlwZTogJ1NFTEVDVF9BQ0NPVU5UJywgcGF5bG9hZDogQWNjb3VudCB9XG4gIHwgeyB0eXBlOiAnQ0hBTkdFX0ZPTERFUicsIHBheWxvYWQ6IHsgZm9sZGVyOiBzdHJpbmcsIGFjY291bnRJZDogc3RyaW5nIH0gfVxuICB8IHsgdHlwZTogJ1NFVF9FTUFJTFMnLCBwYXlsb2FkOiBFbWFpbFtdIH1cbiAgfCB7IHR5cGU6ICdBUFBFTkRfRU1BSUxTJywgcGF5bG9hZDogRW1haWxbXSB9XG4gIHwgeyB0eXBlOiAnU0VMRUNUX0VNQUlMJywgcGF5bG9hZDogeyBlbWFpbElkOiBzdHJpbmcsIGFjY291bnRJZDogc3RyaW5nLCBmb2xkZXI6IHN0cmluZywgZW1haWw6IEVtYWlsIHwgbnVsbCB9IH1cbiAgfCB7IHR5cGU6ICdUT0dHTEVfRU1BSUxfU0VMRUNUSU9OJywgcGF5bG9hZDogc3RyaW5nIH1cbiAgfCB7IHR5cGU6ICdUT0dHTEVfU0VMRUNUX0FMTCcgfVxuICB8IHsgdHlwZTogJ0NMRUFSX1NFTEVDVEVEX0VNQUlMUycgfVxuICB8IHsgdHlwZTogJ1NFVF9MT0FESU5HJywgcGF5bG9hZDogYm9vbGVhbiB9XG4gIHwgeyB0eXBlOiAnU0VUX0xPQURJTkdfVU5SRUFEX0NPVU5UUycsIHBheWxvYWQ6IGJvb2xlYW4gfVxuICB8IHsgdHlwZTogJ1NFVF9FUlJPUicsIHBheWxvYWQ6IHN0cmluZyB8IG51bGwgfVxuICB8IHsgdHlwZTogJ1NFVF9QQUdFJywgcGF5bG9hZDogbnVtYmVyIH1cbiAgfCB7IHR5cGU6ICdJTkNSRU1FTlRfUEFHRScgfVxuICB8IHsgdHlwZTogJ1NFVF9UT1RBTF9QQUdFUycsIHBheWxvYWQ6IG51bWJlciB9XG4gIHwgeyB0eXBlOiAnU0VUX1RPVEFMX0VNQUlMUycsIHBheWxvYWQ6IG51bWJlciB9XG4gIHwgeyB0eXBlOiAnU0VUX01BSUxCT1hFUycsIHBheWxvYWQ6IHN0cmluZ1tdIH1cbiAgfCB7IHR5cGU6ICdVUERBVEVfVU5SRUFEX0NPVU5UJywgcGF5bG9hZDogeyBhY2NvdW50SWQ6IHN0cmluZywgZm9sZGVyOiBzdHJpbmcsIGNvdW50OiBudW1iZXIgfSB9XG4gIHwgeyB0eXBlOiAnU0VUX1VOUkVBRF9DT1VOVFMnLCBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PiB9XG4gIHwgeyB0eXBlOiAnVE9HR0xFX1NIT1dfRk9MREVSUycsIHBheWxvYWQ6IGJvb2xlYW4gfVxuICB8IHsgdHlwZTogJ01BUktfRU1BSUxfQVNfUkVBRCcsIHBheWxvYWQ6IHsgZW1haWxJZDogc3RyaW5nLCBpc1JlYWQ6IGJvb2xlYW4sIGFjY291bnRJZD86IHN0cmluZyB9IH07XG5cbi8vIEluaXRpYWwgc3RhdGVcbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGU6IEVtYWlsU3RhdGUgPSB7XG4gIGFjY291bnRzOiBbXSxcbiAgc2VsZWN0ZWRBY2NvdW50OiBudWxsLFxuICBzZWxlY3RlZEZvbGRlcnM6IHt9LFxuICBjdXJyZW50Rm9sZGVyOiAnSU5CT1gnLFxuICBlbWFpbHM6IFtdLFxuICBzZWxlY3RlZEVtYWlsOiBudWxsLFxuICBzZWxlY3RlZEVtYWlsSWRzOiBbXSxcbiAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgaXNMb2FkaW5nVW5yZWFkQ291bnRzOiBmYWxzZSxcbiAgZXJyb3I6IG51bGwsXG4gIHBhZ2U6IDEsXG4gIHBlclBhZ2U6IDIwLFxuICB0b3RhbFBhZ2VzOiAwLFxuICB0b3RhbEVtYWlsczogMCxcbiAgbWFpbGJveGVzOiBbXSxcbiAgdW5yZWFkQ291bnRNYXA6IHt9LFxuICBzaG93Rm9sZGVyczogZmFsc2Vcbn07XG5cbi8vIEhlbHBlciBmdW5jdGlvbnMgZm9yIGNvbnNpc3RlbmN5XG5leHBvcnQgY29uc3Qgbm9ybWFsaXplRm9sZGVyQW5kQWNjb3VudCA9IChmb2xkZXI6IHN0cmluZywgYWNjb3VudElkPzogc3RyaW5nKSA9PiB7XG4gIGxldCBub3JtYWxpemVkRm9sZGVyOiBzdHJpbmc7XG4gIGxldCBlZmZlY3RpdmVBY2NvdW50SWQ6IHN0cmluZyA9IGFjY291bnRJZCB8fCAnZGVmYXVsdCc7XG4gIFxuICAvLyBGaXJzdCwgaGFuZGxlIHRoZSBmb2xkZXIgZm9ybWF0XG4gIGlmIChmb2xkZXIuaW5jbHVkZXMoJzonKSkge1xuICAgIC8vIEV4dHJhY3QgcGFydHMgaWYgZm9sZGVyIGFscmVhZHkgaGFzIGEgcHJlZml4XG4gICAgY29uc3QgcGFydHMgPSBmb2xkZXIuc3BsaXQoJzonKTtcbiAgICBjb25zdCBmb2xkZXJBY2NvdW50SWQgPSBwYXJ0c1swXTtcbiAgICBub3JtYWxpemVkRm9sZGVyID0gcGFydHNbMV07XG4gICAgXG4gICAgLy8gSWYgZXhwbGljaXQgYWNjb3VudElkIGlzIHByb3ZpZGVkLCBpdCBBTFdBWVMgdGFrZXMgcHJlY2VkZW5jZVxuICAgIGlmIChhY2NvdW50SWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBVc2luZyBwcm92aWRlZCBhY2NvdW50SWQgKCR7YWNjb3VudElkfSkgb3ZlciBmb2xkZXIgcHJlZml4ICgke2ZvbGRlckFjY291bnRJZH0pYCk7XG4gICAgICBlZmZlY3RpdmVBY2NvdW50SWQgPSBhY2NvdW50SWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVmZmVjdGl2ZUFjY291bnRJZCA9IGZvbGRlckFjY291bnRJZDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gTm8gZm9sZGVyIHByZWZpeCwgdXNlIHRoZSBmb2xkZXIgbmFtZSBhcyBpc1xuICAgIG5vcm1hbGl6ZWRGb2xkZXIgPSBmb2xkZXI7XG4gIH1cbiAgXG4gIHJldHVybiB7XG4gICAgbm9ybWFsaXplZEZvbGRlcixcbiAgICBlZmZlY3RpdmVBY2NvdW50SWQsXG4gICAgcHJlZml4ZWRGb2xkZXI6IGAke2VmZmVjdGl2ZUFjY291bnRJZH06JHtub3JtYWxpemVkRm9sZGVyfWBcbiAgfTtcbn07XG5cbi8vIFJlZHVjZXIgZnVuY3Rpb25cbmV4cG9ydCBmdW5jdGlvbiBlbWFpbFJlZHVjZXIoc3RhdGU6IEVtYWlsU3RhdGUsIGFjdGlvbjogRW1haWxBY3Rpb24pOiBFbWFpbFN0YXRlIHtcbiAgY29uc29sZS5sb2coYFtFTUFJTF9SRURVQ0VSXSBBY3Rpb246ICR7YWN0aW9uLnR5cGV9YCwgYWN0aW9uKTtcbiAgXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlICdTRVRfQUNDT1VOVFMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGFjY291bnRzOiBhY3Rpb24ucGF5bG9hZFxuICAgICAgfTtcbiAgICBcbiAgICBjYXNlICdTRUxFQ1RfQUNDT1VOVCc6IHtcbiAgICAgIC8vIFRoaXMgaXMgYSBjcml0aWNhbCBhY3Rpb24gdGhhdCBuZWVkcyBzcGVjaWFsIGhhbmRsaW5nXG4gICAgICBjb25zdCBhY2NvdW50ID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCBpbmJveEZvbGRlciA9IGAke2FjY291bnQuaWR9OklOQk9YYDtcbiAgICAgIFxuICAgICAgY29uc29sZS5sb2coYFtFTUFJTF9SRURVQ0VSXSBTZWxlY3RpbmcgYWNjb3VudDogJHthY2NvdW50LmVtYWlsfSAoJHthY2NvdW50LmlkfSlgKTtcbiAgICAgIFxuICAgICAgLy8gUmV0dXJuIGEgY29tcGxldGVseSBuZXcgc3RhdGUgdGhhdCdzIGF0b21pY2FsbHkgY29uc2lzdGVudFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNlbGVjdGVkQWNjb3VudDogYWNjb3VudCxcbiAgICAgICAgY3VycmVudEZvbGRlcjogaW5ib3hGb2xkZXIsXG4gICAgICAgIHNlbGVjdGVkRm9sZGVyczoge1xuICAgICAgICAgIC4uLnN0YXRlLnNlbGVjdGVkRm9sZGVycyxcbiAgICAgICAgICBbYWNjb3VudC5pZF06IGluYm94Rm9sZGVyXG4gICAgICAgIH0sXG4gICAgICAgIC8vIENsZWFyIGVtYWlsIHNlbGVjdGlvbnMgYXMgcGFydCBvZiB0aGUgYXRvbWljIGFjY291bnQgc3dpdGNoXG4gICAgICAgIHNlbGVjdGVkRW1haWw6IG51bGwsXG4gICAgICAgIHNlbGVjdGVkRW1haWxJZHM6IFtdLFxuICAgICAgICBlbWFpbHM6IFtdLFxuICAgICAgICBpc0xvYWRpbmc6IHRydWUsXG4gICAgICAgIHNob3dGb2xkZXJzOiB0cnVlLFxuICAgICAgICBwYWdlOiAxXG4gICAgICB9O1xuICAgIH1cbiAgICBcbiAgICBjYXNlICdDSEFOR0VfRk9MREVSJzoge1xuICAgICAgY29uc3QgeyBmb2xkZXIsIGFjY291bnRJZCB9ID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBcbiAgICAgIC8vIFVzZSBvdXIgaGVscGVyIHRvIGVuc3VyZSBjb25zaXN0ZW50IGZvbGRlci9hY2NvdW50IGhhbmRsaW5nXG4gICAgICBjb25zdCB7IG5vcm1hbGl6ZWRGb2xkZXIsIGVmZmVjdGl2ZUFjY291bnRJZCwgcHJlZml4ZWRGb2xkZXIgfSA9IFxuICAgICAgICBub3JtYWxpemVGb2xkZXJBbmRBY2NvdW50KGZvbGRlciwgYWNjb3VudElkKTtcbiAgICAgIFxuICAgICAgY29uc29sZS5sb2coYFtFTUFJTF9SRURVQ0VSXSBDaGFuZ2luZyBmb2xkZXIgdG86ICR7cHJlZml4ZWRGb2xkZXJ9IChhY2NvdW50OiAke2VmZmVjdGl2ZUFjY291bnRJZH0pYCk7XG4gICAgICBcbiAgICAgIC8vIFJldHVybiBhIG5ldyBzdGF0ZSB3aXRoIGNvbnNpc3RlbnQgZm9sZGVyIGFuZCBhY2NvdW50IGluZm9cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjdXJyZW50Rm9sZGVyOiBwcmVmaXhlZEZvbGRlcixcbiAgICAgICAgc2VsZWN0ZWRGb2xkZXJzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2VsZWN0ZWRGb2xkZXJzLFxuICAgICAgICAgIFtlZmZlY3RpdmVBY2NvdW50SWRdOiBwcmVmaXhlZEZvbGRlclxuICAgICAgICB9LFxuICAgICAgICAvLyBDbGVhciBlbWFpbC1zcGVjaWZpYyBzdGF0ZSB3aGVuIGNoYW5naW5nIGZvbGRlcnNcbiAgICAgICAgc2VsZWN0ZWRFbWFpbDogbnVsbCxcbiAgICAgICAgc2VsZWN0ZWRFbWFpbElkczogW10sXG4gICAgICAgIGVtYWlsczogW10sXG4gICAgICAgIGlzTG9hZGluZzogdHJ1ZSxcbiAgICAgICAgcGFnZTogMVxuICAgICAgfTtcbiAgICB9XG4gICAgXG4gICAgY2FzZSAnU0VUX0VNQUlMUyc6XG4gICAgICAvLyBTb3J0IGVtYWlscyBieSBkYXRlIChuZXdlc3QgZmlyc3QpIHRvIGVuc3VyZSBjb25zaXN0ZW50IHNvcnRpbmdcbiAgICAgIC8vIEZpcnN0IG1ha2UgYSBjb3B5IHRvIGF2b2lkIG11dGF0aW5nIHRoZSBpbnB1dFxuICAgICAgY29uc3QgdW5zb3J0ZWRFbWFpbHMgPSBbLi4uYWN0aW9uLnBheWxvYWRdO1xuICAgICAgXG4gICAgICAvLyBGb3IgZGVidWdnaW5nIC0gbG9nIGEgZmV3IGVtYWlscyBiZWZvcmUgc29ydGluZ1xuICAgICAgaWYgKHVuc29ydGVkRW1haWxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc29sZS5sb2coYFtFTUFJTF9SRURVQ0VSXSBTb3J0aW5nICR7dW5zb3J0ZWRFbWFpbHMubGVuZ3RofSBlbWFpbHNgKTtcbiAgICAgICAgXG4gICAgICAgIC8vIExvZyBhIHNhbXBsZSBvZiBlbWFpbHMgYmVmb3JlIHNvcnRpbmdcbiAgICAgICAgY29uc29sZS5sb2coJ1tFTUFJTF9SRURVQ0VSXSBTYW1wbGUgZW1haWxzIGJlZm9yZSBzb3J0aW5nOicsXG4gICAgICAgICAgdW5zb3J0ZWRFbWFpbHMuc2xpY2UoMCwgMykubWFwKGUgPT4gKHtcbiAgICAgICAgICAgIGlkOiBlLmlkLnN1YnN0cmluZygwLCA4KSxcbiAgICAgICAgICAgIHN1YmplY3Q6IGUuc3ViamVjdD8uc3Vic3RyaW5nKDAsIDIwKSxcbiAgICAgICAgICAgIGRhdGU6IGUuZGF0ZSxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoZS5kYXRlKS5nZXRUaW1lKClcbiAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gQ1JJVElDQUwgRklYOiBFbmhhbmNlZCBzb3J0aW5nIGZ1bmN0aW9uIHRoYXQgZW5zdXJlcyBwcm9wZXIgZGF0ZSBoYW5kbGluZ1xuICAgICAgY29uc3Qgc29ydGVkRW1haWxzID0gdW5zb3J0ZWRFbWFpbHMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAvLyBDb252ZXJ0IGFsbCBkYXRlcyB0byB0aW1lc3RhbXBzIGZvciBjb21wYXJpc29uXG4gICAgICAgIGxldCBkYXRlQTogbnVtYmVyLCBkYXRlQjogbnVtYmVyO1xuICAgICAgICBcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBkYXRlQSA9IGEuZGF0ZSBpbnN0YW5jZW9mIERhdGUgPyBhLmRhdGUuZ2V0VGltZSgpIDogbmV3IERhdGUoYS5kYXRlKS5nZXRUaW1lKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBkYXRlQSA9IDA7IC8vIERlZmF1bHQgdG8gb2xkZXN0IGlmIGludmFsaWRcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBkYXRlQiA9IGIuZGF0ZSBpbnN0YW5jZW9mIERhdGUgPyBiLmRhdGUuZ2V0VGltZSgpIDogbmV3IERhdGUoYi5kYXRlKS5nZXRUaW1lKCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBkYXRlQiA9IDA7IC8vIERlZmF1bHQgdG8gb2xkZXN0IGlmIGludmFsaWRcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLy8gSGFuZGxlIGludmFsaWQgZGF0ZXNcbiAgICAgICAgaWYgKGlzTmFOKGRhdGVBKSAmJiBpc05hTihkYXRlQikpIHJldHVybiAwO1xuICAgICAgICBpZiAoaXNOYU4oZGF0ZUEpKSByZXR1cm4gMTsgLy8gUHV0IGludmFsaWQgZGF0ZXMgYXQgdGhlIGVuZFxuICAgICAgICBpZiAoaXNOYU4oZGF0ZUIpKSByZXR1cm4gLTE7XG4gICAgICAgIFxuICAgICAgICAvLyBTb3J0IG5ld2VzdCBmaXJzdFxuICAgICAgICByZXR1cm4gZGF0ZUIgLSBkYXRlQTtcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBGb3IgZGVidWdnaW5nIC0gbG9nIGEgZmV3IGVtYWlscyBhZnRlciBzb3J0aW5nXG4gICAgICBpZiAoc29ydGVkRW1haWxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1tFTUFJTF9SRURVQ0VSXSBTYW1wbGUgZW1haWxzIGFmdGVyIHNvcnRpbmc6JyxcbiAgICAgICAgICBzb3J0ZWRFbWFpbHMuc2xpY2UoMCwgMykubWFwKGUgPT4gKHtcbiAgICAgICAgICAgIGlkOiBlLmlkLnN1YnN0cmluZygwLCA4KSxcbiAgICAgICAgICAgIHN1YmplY3Q6IGUuc3ViamVjdD8uc3Vic3RyaW5nKDAsIDIwKSxcbiAgICAgICAgICAgIGRhdGU6IGUuZGF0ZSxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoZS5kYXRlKS5nZXRUaW1lKClcbiAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGVtYWlsczogc29ydGVkRW1haWxzLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlXG4gICAgICB9O1xuICAgIFxuICAgIGNhc2UgJ0FQUEVORF9FTUFJTFMnOiB7XG4gICAgICAvLyBDcmVhdGUgYSBzZXQgb2YgZXhpc3RpbmcgZW1haWwgSURzIHRvIGF2b2lkIGR1cGxpY2F0ZXNcbiAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChzdGF0ZS5lbWFpbHMubWFwKGVtYWlsID0+IGVtYWlsLmlkKSk7XG4gICAgICBcbiAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctUkVEVUNFUl0gQVBQRU5EX0VNQUlMUyAtIEdvdCAke2FjdGlvbi5wYXlsb2FkLmxlbmd0aH0gZW1haWxzIHRvIGFwcGVuZCwgY3VycmVudCBsaXN0IGhhcyAke3N0YXRlLmVtYWlscy5sZW5ndGh9YCk7XG4gICAgICBcbiAgICAgIC8vIEZpbHRlciBvdXQgYW55IGR1cGxpY2F0ZXMgYmVmb3JlIGFwcGVuZGluZ1xuICAgICAgY29uc3QgbmV3RW1haWxzID0gYWN0aW9uLnBheWxvYWQuZmlsdGVyKGVtYWlsID0+ICFleGlzdGluZ0lkcy5oYXMoZW1haWwuaWQpKTtcbiAgICAgIFxuICAgICAgLy8gTG9nIGFwcGVuZGluZyBmb3IgZGVidWdnaW5nXG4gICAgICBjb25zb2xlLmxvZyhgW0RFQlVHLVJFRFVDRVJdIEZpbHRlcmVkIHRvICR7bmV3RW1haWxzLmxlbmd0aH0gbmV3IG5vbi1kdXBsaWNhdGUgZW1haWxzYCk7XG4gICAgICBcbiAgICAgIC8vIENSSVRJQ0FMIEZJWDogSWYgbm8gbmV3IGVtYWlscyB3ZXJlIGZvdW5kLCBzZXQgaXNMb2FkaW5nIHRvIGZhbHNlIGJ1dCBkb24ndCBjaGFuZ2UgdGhlIGVtYWlsIGxpc3RcbiAgICAgIGlmIChuZXdFbWFpbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbREVCVUctUkVEVUNFUl0gTm8gbmV3IGVtYWlscyB0byBhcHBlbmQsIHJldHVybmluZyBjdXJyZW50IHN0YXRlIHdpdGggaXNMb2FkaW5nPWZhbHNlJyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBEZWJ1ZyB0aGUgZGF0ZXMgdG8gY2hlY2sgc29ydGluZ1xuICAgICAgaWYgKG5ld0VtYWlscy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbREVCVUctUkVEVUNFUl0gU2FtcGxlIG5ldyBlbWFpbHMgYmVmb3JlIGNvbWJpbmluZzonLFxuICAgICAgICAgIG5ld0VtYWlscy5zbGljZSgwLCAzKS5tYXAoZSA9PiAoe1xuICAgICAgICAgICAgaWQ6IGUuaWQuc3Vic3RyaW5nKDAsIDgpLFxuICAgICAgICAgICAgc3ViamVjdDogZS5zdWJqZWN0Py5zdWJzdHJpbmcoMCwgMjApLFxuICAgICAgICAgICAgZGF0ZTogZS5kYXRlLFxuICAgICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZShlLmRhdGUpLmdldFRpbWUoKVxuICAgICAgICAgIH0pKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBGSVhFRDogUHJvcGVybHkgY29tYmluZSBleGlzdGluZyBhbmQgbmV3IGVtYWlsc1xuICAgICAgLy8gV2UgbmVlZCB0byBlbnN1cmUgd2Uga2VlcCBBTEwgZW1haWxzIHdoZW4gYXBwZW5kaW5nXG4gICAgICBjb25zdCBjb21iaW5lZEVtYWlscyA9IFsuLi5zdGF0ZS5lbWFpbHMsIC4uLm5ld0VtYWlsc107XG4gICAgICBcbiAgICAgIC8vIFNvcnQgY29tYmluZWQgZW1haWxzIGJ5IGRhdGUgKG5ld2VzdCBmaXJzdClcbiAgICAgIGNvbnN0IHNvcnRlZEVtYWlscyA9IGNvbWJpbmVkRW1haWxzLnNvcnQoXG4gICAgICAgIChhLCBiKSA9PiB7XG4gICAgICAgICAgLy8gQ29udmVydCBhbGwgZGF0ZXMgdG8gdGltZXN0YW1wcyBmb3IgY29tcGFyaXNvblxuICAgICAgICAgIGxldCBkYXRlQTogbnVtYmVyLCBkYXRlQjogbnVtYmVyO1xuICAgICAgICAgIFxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkYXRlQSA9IGEuZGF0ZSBpbnN0YW5jZW9mIERhdGUgPyBhLmRhdGUuZ2V0VGltZSgpIDogbmV3IERhdGUoYS5kYXRlKS5nZXRUaW1lKCk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgZGF0ZUEgPSAwOyAvLyBEZWZhdWx0IHRvIG9sZGVzdCBpZiBpbnZhbGlkXG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkYXRlQiA9IGIuZGF0ZSBpbnN0YW5jZW9mIERhdGUgPyBiLmRhdGUuZ2V0VGltZSgpIDogbmV3IERhdGUoYi5kYXRlKS5nZXRUaW1lKCk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgZGF0ZUIgPSAwOyAvLyBEZWZhdWx0IHRvIG9sZGVzdCBpZiBpbnZhbGlkXG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIEhhbmRsZSBpbnZhbGlkIGRhdGVzXG4gICAgICAgICAgaWYgKGlzTmFOKGRhdGVBKSAmJiBpc05hTihkYXRlQikpIHJldHVybiAwO1xuICAgICAgICAgIGlmIChpc05hTihkYXRlQSkpIHJldHVybiAxOyAvLyBQdXQgaW52YWxpZCBkYXRlcyBhdCB0aGUgZW5kXG4gICAgICAgICAgaWYgKGlzTmFOKGRhdGVCKSkgcmV0dXJuIC0xO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIFNvcnQgbmV3ZXN0IGZpcnN0XG4gICAgICAgICAgcmV0dXJuIGRhdGVCIC0gZGF0ZUE7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBcbiAgICAgIGNvbnNvbGUubG9nKGBbREVCVUctUkVEVUNFUl0gRmluYWwgY29tYmluZWQgbGlzdCBoYXMgJHtzb3J0ZWRFbWFpbHMubGVuZ3RofSBlbWFpbHMgKCR7c3RhdGUuZW1haWxzLmxlbmd0aH0gb2xkICsgJHtuZXdFbWFpbHMubGVuZ3RofSBuZXcpYCk7XG4gICAgICBcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBlbWFpbHM6IHNvcnRlZEVtYWlscyxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZVxuICAgICAgfTtcbiAgICB9XG4gICAgXG4gICAgY2FzZSAnU0VMRUNUX0VNQUlMJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWxlY3RlZEVtYWlsOiBhY3Rpb24ucGF5bG9hZC5lbWFpbCxcbiAgICAgICAgLy8gRG9uJ3QgbW9kaWZ5IHNlbGVjdGVkRW1haWxJZHMgd2hlbiBqdXN0IHNlbGVjdGluZyBhbiBlbWFpbCBmb3IgcHJldmlld1xuICAgICAgfTtcbiAgICBcbiAgICBjYXNlICdUT0dHTEVfRU1BSUxfU0VMRUNUSU9OJzoge1xuICAgICAgY29uc3QgZW1haWxJZCA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IHN0YXRlLnNlbGVjdGVkRW1haWxJZHMuaW5jbHVkZXMoZW1haWxJZCk7XG4gICAgICBcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWxlY3RlZEVtYWlsSWRzOiBpc1NlbGVjdGVkXG4gICAgICAgICAgPyBzdGF0ZS5zZWxlY3RlZEVtYWlsSWRzLmZpbHRlcihpZCA9PiBpZCAhPT0gZW1haWxJZClcbiAgICAgICAgICA6IFsuLi5zdGF0ZS5zZWxlY3RlZEVtYWlsSWRzLCBlbWFpbElkXVxuICAgICAgfTtcbiAgICB9XG4gICAgXG4gICAgY2FzZSAnVE9HR0xFX1NFTEVDVF9BTEwnOiB7XG4gICAgICAvLyBJZiBhbGwgZW1haWxzIGFyZSBhbHJlYWR5IHNlbGVjdGVkLCBjbGVhciB0aGUgc2VsZWN0aW9uXG4gICAgICBjb25zdCBhbGxFbWFpbElkcyA9IHN0YXRlLmVtYWlscy5tYXAoZW1haWwgPT4gZW1haWwuaWQpO1xuICAgICAgY29uc3QgYWxsU2VsZWN0ZWQgPSBhbGxFbWFpbElkcy5ldmVyeShpZCA9PiBzdGF0ZS5zZWxlY3RlZEVtYWlsSWRzLmluY2x1ZGVzKGlkKSk7XG4gICAgICBcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZWxlY3RlZEVtYWlsSWRzOiBhbGxTZWxlY3RlZCA/IFtdIDogYWxsRW1haWxJZHNcbiAgICAgIH07XG4gICAgfVxuICAgIFxuICAgIGNhc2UgJ0NMRUFSX1NFTEVDVEVEX0VNQUlMUyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VsZWN0ZWRFbWFpbElkczogW10sXG4gICAgICAgIHNlbGVjdGVkRW1haWw6IG51bGxcbiAgICAgIH07XG4gICAgXG4gICAgY2FzZSAnU0VUX0xPQURJTkcnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGlzTG9hZGluZzogYWN0aW9uLnBheWxvYWRcbiAgICAgIH07XG4gICAgXG4gICAgY2FzZSAnU0VUX0xPQURJTkdfVU5SRUFEX0NPVU5UUyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgaXNMb2FkaW5nVW5yZWFkQ291bnRzOiBhY3Rpb24ucGF5bG9hZFxuICAgICAgfTtcbiAgICBcbiAgICBjYXNlICdTRVRfRVJST1InOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGVycm9yOiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZVxuICAgICAgfTtcbiAgICBcbiAgICBjYXNlICdTRVRfUEFHRSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGFnZTogYWN0aW9uLnBheWxvYWRcbiAgICAgIH07XG4gICAgXG4gICAgY2FzZSAnSU5DUkVNRU5UX1BBR0UnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhZ2U6IHN0YXRlLnBhZ2UgKyAxXG4gICAgICB9O1xuICAgIFxuICAgIGNhc2UgJ1NFVF9UT1RBTF9QQUdFUyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdG90YWxQYWdlczogYWN0aW9uLnBheWxvYWRcbiAgICAgIH07XG4gICAgXG4gICAgY2FzZSAnU0VUX1RPVEFMX0VNQUlMUyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdG90YWxFbWFpbHM6IGFjdGlvbi5wYXlsb2FkXG4gICAgICB9O1xuICAgIFxuICAgIGNhc2UgJ1NFVF9NQUlMQk9YRVMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG1haWxib3hlczogYWN0aW9uLnBheWxvYWRcbiAgICAgIH07XG4gICAgXG4gICAgY2FzZSAnVVBEQVRFX1VOUkVBRF9DT1VOVCc6IHtcbiAgICAgIGNvbnN0IHsgYWNjb3VudElkLCBmb2xkZXIsIGNvdW50IH0gPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHVucmVhZENvdW50TWFwOiB7XG4gICAgICAgICAgLi4uc3RhdGUudW5yZWFkQ291bnRNYXAsXG4gICAgICAgICAgW2FjY291bnRJZF06IHtcbiAgICAgICAgICAgIC4uLihzdGF0ZS51bnJlYWRDb3VudE1hcFthY2NvdW50SWRdIHx8IHt9KSxcbiAgICAgICAgICAgIFtmb2xkZXJdOiBjb3VudFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gICAgXG4gICAgY2FzZSAnU0VUX1VOUkVBRF9DT1VOVFMnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHVucmVhZENvdW50TWFwOiBhY3Rpb24ucGF5bG9hZFxuICAgICAgfTtcbiAgICBcbiAgICBjYXNlICdUT0dHTEVfU0hPV19GT0xERVJTJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzaG93Rm9sZGVyczogYWN0aW9uLnBheWxvYWRcbiAgICAgIH07XG4gICAgXG4gICAgY2FzZSAnTUFSS19FTUFJTF9BU19SRUFEJzoge1xuICAgICAgY29uc3QgeyBlbWFpbElkLCBpc1JlYWQsIGFjY291bnRJZCB9ID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSBlbWFpbHMgbGlzdFxuICAgICAgY29uc3QgdXBkYXRlZEVtYWlscyA9IHN0YXRlLmVtYWlscy5tYXAoZW1haWwgPT4gXG4gICAgICAgIChlbWFpbC5pZCA9PT0gZW1haWxJZCAmJiAoIWFjY291bnRJZCB8fCBlbWFpbC5hY2NvdW50SWQgPT09IGFjY291bnRJZCkpXG4gICAgICAgICAgPyB7IC4uLmVtYWlsLCBmbGFnczogeyAuLi5lbWFpbC5mbGFncywgc2VlbjogaXNSZWFkIH0gfVxuICAgICAgICAgIDogZW1haWxcbiAgICAgICk7XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSBzZWxlY3RlZCBlbWFpbCBpZiBpdCBtYXRjaGVzXG4gICAgICBjb25zdCB1cGRhdGVkU2VsZWN0ZWRFbWFpbCA9IHN0YXRlLnNlbGVjdGVkRW1haWwgJiYgXG4gICAgICAgIHN0YXRlLnNlbGVjdGVkRW1haWwuaWQgPT09IGVtYWlsSWQgJiYgXG4gICAgICAgICghYWNjb3VudElkIHx8IHN0YXRlLnNlbGVjdGVkRW1haWwuYWNjb3VudElkID09PSBhY2NvdW50SWQpXG4gICAgICAgICAgPyB7IC4uLnN0YXRlLnNlbGVjdGVkRW1haWwsIGZsYWdzOiB7IC4uLnN0YXRlLnNlbGVjdGVkRW1haWwuZmxhZ3MsIHNlZW46IGlzUmVhZCB9IH1cbiAgICAgICAgICA6IHN0YXRlLnNlbGVjdGVkRW1haWw7XG4gICAgICBcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBlbWFpbHM6IHVwZGF0ZWRFbWFpbHMsXG4gICAgICAgIHNlbGVjdGVkRW1haWw6IHVwZGF0ZWRTZWxlY3RlZEVtYWlsXG4gICAgICB9O1xuICAgIH1cbiAgICBcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59ICJdLCJuYW1lcyI6WyJpbml0aWFsU3RhdGUiLCJhY2NvdW50cyIsInNlbGVjdGVkQWNjb3VudCIsInNlbGVjdGVkRm9sZGVycyIsImN1cnJlbnRGb2xkZXIiLCJlbWFpbHMiLCJzZWxlY3RlZEVtYWlsIiwic2VsZWN0ZWRFbWFpbElkcyIsImlzTG9hZGluZyIsImlzTG9hZGluZ1VucmVhZENvdW50cyIsImVycm9yIiwicGFnZSIsInBlclBhZ2UiLCJ0b3RhbFBhZ2VzIiwidG90YWxFbWFpbHMiLCJtYWlsYm94ZXMiLCJ1bnJlYWRDb3VudE1hcCIsInNob3dGb2xkZXJzIiwibm9ybWFsaXplRm9sZGVyQW5kQWNjb3VudCIsImZvbGRlciIsImFjY291bnRJZCIsIm5vcm1hbGl6ZWRGb2xkZXIiLCJlZmZlY3RpdmVBY2NvdW50SWQiLCJpbmNsdWRlcyIsInBhcnRzIiwic3BsaXQiLCJmb2xkZXJBY2NvdW50SWQiLCJjb25zb2xlIiwibG9nIiwicHJlZml4ZWRGb2xkZXIiLCJlbWFpbFJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsInR5cGUiLCJwYXlsb2FkIiwiYWNjb3VudCIsImluYm94Rm9sZGVyIiwiaWQiLCJlbWFpbCIsInVuc29ydGVkRW1haWxzIiwibGVuZ3RoIiwic2xpY2UiLCJtYXAiLCJlIiwic3Vic3RyaW5nIiwic3ViamVjdCIsImRhdGUiLCJ0aW1lc3RhbXAiLCJEYXRlIiwiZ2V0VGltZSIsInNvcnRlZEVtYWlscyIsInNvcnQiLCJhIiwiYiIsImRhdGVBIiwiZGF0ZUIiLCJpc05hTiIsImV4aXN0aW5nSWRzIiwiU2V0IiwibmV3RW1haWxzIiwiZmlsdGVyIiwiaGFzIiwiY29tYmluZWRFbWFpbHMiLCJlbWFpbElkIiwiaXNTZWxlY3RlZCIsImFsbEVtYWlsSWRzIiwiYWxsU2VsZWN0ZWQiLCJldmVyeSIsImNvdW50IiwiaXNSZWFkIiwidXBkYXRlZEVtYWlscyIsImZsYWdzIiwic2VlbiIsInVwZGF0ZWRTZWxlY3RlZEVtYWlsIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/reducers/emailReducer.ts\n"));
/***/ }),
/***/ "(app-pages-browser)/./lib/services/prefetch-service.ts":
/*!******************************************!*\
!*** ./lib/services/prefetch-service.ts ***!
\******************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getCachedEmailsWithTimeout: () => (/* binding */ getCachedEmailsWithTimeout),\n/* harmony export */ prefetchFolderEmails: () => (/* binding */ prefetchFolderEmails),\n/* harmony export */ prefetchUserEmailData: () => (/* binding */ prefetchUserEmailData),\n/* harmony export */ refreshEmailsInBackground: () => (/* binding */ refreshEmailsInBackground)\n/* harmony export */ });\n/* harmony import */ var private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! private-next-rsc-action-client-wrapper */ \"(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-client-wrapper.js\");\n/* harmony import */ var private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_action_entry_do_not_use__ {\"40b6acbd16ee963a18ba6de32b5c63b379909103e9\":\"prefetchUserEmailData\",\"7cf3883d51675d568256e1b2498cf8fe78875b65ee\":\"refreshEmailsInBackground\",\"7cfa4fcce0a70a3d3b703a31abefda0e79d9e1097a\":\"prefetchFolderEmails\",\"7e95e703e87cb496134c69dc010f054d10451a2f57\":\"getCachedEmailsWithTimeout\"} */ \nvar getCachedEmailsWithTimeout = /*#__PURE__*/ (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.createServerReference)(\"7e95e703e87cb496134c69dc010f054d10451a2f57\", private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.callServer, void 0, private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.findSourceMapURL, \"getCachedEmailsWithTimeout\");\nvar refreshEmailsInBackground = /*#__PURE__*/ (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.createServerReference)(\"7cf3883d51675d568256e1b2498cf8fe78875b65ee\", private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.callServer, void 0, private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.findSourceMapURL, \"refreshEmailsInBackground\");\nvar prefetchUserEmailData = /*#__PURE__*/ (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.createServerReference)(\"40b6acbd16ee963a18ba6de32b5c63b379909103e9\", private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.callServer, void 0, private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.findSourceMapURL, \"prefetchUserEmailData\");\nvar prefetchFolderEmails = /*#__PURE__*/ (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.createServerReference)(\"7cfa4fcce0a70a3d3b703a31abefda0e79d9e1097a\", private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.callServer, void 0, private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_0__.findSourceMapURL, \"prefetchFolderEmails\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi9zZXJ2aWNlcy9wcmVmZXRjaC1zZXJ2aWNlLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7SUE0RHNCQSwyQ0FBQUEsNkZBQUFBLCtDQUFBQSw4RUFBQUEsVUFBQUEsb0ZBQUFBO0lBMEVBQywwQ0FBQUEsNkZBQUFBLCtDQUFBQSw4RUFBQUEsVUFBQUEsb0ZBQUFBO0lBK0NBQyxzQ0FBQUEsNkZBQUFBLCtDQUFBQSw4RUFBQUEsVUFBQUEsb0ZBQUFBO0lBb0ZBQyxxQ0FBQUEsNkZBQUFBLCtDQUFBQSw4RUFBQUEsVUFBQUEsb0ZBQUFBIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2xpYi9zZXJ2aWNlcy9wcmVmZXRjaC1zZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJztcblxuaW1wb3J0IHsgZ2V0SW1hcENvbm5lY3Rpb24sIGdldEVtYWlscywgZ2V0RW1haWxDb250ZW50IH0gZnJvbSAnLi9lbWFpbC1zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGNhY2hlRW1haWxMaXN0LFxuICBjYWNoZUVtYWlsQ29udGVudCxcbiAgY2FjaGVJbWFwU2Vzc2lvbixcbiAgZ2V0Q2FjaGVkRW1haWxMaXN0LFxuICBnZXRSZWRpc0NsaWVudCxcbiAgd2FybXVwUmVkaXNDYWNoZVxufSBmcm9tICdAL2xpYi9yZWRpcyc7XG5cbi8vIEtlZXAgdHJhY2sgb2Ygb25nb2luZyBwcmVmZXRjaCBvcGVyYXRpb25zIHRvIHByZXZlbnQgZHVwbGljYXRlc1xuY29uc3QgcHJlZmV0Y2hJblByb2dyZXNzID0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KCk7XG5jb25zdCBsYXN0UHJlZmV0Y2hUaW1lID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbmNvbnN0IFBSRUZFVENIX0NPT0xET1dOX01TID0gMzAwMDA7IC8vIDMwIHNlY29uZHMgYmV0d2VlbiBwcmVmZXRjaCBvcGVyYXRpb25zXG5cbi8vIFRyYWNrIHJlY2VudCByZWZyZXNoZXMgdG8gcHJldmVudCBpbmZpbml0ZSBsb29wc1xuY29uc3QgcmVjZW50UmVmcmVzaGVzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbmNvbnN0IENPT0xET1dOX1BFUklPRCA9IDYwMDAwOyAvLyA2MCBzZWNvbmRzIGNvb2xkb3duIGJldHdlZW4gcmVmcmVzaGVzXG5cbi8qKlxuICogQ2hlY2sgaWYgd2Ugc2hvdWxkIHByZWZldGNoIGZvciBhIHVzZXIgYmFzZWQgb24gY29vbGRvd25cbiAqL1xuZnVuY3Rpb24gc2hvdWxkUHJlZmV0Y2godXNlcklkOiBzdHJpbmcsIGtleTogc3RyaW5nID0gJ2dlbmVyYWwnKTogYm9vbGVhbiB7XG4gIGNvbnN0IHByZWZldGNoS2V5ID0gYCR7dXNlcklkfToke2tleX1gO1xuICBcbiAgLy8gQ2hlY2sgaWYgcHJlZmV0Y2ggaXMgYWxyZWFkeSBpbiBwcm9ncmVzc1xuICBpZiAocHJlZmV0Y2hJblByb2dyZXNzLmdldChwcmVmZXRjaEtleSkpIHtcbiAgICBjb25zb2xlLmxvZyhgUHJlZmV0Y2ggYWxyZWFkeSBpbiBwcm9ncmVzcyBmb3IgJHtwcmVmZXRjaEtleX1gKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgXG4gIC8vIENoZWNrIGNvb2xkb3duXG4gIGNvbnN0IGxhc3RUaW1lID0gbGFzdFByZWZldGNoVGltZS5nZXQocHJlZmV0Y2hLZXkpIHx8IDA7XG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gIFxuICBpZiAobm93IC0gbGFzdFRpbWUgPCBQUkVGRVRDSF9DT09MRE9XTl9NUykge1xuICAgIGNvbnNvbGUubG9nKGBQcmVmZXRjaCBjb29sZG93biBhY3RpdmUgZm9yICR7cHJlZmV0Y2hLZXl9LCBsYXN0IHdhcyAke01hdGgucm91bmQoKG5vdyAtIGxhc3RUaW1lKS8xMDAwKX1zIGFnb2ApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBcbiAgLy8gTWFyayBhcyBpbiBwcm9ncmVzcyBhbmQgdXBkYXRlIGxhc3QgdGltZVxuICBwcmVmZXRjaEluUHJvZ3Jlc3Muc2V0KHByZWZldGNoS2V5LCB0cnVlKTtcbiAgbGFzdFByZWZldGNoVGltZS5zZXQocHJlZmV0Y2hLZXksIG5vdyk7XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIE1hcmsgcHJlZmV0Y2ggYXMgY29tcGxldGVkXG4gKi9cbmZ1bmN0aW9uIG1hcmtQcmVmZXRjaENvbXBsZXRlZCh1c2VySWQ6IHN0cmluZywga2V5OiBzdHJpbmcgPSAnZ2VuZXJhbCcpOiB2b2lkIHtcbiAgY29uc3QgcHJlZmV0Y2hLZXkgPSBgJHt1c2VySWR9OiR7a2V5fWA7XG4gIHByZWZldGNoSW5Qcm9ncmVzcy5zZXQocHJlZmV0Y2hLZXksIGZhbHNlKTtcbn1cblxuLyoqXG4gKiBHZXQgY2FjaGVkIGVtYWlscyB3aXRoIHRpbWVvdXQgdG8gZW5zdXJlIGZhc3QgVUkgcmVzcG9uc2VcbiAqIElmIGNhY2hlIGFjY2VzcyB0YWtlcyBsb25nZXIgdGhhbiB0aW1lb3V0LCByZXR1cm4gbnVsbCB0byB1c2UgcmVndWxhciBJTUFQIGZldGNoXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDYWNoZWRFbWFpbHNXaXRoVGltZW91dChcbiAgdXNlcklkOiBzdHJpbmcsXG4gIGZvbGRlcjogc3RyaW5nLFxuICBwYWdlOiBudW1iZXIsXG4gIHBlclBhZ2U6IG51bWJlcixcbiAgdGltZW91dE1zOiBudW1iZXIgPSAxMDAsXG4gIGFjY291bnRJZD86IHN0cmluZ1xuKTogUHJvbWlzZTxhbnkgfCBudWxsPiB7XG4gIC8vIFNraXAgY2FjaGUgaWYgYWNjb3VudElkIGlzICdsb2FkaW5nLWFjY291bnQnXG4gIGlmIChhY2NvdW50SWQgPT09ICdsb2FkaW5nLWFjY291bnQnKSB7XG4gICAgY29uc29sZS5sb2coYFNraXBwaW5nIGNhY2hlIGZvciBsb2FkaW5nIGFjY291bnRgKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIENSSVRJQ0FMIEZJWDogUHJvcGVyIGZvbGRlciBhbmQgYWNjb3VudCBJRCBub3JtYWxpemF0aW9uXG4gIC8vIFRoaXMgaXMgY3JpdGljYWwgZm9yIGNvbnNpc3RlbnQgY2FjaGUga2V5c1xuICBsZXQgZWZmZWN0aXZlQWNjb3VudElkOiBzdHJpbmc7XG4gIGxldCBub3JtYWxpemVkRm9sZGVyOiBzdHJpbmc7XG5cbiAgLy8gRmlyc3QsIGhhbmRsZSB0aGUgZm9sZGVyIGZvcm1hdFxuICBpZiAoZm9sZGVyLmluY2x1ZGVzKCc6JykpIHtcbiAgICAvLyBFeHRyYWN0IHBhcnRzIGlmIGZvbGRlciBhbHJlYWR5IGhhcyBhIHByZWZpeFxuICAgIGNvbnN0IHBhcnRzID0gZm9sZGVyLnNwbGl0KCc6Jyk7XG4gICAgY29uc3QgZm9sZGVyQWNjb3VudElkID0gcGFydHNbMF07XG4gICAgbm9ybWFsaXplZEZvbGRlciA9IHBhcnRzWzFdO1xuICAgIFxuICAgIC8vIENSSVRJQ0FMIEZJWDogSWYgZXhwbGljaXQgYWNjb3VudElkIGlzIHByb3ZpZGVkLCBpdCBBTFdBWVMgdGFrZXMgcHJlY2VkZW5jZVxuICAgIC8vIFRoaXMgZW5zdXJlcyBhY2NvdW50IHN3aXRjaGluZyB3b3JrcyBjb3JyZWN0bHlcbiAgICBpZiAoYWNjb3VudElkKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW2dldENhY2hlZEVtYWlsc1dpdGhUaW1lb3V0XSBVc2luZyBwcm92aWRlZCBhY2NvdW50SWQgKCR7YWNjb3VudElkfSkgb3ZlciBmb2xkZXIgcHJlZml4ICgke2ZvbGRlckFjY291bnRJZH0pYCk7XG4gICAgICBlZmZlY3RpdmVBY2NvdW50SWQgPSBhY2NvdW50SWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVmZmVjdGl2ZUFjY291bnRJZCA9IGZvbGRlckFjY291bnRJZDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gTm8gZm9sZGVyIHByZWZpeCwgdXNlIHRoZSBmb2xkZXIgbmFtZSBhcyBpc1xuICAgIG5vcm1hbGl6ZWRGb2xkZXIgPSBmb2xkZXI7XG4gICAgZWZmZWN0aXZlQWNjb3VudElkID0gYWNjb3VudElkIHx8ICdkZWZhdWx0JztcbiAgfVxuICBcbiAgLy8gTG9nIHRoZSBub3JtYWxpemF0aW9uIGZvciBkZWJ1Z2dpbmdcbiAgY29uc29sZS5sb2coYFtnZXRDYWNoZWRFbWFpbHNXaXRoVGltZW91dF0gTm9ybWFsaXplZDogZm9sZGVyPSR7bm9ybWFsaXplZEZvbGRlcn0sIGFjY291bnRJZD0ke2VmZmVjdGl2ZUFjY291bnRJZH0gKGZyb20gJHtmb2xkZXJ9KWApO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coYENhY2hlIGFjY2VzcyB0aW1lb3V0IGZvciAke3VzZXJJZH06JHtlZmZlY3RpdmVBY2NvdW50SWR9OiR7bm9ybWFsaXplZEZvbGRlcn06JHtwYWdlfToke3BlclBhZ2V9YCk7XG4gICAgICByZXNvbHZlKG51bGwpO1xuICAgIH0sIHRpbWVvdXRNcyk7XG5cbiAgICAvLyBDUklUSUNBTCBGSVg6IFVzZSB0aGUgbm9ybWFsaXplZCBwYXJhbWV0ZXJzIGNvbnNpc3RlbnRseVxuICAgIC8vIFRoaXMgZW5zdXJlcyB3ZSdyZSBsb29raW5nIHVwIHRoZSByaWdodCBjYWNoZSBlbnRyaWVzXG4gICAgZ2V0Q2FjaGVkRW1haWxMaXN0KHVzZXJJZCwgZWZmZWN0aXZlQWNjb3VudElkLCBub3JtYWxpemVkRm9sZGVyLCBwYWdlLCBwZXJQYWdlKVxuICAgICAgLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgW2dldENhY2hlZEVtYWlsc1dpdGhUaW1lb3V0XSBDYWNoZSBoaXQgZm9yICR7dXNlcklkfToke2VmZmVjdGl2ZUFjY291bnRJZH06JHtub3JtYWxpemVkRm9sZGVyfToke3BhZ2V9OiR7cGVyUGFnZX1gKTtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYFtnZXRDYWNoZWRFbWFpbHNXaXRoVGltZW91dF0gQ2FjaGUgbWlzcyBmb3IgJHt1c2VySWR9OiR7ZWZmZWN0aXZlQWNjb3VudElkfToke25vcm1hbGl6ZWRGb2xkZXJ9OiR7cGFnZX06JHtwZXJQYWdlfWApO1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tnZXRDYWNoZWRFbWFpbHNXaXRoVGltZW91dF0gRXJyb3IgYWNjZXNzaW5nIGNhY2hlOicsIGVycik7XG4gICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICB9KTtcbiAgfSk7XG59XG5cbi8qKlxuICogUmVmcmVzaCBlbWFpbHMgaW4gYmFja2dyb3VuZCB3aXRob3V0IGJsb2NraW5nIFVJXG4gKiBUaGlzIGFsbG93cyB0aGUgVUkgdG8gc2hvdyBjYWNoZWQgZGF0YSBpbW1lZGlhdGVseSB3aGlsZSByZWZyZXNoaW5nIGluIGJhY2tncm91bmRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZnJlc2hFbWFpbHNJbkJhY2tncm91bmQoXG4gIHVzZXJJZDogc3RyaW5nLCBcbiAgZm9sZGVyOiBzdHJpbmcsXG4gIHBhZ2U6IG51bWJlcixcbiAgcGVyUGFnZTogbnVtYmVyLFxuICBhY2NvdW50SWQ/OiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICB0cnkge1xuICAgIC8vIEZpcnN0IGNoZWNrIGlmIGZvbGRlciBoYXMgdGhlIGFjY291bnRJZCBwcmVmaXhcbiAgICBjb25zb2xlLmxvZyhgW3JlZnJlc2hFbWFpbHNJbkJhY2tncm91bmRdIE5vcm1hbGl6ZWQ6IGZvbGRlcj0ke2ZvbGRlcn0sIGFjY291bnRJZD0ke2FjY291bnRJZH0gKGZyb20gJHtmb2xkZXJ9KWApO1xuICAgIFxuICAgIC8vIENyZWF0ZSBhIHVuaXF1ZSBrZXkgZm9yIHRoaXMgcmVmcmVzaCByZXF1ZXN0XG4gICAgY29uc3QgcmVmcmVzaEtleSA9IGAke3VzZXJJZH06cmVmcmVzaDoke2FjY291bnRJZCB8fCAnZGVmYXVsdCd9OiR7Zm9sZGVyfToke3BhZ2V9YDtcbiAgICBcbiAgICAvLyBDaGVjayBpZiB0aGlzIGV4YWN0IHJlZnJlc2ggd2FzIGRvbmUgcmVjZW50bHkgLSBQUkVWRU5UIElORklOSVRFIExPT1BTXG4gICAgY29uc3QgbGFzdFJlZnJlc2hlZCA9IHJlY2VudFJlZnJlc2hlcy5nZXQocmVmcmVzaEtleSk7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBcbiAgICBpZiAobGFzdFJlZnJlc2hlZCAmJiBub3cgLSBsYXN0UmVmcmVzaGVkIDwgQ09PTERPV05fUEVSSU9EKSB7XG4gICAgICBjb25zb2xlLmxvZyhgUHJlZmV0Y2ggY29vbGRvd24gYWN0aXZlIGZvciAke3JlZnJlc2hLZXl9LCBsYXN0IHdhcyAke01hdGguZmxvb3IoKG5vdyAtIGxhc3RSZWZyZXNoZWQpLzEwMDApfXMgYWdvYCk7XG4gICAgICByZXR1cm47IC8vIFNraXAgaWYgd2UgcmVmcmVzaGVkIHRoaXMgZXhhY3QgZGF0YSByZWNlbnRseVxuICAgIH1cbiAgICBcbiAgICAvLyBVcGRhdGUgdGhlIHJlZnJlc2ggdGltZXN0YW1wXG4gICAgcmVjZW50UmVmcmVzaGVzLnNldChyZWZyZXNoS2V5LCBub3cpO1xuICAgIFxuICAgIC8vIFBydW5lIG9sZCBlbnRyaWVzIGZyb20gdGhlIG1hcCAoa2VlcCBvbmx5IHJlY2VudCBvbmVzKVxuICAgIGZvciAoY29uc3QgW2tleSwgdGltZXN0YW1wXSBvZiByZWNlbnRSZWZyZXNoZXMuZW50cmllcygpKSB7XG4gICAgICBpZiAobm93IC0gdGltZXN0YW1wID4gQ09PTERPV05fUEVSSU9EKSB7XG4gICAgICAgIHJlY2VudFJlZnJlc2hlcy5kZWxldGUoa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gQ1JJVElDQUwgRklYOiBQcmV2ZW50IGFueSBiYWNrZ3JvdW5kIHJlZnJlc2ggYnkgaW1tZWRpYXRlbHkgcmV0dXJuaW5nXG4gICAgY29uc29sZS5sb2coYFtyZWZyZXNoRW1haWxzSW5CYWNrZ3JvdW5kXSBESVNBQkxFRCB0byBwcmV2ZW50IGluZmluaXRlIGxvb3BzYCk7XG4gICAgcmV0dXJuO1xuICAgIFxuICAgIC8vIFJlYWwgaW1wbGVtZW50YXRpb24gb2YgcmVmcmVzaCB3b3VsZCBiZSBoZXJlXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gcmVmcmVzaEVtYWlsc0luQmFja2dyb3VuZDonLCBlcnJvcik7XG4gIH1cbn1cblxuLyoqXG4gKiBQcmVmZXRjaCBiYXNpYyBlbWFpbCBkYXRhIGZvciBmYXN0ZXIgaW5pdGlhbCBsb2FkaW5nXG4gKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgd2hlbiBhIHVzZXIgbG9ncyBpblxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlZmV0Y2hVc2VyRW1haWxEYXRhKHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIFNraXAgaWYgYWxyZWFkeSBpbiBwcm9ncmVzcyBvciBpbiBjb29sZG93blxuICBpZiAoIXNob3VsZFByZWZldGNoKHVzZXJJZCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgXG4gIGNvbnNvbGUubG9nKGBTdGFydGluZyBlbWFpbCBwcmVmZXRjaCBmb3IgdXNlciAke3VzZXJJZH1gKTtcbiAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICB0cnkge1xuICAgIC8vIENvbm5lY3QgdG8gSU1BUCBzZXJ2ZXJcbiAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBnZXRJbWFwQ29ubmVjdGlvbih1c2VySWQpO1xuICAgIFxuICAgIC8vIDEuIFByZWZldGNoIG1haWxib3ggbGlzdFxuICAgIGNvbnN0IG1haWxib3hlcyA9IGF3YWl0IGNsaWVudC5saXN0KCk7XG4gICAgY29uc3QgbWFpbGJveFBhdGhzID0gbWFpbGJveGVzLm1hcChtYWlsYm94ID0+IG1haWxib3gucGF0aCk7XG4gICAgXG4gICAgLy8gQ2FjaGUgbWFpbGJveCBsaXN0IGluIHNlc3Npb24gZGF0YVxuICAgIGF3YWl0IGNhY2hlSW1hcFNlc3Npb24odXNlcklkLCB7XG4gICAgICBsYXN0QWN0aXZlOiBEYXRlLm5vdygpLFxuICAgICAgbWFpbGJveGVzOiBtYWlsYm94UGF0aHNcbiAgICB9KTtcbiAgICBcbiAgICBjb25zb2xlLmxvZyhgUHJlZmV0Y2hlZCAke21haWxib3hQYXRocy5sZW5ndGh9IGZvbGRlcnMgZm9yIHVzZXIgJHt1c2VySWR9YCk7XG4gICAgXG4gICAgLy8gMi4gUHJlZmV0Y2ggZW1haWwgbGlzdHMgZm9yIGltcG9ydGFudCBmb2xkZXJzXG4gICAgY29uc3QgaW1wb3J0YW50Rm9sZGVycyA9IFtcbiAgICAgICdJTkJPWCcsXG4gICAgICBtYWlsYm94UGF0aHMuZmluZChwYXRoID0+IHBhdGgudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnc2VudCcpKSB8fCAnU2VudCcsXG4gICAgICBtYWlsYm94UGF0aHMuZmluZChwYXRoID0+IHBhdGgudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZHJhZnQnKSkgfHwgJ0RyYWZ0cydcbiAgICBdLmZpbHRlcihCb29sZWFuKTtcbiAgICBcbiAgICAvLyBGZXRjaCBmaXJzdCBwYWdlIG9mIGVhY2ggaW1wb3J0YW50IGZvbGRlclxuICAgIGZvciAoY29uc3QgZm9sZGVyIG9mIGltcG9ydGFudEZvbGRlcnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBQcmVmZXRjaGluZyBlbWFpbHMgZm9yICR7Zm9sZGVyfWApO1xuICAgICAgICBjb25zdCBlbWFpbExpc3QgPSBhd2FpdCBnZXRFbWFpbHModXNlcklkLCBmb2xkZXIsIDEsIDIwKTtcbiAgICAgICAgY29uc29sZS5sb2coYFByZWZldGNoZWQgJHtlbWFpbExpc3QuZW1haWxzLmxlbmd0aH0gZW1haWxzIGZvciAke2ZvbGRlcn1gKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIHByZWZldGNoaW5nIGVtYWlscyBmb3IgZm9sZGVyICR7Zm9sZGVyfTpgLCBlcnJvcik7XG4gICAgICAgIC8vIENvbnRpbnVlIHdpdGggb3RoZXIgZm9sZGVycyBldmVuIGlmIG9uZSBmYWlsc1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyAzLiBQcmVmZXRjaCBjb250ZW50IG9mIHJlY2VudCB1bnJlYWQgZW1haWxzIGluIElOQk9YXG4gICAgdHJ5IHtcbiAgICAgIC8vIEdldCB0aGUgbGlzdCBhZ2FpbiAoaXQncyBhbHJlYWR5IGNhY2hlZCBzbyB0aGlzIHdpbGwgYmUgZmFzdClcbiAgICAgIGNvbnN0IGluYm94TGlzdCA9IGF3YWl0IGdldEVtYWlscyh1c2VySWQsICdJTkJPWCcsIDEsIDIwKTtcbiAgICAgIFxuICAgICAgLy8gUHJlZmV0Y2ggY29udGVudCBmb3IgdXAgdG8gNSByZWNlbnQgdW5yZWFkIGVtYWlsc1xuICAgICAgY29uc3QgdW5yZWFkRW1haWxzID0gaW5ib3hMaXN0LmVtYWlsc1xuICAgICAgICAuZmlsdGVyKGVtYWlsID0+ICFlbWFpbC5mbGFncy5zZWVuKVxuICAgICAgICAuc2xpY2UoMCwgNSk7XG4gICAgICBcbiAgICAgIGlmICh1bnJlYWRFbWFpbHMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgUHJlZmV0Y2hpbmcgY29udGVudCBmb3IgJHt1bnJlYWRFbWFpbHMubGVuZ3RofSB1bnJlYWQgZW1haWxzYCk7XG4gICAgICAgIFxuICAgICAgICAvLyBGZXRjaCBjb250ZW50IGluIHBhcmFsbGVsIGZvciBzcGVlZFxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoXG4gICAgICAgICAgdW5yZWFkRW1haWxzLm1hcChlbWFpbCA9PiBcbiAgICAgICAgICAgIGdldEVtYWlsQ29udGVudCh1c2VySWQsIGVtYWlsLmlkLCAnSU5CT1gnKVxuICAgICAgICAgICAgICAuY2F0Y2goZXJyID0+IGNvbnNvbGUuZXJyb3IoYEVycm9yIHByZWZldGNoaW5nIGVtYWlsICR7ZW1haWwuaWR9OmAsIGVycikpXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICBcbiAgICAgICAgY29uc29sZS5sb2coYENvbXBsZXRlZCBwcmVmZXRjaGluZyBjb250ZW50IGZvciB1bnJlYWQgZW1haWxzYCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHByZWZldGNoaW5nIHVucmVhZCBlbWFpbCBjb250ZW50OicsIGVycm9yKTtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgZHVyYXRpb24gPSAoRGF0ZS5ub3coKSAtIHN0YXJ0VGltZSkgLyAxMDAwO1xuICAgIGNvbnNvbGUubG9nKGBFbWFpbCBwcmVmZXRjaCBjb21wbGV0ZWQgZm9yIHVzZXIgJHt1c2VySWR9IGluICR7ZHVyYXRpb24udG9GaXhlZCgyKX1zYCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIGVtYWlsIHByZWZldGNoOicsIGVycm9yKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBtYXJrUHJlZmV0Y2hDb21wbGV0ZWQodXNlcklkKTtcbiAgfVxufVxuXG4vKipcbiAqIFByZWZldGNoIGEgc3BlY2lmaWMgZm9sZGVyJ3MgZW1haWxzXG4gKiBUaGlzIGNhbiBiZSB1c2VkIHdoZW4gdGhlIHVzZXIgbmF2aWdhdGVzIHRvIGEgZm9sZGVyIHRvIHByZWxvYWQgbW9yZSBwYWdlc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlZmV0Y2hGb2xkZXJFbWFpbHMoXG4gIHVzZXJJZDogc3RyaW5nLFxuICBmb2xkZXI6IHN0cmluZyxcbiAgcGFnZXM6IG51bWJlciA9IDMsXG4gIHN0YXJ0UGFnZTogbnVtYmVyID0gMSxcbiAgYWNjb3VudElkPzogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gRXh0cmFjdCBhY2NvdW50IElEIGZyb20gZm9sZGVyIG5hbWUgaWYgcHJlc2VudCBhbmQgbm9uZSB3YXMgZXhwbGljaXRseSBwcm92aWRlZFxuICBjb25zdCBmb2xkZXJBY2NvdW50SWQgPSBmb2xkZXIuaW5jbHVkZXMoJzonKSA/IGZvbGRlci5zcGxpdCgnOicpWzBdIDogYWNjb3VudElkO1xuICBcbiAgLy8gVXNlIHRoZSBtb3N0IHNwZWNpZmljIGFjY291bnQgSUQgYXZhaWxhYmxlXG4gIGNvbnN0IGVmZmVjdGl2ZUFjY291bnRJZCA9IGZvbGRlckFjY291bnRJZCB8fCBhY2NvdW50SWQgfHwgJ2RlZmF1bHQnO1xuICBcbiAgLy8gTm9ybWFsaXplIGZvbGRlciBuYW1lIGJ5IHJlbW92aW5nIGFjY291bnQgcHJlZml4IGlmIHByZXNlbnRcbiAgY29uc3Qgbm9ybWFsaXplZEZvbGRlciA9IGZvbGRlci5pbmNsdWRlcygnOicpID8gZm9sZGVyLnNwbGl0KCc6JylbMV0gOiBmb2xkZXI7XG4gIFxuICBjb25zdCBwcmVmZXRjaEtleSA9IGBmb2xkZXI6JHtub3JtYWxpemVkRm9sZGVyfToke3N0YXJ0UGFnZX06JHtlZmZlY3RpdmVBY2NvdW50SWR9YDtcbiAgXG4gIC8vIFNraXAgaWYgYWxyZWFkeSBpbiBwcm9ncmVzcyBvciBpbiBjb29sZG93blxuICBpZiAoIXNob3VsZFByZWZldGNoKHVzZXJJZCwgcHJlZmV0Y2hLZXkpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIFxuICB0cnkge1xuICAgIGNvbnNvbGUubG9nKGBQcmVmZXRjaGluZyAke3BhZ2VzfSBwYWdlcyBvZiBlbWFpbHMgZm9yIGZvbGRlciAke25vcm1hbGl6ZWRGb2xkZXJ9IHN0YXJ0aW5nIGZyb20gcGFnZSAke3N0YXJ0UGFnZX0gZm9yIGFjY291bnQgJHtlZmZlY3RpdmVBY2NvdW50SWR9YCk7XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSByYW5nZSBvZiBwYWdlcyB0byBwcmVmZXRjaFxuICAgIGNvbnN0IHBhZ2VzVG9GZXRjaCA9IEFycmF5LmZyb20oXG4gICAgICB7IGxlbmd0aDogcGFnZXMgfSwgXG4gICAgICAoXywgaSkgPT4gc3RhcnRQYWdlICsgaVxuICAgICk7XG4gICAgXG4gICAgY29uc29sZS5sb2coYFdpbGwgcHJlZmV0Y2ggcGFnZXM6ICR7cGFnZXNUb0ZldGNoLmpvaW4oJywgJyl9YCk7XG4gICAgXG4gICAgLy8gRmV0Y2ggbXVsdGlwbGUgcGFnZXMgaW4gcGFyYWxsZWxcbiAgICBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoXG4gICAgICBwYWdlc1RvRmV0Y2gubWFwKHBhZ2UgPT5cbiAgICAgICAgZ2V0RW1haWxzKHVzZXJJZCwgbm9ybWFsaXplZEZvbGRlciwgcGFnZSwgMjAsIGVmZmVjdGl2ZUFjY291bnRJZClcbiAgICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFN1Y2Nlc3NmdWxseSBwcmVmZXRjaGVkIGFuZCBjYWNoZWQgcGFnZSAke3BhZ2V9IG9mICR7bm9ybWFsaXplZEZvbGRlcn0gd2l0aCAke3Jlc3VsdC5lbWFpbHMubGVuZ3RofSBlbWFpbHMgZm9yIGFjY291bnQgJHtlZmZlY3RpdmVBY2NvdW50SWR9YCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBwcmVmZXRjaGluZyBwYWdlICR7cGFnZX0gb2YgJHtub3JtYWxpemVkRm9sZGVyfSBmb3IgYWNjb3VudCAke2VmZmVjdGl2ZUFjY291bnRJZH06YCwgZXJyKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbiAgICBcbiAgICBjb25zb2xlLmxvZyhgQ29tcGxldGVkIHByZWZldGNoaW5nICR7cGFnZXN9IHBhZ2VzIGZvciAke25vcm1hbGl6ZWRGb2xkZXJ9IGluIGFjY291bnQgJHtlZmZlY3RpdmVBY2NvdW50SWR9YCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihgRXJyb3IgZHVyaW5nIGZvbGRlciBwcmVmZXRjaDpgLCBlcnJvcik7XG4gIH0gZmluYWxseSB7XG4gICAgbWFya1ByZWZldGNoQ29tcGxldGVkKHVzZXJJZCwgcHJlZmV0Y2hLZXkpO1xuICB9XG59ICJdLCJuYW1lcyI6WyJnZXRDYWNoZWRFbWFpbHNXaXRoVGltZW91dCIsInJlZnJlc2hFbWFpbHNJbkJhY2tncm91bmQiLCJwcmVmZXRjaFVzZXJFbWFpbERhdGEiLCJwcmVmZXRjaEZvbGRlckVtYWlscyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/services/prefetch-service.ts\n"));
/***/ }),
/***/ "(app-pages-browser)/./lib/utils.ts":
/*!**********************!*\
!*** ./lib/utils.ts ***!
\**********************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cn: () => (/* binding */ cn),\n/* harmony export */ formatDate: () => (/* binding */ formatDate)\n/* harmony export */ });\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clsx */ \"(app-pages-browser)/./node_modules/clsx/dist/clsx.mjs\");\n/* harmony import */ var tailwind_merge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tailwind-merge */ \"(app-pages-browser)/./node_modules/tailwind-merge/dist/bundle-mjs.mjs\");\n\n\nfunction cn() {\n for(var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++){\n inputs[_key] = arguments[_key];\n }\n return (0,tailwind_merge__WEBPACK_IMPORTED_MODULE_1__.twMerge)((0,clsx__WEBPACK_IMPORTED_MODULE_0__.clsx)(inputs));\n}\nfunction formatDate(dateString) {\n try {\n const date = new Date(dateString);\n return new Intl.DateTimeFormat('en-US', {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric'\n }).format(date);\n } catch (e) {\n return '';\n }\n}\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi91dGlscy50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTZDO0FBQ0o7QUFFbEMsU0FBU0U7SUFBRztRQUFHQyxPQUFILHVCQUF1Qjs7SUFDeEMsT0FBT0YsdURBQU9BLENBQUNELDBDQUFJQSxDQUFDRztBQUN0QjtBQUVPLFNBQVNDLFdBQVdDLFVBQWtCO0lBQzNDLElBQUk7UUFDRixNQUFNQyxPQUFPLElBQUlDLEtBQUtGO1FBQ3RCLE9BQU8sSUFBSUcsS0FBS0MsY0FBYyxDQUFDLFNBQVM7WUFDdENDLE9BQU87WUFDUEMsS0FBSztZQUNMQyxNQUFNO1FBQ1IsR0FBR0MsTUFBTSxDQUFDUDtJQUNaLEVBQUUsVUFBTTtRQUNOLE9BQU87SUFDVDtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2xpYi91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENsYXNzVmFsdWUsIGNsc3ggfSBmcm9tIFwiY2xzeFwiO1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gXCJ0YWlsd2luZC1tZXJnZVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY24oLi4uaW5wdXRzOiBDbGFzc1ZhbHVlW10pIHtcbiAgcmV0dXJuIHR3TWVyZ2UoY2xzeChpbnB1dHMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGUoZGF0ZVN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZVN0cmluZyk7XG4gICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi1VUycsIHtcbiAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICAgIHllYXI6ICdudW1lcmljJ1xuICAgIH0pLmZvcm1hdChkYXRlKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG5cbiJdLCJuYW1lcyI6WyJjbHN4IiwidHdNZXJnZSIsImNuIiwiaW5wdXRzIiwiZm9ybWF0RGF0ZSIsImRhdGVTdHJpbmciLCJkYXRlIiwiRGF0ZSIsIkludGwiLCJEYXRlVGltZUZvcm1hdCIsIm1vbnRoIiwiZGF5IiwieWVhciIsImZvcm1hdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/utils.ts\n"));
/***/ }),
/***/ "(app-pages-browser)/./lib/utils/dom-purify-config.ts":
/*!****************************************!*\
!*** ./lib/utils/dom-purify-config.ts ***!
\****************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getDOMPurify: () => (/* binding */ getDOMPurify),\n/* harmony export */ sanitizeHtml: () => (/* binding */ sanitizeHtml)\n/* harmony export */ });\n/* harmony import */ var isomorphic_dompurify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! isomorphic-dompurify */ \"(app-pages-browser)/./node_modules/isomorphic-dompurify/browser.js\");\n/* harmony import */ var isomorphic_dompurify__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(isomorphic_dompurify__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * CENTRALIZED DOMPURIFY CONFIGURATION\n * \n * This file provides a consistent, centralized configuration for DOMPurify\n * used throughout the application. All components that need to sanitize HTML\n * should import from this file instead of configuring DOMPurify directly.\n */ \n// Reset any existing hooks to start with a clean slate\nisomorphic_dompurify__WEBPACK_IMPORTED_MODULE_0___default().removeAllHooks();\n// Configure DOMPurify with settings appropriate for email content\nisomorphic_dompurify__WEBPACK_IMPORTED_MODULE_0___default().setConfig({\n ADD_TAGS: [\n 'html',\n 'head',\n 'body',\n 'style',\n 'link',\n 'meta',\n 'title',\n 'table',\n 'caption',\n 'col',\n 'colgroup',\n 'thead',\n 'tbody',\n 'tfoot',\n 'tr',\n 'td',\n 'th',\n 'div',\n 'span',\n 'img',\n 'br',\n 'hr',\n 'section',\n 'article',\n 'header',\n 'footer',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'p',\n 'blockquote',\n 'pre',\n 'code',\n 'ul',\n 'ol',\n 'li',\n 'dl',\n 'dt',\n 'dd',\n 'a',\n 'b',\n 'i',\n 'u',\n 'em',\n 'strong',\n 'del',\n 'ins',\n 'mark',\n 'small',\n 'sub',\n 'sup',\n 'q',\n 'abbr',\n 'font' // Allow legacy font tag often found in emails\n ],\n ADD_ATTR: [\n 'style',\n 'class',\n 'id',\n 'name',\n 'href',\n 'src',\n 'alt',\n 'title',\n 'width',\n 'height',\n 'border',\n 'cellspacing',\n 'cellpadding',\n 'bgcolor',\n 'background',\n 'color',\n 'align',\n 'valign',\n 'dir',\n 'lang',\n 'target',\n 'rel',\n 'charset',\n 'media',\n 'colspan',\n 'rowspan',\n 'scope',\n 'span',\n 'size',\n 'face',\n 'hspace',\n 'vspace',\n 'data-*',\n 'start',\n 'type',\n 'value',\n 'cite',\n 'datetime',\n 'wrap',\n 'summary'\n ],\n KEEP_CONTENT: true,\n WHOLE_DOCUMENT: false,\n ALLOW_DATA_ATTR: true,\n ALLOW_UNKNOWN_PROTOCOLS: true,\n FORBID_TAGS: [\n 'script',\n 'iframe',\n 'object',\n 'embed',\n 'form',\n 'input',\n 'button',\n 'select',\n 'textarea'\n ],\n FORBID_ATTR: [\n 'onerror',\n 'onload',\n 'onclick',\n 'onmouseover',\n 'onmouseout'\n ],\n FORCE_BODY: false,\n USE_PROFILES: {\n html: true\n } // Use HTML profile for more permissive sanitization for emails\n});\n/**\n * Sanitizes HTML content with the centralized DOMPurify configuration\n * @param html HTML content to sanitize\n * @returns Sanitized HTML\n */ function sanitizeHtml(html) {\n if (!html) return '';\n try {\n // Use DOMPurify with our central configuration\n const clean = isomorphic_dompurify__WEBPACK_IMPORTED_MODULE_0___default().sanitize(html, {\n ADD_ATTR: [\n 'style',\n 'class',\n 'id',\n 'align',\n 'valign',\n 'colspan',\n 'rowspan',\n 'cellspacing',\n 'cellpadding',\n 'bgcolor'\n ]\n });\n // Fix common email rendering issues\n const fixedHtml = clean// Fix for Outlook WebVML content\n .replace(/<!--\\[if\\s+gte\\s+mso/g, '<!--[if gte mso')// Fix for broken image paths that might be relative\n .replace(/(src|background)=\"(?!http|data|https|cid)/gi, '$1=\"https://');\n return fixedHtml;\n } catch (e) {\n console.error('Error sanitizing HTML:', e);\n // Fall back to a basic sanitization approach\n return html.replace(/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi, '').replace(/on\\w+=\"[^\"]*\"/g, '').replace(/(javascript|jscript|vbscript|mocha):/gi, 'removed:');\n }\n}\n/**\n * Get the configured DOMPurify instance\n * Use this if you need to perform custom sanitization beyond the standard function\n */ function getDOMPurify() {\n return (isomorphic_dompurify__WEBPACK_IMPORTED_MODULE_0___default());\n}\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi91dGlscy9kb20tcHVyaWZ5LWNvbmZpZy50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7OztDQU1DLEdBRTRDO0FBRTdDLHVEQUF1RDtBQUN2REEsMEVBQXdCO0FBRXhCLGtFQUFrRTtBQUNsRUEscUVBQW1CLENBQUM7SUFDbEJHLFVBQVU7UUFDUjtRQUFRO1FBQVE7UUFBUTtRQUFTO1FBQVE7UUFBUTtRQUNqRDtRQUFTO1FBQVc7UUFBTztRQUFZO1FBQVM7UUFBUztRQUFTO1FBQU07UUFBTTtRQUM5RTtRQUFPO1FBQVE7UUFBTztRQUFNO1FBQU07UUFBVztRQUFXO1FBQVU7UUFDbEU7UUFBTTtRQUFNO1FBQU07UUFBTTtRQUFNO1FBQU07UUFBSztRQUFjO1FBQU87UUFDOUQ7UUFBTTtRQUFNO1FBQU07UUFBTTtRQUFNO1FBQU07UUFBSztRQUFLO1FBQUs7UUFBSztRQUN4RDtRQUFVO1FBQU87UUFBTztRQUFRO1FBQVM7UUFBTztRQUFPO1FBQUs7UUFDNUQsT0FBTyw4Q0FBOEM7S0FDdEQ7SUFDREMsVUFBVTtRQUNSO1FBQVM7UUFBUztRQUFNO1FBQVE7UUFBUTtRQUFPO1FBQU87UUFBUztRQUFTO1FBQ3hFO1FBQVU7UUFBZTtRQUFlO1FBQVc7UUFBYztRQUNqRTtRQUFTO1FBQVU7UUFBTztRQUFRO1FBQVU7UUFBTztRQUFXO1FBQzlEO1FBQVc7UUFBVztRQUFTO1FBQVE7UUFBUTtRQUFRO1FBQVU7UUFDakU7UUFDQTtRQUFTO1FBQVE7UUFBUztRQUFRO1FBQVk7UUFBUTtLQUN2RDtJQUNEQyxjQUFjO0lBQ2RDLGdCQUFnQjtJQUNoQkMsaUJBQWlCO0lBQ2pCQyx5QkFBeUI7SUFDekJDLGFBQWE7UUFBQztRQUFVO1FBQVU7UUFBVTtRQUFTO1FBQVE7UUFBUztRQUFVO1FBQVU7S0FBVztJQUNyR0MsYUFBYTtRQUFDO1FBQVc7UUFBVTtRQUFXO1FBQWU7S0FBYTtJQUMxRUMsWUFBWTtJQUNaQyxjQUFjO1FBQUVDLE1BQU07SUFBSyxFQUFFLCtEQUErRDtBQUM5RjtBQUVBOzs7O0NBSUMsR0FDTSxTQUFTQyxhQUFhRCxJQUFZO0lBQ3ZDLElBQUksQ0FBQ0EsTUFBTSxPQUFPO0lBRWxCLElBQUk7UUFDRiwrQ0FBK0M7UUFDL0MsTUFBTUUsUUFBUWYsb0VBQWtCLENBQUNhLE1BQU07WUFDckNULFVBQVU7Z0JBQUM7Z0JBQVM7Z0JBQVM7Z0JBQU07Z0JBQVM7Z0JBQVU7Z0JBQVc7Z0JBQVc7Z0JBQWU7Z0JBQWU7YUFBVTtRQUN0SDtRQUVBLG9DQUFvQztRQUNwQyxNQUFNYSxZQUFZRixLQUNoQixpQ0FBaUM7U0FDaENHLE9BQU8sQ0FBQyx5QkFBeUIsa0JBQ2xDLG9EQUFvRDtTQUNuREEsT0FBTyxDQUFDLCtDQUErQztRQUUxRCxPQUFPRDtJQUNULEVBQUUsT0FBT0UsR0FBRztRQUNWQyxRQUFRQyxLQUFLLENBQUMsMEJBQTBCRjtRQUN4Qyw2Q0FBNkM7UUFDN0MsT0FBT04sS0FDSkssT0FBTyxDQUFDLHVEQUF1RCxJQUMvREEsT0FBTyxDQUFDLGtCQUFrQixJQUMxQkEsT0FBTyxDQUFDLDBDQUEwQztJQUN2RDtBQUNGO0FBRUE7OztDQUdDLEdBQ00sU0FBU0k7SUFDZCxPQUFPdEIsNkRBQVNBO0FBQ2xCIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2xpYi91dGlscy9kb20tcHVyaWZ5LWNvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENFTlRSQUxJWkVEIERPTVBVUklGWSBDT05GSUdVUkFUSU9OXG4gKiBcbiAqIFRoaXMgZmlsZSBwcm92aWRlcyBhIGNvbnNpc3RlbnQsIGNlbnRyYWxpemVkIGNvbmZpZ3VyYXRpb24gZm9yIERPTVB1cmlmeVxuICogdXNlZCB0aHJvdWdob3V0IHRoZSBhcHBsaWNhdGlvbi4gQWxsIGNvbXBvbmVudHMgdGhhdCBuZWVkIHRvIHNhbml0aXplIEhUTUxcbiAqIHNob3VsZCBpbXBvcnQgZnJvbSB0aGlzIGZpbGUgaW5zdGVhZCBvZiBjb25maWd1cmluZyBET01QdXJpZnkgZGlyZWN0bHkuXG4gKi9cblxuaW1wb3J0IERPTVB1cmlmeSBmcm9tICdpc29tb3JwaGljLWRvbXB1cmlmeSc7XG5cbi8vIFJlc2V0IGFueSBleGlzdGluZyBob29rcyB0byBzdGFydCB3aXRoIGEgY2xlYW4gc2xhdGVcbkRPTVB1cmlmeS5yZW1vdmVBbGxIb29rcygpO1xuXG4vLyBDb25maWd1cmUgRE9NUHVyaWZ5IHdpdGggc2V0dGluZ3MgYXBwcm9wcmlhdGUgZm9yIGVtYWlsIGNvbnRlbnRcbkRPTVB1cmlmeS5zZXRDb25maWcoe1xuICBBRERfVEFHUzogW1xuICAgICdodG1sJywgJ2hlYWQnLCAnYm9keScsICdzdHlsZScsICdsaW5rJywgJ21ldGEnLCAndGl0bGUnLFxuICAgICd0YWJsZScsICdjYXB0aW9uJywgJ2NvbCcsICdjb2xncm91cCcsICd0aGVhZCcsICd0Ym9keScsICd0Zm9vdCcsICd0cicsICd0ZCcsICd0aCcsXG4gICAgJ2RpdicsICdzcGFuJywgJ2ltZycsICdicicsICdocicsICdzZWN0aW9uJywgJ2FydGljbGUnLCAnaGVhZGVyJywgJ2Zvb3RlcicsXG4gICAgJ2gxJywgJ2gyJywgJ2gzJywgJ2g0JywgJ2g1JywgJ2g2JywgJ3AnLCAnYmxvY2txdW90ZScsICdwcmUnLCAnY29kZScsXG4gICAgJ3VsJywgJ29sJywgJ2xpJywgJ2RsJywgJ2R0JywgJ2RkJywgJ2EnLCAnYicsICdpJywgJ3UnLCAnZW0nLFxuICAgICdzdHJvbmcnLCAnZGVsJywgJ2lucycsICdtYXJrJywgJ3NtYWxsJywgJ3N1YicsICdzdXAnLCAncScsICdhYmJyJyxcbiAgICAnZm9udCcgLy8gQWxsb3cgbGVnYWN5IGZvbnQgdGFnIG9mdGVuIGZvdW5kIGluIGVtYWlsc1xuICBdLFxuICBBRERfQVRUUjogW1xuICAgICdzdHlsZScsICdjbGFzcycsICdpZCcsICduYW1lJywgJ2hyZWYnLCAnc3JjJywgJ2FsdCcsICd0aXRsZScsICd3aWR0aCcsICdoZWlnaHQnLFxuICAgICdib3JkZXInLCAnY2VsbHNwYWNpbmcnLCAnY2VsbHBhZGRpbmcnLCAnYmdjb2xvcicsICdiYWNrZ3JvdW5kJywgJ2NvbG9yJyxcbiAgICAnYWxpZ24nLCAndmFsaWduJywgJ2RpcicsICdsYW5nJywgJ3RhcmdldCcsICdyZWwnLCAnY2hhcnNldCcsICdtZWRpYScsXG4gICAgJ2NvbHNwYW4nLCAncm93c3BhbicsICdzY29wZScsICdzcGFuJywgJ3NpemUnLCAnZmFjZScsICdoc3BhY2UnLCAndnNwYWNlJyxcbiAgICAnZGF0YS0qJyxcbiAgICAnc3RhcnQnLCAndHlwZScsICd2YWx1ZScsICdjaXRlJywgJ2RhdGV0aW1lJywgJ3dyYXAnLCAnc3VtbWFyeSdcbiAgXSxcbiAgS0VFUF9DT05URU5UOiB0cnVlLFxuICBXSE9MRV9ET0NVTUVOVDogZmFsc2UsXG4gIEFMTE9XX0RBVEFfQVRUUjogdHJ1ZSxcbiAgQUxMT1dfVU5LTk9XTl9QUk9UT0NPTFM6IHRydWUsIC8vIE5lZWRlZCBmb3Igc29tZSBlbWFpbCBjbGllbnRzXG4gIEZPUkJJRF9UQUdTOiBbJ3NjcmlwdCcsICdpZnJhbWUnLCAnb2JqZWN0JywgJ2VtYmVkJywgJ2Zvcm0nLCAnaW5wdXQnLCAnYnV0dG9uJywgJ3NlbGVjdCcsICd0ZXh0YXJlYSddLFxuICBGT1JCSURfQVRUUjogWydvbmVycm9yJywgJ29ubG9hZCcsICdvbmNsaWNrJywgJ29ubW91c2VvdmVyJywgJ29ubW91c2VvdXQnXSxcbiAgRk9SQ0VfQk9EWTogZmFsc2UsXG4gIFVTRV9QUk9GSUxFUzogeyBodG1sOiB0cnVlIH0gLy8gVXNlIEhUTUwgcHJvZmlsZSBmb3IgbW9yZSBwZXJtaXNzaXZlIHNhbml0aXphdGlvbiBmb3IgZW1haWxzXG59KTtcblxuLyoqXG4gKiBTYW5pdGl6ZXMgSFRNTCBjb250ZW50IHdpdGggdGhlIGNlbnRyYWxpemVkIERPTVB1cmlmeSBjb25maWd1cmF0aW9uXG4gKiBAcGFyYW0gaHRtbCBIVE1MIGNvbnRlbnQgdG8gc2FuaXRpemVcbiAqIEByZXR1cm5zIFNhbml0aXplZCBIVE1MXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZUh0bWwoaHRtbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFodG1sKSByZXR1cm4gJyc7XG4gIFxuICB0cnkge1xuICAgIC8vIFVzZSBET01QdXJpZnkgd2l0aCBvdXIgY2VudHJhbCBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgY2xlYW4gPSBET01QdXJpZnkuc2FuaXRpemUoaHRtbCwge1xuICAgICAgQUREX0FUVFI6IFsnc3R5bGUnLCAnY2xhc3MnLCAnaWQnLCAnYWxpZ24nLCAndmFsaWduJywgJ2NvbHNwYW4nLCAncm93c3BhbicsICdjZWxsc3BhY2luZycsICdjZWxscGFkZGluZycsICdiZ2NvbG9yJ11cbiAgICB9KTtcbiAgICBcbiAgICAvLyBGaXggY29tbW9uIGVtYWlsIHJlbmRlcmluZyBpc3N1ZXNcbiAgICBjb25zdCBmaXhlZEh0bWwgPSBjbGVhblxuICAgICAgLy8gRml4IGZvciBPdXRsb29rIFdlYlZNTCBjb250ZW50XG4gICAgICAucmVwbGFjZSgvPCEtLVxcW2lmXFxzK2d0ZVxccyttc28vZywgJzwhLS1baWYgZ3RlIG1zbycpXG4gICAgICAvLyBGaXggZm9yIGJyb2tlbiBpbWFnZSBwYXRocyB0aGF0IG1pZ2h0IGJlIHJlbGF0aXZlXG4gICAgICAucmVwbGFjZSgvKHNyY3xiYWNrZ3JvdW5kKT1cIig/IWh0dHB8ZGF0YXxodHRwc3xjaWQpL2dpLCAnJDE9XCJodHRwczovLycpO1xuICAgIFxuICAgIHJldHVybiBmaXhlZEh0bWw7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzYW5pdGl6aW5nIEhUTUw6JywgZSk7XG4gICAgLy8gRmFsbCBiYWNrIHRvIGEgYmFzaWMgc2FuaXRpemF0aW9uIGFwcHJvYWNoXG4gICAgcmV0dXJuIGh0bWxcbiAgICAgIC5yZXBsYWNlKC88c2NyaXB0XFxiW148XSooPzooPyE8XFwvc2NyaXB0Pik8W148XSopKjxcXC9zY3JpcHQ+L2dpLCAnJylcbiAgICAgIC5yZXBsYWNlKC9vblxcdys9XCJbXlwiXSpcIi9nLCAnJylcbiAgICAgIC5yZXBsYWNlKC8oamF2YXNjcmlwdHxqc2NyaXB0fHZic2NyaXB0fG1vY2hhKTovZ2ksICdyZW1vdmVkOicpO1xuICB9XG59XG5cbi8qKlxuICogR2V0IHRoZSBjb25maWd1cmVkIERPTVB1cmlmeSBpbnN0YW5jZVxuICogVXNlIHRoaXMgaWYgeW91IG5lZWQgdG8gcGVyZm9ybSBjdXN0b20gc2FuaXRpemF0aW9uIGJleW9uZCB0aGUgc3RhbmRhcmQgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERPTVB1cmlmeSgpOiB0eXBlb2YgRE9NUHVyaWZ5IHtcbiAgcmV0dXJuIERPTVB1cmlmeTtcbn0gIl0sIm5hbWVzIjpbIkRPTVB1cmlmeSIsInJlbW92ZUFsbEhvb2tzIiwic2V0Q29uZmlnIiwiQUREX1RBR1MiLCJBRERfQVRUUiIsIktFRVBfQ09OVEVOVCIsIldIT0xFX0RPQ1VNRU5UIiwiQUxMT1dfREFUQV9BVFRSIiwiQUxMT1dfVU5LTk9XTl9QUk9UT0NPTFMiLCJGT1JCSURfVEFHUyIsIkZPUkJJRF9BVFRSIiwiRk9SQ0VfQk9EWSIsIlVTRV9QUk9GSUxFUyIsImh0bWwiLCJzYW5pdGl6ZUh0bWwiLCJjbGVhbiIsInNhbml0aXplIiwiZml4ZWRIdG1sIiwicmVwbGFjZSIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJnZXRET01QdXJpZnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/utils/dom-purify-config.ts\n"));
/***/ }),
/***/ "(app-pages-browser)/./lib/utils/email-adapters.ts":
/*!*************************************!*\
!*** ./lib/utils/email-adapters.ts ***!
\*************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ adaptLegacyEmail: () => (/* binding */ adaptLegacyEmail),\n/* harmony export */ adaptMimeEmail: () => (/* binding */ adaptMimeEmail),\n/* harmony export */ isMimeFormat: () => (/* binding */ isMimeFormat)\n/* harmony export */ });\n/* harmony import */ var _lib_utils_email_content__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/lib/utils/email-content */ \"(app-pages-browser)/./lib/utils/email-content.ts\");\n/* harmony import */ var _lib_utils_text_direction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/lib/utils/text-direction */ \"(app-pages-browser)/./lib/utils/text-direction.ts\");\n\n\n/**\n * Adapts a legacy email format to the standardized EmailMessage format\n */ function adaptLegacyEmail(email) {\n if (!email) {\n throw new Error('Cannot adapt null or undefined email');\n }\n // Process content\n const content = normalizeContent(email);\n // Convert email addresses to string format as required by EmailMessage interface\n // Handle both array and string formats for email fields\n let from;\n let to;\n let cc;\n let bcc;\n // Handle 'from' field\n if (Array.isArray(email.from)) {\n from = formatAddressesToString(normalizeAddresses(email.from));\n } else if (typeof email.from === 'object' && 'address' in email.from) {\n from = formatAddressesToString([\n email.from\n ]);\n } else {\n from = String(email.from || '');\n }\n // Handle 'to' field\n if (Array.isArray(email.to)) {\n to = formatAddressesToString(normalizeAddresses(email.to));\n } else if (typeof email.to === 'object' && 'address' in email.to) {\n to = formatAddressesToString([\n email.to\n ]);\n } else {\n to = String(email.to || '');\n }\n // Handle optional 'cc' field\n if (email.cc) {\n if (Array.isArray(email.cc)) {\n cc = formatAddressesToString(normalizeAddresses(email.cc));\n } else if (typeof email.cc === 'object' && 'address' in email.cc) {\n cc = formatAddressesToString([\n email.cc\n ]);\n } else {\n cc = String(email.cc);\n }\n }\n // Handle optional 'bcc' field\n if (email.bcc) {\n if (Array.isArray(email.bcc)) {\n bcc = formatAddressesToString(normalizeAddresses(email.bcc));\n } else if (typeof email.bcc === 'object' && 'address' in email.bcc) {\n bcc = formatAddressesToString([\n email.bcc\n ]);\n } else {\n bcc = String(email.bcc);\n }\n }\n // Convert flags if needed\n const flags = normalizeFlags(email.flags);\n // Create standardized email message\n return {\n id: email.id || '',\n from,\n to,\n cc,\n bcc,\n subject: email.subject || '',\n content,\n date: email.date || new Date().toISOString(),\n flags,\n attachments: normalizeAttachments(email.attachments),\n _originalFormat: email // Store original for debugging\n };\n}\n/**\n * Detects if an email is in MIME format\n */ function isMimeFormat(email) {\n // Simple check for MIME format indicators\n if (!email) return false;\n // Check for typical MIME format properties\n return !!(email.mimeContent || email.headers && (email.bodyParts || email.body) || typeof email.content === 'string' && email.content.includes('MIME-Version'));\n}\n/**\n * Adapts a MIME format email to the standardized EmailMessage format\n * This is a placeholder - actual implementation would depend on the MIME library\n */ function adaptMimeEmail(mimeEmail) {\n // Placeholder implementation\n const content = {\n text: mimeEmail.text || mimeEmail.plainText || '',\n html: mimeEmail.html || undefined,\n isHtml: !!mimeEmail.html,\n direction: 'ltr'\n };\n return {\n id: mimeEmail.id || '',\n from: mimeEmail.from || '',\n to: mimeEmail.to || '',\n cc: mimeEmail.cc,\n bcc: mimeEmail.bcc,\n subject: mimeEmail.subject || '',\n content,\n date: mimeEmail.date || new Date().toISOString(),\n flags: [],\n _originalFormat: mimeEmail\n };\n}\n/**\n * Formats an array of EmailAddress objects to string format\n */ function formatAddressesToString(addresses) {\n return addresses.map((addr)=>{\n if (addr.name && addr.name !== addr.address) {\n return \"\".concat(addr.name, \" <\").concat(addr.address, \">\");\n }\n return addr.address;\n }).join(', ');\n}\n/**\n * Normalizes content from various formats into the standard EmailContent format\n */ function normalizeContent(email) {\n try {\n // Extract content based on possible formats to pass to the centralized processor\n let initialContent = {};\n if (email.content && typeof email.content === 'object') {\n initialContent = email.content;\n } else if (typeof email.content === 'string') {\n // Check if the string content is HTML\n if (email.content.trim().startsWith('<') && (email.content.includes('<html') || email.content.includes('<body') || email.content.includes('<div') || email.content.includes('<p>'))) {\n initialContent.html = email.content;\n } else {\n initialContent.text = email.content;\n }\n } else {\n // Extract from separate properties\n if (email.html) initialContent.html = email.html;\n if (email.text) initialContent.text = email.text;\n else if (email.plainText) initialContent.text = email.plainText;\n else if (email.formattedContent) initialContent.html = email.formattedContent;\n }\n // Use extractEmailContent from our centralized utilities\n const { html, text } = (0,_lib_utils_email_content__WEBPACK_IMPORTED_MODULE_0__.extractEmailContent)(initialContent);\n // Detect direction from text\n const direction = (0,_lib_utils_text_direction__WEBPACK_IMPORTED_MODULE_1__.detectTextDirection)(text || '');\n return {\n html,\n text,\n isHtml: !!html,\n direction\n };\n } catch (error) {\n console.error('Error normalizing email content:', error);\n // Return minimal valid content in case of error\n return {\n text: 'Error loading email content',\n isHtml: false,\n direction: 'ltr'\n };\n }\n}\n/**\n * Normalizes addresses to EmailAddress objects\n */ function normalizeAddresses(addresses) {\n if (!addresses) {\n return [];\n }\n // Handle string\n if (typeof addresses === 'string') {\n // Check if format is \"Name <email@example.com>\"\n const match = addresses.match(/^([^<]+)<([^>]+)>$/);\n if (match) {\n return [\n {\n name: match[1].trim(),\n address: match[2].trim()\n }\n ];\n }\n // Simple email address\n return [\n {\n name: addresses.split('@')[0] || '',\n address: addresses\n }\n ];\n }\n // Handle array\n if (Array.isArray(addresses)) {\n // If already in EmailAddress format, return as is\n if (addresses.length > 0 && typeof addresses[0] === 'object' && 'address' in addresses[0]) {\n return addresses;\n }\n // Otherwise convert string elements to EmailAddress objects\n return addresses.map((addr)=>{\n if (typeof addr === 'string') {\n // Check if format is \"Name <email@example.com>\"\n const match = addr.match(/^([^<]+)<([^>]+)>$/);\n if (match) {\n return {\n name: match[1].trim(),\n address: match[2].trim()\n };\n }\n return {\n name: addr.split('@')[0] || '',\n address: addr\n };\n }\n // If it's already an object with address property\n if (typeof addr === 'object' && addr !== null && 'address' in addr) {\n return {\n name: addr.name || addr.address.split('@')[0] || '',\n address: addr.address\n };\n }\n // Fallback for unexpected formats\n return {\n name: '',\n address: String(addr || '')\n };\n });\n }\n // Unexpected type - return empty array\n console.warn(\"Unexpected addresses format: \".concat(typeof addresses), addresses);\n return [];\n}\n/**\n * Normalizes email flags to string array format\n */ function normalizeFlags(flags) {\n if (!flags) {\n return [];\n }\n if (Array.isArray(flags)) {\n return flags;\n }\n // Convert object format to array\n return Object.entries(flags).filter((param)=>{\n let [_, value] = param;\n return value === true;\n }).map((param)=>{\n let [key] = param;\n return key;\n });\n}\n/**\n * Normalizes attachments to the expected format\n */ function normalizeAttachments(attachments) {\n if (!attachments || !Array.isArray(attachments)) {\n return [];\n }\n return attachments.map((att)=>({\n filename: att.filename || att.name || 'unknown',\n contentType: att.contentType || 'application/octet-stream',\n encoding: att.encoding,\n content: att.content\n }));\n}\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi91dGlscy9lbWFpbC1hZGFwdGVycy50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUNnRTtBQUNDO0FBRWpFOztDQUVDLEdBQ00sU0FBU0UsaUJBQWlCQyxLQUF5QjtJQUN4RCxJQUFJLENBQUNBLE9BQU87UUFDVixNQUFNLElBQUlDLE1BQU07SUFDbEI7SUFFQSxrQkFBa0I7SUFDbEIsTUFBTUMsVUFBd0JDLGlCQUFpQkg7SUFFL0MsaUZBQWlGO0lBQ2pGLHdEQUF3RDtJQUN4RCxJQUFJSTtJQUNKLElBQUlDO0lBQ0osSUFBSUM7SUFDSixJQUFJQztJQUVKLHNCQUFzQjtJQUN0QixJQUFJQyxNQUFNQyxPQUFPLENBQUNULE1BQU1JLElBQUksR0FBRztRQUM3QkEsT0FBT00sd0JBQXdCQyxtQkFBbUJYLE1BQU1JLElBQUk7SUFDOUQsT0FBTyxJQUFJLE9BQU9KLE1BQU1JLElBQUksS0FBSyxZQUFZLGFBQWFKLE1BQU1JLElBQUksRUFBRTtRQUNwRUEsT0FBT00sd0JBQXdCO1lBQUNWLE1BQU1JLElBQUk7U0FBaUI7SUFDN0QsT0FBTztRQUNMQSxPQUFPUSxPQUFPWixNQUFNSSxJQUFJLElBQUk7SUFDOUI7SUFFQSxvQkFBb0I7SUFDcEIsSUFBSUksTUFBTUMsT0FBTyxDQUFDVCxNQUFNSyxFQUFFLEdBQUc7UUFDM0JBLEtBQUtLLHdCQUF3QkMsbUJBQW1CWCxNQUFNSyxFQUFFO0lBQzFELE9BQU8sSUFBSSxPQUFPTCxNQUFNSyxFQUFFLEtBQUssWUFBWSxhQUFhTCxNQUFNSyxFQUFFLEVBQUU7UUFDaEVBLEtBQUtLLHdCQUF3QjtZQUFDVixNQUFNSyxFQUFFO1NBQWlCO0lBQ3pELE9BQU87UUFDTEEsS0FBS08sT0FBT1osTUFBTUssRUFBRSxJQUFJO0lBQzFCO0lBRUEsNkJBQTZCO0lBQzdCLElBQUlMLE1BQU1NLEVBQUUsRUFBRTtRQUNaLElBQUlFLE1BQU1DLE9BQU8sQ0FBQ1QsTUFBTU0sRUFBRSxHQUFHO1lBQzNC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a0IsR0FBRyxDQUFDcUIsQ0FBQUEsTUFBUTtZQUM3QkMsVUFBVUQsSUFBSUMsUUFBUSxJQUFJRCxJQUFJbkIsSUFBSSxJQUFJO1lBQ3RDcUIsYUFBYUYsSUFBSUUsV0FBVyxJQUFJO1lBQ2hDQyxVQUFVSCxJQUFJRyxRQUFRO1lBQ3RCNUQsU0FBU3lELElBQUl6RCxPQUFPO1FBQ3RCO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbGliL3V0aWxzL2VtYWlsLWFkYXB0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVtYWlsTWVzc2FnZSwgRW1haWxDb250ZW50LCBFbWFpbEFkZHJlc3MsIExlZ2FjeUVtYWlsTWVzc2FnZSB9IGZyb20gJ0AvdHlwZXMvZW1haWwnO1xuaW1wb3J0IHsgZXh0cmFjdEVtYWlsQ29udGVudCB9IGZyb20gJ0AvbGliL3V0aWxzL2VtYWlsLWNvbnRlbnQnO1xuaW1wb3J0IHsgZGV0ZWN0VGV4dERpcmVjdGlvbiB9IGZyb20gJ0AvbGliL3V0aWxzL3RleHQtZGlyZWN0aW9uJztcblxuLyoqXG4gKiBBZGFwdHMgYSBsZWdhY3kgZW1haWwgZm9ybWF0IHRvIHRoZSBzdGFuZGFyZGl6ZWQgRW1haWxNZXNzYWdlIGZvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRhcHRMZWdhY3lFbWFpbChlbWFpbDogTGVnYWN5RW1haWxNZXNzYWdlKTogRW1haWxNZXNzYWdlIHtcbiAgaWYgKCFlbWFpbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGFkYXB0IG51bGwgb3IgdW5kZWZpbmVkIGVtYWlsJyk7XG4gIH1cblxuICAvLyBQcm9jZXNzIGNvbnRlbnRcbiAgY29uc3QgY29udGVudDogRW1haWxDb250ZW50ID0gbm9ybWFsaXplQ29udGVudChlbWFpbCk7XG5cbiAgLy8gQ29udmVydCBlbWFpbCBhZGRyZXNzZXMgdG8gc3RyaW5nIGZvcm1hdCBhcyByZXF1aXJlZCBieSBFbWFpbE1lc3NhZ2UgaW50ZXJmYWNlXG4gIC8vIEhhbmRsZSBib3RoIGFycmF5IGFuZCBzdHJpbmcgZm9ybWF0cyBmb3IgZW1haWwgZmllbGRzXG4gIGxldCBmcm9tOiBzdHJpbmc7XG4gIGxldCB0bzogc3RyaW5nO1xuICBsZXQgY2M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGV0IGJjYzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8vIEhhbmRsZSAnZnJvbScgZmllbGRcbiAgaWYgKEFycmF5LmlzQXJyYXkoZW1haWwuZnJvbSkpIHtcbiAgICBmcm9tID0gZm9ybWF0QWRkcmVzc2VzVG9TdHJpbmcobm9ybWFsaXplQWRkcmVzc2VzKGVtYWlsLmZyb20pKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZW1haWwuZnJvbSA9PT0gJ29iamVjdCcgJiYgJ2FkZHJlc3MnIGluIGVtYWlsLmZyb20pIHtcbiAgICBmcm9tID0gZm9ybWF0QWRkcmVzc2VzVG9TdHJpbmcoW2VtYWlsLmZyb20gYXMgRW1haWxBZGRyZXNzXSk7XG4gIH0gZWxzZSB7XG4gICAgZnJvbSA9IFN0cmluZyhlbWFpbC5mcm9tIHx8ICcnKTtcbiAgfVxuXG4gIC8vIEhhbmRsZSAndG8nIGZpZWxkXG4gIGlmIChBcnJheS5pc0FycmF5KGVtYWlsLnRvKSkge1xuICAgIHRvID0gZm9ybWF0QWRkcmVzc2VzVG9TdHJpbmcobm9ybWFsaXplQWRkcmVzc2VzKGVtYWlsLnRvKSk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVtYWlsLnRvID09PSAnb2JqZWN0JyAmJiAnYWRkcmVzcycgaW4gZW1haWwudG8pIHtcbiAgICB0byA9IGZvcm1hdEFkZHJlc3Nlc1RvU3RyaW5nKFtlbWFpbC50byBhcyBFbWFpbEFkZHJlc3NdKTtcbiAgfSBlbHNlIHtcbiAgICB0byA9IFN0cmluZyhlbWFpbC50byB8fCAnJyk7XG4gIH1cblxuICAvLyBIYW5kbGUgb3B0aW9uYWwgJ2NjJyBmaWVsZFxuICBpZiAoZW1haWwuY2MpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShlbWFpbC5jYykpIHtcbiAgICAgIGNjID0gZm9ybWF0QWRkcmVzc2VzVG9TdHJpbmcobm9ybWFsaXplQWRkcmVzc2VzKGVtYWlsLmNjKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZW1haWwuY2MgPT09ICdvYmplY3QnICYmICdhZGRyZXNzJyBpbiBlbWFpbC5jYykge1xuICAgICAgY2MgPSBmb3JtYXRBZGRyZXNzZXNUb1N0cmluZyhbZW1haWwuY2MgYXMgRW1haWxBZGRyZXNzXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNjID0gU3RyaW5nKGVtYWlsLmNjKTtcbiAgICB9XG4gIH1cblxuICAvLyBIYW5kbGUgb3B0aW9uYWwgJ2JjYycgZmllbGRcbiAgaWYgKGVtYWlsLmJjYykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGVtYWlsLmJjYykpIHtcbiAgICAgIGJjYyA9IGZvcm1hdEFkZHJlc3Nlc1RvU3RyaW5nKG5vcm1hbGl6ZUFkZHJlc3NlcyhlbWFpbC5iY2MpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBlbWFpbC5iY2MgPT09ICdvYmplY3QnICYmICdhZGRyZXNzJyBpbiBlbWFpbC5iY2MpIHtcbiAgICAgIGJjYyA9IGZvcm1hdEFkZHJlc3Nlc1RvU3RyaW5nKFtlbWFpbC5iY2MgYXMgRW1haWxBZGRyZXNzXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJjYyA9IFN0cmluZyhlbWFpbC5iY2MpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbnZlcnQgZmxhZ3MgaWYgbmVlZGVkXG4gIGNvbnN0IGZsYWdzOiBzdHJpbmdbXSA9IG5vcm1hbGl6ZUZsYWdzKGVtYWlsLmZsYWdzKTtcblxuICAvLyBDcmVhdGUgc3RhbmRhcmRpemVkIGVtYWlsIG1lc3NhZ2VcbiAgcmV0dXJuIHtcbiAgICBpZDogZW1haWwuaWQgfHwgJycsXG4gICAgZnJvbSxcbiAgICB0byxcbiAgICBjYyxcbiAgICBiY2MsXG4gICAgc3ViamVjdDogZW1haWwuc3ViamVjdCB8fCAnJyxcbiAgICBjb250ZW50LFxuICAgIGRhdGU6IGVtYWlsLmRhdGUgfHwgbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIGZsYWdzLFxuICAgIGF0dGFjaG1lbnRzOiBub3JtYWxpemVBdHRhY2htZW50cyhlbWFpbC5hdHRhY2htZW50cyksXG4gICAgX29yaWdpbmFsRm9ybWF0OiBlbWFpbCAvLyBTdG9yZSBvcmlnaW5hbCBmb3IgZGVidWdnaW5nXG4gIH07XG59XG5cbi8qKlxuICogRGV0ZWN0cyBpZiBhbiBlbWFpbCBpcyBpbiBNSU1FIGZvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNNaW1lRm9ybWF0KGVtYWlsOiBhbnkpOiBib29sZWFuIHtcbiAgLy8gU2ltcGxlIGNoZWNrIGZvciBNSU1FIGZvcm1hdCBpbmRpY2F0b3JzXG4gIGlmICghZW1haWwpIHJldHVybiBmYWxzZTtcbiAgXG4gIC8vIENoZWNrIGZvciB0eXBpY2FsIE1JTUUgZm9ybWF0IHByb3BlcnRpZXNcbiAgcmV0dXJuICEhKFxuICAgIGVtYWlsLm1pbWVDb250ZW50IHx8IFxuICAgIChlbWFpbC5oZWFkZXJzICYmIChlbWFpbC5ib2R5UGFydHMgfHwgZW1haWwuYm9keSkpIHx8XG4gICAgKHR5cGVvZiBlbWFpbC5jb250ZW50ID09PSAnc3RyaW5nJyAmJiBlbWFpbC5jb250ZW50LmluY2x1ZGVzKCdNSU1FLVZlcnNpb24nKSlcbiAgKTtcbn1cblxuLyoqXG4gKiBBZGFwdHMgYSBNSU1FIGZvcm1hdCBlbWFpbCB0byB0aGUgc3RhbmRhcmRpemVkIEVtYWlsTWVzc2FnZSBmb3JtYXRcbiAqIFRoaXMgaXMgYSBwbGFjZWhvbGRlciAtIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiB3b3VsZCBkZXBlbmQgb24gdGhlIE1JTUUgbGlicmFyeVxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRhcHRNaW1lRW1haWwobWltZUVtYWlsOiBhbnkpOiBFbWFpbE1lc3NhZ2Uge1xuICAvLyBQbGFjZWhvbGRlciBpbXBsZW1lbnRhdGlvblxuICBjb25zdCBjb250ZW50OiBFbWFpbENvbnRlbnQgPSB7XG4gICAgdGV4dDogbWltZUVtYWlsLnRleHQgfHwgbWltZUVtYWlsLnBsYWluVGV4dCB8fCAnJyxcbiAgICBodG1sOiBtaW1lRW1haWwuaHRtbCB8fCB1bmRlZmluZWQsXG4gICAgaXNIdG1sOiAhIW1pbWVFbWFpbC5odG1sLFxuICAgIGRpcmVjdGlvbjogJ2x0cidcbiAgfTtcbiAgXG4gIHJldHVybiB7XG4gICAgaWQ6IG1pbWVFbWFpbC5pZCB8fCAnJyxcbiAgICBmcm9tOiBtaW1lRW1haWwuZnJvbSB8fCAnJyxcbiAgICB0bzogbWltZUVtYWlsLnRvIHx8ICcnLFxuICAgIGNjOiBtaW1lRW1haWwuY2MsXG4gICAgYmNjOiBtaW1lRW1haWwuYmNjLFxuICAgIHN1YmplY3Q6IG1pbWVFbWFpbC5zdWJqZWN0IHx8ICcnLFxuICAgIGNvbnRlbnQsXG4gICAgZGF0ZTogbWltZUVtYWlsLmRhdGUgfHwgbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIGZsYWdzOiBbXSxcbiAgICBfb3JpZ2luYWxGb3JtYXQ6IG1pbWVFbWFpbFxuICB9O1xufVxuXG4vKipcbiAqIEZvcm1hdHMgYW4gYXJyYXkgb2YgRW1haWxBZGRyZXNzIG9iamVjdHMgdG8gc3RyaW5nIGZvcm1hdFxuICovXG5mdW5jdGlvbiBmb3JtYXRBZGRyZXNzZXNUb1N0cmluZyhhZGRyZXNzZXM6IEVtYWlsQWRkcmVzc1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGFkZHJlc3Nlcy5tYXAoYWRkciA9PiB7XG4gICAgaWYgKGFkZHIubmFtZSAmJiBhZGRyLm5hbWUgIT09IGFkZHIuYWRkcmVzcykge1xuICAgICAgcmV0dXJuIGAke2FkZHIubmFtZX0gPCR7YWRkci5hZGRyZXNzfT5gO1xuICAgIH1cbiAgICByZXR1cm4gYWRkci5hZGRyZXNzO1xuICB9KS5qb2luKCcsICcpO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgY29udGVudCBmcm9tIHZhcmlvdXMgZm9ybWF0cyBpbnRvIHRoZSBzdGFuZGFyZCBFbWFpbENvbnRlbnQgZm9ybWF0XG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUNvbnRlbnQoZW1haWw6IExlZ2FjeUVtYWlsTWVzc2FnZSk6IEVtYWlsQ29udGVudCB7XG4gIHRyeSB7XG4gICAgLy8gRXh0cmFjdCBjb250ZW50IGJhc2VkIG9uIHBvc3NpYmxlIGZvcm1hdHMgdG8gcGFzcyB0byB0aGUgY2VudHJhbGl6ZWQgcHJvY2Vzc29yXG4gICAgbGV0IGluaXRpYWxDb250ZW50OiBhbnkgPSB7fTtcbiAgICBcbiAgICBpZiAoZW1haWwuY29udGVudCAmJiB0eXBlb2YgZW1haWwuY29udGVudCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGluaXRpYWxDb250ZW50ID0gZW1haWwuY29udGVudDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBlbWFpbC5jb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gQ2hlY2sgaWYgdGhlIHN0cmluZyBjb250ZW50IGlzIEhUTUxcbiAgICAgIGlmIChlbWFpbC5jb250ZW50LnRyaW0oKS5zdGFydHNXaXRoKCc8JykgJiYgXG4gICAgICAgICAgKGVtYWlsLmNvbnRlbnQuaW5jbHVkZXMoJzxodG1sJykgfHwgXG4gICAgICAgICAgIGVtYWlsLmNvbnRlbnQuaW5jbHVkZXMoJzxib2R5JykgfHwgXG4gICAgICAgICAgIGVtYWlsLmNvbnRlbnQuaW5jbHVkZXMoJzxkaXYnKSB8fCBcbiAgICAgICAgICAgZW1haWwuY29udGVudC5pbmNsdWRlcygnPHA+JykpKSB7XG4gICAgICAgIGluaXRpYWxDb250ZW50Lmh0bWwgPSBlbWFpbC5jb250ZW50O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5pdGlhbENvbnRlbnQudGV4dCA9IGVtYWlsLmNvbnRlbnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEV4dHJhY3QgZnJvbSBzZXBhcmF0ZSBwcm9wZXJ0aWVzXG4gICAgICBpZiAoZW1haWwuaHRtbCkgaW5pdGlhbENvbnRlbnQuaHRtbCA9IGVtYWlsLmh0bWw7XG4gICAgICBpZiAoZW1haWwudGV4dCkgaW5pdGlhbENvbnRlbnQudGV4dCA9IGVtYWlsLnRleHQ7XG4gICAgICBlbHNlIGlmIChlbWFpbC5wbGFpblRleHQpIGluaXRpYWxDb250ZW50LnRleHQgPSBlbWFpbC5wbGFpblRleHQ7XG4gICAgICBlbHNlIGlmIChlbWFpbC5mb3JtYXR0ZWRDb250ZW50KSBpbml0aWFsQ29udGVudC5odG1sID0gZW1haWwuZm9ybWF0dGVkQ29udGVudDtcbiAgICB9XG4gICAgXG4gICAgLy8gVXNlIGV4dHJhY3RFbWFpbENvbnRlbnQgZnJvbSBvdXIgY2VudHJhbGl6ZWQgdXRpbGl0aWVzXG4gICAgY29uc3QgeyBodG1sLCB0ZXh0IH0gPSBleHRyYWN0RW1haWxDb250ZW50KGluaXRpYWxDb250ZW50KTtcbiAgICBcbiAgICAvLyBEZXRlY3QgZGlyZWN0aW9uIGZyb20gdGV4dFxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IGRldGVjdFRleHREaXJlY3Rpb24odGV4dCB8fCAnJyk7XG4gICAgXG4gICAgcmV0dXJuIHtcbiAgICAgIGh0bWwsXG4gICAgICB0ZXh0LFxuICAgICAgaXNIdG1sOiAhIWh0bWwsXG4gICAgICBkaXJlY3Rpb25cbiAgICB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIG5vcm1hbGl6aW5nIGVtYWlsIGNvbnRlbnQ6JywgZXJyb3IpO1xuICAgIFxuICAgIC8vIFJldHVybiBtaW5pbWFsIHZhbGlkIGNvbnRlbnQgaW4gY2FzZSBvZiBlcnJvclxuICAgIHJldHVybiB7XG4gICAgICB0ZXh0OiAnRXJyb3IgbG9hZGluZyBlbWFpbCBjb250ZW50JyxcbiAgICAgIGlzSHRtbDogZmFsc2UsXG4gICAgICBkaXJlY3Rpb246ICdsdHInXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYWRkcmVzc2VzIHRvIEVtYWlsQWRkcmVzcyBvYmplY3RzXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUFkZHJlc3NlcyhhZGRyZXNzZXM6IHN0cmluZyB8IEVtYWlsQWRkcmVzc1tdIHwgdW5kZWZpbmVkKTogRW1haWxBZGRyZXNzW10ge1xuICBpZiAoIWFkZHJlc3Nlcykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8vIEhhbmRsZSBzdHJpbmdcbiAgaWYgKHR5cGVvZiBhZGRyZXNzZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gQ2hlY2sgaWYgZm9ybWF0IGlzIFwiTmFtZSA8ZW1haWxAZXhhbXBsZS5jb20+XCJcbiAgICBjb25zdCBtYXRjaCA9IGFkZHJlc3Nlcy5tYXRjaCgvXihbXjxdKyk8KFtePl0rKT4kLyk7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICByZXR1cm4gW3tcbiAgICAgICAgbmFtZTogbWF0Y2hbMV0udHJpbSgpLFxuICAgICAgICBhZGRyZXNzOiBtYXRjaFsyXS50cmltKClcbiAgICAgIH1dO1xuICAgIH1cbiAgICBcbiAgICAvLyBTaW1wbGUgZW1haWwgYWRkcmVzc1xuICAgIHJldHVybiBbe1xuICAgICAgbmFtZTogYWRkcmVzc2VzLnNwbGl0KCdAJylbMF0gfHwgJycsXG4gICAgICBhZGRyZXNzOiBhZGRyZXNzZXNcbiAgICB9XTtcbiAgfVxuXG4gIC8vIEhhbmRsZSBhcnJheVxuICBpZiAoQXJyYXkuaXNBcnJheShhZGRyZXNzZXMpKSB7XG4gICAgLy8gSWYgYWxyZWFkeSBpbiBFbWFpbEFkZHJlc3MgZm9ybWF0LCByZXR1cm4gYXMgaXNcbiAgICBpZiAoYWRkcmVzc2VzLmxlbmd0aCA+IDAgJiYgdHlwZW9mIGFkZHJlc3Nlc1swXSA9PT0gJ29iamVjdCcgJiYgJ2FkZHJlc3MnIGluIGFkZHJlc3Nlc1swXSkge1xuICAgICAgcmV0dXJuIGFkZHJlc3NlcyBhcyBFbWFpbEFkZHJlc3NbXTtcbiAgICB9XG4gICAgXG4gICAgLy8gT3RoZXJ3aXNlIGNvbnZlcnQgc3RyaW5nIGVsZW1lbnRzIHRvIEVtYWlsQWRkcmVzcyBvYmplY3RzXG4gICAgcmV0dXJuIGFkZHJlc3Nlcy5tYXAoKGFkZHI6IGFueSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBhZGRyID09PSAnc3RyaW5nJykge1xuICAgICAgICAvLyBDaGVjayBpZiBmb3JtYXQgaXMgXCJOYW1lIDxlbWFpbEBleGFtcGxlLmNvbT5cIlxuICAgICAgICBjb25zdCBtYXRjaCA9IGFkZHIubWF0Y2goL14oW148XSspPChbXj5dKyk+JC8pO1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogbWF0Y2hbMV0udHJpbSgpLFxuICAgICAgICAgICAgYWRkcmVzczogbWF0Y2hbMl0udHJpbSgpXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuYW1lOiBhZGRyLnNwbGl0KCdAJylbMF0gfHwgJycsXG4gICAgICAgICAgYWRkcmVzczogYWRkclxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBJZiBpdCdzIGFscmVhZHkgYW4gb2JqZWN0IHdpdGggYWRkcmVzcyBwcm9wZXJ0eVxuICAgICAgaWYgKHR5cGVvZiBhZGRyID09PSAnb2JqZWN0JyAmJiBhZGRyICE9PSBudWxsICYmICdhZGRyZXNzJyBpbiBhZGRyKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZTogYWRkci5uYW1lIHx8IGFkZHIuYWRkcmVzcy5zcGxpdCgnQCcpWzBdIHx8ICcnLFxuICAgICAgICAgIGFkZHJlc3M6IGFkZHIuYWRkcmVzc1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBGYWxsYmFjayBmb3IgdW5leHBlY3RlZCBmb3JtYXRzXG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgYWRkcmVzczogU3RyaW5nKGFkZHIgfHwgJycpXG4gICAgICB9O1xuICAgIH0pO1xuICB9IFxuXG4gIC8vIFVuZXhwZWN0ZWQgdHlwZSAtIHJldHVybiBlbXB0eSBhcnJheVxuICBjb25zb2xlLndhcm4oYFVuZXhwZWN0ZWQgYWRkcmVzc2VzIGZvcm1hdDogJHt0eXBlb2YgYWRkcmVzc2VzfWAsIGFkZHJlc3Nlcyk7XG4gIHJldHVybiBbXTtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGVtYWlsIGZsYWdzIHRvIHN0cmluZyBhcnJheSBmb3JtYXRcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplRmxhZ3MoZmxhZ3M6IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gfCB1bmRlZmluZWQpOiBzdHJpbmdbXSB7XG4gIGlmICghZmxhZ3MpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgXG4gIGlmIChBcnJheS5pc0FycmF5KGZsYWdzKSkge1xuICAgIHJldHVybiBmbGFncztcbiAgfVxuICBcbiAgLy8gQ29udmVydCBvYmplY3QgZm9ybWF0IHRvIGFycmF5XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhmbGFncylcbiAgICAuZmlsdGVyKChbXywgdmFsdWVdKSA9PiB2YWx1ZSA9PT0gdHJ1ZSlcbiAgICAubWFwKChba2V5XSkgPT4ga2V5KTtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGF0dGFjaG1lbnRzIHRvIHRoZSBleHBlY3RlZCBmb3JtYXRcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplQXR0YWNobWVudHMoYXR0YWNobWVudHM6IGFueVtdIHwgdW5kZWZpbmVkKTogQXJyYXk8e1xuICBmaWxlbmFtZTogc3RyaW5nO1xuICBjb250ZW50VHlwZTogc3RyaW5nO1xuICBlbmNvZGluZz86IHN0cmluZztcbiAgY29udGVudD86IHN0cmluZztcbn0+IHtcbiAgaWYgKCFhdHRhY2htZW50cyB8fCAhQXJyYXkuaXNBcnJheShhdHRhY2htZW50cykpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgXG4gIHJldHVybiBhdHRhY2htZW50cy5tYXAoYXR0ID0+ICh7XG4gICAgZmlsZW5hbWU6IGF0dC5maWxlbmFtZSB8fCBhdHQubmFtZSB8fCAndW5rbm93bicsXG4gICAgY29udGVudFR5cGU6IGF0dC5jb250ZW50VHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyxcbiAgICBlbmNvZGluZzogYXR0LmVuY29kaW5nLFxuICAgIGNvbnRlbnQ6IGF0dC5jb250ZW50XG4gIH0pKTtcbn0gIl0sIm5hbWVzIjpbImV4dHJhY3RFbWFpbENvbnRlbnQiLCJkZXRlY3RUZXh0RGlyZWN0aW9uIiwiYWRhcHRMZWdhY3lFbWFpbCIsImVtYWlsIiwiRXJyb3IiLCJjb250ZW50Iiwibm9ybWFsaXplQ29udGVudCIsImZyb20iLCJ0byIsImNjIiwiYmNjIiwiQXJyYXkiLCJpc0FycmF5IiwiZm9ybWF0QWRkcmVzc2VzVG9TdHJpbmciLCJub3JtYWxpemVBZGRyZXNzZXMiLCJTdHJpbmciLCJmbGFncyIsIm5vcm1hbGl6ZUZsYWdzIiwiaWQiLCJzdWJqZWN0IiwiZGF0ZSIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsImF0dGFjaG1lbnRzIiwibm9ybWFsaXplQXR0YWNobWVudHMiLCJfb3JpZ2luYWxGb3JtYXQiLCJpc01pbWVGb3JtYXQiLCJtaW1lQ29udGVudCIsImhlYWRlcnMiLCJib2R5UGFydHMiLCJib2R5IiwiaW5jbHVkZXMiLCJhZGFwdE1pbWVFbWFpbCIsIm1pbWVFbWFpbCIsInRleHQiLCJwbGFpblRleHQiLCJodG1sIiwidW5kZWZpbmVkIiwiaXNIdG1sIiwiZGlyZWN0aW9uIiwiYWRkcmVzc2VzIiwibWFwIiwiYWRkciIsIm5hbWUiLCJhZGRyZXNzIiwiam9pbiIsImluaXRpYWxDb250ZW50IiwidHJpbSIsInN0YXJ0c1dpdGgiLCJmb3JtYXR0ZWRDb250ZW50IiwiZXJyb3IiLCJjb25zb2xlIiwibWF0Y2giLCJzcGxpdCIsImxlbmd0aCIsIndhcm4iLCJPYmplY3QiLCJlbnRyaWVzIiwiZmlsdGVyIiwiXyIsInZhbHVlIiwia2V5IiwiYXR0IiwiZmlsZW5hbWUiLCJjb250ZW50VHlwZSIsImVuY29kaW5nIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/utils/email-adapters.ts\n"));
/***/ }),
/***/ "(app-pages-browser)/./lib/utils/email-content.ts":
/*!************************************!*\
!*** ./lib/utils/email-content.ts ***!
\************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ extractEmailContent: () => (/* binding */ extractEmailContent),\n/* harmony export */ extractTextFromHtml: () => (/* binding */ extractTextFromHtml),\n/* harmony export */ formatEmailContent: () => (/* binding */ formatEmailContent),\n/* harmony export */ formatPlainTextToHtml: () => (/* binding */ formatPlainTextToHtml),\n/* harmony export */ isHtmlContent: () => (/* binding */ isHtmlContent),\n/* harmony export */ processHtmlContent: () => (/* binding */ processHtmlContent)\n/* harmony export */ });\n/* harmony import */ var _dom_purify_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom-purify-config */ \"(app-pages-browser)/./lib/utils/dom-purify-config.ts\");\n/* harmony import */ var _text_direction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./text-direction */ \"(app-pages-browser)/./lib/utils/text-direction.ts\");\n/**\n * Centralized Email Content Utilities\n * \n * This file contains all core functions for email content processing:\n * - Content extraction\n * - HTML sanitization\n * - Text direction handling\n * - URL fixing\n * \n * Other modules should import from this file rather than implementing their own versions.\n */ \n\n/**\n * Extract content from various possible email formats\n * Centralized implementation to reduce duplication across the codebase\n */ function extractEmailContent(email) {\n // Default empty values\n let textContent = '';\n let htmlContent = '';\n // Early exit if no email\n if (!email) {\n console.log('extractEmailContent: No email provided');\n return {\n text: '',\n html: ''\n };\n }\n try {\n // Extract based on common formats\n if (email.content && typeof email.content === 'object') {\n // Standard format with content object\n textContent = email.content.text || '';\n htmlContent = email.content.html || '';\n // Handle complex email formats where content might be nested\n if (!textContent && !htmlContent) {\n // Try to find content in deeper nested structure\n if (email.content.body) {\n if (typeof email.content.body === 'string') {\n // Determine if body is HTML or text\n if (isHtmlContent(email.content.body)) {\n htmlContent = email.content.body;\n } else {\n textContent = email.content.body;\n }\n } else if (typeof email.content.body === 'object' && email.content.body) {\n // Some email formats nest content inside body\n htmlContent = email.content.body.html || '';\n textContent = email.content.body.text || '';\n }\n }\n // Check for data property which some email services use\n if (!textContent && !htmlContent && email.content.data) {\n if (typeof email.content.data === 'string') {\n // Check if data looks like HTML\n if (isHtmlContent(email.content.data)) {\n htmlContent = email.content.data;\n } else {\n textContent = email.content.data;\n }\n }\n }\n }\n } else if (typeof email.content === 'string') {\n // Check if content is likely HTML\n if (isHtmlContent(email.content)) {\n htmlContent = email.content;\n } else {\n textContent = email.content;\n }\n } else {\n // Check other common properties\n htmlContent = email.html || '';\n textContent = email.text || '';\n // If still no content, check for less common properties\n if (!htmlContent && !textContent) {\n var _email_body, _email_body1;\n // Try additional properties that some email clients use\n htmlContent = ((_email_body = email.body) === null || _email_body === void 0 ? void 0 : _email_body.html) || email.bodyHtml || email.htmlBody || '';\n textContent = ((_email_body1 = email.body) === null || _email_body1 === void 0 ? void 0 : _email_body1.text) || email.bodyText || email.plainText || '';\n }\n }\n } catch (error) {\n console.error('Error extracting email content:', error);\n }\n // Ensure we always have at least some text content\n if (!textContent && htmlContent) {\n textContent = extractTextFromHtml(htmlContent);\n }\n // Log extraction results\n console.log('Extracted email content:', {\n hasHtml: !!htmlContent,\n htmlLength: (htmlContent === null || htmlContent === void 0 ? void 0 : htmlContent.length) || 0,\n hasText: !!textContent,\n textLength: (textContent === null || textContent === void 0 ? void 0 : textContent.length) || 0\n });\n return {\n text: textContent,\n html: htmlContent\n };\n}\n/**\n * Extract plain text from HTML content\n */ function extractTextFromHtml(html) {\n if (!html) return '';\n try {\n // Use DOM API if available\n if ( true && typeof document !== 'undefined') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = html;\n return tempDiv.textContent || tempDiv.innerText || '';\n } else {\n // Simple regex fallback for non-browser environments\n return html.replace(/<[^>]*>/g, ' ').replace(/&nbsp;/g, ' ').replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&amp;/g, '&').replace(/\\s+/g, ' ').trim();\n }\n } catch (e) {\n console.error('Error extracting text from HTML:', e);\n // Fallback to basic strip\n return html.replace(/<[^>]*>/g, ' ').trim();\n }\n}\n/**\n * Check if a string is likely HTML content\n */ function isHtmlContent(content) {\n if (!content) return false;\n return content.trim().startsWith('<') && (content.includes('<html') || content.includes('<body') || content.includes('<div') || content.includes('<p>') || content.includes('<br>'));\n}\n/**\n * Format and standardize email content for display following email industry standards.\n * This is the main entry point for rendering email content.\n */ function formatEmailContent(email) {\n if (!email) {\n console.log('formatEmailContent: No email provided');\n return '';\n }\n try {\n // Extract content from email\n const { text, html } = extractEmailContent(email);\n console.log('formatEmailContent processing:', {\n hasHtml: !!html,\n htmlLength: (html === null || html === void 0 ? void 0 : html.length) || 0,\n hasText: !!text,\n textLength: (text === null || text === void 0 ? void 0 : text.length) || 0,\n emailType: typeof email === 'string' ? 'string' : 'object'\n });\n // If we have HTML content, sanitize and standardize it\n if (html) {\n // Process HTML content\n let processedHtml = processHtmlContent(html, text);\n console.log('HTML content processed:', {\n processedLength: (processedHtml === null || processedHtml === void 0 ? void 0 : processedHtml.length) || 0,\n isEmpty: !processedHtml || processedHtml.trim().length === 0\n });\n // Apply styling\n return '<div class=\"email-content\" style=\"font-family: -apple-system, BlinkMacSystemFont, \\'Segoe UI\\', Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; color: #333; max-width: 100%; overflow-x: auto; overflow-wrap: break-word; word-wrap: break-word;\" dir=\"'.concat((0,_text_direction__WEBPACK_IMPORTED_MODULE_1__.detectTextDirection)(text), '\">').concat(processedHtml, \"</div>\");\n } else if (text) {\n console.log('Using plain text formatting');\n return formatPlainTextToHtml(text);\n }\n // Default case: empty or unrecognized content\n return '<div class=\"email-content-empty\" style=\"padding: 20px; text-align: center; color: #666;\">No content available</div>';\n } catch (error) {\n console.error('formatEmailContent: Error formatting email content:', error);\n return '<div class=\"email-content-error\" style=\"padding: 15px; color: #721c24; background-color: #f8d7da; border: 1px solid #f5c6cb; border-radius: 4px;\"><p>Error displaying email content</p><p style=\"font-size: 12px; margin-top: 10px;\">'.concat(error instanceof Error ? error.message : 'Unknown error', \"</p></div>\");\n }\n}\n/**\n * Process HTML content to fix common email rendering issues\n */ function processHtmlContent(htmlContent, textContent) {\n if (!htmlContent) return '';\n try {\n console.log('processHtmlContent input:', {\n length: htmlContent.length,\n startsWithHtml: htmlContent.trim().startsWith('<html'),\n startsWithDiv: htmlContent.trim().startsWith('<div'),\n hasBody: htmlContent.includes('<body'),\n containsForwardedMessage: htmlContent.includes('---------- Forwarded message ----------'),\n containsQuoteHeader: htmlContent.includes('wrote:'),\n hasBlockquote: htmlContent.includes('<blockquote'),\n hasTable: htmlContent.includes('<table')\n });\n // Check for browser environment (DOMParser is browser-only)\n const hasHtmlTag = htmlContent.includes('<html');\n const hasBodyTag = htmlContent.includes('<body');\n // Preserve original HTML for debugging\n let originalHtml = htmlContent;\n // Extract body content if we have a complete HTML document and in browser environment\n if (hasHtmlTag && hasBodyTag && \"object\" !== 'undefined' && typeof DOMParser !== 'undefined') {\n try {\n // Create a DOM parser to extract just the body content\n const parser = new DOMParser();\n const doc = parser.parseFromString(htmlContent, 'text/html');\n const bodyContent = doc.body.innerHTML;\n if (bodyContent) {\n console.log('Extracted body content from HTML document, length:', bodyContent.length);\n htmlContent = bodyContent;\n }\n } catch (error) {\n console.error('Error extracting body content:', error);\n }\n }\n // Use the centralized sanitizeHtml function\n let sanitizedContent = (0,_dom_purify_config__WEBPACK_IMPORTED_MODULE_0__.sanitizeHtml)(htmlContent);\n console.log('After sanitizeHtml:', {\n originalLength: originalHtml.length,\n sanitizedLength: sanitizedContent.length,\n difference: originalHtml.length - sanitizedContent.length,\n percentRemoved: ((originalHtml.length - sanitizedContent.length) / originalHtml.length * 100).toFixed(2) + '%',\n containsForwardedMessage: sanitizedContent.includes('---------- Forwarded message ----------'),\n hasTable: sanitizedContent.includes('<table'),\n hasBlockquote: sanitizedContent.includes('<blockquote')\n });\n // Fix URL encoding issues and clean up content\n try {\n if ( true && typeof document !== 'undefined') {\n // Temporary element to manipulate the HTML\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = sanitizedContent;\n // Fix all links that might have been double-encoded\n const links = tempDiv.querySelectorAll('a');\n links.forEach((link)=>{\n const href = link.getAttribute('href');\n if (href && href.includes('%')) {\n try {\n // Try to decode URLs that might have been double-encoded\n const decodedHref = decodeURIComponent(href);\n link.setAttribute('href', decodedHref);\n } catch (e) {\n // If decoding fails, keep the original\n console.warn('Failed to decode href:', href);\n }\n }\n });\n // Fix image URLs - preserve cid: URLs for email attachments\n const images = tempDiv.querySelectorAll('img');\n images.forEach((img)=>{\n const src = img.getAttribute('src');\n if (src) {\n // Don't modify cid: URLs as they are handled specially in email clients\n if (src.startsWith('cid:')) {\n // Keep cid: URLs as they are\n console.log('Preserving CID reference:', src);\n } else if (src.startsWith('http://')) {\n img.setAttribute('src', src.replace('http://', 'https://'));\n } else if (!src.startsWith('https://') && !src.startsWith('data:')) {\n if (src.startsWith('/')) {\n img.setAttribute('src', \"https://example.com\".concat(src));\n } else {\n img.setAttribute('src', \"https://example.com/\".concat(src));\n }\n }\n }\n });\n // Clean up excessive whitespace and empty elements\n // Find all text nodes and normalize whitespace\n const walker = document.createTreeWalker(tempDiv, NodeFilter.SHOW_TEXT, null);\n const textNodes = [];\n while(walker.nextNode()){\n textNodes.push(walker.currentNode);\n }\n // Process text nodes to normalize whitespace\n textNodes.forEach((node)=>{\n if (node.nodeValue) {\n // Replace sequences of whitespace with a single space\n node.nodeValue = node.nodeValue.replace(/\\s+/g, ' ').trim();\n }\n });\n // Remove empty paragraphs and divs that contain only whitespace\n const emptyElements = tempDiv.querySelectorAll('p, div, span');\n emptyElements.forEach((el)=>{\n if (el.innerHTML.trim() === '' || el.innerHTML === '&nbsp;') {\n var _el_parentNode;\n (_el_parentNode = el.parentNode) === null || _el_parentNode === void 0 ? void 0 : _el_parentNode.removeChild(el);\n }\n });\n // Remove excessive consecutive <br> tags (more than 2)\n let html = tempDiv.innerHTML;\n html = html.replace(/(<br\\s*\\/?>\\s*){3,}/gi, '<br><br>');\n tempDiv.innerHTML = html;\n // Get the fixed HTML\n sanitizedContent = tempDiv.innerHTML;\n }\n } catch (e) {\n console.error('Error fixing content:', e);\n }\n // Fix common email client quirks without breaking cid: URLs\n return sanitizedContent// Fix for Outlook WebVML content\n .replace(/<!--\\[if\\s+gte\\s+mso/g, '<!--[if gte mso')// Fix for broken image paths WITHOUT replacing cid: URLs\n .replace(/(src|background)=\"(?!(?:https?:|data:|cid:))/gi, '$1=\"https://')// Fix for base64 images that might be broken across lines\n .replace(/src=\"data:image\\/[^;]+;base64,\\s*([^\"]+)\\s*\"/gi, (match, p1)=>{\n return 'src=\"data:image/png;base64,'.concat(p1.replace(/\\s+/g, ''), '\"');\n })// Remove excessive whitespace from the HTML string itself\n .replace(/>\\s+</g, '> <');\n } catch (error) {\n console.error('Error processing HTML content:', error);\n return htmlContent;\n }\n}\n/**\n * Format plain text to HTML with proper line breaks and styling\n */ function formatPlainTextToHtml(text) {\n if (!text) return '';\n // Detect text direction\n const direction = (0,_text_direction__WEBPACK_IMPORTED_MODULE_1__.detectTextDirection)(text);\n // Escape HTML characters to prevent XSS\n const escapedText = text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\"/g, '&quot;').replace(/'/g, '&#039;');\n // Format plain text with proper line breaks and paragraphs\n const formattedText = escapedText.replace(/\\r\\n|\\r|\\n/g, '<br>') // Convert all newlines to <br>\n .replace(/((?:<br>){2,})/g, '</p><p>') // Convert multiple newlines to paragraphs\n .replace(/<br><\\/p>/g, '</p>') // Fix any <br></p> combinations\n .replace(/<p><br>/g, '<p>'); // Fix any <p><br> combinations\n return '<div class=\"email-content\" style=\"font-family: -apple-system, BlinkMacSystemFont, Menlo, Monaco, Consolas, \\'Courier New\\', monospace; white-space: pre-wrap; line-height: 1.5; color: #333; padding: 15px; max-width: 100%; overflow-wrap: break-word;\" dir=\"'.concat(direction, '\"><p>').concat(formattedText, \"</p></div>\");\n}\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi91dGlscy9lbWFpbC1jb250ZW50LnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Q0FVQyxHQUVrRDtBQUNJO0FBR3ZEOzs7Q0FHQyxHQUNNLFNBQVNFLG9CQUFvQkMsS0FBVTtJQUM1Qyx1QkFBdUI7SUFDdkIsSUFBSUMsY0FBYztJQUNsQixJQUFJQyxjQUFjO0lBRWxCLHlCQUF5QjtJQUN6QixJQUFJLENBQUNGLE9BQU87UUFDVkcsUUFBUUMsR0FBRyxDQUFDO1FBQ1osT0FBTztZQUFFQyxNQUFNO1lBQUlDLE1BQU07UUFBRztJQUM5QjtJQUVBLElBQUk7UUFDRixrQ0FBa0M7UUFDbEMsSUFBSU4sTUFBTU8sT0FBTyxJQUFJLE9BQU9QLE1BQU1PLE9BQU8sS0FBSyxVQUFVO1lBQ3RELHNDQUFzQztZQUN0Q04sY0FBY0QsTUFBTU8sT0FBTyxDQUFDRixJQUFJLElBQUk7WUFDcENILGNBQWNGLE1BQU1PLE9BQU8sQ0FBQ0QsSUFBSSxJQUFJO1lBRXBDLDZEQUE2RDtZQUM3RCxJQUFJLENBQUNMLGVBQWUsQ0FBQ0MsYUFBYTtnQkFDaEMsaURBQWlEO2dCQUNqRCxJQUFJRixNQUFNTyxPQUFPLENBQUNDLElBQUksRUFBRTtvQkFDdEIsSUFBSSxPQUFPUixNQUFNTyxPQUFPLENBQUNDLElBQUksS0FBSyxVQUFVO3dCQUMxQyxvQ0FBb0M7d0JBQ3BDLElBQUlDLGNBQWNULE1BQU1PLE9BQU8sQ0FBQ0MsSUFBSSxHQUFHOzRCQUNyQ04sY0FBY0YsTUFBTU8sT0FBTyxDQUFDQyxJQUFJO3dCQUNsQyxPQUFPOzRCQUNMUCxjQUFjRCxNQUFNTyxPQUFPLENBQUNDLElBQUk7d0JBQ2xDO29CQUNGLE9BQU8sSUFBSSxPQUFPUixNQUFNTyxPQUFPLENBQUNDLElBQUksS0FBSyxZQUFZUixNQUFNTyxPQUFPLENBQUNDLElBQUksRUFBRTt3QkFDdkUsOENBQThDO3dCQUM5Q04sY0FBY0YsTUFBTU8sT0FBTyxD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T0FBT1osT0FBTztRQUNkWixRQUFRWSxLQUFLLENBQUMsa0NBQWtDQTtRQUNoRCxPQUFPYjtJQUNUO0FBQ0Y7QUFFQTs7Q0FFQyxHQUNNLFNBQVNvQyxzQkFBc0JqQyxJQUFZO0lBQ2hELElBQUksQ0FBQ0EsTUFBTSxPQUFPO0lBRWxCLHdCQUF3QjtJQUN4QixNQUFNc0YsWUFBWTdGLG9FQUFtQkEsQ0FBQ087SUFFdEMsd0NBQXdDO0lBQ3hDLE1BQU11RixjQUFjdkYsS0FDakJzQixPQUFPLENBQUMsTUFBTSxTQUNkQSxPQUFPLENBQUMsTUFBTSxRQUNkQSxPQUFPLENBQUMsTUFBTSxRQUNkQSxPQUFPLENBQUMsTUFBTSxVQUNkQSxPQUFPLENBQUMsTUFBTTtJQUVqQiwyREFBMkQ7SUFDM0QsTUFBTWtFLGdCQUFnQkQsWUFDbkJqRSxPQUFPLENBQUMsZUFBZSxRQUFRLCtCQUErQjtLQUM5REEsT0FBTyxDQUFDLG1CQUFtQixXQUFXLDBDQUEwQztLQUNoRkEsT0FBTyxDQUFDLGNBQWMsUUFBUSxnQ0FBZ0M7S0FDOURBLE9BQU8sQ0FBQyxZQUFZLFFBQVEsK0JBQStCO0lBRTlELE9BQU8saVFBQWdSa0UsT0FBakJGLFdBQVUsU0FBcUIsT0FBZEUsZUFBYztBQUN2UyIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9saWIvdXRpbHMvZW1haWwtY29udGVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENlbnRyYWxpemVkIEVtYWlsIENvbnRlbnQgVXRpbGl0aWVzXG4gKiBcbiAqIFRoaXMgZmlsZSBjb250YWlucyBhbGwgY29yZSBmdW5jdGlvbnMgZm9yIGVtYWlsIGNvbnRlbnQgcHJvY2Vzc2luZzpcbiAqIC0gQ29udGVudCBleHRyYWN0aW9uXG4gKiAtIEhUTUwgc2FuaXRpemF0aW9uXG4gKiAtIFRleHQgZGlyZWN0aW9uIGhhbmRsaW5nXG4gKiAtIFVSTCBmaXhpbmdcbiAqIFxuICogT3RoZXIgbW9kdWxlcyBzaG91bGQgaW1wb3J0IGZyb20gdGhpcyBmaWxlIHJhdGhlciB0aGFuIGltcGxlbWVudGluZyB0aGVpciBvd24gdmVyc2lvbnMuXG4gKi9cblxuaW1wb3J0IHsgc2FuaXRpemVIdG1sIH0gZnJvbSAnLi9kb20tcHVyaWZ5LWNvbmZpZyc7XG5pbXBvcnQgeyBkZXRlY3RUZXh0RGlyZWN0aW9uIH0gZnJvbSAnLi90ZXh0LWRpcmVjdGlvbic7XG5pbXBvcnQgeyBFbWFpbENvbnRlbnQgfSBmcm9tICdAL3R5cGVzL2VtYWlsJztcblxuLyoqXG4gKiBFeHRyYWN0IGNvbnRlbnQgZnJvbSB2YXJpb3VzIHBvc3NpYmxlIGVtYWlsIGZvcm1hdHNcbiAqIENlbnRyYWxpemVkIGltcGxlbWVudGF0aW9uIHRvIHJlZHVjZSBkdXBsaWNhdGlvbiBhY3Jvc3MgdGhlIGNvZGViYXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RW1haWxDb250ZW50KGVtYWlsOiBhbnkpOiB7IHRleHQ6IHN0cmluZzsgaHRtbDogc3RyaW5nIH0ge1xuICAvLyBEZWZhdWx0IGVtcHR5IHZhbHVlc1xuICBsZXQgdGV4dENvbnRlbnQgPSAnJztcbiAgbGV0IGh0bWxDb250ZW50ID0gJyc7XG5cbiAgLy8gRWFybHkgZXhpdCBpZiBubyBlbWFpbFxuICBpZiAoIWVtYWlsKSB7XG4gICAgY29uc29sZS5sb2coJ2V4dHJhY3RFbWFpbENvbnRlbnQ6IE5vIGVtYWlsIHByb3ZpZGVkJyk7XG4gICAgcmV0dXJuIHsgdGV4dDogJycsIGh0bWw6ICcnIH07XG4gIH1cblxuICB0cnkge1xuICAgIC8vIEV4dHJhY3QgYmFzZWQgb24gY29tbW9uIGZvcm1hdHNcbiAgICBpZiAoZW1haWwuY29udGVudCAmJiB0eXBlb2YgZW1haWwuY29udGVudCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIFN0YW5kYXJkIGZvcm1hdCB3aXRoIGNvbnRlbnQgb2JqZWN0XG4gICAgICB0ZXh0Q29udGVudCA9IGVtYWlsLmNvbnRlbnQudGV4dCB8fCAnJztcbiAgICAgIGh0bWxDb250ZW50ID0gZW1haWwuY29udGVudC5odG1sIHx8ICcnO1xuICAgICAgXG4gICAgICAvLyBIYW5kbGUgY29tcGxleCBlbWFpbCBmb3JtYXRzIHdoZXJlIGNvbnRlbnQgbWlnaHQgYmUgbmVzdGVkXG4gICAgICBpZiAoIXRleHRDb250ZW50ICYmICFodG1sQ29udGVudCkge1xuICAgICAgICAvLyBUcnkgdG8gZmluZCBjb250ZW50IGluIGRlZXBlciBuZXN0ZWQgc3RydWN0dXJlXG4gICAgICAgIGlmIChlbWFpbC5jb250ZW50LmJvZHkpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGVtYWlsLmNvbnRlbnQuYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIC8vIERldGVybWluZSBpZiBib2R5IGlzIEhUTUwgb3IgdGV4dFxuICAgICAgICAgICAgaWYgKGlzSHRtbENvbnRlbnQoZW1haWwuY29udGVudC5ib2R5KSkge1xuICAgICAgICAgICAgICBodG1sQ29udGVudCA9IGVtYWlsLmNvbnRlbnQuYm9keTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRleHRDb250ZW50ID0gZW1haWwuY29udGVudC5ib2R5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGVtYWlsLmNvbnRlbnQuYm9keSA9PT0gJ29iamVjdCcgJiYgZW1haWwuY29udGVudC5ib2R5KSB7XG4gICAgICAgICAgICAvLyBTb21lIGVtYWlsIGZvcm1hdHMgbmVzdCBjb250ZW50IGluc2lkZSBib2R5XG4gICAgICAgICAgICBodG1sQ29udGVudCA9IGVtYWlsLmNvbnRlbnQuYm9keS5odG1sIHx8ICcnO1xuICAgICAgICAgICAgdGV4dENvbnRlbnQgPSBlbWFpbC5jb250ZW50LmJvZHkudGV4dCB8fCAnJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIENoZWNrIGZvciBkYXRhIHByb3BlcnR5IHdoaWNoIHNvbWUgZW1haWwgc2VydmljZXMgdXNlXG4gICAgICAgIGlmICghdGV4dENvbnRlbnQgJiYgIWh0bWxDb250ZW50ICYmIGVtYWlsLmNvbnRlbnQuZGF0YSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgZW1haWwuY29udGVudC5kYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgZGF0YSBsb29rcyBsaWtlIEhUTUxcbiAgICAgICAgICAgIGlmIChpc0h0bWxDb250ZW50KGVtYWlsLmNvbnRlbnQuZGF0YSkpIHtcbiAgICAgICAgICAgICAgaHRtbENvbnRlbnQgPSBlbWFpbC5jb250ZW50LmRhdGE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0ZXh0Q29udGVudCA9IGVtYWlsLmNvbnRlbnQuZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBlbWFpbC5jb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gQ2hlY2sgaWYgY29udGVudCBpcyBsaWtlbHkgSFRNTFxuICAgICAgaWYgKGlzSHRtbENvbnRlbnQoZW1haWwuY29udGVudCkpIHtcbiAgICAgICAgaHRtbENvbnRlbnQgPSBlbWFpbC5jb250ZW50O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGV4dENvbnRlbnQgPSBlbWFpbC5jb250ZW50O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDaGVjayBvdGhlciBjb21tb24gcHJvcGVydGllc1xuICAgICAgaHRtbENvbnRlbnQgPSBlbWFpbC5odG1sIHx8ICcnO1xuICAgICAgdGV4dENvbnRlbnQgPSBlbWFpbC50ZXh0IHx8ICcnO1xuICAgICAgXG4gICAgICAvLyBJZiBzdGlsbCBubyBjb250ZW50LCBjaGVjayBmb3IgbGVzcyBjb21tb24gcHJvcGVydGllc1xuICAgICAgaWYgKCFodG1sQ29udGVudCAmJiAhdGV4dENvbnRlbnQpIHtcbiAgICAgICAgLy8gVHJ5IGFkZGl0aW9uYWwgcHJvcGVydGllcyB0aGF0IHNvbWUgZW1haWwgY2xpZW50cyB1c2VcbiAgICAgICAgaHRtbENvbnRlbnQgPSBlbWFpbC5ib2R5Py5odG1sIHx8IGVtYWlsLmJvZHlIdG1sIHx8IGVtYWlsLmh0bWxCb2R5IHx8ICcnO1xuICAgICAgICB0ZXh0Q29udGVudCA9IGVtYWlsLmJvZHk/LnRleHQgfHwgZW1haWwuYm9keVRleHQgfHwgZW1haWwucGxhaW5UZXh0IHx8ICcnO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBleHRyYWN0aW5nIGVtYWlsIGNvbnRlbnQ6JywgZXJyb3IpO1xuICB9XG5cbiAgLy8gRW5zdXJlIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IHNvbWUgdGV4dCBjb250ZW50XG4gIGlmICghdGV4dENvbnRlbnQgJiYgaHRtbENvbnRlbnQpIHtcbiAgICB0ZXh0Q29udGVudCA9IGV4dHJhY3RUZXh0RnJvbUh0bWwoaHRtbENvbnRlbnQpO1xuICB9XG5cbiAgLy8gTG9nIGV4dHJhY3Rpb24gcmVzdWx0c1xuICBjb25zb2xlLmxvZygnRXh0cmFjdGVkIGVtYWlsIGNvbnRlbnQ6JywgeyBcbiAgICBoYXNIdG1sOiAhIWh0bWxDb250ZW50LCBcbiAgICBodG1sTGVuZ3RoOiBodG1sQ29udGVudD8ubGVuZ3RoIHx8IDAsXG4gICAgaGFzVGV4dDogISF0ZXh0Q29udGVudCwgXG4gICAgdGV4dExlbmd0aDogdGV4dENvbnRlbnQ/Lmxlbmd0aCB8fCAwXG4gIH0pO1xuXG4gIHJldHVybiB7IHRleHQ6IHRleHRDb250ZW50LCBodG1sOiBodG1sQ29udGVudCB9O1xufVxuXG4vKipcbiAqIEV4dHJhY3QgcGxhaW4gdGV4dCBmcm9tIEhUTUwgY29udGVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFRleHRGcm9tSHRtbChodG1sOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIWh0bWwpIHJldHVybiAnJztcbiAgXG4gIHRyeSB7XG4gICAgLy8gVXNlIERPTSBBUEkgaWYgYXZhaWxhYmxlXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHRlbXBEaXYuaW5uZXJIVE1MID0gaHRtbDtcbiAgICAgIHJldHVybiB0ZW1wRGl2LnRleHRDb250ZW50IHx8IHRlbXBEaXYuaW5uZXJUZXh0IHx8ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTaW1wbGUgcmVnZXggZmFsbGJhY2sgZm9yIG5vbi1icm93c2VyIGVudmlyb25tZW50c1xuICAgICAgcmV0dXJuIGh0bWwucmVwbGFjZSgvPFtePl0qPi9nLCAnICcpXG4gICAgICAgIC5yZXBsYWNlKC8mbmJzcDsvZywgJyAnKVxuICAgICAgICAucmVwbGFjZSgvJmx0Oy9nLCAnPCcpXG4gICAgICAgIC5yZXBsYWNlKC8mZ3Q7L2csICc+JylcbiAgICAgICAgLnJlcGxhY2UoLyZhbXA7L2csICcmJylcbiAgICAgICAgLnJlcGxhY2UoL1xccysvZywgJyAnKVxuICAgICAgICAudHJpbSgpO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGV4dHJhY3RpbmcgdGV4dCBmcm9tIEhUTUw6JywgZSk7XG4gICAgLy8gRmFsbGJhY2sgdG8gYmFzaWMgc3RyaXBcbiAgICByZXR1cm4gaHRtbC5yZXBsYWNlKC88W14+XSo+L2csICcgJykudHJpbSgpO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBzdHJpbmcgaXMgbGlrZWx5IEhUTUwgY29udGVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNIdG1sQ29udGVudChjb250ZW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKCFjb250ZW50KSByZXR1cm4gZmFsc2U7XG4gIFxuICByZXR1cm4gY29udGVudC50cmltKCkuc3RhcnRzV2l0aCgnPCcpICYmIFxuICAgIChjb250ZW50LmluY2x1ZGVzKCc8aHRtbCcpIHx8IFxuICAgICBjb250ZW50LmluY2x1ZGVzKCc8Ym9keScpIHx8IFxuICAgICBjb250ZW50LmluY2x1ZGVzKCc8ZGl2JykgfHxcbiAgICAgY29udGVudC5pbmNsdWRlcygnPHA+JykgfHxcbiAgICAgY29udGVudC5pbmNsdWRlcygnPGJyPicpKTtcbn1cblxuLyoqXG4gKiBGb3JtYXQgYW5kIHN0YW5kYXJkaXplIGVtYWlsIGNvbnRlbnQgZm9yIGRpc3BsYXkgZm9sbG93aW5nIGVtYWlsIGluZHVzdHJ5IHN0YW5kYXJkcy5cbiAqIFRoaXMgaXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIHJlbmRlcmluZyBlbWFpbCBjb250ZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RW1haWxDb250ZW50KGVtYWlsOiBhbnkpOiBzdHJpbmcge1xuICBpZiAoIWVtYWlsKSB7XG4gICAgY29uc29sZS5sb2coJ2Zvcm1hdEVtYWlsQ29udGVudDogTm8gZW1haWwgcHJvdmlkZWQnKTtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgXG4gIHRyeSB7XG4gICAgLy8gRXh0cmFjdCBjb250ZW50IGZyb20gZW1haWxcbiAgICBjb25zdCB7IHRleHQsIGh0bWwgfSA9IGV4dHJhY3RFbWFpbENvbnRlbnQoZW1haWwpO1xuICAgIFxuICAgIGNvbnNvbGUubG9nKCdmb3JtYXRFbWFpbENvbnRlbnQgcHJvY2Vzc2luZzonLCB7IFxuICAgICAgaGFzSHRtbDogISFodG1sLCBcbiAgICAgIGh0bWxMZW5ndGg6IGh0bWw/Lmxlbmd0aCB8fCAwLFxuICAgICAgaGFzVGV4dDogISF0ZXh0LCBcbiAgICAgIHRleHRMZW5ndGg6IHRleHQ/Lmxlbmd0aCB8fCAwLFxuICAgICAgZW1haWxUeXBlOiB0eXBlb2YgZW1haWwgPT09ICdzdHJpbmcnID8gJ3N0cmluZycgOiAnb2JqZWN0J1xuICAgIH0pO1xuICAgIFxuICAgIC8vIElmIHdlIGhhdmUgSFRNTCBjb250ZW50LCBzYW5pdGl6ZSBhbmQgc3RhbmRhcmRpemUgaXRcbiAgICBpZiAoaHRtbCkge1xuICAgICAgLy8gUHJvY2VzcyBIVE1MIGNvbnRlbnRcbiAgICAgIGxldCBwcm9jZXNzZWRIdG1sID0gcHJvY2Vzc0h0bWxDb250ZW50KGh0bWwsIHRleHQpO1xuICAgICAgXG4gICAgICBjb25zb2xlLmxvZygnSFRNTCBjb250ZW50IHByb2Nlc3NlZDonLCB7IFxuICAgICAgICBwcm9jZXNzZWRMZW5ndGg6IHByb2Nlc3NlZEh0bWw/Lmxlbmd0aCB8fCAwLFxuICAgICAgICBpc0VtcHR5OiAhcHJvY2Vzc2VkSHRtbCB8fCBwcm9jZXNzZWRIdG1sLnRyaW0oKS5sZW5ndGggPT09IDBcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBBcHBseSBzdHlsaW5nXG4gICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJlbWFpbC1jb250ZW50XCIgc3R5bGU9XCJmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OiAxLjY7IGNvbG9yOiAjMzMzOyBtYXgtd2lkdGg6IDEwMCU7IG92ZXJmbG93LXg6IGF1dG87IG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7IHdvcmQtd3JhcDogYnJlYWstd29yZDtcIiBkaXI9XCIke2RldGVjdFRleHREaXJlY3Rpb24odGV4dCl9XCI+JHtwcm9jZXNzZWRIdG1sfTwvZGl2PmA7XG4gICAgfSBcbiAgICAvLyBJZiB3ZSBvbmx5IGhhdmUgdGV4dCBjb250ZW50LCBmb3JtYXQgaXQgcHJvcGVybHlcbiAgICBlbHNlIGlmICh0ZXh0KSB7XG4gICAgICBjb25zb2xlLmxvZygnVXNpbmcgcGxhaW4gdGV4dCBmb3JtYXR0aW5nJyk7XG4gICAgICByZXR1cm4gZm9ybWF0UGxhaW5UZXh0VG9IdG1sKHRleHQpO1xuICAgIH1cbiAgICBcbiAgICAvLyBEZWZhdWx0IGNhc2U6IGVtcHR5IG9yIHVucmVjb2duaXplZCBjb250ZW50XG4gICAgcmV0dXJuICc8ZGl2IGNsYXNzPVwiZW1haWwtY29udGVudC1lbXB0eVwiIHN0eWxlPVwicGFkZGluZzogMjBweDsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzY2NjtcIj5ObyBjb250ZW50IGF2YWlsYWJsZTwvZGl2Pic7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignZm9ybWF0RW1haWxDb250ZW50OiBFcnJvciBmb3JtYXR0aW5nIGVtYWlsIGNvbnRlbnQ6JywgZXJyb3IpO1xuICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImVtYWlsLWNvbnRlbnQtZXJyb3JcIiBzdHlsZT1cInBhZGRpbmc6IDE1cHg7IGNvbG9yOiAjNzIxYzI0OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhkN2RhOyBib3JkZXI6IDFweCBzb2xpZCAjZjVjNmNiOyBib3JkZXItcmFkaXVzOiA0cHg7XCI+PHA+RXJyb3IgZGlzcGxheWluZyBlbWFpbCBjb250ZW50PC9wPjxwIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4OyBtYXJnaW4tdG9wOiAxMHB4O1wiPiR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9PC9wPjwvZGl2PmA7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9jZXNzIEhUTUwgY29udGVudCB0byBmaXggY29tbW9uIGVtYWlsIHJlbmRlcmluZyBpc3N1ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NIdG1sQ29udGVudChodG1sQ29udGVudDogc3RyaW5nLCB0ZXh0Q29udGVudD86IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghaHRtbENvbnRlbnQpIHJldHVybiAnJztcbiAgXG4gIHRyeSB7XG4gICAgY29uc29sZS5sb2coJ3Byb2Nlc3NIdG1sQ29udGVudCBpbnB1dDonLCB7XG4gICAgICBsZW5ndGg6IGh0bWxDb250ZW50Lmxlbmd0aCxcbiAgICAgIHN0YXJ0c1dpdGhIdG1sOiBodG1sQ29udGVudC50cmltKCkuc3RhcnRzV2l0aCgnPGh0bWwnKSxcbiAgICAgIHN0YXJ0c1dpdGhEaXY6IGh0bWxDb250ZW50LnRyaW0oKS5zdGFydHNXaXRoKCc8ZGl2JyksXG4gICAgICBoYXNCb2R5OiBodG1sQ29udGVudC5pbmNsdWRlcygnPGJvZHknKSxcbiAgICAgIGNvbnRhaW5zRm9yd2FyZGVkTWVzc2FnZTogaHRtbENvbnRlbnQuaW5jbHVkZXMoJy0tLS0tLS0tLS0gRm9yd2FyZGVkIG1lc3NhZ2UgLS0tLS0tLS0tLScpLFxuICAgICAgY29udGFpbnNRdW90ZUhlYWRlcjogaHRtbENvbnRlbnQuaW5jbHVkZXMoJ3dyb3RlOicpLFxuICAgICAgaGFzQmxvY2txdW90ZTogaHRtbENvbnRlbnQuaW5jbHVkZXMoJzxibG9ja3F1b3RlJyksXG4gICAgICBoYXNUYWJsZTogaHRtbENvbnRlbnQuaW5jbHVkZXMoJzx0YWJsZScpXG4gICAgfSk7XG4gICAgXG4gICAgLy8gQ2hlY2sgZm9yIGJyb3dzZXIgZW52aXJvbm1lbnQgKERPTVBhcnNlciBpcyBicm93c2VyLW9ubHkpXG4gICAgY29uc3QgaGFzSHRtbFRhZyA9IGh0bWxDb250ZW50LmluY2x1ZGVzKCc8aHRtbCcpO1xuICAgIGNvbnN0IGhhc0JvZHlUYWcgPSBodG1sQ29udGVudC5pbmNsdWRlcygnPGJvZHknKTtcbiAgICBcbiAgICAvLyBQcmVzZXJ2ZSBvcmlnaW5hbCBIVE1MIGZvciBkZWJ1Z2dpbmdcbiAgICBsZXQgb3JpZ2luYWxIdG1sID0gaHRtbENvbnRlbnQ7XG4gICAgXG4gICAgLy8gRXh0cmFjdCBib2R5IGNvbnRlbnQgaWYgd2UgaGF2ZSBhIGNvbXBsZXRlIEhUTUwgZG9jdW1lbnQgYW5kIGluIGJyb3dzZXIgZW52aXJvbm1lbnRcbiAgICBpZiAoaGFzSHRtbFRhZyAmJiBoYXNCb2R5VGFnICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBET01QYXJzZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBDcmVhdGUgYSBET00gcGFyc2VyIHRvIGV4dHJhY3QganVzdCB0aGUgYm9keSBjb250ZW50XG4gICAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcbiAgICAgICAgY29uc3QgZG9jID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyhodG1sQ29udGVudCwgJ3RleHQvaHRtbCcpO1xuICAgICAgICBjb25zdCBib2R5Q29udGVudCA9IGRvYy5ib2R5LmlubmVySFRNTDtcbiAgICAgICAgXG4gICAgICAgIGlmIChib2R5Q29udGVudCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdFeHRyYWN0ZWQgYm9keSBjb250ZW50IGZyb20gSFRNTCBkb2N1bWVudCwgbGVuZ3RoOicsIGJvZHlDb250ZW50Lmxlbmd0aCk7XG4gICAgICAgICAgaHRtbENvbnRlbnQgPSBib2R5Q29udGVudDtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZXh0cmFjdGluZyBib2R5IGNvbnRlbnQ6JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBVc2UgdGhlIGNlbnRyYWxpemVkIHNhbml0aXplSHRtbCBmdW5jdGlvblxuICAgIGxldCBzYW5pdGl6ZWRDb250ZW50ID0gc2FuaXRpemVIdG1sKGh0bWxDb250ZW50KTtcbiAgICBcbiAgICBjb25zb2xlLmxvZygnQWZ0ZXIgc2FuaXRpemVIdG1sOicsIHtcbiAgICAgIG9yaWdpbmFsTGVuZ3RoOiBvcmlnaW5hbEh0bWwubGVuZ3RoLFxuICAgICAgc2FuaXRpemVkTGVuZ3RoOiBzYW5pdGl6ZWRDb250ZW50Lmxlbmd0aCxcbiAgICAgIGRpZmZlcmVuY2U6IG9yaWdpbmFsSHRtbC5sZW5ndGggLSBzYW5pdGl6ZWRDb250ZW50Lmxlbmd0aCxcbiAgICAgIHBlcmNlbnRSZW1vdmVkOiAoKG9yaWdpbmFsSHRtbC5sZW5ndGggLSBzYW5pdGl6ZWRDb250ZW50Lmxlbmd0aCkgLyBvcmlnaW5hbEh0bWwubGVuZ3RoICogMTAwKS50b0ZpeGVkKDIpICsgJyUnLFxuICAgICAgY29udGFpbnNGb3J3YXJkZWRNZXNzYWdlOiBzYW5pdGl6ZWRDb250ZW50LmluY2x1ZGVzKCctLS0tLS0tLS0tIEZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS0nKSxcbiAgICAgIGhhc1RhYmxlOiBzYW5pdGl6ZWRDb250ZW50LmluY2x1ZGVzKCc8dGFibGUnKSxcbiAgICAgIGhhc0Jsb2NrcXVvdGU6IHNhbml0aXplZENvbnRlbnQuaW5jbHVkZXMoJzxibG9ja3F1b3RlJylcbiAgICB9KTtcbiAgICBcbiAgICAvLyBGaXggVVJMIGVuY29kaW5nIGlzc3VlcyBhbmQgY2xlYW4gdXAgY29udGVudFxuICAgIHRyeSB7XG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAvLyBUZW1wb3JhcnkgZWxlbWVudCB0byBtYW5pcHVsYXRlIHRoZSBIVE1MXG4gICAgICAgIGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGVtcERpdi5pbm5lckhUTUwgPSBzYW5pdGl6ZWRDb250ZW50O1xuICAgICAgICBcbiAgICAgICAgLy8gRml4IGFsbCBsaW5rcyB0aGF0IG1pZ2h0IGhhdmUgYmVlbiBkb3VibGUtZW5jb2RlZFxuICAgICAgICBjb25zdCBsaW5rcyA9IHRlbXBEaXYucXVlcnlTZWxlY3RvckFsbCgnYScpO1xuICAgICAgICBsaW5rcy5mb3JFYWNoKGxpbmsgPT4ge1xuICAgICAgICAgIGNvbnN0IGhyZWYgPSBsaW5rLmdldEF0dHJpYnV0ZSgnaHJlZicpO1xuICAgICAgICAgIGlmIChocmVmICYmIGhyZWYuaW5jbHVkZXMoJyUnKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgLy8gVHJ5IHRvIGRlY29kZSBVUkxzIHRoYXQgbWlnaHQgaGF2ZSBiZWVuIGRvdWJsZS1lbmNvZGVkXG4gICAgICAgICAgICAgIGNvbnN0IGRlY29kZWRIcmVmID0gZGVjb2RlVVJJQ29tcG9uZW50KGhyZWYpO1xuICAgICAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnaHJlZicsIGRlY29kZWRIcmVmKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgLy8gSWYgZGVjb2RpbmcgZmFpbHMsIGtlZXAgdGhlIG9yaWdpbmFsXG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybignRmFpbGVkIHRvIGRlY29kZSBocmVmOicsIGhyZWYpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyBGaXggaW1hZ2UgVVJMcyAtIHByZXNlcnZlIGNpZDogVVJMcyBmb3IgZW1haWwgYXR0YWNobWVudHNcbiAgICAgICAgY29uc3QgaW1hZ2VzID0gdGVtcERpdi5xdWVyeVNlbGVjdG9yQWxsKCdpbWcnKTtcbiAgICAgICAgaW1hZ2VzLmZvckVhY2goaW1nID0+IHtcbiAgICAgICAgICBjb25zdCBzcmMgPSBpbWcuZ2V0QXR0cmlidXRlKCdzcmMnKTtcbiAgICAgICAgICBpZiAoc3JjKSB7XG4gICAgICAgICAgICAvLyBEb24ndCBtb2RpZnkgY2lkOiBVUkxzIGFzIHRoZXkgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGluIGVtYWlsIGNsaWVudHNcbiAgICAgICAgICAgIGlmIChzcmMuc3RhcnRzV2l0aCgnY2lkOicpKSB7XG4gICAgICAgICAgICAgIC8vIEtlZXAgY2lkOiBVUkxzIGFzIHRoZXkgYXJlXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdQcmVzZXJ2aW5nIENJRCByZWZlcmVuY2U6Jywgc3JjKTtcbiAgICAgICAgICAgIH0gXG4gICAgICAgICAgICAvLyBGaXggaHR0cDovLyBVUkxzIHRvIGh0dHBzOi8vIGZvciBzZWN1cml0eVxuICAgICAgICAgICAgZWxzZSBpZiAoc3JjLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKSkge1xuICAgICAgICAgICAgICBpbWcuc2V0QXR0cmlidXRlKCdzcmMnLCBzcmMucmVwbGFjZSgnaHR0cDovLycsICdodHRwczovLycpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEhhbmRsZSByZWxhdGl2ZSBVUkxzIHRoYXQgbWlnaHQgYmUgYnJva2VuXG4gICAgICAgICAgICBlbHNlIGlmICghc3JjLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vJykgJiYgIXNyYy5zdGFydHNXaXRoKCdkYXRhOicpKSB7XG4gICAgICAgICAgICAgIGlmIChzcmMuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgaW1nLnNldEF0dHJpYnV0ZSgnc3JjJywgYGh0dHBzOi8vZXhhbXBsZS5jb20ke3NyY31gKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbWcuc2V0QXR0cmlidXRlKCdzcmMnLCBgaHR0cHM6Ly9leGFtcGxlLmNvbS8ke3NyY31gKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyBDbGVhbiB1cCBleGNlc3NpdmUgd2hpdGVzcGFjZSBhbmQgZW1wdHkgZWxlbWVudHNcbiAgICAgICAgLy8gRmluZCBhbGwgdGV4dCBub2RlcyBhbmQgbm9ybWFsaXplIHdoaXRlc3BhY2VcbiAgICAgICAgY29uc3Qgd2Fsa2VyID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihcbiAgICAgICAgICB0ZW1wRGl2LFxuICAgICAgICAgIE5vZGVGaWx0ZXIuU0hPV19URVhULFxuICAgICAgICAgIG51bGxcbiAgICAgICAgKTtcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IHRleHROb2RlcyA9IFtdO1xuICAgICAgICB3aGlsZSAod2Fsa2VyLm5leHROb2RlKCkpIHtcbiAgICAgICAgICB0ZXh0Tm9kZXMucHVzaCh3YWxrZXIuY3VycmVudE5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBQcm9jZXNzIHRleHQgbm9kZXMgdG8gbm9ybWFsaXplIHdoaXRlc3BhY2VcbiAgICAgICAgdGV4dE5vZGVzLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgaWYgKG5vZGUubm9kZVZhbHVlKSB7XG4gICAgICAgICAgICAvLyBSZXBsYWNlIHNlcXVlbmNlcyBvZiB3aGl0ZXNwYWNlIHdpdGggYSBzaW5nbGUgc3BhY2VcbiAgICAgICAgICAgIG5vZGUubm9kZVZhbHVlID0gbm9kZS5ub2RlVmFsdWUucmVwbGFjZSgvXFxzKy9nLCAnICcpLnRyaW0oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBcbiAgICAgICAgLy8gUmVtb3ZlIGVtcHR5IHBhcmFncmFwaHMgYW5kIGRpdnMgdGhhdCBjb250YWluIG9ubHkgd2hpdGVzcGFjZVxuICAgICAgICBjb25zdCBlbXB0eUVsZW1lbnRzID0gdGVtcERpdi5xdWVyeVNlbGVjdG9yQWxsKCdwLCBkaXYsIHNwYW4nKTtcbiAgICAgICAgZW1wdHlFbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICBpZiAoZWwuaW5uZXJIVE1MLnRyaW0oKSA9PT0gJycgfHwgZWwuaW5uZXJIVE1MID09PSAnJm5ic3A7Jykge1xuICAgICAgICAgICAgZWwucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQoZWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyBSZW1vdmUgZXhjZXNzaXZlIGNvbnNlY3V0aXZlIDxicj4gdGFncyAobW9yZSB0aGFuIDIpXG4gICAgICAgIGxldCBodG1sID0gdGVtcERpdi5pbm5lckhUTUw7XG4gICAgICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoLyg8YnJcXHMqXFwvPz5cXHMqKXszLH0vZ2ksICc8YnI+PGJyPicpO1xuICAgICAgICB0ZW1wRGl2LmlubmVySFRNTCA9IGh0bWw7XG4gICAgICAgIFxuICAgICAgICAvLyBHZXQgdGhlIGZpeGVkIEhUTUxcbiAgICAgICAgc2FuaXRpemVkQ29udGVudCA9IHRlbXBEaXYuaW5uZXJIVE1MO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZpeGluZyBjb250ZW50OicsIGUpO1xuICAgIH1cbiAgICBcbiAgICAvLyBGaXggY29tbW9uIGVtYWlsIGNsaWVudCBxdWlya3Mgd2l0aG91dCBicmVha2luZyBjaWQ6IFVSTHNcbiAgICByZXR1cm4gc2FuaXRpemVkQ29udGVudFxuICAgICAgLy8gRml4IGZvciBPdXRsb29rIFdlYlZNTCBjb250ZW50XG4gICAgICAucmVwbGFjZSgvPCEtLVxcW2lmXFxzK2d0ZVxccyttc28vZywgJzwhLS1baWYgZ3RlIG1zbycpXG4gICAgICAvLyBGaXggZm9yIGJyb2tlbiBpbWFnZSBwYXRocyBXSVRIT1VUIHJlcGxhY2luZyBjaWQ6IFVSTHNcbiAgICAgIC5yZXBsYWNlKC8oc3JjfGJhY2tncm91bmQpPVwiKD8hKD86aHR0cHM/OnxkYXRhOnxjaWQ6KSkvZ2ksICckMT1cImh0dHBzOi8vJylcbiAgICAgIC8vIEZpeCBmb3IgYmFzZTY0IGltYWdlcyB0aGF0IG1pZ2h0IGJlIGJyb2tlbiBhY3Jvc3MgbGluZXNcbiAgICAgIC5yZXBsYWNlKC9zcmM9XCJkYXRhOmltYWdlXFwvW147XSs7YmFzZTY0LFxccyooW15cIl0rKVxccypcIi9naSwgKG1hdGNoLCBwMSkgPT4ge1xuICAgICAgICByZXR1cm4gYHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwke3AxLnJlcGxhY2UoL1xccysvZywgJycpfVwiYDtcbiAgICAgIH0pXG4gICAgICAvLyBSZW1vdmUgZXhjZXNzaXZlIHdoaXRlc3BhY2UgZnJvbSB0aGUgSFRNTCBzdHJpbmcgaXRzZWxmXG4gICAgICAucmVwbGFjZSgvPlxccys8L2csICc+IDwnKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwcm9jZXNzaW5nIEhUTUwgY29udGVudDonLCBlcnJvcik7XG4gICAgcmV0dXJuIGh0bWxDb250ZW50O1xuICB9XG59XG5cbi8qKlxuICogRm9ybWF0IHBsYWluIHRleHQgdG8gSFRNTCB3aXRoIHByb3BlciBsaW5lIGJyZWFrcyBhbmQgc3R5bGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0UGxhaW5UZXh0VG9IdG1sKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghdGV4dCkgcmV0dXJuICcnO1xuICBcbiAgLy8gRGV0ZWN0IHRleHQgZGlyZWN0aW9uXG4gIGNvbnN0IGRpcmVjdGlvbiA9IGRldGVjdFRleHREaXJlY3Rpb24odGV4dCk7XG4gIFxuICAvLyBFc2NhcGUgSFRNTCBjaGFyYWN0ZXJzIHRvIHByZXZlbnQgWFNTXG4gIGNvbnN0IGVzY2FwZWRUZXh0ID0gdGV4dFxuICAgIC5yZXBsYWNlKC8mL2csICcmYW1wOycpXG4gICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKVxuICAgIC5yZXBsYWNlKC8+L2csICcmZ3Q7JylcbiAgICAucmVwbGFjZSgvXCIvZywgJyZxdW90OycpXG4gICAgLnJlcGxhY2UoLycvZywgJyYjMDM5OycpO1xuICBcbiAgLy8gRm9ybWF0IHBsYWluIHRleHQgd2l0aCBwcm9wZXIgbGluZSBicmVha3MgYW5kIHBhcmFncmFwaHNcbiAgY29uc3QgZm9ybWF0dGVkVGV4dCA9IGVzY2FwZWRUZXh0XG4gICAgLnJlcGxhY2UoL1xcclxcbnxcXHJ8XFxuL2csICc8YnI+JykgLy8gQ29udmVydCBhbGwgbmV3bGluZXMgdG8gPGJyPlxuICAgIC5yZXBsYWNlKC8oKD86PGJyPil7Mix9KS9nLCAnPC9wPjxwPicpIC8vIENvbnZlcnQgbXVsdGlwbGUgbmV3bGluZXMgdG8gcGFyYWdyYXBoc1xuICAgIC5yZXBsYWNlKC88YnI+PFxcL3A+L2csICc8L3A+JykgLy8gRml4IGFueSA8YnI+PC9wPiBjb21iaW5hdGlvbnNcbiAgICAucmVwbGFjZSgvPHA+PGJyPi9nLCAnPHA+Jyk7IC8vIEZpeCBhbnkgPHA+PGJyPiBjb21iaW5hdGlvbnNcbiAgXG4gIHJldHVybiBgPGRpdiBjbGFzcz1cImVtYWlsLWNvbnRlbnRcIiBzdHlsZT1cImZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgbGluZS1oZWlnaHQ6IDEuNTsgY29sb3I6ICMzMzM7IHBhZGRpbmc6IDE1cHg7IG1heC13aWR0aDogMTAwJTsgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcIiBkaXI9XCIke2RpcmVjdGlvbn1cIj48cD4ke2Zvcm1hdHRlZFRleHR9PC9wPjwvZGl2PmA7XG59ICJdLCJuYW1lcyI6WyJzYW5pdGl6ZUh0bWwiLCJkZXRlY3RUZXh0RGlyZWN0aW9uIiwiZXh0cmFjdEVtYWlsQ29udGVudCIsImVtYWlsIiwidGV4dENvbnRlbnQiLCJodG1sQ29udGVudCIsImNvbnNvbGUiLCJsb2ciLCJ0ZXh0IiwiaHRtbCIsImNvbnRlbnQiLCJib2R5IiwiaXNIdG1sQ29udGVudCIsImRhdGEiLCJib2R5SHRtbCIsImh0bWxCb2R5IiwiYm9keVRleHQiLCJwbGFpblRleHQiLCJlcnJvciIsImV4dHJhY3RUZXh0RnJvbUh0bWwiLCJoYXNIdG1sIiwiaHRtbExlbmd0aCIsImxlbmd0aCIsImhhc1RleHQiLCJ0ZXh0TGVuZ3RoIiwiZG9jdW1lbnQiLCJ0ZW1wRGl2IiwiY3JlYXRlRWxlbWVudCIsImlubmVySFRNTCIsImlubmVyVGV4dCIsInJlcGxhY2UiLCJ0cmltIiwiZSIsInN0YXJ0c1dpdGgiLCJpbmNsdWRlcyIsImZvcm1hdEVtYWlsQ29udGVudCIsImVtYWlsVHlwZSIsInByb2Nlc3NlZEh0bWwiLCJwcm9jZXNzSHRtbENvbnRlbnQiLCJwcm9jZXNzZWRMZW5ndGgiLCJpc0VtcHR5IiwiZm9ybWF0UGxhaW5UZXh0VG9IdG1sIiwiRXJyb3IiLCJtZXNzYWdlIiwic3RhcnRzV2l0aEh0bWwiLCJzdGFydHNXaXRoRGl2IiwiaGFzQm9keSIsImNvbnRhaW5zRm9yd2FyZGVkTWVzc2FnZSIsImNvbnRhaW5zUXVvdGVIZWFkZXIiLCJoYXNCbG9ja3F1b3RlIiwiaGFzVGFibGUiLCJoYXNIdG1sVGFnIiwiaGFzQm9keVRhZyIsIm9yaWdpbmFsSHRtbCIsIkRPTVBhcnNlciIsInBhcnNlciIsImRvYyIsInBhcnNlRnJvbVN0cmluZyIsImJvZHlDb250ZW50Iiwic2FuaXRpemVkQ29udGVudCIsIm9yaWdpbmFsTGVuZ3RoIiwic2FuaXRpemVkTGVuZ3RoIiwiZGlmZmVyZW5jZSIsInBlcmNlbnRSZW1vdmVkIiwidG9GaXhlZCIsImxpbmtzIiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJsaW5rIiwiaHJlZiIsImdldEF0dHJpYnV0ZSIsImRlY29kZWRIcmVmIiwiZGVjb2RlVVJJQ29tcG9uZW50Iiwic2V0QXR0cmlidXRlIiwid2FybiIsImltYWdlcyIsImltZyIsInNyYyIsIndhbGtlciIsImNyZWF0ZVRyZWVXYWxrZXIiLCJOb2RlRmlsdGVyIiwiU0hPV19URVhUIiwidGV4dE5vZGVzIiwibmV4dE5vZGUiLCJwdXNoIiwiY3VycmVudE5vZGUiLCJub2RlIiwibm9kZVZhbHVlIiwiZW1wdHlFbGVtZW50cyIsImVsIiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIiwibWF0Y2giLCJwMSIsImRpcmVjdGlvbiIsImVzY2FwZWRUZXh0IiwiZm9ybWF0dGVkVGV4dCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/utils/email-content.ts\n"));
/***/ }),
/***/ "(app-pages-browser)/./lib/utils/email-mime-decoder.ts":
/*!*****************************************!*\
!*** ./lib/utils/email-mime-decoder.ts ***!
\*****************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ adaptMimeEmail: () => (/* binding */ adaptMimeEmail),\n/* harmony export */ cleanHtml: () => (/* binding */ cleanHtml),\n/* harmony export */ decodeInfomaniakEmail: () => (/* binding */ decodeInfomaniakEmail),\n/* harmony export */ isMimeFormat: () => (/* binding */ isMimeFormat)\n/* harmony export */ });\n/**\n * Infomaniak Email MIME Decoder\n * \n * This module provides specialized functions to decode MIME-encoded email content\n * from Infomaniak servers for proper display in a frontend application.\n * It handles multipart messages, different encodings, and character set conversions.\n */ /**\n * Main function to decode Infomaniak Email in MIME format\n */ function decodeInfomaniakEmail(rawEmailContent) {\n // Check if it's a multipart email\n const headers = extractHeaders(rawEmailContent);\n const headerInfo = parseEmailHeaders(headers);\n if (headerInfo.contentType.includes('multipart')) {\n return processMultipartEmail(rawEmailContent, headerInfo);\n } else {\n return processSinglePartEmail(rawEmailContent, headerInfo);\n }\n}\n/**\n * Process a single part email\n */ function processSinglePartEmail(rawEmail, headerInfo) {\n const splitEmail = rawEmail.split('\\r\\n\\r\\n');\n const headers = splitEmail[0];\n const body = splitEmail.slice(1).join('\\r\\n\\r\\n');\n const parsedHeaders = parseHeadersToObject(headers);\n const decodedBody = decodeMimeContent(body, headerInfo.encoding);\n const content = convertCharset(decodedBody, headerInfo.charset);\n const result = {\n subject: decodeHeaderValue(parsedHeaders['subject'] || ''),\n from: decodeHeaderValue(parsedHeaders['from'] || ''),\n to: decodeHeaderValue(parsedHeaders['to'] || ''),\n cc: parsedHeaders['cc'] ? decodeHeaderValue(parsedHeaders['cc']) : undefined,\n bcc: parsedHeaders['bcc'] ? decodeHeaderValue(parsedHeaders['bcc']) : undefined,\n date: parsedHeaders['date'] || '',\n headers: parsedHeaders\n };\n if (headerInfo.contentType.includes('text/plain')) {\n result.text = content;\n } else if (headerInfo.contentType.includes('text/html')) {\n result.html = content;\n }\n return result;\n}\n/**\n * Process a multipart email\n */ function processMultipartEmail(rawEmail, headerInfo) {\n if (!headerInfo.boundary) {\n throw new Error('Multipart email missing boundary');\n }\n const boundary = headerInfo.boundary;\n const splitEmail = rawEmail.split('\\r\\n\\r\\n');\n const headers = splitEmail[0];\n const parsedHeaders = parseHeadersToObject(headers);\n const result = {\n subject: decodeHeaderValue(parsedHeaders['subject'] || ''),\n from: decodeHeaderValue(parsedHeaders['from'] || ''),\n to: decodeHeaderValue(parsedHeaders['to'] || ''),\n cc: parsedHeaders['cc'] ? decodeHeaderValue(parsedHeaders['cc']) : undefined,\n bcc: parsedHeaders['bcc'] ? decodeHeaderValue(parsedHeaders['bcc']) : undefined,\n date: parsedHeaders['date'] || '',\n attachments: [],\n headers: parsedHeaders\n };\n // Split by boundary\n const bodyContent = rawEmail.split('--' + boundary);\n // Process each part (skip first as it's headers and last as it's boundary end)\n for(let i = 1; i < bodyContent.length - 1; i++){\n const part = bodyContent[i];\n const partHeaders = extractHeaders(part);\n const partHeaderInfo = parseEmailHeaders(partHeaders);\n // Handle sub-multipart (nested multipart)\n if (partHeaderInfo.contentType.includes('multipart') && partHeaderInfo.boundary) {\n const subMultipart = processMultipartEmail(part, partHeaderInfo);\n if (subMultipart.html) result.html = subMultipart.html;\n if (subMultipart.text) result.text = subMultipart.text;\n if (subMultipart.attachments) {\n result.attachments = [\n ...result.attachments || [],\n ...subMultipart.attachments\n ];\n }\n continue;\n }\n // Get content after headers\n const partContent = part.split('\\r\\n\\r\\n').slice(1).join('\\r\\n\\r\\n');\n const decodedContent = decodeMimeContent(partContent, partHeaderInfo.encoding);\n const content = convertCharset(decodedContent, partHeaderInfo.charset);\n // Check content disposition\n const contentDisposition = getHeaderValue(partHeaders, 'Content-Disposition') || '';\n if (contentDisposition.includes('attachment')) {\n // This is an attachment\n const filename = extractFilename(contentDisposition);\n if (result.attachments && filename) {\n result.attachments.push({\n filename,\n contentType: partHeaderInfo.contentType,\n encoding: partHeaderInfo.encoding,\n content: decodedContent\n });\n }\n } else {\n // This is a content part\n if (partHeaderInfo.contentType.includes('text/plain')) {\n result.text = content;\n } else if (partHeaderInfo.contentType.includes('text/html')) {\n result.html = content;\n }\n }\n }\n return result;\n}\n/**\n * Extract headers from an email or part\n */ function extractHeaders(content) {\n const headerEnd = content.indexOf('\\r\\n\\r\\n');\n if (headerEnd === -1) return content;\n return content.substring(0, headerEnd);\n}\n/**\n * Parse email headers into an object\n */ function parseHeadersToObject(headers) {\n const result = {};\n const lines = headers.split('\\r\\n');\n let currentHeader = '';\n let currentValue = '';\n for (const line of lines){\n // If line starts with a space or tab, it's a continuation\n if (line.startsWith(' ') || line.startsWith('\\t')) {\n currentValue += ' ' + line.trim();\n } else {\n // Save previous header if exists\n if (currentHeader) {\n result[currentHeader.toLowerCase()] = currentValue;\n }\n const colonIndex = line.indexOf(':');\n if (colonIndex !== -1) {\n currentHeader = line.substring(0, colonIndex).trim();\n currentValue = line.substring(colonIndex + 1).trim();\n }\n }\n }\n // Save the last header\n if (currentHeader) {\n result[currentHeader.toLowerCase()] = currentValue;\n }\n return result;\n}\n/**\n * Parse email headers to extract content type, encoding and charset\n */ function parseEmailHeaders(headers) {\n const contentType = getHeaderValue(headers, 'Content-Type') || 'text/plain';\n const encoding = getHeaderValue(headers, 'Content-Transfer-Encoding') || '7bit';\n // Extract charset\n let charset = 'utf-8';\n const charsetMatch = contentType.match(/charset\\s*=\\s*[\"']?([^\"';\\s]+)/i);\n if (charsetMatch) {\n charset = charsetMatch[1];\n }\n // Extract boundary for multipart emails\n let boundary;\n const boundaryMatch = contentType.match(/boundary\\s*=\\s*[\"']?([^\"';\\s]+)/i);\n if (boundaryMatch) {\n boundary = boundaryMatch[1];\n }\n return {\n contentType,\n encoding,\n charset,\n boundary\n };\n}\n/**\n * Get a specific header value\n */ function getHeaderValue(headers, name) {\n const regex = new RegExp(\"\".concat(name, \":\\\\s*([^\\\\r\\\\n]+)\"), 'i');\n const match = headers.match(regex);\n return match ? match[1].trim() : null;\n}\n/**\n * Extract filename from Content-Disposition header\n */ function extractFilename(contentDisposition) {\n const filenameMatch = contentDisposition.match(/filename\\s*=\\s*[\"']?([^\"';\\s]+)/i);\n if (filenameMatch) return filenameMatch[1];\n // For encoded filenames\n const encodedFilenameMatch = contentDisposition.match(/filename\\*=([^']*)'[^']*'([^;]+)/i);\n if (encodedFilenameMatch) {\n try {\n return decodeURIComponent(encodedFilenameMatch[2].replace(/%([\\dA-F]{2})/g, '%$1'));\n } catch (e) {\n return encodedFilenameMatch[2];\n }\n }\n return 'attachment';\n}\n/**\n * Decode MIME content based on encoding\n */ function decodeMimeContent(content, encoding) {\n switch(encoding.toLowerCase()){\n case 'quoted-printable':\n return decodeQuotedPrintable(content);\n case 'base64':\n return decodeBase64(content);\n case '7bit':\n case '8bit':\n case 'binary':\n default:\n return content;\n }\n}\n/**\n * Decode quoted-printable content\n */ function decodeQuotedPrintable(content) {\n return content.replace(/=\\r\\n/g, '') // Remove soft line breaks\n .replace(/=([a-fA-F0-9]{2})/g, (match, p1)=>{\n return String.fromCharCode(parseInt(p1, 16));\n });\n}\n/**\n * Decode base64 content\n */ function decodeBase64(content) {\n // Remove any whitespace\n const cleanContent = content.replace(/\\s+/g, '');\n try {\n return atob(cleanContent);\n } catch (e) {\n console.error('Error decoding base64', e);\n return content;\n }\n}\n/**\n * Convert content from specified charset to UTF-8\n */ function convertCharset(content, charset) {\n // Basic charset conversion - for more complex cases, consider TextDecoder\n if (charset.toLowerCase() === 'utf-8' || charset.toLowerCase() === 'utf8') {\n return content;\n }\n try {\n // For browsers that support TextDecoder\n if (typeof TextDecoder !== 'undefined') {\n // Convert string to ArrayBuffer\n const buffer = new Uint8Array(content.length);\n for(let i = 0; i < content.length; i++){\n buffer[i] = content.charCodeAt(i);\n }\n const decoder = new TextDecoder(charset);\n return decoder.decode(buffer);\n }\n } catch (e) {\n console.warn('TextDecoder not supported or failed for charset:', charset);\n }\n // Fallback for simpler encodings\n if (charset.toLowerCase() === 'iso-8859-1' || charset.toLowerCase() === 'latin1') {\n return content; // Browser will handle this reasonably\n }\n console.warn('Unsupported charset:', charset);\n return content; // Return as-is if we can't convert\n}\n/**\n * Decode encoded header values (RFC 2047)\n */ function decodeHeaderValue(value) {\n // Decode headers like =?UTF-8?Q?Subject?=\n return value.replace(/=\\?([^?]+)\\?([BQ])\\?([^?]*)\\?=/gi, (match, charset, encoding, text)=>{\n if (encoding.toUpperCase() === 'B') {\n // Base64 encoding\n try {\n const decoded = atob(text);\n return convertCharset(decoded, charset);\n } catch (e) {\n return text;\n }\n } else if (encoding.toUpperCase() === 'Q') {\n // Quoted-printable\n try {\n const decoded = text.replace(/_/g, ' ').replace(/=([\\da-fA-F]{2})/g, (m, hex)=>String.fromCharCode(parseInt(hex, 16)));\n return convertCharset(decoded, charset);\n } catch (e) {\n return text;\n }\n }\n return text;\n });\n}\n/**\n * Clean HTML content for safe rendering\n */ function cleanHtml(html) {\n // Basic sanitization - consider using DOMPurify in a real app\n return html.replace(/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi, '').replace(/on\\w+=\"[^\"]*\"/g, '').replace(/on\\w+='[^']*'/g, '').replace(/on\\w+=\\w+/g, '');\n}\n/**\n * Check if email content is likely in MIME format\n */ function isMimeFormat(content) {\n if (!content) return false;\n // Check for common MIME headers\n return content.includes('Content-Type:') && content.includes('MIME-Version:') && /\\r\\n\\r\\n/.test(content);\n}\n/**\n * Adapt legacy email to use the decoded MIME content\n */ function adaptMimeEmail(legacyEmail) {\n if (!legacyEmail.content || typeof legacyEmail.content !== 'string' || !isMimeFormat(legacyEmail.content)) {\n return legacyEmail;\n }\n try {\n const decoded = decodeInfomaniakEmail(legacyEmail.content);\n return {\n ...legacyEmail,\n html: decoded.html,\n text: decoded.text || '',\n subject: decoded.subject || legacyEmail.subject,\n // Keep original content for reference\n content: decoded.html || decoded.text || ''\n };\n } catch (e) {\n console.error('Failed to decode MIME email:', e);\n return legacyEmail;\n }\n}\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi91dGlscy9lbWFpbC1taW1lLWRlY29kZXIudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7Ozs7Q0FNQyxHQTZCRDs7Q0FFQyxHQUNNLFNBQVNBLHNCQUFzQkMsZUFBdUI7SUFDM0Qsa0NBQWtDO0lBQ2xDLE1BQU1DLFVBQVVDLGVBQWVGO0lBQy9CLE1BQU1HLGFBQWFDLGtCQUFrQkg7SUFFckMsSUFBSUUsV0FBV0UsV0FBVyxDQUFDQyxRQUFRLENBQUMsY0FBYztRQUNoRCxPQUFPQyxzQkFBc0JQLGlCQUFpQkc7SUFDOUMsT0FBTztRQUNQLE9BQU9LLHVCQUF1QlIsaUJBQWlCRztJQUNqRDtBQUNGO0FBRUE7O0NBRUMsR0FDRCxTQUFTSyx1QkFBdUJDLFFBQWdCLEVBQUVOLFVBQTJCO0lBQzNFLE1BQU1PLGFBQWFELFNBQVNFLEtBQUssQ0FBQztJQUNsQyxNQUFNVixVQUFVUyxVQUFVLENBQUMsRUFBRTtJQUM3QixNQUFNRSxPQUFPRixXQUFXRyxLQUFLLENBQUMsR0FBR0MsSUFBSSxDQUFDO0lBRXRDLE1BQU1DLGdCQUFnQkMscUJBQXFCZjtJQUMzQyxNQUFNZ0IsY0FBY0Msa0JBQWtCTixNQUFNVCxXQUFXZ0IsUUFBUTtJQUMvRCxNQUFNQyxVQUFVQyxlQUFlSixhQUFhZCxXQUFXbUIsT0FBTztJQUU5RCxNQUFNQyxTQUF1QjtRQUMzQkMsU0FBU0Msa0JBQWtCVixhQUFhLENBQUMsVUFBVSxJQUFJO1FBQ3ZEVyxNQUFNRCxrQkFBa0JWLGFBQWEsQ0FBQyxPQUFPLElBQUk7UUFDakRZLElBQUlGLGtCQUFrQlYsYUFBYSxDQUFDLEtBQUssSUFBSTtRQUM3Q2EsSUFBSWIsYUFBYSxDQUFDLEtBQUssR0FBR1Usa0JBQWtCVixhQUFhLENBQUMsS0FBSyxJQUFJYztRQUNuRUMsS0FBS2YsYUFBYSxDQUFDLE1BQU0sR0FBR1Usa0JBQWtCVixhQUFhLENBQUMsTUFBTSxJQUFJYztRQUN0RUUsTUFBTWhCLGFBQWEsQ0FBQyxPQUFPLElBQUk7UUFDL0JkLFNBQVNjO0lBQ1g7SUFFQSxJQUFJWixXQUFXRSxXQUFXLENBQUNDLFFBQVEsQ0FBQyxlQUFlO1FBQ2pEaUIsT0FBT1MsSUFBSSxHQUFHWjtJQUNoQixPQUFPLElBQUlqQixXQUFXRSxXQUFXLENBQUNDLFFBQVEsQ0FBQyxjQUFjO1FBQ3ZEaUIsT0FBT1UsSUFBSSxHQUFHYjtJQUNoQjtJQUVBLE9BQU9HO0FBQ1Q7QUFFQTs7Q0FFQyxHQUNELFNBQVNoQixzQkFBc0JFLFFBQWdCLEVBQUVOLFVBQTJCO0lBQzFFLElBQUksQ0FBQ0EsV0FBVytCLFFBQVEsRUFBRTtRQUN4QixNQUFNLElBQUlDLE1BQU07SUFDbEI7SUFFQSxNQUFNRCxXQUFXL0IsV0FBVytCLFFBQVE7SUFDcEMsTUFBTXhCLGFBQWFELFNBQVNFLEtBQUssQ0FBQztJQUNsQyxNQUFNVixVQUFVUyxVQUFVLENBQUMsRUFBRTtJQUM3QixNQUFNSyxnQkFBZ0JDLHFCQUFxQmY7SUFFM0MsTUFBTXNCLFNBQXVCO1FBQzNCQyxTQUFTQyxrQkFBa0JWLGFBQWEsQ0FBQyxVQUFVLElBQUk7UUFDdkRXLE1BQU1ELGtCQUFrQlYsYUFBYSxDQUFDLE9BQU8sSUFBSTtRQUNqRFksSUFBSUYsa0JBQWtCVixhQUFhLENBQUMsS0FBSyxJQUFJO1FBQzdDYSxJQUFJYixhQUFhLENBQUMsS0FBSyxHQUFHVSxrQkFBa0JWLGFBQWEsQ0FBQyxLQUFLLElBQUljO1FBQ25FQyxLQUFLZixhQUFhLENBQUMsTUFBTSxHQUFHVSxrQkFBa0JWLGFBQWEsQ0FBQyxNQUFNLElBQUljO1FBQ3RFRSxNQUFNaEIsYUFBYSxDQUFDLE9BQU8sSUFBSTtRQUMvQnFCLGFBQWEsRUFBRTtRQUNmbkMsU0FBU2M7SUFDWDtJQUVBLG9CQUFvQjtJQUNwQixNQUFNc0IsY0FBYzVCLFNBQVNFLEtBQUssQ0FBQyxPQUFPdUI7SUFFMUMsK0VBQStFO0lBQy9FLElBQUssSUFBSUksSUFBSSxHQUFHQSxJQUFJRCxZQUFZRSxNQUFNLEdBQUcsR0FBR0QsSUFBSztRQUMvQyxNQUFNRSxPQUFPSCxXQUFXLENBQUNDLEVBQUU7UUFDM0IsTUFBTUcsY0FBY3ZDLGVBQWVzQztRQUNuQyxNQUFNRSxpQkFBaUJ0QyxrQkFBa0JxQztRQUV6QywwQ0FBMEM7UUFDMUMsSUFBSUMsZUFBZXJDLFdBQVcsQ0FBQ0MsUUFBUSxDQUFDLGdCQUFnQm9DLGVBQWVSLFFBQVEsRUFBRTtZQUMvRSxNQUFNUyxlQUFlcEMsc0JBQXNCaUMsTUFBTUU7WUFDakQsSUFBSUMsYUFBYVYsSUFBSSxFQUFFVixPQUFPVSxJQUFJLEdBQUdVLGFBQWFWLElBQUk7WUFDdEQsSUFBSVUsYUFBYVgsSUFBSSxFQUFFVCxPQUFPUyxJQUFJLEdBQUdXLGFBQWFYLElBQUk7WUFDdEQsSUFBSVcsYUFBYVAsV0FBVyxFQUFFO2dCQUM1QmIsT0FBT2EsV0FBVyxHQUFHO3VCQUFLYixPQUFPYSxXQUFXLElBQUksRUFBRTt1QkFBTU8sYUFBYVAsV0FBVztpQkFBQztZQUNuRjtZQUNBO1FBQ0Y7UUFFQSw0QkFBNEI7UUFDNUIsTUFBTVEsY0FBY0osS0FBSzdCLEtBQUssQ0FBQyxZQUFZRSxLQUFLLENBQUMsR0FBR0MsSUFBSSxDQUFDO1FBQ3pELE1BQU0rQixpQkFBaUIzQixrQkFBa0IwQixhQUFhRixlQUFldkIsUUFBUTtRQUM3RSxNQUFNQyxVQUFVQyxlQUFld0IsZ0JBQWdCSCxlQUFlcEIsT0FBTztRQUVyRSw0QkFBNEI7UUFDNUIsTUFBTXdCLHFCQUFxQkMsZUFBZU4sYUFBYSwwQkFBMEI7UUFFakYsSUFBSUssbUJBQW1CeEMsUUFBUSxDQUFDLGVBQWU7WUFDN0Msd0JBQXdCO1lBQ3hCLE1BQU0wQyxXQUFXQyxnQkFBZ0JIO1lBQ2pDLElBQUl2QixPQUFPYSxXQUFXLElBQUlZLFVBQVU7Z0JBQ2xDekIsT0FBT2EsV0FBVyxDQUFDYyxJQUFJLENBQUM7b0JBQ3RCRjtvQkFDQTNDLGFBQWFxQyxlQUFlckMsV0FBVztvQkFDdkNjLFVBQVV1QixlQUFldkIsUUFBUTtvQkFDakNDLFNBQVN5QjtnQkFDWDtZQUNKO1FBQ0EsT0FBTztZQUNMLHlCQUF5QjtZQUN6QixJQUFJSCxlQUFlckMsV0FBVyxDQUFDQyxRQUFRLENBQUMsZUFBZTtnQkFDckRpQixPQUFPUyxJQUFJLEdBQUdaO1lBQ2hCLE9BQU8sSUFBSXNCLGVBQWVyQyxXQUFXLENBQUNDLFFBQVEsQ0FBQyxjQUFjO2dCQUMzRGlCLE9BQU9VLElBQUksR0FBR2I7WUFDaEI7UUFDRjtJQUNGO0lBRUEsT0FBT0c7QUFDVDtBQUVBOztDQUVDLEdBQ0QsU0FBU3JCLGVBQWVrQixPQUFlO0lBQ3JDLE1BQU0rQixZQUFZL0IsUUFBUWdDLE9BQU8sQ0FBQztJQUNsQyxJQUFJRCxjQUFjLENBQUMsR0FBRyxPQUFPL0I7SUFDN0IsT0FBT0EsUUFBUWlDLFNBQVMsQ0FBQyxHQUFHRjtBQUM5QjtBQUVBOztDQUVDLEdBQ0QsU0FBU25DLHFCQUFxQmYsT0FBZTtJQUMzQyxNQUFNc0IsU0FBaUMsQ0FBQztJQUN4QyxNQUFNK0IsUUFBUXJELFFBQVFVLEtBQUssQ0FBQztJQUU1QixJQUFJNEMsZ0JBQWdCO0lBQ3BCLElBQUlDLGVBQWU7SUFFbkIsS0FBSyxNQUFNQyxRQUFRSCxNQUFPO1FBQ3hCLDBEQUEwRDtRQUMxRCxJQUFJRyxLQUFLQyxVQUFVLENBQUMsUUFBUUQsS0FBS0MsVUFBVSxDQUFDLE9BQU87WUFDakRGLGdCQUFnQixNQUFNQyxLQUFLRSxJQUFJO1FBQ2pDLE9BQU87WUFDTCxpQ0FBaUM7WUFDakMsSUFBSUosZUFBZTtnQkFDakJoQyxNQUFNLENBQUNnQyxjQUFjSyxXQUFXLEdBQUcsR0FBR0o7WUFDMUM7WUFFRSxNQUFNSyxhQUFhSixLQUFLTCxPQUFPLENBQUM7WUFDaEMsSUFBSVMsZUFBZSxDQUFDLEdBQUc7Z0JBQ3JCTixnQkFBZ0JFLEtBQUtKLFNBQVMsQ0FBQyxHQUFHUSxZQUFZRixJQUFJO2dCQUNsREgsZUFBZUMsS0FBS0osU0FBUyxDQUFDUSxhQUFhLEdBQUdGLElBQUk7WUFDcEQ7UUFDRjtJQUNGO0lBRUEsdUJBQXVCO0lBQ3ZCLElBQUlKLGVBQWU7UUFDakJoQyxNQUFNLENBQUNnQyxjQUFjSyxXQUFXLEdBQUcsR0FBR0o7SUFDeEM7SUFFQSxPQUFPakM7QUFDVDtBQUVBOztDQUVDLEdBQ0QsU0FBU25CLGtCQUFrQkgsT0FBZTtJQUN4QyxNQUFNSSxjQUFjMEMsZUFBZTlDLFNBQVMsbUJBQW1CO0lBQy9ELE1BQU1rQixXQUFXNEIsZUFBZTlDLFNBQVMsZ0NBQWdDO0lBRXpFLGtCQUFrQjtJQUNsQixJQUFJcUIsVUFBVTtJQUNkLE1BQU13QyxlQUFlekQsWUFBWTBELEtBQUssQ0FBQztJQUN2QyxJQUFJRCxjQUFjO1FBQ2hCeEMsVUFBVXdDLFlBQVksQ0FBQyxFQUFFO0lBQzNCO0lBRUEsd0NBQXdDO0lBQ3hDLElBQUk1QjtJQUNKLE1BQU04QixnQkFBZ0IzRCxZQUFZMEQsS0FBSyxDQUFDO0lBQ3hDLElBQUlDLGVBQWU7UUFDakI5QixXQUFXOEIsYUFBYSxDQUFDLEVBQUU7SUFDN0I7SUFFQSxPQUFPO1FBQUUzRDtRQUFhYztRQUFVRztRQUFTWTtJQUFTO0FBQ3BEO0FBRUE7O0NBRUMsR0FDRCxTQUFTYSxlQUFlOUMsT0FBZSxFQUFFZ0UsSUFBWTtJQUNuRCxNQUFNQyxRQUFRLElBQUlDLE9BQU8sR0FBUSxPQUFMRixNQUFLLHNCQUFvQjtJQUNyRCxNQUFNRixRQUFROUQsUUFBUThELEtBQUssQ0FBQ0c7SUFDNUIsT0FBT0gsUUFBUUEsS0FBSyxDQUFDLEVBQUUsQ0FBQ0osSUFBSSxLQUFLO0FBQ25DO0FBRUE7O0NBRUMsR0FDRCxTQUFTVixnQkFBZ0JILGtCQUEwQjtJQUNqRCxNQUFNc0IsZ0JBQWdCdEIsbUJBQW1CaUIsS0FBSyxDQUFDO0lBQy9DLElBQUlLLGVBQWUsT0FBT0EsYUFBYSxDQUFDLEVBQUU7SUFFMUMsd0JBQXdCO0lBQ3hCLE1BQU1DLHVCQUF1QnZCLG1CQUFtQmlCLEtBQUssQ0FBQztJQUN0RCxJQUFJTSxzQkFBc0I7UUFDeEIsSUFBSTtZQUNGLE9BQU9DLG1CQUFtQkQsb0JBQW9CLENBQUMsRUFBRSxDQUFDRSxPQUFPLENBQUMsa0JBQWtCO1FBQzlFLEVBQUUsT0FBT0MsR0FBRztZQUNWLE9BQU9ILG9CQUFvQixDQUFDLEVBQUU7UUFDaEM7SUFDRjtJQUVBLE9BQU87QUFDVDtBQUVBOztDQUVDLEdBQ0QsU0FBU25ELGtCQUFrQkUsT0FBZSxFQUFFRCxRQUFnQjtJQUMxRCxPQUFRQSxTQUFTeUMsV0FBVztRQUMxQixLQUFLO1lBQ0gsT0FBT2Esc0JBQXNCckQ7UUFDL0IsS0FBSztZQUNILE9BQU9zRCxhQUFhdEQ7UUFDdEIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0w7WUFDRSxPQUFPQTtJQUNYO0FBQ0Y7QUFFQTs7Q0FFQyxHQUNELFNBQVNxRCxzQkFBc0JyRCxPQUFlO0lBQzVDLE9BQU9BLFFBQ0ptRCxPQUFPLENBQUMsVUFBVSxJQUE0QiwwQkFBMEI7S0FDeEVBLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQ1IsT0FBT1k7UUFDckMsT0FBT0MsT0FBT0MsWUFBWSxDQUFDQyxTQUFTSCxJQUFJO0lBQzFDO0FBQ0o7QUFFQTs7Q0FFQyxHQUNELFNBQVNELGFBQWF0RCxPQUFlO0lBQ25DLHdCQUF3QjtJQUN4QixNQUFNMkQsZUFBZTNELFFBQVFtRCxPQUFPLENBQUMsUUFBUTtJQUM3QyxJQUFJO1FBQ0YsT0FBT1MsS0FBS0Q7SUFDZCxFQUFFLE9BQU9QLEdBQUc7UUFDVlMsUUFBUUMsS0FBSyxDQUFDLHlCQUF5QlY7UUFDdkMsT0FBT3BEO0lBQ1Q7QUFDRjtBQUVBOztDQUVDLEdBQ0QsU0FBU0MsZUFBZUQsT0FBZSxFQUFFRSxPQUFlO0lBQ3RELDBFQUEwRTtJQUMxRSxJQUFJQSxRQUFRc0MsV0FBVyxPQUFPLFdBQVd0QyxRQUFRc0MsV0FBVyxPQUFPLFFBQVE7UUFDekUsT0FBT3hDO0lBQ1Q7SUFFQSxJQUFJO1FBQ0Ysd0NBQXdDO1FBQ3hDLElBQUksT0FBTytELGdCQUFnQixhQUFhO1lBQ3RDLGdDQUFnQztZQUNoQyxNQUFNQyxTQUFTLElBQUlDLFdBQVdqRSxRQUFRbUIsTUFBTTtZQUM1QyxJQUFLLElBQUlELElBQUksR0FBR0EsSUFBSWxCLFFBQVFtQixNQUFNLEVBQUVELElBQUs7Z0JBQ3ZDOEMsTUFBTSxDQUFDOUMsRUFBRSxHQUFHbEIsUUFBUWtFLFVBQVUsQ0FBQ2hEO1lBQ2pDO1lBRUEsTUFBTWlELFVBQVUsSUFBSUosWUFBWTdEO1lBQ2hDLE9BQU9pRSxRQUFRQyxNQUFNLENBQUNKO1FBQ3hCO0lBQ0YsRUFBRSxPQUFPWixHQUFHO1FBQ1ZTLFFBQVFRLElBQUksQ0FBQyxvREFBb0RuRTtJQUNyRTtJQUVFLGlDQUFpQztJQUNqQyxJQUFJQSxRQUFRc0MsV0FBVyxPQUFPLGdCQUFnQnRDLFFBQVFzQyxXQUFXLE9BQU8sVUFBVTtRQUNoRixPQUFPeEMsU0FBVSxzQ0FBc0M7SUFDekQ7SUFFQTZELFFBQVFRLElBQUksQ0FBQyx3QkFBd0JuRTtJQUNyQyxPQUFPRixTQUFVLG1DQUFtQztBQUN0RDtBQUVBOztDQUVDLEdBQ0QsU0FBU0ssa0JBQWtCaUUsS0FBYTtJQUN0QywwQ0FBMEM7SUFDMUMsT0FBT0EsTUFBTW5CLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQ1IsT0FBT3pDLFNBQVNILFVBQVVhO1FBQ2xGLElBQUliLFNBQVN3RSxXQUFXLE9BQU8sS0FBSztZQUNsQyxrQkFBa0I7WUFDbEIsSUFBSTtnQkFDRixNQUFNQyxVQUFVWixLQUFLaEQ7Z0JBQ3JCLE9BQU9YLGVBQWV1RSxTQUFTdEU7WUFDakMsRUFBRSxPQUFPa0QsR0FBRztnQkFDVixPQUFPeEM7WUFDZjtRQUNJLE9BQU8sSUFBSWIsU0FBU3dFLFdBQVcsT0FBTyxLQUFLO1lBQ3pDLG1CQUFtQjtZQUNuQixJQUFJO2dCQUNGLE1BQU1DLFVBQVU1RCxLQUNidUMsT0FBTyxDQUFDLE1BQU0sS0FDZEEsT0FBTyxDQUFDLHFCQUFxQixDQUFDc0IsR0FBV0MsTUFDeENsQixPQUFPQyxZQUFZLENBQUNDLFNBQVNnQixLQUFLO2dCQUV0QyxPQUFPekUsZUFBZXVFLFNBQVN0RTtZQUNqQyxFQUFFLE9BQU9rRCxHQUFHO2dCQUNWLE9BQU94QztZQUNUO1FBQ0Y7UUFDQSxPQUFPQTtJQUNUO0FBQ0Y7QUFFQTs7Q0FFQyxHQUNNLFNBQVMrRCxVQUFVOUQsSUFBWTtJQUNwQyw4REFBOEQ7SUFDOUQsT0FBT0EsS0FDSnNDLE9BQU8sQ0FBQyx1REFBdUQsSUFDL0RBLE9BQU8sQ0FBQyxrQkFBa0IsSUFDMUJBLE9BQU8sQ0FBQyxrQkFBa0IsSUFDMUJBLE9BQU8sQ0FBQyxjQUFjO0FBQzNCO0FBRUE7O0NBRUMsR0FDTSxTQUFTeUIsYUFBYTVFLE9BQTJCO0lBQ3RELElBQUksQ0FBQ0EsU0FBUyxPQUFPO0lBRXJCLGdDQUFnQztJQUNoQyxPQUNFQSxRQUFRZCxRQUFRLENBQUMsb0JBQ2pCYyxRQUFRZCxRQUFRLENBQUMsb0JBQ2pCLFdBQVcyRixJQUFJLENBQUM3RTtBQUVwQjtBQUVBOztDQUVDLEdBQ00sU0FBUzhFLGVBQWVDLFdBQStCO0lBQzVELElBQUksQ0FBQ0EsWUFBWS9FLE9BQU8sSUFBSSxPQUFPK0UsWUFBWS9FLE9BQU8sS0FBSyxZQUFZLENBQUM0RSxhQUFhRyxZQUFZL0UsT0FBTyxHQUFHO1FBQ3pHLE9BQU8rRTtJQUNUO0lBRUEsSUFBSTtRQUNGLE1BQU1QLFVBQVU3RixzQkFBc0JvRyxZQUFZL0UsT0FBTztRQUV6RCxPQUFPO1lBQ0wsR0FBRytFLFdBQVc7WUFDZGxFLE1BQU0yRCxRQUFRM0QsSUFBSTtZQUNsQkQsTUFBTTRELFFBQVE1RCxJQUFJLElBQUk7WUFDdEJSLFNBQVNvRSxRQUFRcEUsT0FBTyxJQUFJMkUsWUFBWTNFLE9BQU87WUFDL0Msc0NBQXNDO1lBQ3RDSixTQUFTd0UsUUFBUTNELElBQUksSUFBSTJELFFBQVE1RCxJQUFJLElBQUk7UUFDM0M7SUFDRixFQUFFLE9BQU93QyxHQUFHO1FBQ1ZTLFFBQVFDLEtBQUssQ0FBQyxnQ0FBZ0NWO1FBQzlDLE9BQU8yQjtJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbGliL3V0aWxzL2VtYWlsLW1pbWUtZGVjb2Rlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEluZm9tYW5pYWsgRW1haWwgTUlNRSBEZWNvZGVyXG4gKiBcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHNwZWNpYWxpemVkIGZ1bmN0aW9ucyB0byBkZWNvZGUgTUlNRS1lbmNvZGVkIGVtYWlsIGNvbnRlbnRcbiAqIGZyb20gSW5mb21hbmlhayBzZXJ2ZXJzIGZvciBwcm9wZXIgZGlzcGxheSBpbiBhIGZyb250ZW5kIGFwcGxpY2F0aW9uLlxuICogSXQgaGFuZGxlcyBtdWx0aXBhcnQgbWVzc2FnZXMsIGRpZmZlcmVudCBlbmNvZGluZ3MsIGFuZCBjaGFyYWN0ZXIgc2V0IGNvbnZlcnNpb25zLlxuICovXG5cbmltcG9ydCB7IExlZ2FjeUVtYWlsTWVzc2FnZSB9IGZyb20gJ0AvdHlwZXMvZW1haWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlY29kZWRFbWFpbCB7XG4gIHN1YmplY3Q6IHN0cmluZztcbiAgZnJvbTogc3RyaW5nO1xuICB0bzogc3RyaW5nO1xuICBjYz86IHN0cmluZztcbiAgYmNjPzogc3RyaW5nO1xuICBkYXRlOiBzdHJpbmc7XG4gIHRleHQ/OiBzdHJpbmc7XG4gIGh0bWw/OiBzdHJpbmc7XG4gIGF0dGFjaG1lbnRzPzogQXJyYXk8e1xuICAgIGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgY29udGVudFR5cGU6IHN0cmluZztcbiAgICBlbmNvZGluZz86IHN0cmluZztcbiAgICBjb250ZW50Pzogc3RyaW5nO1xuICB9PjtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1haWxIZWFkZXJJbmZvIHtcbiAgY29udGVudFR5cGU6IHN0cmluZztcbiAgZW5jb2Rpbmc6IHN0cmluZztcbiAgY2hhcnNldDogc3RyaW5nO1xuICBib3VuZGFyeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBNYWluIGZ1bmN0aW9uIHRvIGRlY29kZSBJbmZvbWFuaWFrIEVtYWlsIGluIE1JTUUgZm9ybWF0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVJbmZvbWFuaWFrRW1haWwocmF3RW1haWxDb250ZW50OiBzdHJpbmcpOiBEZWNvZGVkRW1haWwge1xuICAvLyBDaGVjayBpZiBpdCdzIGEgbXVsdGlwYXJ0IGVtYWlsXG4gIGNvbnN0IGhlYWRlcnMgPSBleHRyYWN0SGVhZGVycyhyYXdFbWFpbENvbnRlbnQpO1xuICBjb25zdCBoZWFkZXJJbmZvID0gcGFyc2VFbWFpbEhlYWRlcnMoaGVhZGVycyk7XG4gIFxuICBpZiAoaGVhZGVySW5mby5jb250ZW50VHlwZS5pbmNsdWRlcygnbXVsdGlwYXJ0JykpIHtcbiAgICByZXR1cm4gcHJvY2Vzc011bHRpcGFydEVtYWlsKHJhd0VtYWlsQ29udGVudCwgaGVhZGVySW5mbyk7XG4gICAgfSBlbHNlIHtcbiAgICByZXR1cm4gcHJvY2Vzc1NpbmdsZVBhcnRFbWFpbChyYXdFbWFpbENvbnRlbnQsIGhlYWRlckluZm8pO1xuICB9XG59XG5cbi8qKlxuICogUHJvY2VzcyBhIHNpbmdsZSBwYXJ0IGVtYWlsXG4gKi9cbmZ1bmN0aW9uIHByb2Nlc3NTaW5nbGVQYXJ0RW1haWwocmF3RW1haWw6IHN0cmluZywgaGVhZGVySW5mbzogRW1haWxIZWFkZXJJbmZvKTogRGVjb2RlZEVtYWlsIHtcbiAgY29uc3Qgc3BsaXRFbWFpbCA9IHJhd0VtYWlsLnNwbGl0KCdcXHJcXG5cXHJcXG4nKTtcbiAgY29uc3QgaGVhZGVycyA9IHNwbGl0RW1haWxbMF07XG4gIGNvbnN0IGJvZHkgPSBzcGxpdEVtYWlsLnNsaWNlKDEpLmpvaW4oJ1xcclxcblxcclxcbicpO1xuICBcbiAgY29uc3QgcGFyc2VkSGVhZGVycyA9IHBhcnNlSGVhZGVyc1RvT2JqZWN0KGhlYWRlcnMpO1xuICBjb25zdCBkZWNvZGVkQm9keSA9IGRlY29kZU1pbWVDb250ZW50KGJvZHksIGhlYWRlckluZm8uZW5jb2RpbmcpO1xuICBjb25zdCBjb250ZW50ID0gY29udmVydENoYXJzZXQoZGVjb2RlZEJvZHksIGhlYWRlckluZm8uY2hhcnNldCk7XG4gIFxuICBjb25zdCByZXN1bHQ6IERlY29kZWRFbWFpbCA9IHtcbiAgICBzdWJqZWN0OiBkZWNvZGVIZWFkZXJWYWx1ZShwYXJzZWRIZWFkZXJzWydzdWJqZWN0J10gfHwgJycpLFxuICAgIGZyb206IGRlY29kZUhlYWRlclZhbHVlKHBhcnNlZEhlYWRlcnNbJ2Zyb20nXSB8fCAnJyksXG4gICAgdG86IGRlY29kZUhlYWRlclZhbHVlKHBhcnNlZEhlYWRlcnNbJ3RvJ10gfHwgJycpLFxuICAgIGNjOiBwYXJzZWRIZWFkZXJzWydjYyddID8gZGVjb2RlSGVhZGVyVmFsdWUocGFyc2VkSGVhZGVyc1snY2MnXSkgOiB1bmRlZmluZWQsXG4gICAgYmNjOiBwYXJzZWRIZWFkZXJzWydiY2MnXSA/IGRlY29kZUhlYWRlclZhbHVlKHBhcnNlZEhlYWRlcnNbJ2JjYyddKSA6IHVuZGVmaW5lZCxcbiAgICBkYXRlOiBwYXJzZWRIZWFkZXJzWydkYXRlJ10gfHwgJycsXG4gICAgaGVhZGVyczogcGFyc2VkSGVhZGVyc1xuICB9O1xuICBcbiAgaWYgKGhlYWRlckluZm8uY29udGVudFR5cGUuaW5jbHVkZXMoJ3RleHQvcGxhaW4nKSkge1xuICAgIHJlc3VsdC50ZXh0ID0gY29udGVudDtcbiAgfSBlbHNlIGlmIChoZWFkZXJJbmZvLmNvbnRlbnRUeXBlLmluY2x1ZGVzKCd0ZXh0L2h0bWwnKSkge1xuICAgIHJlc3VsdC5odG1sID0gY29udGVudDtcbiAgfVxuICBcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBQcm9jZXNzIGEgbXVsdGlwYXJ0IGVtYWlsXG4gKi9cbmZ1bmN0aW9uIHByb2Nlc3NNdWx0aXBhcnRFbWFpbChyYXdFbWFpbDogc3RyaW5nLCBoZWFkZXJJbmZvOiBFbWFpbEhlYWRlckluZm8pOiBEZWNvZGVkRW1haWwge1xuICBpZiAoIWhlYWRlckluZm8uYm91bmRhcnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ011bHRpcGFydCBlbWFpbCBtaXNzaW5nIGJvdW5kYXJ5Jyk7XG4gIH1cbiAgXG4gIGNvbnN0IGJvdW5kYXJ5ID0gaGVhZGVySW5mby5ib3VuZGFyeTtcbiAgY29uc3Qgc3BsaXRFbWFpbCA9IHJhd0VtYWlsLnNwbGl0KCdcXHJcXG5cXHJcXG4nKTtcbiAgY29uc3QgaGVhZGVycyA9IHNwbGl0RW1haWxbMF07XG4gIGNvbnN0IHBhcnNlZEhlYWRlcnMgPSBwYXJzZUhlYWRlcnNUb09iamVjdChoZWFkZXJzKTtcbiAgXG4gIGNvbnN0IHJlc3VsdDogRGVjb2RlZEVtYWlsID0ge1xuICAgIHN1YmplY3Q6IGRlY29kZUhlYWRlclZhbHVlKHBhcnNlZEhlYWRlcnNbJ3N1YmplY3QnXSB8fCAnJyksXG4gICAgZnJvbTogZGVjb2RlSGVhZGVyVmFsdWUocGFyc2VkSGVhZGVyc1snZnJvbSddIHx8ICcnKSxcbiAgICB0bzogZGVjb2RlSGVhZGVyVmFsdWUocGFyc2VkSGVhZGVyc1sndG8nXSB8fCAnJyksXG4gICAgY2M6IHBhcnNlZEhlYWRlcnNbJ2NjJ10gPyBkZWNvZGVIZWFkZXJWYWx1ZShwYXJzZWRIZWFkZXJzWydjYyddKSA6IHVuZGVmaW5lZCxcbiAgICBiY2M6IHBhcnNlZEhlYWRlcnNbJ2JjYyddID8gZGVjb2RlSGVhZGVyVmFsdWUocGFyc2VkSGVhZGVyc1snYmNjJ10pIDogdW5kZWZpbmVkLFxuICAgIGRhdGU6IHBhcnNlZEhlYWRlcnNbJ2RhdGUnXSB8fCAnJyxcbiAgICBhdHRhY2htZW50czogW10sXG4gICAgaGVhZGVyczogcGFyc2VkSGVhZGVyc1xuICB9O1xuICBcbiAgLy8gU3BsaXQgYnkgYm91bmRhcnlcbiAgY29uc3QgYm9keUNvbnRlbnQgPSByYXdFbWFpbC5zcGxpdCgnLS0nICsgYm91bmRhcnkpO1xuICBcbiAgLy8gUHJvY2VzcyBlYWNoIHBhcnQgKHNraXAgZmlyc3QgYXMgaXQncyBoZWFkZXJzIGFuZCBsYXN0IGFzIGl0J3MgYm91bmRhcnkgZW5kKVxuICBmb3IgKGxldCBpID0gMTsgaSA8IGJvZHlDb250ZW50Lmxlbmd0aCAtIDE7IGkrKykge1xuICAgIGNvbnN0IHBhcnQgPSBib2R5Q29udGVudFtpXTtcbiAgICBjb25zdCBwYXJ0SGVhZGVycyA9IGV4dHJhY3RIZWFkZXJzKHBhcnQpO1xuICAgIGNvbnN0IHBhcnRIZWFkZXJJbmZvID0gcGFyc2VFbWFpbEhlYWRlcnMocGFydEhlYWRlcnMpO1xuICAgIFxuICAgIC8vIEhhbmRsZSBzdWItbXVsdGlwYXJ0IChuZXN0ZWQgbXVsdGlwYXJ0KVxuICAgIGlmIChwYXJ0SGVhZGVySW5mby5jb250ZW50VHlwZS5pbmNsdWRlcygnbXVsdGlwYXJ0JykgJiYgcGFydEhlYWRlckluZm8uYm91bmRhcnkpIHtcbiAgICAgIGNvbnN0IHN1Yk11bHRpcGFydCA9IHByb2Nlc3NNdWx0aXBhcnRFbWFpbChwYXJ0LCBwYXJ0SGVhZGVySW5mbyk7XG4gICAgICBpZiAoc3ViTXVsdGlwYXJ0Lmh0bWwpIHJlc3VsdC5odG1sID0gc3ViTXVsdGlwYXJ0Lmh0bWw7XG4gICAgICBpZiAoc3ViTXVsdGlwYXJ0LnRleHQpIHJlc3VsdC50ZXh0ID0gc3ViTXVsdGlwYXJ0LnRleHQ7XG4gICAgICBpZiAoc3ViTXVsdGlwYXJ0LmF0dGFjaG1lbnRzKSB7XG4gICAgICAgIHJlc3VsdC5hdHRhY2htZW50cyA9IFsuLi4ocmVzdWx0LmF0dGFjaG1lbnRzIHx8IFtdKSwgLi4uc3ViTXVsdGlwYXJ0LmF0dGFjaG1lbnRzXTtcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBcbiAgICAvLyBHZXQgY29udGVudCBhZnRlciBoZWFkZXJzXG4gICAgY29uc3QgcGFydENvbnRlbnQgPSBwYXJ0LnNwbGl0KCdcXHJcXG5cXHJcXG4nKS5zbGljZSgxKS5qb2luKCdcXHJcXG5cXHJcXG4nKTtcbiAgICBjb25zdCBkZWNvZGVkQ29udGVudCA9IGRlY29kZU1pbWVDb250ZW50KHBhcnRDb250ZW50LCBwYXJ0SGVhZGVySW5mby5lbmNvZGluZyk7XG4gICAgY29uc3QgY29udGVudCA9IGNvbnZlcnRDaGFyc2V0KGRlY29kZWRDb250ZW50LCBwYXJ0SGVhZGVySW5mby5jaGFyc2V0KTtcbiAgICBcbiAgICAvLyBDaGVjayBjb250ZW50IGRpc3Bvc2l0aW9uXG4gICAgY29uc3QgY29udGVudERpc3Bvc2l0aW9uID0gZ2V0SGVhZGVyVmFsdWUocGFydEhlYWRlcnMsICdDb250ZW50LURpc3Bvc2l0aW9uJykgfHwgJyc7XG4gICAgXG4gICAgaWYgKGNvbnRlbnREaXNwb3NpdGlvbi5pbmNsdWRlcygnYXR0YWNobWVudCcpKSB7XG4gICAgICAvLyBUaGlzIGlzIGFuIGF0dGFjaG1lbnRcbiAgICAgIGNvbnN0IGZpbGVuYW1lID0gZXh0cmFjdEZpbGVuYW1lKGNvbnRlbnREaXNwb3NpdGlvbik7XG4gICAgICBpZiAocmVzdWx0LmF0dGFjaG1lbnRzICYmIGZpbGVuYW1lKSB7XG4gICAgICAgIHJlc3VsdC5hdHRhY2htZW50cy5wdXNoKHtcbiAgICAgICAgICBmaWxlbmFtZSxcbiAgICAgICAgICBjb250ZW50VHlwZTogcGFydEhlYWRlckluZm8uY29udGVudFR5cGUsXG4gICAgICAgICAgZW5jb2Rpbmc6IHBhcnRIZWFkZXJJbmZvLmVuY29kaW5nLFxuICAgICAgICAgIGNvbnRlbnQ6IGRlY29kZWRDb250ZW50XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhpcyBpcyBhIGNvbnRlbnQgcGFydFxuICAgICAgaWYgKHBhcnRIZWFkZXJJbmZvLmNvbnRlbnRUeXBlLmluY2x1ZGVzKCd0ZXh0L3BsYWluJykpIHtcbiAgICAgICAgcmVzdWx0LnRleHQgPSBjb250ZW50O1xuICAgICAgfSBlbHNlIGlmIChwYXJ0SGVhZGVySW5mby5jb250ZW50VHlwZS5pbmNsdWRlcygndGV4dC9odG1sJykpIHtcbiAgICAgICAgcmVzdWx0Lmh0bWwgPSBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBFeHRyYWN0IGhlYWRlcnMgZnJvbSBhbiBlbWFpbCBvciBwYXJ0XG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RIZWFkZXJzKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGhlYWRlckVuZCA9IGNvbnRlbnQuaW5kZXhPZignXFxyXFxuXFxyXFxuJyk7XG4gIGlmIChoZWFkZXJFbmQgPT09IC0xKSByZXR1cm4gY29udGVudDtcbiAgcmV0dXJuIGNvbnRlbnQuc3Vic3RyaW5nKDAsIGhlYWRlckVuZCk7XG59XG5cbi8qKlxuICogUGFyc2UgZW1haWwgaGVhZGVycyBpbnRvIGFuIG9iamVjdFxuICovXG5mdW5jdGlvbiBwYXJzZUhlYWRlcnNUb09iamVjdChoZWFkZXJzOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGNvbnN0IGxpbmVzID0gaGVhZGVycy5zcGxpdCgnXFxyXFxuJyk7XG4gIFxuICBsZXQgY3VycmVudEhlYWRlciA9ICcnO1xuICBsZXQgY3VycmVudFZhbHVlID0gJyc7XG4gIFxuICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAvLyBJZiBsaW5lIHN0YXJ0cyB3aXRoIGEgc3BhY2Ugb3IgdGFiLCBpdCdzIGEgY29udGludWF0aW9uXG4gICAgaWYgKGxpbmUuc3RhcnRzV2l0aCgnICcpIHx8IGxpbmUuc3RhcnRzV2l0aCgnXFx0JykpIHtcbiAgICAgIGN1cnJlbnRWYWx1ZSArPSAnICcgKyBsaW5lLnRyaW0oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2F2ZSBwcmV2aW91cyBoZWFkZXIgaWYgZXhpc3RzXG4gICAgICBpZiAoY3VycmVudEhlYWRlcikge1xuICAgICAgICByZXN1bHRbY3VycmVudEhlYWRlci50b0xvd2VyQ2FzZSgpXSA9IGN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gICAgICBcbiAgICAgIGNvbnN0IGNvbG9uSW5kZXggPSBsaW5lLmluZGV4T2YoJzonKTtcbiAgICAgIGlmIChjb2xvbkluZGV4ICE9PSAtMSkge1xuICAgICAgICBjdXJyZW50SGVhZGVyID0gbGluZS5zdWJzdHJpbmcoMCwgY29sb25JbmRleCkudHJpbSgpO1xuICAgICAgICBjdXJyZW50VmFsdWUgPSBsaW5lLnN1YnN0cmluZyhjb2xvbkluZGV4ICsgMSkudHJpbSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgLy8gU2F2ZSB0aGUgbGFzdCBoZWFkZXJcbiAgaWYgKGN1cnJlbnRIZWFkZXIpIHtcbiAgICByZXN1bHRbY3VycmVudEhlYWRlci50b0xvd2VyQ2FzZSgpXSA9IGN1cnJlbnRWYWx1ZTtcbiAgfVxuICBcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBQYXJzZSBlbWFpbCBoZWFkZXJzIHRvIGV4dHJhY3QgY29udGVudCB0eXBlLCBlbmNvZGluZyBhbmQgY2hhcnNldFxuICovXG5mdW5jdGlvbiBwYXJzZUVtYWlsSGVhZGVycyhoZWFkZXJzOiBzdHJpbmcpOiBFbWFpbEhlYWRlckluZm8ge1xuICBjb25zdCBjb250ZW50VHlwZSA9IGdldEhlYWRlclZhbHVlKGhlYWRlcnMsICdDb250ZW50LVR5cGUnKSB8fCAndGV4dC9wbGFpbic7XG4gIGNvbnN0IGVuY29kaW5nID0gZ2V0SGVhZGVyVmFsdWUoaGVhZGVycywgJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmcnKSB8fCAnN2JpdCc7XG4gIFxuICAvLyBFeHRyYWN0IGNoYXJzZXRcbiAgbGV0IGNoYXJzZXQgPSAndXRmLTgnO1xuICBjb25zdCBjaGFyc2V0TWF0Y2ggPSBjb250ZW50VHlwZS5tYXRjaCgvY2hhcnNldFxccyo9XFxzKltcIiddPyhbXlwiJztcXHNdKykvaSk7XG4gIGlmIChjaGFyc2V0TWF0Y2gpIHtcbiAgICBjaGFyc2V0ID0gY2hhcnNldE1hdGNoWzFdO1xuICB9XG4gIFxuICAvLyBFeHRyYWN0IGJvdW5kYXJ5IGZvciBtdWx0aXBhcnQgZW1haWxzXG4gIGxldCBib3VuZGFyeTtcbiAgY29uc3QgYm91bmRhcnlNYXRjaCA9IGNvbnRlbnRUeXBlLm1hdGNoKC9ib3VuZGFyeVxccyo9XFxzKltcIiddPyhbXlwiJztcXHNdKykvaSk7XG4gIGlmIChib3VuZGFyeU1hdGNoKSB7XG4gICAgYm91bmRhcnkgPSBib3VuZGFyeU1hdGNoWzFdO1xuICB9XG4gIFxuICByZXR1cm4geyBjb250ZW50VHlwZSwgZW5jb2RpbmcsIGNoYXJzZXQsIGJvdW5kYXJ5IH07XG59XG5cbi8qKlxuICogR2V0IGEgc3BlY2lmaWMgaGVhZGVyIHZhbHVlXG4gKi9cbmZ1bmN0aW9uIGdldEhlYWRlclZhbHVlKGhlYWRlcnM6IHN0cmluZywgbmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgJHtuYW1lfTpcXFxccyooW15cXFxcclxcXFxuXSspYCwgJ2knKTtcbiAgY29uc3QgbWF0Y2ggPSBoZWFkZXJzLm1hdGNoKHJlZ2V4KTtcbiAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0udHJpbSgpIDogbnVsbDtcbn1cblxuLyoqXG4gKiBFeHRyYWN0IGZpbGVuYW1lIGZyb20gQ29udGVudC1EaXNwb3NpdGlvbiBoZWFkZXJcbiAqL1xuZnVuY3Rpb24gZXh0cmFjdEZpbGVuYW1lKGNvbnRlbnREaXNwb3NpdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZmlsZW5hbWVNYXRjaCA9IGNvbnRlbnREaXNwb3NpdGlvbi5tYXRjaCgvZmlsZW5hbWVcXHMqPVxccypbXCInXT8oW15cIic7XFxzXSspL2kpO1xuICBpZiAoZmlsZW5hbWVNYXRjaCkgcmV0dXJuIGZpbGVuYW1lTWF0Y2hbMV07XG4gIFxuICAvLyBGb3IgZW5jb2RlZCBmaWxlbmFtZXNcbiAgY29uc3QgZW5jb2RlZEZpbGVuYW1lTWF0Y2ggPSBjb250ZW50RGlzcG9zaXRpb24ubWF0Y2goL2ZpbGVuYW1lXFwqPShbXiddKiknW14nXSonKFteO10rKS9pKTtcbiAgaWYgKGVuY29kZWRGaWxlbmFtZU1hdGNoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoZW5jb2RlZEZpbGVuYW1lTWF0Y2hbMl0ucmVwbGFjZSgvJShbXFxkQS1GXXsyfSkvZywgJyUkMScpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZW5jb2RlZEZpbGVuYW1lTWF0Y2hbMl07XG4gICAgfVxuICB9XG4gIFxuICByZXR1cm4gJ2F0dGFjaG1lbnQnO1xufVxuXG4vKipcbiAqIERlY29kZSBNSU1FIGNvbnRlbnQgYmFzZWQgb24gZW5jb2RpbmdcbiAqL1xuZnVuY3Rpb24gZGVjb2RlTWltZUNvbnRlbnQoY29udGVudDogc3RyaW5nLCBlbmNvZGluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgc3dpdGNoIChlbmNvZGluZy50b0xvd2VyQ2FzZSgpKSB7XG4gICAgY2FzZSAncXVvdGVkLXByaW50YWJsZSc6XG4gICAgICByZXR1cm4gZGVjb2RlUXVvdGVkUHJpbnRhYmxlKGNvbnRlbnQpO1xuICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICByZXR1cm4gZGVjb2RlQmFzZTY0KGNvbnRlbnQpO1xuICAgIGNhc2UgJzdiaXQnOlxuICAgIGNhc2UgJzhiaXQnOlxuICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBjb250ZW50O1xuICB9XG59XG5cbi8qKlxuICogRGVjb2RlIHF1b3RlZC1wcmludGFibGUgY29udGVudFxuICovXG5mdW5jdGlvbiBkZWNvZGVRdW90ZWRQcmludGFibGUoY29udGVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNvbnRlbnRcbiAgICAucmVwbGFjZSgvPVxcclxcbi9nLCAnJykgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHNvZnQgbGluZSBicmVha3NcbiAgICAucmVwbGFjZSgvPShbYS1mQS1GMC05XXsyfSkvZywgKG1hdGNoLCBwMSkgPT4geyAgLy8gUmVwbGFjZSBoZXggY29kZXMgd2l0aCBjaGFyc1xuICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQocDEsIDE2KSk7XG4gICAgfSk7XG59XG5cbi8qKlxuICogRGVjb2RlIGJhc2U2NCBjb250ZW50XG4gKi9cbmZ1bmN0aW9uIGRlY29kZUJhc2U2NChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBSZW1vdmUgYW55IHdoaXRlc3BhY2VcbiAgY29uc3QgY2xlYW5Db250ZW50ID0gY29udGVudC5yZXBsYWNlKC9cXHMrL2csICcnKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXRvYihjbGVhbkNvbnRlbnQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgZGVjb2RpbmcgYmFzZTY0JywgZSk7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0IGNvbnRlbnQgZnJvbSBzcGVjaWZpZWQgY2hhcnNldCB0byBVVEYtOFxuICovXG5mdW5jdGlvbiBjb252ZXJ0Q2hhcnNldChjb250ZW50OiBzdHJpbmcsIGNoYXJzZXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIEJhc2ljIGNoYXJzZXQgY29udmVyc2lvbiAtIGZvciBtb3JlIGNvbXBsZXggY2FzZXMsIGNvbnNpZGVyIFRleHREZWNvZGVyXG4gIGlmIChjaGFyc2V0LnRvTG93ZXJDYXNlKCkgPT09ICd1dGYtOCcgfHwgY2hhcnNldC50b0xvd2VyQ2FzZSgpID09PSAndXRmOCcpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuICBcbiAgdHJ5IHtcbiAgICAvLyBGb3IgYnJvd3NlcnMgdGhhdCBzdXBwb3J0IFRleHREZWNvZGVyXG4gICAgaWYgKHR5cGVvZiBUZXh0RGVjb2RlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIENvbnZlcnQgc3RyaW5nIHRvIEFycmF5QnVmZmVyXG4gICAgICBjb25zdCBidWZmZXIgPSBuZXcgVWludDhBcnJheShjb250ZW50Lmxlbmd0aCk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbnRlbnQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgYnVmZmVyW2ldID0gY29udGVudC5jaGFyQ29kZUF0KGkpO1xuICAgICAgfVxuICAgICAgXG4gICAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKGNoYXJzZXQpO1xuICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGJ1ZmZlcik7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS53YXJuKCdUZXh0RGVjb2RlciBub3Qgc3VwcG9ydGVkIG9yIGZhaWxlZCBmb3IgY2hhcnNldDonLCBjaGFyc2V0KTtcbn1cblxuICAvLyBGYWxsYmFjayBmb3Igc2ltcGxlciBlbmNvZGluZ3NcbiAgaWYgKGNoYXJzZXQudG9Mb3dlckNhc2UoKSA9PT0gJ2lzby04ODU5LTEnIHx8IGNoYXJzZXQudG9Mb3dlckNhc2UoKSA9PT0gJ2xhdGluMScpIHtcbiAgICByZXR1cm4gY29udGVudDsgIC8vIEJyb3dzZXIgd2lsbCBoYW5kbGUgdGhpcyByZWFzb25hYmx5XG4gIH1cbiAgXG4gIGNvbnNvbGUud2FybignVW5zdXBwb3J0ZWQgY2hhcnNldDonLCBjaGFyc2V0KTtcbiAgcmV0dXJuIGNvbnRlbnQ7ICAvLyBSZXR1cm4gYXMtaXMgaWYgd2UgY2FuJ3QgY29udmVydFxufVxuXG4vKipcbiAqIERlY29kZSBlbmNvZGVkIGhlYWRlciB2YWx1ZXMgKFJGQyAyMDQ3KVxuICovXG5mdW5jdGlvbiBkZWNvZGVIZWFkZXJWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gRGVjb2RlIGhlYWRlcnMgbGlrZSA9P1VURi04P1E/U3ViamVjdD89XG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlKC89XFw/KFteP10rKVxcPyhbQlFdKVxcPyhbXj9dKilcXD89L2dpLCAobWF0Y2gsIGNoYXJzZXQsIGVuY29kaW5nLCB0ZXh0KSA9PiB7XG4gICAgaWYgKGVuY29kaW5nLnRvVXBwZXJDYXNlKCkgPT09ICdCJykge1xuICAgICAgLy8gQmFzZTY0IGVuY29kaW5nXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkZWNvZGVkID0gYXRvYih0ZXh0KTtcbiAgICAgICAgcmV0dXJuIGNvbnZlcnRDaGFyc2V0KGRlY29kZWQsIGNoYXJzZXQpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gdGV4dDtcbn1cbiAgICB9IGVsc2UgaWYgKGVuY29kaW5nLnRvVXBwZXJDYXNlKCkgPT09ICdRJykge1xuICAgICAgLy8gUXVvdGVkLXByaW50YWJsZVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGVjb2RlZCA9IHRleHRcbiAgICAgICAgICAucmVwbGFjZSgvXy9nLCAnICcpXG4gICAgICAgICAgLnJlcGxhY2UoLz0oW1xcZGEtZkEtRl17Mn0pL2csIChtOiBzdHJpbmcsIGhleDogc3RyaW5nKSA9PiBcbiAgICAgICAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoaGV4LCAxNikpXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGNvbnZlcnRDaGFyc2V0KGRlY29kZWQsIGNoYXJzZXQpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRleHQ7XG4gIH0pO1xufVxuXG4vKipcbiAqIENsZWFuIEhUTUwgY29udGVudCBmb3Igc2FmZSByZW5kZXJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuSHRtbChodG1sOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBCYXNpYyBzYW5pdGl6YXRpb24gLSBjb25zaWRlciB1c2luZyBET01QdXJpZnkgaW4gYSByZWFsIGFwcFxuICByZXR1cm4gaHRtbFxuICAgIC5yZXBsYWNlKC88c2NyaXB0XFxiW148XSooPzooPyE8XFwvc2NyaXB0Pik8W148XSopKjxcXC9zY3JpcHQ+L2dpLCAnJylcbiAgICAucmVwbGFjZSgvb25cXHcrPVwiW15cIl0qXCIvZywgJycpXG4gICAgLnJlcGxhY2UoL29uXFx3Kz0nW14nXSonL2csICcnKVxuICAgIC5yZXBsYWNlKC9vblxcdys9XFx3Ky9nLCAnJyk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgZW1haWwgY29udGVudCBpcyBsaWtlbHkgaW4gTUlNRSBmb3JtYXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTWltZUZvcm1hdChjb250ZW50OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgaWYgKCFjb250ZW50KSByZXR1cm4gZmFsc2U7XG4gIFxuICAvLyBDaGVjayBmb3IgY29tbW9uIE1JTUUgaGVhZGVyc1xuICByZXR1cm4gKFxuICAgIGNvbnRlbnQuaW5jbHVkZXMoJ0NvbnRlbnQtVHlwZTonKSAmJlxuICAgIGNvbnRlbnQuaW5jbHVkZXMoJ01JTUUtVmVyc2lvbjonKSAmJlxuICAgIC9cXHJcXG5cXHJcXG4vLnRlc3QoY29udGVudClcbiAgKTtcbn1cblxuLyoqXG4gKiBBZGFwdCBsZWdhY3kgZW1haWwgdG8gdXNlIHRoZSBkZWNvZGVkIE1JTUUgY29udGVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRhcHRNaW1lRW1haWwobGVnYWN5RW1haWw6IExlZ2FjeUVtYWlsTWVzc2FnZSk6IExlZ2FjeUVtYWlsTWVzc2FnZSB7XG4gIGlmICghbGVnYWN5RW1haWwuY29udGVudCB8fCB0eXBlb2YgbGVnYWN5RW1haWwuY29udGVudCAhPT0gJ3N0cmluZycgfHwgIWlzTWltZUZvcm1hdChsZWdhY3lFbWFpbC5jb250ZW50KSkge1xuICAgIHJldHVybiBsZWdhY3lFbWFpbDtcbiAgfVxuICBcbiAgdHJ5IHtcbiAgICBjb25zdCBkZWNvZGVkID0gZGVjb2RlSW5mb21hbmlha0VtYWlsKGxlZ2FjeUVtYWlsLmNvbnRlbnQpO1xuICAgIFxuICAgIHJldHVybiB7XG4gICAgICAuLi5sZWdhY3lFbWFpbCxcbiAgICAgIGh0bWw6IGRlY29kZWQuaHRtbCxcbiAgICAgIHRleHQ6IGRlY29kZWQudGV4dCB8fCAnJyxcbiAgICAgIHN1YmplY3Q6IGRlY29kZWQuc3ViamVjdCB8fCBsZWdhY3lFbWFpbC5zdWJqZWN0LFxuICAgICAgLy8gS2VlcCBvcmlnaW5hbCBjb250ZW50IGZvciByZWZlcmVuY2VcbiAgICAgIGNvbnRlbnQ6IGRlY29kZWQuaHRtbCB8fCBkZWNvZGVkLnRleHQgfHwgJydcbiAgICB9O1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGRlY29kZSBNSU1FIGVtYWlsOicsIGUpO1xuICAgIHJldHVybiBsZWdhY3lFbWFpbDtcbiAgfVxufSAiXSwibmFtZXMiOlsiZGVjb2RlSW5mb21hbmlha0VtYWlsIiwicmF3RW1haWxDb250ZW50IiwiaGVhZGVycyIsImV4dHJhY3RIZWFkZXJzIiwiaGVhZGVySW5mbyIsInBhcnNlRW1haWxIZWFkZXJzIiwiY29udGVudFR5cGUiLCJpbmNsdWRlcyIsInByb2Nlc3NNdWx0aXBhcnRFbWFpbCIsInByb2Nlc3NTaW5nbGVQYXJ0RW1haWwiLCJyYXdFbWFpbCIsInNwbGl0RW1haWwiLCJzcGxpdCIsImJvZHkiLCJzbGljZSIsImpvaW4iLCJwYXJzZWRIZWFkZXJzIiwicGFyc2VIZWFkZXJzVG9PYmplY3QiLCJkZWNvZGVkQm9keSIsImRlY29kZU1pbWVDb250ZW50IiwiZW5jb2RpbmciLCJjb250ZW50IiwiY29udmVydENoYXJzZXQiLCJjaGFyc2V0IiwicmVzdWx0Iiwic3ViamVjdCIsImRlY29kZUhlYWRlclZhbHVlIiwiZnJvbSIsInRvIiwiY2MiLCJ1bmRlZmluZWQiLCJiY2MiLCJkYXRlIiwidGV4dCIsImh0bWwiLCJib3VuZGFyeSIsIkVycm9yIiwiYXR0YWNobWVudHMiLCJib2R5Q29udGVudCIsImkiLCJsZW5ndGgiLCJwYXJ0IiwicGFydEhlYWRlcnMiLCJwYXJ0SGVhZGVySW5mbyIsInN1Yk11bHRpcGFydCIsInBhcnRDb250ZW50IiwiZGVjb2RlZENvbnRlbnQiLCJjb250ZW50RGlzcG9zaXRpb24iLCJnZXRIZWFkZXJWYWx1ZSIsImZpbGVuYW1lIiwiZXh0cmFjdEZpbGVuYW1lIiwicHVzaCIsImhlYWRlckVuZCIsImluZGV4T2YiLCJzdWJzdHJpbmciLCJsaW5lcyIsImN1cnJlbnRIZWFkZXIiLCJjdXJyZW50VmFsdWUiLCJsaW5lIiwic3RhcnRzV2l0aCIsInRyaW0iLCJ0b0xvd2VyQ2FzZSIsImNvbG9uSW5kZXgiLCJjaGFyc2V0TWF0Y2giLCJtYXRjaCIsImJvdW5kYXJ5TWF0Y2giLCJuYW1lIiwicmVnZXgiLCJSZWdFeHAiLCJmaWxlbmFtZU1hdGNoIiwiZW5jb2RlZEZpbGVuYW1lTWF0Y2giLCJkZWNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiZSIsImRlY29kZVF1b3RlZFByaW50YWJsZSIsImRlY29kZUJhc2U2NCIsInAxIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwicGFyc2VJbnQiLCJjbGVhbkNvbnRlbnQiLCJhdG9iIiwiY29uc29sZSIsImVycm9yIiwiVGV4dERlY29kZXIiLCJidWZmZXIiLCJVaW50OEFycmF5IiwiY2hhckNvZGVBdCIsImRlY29kZXIiLCJkZWNvZGUiLCJ3YXJuIiwidmFsdWUiLCJ0b1VwcGVyQ2FzZSIsImRlY29kZWQiLCJtIiwiaGV4IiwiY2xlYW5IdG1sIiwiaXNNaW1lRm9ybWF0IiwidGVzdCIsImFkYXB0TWltZUVtYWlsIiwibGVnYWN5RW1haWwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/utils/email-mime-decoder.ts\n"));
/***/ }),
/***/ "(app-pages-browser)/./lib/utils/email-utils.ts":
/*!**********************************!*\
!*** ./lib/utils/email-utils.ts ***!
\**********************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyTextDirection: () => (/* reexport safe */ _text_direction__WEBPACK_IMPORTED_MODULE_1__.applyTextDirection),\n/* harmony export */ detectTextDirection: () => (/* reexport safe */ _text_direction__WEBPACK_IMPORTED_MODULE_1__.detectTextDirection),\n/* harmony export */ extractEmailContent: () => (/* reexport safe */ _email_content__WEBPACK_IMPORTED_MODULE_2__.extractEmailContent),\n/* harmony export */ formatEmailAddresses: () => (/* binding */ formatEmailAddresses),\n/* harmony export */ formatEmailContent: () => (/* reexport safe */ _email_content__WEBPACK_IMPORTED_MODULE_2__.formatEmailContent),\n/* harmony export */ formatEmailDate: () => (/* binding */ formatEmailDate),\n/* harmony export */ formatEmailForReplyOrForward: () => (/* binding */ formatEmailForReplyOrForward),\n/* harmony export */ formatForwardedEmail: () => (/* binding */ formatForwardedEmail),\n/* harmony export */ formatPlainTextToHtml: () => (/* reexport safe */ _email_content__WEBPACK_IMPORTED_MODULE_2__.formatPlainTextToHtml),\n/* harmony export */ formatReplyEmail: () => (/* binding */ formatReplyEmail),\n/* harmony export */ normalizeEmailContent: () => (/* binding */ normalizeEmailContent),\n/* harmony export */ processHtmlContent: () => (/* reexport safe */ _email_content__WEBPACK_IMPORTED_MODULE_2__.processHtmlContent),\n/* harmony export */ renderEmailContent: () => (/* binding */ renderEmailContent),\n/* harmony export */ sanitizeHtml: () => (/* reexport safe */ _dom_purify_config__WEBPACK_IMPORTED_MODULE_0__.sanitizeHtml)\n/* harmony export */ });\n/* harmony import */ var _dom_purify_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom-purify-config */ \"(app-pages-browser)/./lib/utils/dom-purify-config.ts\");\n/* harmony import */ var _text_direction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./text-direction */ \"(app-pages-browser)/./lib/utils/text-direction.ts\");\n/* harmony import */ var _email_content__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./email-content */ \"(app-pages-browser)/./lib/utils/email-content.ts\");\n/* harmony import */ var _lib_utils_email_adapters__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils/email-adapters */ \"(app-pages-browser)/./lib/utils/email-adapters.ts\");\n/* harmony import */ var _email_mime_decoder__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./email-mime-decoder */ \"(app-pages-browser)/./lib/utils/email-mime-decoder.ts\");\n/**\n * Unified Email Utilities\n * \n * This file provides backward compatibility for email utilities.\n * New code should import directly from the specialized modules:\n * - email-content.ts (content processing)\n * - text-direction.ts (direction handling)\n * - dom-purify-config.ts (sanitization)\n */ // Import from specialized modules\n\n\n\n\n\n// Re-export important functions for backward compatibility\n\n/**\n * Format email addresses for display\n * Can handle both array of EmailAddress objects or a string\n */ function formatEmailAddresses(addresses) {\n if (!addresses) return '';\n // If already a string, return as is\n if (typeof addresses === 'string') {\n return addresses;\n }\n // If array, format each address\n if (Array.isArray(addresses) && addresses.length > 0) {\n return addresses.map((addr)=>addr.name && addr.name !== addr.address ? \"\".concat(addr.name, \" <\").concat(addr.address, \">\") : addr.address).join(', ');\n }\n return '';\n}\n/**\n * Format date for display\n */ function formatEmailDate(date) {\n if (!date) return '';\n try {\n const dateObj = typeof date === 'string' ? new Date(date) : date;\n return dateObj.toLocaleString('en-US', {\n weekday: 'short',\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n });\n } catch (e) {\n return typeof date === 'string' ? date : date.toString();\n }\n}\n/**\n * Normalize email content to our standard format regardless of input format\n */ function normalizeEmailContent(email) {\n if (!email) {\n throw new Error('Cannot normalize null or undefined email');\n }\n // First check if this is a MIME format email that needs decoding\n if (email.content && (0,_email_mime_decoder__WEBPACK_IMPORTED_MODULE_4__.isMimeFormat)(email.content)) {\n try {\n console.log('Detected MIME format email, decoding...');\n // We need to force cast here due to type incompatibility between EmailMessage and the mime result\n const adaptedEmail = (0,_email_mime_decoder__WEBPACK_IMPORTED_MODULE_4__.adaptMimeEmail)(email);\n return {\n ...adaptedEmail,\n flags: adaptedEmail.flags || [] // Ensure flags is always an array\n };\n } catch (error) {\n console.error('Error decoding MIME email:', error);\n // Continue with regular normalization if MIME decoding fails\n }\n }\n // Check if it's already in the standardized format\n if (email.content && typeof email.content === 'object' && (email.content.html !== undefined || email.content.text !== undefined)) {\n // Already in the correct format\n return email;\n }\n // Otherwise, adapt from legacy format\n // We need to force cast here due to type incompatibility\n const adaptedEmail = (0,_lib_utils_email_adapters__WEBPACK_IMPORTED_MODULE_3__.adaptLegacyEmail)(email);\n return {\n ...adaptedEmail,\n flags: adaptedEmail.flags || [] // Ensure flags is always an array\n };\n}\n/**\n * Render normalized email content into HTML for display\n */ function renderEmailContent(content) {\n if (!content) {\n return '<div class=\"email-content-empty\">No content available</div>';\n }\n // Create a simple object that can be processed by formatEmailContent\n const emailObj = {\n content\n };\n // Use the centralized formatting function\n return (0,_email_content__WEBPACK_IMPORTED_MODULE_2__.formatEmailContent)(emailObj);\n}\n/**\n * Get recipient addresses from an email for reply or forward\n */ function getRecipientAddresses(email, type) {\n // Format the recipients\n const to = Array.isArray(email.from) ? email.from.map((addr)=>{\n if (typeof addr === 'string') return addr;\n return addr.address ? addr.address : '';\n }).filter(Boolean).join(', ') : typeof email.from === 'string' ? email.from : '';\n // For reply-all, include other recipients in CC\n let cc = '';\n if (type === 'reply-all') {\n const toRecipients = Array.isArray(email.to) ? email.to.map((addr)=>{\n if (typeof addr === 'string') return addr;\n return addr.address ? addr.address : '';\n }).filter(Boolean) : typeof email.to === 'string' ? [\n email.to\n ] : [];\n const ccRecipients = Array.isArray(email.cc) ? email.cc.map((addr)=>{\n if (typeof addr === 'string') return addr;\n return addr.address ? addr.address : '';\n }).filter(Boolean) : typeof email.cc === 'string' ? [\n email.cc\n ] : [];\n cc = [\n ...toRecipients,\n ...ccRecipients\n ].join(', ');\n }\n return {\n to,\n cc\n };\n}\n/**\n * Get formatted header information for reply or forward\n */ function getFormattedHeaderInfo(email) {\n // Format the subject\n const subject = email.subject && !email.subject.startsWith('Re:') && !email.subject.startsWith('Fwd:') ? email.subject : email.subject || '';\n // Format the date\n const dateStr = email.date ? new Date(email.date).toLocaleString() : 'Unknown Date';\n // Format sender\n const fromStr = Array.isArray(email.from) ? email.from.map((addr)=>{\n if (typeof addr === 'string') return addr;\n return addr.name ? \"\".concat(addr.name, \" <\").concat(addr.address, \">\") : addr.address;\n }).join(', ') : typeof email.from === 'string' ? email.from : 'Unknown Sender';\n // Format recipients\n const toStr = Array.isArray(email.to) ? email.to.map((addr)=>{\n if (typeof addr === 'string') return addr;\n return addr.name ? \"\".concat(addr.name, \" <\").concat(addr.address, \">\") : addr.address;\n }).join(', ') : typeof email.to === 'string' ? email.to : '';\n // Format CC \n const ccStr = Array.isArray(email.cc) ? email.cc.map((addr)=>{\n if (typeof addr === 'string') return addr;\n return addr.name ? \"\".concat(addr.name, \" <\").concat(addr.address, \">\") : addr.address;\n }).join(', ') : typeof email.cc === 'string' ? email.cc : '';\n return {\n fromStr,\n toStr,\n ccStr,\n dateStr,\n subject\n };\n}\n/**\n * Format email for reply\n */ function formatReplyEmail(originalEmail) {\n let type = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 'reply';\n var _email_attachments, _result_content_html, _result_content_text;\n console.log('formatReplyEmail called:', {\n type,\n emailId: originalEmail === null || originalEmail === void 0 ? void 0 : originalEmail.id\n });\n if (!originalEmail) {\n console.warn('formatReplyEmail: No original email provided');\n return {\n to: '',\n subject: '',\n content: {\n text: '',\n html: '',\n isHtml: false,\n direction: 'ltr'\n }\n };\n }\n // Adapt legacy format if needed\n const email = 'content' in originalEmail ? originalEmail : (0,_lib_utils_email_adapters__WEBPACK_IMPORTED_MODULE_3__.adaptLegacyEmail)(originalEmail);\n // Format subject with Re: prefix\n const subject = email.subject ? email.subject.toLowerCase().startsWith('re:') ? email.subject : \"Re: \".concat(email.subject) : 'Re: ';\n // Get recipient addresses\n const { to, cc } = getRecipientAddresses(email, type);\n // Get quote header\n const { fromStr, dateStr } = getFormattedHeaderInfo(email);\n // Use the from name if available, otherwise use email address\n const sender = fromStr;\n const date = dateStr;\n // Extract raw content from the original email\n const { text: originalTextContent, html: originalHtmlContent } = (0,_email_content__WEBPACK_IMPORTED_MODULE_2__.extractEmailContent)(email.content);\n // First sanitize the original content\n const sanitizedContent = (0,_dom_purify_config__WEBPACK_IMPORTED_MODULE_0__.sanitizeHtml)(originalHtmlContent || originalTextContent);\n // Build the reply structure with sanitized but not yet fully formatted content\n const replyStructure = '\\n <div style=\"margin: 20px 0 10px 0; color: #666; border-bottom: 1px solid #ddd; padding-bottom: 5px;\">\\n On '.concat(date, \", \").concat(sender, ' wrote:\\n </div>\\n <blockquote style=\"margin: 0; padding-left: 10px; border-left: 3px solid #ddd; color: #505050; background-color: #f9f9f9; padding: 10px;\">\\n ').concat(sanitizedContent, \"\\n </blockquote>\\n \");\n // Format plain text reply if available\n let formattedTextContent = '';\n if (originalTextContent) {\n const lines = originalTextContent.split(/\\r\\n|\\r|\\n/);\n formattedTextContent = \"On \".concat(date, \", \").concat(sender, \" wrote:\\n\\n\").concat(lines.map((line)=>\"> \".concat(line)).join('\\n'));\n }\n const result = {\n to,\n cc: cc || undefined,\n subject,\n content: {\n html: replyStructure,\n text: formattedTextContent || originalTextContent,\n isHtml: true,\n direction: typeof email.content === 'object' && email.content ? email.content.direction || 'ltr' : 'ltr'\n },\n attachments: (_email_attachments = email.attachments) === null || _email_attachments === void 0 ? void 0 : _email_attachments.map((att)=>{\n // Create properly typed attachment\n if ('name' in att) {\n return {\n filename: att.filename || att.name || 'attachment',\n contentType: att.contentType || 'application/octet-stream',\n content: att.content\n };\n }\n return {\n filename: att.filename || 'attachment',\n contentType: att.contentType || 'application/octet-stream',\n content: att.content\n };\n })\n };\n console.log('formatReplyEmail result:', {\n to: result.to,\n subject: result.subject,\n hasHtml: !!result.content.html,\n htmlLength: ((_result_content_html = result.content.html) === null || _result_content_html === void 0 ? void 0 : _result_content_html.length) || 0,\n hasText: !!result.content.text,\n textLength: ((_result_content_text = result.content.text) === null || _result_content_text === void 0 ? void 0 : _result_content_text.length) || 0\n });\n return result;\n}\n/**\n * Format email for forwarding\n */ function formatForwardedEmail(originalEmail) {\n var _email_attachments, _result_content_html, _result_content_text;\n console.log('formatForwardedEmail called:', {\n emailId: originalEmail === null || originalEmail === void 0 ? void 0 : originalEmail.id\n });\n if (!originalEmail) {\n console.warn('formatForwardedEmail: No original email provided');\n return {\n to: '',\n subject: '',\n content: {\n text: '',\n html: '',\n isHtml: false,\n direction: 'ltr'\n }\n };\n }\n // Adapt legacy format if needed\n const email = 'content' in originalEmail ? originalEmail : (0,_lib_utils_email_adapters__WEBPACK_IMPORTED_MODULE_3__.adaptLegacyEmail)(originalEmail);\n // Format subject with Fwd: prefix\n const subject = email.subject ? email.subject.toLowerCase().startsWith('fwd:') ? email.subject : \"Fwd: \".concat(email.subject) : 'Fwd: ';\n // Get original email info for headers\n const { fromStr, toStr, ccStr, dateStr } = getFormattedHeaderInfo(email);\n console.log('Forward header info:', {\n fromStr,\n toStr,\n dateStr,\n subject\n });\n // Original sent date\n const date = dateStr;\n // Extract raw content from the original email\n const { text: originalTextContent, html: originalHtmlContent } = (0,_email_content__WEBPACK_IMPORTED_MODULE_2__.extractEmailContent)(email.content);\n // First sanitize the original content\n const sanitizedContent = (0,_dom_purify_config__WEBPACK_IMPORTED_MODULE_0__.sanitizeHtml)(originalHtmlContent || originalTextContent);\n // Build the forward structure with sanitized but not yet fully formatted content\n const forwardStructure = '\\n <div style=\"margin: 20px 0 10px 0; color: #666; font-family: Arial, sans-serif;\">\\n ---------- Forwarded message ----------<br>\\n <table style=\"margin: 10px 0 15px 0; border-collapse: collapse; font-size: 13px; color: #333;\">\\n <tbody>\\n <tr>\\n <td style=\"padding: 3px 10px 3px 0; font-weight: bold; text-align: right; vertical-align: top;\">From:</td>\\n <td style=\"padding: 3px 0;\">'.concat(fromStr, '</td>\\n </tr>\\n <tr>\\n <td style=\"padding: 3px 10px 3px 0; font-weight: bold; text-align: right; vertical-align: top;\">Date:</td>\\n <td style=\"padding: 3px 0;\">').concat(date, '</td>\\n </tr>\\n <tr>\\n <td style=\"padding: 3px 10px 3px 0; font-weight: bold; text-align: right; vertical-align: top;\">Subject:</td>\\n <td style=\"padding: 3px 0;\">').concat(email.subject || '', '</td>\\n </tr>\\n <tr>\\n <td style=\"padding: 3px 10px 3px 0; font-weight: bold; text-align: right; vertical-align: top;\">To:</td>\\n <td style=\"padding: 3px 0;\">').concat(toStr, \"</td>\\n </tr>\\n \").concat(ccStr ? '\\n <tr>\\n <td style=\"padding: 3px 10px 3px 0; font-weight: bold; text-align: right; vertical-align: top;\">Cc:</td>\\n <td style=\"padding: 3px 0;\">'.concat(ccStr, \"</td>\\n </tr>\\n \") : '', '\\n </tbody>\\n </table>\\n </div>\\n <blockquote style=\"margin: 0; padding-left: 10px; border-left: 3px solid #ddd; color: #505050; background-color: #f9f9f9; padding: 10px;\">\\n ').concat(sanitizedContent, \"\\n </blockquote>\\n \");\n // Format plain text version\n let formattedTextContent = '';\n if (originalTextContent) {\n formattedTextContent = \"\\n---------- Forwarded message ----------\\nFrom: \".concat(fromStr, \"\\nDate: \").concat(date, \"\\nSubject: \").concat(email.subject || '', \"\\nTo: \").concat(toStr, \"\\n\").concat(ccStr ? \"Cc: \".concat(ccStr, \"\\n\") : '', \"\\n\\n\").concat(originalTextContent, \"\\n \").trim();\n }\n const result = {\n to: '',\n subject,\n content: {\n html: forwardStructure,\n text: formattedTextContent || originalTextContent,\n isHtml: true,\n direction: typeof email.content === 'object' && email.content ? email.content.direction || 'ltr' : 'ltr'\n },\n attachments: (_email_attachments = email.attachments) === null || _email_attachments === void 0 ? void 0 : _email_attachments.map((att)=>{\n // Create properly typed attachment\n if ('name' in att) {\n return {\n filename: att.filename || att.name || 'attachment',\n contentType: att.contentType || 'application/octet-stream',\n content: att.content\n };\n }\n return {\n filename: att.filename || 'attachment',\n contentType: att.contentType || 'application/octet-stream',\n content: att.content\n };\n })\n };\n console.log('formatForwardedEmail result:', {\n subject: result.subject,\n hasHtml: !!result.content.html,\n htmlLength: ((_result_content_html = result.content.html) === null || _result_content_html === void 0 ? void 0 : _result_content_html.length) || 0,\n hasText: !!result.content.text,\n textLength: ((_result_content_text = result.content.text) === null || _result_content_text === void 0 ? void 0 : _result_content_text.length) || 0\n });\n return result;\n}\n/**\n * Format an email for reply or reply-all - canonical implementation\n */ function formatEmailForReplyOrForward(email, type) {\n // Use our dedicated formatters\n if (type === 'forward') {\n return formatForwardedEmail(email);\n } else {\n return formatReplyEmail(email, type);\n }\n}\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi91dGlscy9lbWFpbC11dGlscy50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7O0NBUUMsR0FFRCxrQ0FBa0M7QUFDaUI7QUFDd0I7QUFRbEQ7QUFRcUM7QUFDNkI7QUFHM0YsMkRBQTJEO0FBU3pEO0FBaUJGOzs7Q0FHQyxHQUNNLFNBQVNVLHFCQUFxQkMsU0FBOEM7SUFDakYsSUFBSSxDQUFDQSxXQUFXLE9BQU87SUFFdkIsb0NBQW9DO0lBQ3BDLElBQUksT0FBT0EsY0FBYyxVQUFVO1FBQ2pDLE9BQU9BO0lBQ1Q7SUFFQSxnQ0FBZ0M7SUFDaEMsSUFBSUMsTUFBTUMsT0FBTyxDQUFDRixjQUFjQSxVQUFVRyxNQUFNLEdBQUcsR0FBRztRQUNwRCxPQUFPSCxVQUFVSSxHQUFHLENBQUNDLENBQUFBLE9BQ25CQSxLQUFLQyxJQUFJLElBQUlELEtBQUtDLElBQUksS0FBS0QsS0FBS0UsT0FBTyxHQUNuQyxHQUFpQkYsT0FBZEEsS0FBS0MsSUFBSSxFQUFDLE1BQWlCLE9BQWJELEtBQUtFLE9BQU8sRUFBQyxPQUM5QkYsS0FBS0UsT0FBTyxFQUNoQkMsSUFBSSxDQUFDO0lBQ1Q7SUFFQSxPQUFPO0FBQ1Q7QUFFQTs7Q0FFQyxHQUNNLFNBQVNDLGdCQUFnQkMsSUFBK0I7SUFDN0QsSUFBSSxDQUFDQSxNQUFNLE9BQU87SUFFbEIsSUFBSTtRQUNGLE1BQU1DLFVBQVUsT0FBT0QsU0FBUyxXQUFXLElBQUlFLEtBQUtGLFFBQVFBO1FBQzVELE9BQU9DLFFBQVFFLGNBQWMsQ0FBQyxTQUFTO1lBQ3JDQyxTQUFTO1lBQ1RDLE1BQU07WUFDTkMsT0FBTztZQUNQQyxLQUFLO1lBQ0xDLE1BQU07WUFDTkMsUUFBUTtRQUNWO0lBQ0YsRUFBRSxPQUFPQyxHQUFHO1FBQ1YsT0FBTyxPQUFPVixTQUFTLFdBQVdBLE9BQU9BLEtBQUtXLFFBQVE7SUFDeEQ7QUFDRjtBQUVBOztDQUVDLEdBQ00sU0FB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Q00sSUFBSSxjQUFuQnVCLDJDQUFBQSxxQkFBcUJuRCxNQUFNLEtBQUk7UUFDM0N5RSxTQUFTLENBQUMsQ0FBQ3RCLE9BQU83QixPQUFPLENBQUNRLElBQUk7UUFDOUI0QyxZQUFZdkIsRUFBQUEsdUJBQUFBLE9BQU83QixPQUFPLENBQUNRLElBQUksY0FBbkJxQiwyQ0FBQUEscUJBQXFCbkQsTUFBTSxLQUFJO0lBQzdDO0lBRUEsT0FBT21EO0FBQ1Q7QUFFQTs7Q0FFQyxHQUNNLFNBQVMyQiw2QkFDZDFELEtBQStDLEVBQy9DYyxJQUF1QztJQUV2QywrQkFBK0I7SUFDL0IsSUFBSUEsU0FBUyxXQUFXO1FBQ3RCLE9BQU95QyxxQkFBcUJ2RDtJQUM5QixPQUFPO1FBQ0wsT0FBTzZCLGlCQUFpQjdCLE9BQU9jO0lBQ2pDO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbGliL3V0aWxzL2VtYWlsLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pZmllZCBFbWFpbCBVdGlsaXRpZXNcbiAqIFxuICogVGhpcyBmaWxlIHByb3ZpZGVzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGVtYWlsIHV0aWxpdGllcy5cbiAqIE5ldyBjb2RlIHNob3VsZCBpbXBvcnQgZGlyZWN0bHkgZnJvbSB0aGUgc3BlY2lhbGl6ZWQgbW9kdWxlczpcbiAqIC0gZW1haWwtY29udGVudC50cyAoY29udGVudCBwcm9jZXNzaW5nKVxuICogLSB0ZXh0LWRpcmVjdGlvbi50cyAoZGlyZWN0aW9uIGhhbmRsaW5nKVxuICogLSBkb20tcHVyaWZ5LWNvbmZpZy50cyAoc2FuaXRpemF0aW9uKVxuICovXG5cbi8vIEltcG9ydCBmcm9tIHNwZWNpYWxpemVkIG1vZHVsZXNcbmltcG9ydCB7IHNhbml0aXplSHRtbCB9IGZyb20gJy4vZG9tLXB1cmlmeS1jb25maWcnO1xuaW1wb3J0IHsgZGV0ZWN0VGV4dERpcmVjdGlvbiwgYXBwbHlUZXh0RGlyZWN0aW9uIH0gZnJvbSAnLi90ZXh0LWRpcmVjdGlvbic7XG5pbXBvcnQgeyBcbiAgZXh0cmFjdEVtYWlsQ29udGVudCwgXG4gIGZvcm1hdEVtYWlsQ29udGVudCwgXG4gIHByb2Nlc3NIdG1sQ29udGVudCxcbiAgZm9ybWF0UGxhaW5UZXh0VG9IdG1sLFxuICBpc0h0bWxDb250ZW50LFxuICBleHRyYWN0VGV4dEZyb21IdG1sXG59IGZyb20gJy4vZW1haWwtY29udGVudCc7XG5cbmltcG9ydCB7IFxuICBFbWFpbE1lc3NhZ2UsIFxuICBFbWFpbENvbnRlbnQsIFxuICBFbWFpbEFkZHJlc3MsXG4gIExlZ2FjeUVtYWlsTWVzc2FnZSBcbn0gZnJvbSAnQC90eXBlcy9lbWFpbCc7XG5pbXBvcnQgeyBhZGFwdExlZ2FjeUVtYWlsIH0gZnJvbSAnQC9saWIvdXRpbHMvZW1haWwtYWRhcHRlcnMnO1xuaW1wb3J0IHsgZGVjb2RlSW5mb21hbmlha0VtYWlsLCBhZGFwdE1pbWVFbWFpbCwgaXNNaW1lRm9ybWF0IH0gZnJvbSAnLi9lbWFpbC1taW1lLWRlY29kZXInO1xuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xuXG4vLyBSZS1leHBvcnQgaW1wb3J0YW50IGZ1bmN0aW9ucyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuZXhwb3J0IHsgXG4gIHNhbml0aXplSHRtbCxcbiAgZXh0cmFjdEVtYWlsQ29udGVudCxcbiAgZm9ybWF0RW1haWxDb250ZW50LFxuICBwcm9jZXNzSHRtbENvbnRlbnQsXG4gIGZvcm1hdFBsYWluVGV4dFRvSHRtbCxcbiAgZGV0ZWN0VGV4dERpcmVjdGlvbixcbiAgYXBwbHlUZXh0RGlyZWN0aW9uXG59O1xuXG4vKipcbiAqIFN0YW5kYXJkIGludGVyZmFjZSBmb3IgZm9ybWF0dGVkIGVtYWlsIHJlc3BvbnNlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1hdHRlZEVtYWlsIHtcbiAgdG86IHN0cmluZztcbiAgY2M/OiBzdHJpbmc7XG4gIHN1YmplY3Q6IHN0cmluZztcbiAgY29udGVudDogRW1haWxDb250ZW50O1xuICBhdHRhY2htZW50cz86IEFycmF5PHtcbiAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgIGNvbnRlbnRUeXBlOiBzdHJpbmc7XG4gICAgY29udGVudD86IHN0cmluZztcbiAgfT47XG59XG5cbi8qKlxuICogRm9ybWF0IGVtYWlsIGFkZHJlc3NlcyBmb3IgZGlzcGxheVxuICogQ2FuIGhhbmRsZSBib3RoIGFycmF5IG9mIEVtYWlsQWRkcmVzcyBvYmplY3RzIG9yIGEgc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFbWFpbEFkZHJlc3NlcyhhZGRyZXNzZXM6IEVtYWlsQWRkcmVzc1tdIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgaWYgKCFhZGRyZXNzZXMpIHJldHVybiAnJztcbiAgXG4gIC8vIElmIGFscmVhZHkgYSBzdHJpbmcsIHJldHVybiBhcyBpc1xuICBpZiAodHlwZW9mIGFkZHJlc3NlcyA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gYWRkcmVzc2VzO1xuICB9XG4gIFxuICAvLyBJZiBhcnJheSwgZm9ybWF0IGVhY2ggYWRkcmVzc1xuICBpZiAoQXJyYXkuaXNBcnJheShhZGRyZXNzZXMpICYmIGFkZHJlc3Nlcy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIGFkZHJlc3Nlcy5tYXAoYWRkciA9PiBcbiAgICAgIGFkZHIubmFtZSAmJiBhZGRyLm5hbWUgIT09IGFkZHIuYWRkcmVzcyBcbiAgICAgICAgPyBgJHthZGRyLm5hbWV9IDwke2FkZHIuYWRkcmVzc30+YFxuICAgICAgICA6IGFkZHIuYWRkcmVzc1xuICAgICkuam9pbignLCAnKTtcbiAgfVxuICBcbiAgcmV0dXJuICcnO1xufVxuXG4vKipcbiAqIEZvcm1hdCBkYXRlIGZvciBkaXNwbGF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFbWFpbERhdGUoZGF0ZTogRGF0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIGlmICghZGF0ZSkgcmV0dXJuICcnO1xuICBcbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRlT2JqID0gdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnID8gbmV3IERhdGUoZGF0ZSkgOiBkYXRlO1xuICAgIHJldHVybiBkYXRlT2JqLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHtcbiAgICAgIHdlZWtkYXk6ICdzaG9ydCcsXG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICBtb250aDogJ3Nob3J0JyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgaG91cjogJzItZGlnaXQnLFxuICAgICAgbWludXRlOiAnMi1kaWdpdCdcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycgPyBkYXRlIDogZGF0ZS50b1N0cmluZygpO1xuICB9XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGVtYWlsIGNvbnRlbnQgdG8gb3VyIHN0YW5kYXJkIGZvcm1hdCByZWdhcmRsZXNzIG9mIGlucHV0IGZvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplRW1haWxDb250ZW50KGVtYWlsOiBhbnkpOiBFbWFpbE1lc3NhZ2Uge1xuICBpZiAoIWVtYWlsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3Qgbm9ybWFsaXplIG51bGwgb3IgdW5kZWZpbmVkIGVtYWlsJyk7XG4gIH1cblxuICAvLyBGaXJzdCBjaGVjayBpZiB0aGlzIGlzIGEgTUlNRSBmb3JtYXQgZW1haWwgdGhhdCBuZWVkcyBkZWNvZGluZ1xuICBpZiAoZW1haWwuY29udGVudCAmJiBpc01pbWVGb3JtYXQoZW1haWwuY29udGVudCkpIHtcbiAgICB0cnkge1xuICAgICAgY29uc29sZS5sb2coJ0RldGVjdGVkIE1JTUUgZm9ybWF0IGVtYWlsLCBkZWNvZGluZy4uLicpO1xuICAgICAgLy8gV2UgbmVlZCB0byBmb3JjZSBjYXN0IGhlcmUgZHVlIHRvIHR5cGUgaW5jb21wYXRpYmlsaXR5IGJldHdlZW4gRW1haWxNZXNzYWdlIGFuZCB0aGUgbWltZSByZXN1bHRcbiAgICAgIGNvbnN0IGFkYXB0ZWRFbWFpbCA9IGFkYXB0TWltZUVtYWlsKGVtYWlsKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmFkYXB0ZWRFbWFpbCxcbiAgICAgICAgZmxhZ3M6IGFkYXB0ZWRFbWFpbC5mbGFncyB8fCBbXSAvLyBFbnN1cmUgZmxhZ3MgaXMgYWx3YXlzIGFuIGFycmF5XG4gICAgICB9IGFzIEVtYWlsTWVzc2FnZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZGVjb2RpbmcgTUlNRSBlbWFpbDonLCBlcnJvcik7XG4gICAgICAvLyBDb250aW51ZSB3aXRoIHJlZ3VsYXIgbm9ybWFsaXphdGlvbiBpZiBNSU1FIGRlY29kaW5nIGZhaWxzXG4gICAgfVxuICB9XG4gIFxuICAvLyBDaGVjayBpZiBpdCdzIGFscmVhZHkgaW4gdGhlIHN0YW5kYXJkaXplZCBmb3JtYXRcbiAgaWYgKGVtYWlsLmNvbnRlbnQgJiYgdHlwZW9mIGVtYWlsLmNvbnRlbnQgPT09ICdvYmplY3QnICYmIFxuICAgICAgKGVtYWlsLmNvbnRlbnQuaHRtbCAhPT0gdW5kZWZpbmVkIHx8IGVtYWlsLmNvbnRlbnQudGV4dCAhPT0gdW5kZWZpbmVkKSkge1xuICAgIC8vIEFscmVhZHkgaW4gdGhlIGNvcnJlY3QgZm9ybWF0XG4gICAgcmV0dXJuIGVtYWlsIGFzIEVtYWlsTWVzc2FnZTtcbiAgfVxuICBcbiAgLy8gT3RoZXJ3aXNlLCBhZGFwdCBmcm9tIGxlZ2FjeSBmb3JtYXRcbiAgLy8gV2UgbmVlZCB0byBmb3JjZSBjYXN0IGhlcmUgZHVlIHRvIHR5cGUgaW5jb21wYXRpYmlsaXR5XG4gIGNvbnN0IGFkYXB0ZWRFbWFpbCA9IGFkYXB0TGVnYWN5RW1haWwoZW1haWwpO1xuICByZXR1cm4ge1xuICAgIC4uLmFkYXB0ZWRFbWFpbCxcbiAgICBmbGFnczogYWRhcHRlZEVtYWlsLmZsYWdzIHx8IFtdIC8vIEVuc3VyZSBmbGFncyBpcyBhbHdheXMgYW4gYXJyYXlcbiAgfSBhcyBFbWFpbE1lc3NhZ2U7XG59XG5cbi8qKlxuICogUmVuZGVyIG5vcm1hbGl6ZWQgZW1haWwgY29udGVudCBpbnRvIEhUTUwgZm9yIGRpc3BsYXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckVtYWlsQ29udGVudChjb250ZW50OiBFbWFpbENvbnRlbnQgfCBudWxsKTogc3RyaW5nIHtcbiAgaWYgKCFjb250ZW50KSB7XG4gICAgcmV0dXJuICc8ZGl2IGNsYXNzPVwiZW1haWwtY29udGVudC1lbXB0eVwiPk5vIGNvbnRlbnQgYXZhaWxhYmxlPC9kaXY+JztcbiAgfVxuICBcbiAgLy8gQ3JlYXRlIGEgc2ltcGxlIG9iamVjdCB0aGF0IGNhbiBiZSBwcm9jZXNzZWQgYnkgZm9ybWF0RW1haWxDb250ZW50XG4gIGNvbnN0IGVtYWlsT2JqID0geyBjb250ZW50IH07XG4gIFxuICAvLyBVc2UgdGhlIGNlbnRyYWxpemVkIGZvcm1hdHRpbmcgZnVuY3Rpb25cbiAgcmV0dXJuIGZvcm1hdEVtYWlsQ29udGVudChlbWFpbE9iaik7XG59XG5cbi8qKlxuICogR2V0IHJlY2lwaWVudCBhZGRyZXNzZXMgZnJvbSBhbiBlbWFpbCBmb3IgcmVwbHkgb3IgZm9yd2FyZFxuICovXG5mdW5jdGlvbiBnZXRSZWNpcGllbnRBZGRyZXNzZXMoZW1haWw6IGFueSwgdHlwZTogJ3JlcGx5JyB8ICdyZXBseS1hbGwnKTogeyB0bzogc3RyaW5nOyBjYzogc3RyaW5nIH0ge1xuICAvLyBGb3JtYXQgdGhlIHJlY2lwaWVudHNcbiAgY29uc3QgdG8gPSBBcnJheS5pc0FycmF5KGVtYWlsLmZyb20pIFxuICAgID8gZW1haWwuZnJvbS5tYXAoKGFkZHI6IGFueSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGFkZHIgPT09ICdzdHJpbmcnKSByZXR1cm4gYWRkcjtcbiAgICAgICAgcmV0dXJuIGFkZHIuYWRkcmVzcyA/IGFkZHIuYWRkcmVzcyA6ICcnO1xuICAgICAgfSkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJywgJykgXG4gICAgOiB0eXBlb2YgZW1haWwuZnJvbSA9PT0gJ3N0cmluZycgXG4gICAgICA/IGVtYWlsLmZyb20gXG4gICAgICA6ICcnO1xuXG4gIC8vIEZvciByZXBseS1hbGwsIGluY2x1ZGUgb3RoZXIgcmVjaXBpZW50cyBpbiBDQ1xuICBsZXQgY2MgPSAnJztcbiAgaWYgKHR5cGUgPT09ICdyZXBseS1hbGwnKSB7XG4gICAgY29uc3QgdG9SZWNpcGllbnRzID0gQXJyYXkuaXNBcnJheShlbWFpbC50bykgXG4gICAgICA/IGVtYWlsLnRvLm1hcCgoYWRkcjogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBhZGRyID09PSAnc3RyaW5nJykgcmV0dXJuIGFkZHI7XG4gICAgICAgICAgcmV0dXJuIGFkZHIuYWRkcmVzcyA/IGFkZHIuYWRkcmVzcyA6ICcnO1xuICAgICAgICB9KS5maWx0ZXIoQm9vbGVhbilcbiAgICAgIDogdHlwZW9mIGVtYWlsLnRvID09PSAnc3RyaW5nJ1xuICAgICAgICA/IFtlbWFpbC50b11cbiAgICAgICAgOiBbXTtcbiAgICAgICAgXG4gICAgY29uc3QgY2NSZWNpcGllbnRzID0gQXJyYXkuaXNBcnJheShlbWFpbC5jYykgXG4gICAgICA/IGVtYWlsLmNjLm1hcCgoYWRkcjogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBhZGRyID09PSAnc3RyaW5nJykgcmV0dXJuIGFkZHI7XG4gICAgICAgICAgcmV0dXJuIGFkZHIuYWRkcmVzcyA/IGFkZHIuYWRkcmVzcyA6ICcnO1xuICAgICAgICB9KS5maWx0ZXIoQm9vbGVhbilcbiAgICAgIDogdHlwZW9mIGVtYWlsLmNjID09PSAnc3RyaW5nJ1xuICAgICAgICA/IFtlbWFpbC5jY11cbiAgICAgICAgOiBbXTtcbiAgICBcbiAgICBjYyA9IFsuLi50b1JlY2lwaWVudHMsIC4uLmNjUmVjaXBpZW50c10uam9pbignLCAnKTtcbiAgfVxuXG4gIHJldHVybiB7IHRvLCBjYyB9O1xufVxuXG4vKipcbiAqIEdldCBmb3JtYXR0ZWQgaGVhZGVyIGluZm9ybWF0aW9uIGZvciByZXBseSBvciBmb3J3YXJkXG4gKi9cbmZ1bmN0aW9uIGdldEZvcm1hdHRlZEhlYWRlckluZm8oZW1haWw6IGFueSk6IHsgXG4gIGZyb21TdHI6IHN0cmluZzsgXG4gIHRvU3RyOiBzdHJpbmc7IFxuICBjY1N0cjogc3RyaW5nOyBcbiAgZGF0ZVN0cjogc3RyaW5nOyBcbiAgc3ViamVjdDogc3RyaW5nO1xufSB7XG4gIC8vIEZvcm1hdCB0aGUgc3ViamVjdFxuICBjb25zdCBzdWJqZWN0ID0gZW1haWwuc3ViamVjdCAmJiAhZW1haWwuc3ViamVjdC5zdGFydHNXaXRoKCdSZTonKSAmJiAhZW1haWwuc3ViamVjdC5zdGFydHNXaXRoKCdGd2Q6JylcbiAgICA/IGVtYWlsLnN1YmplY3RcbiAgICA6IGVtYWlsLnN1YmplY3QgfHwgJyc7XG5cbiAgLy8gRm9ybWF0IHRoZSBkYXRlXG4gIGNvbnN0IGRhdGVTdHIgPSBlbWFpbC5kYXRlID8gbmV3IERhdGUoZW1haWwuZGF0ZSkudG9Mb2NhbGVTdHJpbmcoKSA6ICdVbmtub3duIERhdGUnO1xuICBcbiAgLy8gRm9ybWF0IHNlbmRlclxuICBjb25zdCBmcm9tU3RyID0gQXJyYXkuaXNBcnJheShlbWFpbC5mcm9tKVxuICAgID8gZW1haWwuZnJvbS5tYXAoKGFkZHI6IGFueSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGFkZHIgPT09ICdzdHJpbmcnKSByZXR1cm4gYWRkcjtcbiAgICAgICAgcmV0dXJuIGFkZHIubmFtZSA/IGAke2FkZHIubmFtZX0gPCR7YWRkci5hZGRyZXNzfT5gIDogYWRkci5hZGRyZXNzO1xuICAgICAgfSkuam9pbignLCAnKVxuICAgIDogdHlwZW9mIGVtYWlsLmZyb20gPT09ICdzdHJpbmcnXG4gICAgICA/IGVtYWlsLmZyb21cbiAgICAgIDogJ1Vua25vd24gU2VuZGVyJztcbiAgXG4gIC8vIEZvcm1hdCByZWNpcGllbnRzXG4gIGNvbnN0IHRvU3RyID0gQXJyYXkuaXNBcnJheShlbWFpbC50bylcbiAgICA/IGVtYWlsLnRvLm1hcCgoYWRkcjogYW55KSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgYWRkciA9PT0gJ3N0cmluZycpIHJldHVybiBhZGRyO1xuICAgICAgICByZXR1cm4gYWRkci5uYW1lID8gYCR7YWRkci5uYW1lfSA8JHthZGRyLmFkZHJlc3N9PmAgOiBhZGRyLmFkZHJlc3M7XG4gICAgICB9KS5qb2luKCcsICcpXG4gICAgOiB0eXBlb2YgZW1haWwudG8gPT09ICdzdHJpbmcnXG4gICAgICA/IGVtYWlsLnRvXG4gICAgICA6ICcnO1xuICBcbiAgLy8gRm9ybWF0IENDIFxuICBjb25zdCBjY1N0ciA9IEFycmF5LmlzQXJyYXkoZW1haWwuY2MpXG4gICAgPyBlbWFpbC5jYy5tYXAoKGFkZHI6IGFueSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGFkZHIgPT09ICdzdHJpbmcnKSByZXR1cm4gYWRkcjtcbiAgICAgICAgcmV0dXJuIGFkZHIubmFtZSA/IGAke2FkZHIubmFtZX0gPCR7YWRkci5hZGRyZXNzfT5gIDogYWRkci5hZGRyZXNzO1xuICAgICAgfSkuam9pbignLCAnKVxuICAgIDogdHlwZW9mIGVtYWlsLmNjID09PSAnc3RyaW5nJ1xuICAgICAgPyBlbWFpbC5jY1xuICAgICAgOiAnJztcblxuICByZXR1cm4geyBmcm9tU3RyLCB0b1N0ciwgY2NTdHIsIGRhdGVTdHIsIHN1YmplY3QgfTtcbn1cblxuLyoqXG4gKiBGb3JtYXQgZW1haWwgZm9yIHJlcGx5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRSZXBseUVtYWlsKG9yaWdpbmFsRW1haWw6IEVtYWlsTWVzc2FnZSB8IExlZ2FjeUVtYWlsTWVzc2FnZSB8IG51bGwsIHR5cGU6ICdyZXBseScgfCAncmVwbHktYWxsJyA9ICdyZXBseScpOiBGb3JtYXR0ZWRFbWFpbCB7XG4gIGNvbnNvbGUubG9nKCdmb3JtYXRSZXBseUVtYWlsIGNhbGxlZDonLCB7IHR5cGUsIGVtYWlsSWQ6IG9yaWdpbmFsRW1haWw/LmlkIH0pO1xuICBcbiAgaWYgKCFvcmlnaW5hbEVtYWlsKSB7XG4gICAgY29uc29sZS53YXJuKCdmb3JtYXRSZXBseUVtYWlsOiBObyBvcmlnaW5hbCBlbWFpbCBwcm92aWRlZCcpO1xuICAgIHJldHVybiB7XG4gICAgICB0bzogJycsXG4gICAgICBzdWJqZWN0OiAnJyxcbiAgICAgIGNvbnRlbnQ6IHsgdGV4dDogJycsIGh0bWw6ICcnLCBpc0h0bWw6IGZhbHNlLCBkaXJlY3Rpb246ICdsdHInIH1cbiAgICB9O1xuICB9XG4gIFxuICAvLyBBZGFwdCBsZWdhY3kgZm9ybWF0IGlmIG5lZWRlZFxuICBjb25zdCBlbWFpbCA9ICdjb250ZW50JyBpbiBvcmlnaW5hbEVtYWlsID8gb3JpZ2luYWxFbWFpbCA6IGFkYXB0TGVnYWN5RW1haWwob3JpZ2luYWxFbWFpbCk7XG4gIFxuICAvLyBGb3JtYXQgc3ViamVjdCB3aXRoIFJlOiBwcmVmaXhcbiAgY29uc3Qgc3ViamVjdCA9IGVtYWlsLnN1YmplY3QgPyBcbiAgICAoZW1haWwuc3ViamVjdC50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoJ3JlOicpID8gZW1haWwuc3ViamVjdCA6IGBSZTogJHtlbWFpbC5zdWJqZWN0fWApIDogXG4gICAgJ1JlOiAnO1xuICBcbiAgLy8gR2V0IHJlY2lwaWVudCBhZGRyZXNzZXNcbiAgY29uc3QgeyB0bywgY2MgfSA9IGdldFJlY2lwaWVudEFkZHJlc3NlcyhlbWFpbCwgdHlwZSk7XG4gIFxuICAvLyBHZXQgcXVvdGUgaGVhZGVyXG4gIGNvbnN0IHsgZnJvbVN0ciwgZGF0ZVN0ciB9ID0gZ2V0Rm9ybWF0dGVkSGVhZGVySW5mbyhlbWFpbCk7XG4gIFxuICAvLyBVc2UgdGhlIGZyb20gbmFtZSBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSB1c2UgZW1haWwgYWRkcmVzc1xuICBjb25zdCBzZW5kZXIgPSBmcm9tU3RyO1xuICBjb25zdCBkYXRlID0gZGF0ZVN0cjtcbiAgXG4gIC8vIEV4dHJhY3QgcmF3IGNvbnRlbnQgZnJvbSB0aGUgb3JpZ2luYWwgZW1haWxcbiAgY29uc3QgeyB0ZXh0OiBvcmlnaW5hbFRleHRDb250ZW50LCBodG1sOiBvcmlnaW5hbEh0bWxDb250ZW50IH0gPSBleHRyYWN0RW1haWxDb250ZW50KGVtYWlsLmNvbnRlbnQpO1xuICBcbiAgLy8gRmlyc3Qgc2FuaXRpemUgdGhlIG9yaWdpbmFsIGNvbnRlbnRcbiAgY29uc3Qgc2FuaXRpemVkQ29udGVudCA9IHNhbml0aXplSHRtbChvcmlnaW5hbEh0bWxDb250ZW50IHx8IG9yaWdpbmFsVGV4dENvbnRlbnQpO1xuICBcbiAgLy8gQnVpbGQgdGhlIHJlcGx5IHN0cnVjdHVyZSB3aXRoIHNhbml0aXplZCBidXQgbm90IHlldCBmdWxseSBmb3JtYXR0ZWQgY29udGVudFxuICBjb25zdCByZXBseVN0cnVjdHVyZSA9IGBcbiAgICA8ZGl2IHN0eWxlPVwibWFyZ2luOiAyMHB4IDAgMTBweCAwOyBjb2xvcjogIzY2NjsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7IHBhZGRpbmctYm90dG9tOiA1cHg7XCI+XG4gICAgICBPbiAke2RhdGV9LCAke3NlbmRlcn0gd3JvdGU6XG4gICAgPC9kaXY+XG4gICAgPGJsb2NrcXVvdGUgc3R5bGU9XCJtYXJnaW46IDA7IHBhZGRpbmctbGVmdDogMTBweDsgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZGRkOyBjb2xvcjogIzUwNTA1MDsgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTsgcGFkZGluZzogMTBweDtcIj5cbiAgICAgICR7c2FuaXRpemVkQ29udGVudH1cbiAgICA8L2Jsb2NrcXVvdGU+XG4gIGA7XG4gIFxuICAvLyBGb3JtYXQgcGxhaW4gdGV4dCByZXBseSBpZiBhdmFpbGFibGVcbiAgbGV0IGZvcm1hdHRlZFRleHRDb250ZW50ID0gJyc7XG4gIGlmIChvcmlnaW5hbFRleHRDb250ZW50KSB7XG4gICAgY29uc3QgbGluZXMgPSBvcmlnaW5hbFRleHRDb250ZW50LnNwbGl0KC9cXHJcXG58XFxyfFxcbi8pO1xuICAgIGZvcm1hdHRlZFRleHRDb250ZW50ID0gYE9uICR7ZGF0ZX0sICR7c2VuZGVyfSB3cm90ZTpcXG5cXG4ke2xpbmVzLm1hcChsaW5lID0+IGA+ICR7bGluZX1gKS5qb2luKCdcXG4nKX1gO1xuICB9XG4gIFxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgdG8sXG4gICAgY2M6IGNjIHx8IHVuZGVmaW5lZCxcbiAgICBzdWJqZWN0LFxuICAgIGNvbnRlbnQ6IHtcbiAgICAgIGh0bWw6IHJlcGx5U3RydWN0dXJlLFxuICAgICAgdGV4dDogZm9ybWF0dGVkVGV4dENvbnRlbnQgfHwgb3JpZ2luYWxUZXh0Q29udGVudCxcbiAgICAgIGlzSHRtbDogdHJ1ZSxcbiAgICAgIGRpcmVjdGlvbjogdHlwZW9mIGVtYWlsLmNvbnRlbnQgPT09ICdvYmplY3QnICYmIGVtYWlsLmNvbnRlbnQgPyBlbWFpbC5jb250ZW50LmRpcmVjdGlvbiB8fCAnbHRyJyA6ICdsdHInLFxuICAgIH0sXG4gICAgYXR0YWNobWVudHM6IGVtYWlsLmF0dGFjaG1lbnRzPy5tYXAoYXR0ID0+IHtcbiAgICAgIC8vIENyZWF0ZSBwcm9wZXJseSB0eXBlZCBhdHRhY2htZW50XG4gICAgICBpZiAoJ25hbWUnIGluIGF0dCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGZpbGVuYW1lOiBhdHQuZmlsZW5hbWUgfHwgYXR0Lm5hbWUgfHwgJ2F0dGFjaG1lbnQnLFxuICAgICAgICAgIGNvbnRlbnRUeXBlOiBhdHQuY29udGVudFR5cGUgfHwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXG4gICAgICAgICAgY29udGVudDogYXR0LmNvbnRlbnRcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZpbGVuYW1lOiBhdHQuZmlsZW5hbWUgfHwgJ2F0dGFjaG1lbnQnLFxuICAgICAgICBjb250ZW50VHlwZTogYXR0LmNvbnRlbnRUeXBlIHx8ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLFxuICAgICAgICBjb250ZW50OiBhdHQuY29udGVudFxuICAgICAgfTtcbiAgICB9KVxuICB9O1xuICBcbiAgY29uc29sZS5sb2coJ2Zvcm1hdFJlcGx5RW1haWwgcmVzdWx0OicsIHsgXG4gICAgdG86IHJlc3VsdC50bywgXG4gICAgc3ViamVjdDogcmVzdWx0LnN1YmplY3QsXG4gICAgaGFzSHRtbDogISFyZXN1bHQuY29udGVudC5odG1sLFxuICAgIGh0bWxMZW5ndGg6IHJlc3VsdC5jb250ZW50Lmh0bWw/Lmxlbmd0aCB8fCAwLCBcbiAgICBoYXNUZXh0OiAhIXJlc3VsdC5jb250ZW50LnRleHQsXG4gICAgdGV4dExlbmd0aDogcmVzdWx0LmNvbnRlbnQudGV4dD8ubGVuZ3RoIHx8IDBcbiAgfSk7XG4gIFxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEZvcm1hdCBlbWFpbCBmb3IgZm9yd2FyZGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0Rm9yd2FyZGVkRW1haWwob3JpZ2luYWxFbWFpbDogRW1haWxNZXNzYWdlIHwgTGVnYWN5RW1haWxNZXNzYWdlIHwgbnVsbCk6IEZvcm1hdHRlZEVtYWlsIHtcbiAgY29uc29sZS5sb2coJ2Zvcm1hdEZvcndhcmRlZEVtYWlsIGNhbGxlZDonLCB7IGVtYWlsSWQ6IG9yaWdpbmFsRW1haWw/LmlkIH0pO1xuICBcbiAgaWYgKCFvcmlnaW5hbEVtYWlsKSB7XG4gICAgY29uc29sZS53YXJuKCdmb3JtYXRGb3J3YXJkZWRFbWFpbDogTm8gb3JpZ2luYWwgZW1haWwgcHJvdmlkZWQnKTtcbiAgICByZXR1cm4ge1xuICAgICAgdG86ICcnLFxuICAgICAgc3ViamVjdDogJycsXG4gICAgICBjb250ZW50OiB7IHRleHQ6ICcnLCBodG1sOiAnJywgaXNIdG1sOiBmYWxzZSwgZGlyZWN0aW9uOiAnbHRyJyB9XG4gICAgfTtcbiAgfVxuICBcbiAgLy8gQWRhcHQgbGVnYWN5IGZvcm1hdCBpZiBuZWVkZWRcbiAgY29uc3QgZW1haWwgPSAnY29udGVudCcgaW4gb3JpZ2luYWxFbWFpbCA/IG9yaWdpbmFsRW1haWwgOiBhZGFwdExlZ2FjeUVtYWlsKG9yaWdpbmFsRW1haWwpO1xuICBcbiAgLy8gRm9ybWF0IHN1YmplY3Qgd2l0aCBGd2Q6IHByZWZpeFxuICBjb25zdCBzdWJqZWN0ID0gZW1haWwuc3ViamVjdCA/IFxuICAgIChlbWFpbC5zdWJqZWN0LnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgnZndkOicpID8gZW1haWwuc3ViamVjdCA6IGBGd2Q6ICR7ZW1haWwuc3ViamVjdH1gKSA6IFxuICAgICdGd2Q6ICc7XG4gIFxuICAvLyBHZXQgb3JpZ2luYWwgZW1haWwgaW5mbyBmb3IgaGVhZGVyc1xuICBjb25zdCB7IGZyb21TdHIsIHRvU3RyLCBjY1N0ciwgZGF0ZVN0ciB9ID0gZ2V0Rm9ybWF0dGVkSGVhZGVySW5mbyhlbWFpbCk7XG4gIFxuICBjb25zb2xlLmxvZygnRm9yd2FyZCBoZWFkZXIgaW5mbzonLCB7IGZyb21TdHIsIHRvU3RyLCBkYXRlU3RyLCBzdWJqZWN0IH0pO1xuICBcbiAgLy8gT3JpZ2luYWwgc2VudCBkYXRlXG4gIGNvbnN0IGRhdGUgPSBkYXRlU3RyO1xuICBcbiAgLy8gRXh0cmFjdCByYXcgY29udGVudCBmcm9tIHRoZSBvcmlnaW5hbCBlbWFpbFxuICBjb25zdCB7IHRleHQ6IG9yaWdpbmFsVGV4dENvbnRlbnQsIGh0bWw6IG9yaWdpbmFsSHRtbENvbnRlbnQgfSA9IGV4dHJhY3RFbWFpbENvbnRlbnQoZW1haWwuY29udGVudCk7XG4gIFxuICAvLyBGaXJzdCBzYW5pdGl6ZSB0aGUgb3JpZ2luYWwgY29udGVudFxuICBjb25zdCBzYW5pdGl6ZWRDb250ZW50ID0gc2FuaXRpemVIdG1sKG9yaWdpbmFsSHRtbENvbnRlbnQgfHwgb3JpZ2luYWxUZXh0Q29udGVudCk7XG4gIFxuICAvLyBCdWlsZCB0aGUgZm9yd2FyZCBzdHJ1Y3R1cmUgd2l0aCBzYW5pdGl6ZWQgYnV0IG5vdCB5ZXQgZnVsbHkgZm9ybWF0dGVkIGNvbnRlbnRcbiAgY29uc3QgZm9yd2FyZFN0cnVjdHVyZSA9IGBcbiAgICA8ZGl2IHN0eWxlPVwibWFyZ2luOiAyMHB4IDAgMTBweCAwOyBjb2xvcjogIzY2NjsgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1wiPlxuICAgICAgLS0tLS0tLS0tLSBGb3J3YXJkZWQgbWVzc2FnZSAtLS0tLS0tLS0tPGJyPlxuICAgICAgPHRhYmxlIHN0eWxlPVwibWFyZ2luOiAxMHB4IDAgMTVweCAwOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiAjMzMzO1wiPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAzcHggMTBweCAzcHggMDsgZm9udC13ZWlnaHQ6IGJvbGQ7IHRleHQtYWxpZ246IHJpZ2h0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wO1wiPkZyb206PC90ZD5cbiAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAzcHggMDtcIj4ke2Zyb21TdHJ9PC90ZD5cbiAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6IDNweCAxMHB4IDNweCAwOyBmb250LXdlaWdodDogYm9sZDsgdGV4dC1hbGlnbjogcmlnaHQ7IHZlcnRpY2FsLWFsaWduOiB0b3A7XCI+RGF0ZTo8L3RkPlxuICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6IDNweCAwO1wiPiR7ZGF0ZX08L3RkPlxuICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogM3B4IDEwcHggM3B4IDA7IGZvbnQtd2VpZ2h0OiBib2xkOyB0ZXh0LWFsaWduOiByaWdodDsgdmVydGljYWwtYWxpZ246IHRvcDtcIj5TdWJqZWN0OjwvdGQ+XG4gICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogM3B4IDA7XCI+JHtlbWFpbC5zdWJqZWN0IHx8ICcnfTwvdGQ+XG4gICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICA8dGQgc3R5bGU9XCJwYWRkaW5nOiAzcHggMTBweCAzcHggMDsgZm9udC13ZWlnaHQ6IGJvbGQ7IHRleHQtYWxpZ246IHJpZ2h0OyB2ZXJ0aWNhbC1hbGlnbjogdG9wO1wiPlRvOjwvdGQ+XG4gICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogM3B4IDA7XCI+JHt0b1N0cn08L3RkPlxuICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAke2NjU3RyID8gYFxuICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgPHRkIHN0eWxlPVwicGFkZGluZzogM3B4IDEwcHggM3B4IDA7IGZvbnQtd2VpZ2h0OiBib2xkOyB0ZXh0LWFsaWduOiByaWdodDsgdmVydGljYWwtYWxpZ246IHRvcDtcIj5DYzo8L3RkPlxuICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInBhZGRpbmc6IDNweCAwO1wiPiR7Y2NTdHJ9PC90ZD5cbiAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgYCA6ICcnfVxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgICA8YmxvY2txdW90ZSBzdHlsZT1cIm1hcmdpbjogMDsgcGFkZGluZy1sZWZ0OiAxMHB4OyBib3JkZXItbGVmdDogM3B4IHNvbGlkICNkZGQ7IGNvbG9yOiAjNTA1MDUwOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OyBwYWRkaW5nOiAxMHB4O1wiPlxuICAgICAgJHtzYW5pdGl6ZWRDb250ZW50fVxuICAgIDwvYmxvY2txdW90ZT5cbiAgYDtcbiAgXG4gIC8vIEZvcm1hdCBwbGFpbiB0ZXh0IHZlcnNpb25cbiAgbGV0IGZvcm1hdHRlZFRleHRDb250ZW50ID0gJyc7XG4gIGlmIChvcmlnaW5hbFRleHRDb250ZW50KSB7XG4gICAgZm9ybWF0dGVkVGV4dENvbnRlbnQgPSBgXG4tLS0tLS0tLS0tIEZvcndhcmRlZCBtZXNzYWdlIC0tLS0tLS0tLS1cbkZyb206ICR7ZnJvbVN0cn1cbkRhdGU6ICR7ZGF0ZX1cblN1YmplY3Q6ICR7ZW1haWwuc3ViamVjdCB8fCAnJ31cblRvOiAke3RvU3RyfVxuJHtjY1N0ciA/IGBDYzogJHtjY1N0cn1cXG5gIDogJyd9XG5cbiR7b3JpZ2luYWxUZXh0Q29udGVudH1cbiAgICBgLnRyaW0oKTtcbiAgfVxuICBcbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIHRvOiAnJyxcbiAgICBzdWJqZWN0LFxuICAgIGNvbnRlbnQ6IHtcbiAgICAgIGh0bWw6IGZvcndhcmRTdHJ1Y3R1cmUsXG4gICAgICB0ZXh0OiBmb3JtYXR0ZWRUZXh0Q29udGVudCB8fCBvcmlnaW5hbFRleHRDb250ZW50LFxuICAgICAgaXNIdG1sOiB0cnVlLFxuICAgICAgZGlyZWN0aW9uOiB0eXBlb2YgZW1haWwuY29udGVudCA9PT0gJ29iamVjdCcgJiYgZW1haWwuY29udGVudCA/IGVtYWlsLmNvbnRlbnQuZGlyZWN0aW9uIHx8ICdsdHInIDogJ2x0cicsXG4gICAgfSxcbiAgICBhdHRhY2htZW50czogZW1haWwuYXR0YWNobWVudHM/Lm1hcChhdHQgPT4ge1xuICAgICAgLy8gQ3JlYXRlIHByb3Blcmx5IHR5cGVkIGF0dGFjaG1lbnRcbiAgICAgIGlmICgnbmFtZScgaW4gYXR0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZmlsZW5hbWU6IGF0dC5maWxlbmFtZSB8fCBhdHQubmFtZSB8fCAnYXR0YWNobWVudCcsXG4gICAgICAgICAgY29udGVudFR5cGU6IGF0dC5jb250ZW50VHlwZSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyxcbiAgICAgICAgICBjb250ZW50OiBhdHQuY29udGVudFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZmlsZW5hbWU6IGF0dC5maWxlbmFtZSB8fCAnYXR0YWNobWVudCcsXG4gICAgICAgIGNvbnRlbnRUeXBlOiBhdHQuY29udGVudFR5cGUgfHwgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXG4gICAgICAgIGNvbnRlbnQ6IGF0dC5jb250ZW50XG4gICAgICB9O1xuICAgIH0pXG4gIH07XG4gIFxuICBjb25zb2xlLmxvZygnZm9ybWF0Rm9yd2FyZGVkRW1haWwgcmVzdWx0OicsIHsgXG4gICAgc3ViamVjdDogcmVzdWx0LnN1YmplY3QsXG4gICAgaGFzSHRtbDogISFyZXN1bHQuY29udGVudC5odG1sLFxuICAgIGh0bWxMZW5ndGg6IHJlc3VsdC5jb250ZW50Lmh0bWw/Lmxlbmd0aCB8fCAwLCBcbiAgICBoYXNUZXh0OiAhIXJlc3VsdC5jb250ZW50LnRleHQsXG4gICAgdGV4dExlbmd0aDogcmVzdWx0LmNvbnRlbnQudGV4dD8ubGVuZ3RoIHx8IDBcbiAgfSk7XG4gIFxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEZvcm1hdCBhbiBlbWFpbCBmb3IgcmVwbHkgb3IgcmVwbHktYWxsIC0gY2Fub25pY2FsIGltcGxlbWVudGF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFbWFpbEZvclJlcGx5T3JGb3J3YXJkKFxuICBlbWFpbDogRW1haWxNZXNzYWdlIHwgTGVnYWN5RW1haWxNZXNzYWdlIHwgbnVsbCwgXG4gIHR5cGU6ICdyZXBseScgfCAncmVwbHktYWxsJyB8ICdmb3J3YXJkJ1xuKTogRm9ybWF0dGVkRW1haWwge1xuICAvLyBVc2Ugb3VyIGRlZGljYXRlZCBmb3JtYXR0ZXJzXG4gIGlmICh0eXBlID09PSAnZm9yd2FyZCcpIHtcbiAgICByZXR1cm4gZm9ybWF0Rm9yd2FyZGVkRW1haWwoZW1haWwpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmb3JtYXRSZXBseUVtYWlsKGVtYWlsLCB0eXBlIGFzICdyZXBseScgfCAncmVwbHktYWxsJyk7XG4gIH1cbn0gXG4iXSwibmFtZXMiOlsic2FuaXRpemVIdG1sIiwiZGV0ZWN0VGV4dERpcmVjdGlvbiIsImFwcGx5VGV4dERpcmVjdGlvbiIsImV4dHJhY3RFbWFpbENvbnRlbnQiLCJmb3JtYXRFbWFpbENvbnRlbnQiLCJwcm9jZXNzSHRtbENvbnRlbnQiLCJmb3JtYXRQbGFpblRleHRUb0h0bWwiLCJhZGFwdExlZ2FjeUVtYWlsIiwiYWRhcHRNaW1lRW1haWwiLCJpc01pbWVGb3JtYXQiLCJmb3JtYXRFbWFpbEFkZHJlc3NlcyIsImFkZHJlc3NlcyIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsIm1hcCIsImFkZHIiLCJuYW1lIiwiYWRkcmVzcyIsImpvaW4iLCJmb3JtYXRFbWFpbERhdGUiLCJkYXRlIiwiZGF0ZU9iaiIsIkRhdGUiLCJ0b0xvY2FsZVN0cmluZyIsIndlZWtkYXkiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJob3VyIiwibWludXRlIiwiZSIsInRvU3RyaW5nIiwibm9ybWFsaXplRW1haWxDb250ZW50IiwiZW1haWwiLCJFcnJvciIsImNvbnRlbnQiLCJjb25zb2xlIiwibG9nIiwiYWRhcHRlZEVtYWlsIiwiZmxhZ3MiLCJlcnJvciIsImh0bWwiLCJ1bmRlZmluZWQiLCJ0ZXh0IiwicmVuZGVyRW1haWxDb250ZW50IiwiZW1haWxPYmoiLCJnZXRSZWNpcGllbnRBZGRyZXNzZXMiLCJ0eXBlIiwidG8iLCJmcm9tIiwiZmlsdGVyIiwiQm9vbGVhbiIsImNjIiwidG9SZWNpcGllbnRzIiwiY2NSZWNpcGllbnRzIiwiZ2V0Rm9ybWF0dGVkSGVhZGVySW5mbyIsInN1YmplY3QiLCJzdGFydHNXaXRoIiwiZGF0ZVN0ciIsImZyb21TdHIiLCJ0b1N0ciIsImNjU3RyIiwiZm9ybWF0UmVwbHlFbWFpbCIsIm9yaWdpbmFsRW1haWwiLCJyZXN1bHQiLCJlbWFpbElkIiwiaWQiLCJ3YXJuIiwiaXNIdG1sIiwiZGlyZWN0aW9uIiwidG9Mb3dlckNhc2UiLCJzZW5kZXIiLCJvcmlnaW5hbFRleHRDb250ZW50Iiwib3JpZ2luYWxIdG1sQ29udGVudCIsInNhbml0aXplZENvbnRlbnQiLCJyZXBseVN0cnVjdHVyZSIsImZvcm1hdHRlZFRleHRDb250ZW50IiwibGluZXMiLCJzcGxpdCIsImxpbmUiLCJhdHRhY2htZW50cyIsImF0dCIsImZpbGVuYW1lIiwiY29udGVudFR5cGUiLCJoYXNIdG1sIiwiaHRtbExlbmd0aCIsImhhc1RleHQiLCJ0ZXh0TGVuZ3RoIiwiZm9ybWF0Rm9yd2FyZGVkRW1haWwiLCJmb3J3YXJkU3RydWN0dXJlIiwidHJpbSIsImZvcm1hdEVtYWlsRm9yUmVwbHlPckZvcndhcmQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/utils/email-utils.ts\n"));
/***/ }),
/***/ "(app-pages-browser)/./lib/utils/text-direction.ts":
/*!*************************************!*\
!*** ./lib/utils/text-direction.ts ***!
\*************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyTextDirection: () => (/* binding */ applyTextDirection),\n/* harmony export */ detectTextDirection: () => (/* binding */ detectTextDirection)\n/* harmony export */ });\n/**\n * Text Direction Utilities\n * \n * Core utilities for handling text direction (RTL/LTR)\n * to ensure consistent behavior across the application.\n */ /**\n * Detects if text contains RTL characters and should be displayed right-to-left\n * Uses a comprehensive regex pattern that covers Arabic, Hebrew, and other RTL scripts\n * \n * @param text Text to analyze for direction\n * @returns 'rtl' if RTL characters are detected, otherwise 'ltr'\n */ function detectTextDirection(text) {\n if (!text) return 'ltr';\n // Comprehensive pattern for RTL languages:\n // - Arabic (0600-06FF, FB50-FDFF, FE70-FEFF)\n // - Hebrew (0590-05FF, FB1D-FB4F)\n // - RTL marks and controls (200F, 202B, 202E)\n const rtlPattern = /[\\u0591-\\u07FF\\u200F\\u202B\\u202E\\uFB1D-\\uFDFD\\uFE70-\\uFEFC]/;\n return rtlPattern.test(text) ? 'rtl' : 'ltr';\n}\n/**\n * Adds appropriate direction attribute to HTML content based on content analysis\n * \n * @param htmlContent HTML content to analyze and enhance with direction\n * @param textContent Plain text version for direction analysis (optional)\n * @returns HTML with appropriate direction attribute\n */ function applyTextDirection(htmlContent, textContent) {\n if (!htmlContent) return '';\n // If text content is provided, use it for direction detection\n // Otherwise extract text from HTML for direction detection\n const textForAnalysis = textContent || htmlContent.replace(/<[^>]*>/g, '').replace(/&nbsp;/g, ' ').replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&amp;/g, '&');\n const direction = detectTextDirection(textForAnalysis);\n // If the HTML already has a dir attribute, don't override it\n if (htmlContent.includes('dir=\"rtl\"') || htmlContent.includes('dir=\"ltr\"')) {\n return htmlContent;\n }\n // Check if we already have an email-content wrapper\n if (htmlContent.startsWith('<div class=\"email-content')) {\n // Replace opening div with one that includes direction\n return htmlContent.replace(/<div class=\"email-content([^\"]*)\"/, '<div class=\"email-content$1\" dir=\"'.concat(direction, '\"'));\n }\n // Otherwise, wrap the content with a direction-aware container\n return '<div class=\"email-content\" dir=\"'.concat(direction, '\">').concat(htmlContent, \"</div>\");\n}\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2xpYi91dGlscy90ZXh0LWRpcmVjdGlvbi50cyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7OztDQUtDLEdBRUQ7Ozs7OztDQU1DLEdBQ00sU0FBU0Esb0JBQW9CQyxJQUErQjtJQUNqRSxJQUFJLENBQUNBLE1BQU0sT0FBTztJQUVsQiwyQ0FBMkM7SUFDM0MsNkNBQTZDO0lBQzdDLGtDQUFrQztJQUNsQyw4Q0FBOEM7SUFDOUMsTUFBTUMsYUFBYTtJQUVuQixPQUFPQSxXQUFXQyxJQUFJLENBQUNGLFFBQVEsUUFBUTtBQUN6QztBQUVBOzs7Ozs7Q0FNQyxHQUNNLFNBQVNHLG1CQUFtQkMsV0FBbUIsRUFBRUMsV0FBb0I7SUFDMUUsSUFBSSxDQUFDRCxhQUFhLE9BQU87SUFFekIsOERBQThEO0lBQzlELDJEQUEyRDtJQUMzRCxNQUFNRSxrQkFBa0JELGVBQ3RCRCxZQUFZRyxPQUFPLENBQUMsWUFBWSxJQUNwQkEsT0FBTyxDQUFDLFdBQVcsS0FDbkJBLE9BQU8sQ0FBQyxTQUFTLEtBQ2pCQSxPQUFPLENBQUMsU0FBUyxLQUNqQkEsT0FBTyxDQUFDLFVBQVU7SUFFaEMsTUFBTUMsWUFBWVQsb0JBQW9CTztJQUV0Qyw2REFBNkQ7SUFDN0QsSUFBSUYsWUFBWUssUUFBUSxDQUFDLGdCQUFnQkwsWUFBWUssUUFBUSxDQUFDLGNBQWM7UUFDMUUsT0FBT0w7SUFDVDtJQUVBLG9EQUFvRDtJQUNwRCxJQUFJQSxZQUFZTSxVQUFVLENBQUMsOEJBQThCO1FBQ3ZELHVEQUF1RDtRQUN2RCxPQUFPTixZQUFZRyxPQUFPLENBQ3hCLHFDQUNBLHFDQUErQyxPQUFWQyxXQUFVO0lBRW5EO0lBRUEsK0RBQStEO0lBQy9ELE9BQU8sbUNBQWlESixPQUFkSSxXQUFVLE1BQWdCLE9BQVpKLGFBQVk7QUFDdEUiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbGliL3V0aWxzL3RleHQtZGlyZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGV4dCBEaXJlY3Rpb24gVXRpbGl0aWVzXG4gKiBcbiAqIENvcmUgdXRpbGl0aWVzIGZvciBoYW5kbGluZyB0ZXh0IGRpcmVjdGlvbiAoUlRML0xUUilcbiAqIHRvIGVuc3VyZSBjb25zaXN0ZW50IGJlaGF2aW9yIGFjcm9zcyB0aGUgYXBwbGljYXRpb24uXG4gKi9cblxuLyoqXG4gKiBEZXRlY3RzIGlmIHRleHQgY29udGFpbnMgUlRMIGNoYXJhY3RlcnMgYW5kIHNob3VsZCBiZSBkaXNwbGF5ZWQgcmlnaHQtdG8tbGVmdFxuICogVXNlcyBhIGNvbXByZWhlbnNpdmUgcmVnZXggcGF0dGVybiB0aGF0IGNvdmVycyBBcmFiaWMsIEhlYnJldywgYW5kIG90aGVyIFJUTCBzY3JpcHRzXG4gKiBcbiAqIEBwYXJhbSB0ZXh0IFRleHQgdG8gYW5hbHl6ZSBmb3IgZGlyZWN0aW9uXG4gKiBAcmV0dXJucyAncnRsJyBpZiBSVEwgY2hhcmFjdGVycyBhcmUgZGV0ZWN0ZWQsIG90aGVyd2lzZSAnbHRyJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0VGV4dERpcmVjdGlvbih0ZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKTogJ2x0cicgfCAncnRsJyB7XG4gIGlmICghdGV4dCkgcmV0dXJuICdsdHInO1xuICBcbiAgLy8gQ29tcHJlaGVuc2l2ZSBwYXR0ZXJuIGZvciBSVEwgbGFuZ3VhZ2VzOlxuICAvLyAtIEFyYWJpYyAoMDYwMC0wNkZGLCBGQjUwLUZERkYsIEZFNzAtRkVGRilcbiAgLy8gLSBIZWJyZXcgKDA1OTAtMDVGRiwgRkIxRC1GQjRGKVxuICAvLyAtIFJUTCBtYXJrcyBhbmQgY29udHJvbHMgKDIwMEYsIDIwMkIsIDIwMkUpXG4gIGNvbnN0IHJ0bFBhdHRlcm4gPSAvW1xcdTA1OTEtXFx1MDdGRlxcdTIwMEZcXHUyMDJCXFx1MjAyRVxcdUZCMUQtXFx1RkRGRFxcdUZFNzAtXFx1RkVGQ10vO1xuICBcbiAgcmV0dXJuIHJ0bFBhdHRlcm4udGVzdCh0ZXh0KSA/ICdydGwnIDogJ2x0cic7XG59XG5cbi8qKlxuICogQWRkcyBhcHByb3ByaWF0ZSBkaXJlY3Rpb24gYXR0cmlidXRlIHRvIEhUTUwgY29udGVudCBiYXNlZCBvbiBjb250ZW50IGFuYWx5c2lzXG4gKiBcbiAqIEBwYXJhbSBodG1sQ29udGVudCBIVE1MIGNvbnRlbnQgdG8gYW5hbHl6ZSBhbmQgZW5oYW5jZSB3aXRoIGRpcmVjdGlvblxuICogQHBhcmFtIHRleHRDb250ZW50IFBsYWluIHRleHQgdmVyc2lvbiBmb3IgZGlyZWN0aW9uIGFuYWx5c2lzIChvcHRpb25hbClcbiAqIEByZXR1cm5zIEhUTUwgd2l0aCBhcHByb3ByaWF0ZSBkaXJlY3Rpb24gYXR0cmlidXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVRleHREaXJlY3Rpb24oaHRtbENvbnRlbnQ6IHN0cmluZywgdGV4dENvbnRlbnQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIWh0bWxDb250ZW50KSByZXR1cm4gJyc7XG4gIFxuICAvLyBJZiB0ZXh0IGNvbnRlbnQgaXMgcHJvdmlkZWQsIHVzZSBpdCBmb3IgZGlyZWN0aW9uIGRldGVjdGlvblxuICAvLyBPdGhlcndpc2UgZXh0cmFjdCB0ZXh0IGZyb20gSFRNTCBmb3IgZGlyZWN0aW9uIGRldGVjdGlvblxuICBjb25zdCB0ZXh0Rm9yQW5hbHlzaXMgPSB0ZXh0Q29udGVudCB8fCBcbiAgICBodG1sQ29udGVudC5yZXBsYWNlKC88W14+XSo+L2csICcnKVxuICAgICAgICAgICAgICAgLnJlcGxhY2UoLyZuYnNwOy9nLCAnICcpXG4gICAgICAgICAgICAgICAucmVwbGFjZSgvJmx0Oy9nLCAnPCcpXG4gICAgICAgICAgICAgICAucmVwbGFjZSgvJmd0Oy9nLCAnPicpXG4gICAgICAgICAgICAgICAucmVwbGFjZSgvJmFtcDsvZywgJyYnKTtcbiAgICAgICAgICAgICAgIFxuICBjb25zdCBkaXJlY3Rpb24gPSBkZXRlY3RUZXh0RGlyZWN0aW9uKHRleHRGb3JBbmFseXNpcyk7XG4gIFxuICAvLyBJZiB0aGUgSFRNTCBhbHJlYWR5IGhhcyBhIGRpciBhdHRyaWJ1dGUsIGRvbid0IG92ZXJyaWRlIGl0XG4gIGlmIChodG1sQ29udGVudC5pbmNsdWRlcygnZGlyPVwicnRsXCInKSB8fCBodG1sQ29udGVudC5pbmNsdWRlcygnZGlyPVwibHRyXCInKSkge1xuICAgIHJldHVybiBodG1sQ29udGVudDtcbiAgfVxuICBcbiAgLy8gQ2hlY2sgaWYgd2UgYWxyZWFkeSBoYXZlIGFuIGVtYWlsLWNvbnRlbnQgd3JhcHBlclxuICBpZiAoaHRtbENvbnRlbnQuc3RhcnRzV2l0aCgnPGRpdiBjbGFzcz1cImVtYWlsLWNvbnRlbnQnKSkge1xuICAgIC8vIFJlcGxhY2Ugb3BlbmluZyBkaXYgd2l0aCBvbmUgdGhhdCBpbmNsdWRlcyBkaXJlY3Rpb25cbiAgICByZXR1cm4gaHRtbENvbnRlbnQucmVwbGFjZShcbiAgICAgIC88ZGl2IGNsYXNzPVwiZW1haWwtY29udGVudChbXlwiXSopXCIvLFxuICAgICAgYDxkaXYgY2xhc3M9XCJlbWFpbC1jb250ZW50JDFcIiBkaXI9XCIke2RpcmVjdGlvbn1cImBcbiAgICApO1xuICB9XG4gIFxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgd2l0aCBhIGRpcmVjdGlvbi1hd2FyZSBjb250YWluZXJcbiAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiZW1haWwtY29udGVudFwiIGRpcj1cIiR7ZGlyZWN0aW9ufVwiPiR7aHRtbENvbnRlbnR9PC9kaXY+YDtcbn0gIl0sIm5hbWVzIjpbImRldGVjdFRleHREaXJlY3Rpb24iLCJ0ZXh0IiwicnRsUGF0dGVybiIsInRlc3QiLCJhcHBseVRleHREaXJlY3Rpb24iLCJodG1sQ29udGVudCIsInRleHRDb250ZW50IiwidGV4dEZvckFuYWx5c2lzIiwicmVwbGFjZSIsImRpcmVjdGlvbiIsImluY2x1ZGVzIiwic3RhcnRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./lib/utils/text-direction.ts\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
/*!*****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
\*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5TGlrZVRvQXJyYXkuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLGdDQUFnQyxPQUFPO0FBQ3ZDO0FBQ0E7QUFDQSxvQ0FBb0MseUJBQXlCLFNBQVMseUJBQXlCIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5TGlrZVRvQXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkociwgYSkge1xuICAobnVsbCA9PSBhIHx8IGEgPiByLmxlbmd0aCkgJiYgKGEgPSByLmxlbmd0aCk7XG4gIGZvciAodmFyIGUgPSAwLCBuID0gQXJyYXkoYSk7IGUgPCBhOyBlKyspIG5bZV0gPSByW2VdO1xuICByZXR1cm4gbjtcbn1cbm1vZHVsZS5leHBvcnRzID0gX2FycmF5TGlrZVRvQXJyYXksIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/arrayWithHoles.js":
/*!***************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
\***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5V2l0aEhvbGVzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlXaXRoSG9sZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2FycmF5V2l0aEhvbGVzKHIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkocikpIHJldHVybiByO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfYXJyYXlXaXRoSG9sZXMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/arrayWithHoles.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/assertThisInitialized.js":
/*!**********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
\**********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5Qyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoZSkge1xuICBpZiAodm9pZCAwID09PSBlKSB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7XG4gIHJldHVybiBlO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemVkLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/assertThisInitialized.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js":
/*!*****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
\*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FzeW5jVG9HZW5lcmF0b3IuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0Esb0NBQW9DLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGFzeW5jR2VuZXJhdG9yU3RlcChuLCB0LCBlLCByLCBvLCBhLCBjKSB7XG4gIHRyeSB7XG4gICAgdmFyIGkgPSBuW2FdKGMpLFxuICAgICAgdSA9IGkudmFsdWU7XG4gIH0gY2F0Y2ggKG4pIHtcbiAgICByZXR1cm4gdm9pZCBlKG4pO1xuICB9XG4gIGkuZG9uZSA/IHQodSkgOiBQcm9taXNlLnJlc29sdmUodSkudGhlbihyLCBvKTtcbn1cbmZ1bmN0aW9uIF9hc3luY1RvR2VuZXJhdG9yKG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdCA9IHRoaXMsXG4gICAgICBlID0gYXJndW1lbnRzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAociwgbykge1xuICAgICAgdmFyIGEgPSBuLmFwcGx5KHQsIGUpO1xuICAgICAgZnVuY3Rpb24gX25leHQobikge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoYSwgciwgbywgX25leHQsIF90aHJvdywgXCJuZXh0XCIsIG4pO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gX3Rocm93KG4pIHtcbiAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGEsIHIsIG8sIF9uZXh0LCBfdGhyb3csIFwidGhyb3dcIiwgbik7XG4gICAgICB9XG4gICAgICBfbmV4dCh2b2lkIDApO1xuICAgIH0pO1xuICB9O1xufVxubW9kdWxlLmV4cG9ydHMgPSBfYXN5bmNUb0dlbmVyYXRvciwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/classCallCheck.js":
/*!***************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***!
\***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2suanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGEsIG4pIHtcbiAgaWYgKCEoYSBpbnN0YW5jZW9mIG4pKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfY2xhc3NDYWxsQ2hlY2ssIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/classCallCheck.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/construct.js":
/*!**********************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/construct.js ***!
\**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\");\nvar setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NvbnN0cnVjdC5qcyIsIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0IsbUJBQU8sQ0FBQyw0SEFBK0I7QUFDdEUscUJBQXFCLG1CQUFPLENBQUMsd0dBQXFCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jb25zdHJ1Y3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGlzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IHJlcXVpcmUoXCIuL2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdC5qc1wiKTtcbnZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoXCIuL3NldFByb3RvdHlwZU9mLmpzXCIpO1xuZnVuY3Rpb24gX2NvbnN0cnVjdCh0LCBlLCByKSB7XG4gIGlmIChpc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSkgcmV0dXJuIFJlZmxlY3QuY29uc3RydWN0LmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gIHZhciBvID0gW251bGxdO1xuICBvLnB1c2guYXBwbHkobywgZSk7XG4gIHZhciBwID0gbmV3ICh0LmJpbmQuYXBwbHkodCwgbykpKCk7XG4gIHJldHVybiByICYmIHNldFByb3RvdHlwZU9mKHAsIHIucHJvdG90eXBlKSwgcDtcbn1cbm1vZHVsZS5leHBvcnRzID0gX2NvbnN0cnVjdCwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/construct.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/createClass.js":
/*!************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/createClass.js ***!
\************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/toPropertyKey.js\");\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzIiwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQixtQkFBTyxDQUFDLHNHQUFvQjtBQUNoRDtBQUNBLGtCQUFrQixjQUFjO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsK0JBQStCLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgdG9Qcm9wZXJ0eUtleSA9IHJlcXVpcmUoXCIuL3RvUHJvcGVydHlLZXkuanNcIik7XG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyhlLCByKSB7XG4gIGZvciAodmFyIHQgPSAwOyB0IDwgci5sZW5ndGg7IHQrKykge1xuICAgIHZhciBvID0gclt0XTtcbiAgICBvLmVudW1lcmFibGUgPSBvLmVudW1lcmFibGUgfHwgITEsIG8uY29uZmlndXJhYmxlID0gITAsIFwidmFsdWVcIiBpbiBvICYmIChvLndyaXRhYmxlID0gITApLCBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgdG9Qcm9wZXJ0eUtleShvLmtleSksIG8pO1xuICB9XG59XG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoZSwgciwgdCkge1xuICByZXR1cm4gciAmJiBfZGVmaW5lUHJvcGVydGllcyhlLnByb3RvdHlwZSwgciksIHQgJiYgX2RlZmluZVByb3BlcnRpZXMoZSwgdCksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCBcInByb3RvdHlwZVwiLCB7XG4gICAgd3JpdGFibGU6ICExXG4gIH0pLCBlO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfY3JlYXRlQ2xhc3MsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/createClass.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/defineProperty.js":
/*!***************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***!
\***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5LmpzIiwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQixtQkFBTyxDQUFDLHNHQUFvQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxrQ0FBa0MseUJBQXlCLFNBQVMseUJBQXlCIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB0b1Byb3BlcnR5S2V5ID0gcmVxdWlyZShcIi4vdG9Qcm9wZXJ0eUtleS5qc1wiKTtcbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShlLCByLCB0KSB7XG4gIHJldHVybiAociA9IHRvUHJvcGVydHlLZXkocikpIGluIGUgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgciwge1xuICAgIHZhbHVlOiB0LFxuICAgIGVudW1lcmFibGU6ICEwLFxuICAgIGNvbmZpZ3VyYWJsZTogITAsXG4gICAgd3JpdGFibGU6ICEwXG4gIH0pIDogZVtyXSA9IHQsIGU7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9kZWZpbmVQcm9wZXJ0eSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/defineProperty.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/getPrototypeOf.js":
/*!***************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
\***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("function _getPrototypeOf(t) {\n return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _getPrototypeOf(t);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2dldFByb3RvdHlwZU9mLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRSx5QkFBeUIsU0FBUyx5QkFBeUI7QUFDaEU7QUFDQSxrQ0FBa0MseUJBQXlCLFNBQVMseUJBQXlCIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2dldFByb3RvdHlwZU9mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZih0KSB7XG4gIHJldHVybiBtb2R1bGUuZXhwb3J0cyA9IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCkgOiBmdW5jdGlvbiAodCkge1xuICAgIHJldHVybiB0Ll9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk7XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgX2dldFByb3RvdHlwZU9mKHQpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfZ2V0UHJvdG90eXBlT2YsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/getPrototypeOf.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/inherits.js":
/*!*********************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/inherits.js ***!
\*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2luaGVyaXRzLmpzIiwibWFwcGluZ3MiOiJBQUFBLHFCQUFxQixtQkFBTyxDQUFDLHdHQUFxQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0EsNEJBQTRCLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiKTtcbmZ1bmN0aW9uIF9pbmhlcml0cyh0LCBlKSB7XG4gIGlmIChcImZ1bmN0aW9uXCIgIT0gdHlwZW9mIGUgJiYgbnVsbCAhPT0gZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO1xuICB0LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoZSAmJiBlLnByb3RvdHlwZSwge1xuICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICB2YWx1ZTogdCxcbiAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogITBcbiAgICB9XG4gIH0pLCBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgXCJwcm90b3R5cGVcIiwge1xuICAgIHdyaXRhYmxlOiAhMVxuICB9KSwgZSAmJiBzZXRQcm90b3R5cGVPZih0LCBlKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gX2luaGVyaXRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/inherits.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js":
/*!**********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
\**********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChlKSB7XG4gIHJldHVybiBlICYmIGUuX19lc01vZHVsZSA/IGUgOiB7XG4gICAgXCJkZWZhdWx0XCI6IGVcbiAgfTtcbn1cbm1vZHVsZS5leHBvcnRzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdCwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/isNativeFunction.js":
/*!*****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/isNativeFunction.js ***!
\*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2lzTmF0aXZlRnVuY3Rpb24uanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXNOYXRpdmVGdW5jdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfaXNOYXRpdmVGdW5jdGlvbih0KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIC0xICE9PSBGdW5jdGlvbi50b1N0cmluZy5jYWxsKHQpLmluZGV4T2YoXCJbbmF0aXZlIGNvZGVdXCIpO1xuICB9IGNhdGNoIChuKSB7XG4gICAgcmV0dXJuIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgdDtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMgPSBfaXNOYXRpdmVGdW5jdGlvbiwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/isNativeFunction.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js":
/*!*************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***!
\*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (module.exports = _isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EseUZBQXlGO0FBQ3pGLElBQUk7QUFDSjtBQUNBO0FBQ0EsR0FBRyxFQUFFLHlCQUF5QixTQUFTLHlCQUF5QjtBQUNoRTtBQUNBLDRDQUE0Qyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7XG4gIHRyeSB7XG4gICAgdmFyIHQgPSAhQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbiAoKSB7fSkpO1xuICB9IGNhdGNoICh0KSB7fVxuICByZXR1cm4gKG1vZHVsZS5leHBvcnRzID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IGZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7XG4gICAgcmV0dXJuICEhdDtcbiAgfSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzKSgpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
/*!*********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
\*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLFlBQVksa0VBQWtFO0FBQ3RGLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3Qyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXRlcmFibGVUb0FycmF5TGltaXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KHIsIGwpIHtcbiAgdmFyIHQgPSBudWxsID09IHIgPyBudWxsIDogXCJ1bmRlZmluZWRcIiAhPSB0eXBlb2YgU3ltYm9sICYmIHJbU3ltYm9sLml0ZXJhdG9yXSB8fCByW1wiQEBpdGVyYXRvclwiXTtcbiAgaWYgKG51bGwgIT0gdCkge1xuICAgIHZhciBlLFxuICAgICAgbixcbiAgICAgIGksXG4gICAgICB1LFxuICAgICAgYSA9IFtdLFxuICAgICAgZiA9ICEwLFxuICAgICAgbyA9ICExO1xuICAgIHRyeSB7XG4gICAgICBpZiAoaSA9ICh0ID0gdC5jYWxsKHIpKS5uZXh0LCAwID09PSBsKSB7XG4gICAgICAgIGlmIChPYmplY3QodCkgIT09IHQpIHJldHVybjtcbiAgICAgICAgZiA9ICExO1xuICAgICAgfSBlbHNlIGZvciAoOyAhKGYgPSAoZSA9IGkuY2FsbCh0KSkuZG9uZSkgJiYgKGEucHVzaChlLnZhbHVlKSwgYS5sZW5ndGggIT09IGwpOyBmID0gITApO1xuICAgIH0gY2F0Y2ggKHIpIHtcbiAgICAgIG8gPSAhMCwgbiA9IHI7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghZiAmJiBudWxsICE9IHRbXCJyZXR1cm5cIl0gJiYgKHUgPSB0W1wicmV0dXJuXCJdKCksIE9iamVjdCh1KSAhPT0gdSkpIHJldHVybjtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChvKSB0aHJvdyBuO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYTtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMgPSBfaXRlcmFibGVUb0FycmF5TGltaXQsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/nonIterableRest.js":
/*!****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
\****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL25vbkl0ZXJhYmxlUmVzdC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMseUJBQXlCLFNBQVMseUJBQXlCIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL25vbkl0ZXJhYmxlUmVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfbm9uSXRlcmFibGVSZXN0KCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfbm9uSXRlcmFibGVSZXN0LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/nonIterableRest.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
/*!**************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
\**************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("var _typeof = (__webpack_require__(/*! ./typeof.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\nvar assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanMiLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwSEFBaUM7QUFDL0MsNEJBQTRCLG1CQUFPLENBQUMsc0hBQTRCO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkMseUJBQXlCLFNBQVMseUJBQXlCIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF90eXBlb2YgPSByZXF1aXJlKFwiLi90eXBlb2YuanNcIilbXCJkZWZhdWx0XCJdO1xudmFyIGFzc2VydFRoaXNJbml0aWFsaXplZCA9IHJlcXVpcmUoXCIuL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qc1wiKTtcbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHQsIGUpIHtcbiAgaWYgKGUgJiYgKFwib2JqZWN0XCIgPT0gX3R5cGVvZihlKSB8fCBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIGUpKSByZXR1cm4gZTtcbiAgaWYgKHZvaWQgMCAhPT0gZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkXCIpO1xuICByZXR1cm4gYXNzZXJ0VGhpc0luaXRpYWxpemVkKHQpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
/*!*******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
\*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("var _typeof = (__webpack_require__(/*! ./typeof.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZS5qcyIsIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBIQUFpQztBQUMvQztBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0EsR0FBRyxFQUFFLHlCQUF5QixTQUFTLHlCQUF5QjtBQUNoRTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxpREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRDtBQUMxRDtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLGVBQWU7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MsUUFBUTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLCtDQUErQyxRQUFRO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSwrQ0FBK0MsUUFBUTtBQUN2RDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSwrQ0FBK0MsUUFBUTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHO0FBQ0g7QUFDQSxzQ0FBc0MseUJBQXlCLFNBQVMseUJBQXlCIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCIuL3R5cGVvZi5qc1wiKVtcImRlZmF1bHRcIl07XG5mdW5jdGlvbiBfcmVnZW5lcmF0b3JSdW50aW1lKCkge1xuICBcInVzZSBzdHJpY3RcIjsgLyohIHJlZ2VuZXJhdG9yLXJ1bnRpbWUgLS0gQ29weXJpZ2h0IChjKSAyMDE0LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuIC0tIGxpY2Vuc2UgKE1JVCk6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWdlbmVyYXRvci9ibG9iL21haW4vTElDRU5TRSAqL1xuICBtb2R1bGUuZXhwb3J0cyA9IF9yZWdlbmVyYXRvclJ1bnRpbWUgPSBmdW5jdGlvbiBfcmVnZW5lcmF0b3JSdW50aW1lKCkge1xuICAgIHJldHVybiBlO1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7XG4gIHZhciB0LFxuICAgIGUgPSB7fSxcbiAgICByID0gT2JqZWN0LnByb3RvdHlwZSxcbiAgICBuID0gci5oYXNPd25Qcm9wZXJ0eSxcbiAgICBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5IHx8IGZ1bmN0aW9uICh0LCBlLCByKSB7XG4gICAgICB0W2VdID0gci52YWx1ZTtcbiAgICB9LFxuICAgIGkgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCA/IFN5bWJvbCA6IHt9LFxuICAgIGEgPSBpLml0ZXJhdG9yIHx8IFwiQEBpdGVyYXRvclwiLFxuICAgIGMgPSBpLmFzeW5jSXRlcmF0b3IgfHwgXCJAQGFzeW5jSXRlcmF0b3JcIixcbiAgICB1ID0gaS50b1N0cmluZ1RhZyB8fCBcIkBAdG9TdHJpbmdUYWdcIjtcbiAgZnVuY3Rpb24gZGVmaW5lKHQsIGUsIHIpIHtcbiAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIGUsIHtcbiAgICAgIHZhbHVlOiByLFxuICAgICAgZW51bWVyYWJsZTogITAsXG4gICAgICBjb25maWd1cmFibGU6ICEwLFxuICAgICAgd3JpdGFibGU6ICEwXG4gICAgfSksIHRbZV07XG4gIH1cbiAgdHJ5IHtcbiAgICBkZWZpbmUoe30sIFwiXCIpO1xuICB9IGNhdGNoICh0KSB7XG4gICAgZGVmaW5lID0gZnVuY3Rpb24gZGVmaW5lKHQsIGUsIHIpIHtcbiAgICAgIHJldHVybiB0W2VdID0gcjtcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIHdyYXAodCwgZSwgciwgbikge1xuICAgIHZhciBpID0gZSAmJiBlLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvciA/IGUgOiBHZW5lcmF0b3IsXG4gICAgICBhID0gT2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksXG4gICAgICBjID0gbmV3IENvbnRleHQobiB8fCBbXSk7XG4gICAgcmV0dXJuIG8oYSwgXCJfaW52b2tlXCIsIHtcbiAgICAgIHZhbHVlOiBtYWtlSW52b2tlTWV0aG9kKHQsIHIsIGMpXG4gICAgfSksIGE7XG4gIH1cbiAgZnVuY3Rpb24gdHJ5Q2F0Y2godCwgZSwgcikge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcIm5vcm1hbFwiLFxuICAgICAgICBhcmc6IHQuY2FsbChlLCByKVxuICAgICAgfTtcbiAgICB9IGNhdGNoICh0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcInRocm93XCIsXG4gICAgICAgIGFyZzogdFxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgZS53cmFwID0gd3JhcDtcbiAgdmFyIGggPSBcInN1c3BlbmRlZFN0YXJ0XCIsXG4gICAgbCA9IFwic3VzcGVuZGVkWWllbGRcIixcbiAgICBmID0gXCJleGVjdXRpbmdcIixcbiAgICBzID0gXCJjb21wbGV0ZWRcIixcbiAgICB5ID0ge307XG4gIGZ1bmN0aW9uIEdlbmVyYXRvcigpIHt9XG4gIGZ1bmN0aW9uIEdlbmVyYXRvckZ1bmN0aW9uKCkge31cbiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUoKSB7fVxuICB2YXIgcCA9IHt9O1xuICBkZWZpbmUocCwgYSwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KTtcbiAgdmFyIGQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YsXG4gICAgdiA9IGQgJiYgZChkKHZhbHVlcyhbXSkpKTtcbiAgdiAmJiB2ICE9PSByICYmIG4uY2FsbCh2LCBhKSAmJiAocCA9IHYpO1xuICB2YXIgZyA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLnByb3RvdHlwZSA9IEdlbmVyYXRvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHApO1xuICBmdW5jdGlvbiBkZWZpbmVJdGVyYXRvck1ldGhvZHModCkge1xuICAgIFtcIm5leHRcIiwgXCJ0aHJvd1wiLCBcInJldHVyblwiXS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7XG4gICAgICBkZWZpbmUodCwgZSwgZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ludm9rZShlLCB0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIEFzeW5jSXRlcmF0b3IodCwgZSkge1xuICAgIGZ1bmN0aW9uIGludm9rZShyLCBvLCBpLCBhKSB7XG4gICAgICB2YXIgYyA9IHRyeUNhdGNoKHRbcl0sIHQsIG8pO1xuICAgICAgaWYgKFwidGhyb3dcIiAhPT0gYy50eXBlKSB7XG4gICAgICAgIHZhciB1ID0gYy5hcmcsXG4gICAgICAgICAgaCA9IHUudmFsdWU7XG4gICAgICAgIHJldHVybiBoICYmIFwib2JqZWN0XCIgPT0gX3R5cGVvZihoKSAmJiBuLmNhbGwoaCwgXCJfX2F3YWl0XCIpID8gZS5yZXNvbHZlKGguX19hd2FpdCkudGhlbihmdW5jdGlvbiAodCkge1xuICAgICAgICAgIGludm9rZShcIm5leHRcIiwgdCwgaSwgYSk7XG4gICAgICAgIH0sIGZ1bmN0aW9uICh0KSB7XG4gICAgICAgICAgaW52b2tlKFwidGhyb3dcIiwgdCwgaSwgYSk7XG4gICAgICAgIH0pIDogZS5yZXNvbHZlKGgpLnRoZW4oZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICB1LnZhbHVlID0gdCwgaSh1KTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgICByZXR1cm4gaW52b2tlKFwidGhyb3dcIiwgdCwgaSwgYSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgYShjLmFyZyk7XG4gICAgfVxuICAgIHZhciByO1xuICAgIG8odGhpcywgXCJfaW52b2tlXCIsIHtcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiB2YWx1ZSh0LCBuKSB7XG4gICAgICAgIGZ1bmN0aW9uIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnKCkge1xuICAgICAgICAgIHJldHVybiBuZXcgZShmdW5jdGlvbiAoZSwgcikge1xuICAgICAgICAgICAgaW52b2tlKHQsIG4sIGUsIHIpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByID0gciA/IHIudGhlbihjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZywgY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcpIDogY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBmdW5jdGlvbiBtYWtlSW52b2tlTWV0aG9kKGUsIHIsIG4pIHtcbiAgICB2YXIgbyA9IGg7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChpLCBhKSB7XG4gICAgICBpZiAobyA9PT0gZikgdGhyb3cgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO1xuICAgICAgaWYgKG8gPT09IHMpIHtcbiAgICAgICAgaWYgKFwidGhyb3dcIiA9PT0gaSkgdGhyb3cgYTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdCxcbiAgICAgICAgICBkb25lOiAhMFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZm9yIChuLm1ldGhvZCA9IGksIG4uYXJnID0gYTs7KSB7XG4gICAgICAgIHZhciBjID0gbi5kZWxlZ2F0ZTtcbiAgICAgICAgaWYgKGMpIHtcbiAgICAgICAgICB2YXIgdSA9IG1heWJlSW52b2tlRGVsZWdhdGUoYywgbik7XG4gICAgICAgICAgaWYgKHUpIHtcbiAgICAgICAgICAgIGlmICh1ID09PSB5KSBjb250aW51ZTtcbiAgICAgICAgICAgIHJldHVybiB1O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJuZXh0XCIgPT09IG4ubWV0aG9kKSBuLnNlbnQgPSBuLl9zZW50ID0gbi5hcmc7ZWxzZSBpZiAoXCJ0aHJvd1wiID09PSBuLm1ldGhvZCkge1xuICAgICAgICAgIGlmIChvID09PSBoKSB0aHJvdyBvID0gcywgbi5hcmc7XG4gICAgICAgICAgbi5kaXNwYXRjaEV4Y2VwdGlvbihuLmFyZyk7XG4gICAgICAgIH0gZWxzZSBcInJldHVyblwiID09PSBuLm1ldGhvZCAmJiBuLmFicnVwdChcInJldHVyblwiLCBuLmFyZyk7XG4gICAgICAgIG8gPSBmO1xuICAgICAgICB2YXIgcCA9IHRyeUNhdGNoKGUsIHIsIG4pO1xuICAgICAgICBpZiAoXCJub3JtYWxcIiA9PT0gcC50eXBlKSB7XG4gICAgICAgICAgaWYgKG8gPSBuLmRvbmUgPyBzIDogbCwgcC5hcmcgPT09IHkpIGNvbnRpbnVlO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogcC5hcmcsXG4gICAgICAgICAgICBkb25lOiBuLmRvbmVcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIFwidGhyb3dcIiA9PT0gcC50eXBlICYmIChvID0gcywgbi5tZXRob2QgPSBcInRocm93XCIsIG4uYXJnID0gcC5hcmcpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSB7XG4gICAgdmFyIG4gPSByLm1ldGhvZCxcbiAgICAgIG8gPSBlLml0ZXJhdG9yW25dO1xuICAgIGlmIChvID09PSB0KSByZXR1cm4gci5kZWxlZ2F0ZSA9IG51bGwsIFwidGhyb3dcIiA9PT0gbiAmJiBlLml0ZXJhdG9yW1wicmV0dXJuXCJdICYmIChyLm1ldGhvZCA9IFwicmV0dXJuXCIsIHIuYXJnID0gdCwgbWF5YmVJbnZva2VEZWxlZ2F0ZShlLCByKSwgXCJ0aHJvd1wiID09PSByLm1ldGhvZCkgfHwgXCJyZXR1cm5cIiAhPT0gbiAmJiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ1wiICsgbiArIFwiJyBtZXRob2RcIikpLCB5O1xuICAgIHZhciBpID0gdHJ5Q2F0Y2gobywgZS5pdGVyYXRvciwgci5hcmcpO1xuICAgIGlmIChcInRocm93XCIgPT09IGkudHlwZSkgcmV0dXJuIHIubWV0aG9kID0gXCJ0aHJvd1wiLCByLmFyZyA9IGkuYXJnLCByLmRlbGVnYXRlID0gbnVsbCwgeTtcbiAgICB2YXIgYSA9IGkuYXJnO1xuICAgIHJldHVybiBhID8gYS5kb25lID8gKHJbZS5yZXN1bHROYW1lXSA9IGEudmFsdWUsIHIubmV4dCA9IGUubmV4dExvYywgXCJyZXR1cm5cIiAhPT0gci5tZXRob2QgJiYgKHIubWV0aG9kID0gXCJuZXh0XCIsIHIuYXJnID0gdCksIHIuZGVsZWdhdGUgPSBudWxsLCB5KSA6IGEgOiAoci5tZXRob2QgPSBcInRocm93XCIsIHIuYXJnID0gbmV3IFR5cGVFcnJvcihcIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0XCIpLCByLmRlbGVnYXRlID0gbnVsbCwgeSk7XG4gIH1cbiAgZnVuY3Rpb24gcHVzaFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHtcbiAgICAgIHRyeUxvYzogdFswXVxuICAgIH07XG4gICAgMSBpbiB0ICYmIChlLmNhdGNoTG9jID0gdFsxXSksIDIgaW4gdCAmJiAoZS5maW5hbGx5TG9jID0gdFsyXSwgZS5hZnRlckxvYyA9IHRbM10pLCB0aGlzLnRyeUVudHJpZXMucHVzaChlKTtcbiAgfVxuICBmdW5jdGlvbiByZXNldFRyeUVudHJ5KHQpIHtcbiAgICB2YXIgZSA9IHQuY29tcGxldGlvbiB8fCB7fTtcbiAgICBlLnR5cGUgPSBcIm5vcm1hbFwiLCBkZWxldGUgZS5hcmcsIHQuY29tcGxldGlvbiA9IGU7XG4gIH1cbiAgZnVuY3Rpb24gQ29udGV4dCh0KSB7XG4gICAgdGhpcy50cnlFbnRyaWVzID0gW3tcbiAgICAgIHRyeUxvYzogXCJyb290XCJcbiAgICB9XSwgdC5mb3JFYWNoKHB1c2hUcnlFbnRyeSwgdGhpcyksIHRoaXMucmVzZXQoITApO1xuICB9XG4gIGZ1bmN0aW9uIHZhbHVlcyhlKSB7XG4gICAgaWYgKGUgfHwgXCJcIiA9PT0gZSkge1xuICAgICAgdmFyIHIgPSBlW2FdO1xuICAgICAgaWYgKHIpIHJldHVybiByLmNhbGwoZSk7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09IHR5cGVvZiBlLm5leHQpIHJldHVybiBlO1xuICAgICAgaWYgKCFpc05hTihlLmxlbmd0aCkpIHtcbiAgICAgICAgdmFyIG8gPSAtMSxcbiAgICAgICAgICBpID0gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICAgIGZvciAoOyArK28gPCBlLmxlbmd0aDspIGlmIChuLmNhbGwoZSwgbykpIHJldHVybiBuZXh0LnZhbHVlID0gZVtvXSwgbmV4dC5kb25lID0gITEsIG5leHQ7XG4gICAgICAgICAgICByZXR1cm4gbmV4dC52YWx1ZSA9IHQsIG5leHQuZG9uZSA9ICEwLCBuZXh0O1xuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiBpLm5leHQgPSBpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKF90eXBlb2YoZSkgKyBcIiBpcyBub3QgaXRlcmFibGVcIik7XG4gIH1cbiAgcmV0dXJuIEdlbmVyYXRvckZ1bmN0aW9uLnByb3RvdHlwZSA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBvKGcsIFwiY29uc3RydWN0b3JcIiwge1xuICAgIHZhbHVlOiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSxcbiAgICBjb25maWd1cmFibGU6ICEwXG4gIH0pLCBvKEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBcImNvbnN0cnVjdG9yXCIsIHtcbiAgICB2YWx1ZTogR2VuZXJhdG9yRnVuY3Rpb24sXG4gICAgY29uZmlndXJhYmxlOiAhMFxuICB9KSwgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBkZWZpbmUoR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIHUsIFwiR2VuZXJhdG9yRnVuY3Rpb25cIiksIGUuaXNHZW5lcmF0b3JGdW5jdGlvbiA9IGZ1bmN0aW9uICh0KSB7XG4gICAgdmFyIGUgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIHQgJiYgdC5jb25zdHJ1Y3RvcjtcbiAgICByZXR1cm4gISFlICYmIChlID09PSBHZW5lcmF0b3JGdW5jdGlvbiB8fCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIgPT09IChlLmRpc3BsYXlOYW1lIHx8IGUubmFtZSkpO1xuICB9LCBlLm1hcmsgPSBmdW5jdGlvbiAodCkge1xuICAgIHJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2YodCwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpIDogKHQuX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIGRlZmluZSh0LCB1LCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIpKSwgdC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKGcpLCB0O1xuICB9LCBlLmF3cmFwID0gZnVuY3Rpb24gKHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19hd2FpdDogdFxuICAgIH07XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSksIGRlZmluZShBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSwgYywgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZS5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvciwgZS5hc3luYyA9IGZ1bmN0aW9uICh0LCByLCBuLCBvLCBpKSB7XG4gICAgdm9pZCAwID09PSBpICYmIChpID0gUHJvbWlzZSk7XG4gICAgdmFyIGEgPSBuZXcgQXN5bmNJdGVyYXRvcih3cmFwKHQsIHIsIG4sIG8pLCBpKTtcbiAgICByZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKHIpID8gYSA6IGEubmV4dCgpLnRoZW4oZnVuY3Rpb24gKHQpIHtcbiAgICAgIHJldHVybiB0LmRvbmUgPyB0LnZhbHVlIDogYS5uZXh0KCk7XG4gICAgfSk7XG4gIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhnKSwgZGVmaW5lKGcsIHUsIFwiR2VuZXJhdG9yXCIpLCBkZWZpbmUoZywgYSwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgZGVmaW5lKGcsIFwidG9TdHJpbmdcIiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBcIltvYmplY3QgR2VuZXJhdG9yXVwiO1xuICB9KSwgZS5rZXlzID0gZnVuY3Rpb24gKHQpIHtcbiAgICB2YXIgZSA9IE9iamVjdCh0KSxcbiAgICAgIHIgPSBbXTtcbiAgICBmb3IgKHZhciBuIGluIGUpIHIucHVzaChuKTtcbiAgICByZXR1cm4gci5yZXZlcnNlKCksIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICBmb3IgKDsgci5sZW5ndGg7KSB7XG4gICAgICAgIHZhciB0ID0gci5wb3AoKTtcbiAgICAgICAgaWYgKHQgaW4gZSkgcmV0dXJuIG5leHQudmFsdWUgPSB0LCBuZXh0LmRvbmUgPSAhMSwgbmV4dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0LmRvbmUgPSAhMCwgbmV4dDtcbiAgICB9O1xuICB9LCBlLnZhbHVlcyA9IHZhbHVlcywgQ29udGV4dC5wcm90b3R5cGUgPSB7XG4gICAgY29uc3RydWN0b3I6IENvbnRleHQsXG4gICAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KGUpIHtcbiAgICAgIGlmICh0aGlzLnByZXYgPSAwLCB0aGlzLm5leHQgPSAwLCB0aGlzLnNlbnQgPSB0aGlzLl9zZW50ID0gdCwgdGhpcy5kb25lID0gITEsIHRoaXMuZGVsZWdhdGUgPSBudWxsLCB0aGlzLm1ldGhvZCA9IFwibmV4dFwiLCB0aGlzLmFyZyA9IHQsIHRoaXMudHJ5RW50cmllcy5mb3JFYWNoKHJlc2V0VHJ5RW50cnkpLCAhZSkgZm9yICh2YXIgciBpbiB0aGlzKSBcInRcIiA9PT0gci5jaGFyQXQoMCkgJiYgbi5jYWxsKHRoaXMsIHIpICYmICFpc05hTigrci5zbGljZSgxKSkgJiYgKHRoaXNbcl0gPSB0KTtcbiAgICB9LFxuICAgIHN0b3A6IGZ1bmN0aW9uIHN0b3AoKSB7XG4gICAgICB0aGlzLmRvbmUgPSAhMDtcbiAgICAgIHZhciB0ID0gdGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247XG4gICAgICBpZiAoXCJ0aHJvd1wiID09PSB0LnR5cGUpIHRocm93IHQuYXJnO1xuICAgICAgcmV0dXJuIHRoaXMucnZhbDtcbiAgICB9LFxuICAgIGRpc3BhdGNoRXhjZXB0aW9uOiBmdW5jdGlvbiBkaXNwYXRjaEV4Y2VwdGlvbihlKSB7XG4gICAgICBpZiAodGhpcy5kb25lKSB0aHJvdyBlO1xuICAgICAgdmFyIHIgPSB0aGlzO1xuICAgICAgZnVuY3Rpb24gaGFuZGxlKG4sIG8pIHtcbiAgICAgICAgcmV0dXJuIGEudHlwZSA9IFwidGhyb3dcIiwgYS5hcmcgPSBlLCByLm5leHQgPSBuLCBvICYmIChyLm1ldGhvZCA9IFwibmV4dFwiLCByLmFyZyA9IHQpLCAhIW87XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBvID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IG8gPj0gMDsgLS1vKSB7XG4gICAgICAgIHZhciBpID0gdGhpcy50cnlFbnRyaWVzW29dLFxuICAgICAgICAgIGEgPSBpLmNvbXBsZXRpb247XG4gICAgICAgIGlmIChcInJvb3RcIiA9PT0gaS50cnlMb2MpIHJldHVybiBoYW5kbGUoXCJlbmRcIik7XG4gICAgICAgIGlmIChpLnRyeUxvYyA8PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICB2YXIgYyA9IG4uY2FsbChpLCBcImNhdGNoTG9jXCIpLFxuICAgICAgICAgICAgdSA9IG4uY2FsbChpLCBcImZpbmFsbHlMb2NcIik7XG4gICAgICAgICAgaWYgKGMgJiYgdSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuZmluYWxseUxvYykgcmV0dXJuIGhhbmRsZShpLmZpbmFsbHlMb2MpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYykge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGkuY2F0Y2hMb2MpIHJldHVybiBoYW5kbGUoaS5jYXRjaExvYywgITApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXUpIHRocm93IEVycm9yKFwidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHlcIik7XG4gICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgaS5maW5hbGx5TG9jKSByZXR1cm4gaGFuZGxlKGkuZmluYWxseUxvYyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBhYnJ1cHQ6IGZ1bmN0aW9uIGFicnVwdCh0LCBlKSB7XG4gICAgICBmb3IgKHZhciByID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IHIgPj0gMDsgLS1yKSB7XG4gICAgICAgIHZhciBvID0gdGhpcy50cnlFbnRyaWVzW3JdO1xuICAgICAgICBpZiAoby50cnlMb2MgPD0gdGhpcy5wcmV2ICYmIG4uY2FsbChvLCBcImZpbmFsbHlMb2NcIikgJiYgdGhpcy5wcmV2IDwgby5maW5hbGx5TG9jKSB7XG4gICAgICAgICAgdmFyIGkgPSBvO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpICYmIChcImJyZWFrXCIgPT09IHQgfHwgXCJjb250aW51ZVwiID09PSB0KSAmJiBpLnRyeUxvYyA8PSBlICYmIGUgPD0gaS5maW5hbGx5TG9jICYmIChpID0gbnVsbCk7XG4gICAgICB2YXIgYSA9IGkgPyBpLmNvbXBsZXRpb24gOiB7fTtcbiAgICAgIHJldHVybiBhLnR5cGUgPSB0LCBhLmFyZyA9IGUsIGkgPyAodGhpcy5tZXRob2QgPSBcIm5leHRcIiwgdGhpcy5uZXh0ID0gaS5maW5hbGx5TG9jLCB5KSA6IHRoaXMuY29tcGxldGUoYSk7XG4gICAgfSxcbiAgICBjb21wbGV0ZTogZnVuY3Rpb24gY29tcGxldGUodCwgZSkge1xuICAgICAgaWYgKFwidGhyb3dcIiA9PT0gdC50eXBlKSB0aHJvdyB0LmFyZztcbiAgICAgIHJldHVybiBcImJyZWFrXCIgPT09IHQudHlwZSB8fCBcImNvbnRpbnVlXCIgPT09IHQudHlwZSA/IHRoaXMubmV4dCA9IHQuYXJnIDogXCJyZXR1cm5cIiA9PT0gdC50eXBlID8gKHRoaXMucnZhbCA9IHRoaXMuYXJnID0gdC5hcmcsIHRoaXMubWV0aG9kID0gXCJyZXR1cm5cIiwgdGhpcy5uZXh0ID0gXCJlbmRcIikgOiBcIm5vcm1hbFwiID09PSB0LnR5cGUgJiYgZSAmJiAodGhpcy5uZXh0ID0gZSksIHk7XG4gICAgfSxcbiAgICBmaW5pc2g6IGZ1bmN0aW9uIGZpbmlzaCh0KSB7XG4gICAgICBmb3IgKHZhciBlID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IGUgPj0gMDsgLS1lKSB7XG4gICAgICAgIHZhciByID0gdGhpcy50cnlFbnRyaWVzW2VdO1xuICAgICAgICBpZiAoci5maW5hbGx5TG9jID09PSB0KSByZXR1cm4gdGhpcy5jb21wbGV0ZShyLmNvbXBsZXRpb24sIHIuYWZ0ZXJMb2MpLCByZXNldFRyeUVudHJ5KHIpLCB5O1xuICAgICAgfVxuICAgIH0sXG4gICAgXCJjYXRjaFwiOiBmdW5jdGlvbiBfY2F0Y2godCkge1xuICAgICAgZm9yICh2YXIgZSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBlID49IDA7IC0tZSkge1xuICAgICAgICB2YXIgciA9IHRoaXMudHJ5RW50cmllc1tlXTtcbiAgICAgICAgaWYgKHIudHJ5TG9jID09PSB0KSB7XG4gICAgICAgICAgdmFyIG4gPSByLmNvbXBsZXRpb247XG4gICAgICAgICAgaWYgKFwidGhyb3dcIiA9PT0gbi50eXBlKSB7XG4gICAgICAgICAgICB2YXIgbyA9IG4uYXJnO1xuICAgICAgICAgICAgcmVzZXRUcnlFbnRyeShyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IEVycm9yKFwiaWxsZWdhbCBjYXRjaCBhdHRlbXB0XCIpO1xuICAgIH0sXG4gICAgZGVsZWdhdGVZaWVsZDogZnVuY3Rpb24gZGVsZWdhdGVZaWVsZChlLCByLCBuKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWxlZ2F0ZSA9IHtcbiAgICAgICAgaXRlcmF0b3I6IHZhbHVlcyhlKSxcbiAgICAgICAgcmVzdWx0TmFtZTogcixcbiAgICAgICAgbmV4dExvYzogblxuICAgICAgfSwgXCJuZXh0XCIgPT09IHRoaXMubWV0aG9kICYmICh0aGlzLmFyZyA9IHQpLCB5O1xuICAgIH1cbiAgfSwgZTtcbn1cbm1vZHVsZS5leHBvcnRzID0gX3JlZ2VuZXJhdG9yUnVudGltZSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/setPrototypeOf.js":
/*!***************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
\***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("function _setPrototypeOf(t, e) {\n return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _setPrototypeOf(t, e);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3NldFByb3RvdHlwZU9mLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRSx5QkFBeUIsU0FBUyx5QkFBeUI7QUFDaEU7QUFDQSxrQ0FBa0MseUJBQXlCLFNBQVMseUJBQXlCIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3NldFByb3RvdHlwZU9mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZih0LCBlKSB7XG4gIHJldHVybiBtb2R1bGUuZXhwb3J0cyA9IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCkgOiBmdW5jdGlvbiAodCwgZSkge1xuICAgIHJldHVybiB0Ll9fcHJvdG9fXyA9IGUsIHQ7XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgX3NldFByb3RvdHlwZU9mKHQsIGUpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfc2V0UHJvdG90eXBlT2YsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/setPrototypeOf.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/slicedToArray.js":
/*!**************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/slicedToArray.js ***!
\**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/arrayWithHoles.js\");\nvar iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\");\nvar nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/nonIterableRest.js\");\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3NsaWNlZFRvQXJyYXkuanMiLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCLG1CQUFPLENBQUMsd0dBQXFCO0FBQ2xELDJCQUEyQixtQkFBTyxDQUFDLG9IQUEyQjtBQUM5RCxpQ0FBaUMsbUJBQU8sQ0FBQyxnSUFBaUM7QUFDMUUsc0JBQXNCLG1CQUFPLENBQUMsMEdBQXNCO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXJyYXlXaXRoSG9sZXMgPSByZXF1aXJlKFwiLi9hcnJheVdpdGhIb2xlcy5qc1wiKTtcbnZhciBpdGVyYWJsZVRvQXJyYXlMaW1pdCA9IHJlcXVpcmUoXCIuL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzXCIpO1xudmFyIHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5ID0gcmVxdWlyZShcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIik7XG52YXIgbm9uSXRlcmFibGVSZXN0ID0gcmVxdWlyZShcIi4vbm9uSXRlcmFibGVSZXN0LmpzXCIpO1xuZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkociwgZSkge1xuICByZXR1cm4gYXJyYXlXaXRoSG9sZXMocikgfHwgaXRlcmFibGVUb0FycmF5TGltaXQociwgZSkgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkociwgZSkgfHwgbm9uSXRlcmFibGVSZXN0KCk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9zbGljZWRUb0FycmF5LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/slicedToArray.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/toPrimitive.js":
/*!************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***!
\************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("var _typeof = (__webpack_require__(/*! ./typeof.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvUHJpbWl0aXZlLmpzIiwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEhBQWlDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b1ByaW1pdGl2ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCIuL3R5cGVvZi5qc1wiKVtcImRlZmF1bHRcIl07XG5mdW5jdGlvbiB0b1ByaW1pdGl2ZSh0LCByKSB7XG4gIGlmIChcIm9iamVjdFwiICE9IF90eXBlb2YodCkgfHwgIXQpIHJldHVybiB0O1xuICB2YXIgZSA9IHRbU3ltYm9sLnRvUHJpbWl0aXZlXTtcbiAgaWYgKHZvaWQgMCAhPT0gZSkge1xuICAgIHZhciBpID0gZS5jYWxsKHQsIHIgfHwgXCJkZWZhdWx0XCIpO1xuICAgIGlmIChcIm9iamVjdFwiICE9IF90eXBlb2YoaSkpIHJldHVybiBpO1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKTtcbiAgfVxuICByZXR1cm4gKFwic3RyaW5nXCIgPT09IHIgPyBTdHJpbmcgOiBOdW1iZXIpKHQpO1xufVxubW9kdWxlLmV4cG9ydHMgPSB0b1ByaW1pdGl2ZSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/toPrimitive.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/toPropertyKey.js":
/*!**************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
\**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("var _typeof = (__webpack_require__(/*! ./typeof.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\nvar toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvUHJvcGVydHlLZXkuanMiLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwSEFBaUM7QUFDL0Msa0JBQWtCLG1CQUFPLENBQUMsa0dBQWtCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b1Byb3BlcnR5S2V5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfdHlwZW9mID0gcmVxdWlyZShcIi4vdHlwZW9mLmpzXCIpW1wiZGVmYXVsdFwiXTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoXCIuL3RvUHJpbWl0aXZlLmpzXCIpO1xuZnVuY3Rpb24gdG9Qcm9wZXJ0eUtleSh0KSB7XG4gIHZhciBpID0gdG9QcmltaXRpdmUodCwgXCJzdHJpbmdcIik7XG4gIHJldHVybiBcInN5bWJvbFwiID09IF90eXBlb2YoaSkgPyBpIDogaSArIFwiXCI7XG59XG5tb2R1bGUuZXhwb3J0cyA9IHRvUHJvcGVydHlLZXksIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/toPropertyKey.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/typeof.js":
/*!*******************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/typeof.js ***!
\*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZi5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxHQUFHLEVBQUUseUJBQXlCLFNBQVMseUJBQXlCO0FBQ2hFO0FBQ0EsMEJBQTBCLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3R5cGVvZihvKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICByZXR1cm4gbW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG8pIHtcbiAgICByZXR1cm4gdHlwZW9mIG87XG4gIH0gOiBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiBvICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG8uY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvO1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIF90eXBlb2Yobyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF90eXBlb2YsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/typeof.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
/*!***************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
\***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzIiwibWFwcGluZ3MiOiJBQUFBLHVCQUF1QixtQkFBTyxDQUFDLDRHQUF1QjtBQUN0RDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsOENBQThDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXJyYXlMaWtlVG9BcnJheSA9IHJlcXVpcmUoXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIik7XG5mdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkociwgYSkge1xuICBpZiAocikge1xuICAgIGlmIChcInN0cmluZ1wiID09IHR5cGVvZiByKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShyLCBhKTtcbiAgICB2YXIgdCA9IHt9LnRvU3RyaW5nLmNhbGwocikuc2xpY2UoOCwgLTEpO1xuICAgIHJldHVybiBcIk9iamVjdFwiID09PSB0ICYmIHIuY29uc3RydWN0b3IgJiYgKHQgPSByLmNvbnN0cnVjdG9yLm5hbWUpLCBcIk1hcFwiID09PSB0IHx8IFwiU2V0XCIgPT09IHQgPyBBcnJheS5mcm9tKHIpIDogXCJBcmd1bWVudHNcIiA9PT0gdCB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSA/IGFycmF5TGlrZVRvQXJyYXkociwgYSkgOiB2b2lkIDA7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js":
/*!****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/wrapNativeSuper.js ***!
\****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\nvar setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\nvar isNativeFunction = __webpack_require__(/*! ./isNativeFunction.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/isNativeFunction.js\");\nvar construct = __webpack_require__(/*! ./construct.js */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/construct.js\");\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return module.exports = _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _wrapNativeSuper(t);\n}\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3dyYXBOYXRpdmVTdXBlci5qcyIsIm1hcHBpbmdzIjoiQUFBQSxxQkFBcUIsbUJBQU8sQ0FBQyx3R0FBcUI7QUFDbEQscUJBQXFCLG1CQUFPLENBQUMsd0dBQXFCO0FBQ2xELHVCQUF1QixtQkFBTyxDQUFDLDRHQUF1QjtBQUN0RCxnQkFBZ0IsbUJBQU8sQ0FBQyw4RkFBZ0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRyxFQUFFLHlCQUF5QixTQUFTLHlCQUF5QjtBQUNoRTtBQUNBLG1DQUFtQyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvd3JhcE5hdGl2ZVN1cGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoXCIuL2dldFByb3RvdHlwZU9mLmpzXCIpO1xudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZShcIi4vc2V0UHJvdG90eXBlT2YuanNcIik7XG52YXIgaXNOYXRpdmVGdW5jdGlvbiA9IHJlcXVpcmUoXCIuL2lzTmF0aXZlRnVuY3Rpb24uanNcIik7XG52YXIgY29uc3RydWN0ID0gcmVxdWlyZShcIi4vY29uc3RydWN0LmpzXCIpO1xuZnVuY3Rpb24gX3dyYXBOYXRpdmVTdXBlcih0KSB7XG4gIHZhciByID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBNYXAgPyBuZXcgTWFwKCkgOiB2b2lkIDA7XG4gIHJldHVybiBtb2R1bGUuZXhwb3J0cyA9IF93cmFwTmF0aXZlU3VwZXIgPSBmdW5jdGlvbiBfd3JhcE5hdGl2ZVN1cGVyKHQpIHtcbiAgICBpZiAobnVsbCA9PT0gdCB8fCAhaXNOYXRpdmVGdW5jdGlvbih0KSkgcmV0dXJuIHQ7XG4gICAgaWYgKFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgdCkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO1xuICAgIGlmICh2b2lkIDAgIT09IHIpIHtcbiAgICAgIGlmIChyLmhhcyh0KSkgcmV0dXJuIHIuZ2V0KHQpO1xuICAgICAgci5zZXQodCwgV3JhcHBlcik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFdyYXBwZXIoKSB7XG4gICAgICByZXR1cm4gY29uc3RydWN0KHQsIGFyZ3VtZW50cywgZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3IpO1xuICAgIH1cbiAgICByZXR1cm4gV3JhcHBlci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHQucHJvdG90eXBlLCB7XG4gICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICB2YWx1ZTogV3JhcHBlcixcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMFxuICAgICAgfVxuICAgIH0pLCBzZXRQcm90b3R5cGVPZihXcmFwcGVyLCB0KTtcbiAgfSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBfd3JhcE5hdGl2ZVN1cGVyKHQpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfd3JhcE5hdGl2ZVN1cGVyLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@babel/runtime/regenerator/index.js":
/*!**********************************************************!*\
!*** ./node_modules/@babel/runtime/regenerator/index.js ***!
\**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("// TODO(Babel 8): Remove this file.\n\nvar runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvci9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxjQUFjLG1CQUFPLENBQUMsc0hBQStCO0FBQ3JEOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVE9ETyhCYWJlbCA4KTogUmVtb3ZlIHRoaXMgZmlsZS5cblxudmFyIHJ1bnRpbWUgPSByZXF1aXJlKFwiLi4vaGVscGVycy9yZWdlbmVyYXRvclJ1bnRpbWVcIikoKTtcbm1vZHVsZS5leHBvcnRzID0gcnVudGltZTtcblxuLy8gQ29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlZ2VuZXJhdG9yL2Jsb2IvbWFpbi9wYWNrYWdlcy9ydW50aW1lL3J1bnRpbWUuanMjTDczNj1cbnRyeSB7XG4gIHJlZ2VuZXJhdG9yUnVudGltZSA9IHJ1bnRpbWU7XG59IGNhdGNoIChhY2NpZGVudGFsU3RyaWN0TW9kZSkge1xuICBpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09IFwib2JqZWN0XCIpIHtcbiAgICBnbG9iYWxUaGlzLnJlZ2VuZXJhdG9yUnVudGltZSA9IHJ1bnRpbWU7XG4gIH0gZWxzZSB7XG4gICAgRnVuY3Rpb24oXCJyXCIsIFwicmVnZW5lcmF0b3JSdW50aW1lID0gclwiKShydW50aW1lKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@babel/runtime/regenerator/index.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs":
/*!******************************************************************!*\
!*** ./node_modules/@floating-ui/core/dist/floating-ui.core.mjs ***!
\******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ arrow: () => (/* binding */ arrow),\n/* harmony export */ autoPlacement: () => (/* binding */ autoPlacement),\n/* harmony export */ computePosition: () => (/* binding */ computePosition),\n/* harmony export */ detectOverflow: () => (/* binding */ detectOverflow),\n/* harmony export */ flip: () => (/* binding */ flip),\n/* harmony export */ hide: () => (/* binding */ hide),\n/* harmony export */ inline: () => (/* binding */ inline),\n/* harmony export */ limitShift: () => (/* binding */ limitShift),\n/* harmony export */ offset: () => (/* binding */ offset),\n/* harmony export */ rectToClientRect: () => (/* reexport safe */ _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect),\n/* harmony export */ shift: () => (/* binding */ shift),\n/* harmony export */ size: () => (/* binding */ size)\n/* harmony export */ });\n/* harmony import */ var _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/utils */ \"(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\");\n\n\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement);\n const alignmentAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentAxis)(placement);\n const alignLength = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAxisLength)(alignmentAxis);\n const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch ((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);\n const coords = {\n x,\n y\n };\n const axis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentAxis)(placement);\n const length = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAxisLength)(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) === alignment), ...allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) !== alignment)] : allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) === alignment || (autoAlignment ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAlignmentPlacement)(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentSides)(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\n const initialSideAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(initialPlacement);\n const isBasePlacement = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositePlacement)(initialPlacement)] : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getExpandedPlacements)(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxisPlacements)(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentSides)(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...rects.map(rect => rect.left));\n const minY = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...rects.map(rect => rect.top));\n const maxX = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...rects.map(rect => rect.right));\n const maxY = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(getBoundingRect(nativeClientRects));\n const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if ((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === 'left';\n const maxRight = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...clientRects.map(rect => rect.right));\n const minLeft = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\n const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement);\n const isVertical = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement));\n const mainAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxis)(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement);\n const mainAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxis)(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\n const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement);\n const isYAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.left, 0);\n const xMax = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.right, 0);\n const yMin = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.top, 0);\n const yMax = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvY29yZS9kaXN0L2Zsb2F0aW5nLXVpLmNvcmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBc1U7QUFDaFI7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLG1CQUFtQiwrREFBVztBQUM5Qix3QkFBd0Isb0VBQWdCO0FBQ3hDLHNCQUFzQixpRUFBYTtBQUNuQyxlQUFlLDJEQUFPO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsZ0VBQVk7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLDRCQUE0QjtBQUM5QztBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyx1REFBRztBQUN6QyxxQ0FBcUMsdURBQUc7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsdURBQUc7QUFDeEIscUJBQXFCLHVEQUFHO0FBQ3hCLHFCQUFxQix1REFBRztBQUN4QixxQkFBcUIsdURBQUc7QUFDeEI7QUFDQSxpRkFBaUYsdURBQUc7QUFDcEYsVUFBVTtBQUNWLG1GQUFtRix1REFBRztBQUN0RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVzSCIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL2NvcmUvZGlzdC9mbG9hdGluZy11aS5jb3JlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRTaWRlQXhpcywgZ2V0QWxpZ25tZW50QXhpcywgZ2V0QXhpc0xlbmd0aCwgZ2V0U2lkZSwgZ2V0QWxpZ25tZW50LCBldmFsdWF0ZSwgZ2V0UGFkZGluZ09iamVjdCwgcmVjdFRvQ2xpZW50UmVjdCwgbWluLCBjbGFtcCwgcGxhY2VtZW50cywgZ2V0QWxpZ25tZW50U2lkZXMsIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50LCBnZXRPcHBvc2l0ZVBsYWNlbWVudCwgZ2V0RXhwYW5kZWRQbGFjZW1lbnRzLCBnZXRPcHBvc2l0ZUF4aXNQbGFjZW1lbnRzLCBzaWRlcywgbWF4LCBnZXRPcHBvc2l0ZUF4aXMgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMnO1xuZXhwb3J0IHsgcmVjdFRvQ2xpZW50UmVjdCB9IGZyb20gJ0BmbG9hdGluZy11aS91dGlscyc7XG5cbmZ1bmN0aW9uIGNvbXB1dGVDb29yZHNGcm9tUGxhY2VtZW50KF9yZWYsIHBsYWNlbWVudCwgcnRsKSB7XG4gIGxldCB7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nXG4gIH0gPSBfcmVmO1xuICBjb25zdCBzaWRlQXhpcyA9IGdldFNpZGVBeGlzKHBsYWNlbWVudCk7XG4gIGNvbnN0IGFsaWdubWVudEF4aXMgPSBnZXRBbGlnbm1lbnRBeGlzKHBsYWNlbWVudCk7XG4gIGNvbnN0IGFsaWduTGVuZ3RoID0gZ2V0QXhpc0xlbmd0aChhbGlnbm1lbnRBeGlzKTtcbiAgY29uc3Qgc2lkZSA9IGdldFNpZGUocGxhY2VtZW50KTtcbiAgY29uc3QgaXNWZXJ0aWNhbCA9IHNpZGVBeGlzID09PSAneSc7XG4gIGNvbnN0IGNvbW1vblggPSByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCAvIDIgLSBmbG9hdGluZy53aWR0aCAvIDI7XG4gIGNvbnN0IGNvbW1vblkgPSByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHQgLyAyIC0gZmxvYXRpbmcuaGVpZ2h0IC8gMjtcbiAgY29uc3QgY29tbW9uQWxpZ24gPSByZWZlcmVuY2VbYWxpZ25MZW5ndGhdIC8gMiAtIGZsb2F0aW5nW2FsaWduTGVuZ3RoXSAvIDI7XG4gIGxldCBjb29yZHM7XG4gIHN3aXRjaCAoc2lkZSkge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICBjb29yZHMgPSB7XG4gICAgICAgIHg6IGNvbW1vblgsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55IC0gZmxvYXRpbmcuaGVpZ2h0XG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICAgIGNvb3JkcyA9IHtcbiAgICAgICAgeDogY29tbW9uWCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgKyByZWZlcmVuY2UuaGVpZ2h0XG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgY29vcmRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCxcbiAgICAgICAgeTogY29tbW9uWVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgY29vcmRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCAtIGZsb2F0aW5nLndpZHRoLFxuICAgICAgICB5OiBjb21tb25ZXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGNvb3JkcyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLngsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55XG4gICAgICB9O1xuICB9XG4gIHN3aXRjaCAoZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkpIHtcbiAgICBjYXNlICdzdGFydCc6XG4gICAgICBjb29yZHNbYWxpZ25tZW50QXhpc10gLT0gY29tbW9uQWxpZ24gKiAocnRsICYmIGlzVmVydGljYWwgPyAtMSA6IDEpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZW5kJzpcbiAgICAgIGNvb3Jkc1thbGlnbm1lbnRBeGlzXSArPSBjb21tb25BbGlnbiAqIChydGwgJiYgaXNWZXJ0aWNhbCA/IC0xIDogMSk7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gY29vcmRzO1xufVxuXG4vKipcbiAqIENvbXB1dGVzIHRoZSBgeGAgYW5kIGB5YCBjb29yZGluYXRlcyB0aGF0IHdpbGwgcGxhY2UgdGhlIGZsb2F0aW5nIGVsZW1lbnRcbiAqIG5leHQgdG8gYSBnaXZlbiByZWZlcmVuY2UgZWxlbWVudC5cbiAqXG4gKiBUaGlzIGV4cG9ydCBkb2VzIG5vdCBoYXZlIGFueSBgcGxhdGZvcm1gIGludGVyZmFjZSBsb2dpYy4gWW91IHdpbGwgbmVlZCB0b1xuICogd3JpdGUgb25lIGZvciB0aGUgcGxhdGZvcm0geW91IGFyZSB1c2luZyBGbG9hdGluZyBVSSB3aXRoLlxuICovXG5jb25zdCBjb21wdXRlUG9zaXRpb24gPSBhc3luYyAocmVmZXJlbmNlLCBmbG9hdGluZywgY29uZmlnKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBwbGFjZW1lbnQgPSAnYm90dG9tJyxcbiAgICBzdHJhdGVneSA9ICdhYnNvbHV0ZScsXG4gICAgbWlkZGxld2FyZSA9IFtdLFxuICAgIHBsYXRmb3JtXG4gIH0gPSBjb25maWc7XG4gIGNvbnN0IHZhbGlkTWlkZGxld2FyZSA9IG1pZGRsZXdhcmUuZmlsdGVyKEJvb2xlYW4pO1xuICBjb25zdCBydGwgPSBhd2FpdCAocGxhdGZvcm0uaXNSVEwgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmlzUlRMKGZsb2F0aW5nKSk7XG4gIGxldCByZWN0cyA9IGF3YWl0IHBsYXRmb3JtLmdldEVsZW1lbnRSZWN0cyh7XG4gICAgcmVmZXJlbmNlLFxuICAgIGZsb2F0aW5nLFxuICAgIHN0cmF0ZWd5XG4gIH0pO1xuICBsZXQge1xuICAgIHgsXG4gICAgeVxuICB9ID0gY29tcHV0ZUNvb3Jkc0Zyb21QbGFjZW1lbnQocmVjdHMsIHBsYWNlbWVudCwgcnRsKTtcbiAgbGV0IHN0YXRlZnVsUGxhY2VtZW50ID0gcGxhY2VtZW50O1xuICBsZXQgbWlkZGxld2FyZURhdGEgPSB7fTtcbiAgbGV0IHJlc2V0Q291bnQgPSAwO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbGlkTWlkZGxld2FyZS5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHtcbiAgICAgIG5hbWUsXG4gICAgICBmblxuICAgIH0gPSB2YWxpZE1pZGRsZXdhcmVbaV07XG4gICAgY29uc3Qge1xuICAgICAgeDogbmV4dFgsXG4gICAgICB5OiBuZXh0WSxcbiAgICAgIGRhdGEsXG4gICAgICByZXNldFxuICAgIH0gPSBhd2FpdCBmbih7XG4gICAgICB4LFxuICAgICAgeSxcbiAgICAgIGluaXRpYWxQbGFjZW1lbnQ6IHBsYWNlbWVudCxcbiAgICAgIHBsYWNlbWVudDogc3RhdGVmdWxQbGFjZW1lbnQsXG4gICAgICBzdHJhdGVneSxcbiAgICAgIG1pZGRsZXdhcmVEYXRhLFxuICAgICAgcmVjdHMsXG4gICAgICBwbGF0Zm9ybSxcbiAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgIHJlZmVyZW5jZSxcbiAgICAgICAgZmxvYXRpbmdcbiAgICAgIH1cbiAgICB9KTtcbiAgICB4ID0gbmV4dFggIT0gbnVsbCA/IG5leHRYIDogeDtcbiAgICB5ID0gbmV4dFkgIT0gbnVsbCA/IG5leHRZIDogeTtcbiAgICBtaWRkbGV3YXJlRGF0YSA9IHtcbiAgICAgIC4uLm1pZGRsZXdhcmVEYXRhLFxuICAgICAgW25hbWVdOiB7XG4gICAgICAgIC4uLm1pZGRsZXdhcmVEYXRhW25hbWVdLFxuICAgICAgICAuLi5kYXRhXG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAocmVzZXQgJiYgcmVzZXRDb3VudCA8PSA1MCkge1xuICAgICAgcmVzZXRDb3VudCsrO1xuICAgICAgaWYgKHR5cGVvZiByZXNldCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKHJlc2V0LnBsYWNlbWVudCkge1xuICAgICAgICAgIHN0YXRlZnVsUGxhY2VtZW50ID0gcmVzZXQucGxhY2VtZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXNldC5yZWN0cykge1xuICAgICAgICAgIHJlY3RzID0gcmVzZXQucmVjdHMgPT09IHRydWUgPyBhd2FpdCBwbGF0Zm9ybS5nZXRFbGVtZW50UmVjdHMoe1xuICAgICAgICAgICAgcmVmZXJlbmNlLFxuICAgICAgICAgICAgZmxvYXRpbmcsXG4gICAgICAgICAgICBzdHJhdGVneVxuICAgICAgICAgIH0pIDogcmVzZXQucmVjdHM7XG4gICAgICAgIH1cbiAgICAgICAgKHtcbiAgICAgICAgICB4LFxuICAgICAgICAgIHlcbiAgICAgICAgfSA9IGNvbXB1dGVDb29yZHNGcm9tUGxhY2VtZW50KHJlY3RzLCBzdGF0ZWZ1bFBsYWNlbWVudCwgcnRsKSk7XG4gICAgICB9XG4gICAgICBpID0gLTE7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgeCxcbiAgICB5LFxuICAgIHBsYWNlbWVudDogc3RhdGVmdWxQbGFjZW1lbnQsXG4gICAgc3RyYXRlZ3ksXG4gICAgbWlkZGxld2FyZURhdGFcbiAgfTtcbn07XG5cbi8qKlxuICogUmVzb2x2ZXMgd2l0aCBhbiBvYmplY3Qgb2Ygb3ZlcmZsb3cgc2lkZSBvZmZzZXRzIHRoYXQgZGV0ZXJtaW5lIGhvdyBtdWNoIHRoZVxuICogZWxlbWVudCBpcyBvdmVyZmxvd2luZyBhIGdpdmVuIGNsaXBwaW5nIGJvdW5kYXJ5IG9uIGVhY2ggc2lkZS5cbiAqIC0gcG9zaXRpdmUgPSBvdmVyZmxvd2luZyB0aGUgYm91bmRhcnkgYnkgdGhhdCBudW1iZXIgb2YgcGl4ZWxzXG4gKiAtIG5lZ2F0aXZlID0gaG93IG1hbnkgcGl4ZWxzIGxlZnQgYmVmb3JlIGl0IHdpbGwgb3ZlcmZsb3dcbiAqIC0gMCA9IGxpZXMgZmx1c2ggd2l0aCB0aGUgYm91bmRhcnlcbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9kZXRlY3RPdmVyZmxvd1xuICovXG5hc3luYyBmdW5jdGlvbiBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgb3B0aW9ucykge1xuICB2YXIgX2F3YWl0JHBsYXRmb3JtJGlzRWxlO1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGNvbnN0IHtcbiAgICB4LFxuICAgIHksXG4gICAgcGxhdGZvcm0sXG4gICAgcmVjdHMsXG4gICAgZWxlbWVudHMsXG4gICAgc3RyYXRlZ3lcbiAgfSA9IHN0YXRlO1xuICBjb25zdCB7XG4gICAgYm91bmRhcnkgPSAnY2xpcHBpbmdBbmNlc3RvcnMnLFxuICAgIHJvb3RCb3VuZGFyeSA9ICd2aWV3cG9ydCcsXG4gICAgZWxlbWVudENvbnRleHQgPSAnZmxvYXRpbmcnLFxuICAgIGFsdEJvdW5kYXJ5ID0gZmFsc2UsXG4gICAgcGFkZGluZyA9IDBcbiAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgY29uc3QgcGFkZGluZ09iamVjdCA9IGdldFBhZGRpbmdPYmplY3QocGFkZGluZyk7XG4gIGNvbnN0IGFsdENvbnRleHQgPSBlbGVtZW50Q29udGV4dCA9PT0gJ2Zsb2F0aW5nJyA/ICdyZWZlcmVuY2UnIDogJ2Zsb2F0aW5nJztcbiAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRzW2FsdEJvdW5kYXJ5ID8gYWx0Q29udGV4dCA6IGVsZW1lbnRDb250ZXh0XTtcbiAgY29uc3QgY2xpcHBpbmdDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChhd2FpdCBwbGF0Zm9ybS5nZXRDbGlwcGluZ1JlY3Qoe1xuICAgIGVsZW1lbnQ6ICgoX2F3YWl0JHBsYXRmb3JtJGlzRWxlID0gYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KGVsZW1lbnQpKSkgIT0gbnVsbCA/IF9hd2FpdCRwbGF0Zm9ybSRpc0VsZSA6IHRydWUpID8gZWxlbWVudCA6IGVsZW1lbnQuY29udGV4dEVsZW1lbnQgfHwgKGF3YWl0IChwbGF0Zm9ybS5nZXREb2N1bWVudEVsZW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldERvY3VtZW50RWxlbWVudChlbGVtZW50cy5mbG9hdGluZykpKSxcbiAgICBib3VuZGFyeSxcbiAgICByb290Qm91bmRhcnksXG4gICAgc3RyYXRlZ3lcbiAgfSkpO1xuICBjb25zdCByZWN0ID0gZWxlbWVudENvbnRleHQgPT09ICdmbG9hdGluZycgPyB7XG4gICAgeCxcbiAgICB5LFxuICAgIHdpZHRoOiByZWN0cy5mbG9hdGluZy53aWR0aCxcbiAgICBoZWlnaHQ6IHJlY3RzLmZsb2F0aW5nLmhlaWdodFxuICB9IDogcmVjdHMucmVmZXJlbmNlO1xuICBjb25zdCBvZmZzZXRQYXJlbnQgPSBhd2FpdCAocGxhdGZvcm0uZ2V0T2Zmc2V0UGFyZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQoZWxlbWVudHMuZmxvYXRpbmcpKTtcbiAgY29uc3Qgb2Zmc2V0U2NhbGUgPSAoYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KG9mZnNldFBhcmVudCkpKSA/IChhd2FpdCAocGxhdGZvcm0uZ2V0U2NhbGUgPT0gbnVsbCA/IHZvaWQgMCA6IHBsYXRmb3JtLmdldFNjYWxlKG9mZnNldFBhcmVudCkpKSB8fCB7XG4gICAgeDogMSxcbiAgICB5OiAxXG4gIH0gOiB7XG4gICAgeDogMSxcbiAgICB5OiAxXG4gIH07XG4gIGNvbnN0IGVsZW1lbnRDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChwbGF0Zm9ybS5jb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdCA/IGF3YWl0IHBsYXRmb3JtLmNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0KHtcbiAgICBlbGVtZW50cyxcbiAgICByZWN0LFxuICAgIG9mZnNldFBhcmVudCxcbiAgICBzdHJhdGVneVxuICB9KSA6IHJlY3QpO1xuICByZXR1cm4ge1xuICAgIHRvcDogKGNsaXBwaW5nQ2xpZW50UmVjdC50b3AgLSBlbGVtZW50Q2xpZW50UmVjdC50b3AgKyBwYWRkaW5nT2JqZWN0LnRvcCkgLyBvZmZzZXRTY2FsZS55LFxuICAgIGJvdHRvbTogKGVsZW1lbnRDbGllbnRSZWN0LmJvdHRvbSAtIGNsaXBwaW5nQ2xpZW50UmVjdC5ib3R0b20gKyBwYWRkaW5nT2JqZWN0LmJvdHRvbSkgLyBvZmZzZXRTY2FsZS55LFxuICAgIGxlZnQ6IChjbGlwcGluZ0NsaWVudFJlY3QubGVmdCAtIGVsZW1lbnRDbGllbnRSZWN0LmxlZnQgKyBwYWRkaW5nT2JqZWN0LmxlZnQpIC8gb2Zmc2V0U2NhbGUueCxcbiAgICByaWdodDogKGVsZW1lbnRDbGllbnRSZWN0LnJpZ2h0IC0gY2xpcHBpbmdDbGllbnRSZWN0LnJpZ2h0ICsgcGFkZGluZ09iamVjdC5yaWdodCkgLyBvZmZzZXRTY2FsZS54XG4gIH07XG59XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBwb3NpdGlvbiBhbiBpbm5lciBlbGVtZW50IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IHNvIHRoYXQgaXRcbiAqIGFwcGVhcnMgY2VudGVyZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2Fycm93XG4gKi9cbmNvbnN0IGFycm93ID0gb3B0aW9ucyA9PiAoe1xuICBuYW1lOiAnYXJyb3cnLFxuICBvcHRpb25zLFxuICBhc3luYyBmbihzdGF0ZSkge1xuICAgIGNvbnN0IHtcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgcGxhY2VtZW50LFxuICAgICAgcmVjdHMsXG4gICAgICBwbGF0Zm9ybSxcbiAgICAgIGVsZW1lbnRzLFxuICAgICAgbWlkZGxld2FyZURhdGFcbiAgICB9ID0gc3RhdGU7XG4gICAgLy8gU2luY2UgYGVsZW1lbnRgIGlzIHJlcXVpcmVkLCB3ZSBkb24ndCBQYXJ0aWFsPD4gdGhlIHR5cGUuXG4gICAgY29uc3Qge1xuICAgICAgZWxlbWVudCxcbiAgICAgIHBhZGRpbmcgPSAwXG4gICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKSB8fCB7fTtcbiAgICBpZiAoZWxlbWVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHBhZGRpbmdPYmplY3QgPSBnZXRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpO1xuICAgIGNvbnN0IGNvb3JkcyA9IHtcbiAgICAgIHgsXG4gICAgICB5XG4gICAgfTtcbiAgICBjb25zdCBheGlzID0gZ2V0QWxpZ25tZW50QXhpcyhwbGFjZW1lbnQpO1xuICAgIGNvbnN0IGxlbmd0aCA9IGdldEF4aXNMZW5ndGgoYXhpcyk7XG4gICAgY29uc3QgYXJyb3dEaW1lbnNpb25zID0gYXdhaXQgcGxhdGZvcm0uZ2V0RGltZW5zaW9ucyhlbGVtZW50KTtcbiAgICBjb25zdCBpc1lBeGlzID0gYXhpcyA9PT0gJ3knO1xuICAgIGNvbnN0IG1pblByb3AgPSBpc1lBeGlzID8gJ3RvcCcgOiAnbGVmdCc7XG4gICAgY29uc3QgbWF4UHJvcCA9IGlzWUF4aXMgPyAnYm90dG9tJyA6ICdyaWdodCc7XG4gICAgY29uc3QgY2xpZW50UHJvcCA9IGlzWUF4aXMgPyAnY2xpZW50SGVpZ2h0JyA6ICdjbGllbnRXaWR0aCc7XG4gICAgY29uc3QgZW5kRGlmZiA9IHJlY3RzLnJlZmVyZW5jZVtsZW5ndGhdICsgcmVjdHMucmVmZXJlbmNlW2F4aXNdIC0gY29vcmRzW2F4aXNdIC0gcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXTtcbiAgICBjb25zdCBzdGFydERpZmYgPSBjb29yZHNbYXhpc10gLSByZWN0cy5yZWZlcmVuY2VbYXhpc107XG4gICAgY29uc3QgYXJyb3dPZmZzZXRQYXJlbnQgPSBhd2FpdCAocGxhdGZvcm0uZ2V0T2Zmc2V0UGFyZW50ID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5nZXRPZmZzZXRQYXJlbnQoZWxlbWVudCkpO1xuICAgIGxldCBjbGllbnRTaXplID0gYXJyb3dPZmZzZXRQYXJlbnQgPyBhcnJvd09mZnNldFBhcmVudFtjbGllbnRQcm9wXSA6IDA7XG5cbiAgICAvLyBET00gcGxhdGZvcm0gY2FuIHJldHVybiBgd2luZG93YCBhcyB0aGUgYG9mZnNldFBhcmVudGAuXG4gICAgaWYgKCFjbGllbnRTaXplIHx8ICEoYXdhaXQgKHBsYXRmb3JtLmlzRWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNFbGVtZW50KGFycm93T2Zmc2V0UGFyZW50KSkpKSB7XG4gICAgICBjbGllbnRTaXplID0gZWxlbWVudHMuZmxvYXRpbmdbY2xpZW50UHJvcF0gfHwgcmVjdHMuZmxvYXRpbmdbbGVuZ3RoXTtcbiAgICB9XG4gICAgY29uc3QgY2VudGVyVG9SZWZlcmVuY2UgPSBlbmREaWZmIC8gMiAtIHN0YXJ0RGlmZiAvIDI7XG5cbiAgICAvLyBJZiB0aGUgcGFkZGluZyBpcyBsYXJnZSBlbm91Z2ggdGhhdCBpdCBjYXVzZXMgdGhlIGFycm93IHRvIG5vIGxvbmdlciBiZVxuICAgIC8vIGNlbnRlcmVkLCBtb2RpZnkgdGhlIHBhZGRpbmcgc28gdGhhdCBpdCBpcyBjZW50ZXJlZC5cbiAgICBjb25zdCBsYXJnZXN0UG9zc2libGVQYWRkaW5nID0gY2xpZW50U2l6ZSAvIDIgLSBhcnJvd0RpbWVuc2lvbnNbbGVuZ3RoXSAvIDIgLSAxO1xuICAgIGNvbnN0IG1pblBhZGRpbmcgPSBtaW4ocGFkZGluZ09iamVjdFttaW5Qcm9wXSwgbGFyZ2VzdFBvc3NpYmxlUGFkZGluZyk7XG4gICAgY29uc3QgbWF4UGFkZGluZyA9IG1pbihwYWRkaW5nT2JqZWN0W21heFByb3BdLCBsYXJnZXN0UG9zc2libGVQYWRkaW5nKTtcblxuICAgIC8vIE1ha2Ugc3VyZSB0aGUgYXJyb3cgZG9lc24ndCBvdmVyZmxvdyB0aGUgZmxvYXRpbmcgZWxlbWVudCBpZiB0aGUgY2VudGVyXG4gICAgLy8gcG9pbnQgaXMgb3V0c2lkZSB0aGUgZmxvYXRpbmcgZWxlbWVudCdzIGJvdW5kcy5cbiAgICBjb25zdCBtaW4kMSA9IG1pblBhZGRpbmc7XG4gICAgY29uc3QgbWF4ID0gY2xpZW50U2l6ZSAtIGFycm93RGltZW5zaW9uc1tsZW5ndGhdIC0gbWF4UGFkZGluZztcbiAgICBjb25zdCBjZW50ZXIgPSBjbGllbnRTaXplIC8gMiAtIGFycm93RGltZW5zaW9uc1tsZW5ndGhdIC8gMiArIGNlbnRlclRvUmVmZXJlbmNlO1xuICAgIGNvbnN0IG9mZnNldCA9IGNsYW1wKG1pbiQxLCBjZW50ZXIsIG1heCk7XG5cbiAgICAvLyBJZiB0aGUgcmVmZXJlbmNlIGlzIHNtYWxsIGVub3VnaCB0aGF0IHRoZSBhcnJvdydzIHBhZGRpbmcgY2F1c2VzIGl0IHRvXG4gICAgLy8gdG8gcG9pbnQgdG8gbm90aGluZyBmb3IgYW4gYWxpZ25lZCBwbGFjZW1lbnQsIGFkanVzdCB0aGUgb2Zmc2V0IG9mIHRoZVxuICAgIC8vIGZsb2F0aW5nIGVsZW1lbnQgaXRzZWxmLiBUbyBlbnN1cmUgYHNoaWZ0KClgIGNvbnRpbnVlcyB0byB0YWtlIGFjdGlvbixcbiAgICAvLyBhIHNpbmdsZSByZXNldCBpcyBwZXJmb3JtZWQgd2hlbiB0aGlzIGlzIHRydWUuXG4gICAgY29uc3Qgc2hvdWxkQWRkT2Zmc2V0ID0gIW1pZGRsZXdhcmVEYXRhLmFycm93ICYmIGdldEFsaWdubWVudChwbGFjZW1lbnQpICE9IG51bGwgJiYgY2VudGVyICE9PSBvZmZzZXQgJiYgcmVjdHMucmVmZXJlbmNlW2xlbmd0aF0gLyAyIC0gKGNlbnRlciA8IG1pbiQxID8gbWluUGFkZGluZyA6IG1heFBhZGRpbmcpIC0gYXJyb3dEaW1lbnNpb25zW2xlbmd0aF0gLyAyIDwgMDtcbiAgICBjb25zdCBhbGlnbm1lbnRPZmZzZXQgPSBzaG91bGRBZGRPZmZzZXQgPyBjZW50ZXIgPCBtaW4kMSA/IGNlbnRlciAtIG1pbiQxIDogY2VudGVyIC0gbWF4IDogMDtcbiAgICByZXR1cm4ge1xuICAgICAgW2F4aXNdOiBjb29yZHNbYXhpc10gKyBhbGlnbm1lbnRPZmZzZXQsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIFtheGlzXTogb2Zmc2V0LFxuICAgICAgICBjZW50ZXJPZmZzZXQ6IGNlbnRlciAtIG9mZnNldCAtIGFsaWdubWVudE9mZnNldCxcbiAgICAgICAgLi4uKHNob3VsZEFkZE9mZnNldCAmJiB7XG4gICAgICAgICAgYWxpZ25tZW50T2Zmc2V0XG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgICAgcmVzZXQ6IHNob3VsZEFkZE9mZnNldFxuICAgIH07XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBnZXRQbGFjZW1lbnRMaXN0KGFsaWdubWVudCwgYXV0b0FsaWdubWVudCwgYWxsb3dlZFBsYWNlbWVudHMpIHtcbiAgY29uc3QgYWxsb3dlZFBsYWNlbWVudHNTb3J0ZWRCeUFsaWdubWVudCA9IGFsaWdubWVudCA/IFsuLi5hbGxvd2VkUGxhY2VtZW50cy5maWx0ZXIocGxhY2VtZW50ID0+IGdldEFsaWdubWVudChwbGFjZW1lbnQpID09PSBhbGlnbm1lbnQpLCAuLi5hbGxvd2VkUGxhY2VtZW50cy5maWx0ZXIocGxhY2VtZW50ID0+IGdldEFsaWdubWVudChwbGFjZW1lbnQpICE9PSBhbGlnbm1lbnQpXSA6IGFsbG93ZWRQbGFjZW1lbnRzLmZpbHRlcihwbGFjZW1lbnQgPT4gZ2V0U2lkZShwbGFjZW1lbnQpID09PSBwbGFjZW1lbnQpO1xuICByZXR1cm4gYWxsb3dlZFBsYWNlbWVudHNTb3J0ZWRCeUFsaWdubWVudC5maWx0ZXIocGxhY2VtZW50ID0+IHtcbiAgICBpZiAoYWxpZ25tZW50KSB7XG4gICAgICByZXR1cm4gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCkgPT09IGFsaWdubWVudCB8fCAoYXV0b0FsaWdubWVudCA/IGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KHBsYWNlbWVudCkgIT09IHBsYWNlbWVudCA6IGZhbHNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xufVxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgY2hvb3NpbmcgdGhlIHBsYWNlbWVudFxuICogdGhhdCBoYXMgdGhlIG1vc3Qgc3BhY2UgYXZhaWxhYmxlIGF1dG9tYXRpY2FsbHksIHdpdGhvdXQgbmVlZGluZyB0byBzcGVjaWZ5IGFcbiAqIHByZWZlcnJlZCBwbGFjZW1lbnQuIEFsdGVybmF0aXZlIHRvIGBmbGlwYC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hdXRvUGxhY2VtZW50XG4gKi9cbmNvbnN0IGF1dG9QbGFjZW1lbnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2F1dG9QbGFjZW1lbnQnLFxuICAgIG9wdGlvbnMsXG4gICAgYXN5bmMgZm4oc3RhdGUpIHtcbiAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkYXV0b1AsIF9taWRkbGV3YXJlRGF0YSRhdXRvUDIsIF9wbGFjZW1lbnRzVGhhdEZpdE9uRTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcmVjdHMsXG4gICAgICAgIG1pZGRsZXdhcmVEYXRhLFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHBsYXRmb3JtLFxuICAgICAgICBlbGVtZW50c1xuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBjcm9zc0F4aXMgPSBmYWxzZSxcbiAgICAgICAgYWxpZ25tZW50LFxuICAgICAgICBhbGxvd2VkUGxhY2VtZW50cyA9IHBsYWNlbWVudHMsXG4gICAgICAgIGF1dG9BbGlnbm1lbnQgPSB0cnVlLFxuICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnNcbiAgICAgIH0gPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XG4gICAgICBjb25zdCBwbGFjZW1lbnRzJDEgPSBhbGlnbm1lbnQgIT09IHVuZGVmaW5lZCB8fCBhbGxvd2VkUGxhY2VtZW50cyA9PT0gcGxhY2VtZW50cyA/IGdldFBsYWNlbWVudExpc3QoYWxpZ25tZW50IHx8IG51bGwsIGF1dG9BbGlnbm1lbnQsIGFsbG93ZWRQbGFjZW1lbnRzKSA6IGFsbG93ZWRQbGFjZW1lbnRzO1xuICAgICAgY29uc3Qgb3ZlcmZsb3cgPSBhd2FpdCBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgZGV0ZWN0T3ZlcmZsb3dPcHRpb25zKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9ICgoX21pZGRsZXdhcmVEYXRhJGF1dG9QID0gbWlkZGxld2FyZURhdGEuYXV0b1BsYWNlbWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRhdXRvUC5pbmRleCkgfHwgMDtcbiAgICAgIGNvbnN0IGN1cnJlbnRQbGFjZW1lbnQgPSBwbGFjZW1lbnRzJDFbY3VycmVudEluZGV4XTtcbiAgICAgIGlmIChjdXJyZW50UGxhY2VtZW50ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgY29uc3QgYWxpZ25tZW50U2lkZXMgPSBnZXRBbGlnbm1lbnRTaWRlcyhjdXJyZW50UGxhY2VtZW50LCByZWN0cywgYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpKTtcblxuICAgICAgLy8gTWFrZSBgY29tcHV0ZUNvb3Jkc2Agc3RhcnQgZnJvbSB0aGUgcmlnaHQgcGxhY2UuXG4gICAgICBpZiAocGxhY2VtZW50ICE9PSBjdXJyZW50UGxhY2VtZW50KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50cyQxWzBdXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3QgY3VycmVudE92ZXJmbG93cyA9IFtvdmVyZmxvd1tnZXRTaWRlKGN1cnJlbnRQbGFjZW1lbnQpXSwgb3ZlcmZsb3dbYWxpZ25tZW50U2lkZXNbMF1dLCBvdmVyZmxvd1thbGlnbm1lbnRTaWRlc1sxXV1dO1xuICAgICAgY29uc3QgYWxsT3ZlcmZsb3dzID0gWy4uLigoKF9taWRkbGV3YXJlRGF0YSRhdXRvUDIgPSBtaWRkbGV3YXJlRGF0YS5hdXRvUGxhY2VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGF1dG9QMi5vdmVyZmxvd3MpIHx8IFtdKSwge1xuICAgICAgICBwbGFjZW1lbnQ6IGN1cnJlbnRQbGFjZW1lbnQsXG4gICAgICAgIG92ZXJmbG93czogY3VycmVudE92ZXJmbG93c1xuICAgICAgfV07XG4gICAgICBjb25zdCBuZXh0UGxhY2VtZW50ID0gcGxhY2VtZW50cyQxW2N1cnJlbnRJbmRleCArIDFdO1xuXG4gICAgICAvLyBUaGVyZSBhcmUgbW9yZSBwbGFjZW1lbnRzIHRvIGNoZWNrLlxuICAgICAgaWYgKG5leHRQbGFjZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBpbmRleDogY3VycmVudEluZGV4ICsgMSxcbiAgICAgICAgICAgIG92ZXJmbG93czogYWxsT3ZlcmZsb3dzXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNldDoge1xuICAgICAgICAgICAgcGxhY2VtZW50OiBuZXh0UGxhY2VtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3QgcGxhY2VtZW50c1NvcnRlZEJ5TW9zdFNwYWNlID0gYWxsT3ZlcmZsb3dzLm1hcChkID0+IHtcbiAgICAgICAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KGQucGxhY2VtZW50KTtcbiAgICAgICAgcmV0dXJuIFtkLnBsYWNlbWVudCwgYWxpZ25tZW50ICYmIGNyb3NzQXhpcyA/XG4gICAgICAgIC8vIENoZWNrIGFsb25nIHRoZSBtYWluQXhpcyBhbmQgbWFpbiBjcm9zc0F4aXMgc2lkZS5cbiAgICAgICAgZC5vdmVyZmxvd3Muc2xpY2UoMCwgMikucmVkdWNlKChhY2MsIHYpID0+IGFjYyArIHYsIDApIDpcbiAgICAgICAgLy8gQ2hlY2sgb25seSB0aGUgbWFpbkF4aXMuXG4gICAgICAgIGQub3ZlcmZsb3dzWzBdLCBkLm92ZXJmbG93c107XG4gICAgICB9KS5zb3J0KChhLCBiKSA9PiBhWzFdIC0gYlsxXSk7XG4gICAgICBjb25zdCBwbGFjZW1lbnRzVGhhdEZpdE9uRWFjaFNpZGUgPSBwbGFjZW1lbnRzU29ydGVkQnlNb3N0U3BhY2UuZmlsdGVyKGQgPT4gZFsyXS5zbGljZSgwLFxuICAgICAgLy8gQWxpZ25lZCBwbGFjZW1lbnRzIHNob3VsZCBub3QgY2hlY2sgdGhlaXIgb3Bwb3NpdGUgY3Jvc3NBeGlzXG4gICAgICAvLyBzaWRlLlxuICAgICAgZ2V0QWxpZ25tZW50KGRbMF0pID8gMiA6IDMpLmV2ZXJ5KHYgPT4gdiA8PSAwKSk7XG4gICAgICBjb25zdCByZXNldFBsYWNlbWVudCA9ICgoX3BsYWNlbWVudHNUaGF0Rml0T25FID0gcGxhY2VtZW50c1RoYXRGaXRPbkVhY2hTaWRlWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX3BsYWNlbWVudHNUaGF0Rml0T25FWzBdKSB8fCBwbGFjZW1lbnRzU29ydGVkQnlNb3N0U3BhY2VbMF1bMF07XG4gICAgICBpZiAocmVzZXRQbGFjZW1lbnQgIT09IHBsYWNlbWVudCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGluZGV4OiBjdXJyZW50SW5kZXggKyAxLFxuICAgICAgICAgICAgb3ZlcmZsb3dzOiBhbGxPdmVyZmxvd3NcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc2V0OiB7XG4gICAgICAgICAgICBwbGFjZW1lbnQ6IHJlc2V0UGxhY2VtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGZsaXBwaW5nIHRoZSBgcGxhY2VtZW50YFxuICogaW4gb3JkZXIgdG8ga2VlcCBpdCBpbiB2aWV3IHdoZW4gdGhlIHByZWZlcnJlZCBwbGFjZW1lbnQocykgd2lsbCBvdmVyZmxvdyB0aGVcbiAqIGNsaXBwaW5nIGJvdW5kYXJ5LiBBbHRlcm5hdGl2ZSB0byBgYXV0b1BsYWNlbWVudGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvZmxpcFxuICovXG5jb25zdCBmbGlwID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdmbGlwJyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICB2YXIgX21pZGRsZXdhcmVEYXRhJGFycm93LCBfbWlkZGxld2FyZURhdGEkZmxpcDtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICBtaWRkbGV3YXJlRGF0YSxcbiAgICAgICAgcmVjdHMsXG4gICAgICAgIGluaXRpYWxQbGFjZW1lbnQsXG4gICAgICAgIHBsYXRmb3JtLFxuICAgICAgICBlbGVtZW50c1xuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYWluQXhpczogY2hlY2tNYWluQXhpcyA9IHRydWUsXG4gICAgICAgIGNyb3NzQXhpczogY2hlY2tDcm9zc0F4aXMgPSB0cnVlLFxuICAgICAgICBmYWxsYmFja1BsYWNlbWVudHM6IHNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyxcbiAgICAgICAgZmFsbGJhY2tTdHJhdGVneSA9ICdiZXN0Rml0JyxcbiAgICAgICAgZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbiA9ICdub25lJyxcbiAgICAgICAgZmxpcEFsaWdubWVudCA9IHRydWUsXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcblxuICAgICAgLy8gSWYgYSByZXNldCBieSB0aGUgYXJyb3cgd2FzIGNhdXNlZCBkdWUgdG8gYW4gYWxpZ25tZW50IG9mZnNldCBiZWluZ1xuICAgICAgLy8gYWRkZWQsIHdlIHNob3VsZCBza2lwIGFueSBsb2dpYyBub3cgc2luY2UgYGZsaXAoKWAgaGFzIGFscmVhZHkgZG9uZSBpdHNcbiAgICAgIC8vIHdvcmsuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmxvYXRpbmctdWkvZmxvYXRpbmctdWkvaXNzdWVzLzI1NDkjaXNzdWVjb21tZW50LTE3MTk2MDE2NDNcbiAgICAgIGlmICgoX21pZGRsZXdhcmVEYXRhJGFycm93ID0gbWlkZGxld2FyZURhdGEuYXJyb3cpICE9IG51bGwgJiYgX21pZGRsZXdhcmVEYXRhJGFycm93LmFsaWdubWVudE9mZnNldCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICBjb25zdCBzaWRlID0gZ2V0U2lkZShwbGFjZW1lbnQpO1xuICAgICAgY29uc3QgaW5pdGlhbFNpZGVBeGlzID0gZ2V0U2lkZUF4aXMoaW5pdGlhbFBsYWNlbWVudCk7XG4gICAgICBjb25zdCBpc0Jhc2VQbGFjZW1lbnQgPSBnZXRTaWRlKGluaXRpYWxQbGFjZW1lbnQpID09PSBpbml0aWFsUGxhY2VtZW50O1xuICAgICAgY29uc3QgcnRsID0gYXdhaXQgKHBsYXRmb3JtLmlzUlRMID09IG51bGwgPyB2b2lkIDAgOiBwbGF0Zm9ybS5pc1JUTChlbGVtZW50cy5mbG9hdGluZykpO1xuICAgICAgY29uc3QgZmFsbGJhY2tQbGFjZW1lbnRzID0gc3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzIHx8IChpc0Jhc2VQbGFjZW1lbnQgfHwgIWZsaXBBbGlnbm1lbnQgPyBbZ2V0T3Bwb3NpdGVQbGFjZW1lbnQoaW5pdGlhbFBsYWNlbWVudCldIDogZ2V0RXhwYW5kZWRQbGFjZW1lbnRzKGluaXRpYWxQbGFjZW1lbnQpKTtcbiAgICAgIGNvbnN0IGhhc0ZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb24gPSBmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uICE9PSAnbm9uZSc7XG4gICAgICBpZiAoIXNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyAmJiBoYXNGYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uKSB7XG4gICAgICAgIGZhbGxiYWNrUGxhY2VtZW50cy5wdXNoKC4uLmdldE9wcG9zaXRlQXhpc1BsYWNlbWVudHMoaW5pdGlhbFBsYWNlbWVudCwgZmxpcEFsaWdubWVudCwgZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbiwgcnRsKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBwbGFjZW1lbnRzID0gW2luaXRpYWxQbGFjZW1lbnQsIC4uLmZhbGxiYWNrUGxhY2VtZW50c107XG4gICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCBkZXRlY3RPdmVyZmxvd09wdGlvbnMpO1xuICAgICAgY29uc3Qgb3ZlcmZsb3dzID0gW107XG4gICAgICBsZXQgb3ZlcmZsb3dzRGF0YSA9ICgoX21pZGRsZXdhcmVEYXRhJGZsaXAgPSBtaWRkbGV3YXJlRGF0YS5mbGlwKSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJGZsaXAub3ZlcmZsb3dzKSB8fCBbXTtcbiAgICAgIGlmIChjaGVja01haW5BeGlzKSB7XG4gICAgICAgIG92ZXJmbG93cy5wdXNoKG92ZXJmbG93W3NpZGVdKTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGVja0Nyb3NzQXhpcykge1xuICAgICAgICBjb25zdCBzaWRlcyA9IGdldEFsaWdubWVudFNpZGVzKHBsYWNlbWVudCwgcmVjdHMsIHJ0bCk7XG4gICAgICAgIG92ZXJmbG93cy5wdXNoKG92ZXJmbG93W3NpZGVzWzBdXSwgb3ZlcmZsb3dbc2lkZXNbMV1dKTtcbiAgICAgIH1cbiAgICAgIG92ZXJmbG93c0RhdGEgPSBbLi4ub3ZlcmZsb3dzRGF0YSwge1xuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIG92ZXJmbG93c1xuICAgICAgfV07XG5cbiAgICAgIC8vIE9uZSBvciBtb3JlIHNpZGVzIGlzIG92ZXJmbG93aW5nLlxuICAgICAgaWYgKCFvdmVyZmxvd3MuZXZlcnkoc2lkZSA9PiBzaWRlIDw9IDApKSB7XG4gICAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkZmxpcDIsIF9vdmVyZmxvd3NEYXRhJGZpbHRlcjtcbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gKCgoX21pZGRsZXdhcmVEYXRhJGZsaXAyID0gbWlkZGxld2FyZURhdGEuZmxpcCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRmbGlwMi5pbmRleCkgfHwgMCkgKyAxO1xuICAgICAgICBjb25zdCBuZXh0UGxhY2VtZW50ID0gcGxhY2VtZW50c1tuZXh0SW5kZXhdO1xuICAgICAgICBpZiAobmV4dFBsYWNlbWVudCkge1xuICAgICAgICAgIC8vIFRyeSBuZXh0IHBsYWNlbWVudCBhbmQgcmUtcnVuIHRoZSBsaWZlY3ljbGUuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgaW5kZXg6IG5leHRJbmRleCxcbiAgICAgICAgICAgICAgb3ZlcmZsb3dzOiBvdmVyZmxvd3NEYXRhXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgICAgcGxhY2VtZW50OiBuZXh0UGxhY2VtZW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpcnN0LCBmaW5kIHRoZSBjYW5kaWRhdGVzIHRoYXQgZml0IG9uIHRoZSBtYWluQXhpcyBzaWRlIG9mIG92ZXJmbG93LFxuICAgICAgICAvLyB0aGVuIGZpbmQgdGhlIHBsYWNlbWVudCB0aGF0IGZpdHMgdGhlIGJlc3Qgb24gdGhlIG1haW4gY3Jvc3NBeGlzIHNpZGUuXG4gICAgICAgIGxldCByZXNldFBsYWNlbWVudCA9IChfb3ZlcmZsb3dzRGF0YSRmaWx0ZXIgPSBvdmVyZmxvd3NEYXRhLmZpbHRlcihkID0+IGQub3ZlcmZsb3dzWzBdIDw9IDApLnNvcnQoKGEsIGIpID0+IGEub3ZlcmZsb3dzWzFdIC0gYi5vdmVyZmxvd3NbMV0pWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX292ZXJmbG93c0RhdGEkZmlsdGVyLnBsYWNlbWVudDtcblxuICAgICAgICAvLyBPdGhlcndpc2UgZmFsbGJhY2suXG4gICAgICAgIGlmICghcmVzZXRQbGFjZW1lbnQpIHtcbiAgICAgICAgICBzd2l0Y2ggKGZhbGxiYWNrU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Jlc3RGaXQnOlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFyIF9vdmVyZmxvd3NEYXRhJGZpbHRlcjI7XG4gICAgICAgICAgICAgICAgY29uc3QgcGxhY2VtZW50ID0gKF9vdmVyZmxvd3NEYXRhJGZpbHRlcjIgPSBvdmVyZmxvd3NEYXRhLmZpbHRlcihkID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChoYXNGYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTaWRlQXhpcyA9IGdldFNpZGVBeGlzKGQucGxhY2VtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRTaWRlQXhpcyA9PT0gaW5pdGlhbFNpZGVBeGlzIHx8XG4gICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhIGJpYXMgdG8gdGhlIGB5YCBzaWRlIGF4aXMgZHVlIHRvIGhvcml6b250YWxcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVhZGluZyBkaXJlY3Rpb25zIGZhdm9yaW5nIGdyZWF0ZXIgd2lkdGguXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTaWRlQXhpcyA9PT0gJ3knO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSkubWFwKGQgPT4gW2QucGxhY2VtZW50LCBkLm92ZXJmbG93cy5maWx0ZXIob3ZlcmZsb3cgPT4gb3ZlcmZsb3cgPiAwKS5yZWR1Y2UoKGFjYywgb3ZlcmZsb3cpID0+IGFjYyArIG92ZXJmbG93LCAwKV0pLnNvcnQoKGEsIGIpID0+IGFbMV0gLSBiWzFdKVswXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9vdmVyZmxvd3NEYXRhJGZpbHRlcjJbMF07XG4gICAgICAgICAgICAgICAgaWYgKHBsYWNlbWVudCkge1xuICAgICAgICAgICAgICAgICAgcmVzZXRQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdpbml0aWFsUGxhY2VtZW50JzpcbiAgICAgICAgICAgICAgcmVzZXRQbGFjZW1lbnQgPSBpbml0aWFsUGxhY2VtZW50O1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBsYWNlbWVudCAhPT0gcmVzZXRQbGFjZW1lbnQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgICAgcGxhY2VtZW50OiByZXNldFBsYWNlbWVudFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH07XG59O1xuXG5mdW5jdGlvbiBnZXRTaWRlT2Zmc2V0cyhvdmVyZmxvdywgcmVjdCkge1xuICByZXR1cm4ge1xuICAgIHRvcDogb3ZlcmZsb3cudG9wIC0gcmVjdC5oZWlnaHQsXG4gICAgcmlnaHQ6IG92ZXJmbG93LnJpZ2h0IC0gcmVjdC53aWR0aCxcbiAgICBib3R0b206IG92ZXJmbG93LmJvdHRvbSAtIHJlY3QuaGVpZ2h0LFxuICAgIGxlZnQ6IG92ZXJmbG93LmxlZnQgLSByZWN0LndpZHRoXG4gIH07XG59XG5mdW5jdGlvbiBpc0FueVNpZGVGdWxseUNsaXBwZWQob3ZlcmZsb3cpIHtcbiAgcmV0dXJuIHNpZGVzLnNvbWUoc2lkZSA9PiBvdmVyZmxvd1tzaWRlXSA+PSAwKTtcbn1cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBoaWRlIHRoZSBmbG9hdGluZyBlbGVtZW50IGluIGFwcGxpY2FibGUgc2l0dWF0aW9ucywgc3VjaCBhc1xuICogd2hlbiBpdCBpcyBub3QgaW4gdGhlIHNhbWUgY2xpcHBpbmcgY29udGV4dCBhcyB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvaGlkZVxuICovXG5jb25zdCBoaWRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdoaWRlJyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlY3RzXG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHN0cmF0ZWd5ID0gJ3JlZmVyZW5jZUhpZGRlbicsXG4gICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9uc1xuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIHN3aXRjaCAoc3RyYXRlZ3kpIHtcbiAgICAgICAgY2FzZSAncmVmZXJlbmNlSGlkZGVuJzpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICAgICAgZWxlbWVudENvbnRleHQ6ICdyZWZlcmVuY2UnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldHMgPSBnZXRTaWRlT2Zmc2V0cyhvdmVyZmxvdywgcmVjdHMucmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VIaWRkZW5PZmZzZXRzOiBvZmZzZXRzLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZUhpZGRlbjogaXNBbnlTaWRlRnVsbHlDbGlwcGVkKG9mZnNldHMpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlICdlc2NhcGVkJzpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICAgICAgYWx0Qm91bmRhcnk6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0cy5mbG9hdGluZyk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZXNjYXBlZE9mZnNldHM6IG9mZnNldHMsXG4gICAgICAgICAgICAgICAgZXNjYXBlZDogaXNBbnlTaWRlRnVsbHlDbGlwcGVkKG9mZnNldHMpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xufTtcblxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdSZWN0KHJlY3RzKSB7XG4gIGNvbnN0IG1pblggPSBtaW4oLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC5sZWZ0KSk7XG4gIGNvbnN0IG1pblkgPSBtaW4oLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC50b3ApKTtcbiAgY29uc3QgbWF4WCA9IG1heCguLi5yZWN0cy5tYXAocmVjdCA9PiByZWN0LnJpZ2h0KSk7XG4gIGNvbnN0IG1heFkgPSBtYXgoLi4ucmVjdHMubWFwKHJlY3QgPT4gcmVjdC5ib3R0b20pKTtcbiAgcmV0dXJuIHtcbiAgICB4OiBtaW5YLFxuICAgIHk6IG1pblksXG4gICAgd2lkdGg6IG1heFggLSBtaW5YLFxuICAgIGhlaWdodDogbWF4WSAtIG1pbllcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldFJlY3RzQnlMaW5lKHJlY3RzKSB7XG4gIGNvbnN0IHNvcnRlZFJlY3RzID0gcmVjdHMuc2xpY2UoKS5zb3J0KChhLCBiKSA9PiBhLnkgLSBiLnkpO1xuICBjb25zdCBncm91cHMgPSBbXTtcbiAgbGV0IHByZXZSZWN0ID0gbnVsbDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzb3J0ZWRSZWN0cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHJlY3QgPSBzb3J0ZWRSZWN0c1tpXTtcbiAgICBpZiAoIXByZXZSZWN0IHx8IHJlY3QueSAtIHByZXZSZWN0LnkgPiBwcmV2UmVjdC5oZWlnaHQgLyAyKSB7XG4gICAgICBncm91cHMucHVzaChbcmVjdF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBncm91cHNbZ3JvdXBzLmxlbmd0aCAtIDFdLnB1c2gocmVjdCk7XG4gICAgfVxuICAgIHByZXZSZWN0ID0gcmVjdDtcbiAgfVxuICByZXR1cm4gZ3JvdXBzLm1hcChyZWN0ID0+IHJlY3RUb0NsaWVudFJlY3QoZ2V0Qm91bmRpbmdSZWN0KHJlY3QpKSk7XG59XG4vKipcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxuICovXG5jb25zdCBpbmxpbmUgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2lubGluZScsXG4gICAgb3B0aW9ucyxcbiAgICBhc3luYyBmbihzdGF0ZSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIGVsZW1lbnRzLFxuICAgICAgICByZWN0cyxcbiAgICAgICAgcGxhdGZvcm0sXG4gICAgICAgIHN0cmF0ZWd5XG4gICAgICB9ID0gc3RhdGU7XG4gICAgICAvLyBBIE1vdXNlRXZlbnQncyBjbGllbnR7WCxZfSBjb29yZHMgY2FuIGJlIHVwIHRvIDIgcGl4ZWxzIG9mZiBhXG4gICAgICAvLyBDbGllbnRSZWN0J3MgYm91bmRzLCBkZXNwaXRlIHRoZSBldmVudCBsaXN0ZW5lciBiZWluZyB0cmlnZ2VyZWQuIEFcbiAgICAgIC8vIHBhZGRpbmcgb2YgMiBzZWVtcyB0byBoYW5kbGUgdGhpcyBpc3N1ZS5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcGFkZGluZyA9IDIsXG4gICAgICAgIHgsXG4gICAgICAgIHlcbiAgICAgIH0gPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XG4gICAgICBjb25zdCBuYXRpdmVDbGllbnRSZWN0cyA9IEFycmF5LmZyb20oKGF3YWl0IChwbGF0Zm9ybS5nZXRDbGllbnRSZWN0cyA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uZ2V0Q2xpZW50UmVjdHMoZWxlbWVudHMucmVmZXJlbmNlKSkpIHx8IFtdKTtcbiAgICAgIGNvbnN0IGNsaWVudFJlY3RzID0gZ2V0UmVjdHNCeUxpbmUobmF0aXZlQ2xpZW50UmVjdHMpO1xuICAgICAgY29uc3QgZmFsbGJhY2sgPSByZWN0VG9DbGllbnRSZWN0KGdldEJvdW5kaW5nUmVjdChuYXRpdmVDbGllbnRSZWN0cykpO1xuICAgICAgY29uc3QgcGFkZGluZ09iamVjdCA9IGdldFBhZGRpbmdPYmplY3QocGFkZGluZyk7XG4gICAgICBmdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSB7XG4gICAgICAgIC8vIFRoZXJlIGFyZSB0d28gcmVjdHMgYW5kIHRoZXkgYXJlIGRpc2pvaW5lZC5cbiAgICAgICAgaWYgKGNsaWVudFJlY3RzLmxlbmd0aCA9PT0gMiAmJiBjbGllbnRSZWN0c1swXS5sZWZ0ID4gY2xpZW50UmVjdHNbMV0ucmlnaHQgJiYgeCAhPSBudWxsICYmIHkgIT0gbnVsbCkge1xuICAgICAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IHJlY3QgaW4gd2hpY2ggdGhlIHBvaW50IGlzIGZ1bGx5IGluc2lkZS5cbiAgICAgICAgICByZXR1cm4gY2xpZW50UmVjdHMuZmluZChyZWN0ID0+IHggPiByZWN0LmxlZnQgLSBwYWRkaW5nT2JqZWN0LmxlZnQgJiYgeCA8IHJlY3QucmlnaHQgKyBwYWRkaW5nT2JqZWN0LnJpZ2h0ICYmIHkgPiByZWN0LnRvcCAtIHBhZGRpbmdPYmplY3QudG9wICYmIHkgPCByZWN0LmJvdHRvbSArIHBhZGRpbmdPYmplY3QuYm90dG9tKSB8fCBmYWxsYmFjaztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZXJlIGFyZSAyIG9yIG1vcmUgY29ubmVjdGVkIHJlY3RzLlxuICAgICAgICBpZiAoY2xpZW50UmVjdHMubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICBpZiAoZ2V0U2lkZUF4aXMocGxhY2VtZW50KSA9PT0gJ3knKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdFJlY3QgPSBjbGllbnRSZWN0c1swXTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RSZWN0ID0gY2xpZW50UmVjdHNbY2xpZW50UmVjdHMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBjb25zdCBpc1RvcCA9IGdldFNpZGUocGxhY2VtZW50KSA9PT0gJ3RvcCc7XG4gICAgICAgICAgICBjb25zdCB0b3AgPSBmaXJzdFJlY3QudG9wO1xuICAgICAgICAgICAgY29uc3QgYm90dG9tID0gbGFzdFJlY3QuYm90dG9tO1xuICAgICAgICAgICAgY29uc3QgbGVmdCA9IGlzVG9wID8gZmlyc3RSZWN0LmxlZnQgOiBsYXN0UmVjdC5sZWZ0O1xuICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBpc1RvcCA/IGZpcnN0UmVjdC5yaWdodCA6IGxhc3RSZWN0LnJpZ2h0O1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSByaWdodCAtIGxlZnQ7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBib3R0b20gLSB0b3A7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICAgIGJvdHRvbSxcbiAgICAgICAgICAgICAgbGVmdCxcbiAgICAgICAgICAgICAgcmlnaHQsXG4gICAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICAgIHg6IGxlZnQsXG4gICAgICAgICAgICAgIHk6IHRvcFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgaXNMZWZ0U2lkZSA9IGdldFNpZGUocGxhY2VtZW50KSA9PT0gJ2xlZnQnO1xuICAgICAgICAgIGNvbnN0IG1heFJpZ2h0ID0gbWF4KC4uLmNsaWVudFJlY3RzLm1hcChyZWN0ID0+IHJlY3QucmlnaHQpKTtcbiAgICAgICAgICBjb25zdCBtaW5MZWZ0ID0gbWluKC4uLmNsaWVudFJlY3RzLm1hcChyZWN0ID0+IHJlY3QubGVmdCkpO1xuICAgICAgICAgIGNvbnN0IG1lYXN1cmVSZWN0cyA9IGNsaWVudFJlY3RzLmZpbHRlcihyZWN0ID0+IGlzTGVmdFNpZGUgPyByZWN0LmxlZnQgPT09IG1pbkxlZnQgOiByZWN0LnJpZ2h0ID09PSBtYXhSaWdodCk7XG4gICAgICAgICAgY29uc3QgdG9wID0gbWVhc3VyZVJlY3RzWzBdLnRvcDtcbiAgICAgICAgICBjb25zdCBib3R0b20gPSBtZWFzdXJlUmVjdHNbbWVhc3VyZVJlY3RzLmxlbmd0aCAtIDFdLmJvdHRvbTtcbiAgICAgICAgICBjb25zdCBsZWZ0ID0gbWluTGVmdDtcbiAgICAgICAgICBjb25zdCByaWdodCA9IG1heFJpZ2h0O1xuICAgICAgICAgIGNvbnN0IHdpZHRoID0gcmlnaHQgLSBsZWZ0O1xuICAgICAgICAgIGNvbnN0IGhlaWdodCA9IGJvdHRvbSAtIHRvcDtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgYm90dG9tLFxuICAgICAgICAgICAgbGVmdCxcbiAgICAgICAgICAgIHJpZ2h0LFxuICAgICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICB4OiBsZWZ0LFxuICAgICAgICAgICAgeTogdG9wXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsbGJhY2s7XG4gICAgICB9XG4gICAgICBjb25zdCByZXNldFJlY3RzID0gYXdhaXQgcGxhdGZvcm0uZ2V0RWxlbWVudFJlY3RzKHtcbiAgICAgICAgcmVmZXJlbmNlOiB7XG4gICAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0XG4gICAgICAgIH0sXG4gICAgICAgIGZsb2F0aW5nOiBlbGVtZW50cy5mbG9hdGluZyxcbiAgICAgICAgc3RyYXRlZ3lcbiAgICAgIH0pO1xuICAgICAgaWYgKHJlY3RzLnJlZmVyZW5jZS54ICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS54IHx8IHJlY3RzLnJlZmVyZW5jZS55ICE9PSByZXNldFJlY3RzLnJlZmVyZW5jZS55IHx8IHJlY3RzLnJlZmVyZW5jZS53aWR0aCAhPT0gcmVzZXRSZWN0cy5yZWZlcmVuY2Uud2lkdGggfHwgcmVjdHMucmVmZXJlbmNlLmhlaWdodCAhPT0gcmVzZXRSZWN0cy5yZWZlcmVuY2UuaGVpZ2h0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzZXQ6IHtcbiAgICAgICAgICAgIHJlY3RzOiByZXNldFJlY3RzXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8vIEZvciB0eXBlIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LCB0aGUgYE9mZnNldE9wdGlvbnNgIHR5cGUgd2FzIGFsc29cbi8vIERlcml2YWJsZS5cblxuYXN5bmMgZnVuY3Rpb24gY29udmVydFZhbHVlVG9Db29yZHMoc3RhdGUsIG9wdGlvbnMpIHtcbiAgY29uc3Qge1xuICAgIHBsYWNlbWVudCxcbiAgICBwbGF0Zm9ybSxcbiAgICBlbGVtZW50c1xuICB9ID0gc3RhdGU7XG4gIGNvbnN0IHJ0bCA9IGF3YWl0IChwbGF0Zm9ybS5pc1JUTCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNSVEwoZWxlbWVudHMuZmxvYXRpbmcpKTtcbiAgY29uc3Qgc2lkZSA9IGdldFNpZGUocGxhY2VtZW50KTtcbiAgY29uc3QgYWxpZ25tZW50ID0gZ2V0QWxpZ25tZW50KHBsYWNlbWVudCk7XG4gIGNvbnN0IGlzVmVydGljYWwgPSBnZXRTaWRlQXhpcyhwbGFjZW1lbnQpID09PSAneSc7XG4gIGNvbnN0IG1haW5BeGlzTXVsdGkgPSBbJ2xlZnQnLCAndG9wJ10uaW5jbHVkZXMoc2lkZSkgPyAtMSA6IDE7XG4gIGNvbnN0IGNyb3NzQXhpc011bHRpID0gcnRsICYmIGlzVmVydGljYWwgPyAtMSA6IDE7XG4gIGNvbnN0IHJhd1ZhbHVlID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgbGV0IHtcbiAgICBtYWluQXhpcyxcbiAgICBjcm9zc0F4aXMsXG4gICAgYWxpZ25tZW50QXhpc1xuICB9ID0gdHlwZW9mIHJhd1ZhbHVlID09PSAnbnVtYmVyJyA/IHtcbiAgICBtYWluQXhpczogcmF3VmFsdWUsXG4gICAgY3Jvc3NBeGlzOiAwLFxuICAgIGFsaWdubWVudEF4aXM6IG51bGxcbiAgfSA6IHtcbiAgICBtYWluQXhpczogcmF3VmFsdWUubWFpbkF4aXMgfHwgMCxcbiAgICBjcm9zc0F4aXM6IHJhd1ZhbHVlLmNyb3NzQXhpcyB8fCAwLFxuICAgIGFsaWdubWVudEF4aXM6IHJhd1ZhbHVlLmFsaWdubWVudEF4aXNcbiAgfTtcbiAgaWYgKGFsaWdubWVudCAmJiB0eXBlb2YgYWxpZ25tZW50QXhpcyA9PT0gJ251bWJlcicpIHtcbiAgICBjcm9zc0F4aXMgPSBhbGlnbm1lbnQgPT09ICdlbmQnID8gYWxpZ25tZW50QXhpcyAqIC0xIDogYWxpZ25tZW50QXhpcztcbiAgfVxuICByZXR1cm4gaXNWZXJ0aWNhbCA/IHtcbiAgICB4OiBjcm9zc0F4aXMgKiBjcm9zc0F4aXNNdWx0aSxcbiAgICB5OiBtYWluQXhpcyAqIG1haW5BeGlzTXVsdGlcbiAgfSA6IHtcbiAgICB4OiBtYWluQXhpcyAqIG1haW5BeGlzTXVsdGksXG4gICAgeTogY3Jvc3NBeGlzICogY3Jvc3NBeGlzTXVsdGlcbiAgfTtcbn1cblxuLyoqXG4gKiBNb2RpZmllcyB0aGUgcGxhY2VtZW50IGJ5IHRyYW5zbGF0aW5nIHRoZSBmbG9hdGluZyBlbGVtZW50IGFsb25nIHRoZVxuICogc3BlY2lmaWVkIGF4ZXMuXG4gKiBBIG51bWJlciAoc2hvcnRoYW5kIGZvciBgbWFpbkF4aXNgIG9yIGRpc3RhbmNlKSwgb3IgYW4gYXhlcyBjb25maWd1cmF0aW9uXG4gKiBvYmplY3QgbWF5IGJlIHBhc3NlZC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9vZmZzZXRcbiAqL1xuY29uc3Qgb2Zmc2V0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSAwO1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ29mZnNldCcsXG4gICAgb3B0aW9ucyxcbiAgICBhc3luYyBmbihzdGF0ZSkge1xuICAgICAgdmFyIF9taWRkbGV3YXJlRGF0YSRvZmZzZSwgX21pZGRsZXdhcmVEYXRhJGFycm93O1xuICAgICAgY29uc3Qge1xuICAgICAgICB4LFxuICAgICAgICB5LFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIG1pZGRsZXdhcmVEYXRhXG4gICAgICB9ID0gc3RhdGU7XG4gICAgICBjb25zdCBkaWZmQ29vcmRzID0gYXdhaXQgY29udmVydFZhbHVlVG9Db29yZHMoc3RhdGUsIG9wdGlvbnMpO1xuXG4gICAgICAvLyBJZiB0aGUgcGxhY2VtZW50IGlzIHRoZSBzYW1lIGFuZCB0aGUgYXJyb3cgY2F1c2VkIGFuIGFsaWdubWVudCBvZmZzZXRcbiAgICAgIC8vIHRoZW4gd2UgZG9uJ3QgbmVlZCB0byBjaGFuZ2UgdGhlIHBvc2l0aW9uaW5nIGNvb3JkaW5hdGVzLlxuICAgICAgaWYgKHBsYWNlbWVudCA9PT0gKChfbWlkZGxld2FyZURhdGEkb2Zmc2UgPSBtaWRkbGV3YXJlRGF0YS5vZmZzZXQpID09IG51bGwgPyB2b2lkIDAgOiBfbWlkZGxld2FyZURhdGEkb2Zmc2UucGxhY2VtZW50KSAmJiAoX21pZGRsZXdhcmVEYXRhJGFycm93ID0gbWlkZGxld2FyZURhdGEuYXJyb3cpICE9IG51bGwgJiYgX21pZGRsZXdhcmVEYXRhJGFycm93LmFsaWdubWVudE9mZnNldCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB4OiB4ICsgZGlmZkNvb3Jkcy54LFxuICAgICAgICB5OiB5ICsgZGlmZkNvb3Jkcy55LFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgLi4uZGlmZkNvb3JkcyxcbiAgICAgICAgICBwbGFjZW1lbnRcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBzaGlmdGluZyBpdCBpbiBvcmRlciB0b1xuICoga2VlcCBpdCBpbiB2aWV3IHdoZW4gaXQgd2lsbCBvdmVyZmxvdyB0aGUgY2xpcHBpbmcgYm91bmRhcnkuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2hpZnRcbiAqL1xuY29uc3Qgc2hpZnQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3NoaWZ0JyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHgsXG4gICAgICAgIHksXG4gICAgICAgIHBsYWNlbWVudFxuICAgICAgfSA9IHN0YXRlO1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYWluQXhpczogY2hlY2tNYWluQXhpcyA9IHRydWUsXG4gICAgICAgIGNyb3NzQXhpczogY2hlY2tDcm9zc0F4aXMgPSBmYWxzZSxcbiAgICAgICAgbGltaXRlciA9IHtcbiAgICAgICAgICBmbjogX3JlZiA9PiB7XG4gICAgICAgICAgICBsZXQge1xuICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICB5XG4gICAgICAgICAgICB9ID0gX3JlZjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgIHlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnNcbiAgICAgIH0gPSBldmFsdWF0ZShvcHRpb25zLCBzdGF0ZSk7XG4gICAgICBjb25zdCBjb29yZHMgPSB7XG4gICAgICAgIHgsXG4gICAgICAgIHlcbiAgICAgIH07XG4gICAgICBjb25zdCBvdmVyZmxvdyA9IGF3YWl0IGRldGVjdE92ZXJmbG93KHN0YXRlLCBkZXRlY3RPdmVyZmxvd09wdGlvbnMpO1xuICAgICAgY29uc3QgY3Jvc3NBeGlzID0gZ2V0U2lkZUF4aXMoZ2V0U2lkZShwbGFjZW1lbnQpKTtcbiAgICAgIGNvbnN0IG1haW5BeGlzID0gZ2V0T3Bwb3NpdGVBeGlzKGNyb3NzQXhpcyk7XG4gICAgICBsZXQgbWFpbkF4aXNDb29yZCA9IGNvb3Jkc1ttYWluQXhpc107XG4gICAgICBsZXQgY3Jvc3NBeGlzQ29vcmQgPSBjb29yZHNbY3Jvc3NBeGlzXTtcbiAgICAgIGlmIChjaGVja01haW5BeGlzKSB7XG4gICAgICAgIGNvbnN0IG1pblNpZGUgPSBtYWluQXhpcyA9PT0gJ3knID8gJ3RvcCcgOiAnbGVmdCc7XG4gICAgICAgIGNvbnN0IG1heFNpZGUgPSBtYWluQXhpcyA9PT0gJ3knID8gJ2JvdHRvbScgOiAncmlnaHQnO1xuICAgICAgICBjb25zdCBtaW4gPSBtYWluQXhpc0Nvb3JkICsgb3ZlcmZsb3dbbWluU2lkZV07XG4gICAgICAgIGNvbnN0IG1heCA9IG1haW5BeGlzQ29vcmQgLSBvdmVyZmxvd1ttYXhTaWRlXTtcbiAgICAgICAgbWFpbkF4aXNDb29yZCA9IGNsYW1wKG1pbiwgbWFpbkF4aXNDb29yZCwgbWF4KTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGVja0Nyb3NzQXhpcykge1xuICAgICAgICBjb25zdCBtaW5TaWRlID0gY3Jvc3NBeGlzID09PSAneScgPyAndG9wJyA6ICdsZWZ0JztcbiAgICAgICAgY29uc3QgbWF4U2lkZSA9IGNyb3NzQXhpcyA9PT0gJ3knID8gJ2JvdHRvbScgOiAncmlnaHQnO1xuICAgICAgICBjb25zdCBtaW4gPSBjcm9zc0F4aXNDb29yZCArIG92ZXJmbG93W21pblNpZGVdO1xuICAgICAgICBjb25zdCBtYXggPSBjcm9zc0F4aXNDb29yZCAtIG92ZXJmbG93W21heFNpZGVdO1xuICAgICAgICBjcm9zc0F4aXNDb29yZCA9IGNsYW1wKG1pbiwgY3Jvc3NBeGlzQ29vcmQsIG1heCk7XG4gICAgICB9XG4gICAgICBjb25zdCBsaW1pdGVkQ29vcmRzID0gbGltaXRlci5mbih7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBbbWFpbkF4aXNdOiBtYWluQXhpc0Nvb3JkLFxuICAgICAgICBbY3Jvc3NBeGlzXTogY3Jvc3NBeGlzQ29vcmRcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubGltaXRlZENvb3JkcyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHg6IGxpbWl0ZWRDb29yZHMueCAtIHgsXG4gICAgICAgICAgeTogbGltaXRlZENvb3Jkcy55IC0geSxcbiAgICAgICAgICBlbmFibGVkOiB7XG4gICAgICAgICAgICBbbWFpbkF4aXNdOiBjaGVja01haW5BeGlzLFxuICAgICAgICAgICAgW2Nyb3NzQXhpc106IGNoZWNrQ3Jvc3NBeGlzXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn07XG4vKipcbiAqIEJ1aWx0LWluIGBsaW1pdGVyYCB0aGF0IHdpbGwgc3RvcCBgc2hpZnQoKWAgYXQgYSBjZXJ0YWluIHBvaW50LlxuICovXG5jb25zdCBsaW1pdFNoaWZ0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG9wdGlvbnMsXG4gICAgZm4oc3RhdGUpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgeCxcbiAgICAgICAgeSxcbiAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICByZWN0cyxcbiAgICAgICAgbWlkZGxld2FyZURhdGFcbiAgICAgIH0gPSBzdGF0ZTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgb2Zmc2V0ID0gMCxcbiAgICAgICAgbWFpbkF4aXM6IGNoZWNrTWFpbkF4aXMgPSB0cnVlLFxuICAgICAgICBjcm9zc0F4aXM6IGNoZWNrQ3Jvc3NBeGlzID0gdHJ1ZVxuICAgICAgfSA9IGV2YWx1YXRlKG9wdGlvbnMsIHN0YXRlKTtcbiAgICAgIGNvbnN0IGNvb3JkcyA9IHtcbiAgICAgICAgeCxcbiAgICAgICAgeVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGNyb3NzQXhpcyA9IGdldFNpZGVBeGlzKHBsYWNlbWVudCk7XG4gICAgICBjb25zdCBtYWluQXhpcyA9IGdldE9wcG9zaXRlQXhpcyhjcm9zc0F4aXMpO1xuICAgICAgbGV0IG1haW5BeGlzQ29vcmQgPSBjb29yZHNbbWFpbkF4aXNdO1xuICAgICAgbGV0IGNyb3NzQXhpc0Nvb3JkID0gY29vcmRzW2Nyb3NzQXhpc107XG4gICAgICBjb25zdCByYXdPZmZzZXQgPSBldmFsdWF0ZShvZmZzZXQsIHN0YXRlKTtcbiAgICAgIGNvbnN0IGNvbXB1dGVkT2Zmc2V0ID0gdHlwZW9mIHJhd09mZnNldCA9PT0gJ251bWJlcicgPyB7XG4gICAgICAgIG1haW5BeGlzOiByYXdPZmZzZXQsXG4gICAgICAgIGNyb3NzQXhpczogMFxuICAgICAgfSA6IHtcbiAgICAgICAgbWFpbkF4aXM6IDAsXG4gICAgICAgIGNyb3NzQXhpczogMCxcbiAgICAgICAgLi4ucmF3T2Zmc2V0XG4gICAgICB9O1xuICAgICAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcbiAgICAgICAgY29uc3QgbGVuID0gbWFpbkF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcbiAgICAgICAgY29uc3QgbGltaXRNaW4gPSByZWN0cy5yZWZlcmVuY2VbbWFpbkF4aXNdIC0gcmVjdHMuZmxvYXRpbmdbbGVuXSArIGNvbXB1dGVkT2Zmc2V0Lm1haW5BeGlzO1xuICAgICAgICBjb25zdCBsaW1pdE1heCA9IHJlY3RzLnJlZmVyZW5jZVttYWluQXhpc10gKyByZWN0cy5yZWZlcmVuY2VbbGVuXSAtIGNvbXB1dGVkT2Zmc2V0Lm1haW5BeGlzO1xuICAgICAgICBpZiAobWFpbkF4aXNDb29yZCA8IGxpbWl0TWluKSB7XG4gICAgICAgICAgbWFpbkF4aXNDb29yZCA9IGxpbWl0TWluO1xuICAgICAgICB9IGVsc2UgaWYgKG1haW5BeGlzQ29vcmQgPiBsaW1pdE1heCkge1xuICAgICAgICAgIG1haW5BeGlzQ29vcmQgPSBsaW1pdE1heDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGNoZWNrQ3Jvc3NBeGlzKSB7XG4gICAgICAgIHZhciBfbWlkZGxld2FyZURhdGEkb2Zmc2UsIF9taWRkbGV3YXJlRGF0YSRvZmZzZTI7XG4gICAgICAgIGNvbnN0IGxlbiA9IG1haW5BeGlzID09PSAneScgPyAnd2lkdGgnIDogJ2hlaWdodCc7XG4gICAgICAgIGNvbnN0IGlzT3JpZ2luU2lkZSA9IFsndG9wJywgJ2xlZnQnXS5pbmNsdWRlcyhnZXRTaWRlKHBsYWNlbWVudCkpO1xuICAgICAgICBjb25zdCBsaW1pdE1pbiA9IHJlY3RzLnJlZmVyZW5jZVtjcm9zc0F4aXNdIC0gcmVjdHMuZmxvYXRpbmdbbGVuXSArIChpc09yaWdpblNpZGUgPyAoKF9taWRkbGV3YXJlRGF0YSRvZmZzZSA9IG1pZGRsZXdhcmVEYXRhLm9mZnNldCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9taWRkbGV3YXJlRGF0YSRvZmZzZVtjcm9zc0F4aXNdKSB8fCAwIDogMCkgKyAoaXNPcmlnaW5TaWRlID8gMCA6IGNvbXB1dGVkT2Zmc2V0LmNyb3NzQXhpcyk7XG4gICAgICAgIGNvbnN0IGxpbWl0TWF4ID0gcmVjdHMucmVmZXJlbmNlW2Nyb3NzQXhpc10gKyByZWN0cy5yZWZlcmVuY2VbbGVuXSArIChpc09yaWdpblNpZGUgPyAwIDogKChfbWlkZGxld2FyZURhdGEkb2Zmc2UyID0gbWlkZGxld2FyZURhdGEub2Zmc2V0KSA9PSBudWxsID8gdm9pZCAwIDogX21pZGRsZXdhcmVEYXRhJG9mZnNlMltjcm9zc0F4aXNdKSB8fCAwKSAtIChpc09yaWdpblNpZGUgPyBjb21wdXRlZE9mZnNldC5jcm9zc0F4aXMgOiAwKTtcbiAgICAgICAgaWYgKGNyb3NzQXhpc0Nvb3JkIDwgbGltaXRNaW4pIHtcbiAgICAgICAgICBjcm9zc0F4aXNDb29yZCA9IGxpbWl0TWluO1xuICAgICAgICB9IGVsc2UgaWYgKGNyb3NzQXhpc0Nvb3JkID4gbGltaXRNYXgpIHtcbiAgICAgICAgICBjcm9zc0F4aXNDb29yZCA9IGxpbWl0TWF4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBbbWFpbkF4aXNdOiBtYWluQXhpc0Nvb3JkLFxuICAgICAgICBbY3Jvc3NBeGlzXTogY3Jvc3NBeGlzQ29vcmRcbiAgICAgIH07XG4gICAgfVxuICB9O1xufTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRoYXQgYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQg4oCUXG4gKiBmb3IgaW5zdGFuY2UsIHByZXZlbnQgaXQgZnJvbSBvdmVyZmxvd2luZyB0aGUgY2xpcHBpbmcgYm91bmRhcnkgb3IgbWF0Y2ggdGhlXG4gKiB3aWR0aCBvZiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2l6ZVxuICovXG5jb25zdCBzaXplID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdzaXplJyxcbiAgICBvcHRpb25zLFxuICAgIGFzeW5jIGZuKHN0YXRlKSB7XG4gICAgICB2YXIgX3N0YXRlJG1pZGRsZXdhcmVEYXRhLCBfc3RhdGUkbWlkZGxld2FyZURhdGEyO1xuICAgICAgY29uc3Qge1xuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHJlY3RzLFxuICAgICAgICBwbGF0Zm9ybSxcbiAgICAgICAgZWxlbWVudHNcbiAgICAgIH0gPSBzdGF0ZTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYXBwbHkgPSAoKSA9PiB7fSxcbiAgICAgICAgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zXG4gICAgICB9ID0gZXZhbHVhdGUob3B0aW9ucywgc3RhdGUpO1xuICAgICAgY29uc3Qgb3ZlcmZsb3cgPSBhd2FpdCBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgZGV0ZWN0T3ZlcmZsb3dPcHRpb25zKTtcbiAgICAgIGNvbnN0IHNpZGUgPSBnZXRTaWRlKHBsYWNlbWVudCk7XG4gICAgICBjb25zdCBhbGlnbm1lbnQgPSBnZXRBbGlnbm1lbnQocGxhY2VtZW50KTtcbiAgICAgIGNvbnN0IGlzWUF4aXMgPSBnZXRTaWRlQXhpcyhwbGFjZW1lbnQpID09PSAneSc7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHRcbiAgICAgIH0gPSByZWN0cy5mbG9hdGluZztcbiAgICAgIGxldCBoZWlnaHRTaWRlO1xuICAgICAgbGV0IHdpZHRoU2lkZTtcbiAgICAgIGlmIChzaWRlID09PSAndG9wJyB8fCBzaWRlID09PSAnYm90dG9tJykge1xuICAgICAgICBoZWlnaHRTaWRlID0gc2lkZTtcbiAgICAgICAgd2lkdGhTaWRlID0gYWxpZ25tZW50ID09PSAoKGF3YWl0IChwbGF0Zm9ybS5pc1JUTCA9PSBudWxsID8gdm9pZCAwIDogcGxhdGZvcm0uaXNSVEwoZWxlbWVudHMuZmxvYXRpbmcpKSkgPyAnc3RhcnQnIDogJ2VuZCcpID8gJ2xlZnQnIDogJ3JpZ2h0JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpZHRoU2lkZSA9IHNpZGU7XG4gICAgICAgIGhlaWdodFNpZGUgPSBhbGlnbm1lbnQgPT09ICdlbmQnID8gJ3RvcCcgOiAnYm90dG9tJztcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1heGltdW1DbGlwcGluZ0hlaWdodCA9IGhlaWdodCAtIG92ZXJmbG93LnRvcCAtIG92ZXJmbG93LmJvdHRvbTtcbiAgICAgIGNvbnN0IG1heGltdW1DbGlwcGluZ1dpZHRoID0gd2lkdGggLSBvdmVyZmxvdy5sZWZ0IC0gb3ZlcmZsb3cucmlnaHQ7XG4gICAgICBjb25zdCBvdmVyZmxvd0F2YWlsYWJsZUhlaWdodCA9IG1pbihoZWlnaHQgLSBvdmVyZmxvd1toZWlnaHRTaWRlXSwgbWF4aW11bUNsaXBwaW5nSGVpZ2h0KTtcbiAgICAgIGNvbnN0IG92ZXJmbG93QXZhaWxhYmxlV2lkdGggPSBtaW4od2lkdGggLSBvdmVyZmxvd1t3aWR0aFNpZGVdLCBtYXhpbXVtQ2xpcHBpbmdXaWR0aCk7XG4gICAgICBjb25zdCBub1NoaWZ0ID0gIXN0YXRlLm1pZGRsZXdhcmVEYXRhLnNoaWZ0O1xuICAgICAgbGV0IGF2YWlsYWJsZUhlaWdodCA9IG92ZXJmbG93QXZhaWxhYmxlSGVpZ2h0O1xuICAgICAgbGV0IGF2YWlsYWJsZVdpZHRoID0gb3ZlcmZsb3dBdmFpbGFibGVXaWR0aDtcbiAgICAgIGlmICgoX3N0YXRlJG1pZGRsZXdhcmVEYXRhID0gc3RhdGUubWlkZGxld2FyZURhdGEuc2hpZnQpICE9IG51bGwgJiYgX3N0YXRlJG1pZGRsZXdhcmVEYXRhLmVuYWJsZWQueCkge1xuICAgICAgICBhdmFpbGFibGVXaWR0aCA9IG1heGltdW1DbGlwcGluZ1dpZHRoO1xuICAgICAgfVxuICAgICAgaWYgKChfc3RhdGUkbWlkZGxld2FyZURhdGEyID0gc3RhdGUubWlkZGxld2FyZURhdGEuc2hpZnQpICE9IG51bGwgJiYgX3N0YXRlJG1pZGRsZXdhcmVEYXRhMi5lbmFibGVkLnkpIHtcbiAgICAgICAgYXZhaWxhYmxlSGVpZ2h0ID0gbWF4aW11bUNsaXBwaW5nSGVpZ2h0O1xuICAgICAgfVxuICAgICAgaWYgKG5vU2hpZnQgJiYgIWFsaWdubWVudCkge1xuICAgICAgICBjb25zdCB4TWluID0gbWF4KG92ZXJmbG93LmxlZnQsIDApO1xuICAgICAgICBjb25zdCB4TWF4ID0gbWF4KG92ZXJmbG93LnJpZ2h0LCAwKTtcbiAgICAgICAgY29uc3QgeU1pbiA9IG1heChvdmVyZmxvdy50b3AsIDApO1xuICAgICAgICBjb25zdCB5TWF4ID0gbWF4KG92ZXJmbG93LmJvdHRvbSwgMCk7XG4gICAgICAgIGlmIChpc1lBeGlzKSB7XG4gICAgICAgICAgYXZhaWxhYmxlV2lkdGggPSB3aWR0aCAtIDIgKiAoeE1pbiAhPT0gMCB8fCB4TWF4ICE9PSAwID8geE1pbiArIHhNYXggOiBtYXgob3ZlcmZsb3cubGVmdCwgb3ZlcmZsb3cucmlnaHQpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhdmFpbGFibGVIZWlnaHQgPSBoZWlnaHQgLSAyICogKHlNaW4gIT09IDAgfHwgeU1heCAhPT0gMCA/IHlNaW4gKyB5TWF4IDogbWF4KG92ZXJmbG93LnRvcCwgb3ZlcmZsb3cuYm90dG9tKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF3YWl0IGFwcGx5KHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGF2YWlsYWJsZVdpZHRoLFxuICAgICAgICBhdmFpbGFibGVIZWlnaHRcbiAgICAgIH0pO1xuICAgICAgY29uc3QgbmV4dERpbWVuc2lvbnMgPSBhd2FpdCBwbGF0Zm9ybS5nZXREaW1lbnNpb25zKGVsZW1lbnRzLmZsb2F0aW5nKTtcbiAgICAgIGlmICh3aWR0aCAhPT0gbmV4dERpbWVuc2lvbnMud2lkdGggfHwgaGVpZ2h0ICE9PSBuZXh0RGltZW5zaW9ucy5oZWlnaHQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZXNldDoge1xuICAgICAgICAgICAgcmVjdHM6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0IHsgYXJyb3csIGF1dG9QbGFjZW1lbnQsIGNvbXB1dGVQb3NpdGlvbiwgZGV0ZWN0T3ZlcmZsb3csIGZsaXAsIGhpZGUsIGlubGluZSwgbGltaXRTaGlmdCwgb2Zmc2V0LCBzaGlmdCwgc2l6ZSB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs":
/*!****************************************************************!*\
!*** ./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs ***!
\****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ arrow: () => (/* binding */ arrow),\n/* harmony export */ autoPlacement: () => (/* binding */ autoPlacement),\n/* harmony export */ autoUpdate: () => (/* binding */ autoUpdate),\n/* harmony export */ computePosition: () => (/* binding */ computePosition),\n/* harmony export */ detectOverflow: () => (/* binding */ detectOverflow),\n/* harmony export */ flip: () => (/* binding */ flip),\n/* harmony export */ getOverflowAncestors: () => (/* reexport safe */ _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getOverflowAncestors),\n/* harmony export */ hide: () => (/* binding */ hide),\n/* harmony export */ inline: () => (/* binding */ inline),\n/* harmony export */ limitShift: () => (/* binding */ limitShift),\n/* harmony export */ offset: () => (/* binding */ offset),\n/* harmony export */ platform: () => (/* binding */ platform),\n/* harmony export */ shift: () => (/* binding */ shift),\n/* harmony export */ size: () => (/* binding */ size)\n/* harmony export */ });\n/* harmony import */ var _floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @floating-ui/utils */ \"(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\");\n/* harmony import */ var _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @floating-ui/core */ \"(app-pages-browser)/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs\");\n/* harmony import */ var _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/utils/dom */ \"(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs\");\n\n\n\n\n\nfunction getCssDimensions(element) {\n const css = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.round)(width) !== offsetWidth || (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.round)(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(domElement)) {\n return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.round)(rect.width) : rect.width) / width;\n let y = ($ ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.round)(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\nfunction getVisualOffsets(element) {\n const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(element);\n if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isWebKit)() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(1);\n if (includeScale) {\n if (offsetParent) {\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(domElement);\n const offsetWin = offsetParent && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(offsetParent) ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getFrameElement)(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(currentIFrame);\n currentIFrame = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getFrameElement)(currentWin);\n }\n }\n return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.rectToClientRect)({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeScroll)(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL <body> scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(offsetParent);\n const topLayer = elements ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isTopLayer)(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(1);\n const offsets = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\n const isOffsetParentAnElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeName)(offsetParent) !== 'body' || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isOverflowElement)(documentElement)) {\n scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeScroll)(offsetParent);\n }\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element);\n const scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeScroll)(element);\n const body = element.ownerDocument.body;\n const width = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(body).direction === 'rtl') {\n x += (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(element);\n const html = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isWebKit)();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) ? getScale(element) : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element));\n } else if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.rectToClientRect)(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(element);\n if (parentNode === stopNode || !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(parentNode) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isLastTraversableNode)(parentNode)) {\n return false;\n }\n return (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getOverflowAncestors)(element, [], false).filter(el => (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(el) && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeName)(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element).position === 'fixed';\n let currentNode = elementIsFixed ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(currentNode) && !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isLastTraversableNode)(currentNode)) {\n const computedStyle = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(currentNode);\n const currentNodeIsContaining = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isContainingBlock)(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isOverflowElement)(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isTopLayer)(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(rect.top, accRect.top);\n accRect.right = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.min)(rect.right, accRect.right);\n accRect.bottom = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.min)(rect.bottom, accRect.bottom);\n accRect.left = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(offsetParent);\n const documentElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeName)(offsetParent) !== 'body' || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isOverflowElement)(documentElement)) {\n scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getNodeScroll)(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.createCoords)(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getWindow)(element);\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isTopLayer)(element)) {\n return win;\n }\n if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element)) {\n let svgOffsetParent = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(element);\n while (svgOffsetParent && !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isLastTraversableNode)(svgOffsetParent)) {\n if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement)(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getParentNode)(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isTableElement)(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isLastTraversableNode)(offsetParent) && isStaticPositioned(offsetParent) && !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isContainingBlock)(offsetParent)) {\n return win;\n }\n return offsetParent || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getContainingBlock)(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getComputedStyle)(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement: _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement: _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getDocumentElement)(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.floor)(top);\n const insetRight = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.floor)(root.clientWidth - (left + width));\n const insetBottom = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.floor)(root.clientHeight - (top + height));\n const insetLeft = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.floor)(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.max)(0, (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_1__.min)(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getOverflowAncestors)(referenceEl) : []), ...(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_0__.getOverflowAncestors)(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.detectOverflow;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.offset;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.autoPlacement;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.shift;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.flip;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.size;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.hide;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.arrow;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.inline;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = _floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.limitShift;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_2__.computePosition)(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvZG9tL2Rpc3QvZmxvYXRpbmctdWkuZG9tLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF5VDtBQUMvTztBQUNrUDtBQUM5UDs7QUFFOUQ7QUFDQSxjQUFjLHdFQUFnQjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixxRUFBYTtBQUNqQztBQUNBO0FBQ0EseUJBQXlCLHlEQUFLLDJCQUEyQix5REFBSztBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVUsaUVBQVM7QUFDbkI7O0FBRUE7QUFDQTtBQUNBLE9BQU8scUVBQWE7QUFDcEIsV0FBVyxnRUFBWTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osZUFBZSx5REFBSztBQUNwQixlQUFlLHlEQUFLOztBQUVwQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtCQUErQixnRUFBWTtBQUMzQztBQUNBLGNBQWMsaUVBQVM7QUFDdkIsT0FBTyxnRUFBUTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRUFBbUUsaUVBQVM7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxnRUFBWTtBQUMxQjtBQUNBO0FBQ0EsVUFBVSxpRUFBUztBQUNuQjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLDJIQUEySCxnRUFBWTtBQUN2STtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGlFQUFTO0FBQ3pCLHNDQUFzQyxpRUFBUyxpQkFBaUIsaUVBQVM7QUFDekU7QUFDQSx3QkFBd0IsdUVBQWU7QUFDdkM7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLHdFQUFnQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLGlFQUFTO0FBQzVCLHNCQUFzQix1RUFBZTtBQUNyQztBQUNBO0FBQ0EsU0FBUyxvRUFBZ0I7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLHFFQUFhO0FBQ2xDO0FBQ0EsaUNBQWlDLDBFQUFrQjtBQUNuRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSwwQkFBMEIsMEVBQWtCO0FBQzVDLDhCQUE4QixrRUFBVTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsZ0VBQVk7QUFDMUIsa0JBQWtCLGdFQUFZO0FBQzlCLGtDQUFrQyxxRUFBYTtBQUMvQztBQUNBLFFBQVEsbUVBQVcsNkJBQTZCLHlFQUFpQjtBQUNqRSxlQUFlLHFFQUFhO0FBQzVCO0FBQ0EsUUFBUSxxRUFBYTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4SEFBOEgsZ0VBQVk7QUFDMUk7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsMEVBQWtCO0FBQ2pDLGlCQUFpQixxRUFBYTtBQUM5QjtBQUNBLGdCQUFnQix1REFBRztBQUNuQixpQkFBaUIsdURBQUc7QUFDcEI7QUFDQTtBQUNBLE1BQU0sd0VBQWdCO0FBQ3RCLFNBQVMsdURBQUc7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsY0FBYyxpRUFBUztBQUN2QixlQUFlLDBFQUFrQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLGdFQUFRO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHFFQUFhLGdDQUFnQyxnRUFBWTtBQUN6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osMkJBQTJCLDBFQUFrQjtBQUM3QyxJQUFJLFNBQVMsaUVBQVM7QUFDdEI7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsb0VBQWdCO0FBQ3pCO0FBQ0E7QUFDQSxxQkFBcUIscUVBQWE7QUFDbEMsa0NBQWtDLGlFQUFTLGdCQUFnQiw2RUFBcUI7QUFDaEY7QUFDQTtBQUNBLFNBQVMsd0VBQWdCO0FBQ3pCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDRFQUFvQixrQ0FBa0MsaUVBQVMsUUFBUSxtRUFBVztBQUNqRztBQUNBLHlCQUF5Qix3RUFBZ0I7QUFDekMscUNBQXFDLHFFQUFhOztBQUVsRDtBQUNBLFNBQVMsaUVBQVMsa0JBQWtCLDZFQUFxQjtBQUN6RCwwQkFBMEIsd0VBQWdCO0FBQzFDLG9DQUFvQyx5RUFBaUI7QUFDckQ7QUFDQTtBQUNBO0FBQ0Esa1RBQWtULHlFQUFpQjtBQUNuVTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLHFFQUFhO0FBQy9CO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osc0VBQXNFLGtFQUFVO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLHVEQUFHO0FBQ3JCLG9CQUFvQix1REFBRztBQUN2QixxQkFBcUIsdURBQUc7QUFDeEIsbUJBQW1CLHVEQUFHO0FBQ3RCO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQ0FBa0MscUVBQWE7QUFDL0MsMEJBQTBCLDBFQUFrQjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsZ0VBQVk7QUFDOUI7QUFDQSxRQUFRLG1FQUFXLDZCQUE2Qix5RUFBaUI7QUFDakUsZUFBZSxxRUFBYTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3SEFBd0gsZ0VBQVk7QUFDcEk7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsU0FBUyx3RUFBZ0I7QUFDekI7O0FBRUE7QUFDQSxPQUFPLHFFQUFhLGFBQWEsd0VBQWdCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sMEVBQWtCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsaUVBQVM7QUFDdkIsTUFBTSxrRUFBVTtBQUNoQjtBQUNBO0FBQ0EsT0FBTyxxRUFBYTtBQUNwQiwwQkFBMEIscUVBQWE7QUFDdkMsK0JBQStCLDZFQUFxQjtBQUNwRCxVQUFVLGlFQUFTO0FBQ25CO0FBQ0E7QUFDQSx3QkFBd0IscUVBQWE7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsc0VBQWM7QUFDdkM7QUFDQTtBQUNBLHNCQUFzQiw2RUFBcUIsdURBQXVELHlFQUFpQjtBQUNuSDtBQUNBO0FBQ0EseUJBQXlCLDBFQUFrQjtBQUMzQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsU0FBUyx3RUFBZ0I7QUFDekI7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDBFQUFrQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQix5REFBSztBQUMxQix1QkFBdUIseURBQUs7QUFDNUIsd0JBQXdCLHlEQUFLO0FBQzdCLHNCQUFzQix5REFBSztBQUMzQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsdURBQUcsSUFBSSx1REFBRztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSwwRUFBMEUsNEVBQW9CLHdCQUF3Qiw0RUFBb0I7QUFDMUk7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLDZEQUFnQjs7QUFFdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHFEQUFROztBQUV2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsNERBQWU7O0FBRXJDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLG9EQUFPOztBQUVyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLG1EQUFNOztBQUVuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLG1EQUFNOztBQUVuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxtREFBTTs7QUFFbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsb0RBQU87O0FBRXJCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHFEQUFROztBQUV2QjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIseURBQVk7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLGtFQUFpQjtBQUMxQjtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUU0SSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL2RvbS9kaXN0L2Zsb2F0aW5nLXVpLmRvbS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVjdFRvQ2xpZW50UmVjdCwgZGV0ZWN0T3ZlcmZsb3cgYXMgZGV0ZWN0T3ZlcmZsb3ckMSwgb2Zmc2V0IGFzIG9mZnNldCQxLCBhdXRvUGxhY2VtZW50IGFzIGF1dG9QbGFjZW1lbnQkMSwgc2hpZnQgYXMgc2hpZnQkMSwgZmxpcCBhcyBmbGlwJDEsIHNpemUgYXMgc2l6ZSQxLCBoaWRlIGFzIGhpZGUkMSwgYXJyb3cgYXMgYXJyb3ckMSwgaW5saW5lIGFzIGlubGluZSQxLCBsaW1pdFNoaWZ0IGFzIGxpbWl0U2hpZnQkMSwgY29tcHV0ZVBvc2l0aW9uIGFzIGNvbXB1dGVQb3NpdGlvbiQxIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2NvcmUnO1xuaW1wb3J0IHsgcm91bmQsIGNyZWF0ZUNvb3JkcywgbWF4LCBtaW4sIGZsb29yIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3V0aWxzJztcbmltcG9ydCB7IGdldENvbXB1dGVkU3R5bGUsIGlzSFRNTEVsZW1lbnQsIGlzRWxlbWVudCwgZ2V0V2luZG93LCBpc1dlYktpdCwgZ2V0RnJhbWVFbGVtZW50LCBnZXROb2RlU2Nyb2xsLCBnZXREb2N1bWVudEVsZW1lbnQsIGlzVG9wTGF5ZXIsIGdldE5vZGVOYW1lLCBpc092ZXJmbG93RWxlbWVudCwgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMsIGdldFBhcmVudE5vZGUsIGlzTGFzdFRyYXZlcnNhYmxlTm9kZSwgaXNDb250YWluaW5nQmxvY2ssIGlzVGFibGVFbGVtZW50LCBnZXRDb250YWluaW5nQmxvY2sgfSBmcm9tICdAZmxvYXRpbmctdWkvdXRpbHMvZG9tJztcbmV4cG9ydCB7IGdldE92ZXJmbG93QW5jZXN0b3JzIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3V0aWxzL2RvbSc7XG5cbmZ1bmN0aW9uIGdldENzc0RpbWVuc2lvbnMoZWxlbWVudCkge1xuICBjb25zdCBjc3MgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICAvLyBJbiB0ZXN0aW5nIGVudmlyb25tZW50cywgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIHByb3BlcnRpZXMgYXJlIGVtcHR5XG4gIC8vIHN0cmluZ3MgZm9yIFNWRyBlbGVtZW50cywgcmV0dXJuaW5nIE5hTi4gRmFsbGJhY2sgdG8gYDBgIGluIHRoaXMgY2FzZS5cbiAgbGV0IHdpZHRoID0gcGFyc2VGbG9hdChjc3Mud2lkdGgpIHx8IDA7XG4gIGxldCBoZWlnaHQgPSBwYXJzZUZsb2F0KGNzcy5oZWlnaHQpIHx8IDA7XG4gIGNvbnN0IGhhc09mZnNldCA9IGlzSFRNTEVsZW1lbnQoZWxlbWVudCk7XG4gIGNvbnN0IG9mZnNldFdpZHRoID0gaGFzT2Zmc2V0ID8gZWxlbWVudC5vZmZzZXRXaWR0aCA6IHdpZHRoO1xuICBjb25zdCBvZmZzZXRIZWlnaHQgPSBoYXNPZmZzZXQgPyBlbGVtZW50Lm9mZnNldEhlaWdodCA6IGhlaWdodDtcbiAgY29uc3Qgc2hvdWxkRmFsbGJhY2sgPSByb3VuZCh3aWR0aCkgIT09IG9mZnNldFdpZHRoIHx8IHJvdW5kKGhlaWdodCkgIT09IG9mZnNldEhlaWdodDtcbiAgaWYgKHNob3VsZEZhbGxiYWNrKSB7XG4gICAgd2lkdGggPSBvZmZzZXRXaWR0aDtcbiAgICBoZWlnaHQgPSBvZmZzZXRIZWlnaHQ7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgJDogc2hvdWxkRmFsbGJhY2tcbiAgfTtcbn1cblxuZnVuY3Rpb24gdW53cmFwRWxlbWVudChlbGVtZW50KSB7XG4gIHJldHVybiAhaXNFbGVtZW50KGVsZW1lbnQpID8gZWxlbWVudC5jb250ZXh0RWxlbWVudCA6IGVsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIGdldFNjYWxlKGVsZW1lbnQpIHtcbiAgY29uc3QgZG9tRWxlbWVudCA9IHVud3JhcEVsZW1lbnQoZWxlbWVudCk7XG4gIGlmICghaXNIVE1MRWxlbWVudChkb21FbGVtZW50KSkge1xuICAgIHJldHVybiBjcmVhdGVDb29yZHMoMSk7XG4gIH1cbiAgY29uc3QgcmVjdCA9IGRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgJFxuICB9ID0gZ2V0Q3NzRGltZW5zaW9ucyhkb21FbGVtZW50KTtcbiAgbGV0IHggPSAoJCA/IHJvdW5kKHJlY3Qud2lkdGgpIDogcmVjdC53aWR0aCkgLyB3aWR0aDtcbiAgbGV0IHkgPSAoJCA/IHJvdW5kKHJlY3QuaGVpZ2h0KSA6IHJlY3QuaGVpZ2h0KSAvIGhlaWdodDtcblxuICAvLyAwLCBOYU4sIG9yIEluZmluaXR5IHNob3VsZCBhbHdheXMgZmFsbGJhY2sgdG8gMS5cblxuICBpZiAoIXggfHwgIU51bWJlci5pc0Zpbml0ZSh4KSkge1xuICAgIHggPSAxO1xuICB9XG4gIGlmICgheSB8fCAhTnVtYmVyLmlzRmluaXRlKHkpKSB7XG4gICAgeSA9IDE7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuY29uc3Qgbm9PZmZzZXRzID0gLyojX19QVVJFX18qL2NyZWF0ZUNvb3JkcygwKTtcbmZ1bmN0aW9uIGdldFZpc3VhbE9mZnNldHMoZWxlbWVudCkge1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIGlmICghaXNXZWJLaXQoKSB8fCAhd2luLnZpc3VhbFZpZXdwb3J0KSB7XG4gICAgcmV0dXJuIG5vT2Zmc2V0cztcbiAgfVxuICByZXR1cm4ge1xuICAgIHg6IHdpbi52aXN1YWxWaWV3cG9ydC5vZmZzZXRMZWZ0LFxuICAgIHk6IHdpbi52aXN1YWxWaWV3cG9ydC5vZmZzZXRUb3BcbiAgfTtcbn1cbmZ1bmN0aW9uIHNob3VsZEFkZFZpc3VhbE9mZnNldHMoZWxlbWVudCwgaXNGaXhlZCwgZmxvYXRpbmdPZmZzZXRQYXJlbnQpIHtcbiAgaWYgKGlzRml4ZWQgPT09IHZvaWQgMCkge1xuICAgIGlzRml4ZWQgPSBmYWxzZTtcbiAgfVxuICBpZiAoIWZsb2F0aW5nT2Zmc2V0UGFyZW50IHx8IGlzRml4ZWQgJiYgZmxvYXRpbmdPZmZzZXRQYXJlbnQgIT09IGdldFdpbmRvdyhlbGVtZW50KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gaXNGaXhlZDtcbn1cblxuZnVuY3Rpb24gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIGluY2x1ZGVTY2FsZSwgaXNGaXhlZFN0cmF0ZWd5LCBvZmZzZXRQYXJlbnQpIHtcbiAgaWYgKGluY2x1ZGVTY2FsZSA9PT0gdm9pZCAwKSB7XG4gICAgaW5jbHVkZVNjYWxlID0gZmFsc2U7XG4gIH1cbiAgaWYgKGlzRml4ZWRTdHJhdGVneSA9PT0gdm9pZCAwKSB7XG4gICAgaXNGaXhlZFN0cmF0ZWd5ID0gZmFsc2U7XG4gIH1cbiAgY29uc3QgY2xpZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IGRvbUVsZW1lbnQgPSB1bndyYXBFbGVtZW50KGVsZW1lbnQpO1xuICBsZXQgc2NhbGUgPSBjcmVhdGVDb29yZHMoMSk7XG4gIGlmIChpbmNsdWRlU2NhbGUpIHtcbiAgICBpZiAob2Zmc2V0UGFyZW50KSB7XG4gICAgICBpZiAoaXNFbGVtZW50KG9mZnNldFBhcmVudCkpIHtcbiAgICAgICAgc2NhbGUgPSBnZXRTY2FsZShvZmZzZXRQYXJlbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzY2FsZSA9IGdldFNjYWxlKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuICBjb25zdCB2aXN1YWxPZmZzZXRzID0gc2hvdWxkQWRkVmlzdWFsT2Zmc2V0cyhkb21FbGVtZW50LCBpc0ZpeGVkU3RyYXRlZ3ksIG9mZnNldFBhcmVudCkgPyBnZXRWaXN1YWxPZmZzZXRzKGRvbUVsZW1lbnQpIDogY3JlYXRlQ29vcmRzKDApO1xuICBsZXQgeCA9IChjbGllbnRSZWN0LmxlZnQgKyB2aXN1YWxPZmZzZXRzLngpIC8gc2NhbGUueDtcbiAgbGV0IHkgPSAoY2xpZW50UmVjdC50b3AgKyB2aXN1YWxPZmZzZXRzLnkpIC8gc2NhbGUueTtcbiAgbGV0IHdpZHRoID0gY2xpZW50UmVjdC53aWR0aCAvIHNjYWxlLng7XG4gIGxldCBoZWlnaHQgPSBjbGllbnRSZWN0LmhlaWdodCAvIHNjYWxlLnk7XG4gIGlmIChkb21FbGVtZW50KSB7XG4gICAgY29uc3Qgd2luID0gZ2V0V2luZG93KGRvbUVsZW1lbnQpO1xuICAgIGNvbnN0IG9mZnNldFdpbiA9IG9mZnNldFBhcmVudCAmJiBpc0VsZW1lbnQob2Zmc2V0UGFyZW50KSA/IGdldFdpbmRvdyhvZmZzZXRQYXJlbnQpIDogb2Zmc2V0UGFyZW50O1xuICAgIGxldCBjdXJyZW50V2luID0gd2luO1xuICAgIGxldCBjdXJyZW50SUZyYW1lID0gZ2V0RnJhbWVFbGVtZW50KGN1cnJlbnRXaW4pO1xuICAgIHdoaWxlIChjdXJyZW50SUZyYW1lICYmIG9mZnNldFBhcmVudCAmJiBvZmZzZXRXaW4gIT09IGN1cnJlbnRXaW4pIHtcbiAgICAgIGNvbnN0IGlmcmFtZVNjYWxlID0gZ2V0U2NhbGUoY3VycmVudElGcmFtZSk7XG4gICAgICBjb25zdCBpZnJhbWVSZWN0ID0gY3VycmVudElGcmFtZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGNzcyA9IGdldENvbXB1dGVkU3R5bGUoY3VycmVudElGcmFtZSk7XG4gICAgICBjb25zdCBsZWZ0ID0gaWZyYW1lUmVjdC5sZWZ0ICsgKGN1cnJlbnRJRnJhbWUuY2xpZW50TGVmdCArIHBhcnNlRmxvYXQoY3NzLnBhZGRpbmdMZWZ0KSkgKiBpZnJhbWVTY2FsZS54O1xuICAgICAgY29uc3QgdG9wID0gaWZyYW1lUmVjdC50b3AgKyAoY3VycmVudElGcmFtZS5jbGllbnRUb3AgKyBwYXJzZUZsb2F0KGNzcy5wYWRkaW5nVG9wKSkgKiBpZnJhbWVTY2FsZS55O1xuICAgICAgeCAqPSBpZnJhbWVTY2FsZS54O1xuICAgICAgeSAqPSBpZnJhbWVTY2FsZS55O1xuICAgICAgd2lkdGggKj0gaWZyYW1lU2NhbGUueDtcbiAgICAgIGhlaWdodCAqPSBpZnJhbWVTY2FsZS55O1xuICAgICAgeCArPSBsZWZ0O1xuICAgICAgeSArPSB0b3A7XG4gICAgICBjdXJyZW50V2luID0gZ2V0V2luZG93KGN1cnJlbnRJRnJhbWUpO1xuICAgICAgY3VycmVudElGcmFtZSA9IGdldEZyYW1lRWxlbWVudChjdXJyZW50V2luKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlY3RUb0NsaWVudFJlY3Qoe1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfSk7XG59XG5cbi8vIElmIDxodG1sPiBoYXMgYSBDU1Mgd2lkdGggZ3JlYXRlciB0aGFuIHRoZSB2aWV3cG9ydCwgdGhlbiB0aGlzIHdpbGwgYmVcbi8vIGluY29ycmVjdCBmb3IgUlRMLlxuZnVuY3Rpb24gZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50LCByZWN0KSB7XG4gIGNvbnN0IGxlZnRTY3JvbGwgPSBnZXROb2RlU2Nyb2xsKGVsZW1lbnQpLnNjcm9sbExlZnQ7XG4gIGlmICghcmVjdCkge1xuICAgIHJldHVybiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpKS5sZWZ0ICsgbGVmdFNjcm9sbDtcbiAgfVxuICByZXR1cm4gcmVjdC5sZWZ0ICsgbGVmdFNjcm9sbDtcbn1cblxuZnVuY3Rpb24gZ2V0SFRNTE9mZnNldChkb2N1bWVudEVsZW1lbnQsIHNjcm9sbCwgaWdub3JlU2Nyb2xsYmFyWCkge1xuICBpZiAoaWdub3JlU2Nyb2xsYmFyWCA9PT0gdm9pZCAwKSB7XG4gICAgaWdub3JlU2Nyb2xsYmFyWCA9IGZhbHNlO1xuICB9XG4gIGNvbnN0IGh0bWxSZWN0ID0gZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCB4ID0gaHRtbFJlY3QubGVmdCArIHNjcm9sbC5zY3JvbGxMZWZ0IC0gKGlnbm9yZVNjcm9sbGJhclggPyAwIDpcbiAgLy8gUlRMIDxib2R5PiBzY3JvbGxiYXIuXG4gIGdldFdpbmRvd1Njcm9sbEJhclgoZG9jdW1lbnRFbGVtZW50LCBodG1sUmVjdCkpO1xuICBjb25zdCB5ID0gaHRtbFJlY3QudG9wICsgc2Nyb2xsLnNjcm9sbFRvcDtcbiAgcmV0dXJuIHtcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuZnVuY3Rpb24gY29udmVydE9mZnNldFBhcmVudFJlbGF0aXZlUmVjdFRvVmlld3BvcnRSZWxhdGl2ZVJlY3QoX3JlZikge1xuICBsZXQge1xuICAgIGVsZW1lbnRzLFxuICAgIHJlY3QsXG4gICAgb2Zmc2V0UGFyZW50LFxuICAgIHN0cmF0ZWd5XG4gIH0gPSBfcmVmO1xuICBjb25zdCBpc0ZpeGVkID0gc3RyYXRlZ3kgPT09ICdmaXhlZCc7XG4gIGNvbnN0IGRvY3VtZW50RWxlbWVudCA9IGdldERvY3VtZW50RWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICBjb25zdCB0b3BMYXllciA9IGVsZW1lbnRzID8gaXNUb3BMYXllcihlbGVtZW50cy5mbG9hdGluZykgOiBmYWxzZTtcbiAgaWYgKG9mZnNldFBhcmVudCA9PT0gZG9jdW1lbnRFbGVtZW50IHx8IHRvcExheWVyICYmIGlzRml4ZWQpIHtcbiAgICByZXR1cm4gcmVjdDtcbiAgfVxuICBsZXQgc2Nyb2xsID0ge1xuICAgIHNjcm9sbExlZnQ6IDAsXG4gICAgc2Nyb2xsVG9wOiAwXG4gIH07XG4gIGxldCBzY2FsZSA9IGNyZWF0ZUNvb3JkcygxKTtcbiAgY29uc3Qgb2Zmc2V0cyA9IGNyZWF0ZUNvb3JkcygwKTtcbiAgY29uc3QgaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgPSBpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCB8fCAhaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgJiYgIWlzRml4ZWQpIHtcbiAgICBpZiAoZ2V0Tm9kZU5hbWUob2Zmc2V0UGFyZW50KSAhPT0gJ2JvZHknIHx8IGlzT3ZlcmZsb3dFbGVtZW50KGRvY3VtZW50RWxlbWVudCkpIHtcbiAgICAgIHNjcm9sbCA9IGdldE5vZGVTY3JvbGwob2Zmc2V0UGFyZW50KTtcbiAgICB9XG4gICAgaWYgKGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KSkge1xuICAgICAgY29uc3Qgb2Zmc2V0UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChvZmZzZXRQYXJlbnQpO1xuICAgICAgc2NhbGUgPSBnZXRTY2FsZShvZmZzZXRQYXJlbnQpO1xuICAgICAgb2Zmc2V0cy54ID0gb2Zmc2V0UmVjdC54ICsgb2Zmc2V0UGFyZW50LmNsaWVudExlZnQ7XG4gICAgICBvZmZzZXRzLnkgPSBvZmZzZXRSZWN0LnkgKyBvZmZzZXRQYXJlbnQuY2xpZW50VG9wO1xuICAgIH1cbiAgfVxuICBjb25zdCBodG1sT2Zmc2V0ID0gZG9jdW1lbnRFbGVtZW50ICYmICFpc09mZnNldFBhcmVudEFuRWxlbWVudCAmJiAhaXNGaXhlZCA/IGdldEhUTUxPZmZzZXQoZG9jdW1lbnRFbGVtZW50LCBzY3JvbGwsIHRydWUpIDogY3JlYXRlQ29vcmRzKDApO1xuICByZXR1cm4ge1xuICAgIHdpZHRoOiByZWN0LndpZHRoICogc2NhbGUueCxcbiAgICBoZWlnaHQ6IHJlY3QuaGVpZ2h0ICogc2NhbGUueSxcbiAgICB4OiByZWN0LnggKiBzY2FsZS54IC0gc2Nyb2xsLnNjcm9sbExlZnQgKiBzY2FsZS54ICsgb2Zmc2V0cy54ICsgaHRtbE9mZnNldC54LFxuICAgIHk6IHJlY3QueSAqIHNjYWxlLnkgLSBzY3JvbGwuc2Nyb2xsVG9wICogc2NhbGUueSArIG9mZnNldHMueSArIGh0bWxPZmZzZXQueVxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDbGllbnRSZWN0cyhlbGVtZW50KSB7XG4gIHJldHVybiBBcnJheS5mcm9tKGVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKSk7XG59XG5cbi8vIEdldHMgdGhlIGVudGlyZSBzaXplIG9mIHRoZSBzY3JvbGxhYmxlIGRvY3VtZW50IGFyZWEsIGV2ZW4gZXh0ZW5kaW5nIG91dHNpZGVcbi8vIG9mIHRoZSBgPGh0bWw+YCBhbmQgYDxib2R5PmAgcmVjdCBib3VuZHMgaWYgaG9yaXpvbnRhbGx5IHNjcm9sbGFibGUuXG5mdW5jdGlvbiBnZXREb2N1bWVudFJlY3QoZWxlbWVudCkge1xuICBjb25zdCBodG1sID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICBjb25zdCBzY3JvbGwgPSBnZXROb2RlU2Nyb2xsKGVsZW1lbnQpO1xuICBjb25zdCBib2R5ID0gZWxlbWVudC5vd25lckRvY3VtZW50LmJvZHk7XG4gIGNvbnN0IHdpZHRoID0gbWF4KGh0bWwuc2Nyb2xsV2lkdGgsIGh0bWwuY2xpZW50V2lkdGgsIGJvZHkuc2Nyb2xsV2lkdGgsIGJvZHkuY2xpZW50V2lkdGgpO1xuICBjb25zdCBoZWlnaHQgPSBtYXgoaHRtbC5zY3JvbGxIZWlnaHQsIGh0bWwuY2xpZW50SGVpZ2h0LCBib2R5LnNjcm9sbEhlaWdodCwgYm9keS5jbGllbnRIZWlnaHQpO1xuICBsZXQgeCA9IC1zY3JvbGwuc2Nyb2xsTGVmdCArIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCk7XG4gIGNvbnN0IHkgPSAtc2Nyb2xsLnNjcm9sbFRvcDtcbiAgaWYgKGdldENvbXB1dGVkU3R5bGUoYm9keSkuZGlyZWN0aW9uID09PSAncnRsJykge1xuICAgIHggKz0gbWF4KGh0bWwuY2xpZW50V2lkdGgsIGJvZHkuY2xpZW50V2lkdGgpIC0gd2lkdGg7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgeCxcbiAgICB5XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFZpZXdwb3J0UmVjdChlbGVtZW50LCBzdHJhdGVneSkge1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIGNvbnN0IGh0bWwgPSBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCk7XG4gIGNvbnN0IHZpc3VhbFZpZXdwb3J0ID0gd2luLnZpc3VhbFZpZXdwb3J0O1xuICBsZXQgd2lkdGggPSBodG1sLmNsaWVudFdpZHRoO1xuICBsZXQgaGVpZ2h0ID0gaHRtbC5jbGllbnRIZWlnaHQ7XG4gIGxldCB4ID0gMDtcbiAgbGV0IHkgPSAwO1xuICBpZiAodmlzdWFsVmlld3BvcnQpIHtcbiAgICB3aWR0aCA9IHZpc3VhbFZpZXdwb3J0LndpZHRoO1xuICAgIGhlaWdodCA9IHZpc3VhbFZpZXdwb3J0LmhlaWdodDtcbiAgICBjb25zdCB2aXN1YWxWaWV3cG9ydEJhc2VkID0gaXNXZWJLaXQoKTtcbiAgICBpZiAoIXZpc3VhbFZpZXdwb3J0QmFzZWQgfHwgdmlzdWFsVmlld3BvcnRCYXNlZCAmJiBzdHJhdGVneSA9PT0gJ2ZpeGVkJykge1xuICAgICAgeCA9IHZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQ7XG4gICAgICB5ID0gdmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wO1xuICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuLy8gUmV0dXJucyB0aGUgaW5uZXIgY2xpZW50IHJlY3QsIHN1YnRyYWN0aW5nIHNjcm9sbGJhcnMgaWYgcHJlc2VudC5cbmZ1bmN0aW9uIGdldElubmVyQm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KSB7XG4gIGNvbnN0IGNsaWVudFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgdHJ1ZSwgc3RyYXRlZ3kgPT09ICdmaXhlZCcpO1xuICBjb25zdCB0b3AgPSBjbGllbnRSZWN0LnRvcCArIGVsZW1lbnQuY2xpZW50VG9wO1xuICBjb25zdCBsZWZ0ID0gY2xpZW50UmVjdC5sZWZ0ICsgZWxlbWVudC5jbGllbnRMZWZ0O1xuICBjb25zdCBzY2FsZSA9IGlzSFRNTEVsZW1lbnQoZWxlbWVudCkgPyBnZXRTY2FsZShlbGVtZW50KSA6IGNyZWF0ZUNvb3JkcygxKTtcbiAgY29uc3Qgd2lkdGggPSBlbGVtZW50LmNsaWVudFdpZHRoICogc2NhbGUueDtcbiAgY29uc3QgaGVpZ2h0ID0gZWxlbWVudC5jbGllbnRIZWlnaHQgKiBzY2FsZS55O1xuICBjb25zdCB4ID0gbGVmdCAqIHNjYWxlLng7XG4gIGNvbnN0IHkgPSB0b3AgKiBzY2FsZS55O1xuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cbmZ1bmN0aW9uIGdldENsaWVudFJlY3RGcm9tQ2xpcHBpbmdBbmNlc3RvcihlbGVtZW50LCBjbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSkge1xuICBsZXQgcmVjdDtcbiAgaWYgKGNsaXBwaW5nQW5jZXN0b3IgPT09ICd2aWV3cG9ydCcpIHtcbiAgICByZWN0ID0gZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KTtcbiAgfSBlbHNlIGlmIChjbGlwcGluZ0FuY2VzdG9yID09PSAnZG9jdW1lbnQnKSB7XG4gICAgcmVjdCA9IGdldERvY3VtZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpO1xuICB9IGVsc2UgaWYgKGlzRWxlbWVudChjbGlwcGluZ0FuY2VzdG9yKSkge1xuICAgIHJlY3QgPSBnZXRJbm5lckJvdW5kaW5nQ2xpZW50UmVjdChjbGlwcGluZ0FuY2VzdG9yLCBzdHJhdGVneSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdmlzdWFsT2Zmc2V0cyA9IGdldFZpc3VhbE9mZnNldHMoZWxlbWVudCk7XG4gICAgcmVjdCA9IHtcbiAgICAgIHg6IGNsaXBwaW5nQW5jZXN0b3IueCAtIHZpc3VhbE9mZnNldHMueCxcbiAgICAgIHk6IGNsaXBwaW5nQW5jZXN0b3IueSAtIHZpc3VhbE9mZnNldHMueSxcbiAgICAgIHdpZHRoOiBjbGlwcGluZ0FuY2VzdG9yLndpZHRoLFxuICAgICAgaGVpZ2h0OiBjbGlwcGluZ0FuY2VzdG9yLmhlaWdodFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHJlY3RUb0NsaWVudFJlY3QocmVjdCk7XG59XG5mdW5jdGlvbiBoYXNGaXhlZFBvc2l0aW9uQW5jZXN0b3IoZWxlbWVudCwgc3RvcE5vZGUpIHtcbiAgY29uc3QgcGFyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XG4gIGlmIChwYXJlbnROb2RlID09PSBzdG9wTm9kZSB8fCAhaXNFbGVtZW50KHBhcmVudE5vZGUpIHx8IGlzTGFzdFRyYXZlcnNhYmxlTm9kZShwYXJlbnROb2RlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnROb2RlKS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJyB8fCBoYXNGaXhlZFBvc2l0aW9uQW5jZXN0b3IocGFyZW50Tm9kZSwgc3RvcE5vZGUpO1xufVxuXG4vLyBBIFwiY2xpcHBpbmcgYW5jZXN0b3JcIiBpcyBhbiBgb3ZlcmZsb3dgIGVsZW1lbnQgd2l0aCB0aGUgY2hhcmFjdGVyaXN0aWMgb2Zcbi8vIGNsaXBwaW5nIChvciBoaWRpbmcpIGNoaWxkIGVsZW1lbnRzLiBUaGlzIHJldHVybnMgYWxsIGNsaXBwaW5nIGFuY2VzdG9yc1xuLy8gb2YgdGhlIGdpdmVuIGVsZW1lbnQgdXAgdGhlIHRyZWUuXG5mdW5jdGlvbiBnZXRDbGlwcGluZ0VsZW1lbnRBbmNlc3RvcnMoZWxlbWVudCwgY2FjaGUpIHtcbiAgY29uc3QgY2FjaGVkUmVzdWx0ID0gY2FjaGUuZ2V0KGVsZW1lbnQpO1xuICBpZiAoY2FjaGVkUmVzdWx0KSB7XG4gICAgcmV0dXJuIGNhY2hlZFJlc3VsdDtcbiAgfVxuICBsZXQgcmVzdWx0ID0gZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoZWxlbWVudCwgW10sIGZhbHNlKS5maWx0ZXIoZWwgPT4gaXNFbGVtZW50KGVsKSAmJiBnZXROb2RlTmFtZShlbCkgIT09ICdib2R5Jyk7XG4gIGxldCBjdXJyZW50Q29udGFpbmluZ0Jsb2NrQ29tcHV0ZWRTdHlsZSA9IG51bGw7XG4gIGNvbnN0IGVsZW1lbnRJc0ZpeGVkID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJztcbiAgbGV0IGN1cnJlbnROb2RlID0gZWxlbWVudElzRml4ZWQgPyBnZXRQYXJlbnROb2RlKGVsZW1lbnQpIDogZWxlbWVudDtcblxuICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQ29udGFpbmluZ19ibG9jayNpZGVudGlmeWluZ190aGVfY29udGFpbmluZ19ibG9ja1xuICB3aGlsZSAoaXNFbGVtZW50KGN1cnJlbnROb2RlKSAmJiAhaXNMYXN0VHJhdmVyc2FibGVOb2RlKGN1cnJlbnROb2RlKSkge1xuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGN1cnJlbnROb2RlKTtcbiAgICBjb25zdCBjdXJyZW50Tm9kZUlzQ29udGFpbmluZyA9IGlzQ29udGFpbmluZ0Jsb2NrKGN1cnJlbnROb2RlKTtcbiAgICBpZiAoIWN1cnJlbnROb2RlSXNDb250YWluaW5nICYmIGNvbXB1dGVkU3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICAgIGN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlID0gbnVsbDtcbiAgICB9XG4gICAgY29uc3Qgc2hvdWxkRHJvcEN1cnJlbnROb2RlID0gZWxlbWVudElzRml4ZWQgPyAhY3VycmVudE5vZGVJc0NvbnRhaW5pbmcgJiYgIWN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlIDogIWN1cnJlbnROb2RlSXNDb250YWluaW5nICYmIGNvbXB1dGVkU3R5bGUucG9zaXRpb24gPT09ICdzdGF0aWMnICYmICEhY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUgJiYgWydhYnNvbHV0ZScsICdmaXhlZCddLmluY2x1ZGVzKGN1cnJlbnRDb250YWluaW5nQmxvY2tDb21wdXRlZFN0eWxlLnBvc2l0aW9uKSB8fCBpc092ZXJmbG93RWxlbWVudChjdXJyZW50Tm9kZSkgJiYgIWN1cnJlbnROb2RlSXNDb250YWluaW5nICYmIGhhc0ZpeGVkUG9zaXRpb25BbmNlc3RvcihlbGVtZW50LCBjdXJyZW50Tm9kZSk7XG4gICAgaWYgKHNob3VsZERyb3BDdXJyZW50Tm9kZSkge1xuICAgICAgLy8gRHJvcCBub24tY29udGFpbmluZyBibG9ja3MuXG4gICAgICByZXN1bHQgPSByZXN1bHQuZmlsdGVyKGFuY2VzdG9yID0+IGFuY2VzdG9yICE9PSBjdXJyZW50Tm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlY29yZCBsYXN0IGNvbnRhaW5pbmcgYmxvY2sgZm9yIG5leHQgaXRlcmF0aW9uLlxuICAgICAgY3VycmVudENvbnRhaW5pbmdCbG9ja0NvbXB1dGVkU3R5bGUgPSBjb21wdXRlZFN0eWxlO1xuICAgIH1cbiAgICBjdXJyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoY3VycmVudE5vZGUpO1xuICB9XG4gIGNhY2hlLnNldChlbGVtZW50LCByZXN1bHQpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBHZXRzIHRoZSBtYXhpbXVtIGFyZWEgdGhhdCB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIGluIGR1ZSB0byBhbnkgbnVtYmVyIG9mXG4vLyBjbGlwcGluZyBhbmNlc3RvcnMuXG5mdW5jdGlvbiBnZXRDbGlwcGluZ1JlY3QoX3JlZikge1xuICBsZXQge1xuICAgIGVsZW1lbnQsXG4gICAgYm91bmRhcnksXG4gICAgcm9vdEJvdW5kYXJ5LFxuICAgIHN0cmF0ZWd5XG4gIH0gPSBfcmVmO1xuICBjb25zdCBlbGVtZW50Q2xpcHBpbmdBbmNlc3RvcnMgPSBib3VuZGFyeSA9PT0gJ2NsaXBwaW5nQW5jZXN0b3JzJyA/IGlzVG9wTGF5ZXIoZWxlbWVudCkgPyBbXSA6IGdldENsaXBwaW5nRWxlbWVudEFuY2VzdG9ycyhlbGVtZW50LCB0aGlzLl9jKSA6IFtdLmNvbmNhdChib3VuZGFyeSk7XG4gIGNvbnN0IGNsaXBwaW5nQW5jZXN0b3JzID0gWy4uLmVsZW1lbnRDbGlwcGluZ0FuY2VzdG9ycywgcm9vdEJvdW5kYXJ5XTtcbiAgY29uc3QgZmlyc3RDbGlwcGluZ0FuY2VzdG9yID0gY2xpcHBpbmdBbmNlc3RvcnNbMF07XG4gIGNvbnN0IGNsaXBwaW5nUmVjdCA9IGNsaXBwaW5nQW5jZXN0b3JzLnJlZHVjZSgoYWNjUmVjdCwgY2xpcHBpbmdBbmNlc3RvcikgPT4ge1xuICAgIGNvbnN0IHJlY3QgPSBnZXRDbGllbnRSZWN0RnJvbUNsaXBwaW5nQW5jZXN0b3IoZWxlbWVudCwgY2xpcHBpbmdBbmNlc3Rvciwgc3RyYXRlZ3kpO1xuICAgIGFjY1JlY3QudG9wID0gbWF4KHJlY3QudG9wLCBhY2NSZWN0LnRvcCk7XG4gICAgYWNjUmVjdC5yaWdodCA9IG1pbihyZWN0LnJpZ2h0LCBhY2NSZWN0LnJpZ2h0KTtcbiAgICBhY2NSZWN0LmJvdHRvbSA9IG1pbihyZWN0LmJvdHRvbSwgYWNjUmVjdC5ib3R0b20pO1xuICAgIGFjY1JlY3QubGVmdCA9IG1heChyZWN0LmxlZnQsIGFjY1JlY3QubGVmdCk7XG4gICAgcmV0dXJuIGFjY1JlY3Q7XG4gIH0sIGdldENsaWVudFJlY3RGcm9tQ2xpcHBpbmdBbmNlc3RvcihlbGVtZW50LCBmaXJzdENsaXBwaW5nQW5jZXN0b3IsIHN0cmF0ZWd5KSk7XG4gIHJldHVybiB7XG4gICAgd2lkdGg6IGNsaXBwaW5nUmVjdC5yaWdodCAtIGNsaXBwaW5nUmVjdC5sZWZ0LFxuICAgIGhlaWdodDogY2xpcHBpbmdSZWN0LmJvdHRvbSAtIGNsaXBwaW5nUmVjdC50b3AsXG4gICAgeDogY2xpcHBpbmdSZWN0LmxlZnQsXG4gICAgeTogY2xpcHBpbmdSZWN0LnRvcFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXREaW1lbnNpb25zKGVsZW1lbnQpIHtcbiAgY29uc3Qge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodFxuICB9ID0gZ2V0Q3NzRGltZW5zaW9ucyhlbGVtZW50KTtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHRcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVjdFJlbGF0aXZlVG9PZmZzZXRQYXJlbnQoZWxlbWVudCwgb2Zmc2V0UGFyZW50LCBzdHJhdGVneSkge1xuICBjb25zdCBpc09mZnNldFBhcmVudEFuRWxlbWVudCA9IGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KTtcbiAgY29uc3QgZG9jdW1lbnRFbGVtZW50ID0gZ2V0RG9jdW1lbnRFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIGNvbnN0IGlzRml4ZWQgPSBzdHJhdGVneSA9PT0gJ2ZpeGVkJztcbiAgY29uc3QgcmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50LCB0cnVlLCBpc0ZpeGVkLCBvZmZzZXRQYXJlbnQpO1xuICBsZXQgc2Nyb2xsID0ge1xuICAgIHNjcm9sbExlZnQ6IDAsXG4gICAgc2Nyb2xsVG9wOiAwXG4gIH07XG4gIGNvbnN0IG9mZnNldHMgPSBjcmVhdGVDb29yZHMoMCk7XG4gIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCB8fCAhaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgJiYgIWlzRml4ZWQpIHtcbiAgICBpZiAoZ2V0Tm9kZU5hbWUob2Zmc2V0UGFyZW50KSAhPT0gJ2JvZHknIHx8IGlzT3ZlcmZsb3dFbGVtZW50KGRvY3VtZW50RWxlbWVudCkpIHtcbiAgICAgIHNjcm9sbCA9IGdldE5vZGVTY3JvbGwob2Zmc2V0UGFyZW50KTtcbiAgICB9XG4gICAgaWYgKGlzT2Zmc2V0UGFyZW50QW5FbGVtZW50KSB7XG4gICAgICBjb25zdCBvZmZzZXRSZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KG9mZnNldFBhcmVudCwgdHJ1ZSwgaXNGaXhlZCwgb2Zmc2V0UGFyZW50KTtcbiAgICAgIG9mZnNldHMueCA9IG9mZnNldFJlY3QueCArIG9mZnNldFBhcmVudC5jbGllbnRMZWZ0O1xuICAgICAgb2Zmc2V0cy55ID0gb2Zmc2V0UmVjdC55ICsgb2Zmc2V0UGFyZW50LmNsaWVudFRvcDtcbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50RWxlbWVudCkge1xuICAgICAgLy8gSWYgdGhlIDxib2R5PiBzY3JvbGxiYXIgYXBwZWFycyBvbiB0aGUgbGVmdCAoZS5nLiBSVEwgc3lzdGVtcykuIFVzZVxuICAgICAgLy8gRmlyZWZveCB3aXRoIGxheW91dC5zY3JvbGxiYXIuc2lkZSA9IDMgaW4gYWJvdXQ6Y29uZmlnIHRvIHRlc3QgdGhpcy5cbiAgICAgIG9mZnNldHMueCA9IGdldFdpbmRvd1Njcm9sbEJhclgoZG9jdW1lbnRFbGVtZW50KTtcbiAgICB9XG4gIH1cbiAgY29uc3QgaHRtbE9mZnNldCA9IGRvY3VtZW50RWxlbWVudCAmJiAhaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgJiYgIWlzRml4ZWQgPyBnZXRIVE1MT2Zmc2V0KGRvY3VtZW50RWxlbWVudCwgc2Nyb2xsKSA6IGNyZWF0ZUNvb3JkcygwKTtcbiAgY29uc3QgeCA9IHJlY3QubGVmdCArIHNjcm9sbC5zY3JvbGxMZWZ0IC0gb2Zmc2V0cy54IC0gaHRtbE9mZnNldC54O1xuICBjb25zdCB5ID0gcmVjdC50b3AgKyBzY3JvbGwuc2Nyb2xsVG9wIC0gb2Zmc2V0cy55IC0gaHRtbE9mZnNldC55O1xuICByZXR1cm4ge1xuICAgIHgsXG4gICAgeSxcbiAgICB3aWR0aDogcmVjdC53aWR0aCxcbiAgICBoZWlnaHQ6IHJlY3QuaGVpZ2h0XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzU3RhdGljUG9zaXRpb25lZChlbGVtZW50KSB7XG4gIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJztcbn1cblxuZnVuY3Rpb24gZ2V0VHJ1ZU9mZnNldFBhcmVudChlbGVtZW50LCBwb2x5ZmlsbCkge1xuICBpZiAoIWlzSFRNTEVsZW1lbnQoZWxlbWVudCkgfHwgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmIChwb2x5ZmlsbCkge1xuICAgIHJldHVybiBwb2x5ZmlsbChlbGVtZW50KTtcbiAgfVxuICBsZXQgcmF3T2Zmc2V0UGFyZW50ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQ7XG5cbiAgLy8gRmlyZWZveCByZXR1cm5zIHRoZSA8aHRtbD4gZWxlbWVudCBhcyB0aGUgb2Zmc2V0UGFyZW50IGlmIGl0J3Mgbm9uLXN0YXRpYyxcbiAgLy8gd2hpbGUgQ2hyb21lIGFuZCBTYWZhcmkgcmV0dXJuIHRoZSA8Ym9keT4gZWxlbWVudC4gVGhlIDxib2R5PiBlbGVtZW50IG11c3RcbiAgLy8gYmUgdXNlZCB0byBwZXJmb3JtIHRoZSBjb3JyZWN0IGNhbGN1bGF0aW9ucyBldmVuIGlmIHRoZSA8aHRtbD4gZWxlbWVudCBpc1xuICAvLyBub24tc3RhdGljLlxuICBpZiAoZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpID09PSByYXdPZmZzZXRQYXJlbnQpIHtcbiAgICByYXdPZmZzZXRQYXJlbnQgPSByYXdPZmZzZXRQYXJlbnQub3duZXJEb2N1bWVudC5ib2R5O1xuICB9XG4gIHJldHVybiByYXdPZmZzZXRQYXJlbnQ7XG59XG5cbi8vIEdldHMgdGhlIGNsb3Nlc3QgYW5jZXN0b3IgcG9zaXRpb25lZCBlbGVtZW50LiBIYW5kbGVzIHNvbWUgZWRnZSBjYXNlcyxcbi8vIHN1Y2ggYXMgdGFibGUgYW5jZXN0b3JzIGFuZCBjcm9zcyBicm93c2VyIGJ1Z3MuXG5mdW5jdGlvbiBnZXRPZmZzZXRQYXJlbnQoZWxlbWVudCwgcG9seWZpbGwpIHtcbiAgY29uc3Qgd2luID0gZ2V0V2luZG93KGVsZW1lbnQpO1xuICBpZiAoaXNUb3BMYXllcihlbGVtZW50KSkge1xuICAgIHJldHVybiB3aW47XG4gIH1cbiAgaWYgKCFpc0hUTUxFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgbGV0IHN2Z09mZnNldFBhcmVudCA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XG4gICAgd2hpbGUgKHN2Z09mZnNldFBhcmVudCAmJiAhaXNMYXN0VHJhdmVyc2FibGVOb2RlKHN2Z09mZnNldFBhcmVudCkpIHtcbiAgICAgIGlmIChpc0VsZW1lbnQoc3ZnT2Zmc2V0UGFyZW50KSAmJiAhaXNTdGF0aWNQb3NpdGlvbmVkKHN2Z09mZnNldFBhcmVudCkpIHtcbiAgICAgICAgcmV0dXJuIHN2Z09mZnNldFBhcmVudDtcbiAgICAgIH1cbiAgICAgIHN2Z09mZnNldFBhcmVudCA9IGdldFBhcmVudE5vZGUoc3ZnT2Zmc2V0UGFyZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuICBsZXQgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChlbGVtZW50LCBwb2x5ZmlsbCk7XG4gIHdoaWxlIChvZmZzZXRQYXJlbnQgJiYgaXNUYWJsZUVsZW1lbnQob2Zmc2V0UGFyZW50KSAmJiBpc1N0YXRpY1Bvc2l0aW9uZWQob2Zmc2V0UGFyZW50KSkge1xuICAgIG9mZnNldFBhcmVudCA9IGdldFRydWVPZmZzZXRQYXJlbnQob2Zmc2V0UGFyZW50LCBwb2x5ZmlsbCk7XG4gIH1cbiAgaWYgKG9mZnNldFBhcmVudCAmJiBpc0xhc3RUcmF2ZXJzYWJsZU5vZGUob2Zmc2V0UGFyZW50KSAmJiBpc1N0YXRpY1Bvc2l0aW9uZWQob2Zmc2V0UGFyZW50KSAmJiAhaXNDb250YWluaW5nQmxvY2sob2Zmc2V0UGFyZW50KSkge1xuICAgIHJldHVybiB3aW47XG4gIH1cbiAgcmV0dXJuIG9mZnNldFBhcmVudCB8fCBnZXRDb250YWluaW5nQmxvY2soZWxlbWVudCkgfHwgd2luO1xufVxuXG5jb25zdCBnZXRFbGVtZW50UmVjdHMgPSBhc3luYyBmdW5jdGlvbiAoZGF0YSkge1xuICBjb25zdCBnZXRPZmZzZXRQYXJlbnRGbiA9IHRoaXMuZ2V0T2Zmc2V0UGFyZW50IHx8IGdldE9mZnNldFBhcmVudDtcbiAgY29uc3QgZ2V0RGltZW5zaW9uc0ZuID0gdGhpcy5nZXREaW1lbnNpb25zO1xuICBjb25zdCBmbG9hdGluZ0RpbWVuc2lvbnMgPSBhd2FpdCBnZXREaW1lbnNpb25zRm4oZGF0YS5mbG9hdGluZyk7XG4gIHJldHVybiB7XG4gICAgcmVmZXJlbmNlOiBnZXRSZWN0UmVsYXRpdmVUb09mZnNldFBhcmVudChkYXRhLnJlZmVyZW5jZSwgYXdhaXQgZ2V0T2Zmc2V0UGFyZW50Rm4oZGF0YS5mbG9hdGluZyksIGRhdGEuc3RyYXRlZ3kpLFxuICAgIGZsb2F0aW5nOiB7XG4gICAgICB4OiAwLFxuICAgICAgeTogMCxcbiAgICAgIHdpZHRoOiBmbG9hdGluZ0RpbWVuc2lvbnMud2lkdGgsXG4gICAgICBoZWlnaHQ6IGZsb2F0aW5nRGltZW5zaW9ucy5oZWlnaHRcbiAgICB9XG4gIH07XG59O1xuXG5mdW5jdGlvbiBpc1JUTChlbGVtZW50KSB7XG4gIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmRpcmVjdGlvbiA9PT0gJ3J0bCc7XG59XG5cbmNvbnN0IHBsYXRmb3JtID0ge1xuICBjb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdCxcbiAgZ2V0RG9jdW1lbnRFbGVtZW50LFxuICBnZXRDbGlwcGluZ1JlY3QsXG4gIGdldE9mZnNldFBhcmVudCxcbiAgZ2V0RWxlbWVudFJlY3RzLFxuICBnZXRDbGllbnRSZWN0cyxcbiAgZ2V0RGltZW5zaW9ucyxcbiAgZ2V0U2NhbGUsXG4gIGlzRWxlbWVudCxcbiAgaXNSVExcbn07XG5cbmZ1bmN0aW9uIHJlY3RzQXJlRXF1YWwoYSwgYikge1xuICByZXR1cm4gYS54ID09PSBiLnggJiYgYS55ID09PSBiLnkgJiYgYS53aWR0aCA9PT0gYi53aWR0aCAmJiBhLmhlaWdodCA9PT0gYi5oZWlnaHQ7XG59XG5cbi8vIGh0dHBzOi8vc2FtdGhvci5hdS8yMDIxL29ic2VydmluZy1kb20vXG5mdW5jdGlvbiBvYnNlcnZlTW92ZShlbGVtZW50LCBvbk1vdmUpIHtcbiAgbGV0IGlvID0gbnVsbDtcbiAgbGV0IHRpbWVvdXRJZDtcbiAgY29uc3Qgcm9vdCA9IGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KTtcbiAgZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICB2YXIgX2lvO1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgIChfaW8gPSBpbykgPT0gbnVsbCB8fCBfaW8uZGlzY29ubmVjdCgpO1xuICAgIGlvID0gbnVsbDtcbiAgfVxuICBmdW5jdGlvbiByZWZyZXNoKHNraXAsIHRocmVzaG9sZCkge1xuICAgIGlmIChza2lwID09PSB2b2lkIDApIHtcbiAgICAgIHNraXAgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRocmVzaG9sZCA9PT0gdm9pZCAwKSB7XG4gICAgICB0aHJlc2hvbGQgPSAxO1xuICAgIH1cbiAgICBjbGVhbnVwKCk7XG4gICAgY29uc3QgZWxlbWVudFJlY3RGb3JSb290TWFyZ2luID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB7XG4gICAgICBsZWZ0LFxuICAgICAgdG9wLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHRcbiAgICB9ID0gZWxlbWVudFJlY3RGb3JSb290TWFyZ2luO1xuICAgIGlmICghc2tpcCkge1xuICAgICAgb25Nb3ZlKCk7XG4gICAgfVxuICAgIGlmICghd2lkdGggfHwgIWhlaWdodCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpbnNldFRvcCA9IGZsb29yKHRvcCk7XG4gICAgY29uc3QgaW5zZXRSaWdodCA9IGZsb29yKHJvb3QuY2xpZW50V2lkdGggLSAobGVmdCArIHdpZHRoKSk7XG4gICAgY29uc3QgaW5zZXRCb3R0b20gPSBmbG9vcihyb290LmNsaWVudEhlaWdodCAtICh0b3AgKyBoZWlnaHQpKTtcbiAgICBjb25zdCBpbnNldExlZnQgPSBmbG9vcihsZWZ0KTtcbiAgICBjb25zdCByb290TWFyZ2luID0gLWluc2V0VG9wICsgXCJweCBcIiArIC1pbnNldFJpZ2h0ICsgXCJweCBcIiArIC1pbnNldEJvdHRvbSArIFwicHggXCIgKyAtaW5zZXRMZWZ0ICsgXCJweFwiO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICByb290TWFyZ2luLFxuICAgICAgdGhyZXNob2xkOiBtYXgoMCwgbWluKDEsIHRocmVzaG9sZCkpIHx8IDFcbiAgICB9O1xuICAgIGxldCBpc0ZpcnN0VXBkYXRlID0gdHJ1ZTtcbiAgICBmdW5jdGlvbiBoYW5kbGVPYnNlcnZlKGVudHJpZXMpIHtcbiAgICAgIGNvbnN0IHJhdGlvID0gZW50cmllc1swXS5pbnRlcnNlY3Rpb25SYXRpbztcbiAgICAgIGlmIChyYXRpbyAhPT0gdGhyZXNob2xkKSB7XG4gICAgICAgIGlmICghaXNGaXJzdFVwZGF0ZSkge1xuICAgICAgICAgIHJldHVybiByZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyYXRpbykge1xuICAgICAgICAgIC8vIElmIHRoZSByZWZlcmVuY2UgaXMgY2xpcHBlZCwgdGhlIHJhdGlvIGlzIDAuIFRocm90dGxlIHRoZSByZWZyZXNoXG4gICAgICAgICAgLy8gdG8gcHJldmVudCBhbiBpbmZpbml0ZSBsb29wIG9mIHVwZGF0ZXMuXG4gICAgICAgICAgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICByZWZyZXNoKGZhbHNlLCAxZS03KTtcbiAgICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWZyZXNoKGZhbHNlLCByYXRpbyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChyYXRpbyA9PT0gMSAmJiAhcmVjdHNBcmVFcXVhbChlbGVtZW50UmVjdEZvclJvb3RNYXJnaW4sIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpKSB7XG4gICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCBldmVuIHRob3VnaCB0aGUgcmF0aW8gaXMgcmVwb3J0ZWQgYXMgMSwgdGhlXG4gICAgICAgIC8vIGVsZW1lbnQgaXMgbm90IGFjdHVhbGx5IGZ1bGx5IHdpdGhpbiB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIncyByb290XG4gICAgICAgIC8vIGFyZWEgYW55bW9yZS4gVGhpcyBjYW4gaGFwcGVuIHVuZGVyIHBlcmZvcm1hbmNlIGNvbnN0cmFpbnRzLiBUaGlzIG1heVxuICAgICAgICAvLyBiZSBhIGJ1ZyBpbiB0aGUgYnJvd3NlcidzIEludGVyc2VjdGlvbk9ic2VydmVyIGltcGxlbWVudGF0aW9uLiBUb1xuICAgICAgICAvLyB3b3JrIGFyb3VuZCB0aGlzLCB3ZSBjb21wYXJlIHRoZSBlbGVtZW50J3MgYm91bmRpbmcgcmVjdCBub3cgd2l0aFxuICAgICAgICAvLyB3aGF0IGl0IHdhcyBhdCB0aGUgdGltZSB3ZSBjcmVhdGVkIHRoZSBJbnRlcnNlY3Rpb25PYnNlcnZlci4gSWYgdGhleVxuICAgICAgICAvLyBhcmUgbm90IGVxdWFsIHRoZW4gdGhlIGVsZW1lbnQgbW92ZWQsIHNvIHdlIHJlZnJlc2guXG4gICAgICAgIHJlZnJlc2goKTtcbiAgICAgIH1cbiAgICAgIGlzRmlyc3RVcGRhdGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBPbGRlciBicm93c2VycyBkb24ndCBzdXBwb3J0IGEgYGRvY3VtZW50YCBhcyB0aGUgcm9vdCBhbmQgd2lsbCB0aHJvdyBhblxuICAgIC8vIGVycm9yLlxuICAgIHRyeSB7XG4gICAgICBpbyA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihoYW5kbGVPYnNlcnZlLCB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIC8vIEhhbmRsZSA8aWZyYW1lPnNcbiAgICAgICAgcm9vdDogcm9vdC5vd25lckRvY3VtZW50XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpbyA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihoYW5kbGVPYnNlcnZlLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaW8ub2JzZXJ2ZShlbGVtZW50KTtcbiAgfVxuICByZWZyZXNoKHRydWUpO1xuICByZXR1cm4gY2xlYW51cDtcbn1cblxuLyoqXG4gKiBBdXRvbWF0aWNhbGx5IHVwZGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IHdoZW4gbmVjZXNzYXJ5LlxuICogU2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIGZsb2F0aW5nIGVsZW1lbnQgaXMgbW91bnRlZCBvbiB0aGUgRE9NIG9yXG4gKiB2aXNpYmxlIG9uIHRoZSBzY3JlZW4uXG4gKiBAcmV0dXJucyBjbGVhbnVwIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIGludm9rZWQgd2hlbiB0aGUgZmxvYXRpbmcgZWxlbWVudCBpc1xuICogcmVtb3ZlZCBmcm9tIHRoZSBET00gb3IgaGlkZGVuIGZyb20gdGhlIHNjcmVlbi5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hdXRvVXBkYXRlXG4gKi9cbmZ1bmN0aW9uIGF1dG9VcGRhdGUocmVmZXJlbmNlLCBmbG9hdGluZywgdXBkYXRlLCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIGFuY2VzdG9yU2Nyb2xsID0gdHJ1ZSxcbiAgICBhbmNlc3RvclJlc2l6ZSA9IHRydWUsXG4gICAgZWxlbWVudFJlc2l6ZSA9IHR5cGVvZiBSZXNpemVPYnNlcnZlciA9PT0gJ2Z1bmN0aW9uJyxcbiAgICBsYXlvdXRTaGlmdCA9IHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciA9PT0gJ2Z1bmN0aW9uJyxcbiAgICBhbmltYXRpb25GcmFtZSA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCByZWZlcmVuY2VFbCA9IHVud3JhcEVsZW1lbnQocmVmZXJlbmNlKTtcbiAgY29uc3QgYW5jZXN0b3JzID0gYW5jZXN0b3JTY3JvbGwgfHwgYW5jZXN0b3JSZXNpemUgPyBbLi4uKHJlZmVyZW5jZUVsID8gZ2V0T3ZlcmZsb3dBbmNlc3RvcnMocmVmZXJlbmNlRWwpIDogW10pLCAuLi5nZXRPdmVyZmxvd0FuY2VzdG9ycyhmbG9hdGluZyldIDogW107XG4gIGFuY2VzdG9ycy5mb3JFYWNoKGFuY2VzdG9yID0+IHtcbiAgICBhbmNlc3RvclNjcm9sbCAmJiBhbmNlc3Rvci5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUsIHtcbiAgICAgIHBhc3NpdmU6IHRydWVcbiAgICB9KTtcbiAgICBhbmNlc3RvclJlc2l6ZSAmJiBhbmNlc3Rvci5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpO1xuICB9KTtcbiAgY29uc3QgY2xlYW51cElvID0gcmVmZXJlbmNlRWwgJiYgbGF5b3V0U2hpZnQgPyBvYnNlcnZlTW92ZShyZWZlcmVuY2VFbCwgdXBkYXRlKSA6IG51bGw7XG4gIGxldCByZW9ic2VydmVGcmFtZSA9IC0xO1xuICBsZXQgcmVzaXplT2JzZXJ2ZXIgPSBudWxsO1xuICBpZiAoZWxlbWVudFJlc2l6ZSkge1xuICAgIHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKF9yZWYgPT4ge1xuICAgICAgbGV0IFtmaXJzdEVudHJ5XSA9IF9yZWY7XG4gICAgICBpZiAoZmlyc3RFbnRyeSAmJiBmaXJzdEVudHJ5LnRhcmdldCA9PT0gcmVmZXJlbmNlRWwgJiYgcmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgICAgLy8gUHJldmVudCB1cGRhdGUgbG9vcHMgd2hlbiB1c2luZyB0aGUgYHNpemVgIG1pZGRsZXdhcmUuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mbG9hdGluZy11aS9mbG9hdGluZy11aS9pc3N1ZXMvMTc0MFxuICAgICAgICByZXNpemVPYnNlcnZlci51bm9ic2VydmUoZmxvYXRpbmcpO1xuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShyZW9ic2VydmVGcmFtZSk7XG4gICAgICAgIHJlb2JzZXJ2ZUZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICB2YXIgX3Jlc2l6ZU9ic2VydmVyO1xuICAgICAgICAgIChfcmVzaXplT2JzZXJ2ZXIgPSByZXNpemVPYnNlcnZlcikgPT0gbnVsbCB8fCBfcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShmbG9hdGluZyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdXBkYXRlKCk7XG4gICAgfSk7XG4gICAgaWYgKHJlZmVyZW5jZUVsICYmICFhbmltYXRpb25GcmFtZSkge1xuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShyZWZlcmVuY2VFbCk7XG4gICAgfVxuICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZmxvYXRpbmcpO1xuICB9XG4gIGxldCBmcmFtZUlkO1xuICBsZXQgcHJldlJlZlJlY3QgPSBhbmltYXRpb25GcmFtZSA/IGdldEJvdW5kaW5nQ2xpZW50UmVjdChyZWZlcmVuY2UpIDogbnVsbDtcbiAgaWYgKGFuaW1hdGlvbkZyYW1lKSB7XG4gICAgZnJhbWVMb29wKCk7XG4gIH1cbiAgZnVuY3Rpb24gZnJhbWVMb29wKCkge1xuICAgIGNvbnN0IG5leHRSZWZSZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KHJlZmVyZW5jZSk7XG4gICAgaWYgKHByZXZSZWZSZWN0ICYmICFyZWN0c0FyZUVxdWFsKHByZXZSZWZSZWN0LCBuZXh0UmVmUmVjdCkpIHtcbiAgICAgIHVwZGF0ZSgpO1xuICAgIH1cbiAgICBwcmV2UmVmUmVjdCA9IG5leHRSZWZSZWN0O1xuICAgIGZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWVMb29wKTtcbiAgfVxuICB1cGRhdGUoKTtcbiAgcmV0dXJuICgpID0+IHtcbiAgICB2YXIgX3Jlc2l6ZU9ic2VydmVyMjtcbiAgICBhbmNlc3RvcnMuZm9yRWFjaChhbmNlc3RvciA9PiB7XG4gICAgICBhbmNlc3RvclNjcm9sbCAmJiBhbmNlc3Rvci5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpO1xuICAgICAgYW5jZXN0b3JSZXNpemUgJiYgYW5jZXN0b3IucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdXBkYXRlKTtcbiAgICB9KTtcbiAgICBjbGVhbnVwSW8gPT0gbnVsbCB8fCBjbGVhbnVwSW8oKTtcbiAgICAoX3Jlc2l6ZU9ic2VydmVyMiA9IHJlc2l6ZU9ic2VydmVyKSA9PSBudWxsIHx8IF9yZXNpemVPYnNlcnZlcjIuZGlzY29ubmVjdCgpO1xuICAgIHJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgICBpZiAoYW5pbWF0aW9uRnJhbWUpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lSWQpO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB3aXRoIGFuIG9iamVjdCBvZiBvdmVyZmxvdyBzaWRlIG9mZnNldHMgdGhhdCBkZXRlcm1pbmUgaG93IG11Y2ggdGhlXG4gKiBlbGVtZW50IGlzIG92ZXJmbG93aW5nIGEgZ2l2ZW4gY2xpcHBpbmcgYm91bmRhcnkgb24gZWFjaCBzaWRlLlxuICogLSBwb3NpdGl2ZSA9IG92ZXJmbG93aW5nIHRoZSBib3VuZGFyeSBieSB0aGF0IG51bWJlciBvZiBwaXhlbHNcbiAqIC0gbmVnYXRpdmUgPSBob3cgbWFueSBwaXhlbHMgbGVmdCBiZWZvcmUgaXQgd2lsbCBvdmVyZmxvd1xuICogLSAwID0gbGllcyBmbHVzaCB3aXRoIHRoZSBib3VuZGFyeVxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2RldGVjdE92ZXJmbG93XG4gKi9cbmNvbnN0IGRldGVjdE92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3ckMTtcblxuLyoqXG4gKiBNb2RpZmllcyB0aGUgcGxhY2VtZW50IGJ5IHRyYW5zbGF0aW5nIHRoZSBmbG9hdGluZyBlbGVtZW50IGFsb25nIHRoZVxuICogc3BlY2lmaWVkIGF4ZXMuXG4gKiBBIG51bWJlciAoc2hvcnRoYW5kIGZvciBgbWFpbkF4aXNgIG9yIGRpc3RhbmNlKSwgb3IgYW4gYXhlcyBjb25maWd1cmF0aW9uXG4gKiBvYmplY3QgbWF5IGJlIHBhc3NlZC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9vZmZzZXRcbiAqL1xuY29uc3Qgb2Zmc2V0ID0gb2Zmc2V0JDE7XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGNob29zaW5nIHRoZSBwbGFjZW1lbnRcbiAqIHRoYXQgaGFzIHRoZSBtb3N0IHNwYWNlIGF2YWlsYWJsZSBhdXRvbWF0aWNhbGx5LCB3aXRob3V0IG5lZWRpbmcgdG8gc3BlY2lmeSBhXG4gKiBwcmVmZXJyZWQgcGxhY2VtZW50LiBBbHRlcm5hdGl2ZSB0byBgZmxpcGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1BsYWNlbWVudFxuICovXG5jb25zdCBhdXRvUGxhY2VtZW50ID0gYXV0b1BsYWNlbWVudCQxO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBzaGlmdGluZyBpdCBpbiBvcmRlciB0b1xuICoga2VlcCBpdCBpbiB2aWV3IHdoZW4gaXQgd2lsbCBvdmVyZmxvdyB0aGUgY2xpcHBpbmcgYm91bmRhcnkuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2hpZnRcbiAqL1xuY29uc3Qgc2hpZnQgPSBzaGlmdCQxO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBmbGlwcGluZyB0aGUgYHBsYWNlbWVudGBcbiAqIGluIG9yZGVyIHRvIGtlZXAgaXQgaW4gdmlldyB3aGVuIHRoZSBwcmVmZXJyZWQgcGxhY2VtZW50KHMpIHdpbGwgb3ZlcmZsb3cgdGhlXG4gKiBjbGlwcGluZyBib3VuZGFyeS4gQWx0ZXJuYXRpdmUgdG8gYGF1dG9QbGFjZW1lbnRgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2ZsaXBcbiAqL1xuY29uc3QgZmxpcCA9IGZsaXAkMTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRoYXQgYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQg4oCUXG4gKiBmb3IgaW5zdGFuY2UsIHByZXZlbnQgaXQgZnJvbSBvdmVyZmxvd2luZyB0aGUgY2xpcHBpbmcgYm91bmRhcnkgb3IgbWF0Y2ggdGhlXG4gKiB3aWR0aCBvZiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvc2l6ZVxuICovXG5jb25zdCBzaXplID0gc2l6ZSQxO1xuXG4vKipcbiAqIFByb3ZpZGVzIGRhdGEgdG8gaGlkZSB0aGUgZmxvYXRpbmcgZWxlbWVudCBpbiBhcHBsaWNhYmxlIHNpdHVhdGlvbnMsIHN1Y2ggYXNcbiAqIHdoZW4gaXQgaXMgbm90IGluIHRoZSBzYW1lIGNsaXBwaW5nIGNvbnRleHQgYXMgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2hpZGVcbiAqL1xuY29uc3QgaGlkZSA9IGhpZGUkMTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGFuIGlubmVyIGVsZW1lbnQgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgc28gdGhhdCBpdFxuICogYXBwZWFycyBjZW50ZXJlZCB0byB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXJyb3dcbiAqL1xuY29uc3QgYXJyb3cgPSBhcnJvdyQxO1xuXG4vKipcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxuICovXG5jb25zdCBpbmxpbmUgPSBpbmxpbmUkMTtcblxuLyoqXG4gKiBCdWlsdC1pbiBgbGltaXRlcmAgdGhhdCB3aWxsIHN0b3AgYHNoaWZ0KClgIGF0IGEgY2VydGFpbiBwb2ludC5cbiAqL1xuY29uc3QgbGltaXRTaGlmdCA9IGxpbWl0U2hpZnQkMTtcblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgYHhgIGFuZCBgeWAgY29vcmRpbmF0ZXMgdGhhdCB3aWxsIHBsYWNlIHRoZSBmbG9hdGluZyBlbGVtZW50XG4gKiBuZXh0IHRvIGEgZ2l2ZW4gcmVmZXJlbmNlIGVsZW1lbnQuXG4gKi9cbmNvbnN0IGNvbXB1dGVQb3NpdGlvbiA9IChyZWZlcmVuY2UsIGZsb2F0aW5nLCBvcHRpb25zKSA9PiB7XG4gIC8vIFRoaXMgY2FjaGVzIHRoZSBleHBlbnNpdmUgYGdldENsaXBwaW5nRWxlbWVudEFuY2VzdG9yc2AgZnVuY3Rpb24gc28gdGhhdFxuICAvLyBtdWx0aXBsZSBsaWZlY3ljbGUgcmVzZXRzIHJlLXVzZSB0aGUgc2FtZSByZXN1bHQuIEl0IG9ubHkgbGl2ZXMgZm9yIGFcbiAgLy8gc2luZ2xlIGNhbGwuIElmIG90aGVyIGZ1bmN0aW9ucyBiZWNvbWUgZXhwZW5zaXZlLCB3ZSBjYW4gYWRkIHRoZW0gYXMgd2VsbC5cbiAgY29uc3QgY2FjaGUgPSBuZXcgTWFwKCk7XG4gIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSB7XG4gICAgcGxhdGZvcm0sXG4gICAgLi4ub3B0aW9uc1xuICB9O1xuICBjb25zdCBwbGF0Zm9ybVdpdGhDYWNoZSA9IHtcbiAgICAuLi5tZXJnZWRPcHRpb25zLnBsYXRmb3JtLFxuICAgIF9jOiBjYWNoZVxuICB9O1xuICByZXR1cm4gY29tcHV0ZVBvc2l0aW9uJDEocmVmZXJlbmNlLCBmbG9hdGluZywge1xuICAgIC4uLm1lcmdlZE9wdGlvbnMsXG4gICAgcGxhdGZvcm06IHBsYXRmb3JtV2l0aENhY2hlXG4gIH0pO1xufTtcblxuZXhwb3J0IHsgYXJyb3csIGF1dG9QbGFjZW1lbnQsIGF1dG9VcGRhdGUsIGNvbXB1dGVQb3NpdGlvbiwgZGV0ZWN0T3ZlcmZsb3csIGZsaXAsIGhpZGUsIGlubGluZSwgbGltaXRTaGlmdCwgb2Zmc2V0LCBwbGF0Zm9ybSwgc2hpZnQsIHNpemUgfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs":
/*!****************************************************************************!*\
!*** ./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs ***!
\****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ arrow: () => (/* binding */ arrow),\n/* harmony export */ autoPlacement: () => (/* binding */ autoPlacement),\n/* harmony export */ autoUpdate: () => (/* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.autoUpdate),\n/* harmony export */ computePosition: () => (/* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.computePosition),\n/* harmony export */ detectOverflow: () => (/* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.detectOverflow),\n/* harmony export */ flip: () => (/* binding */ flip),\n/* harmony export */ getOverflowAncestors: () => (/* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_1__.getOverflowAncestors),\n/* harmony export */ hide: () => (/* binding */ hide),\n/* harmony export */ inline: () => (/* binding */ inline),\n/* harmony export */ limitShift: () => (/* binding */ limitShift),\n/* harmony export */ offset: () => (/* binding */ offset),\n/* harmony export */ platform: () => (/* reexport safe */ _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.platform),\n/* harmony export */ shift: () => (/* binding */ shift),\n/* harmony export */ size: () => (/* binding */ size),\n/* harmony export */ useFloating: () => (/* binding */ useFloating)\n/* harmony export */ });\n/* harmony import */ var _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/dom */ \"(app-pages-browser)/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\");\n/* harmony import */ var _floating_ui_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @floating-ui/dom */ \"(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs\");\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_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n\n\n\n\n\n\nvar index = typeof document !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_2__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_2__.useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length;\n let i;\n let keys;\n if (a && b && typeof a === 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = react__WEBPACK_IMPORTED_MODULE_2__.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = react__WEBPACK_IMPORTED_MODULE_2__.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = react__WEBPACK_IMPORTED_MODULE_2__.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = react__WEBPACK_IMPORTED_MODULE_2__.useState(null);\n const [_floating, _setFloating] = react__WEBPACK_IMPORTED_MODULE_2__.useState(null);\n const setReference = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(node => {\n if (node !== referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(null);\n const floatingRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(null);\n const dataRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(data);\n const hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const openRef = useLatestRef(open);\n const update = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n (0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.computePosition)(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n // The floating element's position may be recomputed while it's closed\n // but still mounted (such as when transitioning out). To ensure\n // `isPositioned` will be `false` initially on the next open, avoid\n // setting it to `true` when `open === false` (must be specified).\n isPositioned: openRef.current !== false\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n react_dom__WEBPACK_IMPORTED_MODULE_3__.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n const refs = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return react__WEBPACK_IMPORTED_MODULE_2__.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return (0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.arrow)({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return (0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.arrow)({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.offset)(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.shift)(options),\n options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.limitShift)(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.flip)(options),\n options: [options, deps]\n});\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.size)(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.autoPlacement)(options),\n options: [options, deps]\n});\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.hide)(options),\n options: [options, deps]\n});\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = (options, deps) => ({\n ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.inline)(options),\n options: [options, deps]\n});\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => ({\n ...arrow$1(options),\n options: [options, deps]\n});\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvcmVhY3QtZG9tL2Rpc3QvZmxvYXRpbmctdWkucmVhY3QtZG9tLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQTZPO0FBQzlIO0FBQ2hGO0FBQ29CO0FBQ2I7O0FBRXRDLDhDQUE4QyxrREFBZSxHQUFHLDRDQUFTOztBQUV6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixVQUFVO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsVUFBVTtBQUMvQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLFVBQVU7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsY0FBYyx5Q0FBWTtBQUMxQjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQUk7QUFDVjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osMEJBQTBCLDJDQUFjO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0EsR0FBRztBQUNILGtEQUFrRCwyQ0FBYztBQUNoRTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsMkNBQWM7QUFDcEQsb0NBQW9DLDJDQUFjO0FBQ2xELHVCQUF1Qiw4Q0FBaUI7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsc0JBQXNCLDhDQUFpQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsdUJBQXVCLHlDQUFZO0FBQ25DLHNCQUFzQix5Q0FBWTtBQUNsQyxrQkFBa0IseUNBQVk7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsOENBQWlCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGlFQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxnREFBa0I7QUFDMUI7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSCx1QkFBdUIseUNBQVk7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsZUFBZSwwQ0FBYTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxtQkFBbUIsMENBQWE7QUFDaEM7QUFDQTtBQUNBLEdBQUc7QUFDSCx5QkFBeUIsMENBQWE7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsU0FBUywwQ0FBYTtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsaUJBQWlCLHVEQUFPO0FBQ3hCO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHVEQUFPO0FBQ3RCO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyx3REFBUTtBQUNiO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLHVEQUFPO0FBQ1o7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyw0REFBWTtBQUNqQjtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLHNEQUFNO0FBQ1g7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxzREFBTTtBQUNYO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssK0RBQWU7QUFDcEI7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssc0RBQU07QUFDWDtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyx3REFBUTtBQUNiO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVpRyIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQGZsb2F0aW5nLXVpL3JlYWN0LWRvbS9kaXN0L2Zsb2F0aW5nLXVpLnJlYWN0LWRvbS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZVBvc2l0aW9uLCBhcnJvdyBhcyBhcnJvdyQyLCBvZmZzZXQgYXMgb2Zmc2V0JDEsIHNoaWZ0IGFzIHNoaWZ0JDEsIGxpbWl0U2hpZnQgYXMgbGltaXRTaGlmdCQxLCBmbGlwIGFzIGZsaXAkMSwgc2l6ZSBhcyBzaXplJDEsIGF1dG9QbGFjZW1lbnQgYXMgYXV0b1BsYWNlbWVudCQxLCBoaWRlIGFzIGhpZGUkMSwgaW5saW5lIGFzIGlubGluZSQxIH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5leHBvcnQgeyBhdXRvVXBkYXRlLCBjb21wdXRlUG9zaXRpb24sIGRldGVjdE92ZXJmbG93LCBnZXRPdmVyZmxvd0FuY2VzdG9ycywgcGxhdGZvcm0gfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcblxudmFyIGluZGV4ID0gdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyA/IHVzZUxheW91dEVmZmVjdCA6IHVzZUVmZmVjdDtcblxuLy8gRm9yayBvZiBgZmFzdC1kZWVwLWVxdWFsYCB0aGF0IG9ubHkgZG9lcyB0aGUgY29tcGFyaXNvbnMgd2UgbmVlZCBhbmQgY29tcGFyZXNcbi8vIGZ1bmN0aW9uc1xuZnVuY3Rpb24gZGVlcEVxdWFsKGEsIGIpIHtcbiAgaWYgKGEgPT09IGIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIGEgIT09IHR5cGVvZiBiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICh0eXBlb2YgYSA9PT0gJ2Z1bmN0aW9uJyAmJiBhLnRvU3RyaW5nKCkgPT09IGIudG9TdHJpbmcoKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGxldCBsZW5ndGg7XG4gIGxldCBpO1xuICBsZXQga2V5cztcbiAgaWYgKGEgJiYgYiAmJiB0eXBlb2YgYSA9PT0gJ29iamVjdCcpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShhKSkge1xuICAgICAgbGVuZ3RoID0gYS5sZW5ndGg7XG4gICAgICBpZiAobGVuZ3RoICE9PSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7KSB7XG4gICAgICAgIGlmICghZGVlcEVxdWFsKGFbaV0sIGJbaV0pKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAga2V5cyA9IE9iamVjdC5rZXlzKGEpO1xuICAgIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICAgIGlmIChsZW5ndGggIT09IE9iamVjdC5rZXlzKGIpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSAhPT0gMDspIHtcbiAgICAgIGlmICghe30uaGFzT3duUHJvcGVydHkuY2FsbChiLCBrZXlzW2ldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoaSA9IGxlbmd0aDsgaS0tICE9PSAwOykge1xuICAgICAgY29uc3Qga2V5ID0ga2V5c1tpXTtcbiAgICAgIGlmIChrZXkgPT09ICdfb3duZXInICYmIGEuJCR0eXBlb2YpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoIWRlZXBFcXVhbChhW2tleV0sIGJba2V5XSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gYSAhPT0gYSAmJiBiICE9PSBiO1xufVxuXG5mdW5jdGlvbiBnZXREUFIoZWxlbWVudCkge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuICBjb25zdCB3aW4gPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgfHwgd2luZG93O1xuICByZXR1cm4gd2luLmRldmljZVBpeGVsUmF0aW8gfHwgMTtcbn1cblxuZnVuY3Rpb24gcm91bmRCeURQUihlbGVtZW50LCB2YWx1ZSkge1xuICBjb25zdCBkcHIgPSBnZXREUFIoZWxlbWVudCk7XG4gIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogZHByKSAvIGRwcjtcbn1cblxuZnVuY3Rpb24gdXNlTGF0ZXN0UmVmKHZhbHVlKSB7XG4gIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZih2YWx1ZSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICB9KTtcbiAgcmV0dXJuIHJlZjtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGEgZmxvYXRpbmcgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy91c2VGbG9hdGluZ1xuICovXG5mdW5jdGlvbiB1c2VGbG9hdGluZyhvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cbiAgY29uc3Qge1xuICAgIHBsYWNlbWVudCA9ICdib3R0b20nLFxuICAgIHN0cmF0ZWd5ID0gJ2Fic29sdXRlJyxcbiAgICBtaWRkbGV3YXJlID0gW10sXG4gICAgcGxhdGZvcm0sXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIHJlZmVyZW5jZTogZXh0ZXJuYWxSZWZlcmVuY2UsXG4gICAgICBmbG9hdGluZzogZXh0ZXJuYWxGbG9hdGluZ1xuICAgIH0gPSB7fSxcbiAgICB0cmFuc2Zvcm0gPSB0cnVlLFxuICAgIHdoaWxlRWxlbWVudHNNb3VudGVkLFxuICAgIG9wZW5cbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gICAgc3RyYXRlZ3ksXG4gICAgcGxhY2VtZW50LFxuICAgIG1pZGRsZXdhcmVEYXRhOiB7fSxcbiAgICBpc1Bvc2l0aW9uZWQ6IGZhbHNlXG4gIH0pO1xuICBjb25zdCBbbGF0ZXN0TWlkZGxld2FyZSwgc2V0TGF0ZXN0TWlkZGxld2FyZV0gPSBSZWFjdC51c2VTdGF0ZShtaWRkbGV3YXJlKTtcbiAgaWYgKCFkZWVwRXF1YWwobGF0ZXN0TWlkZGxld2FyZSwgbWlkZGxld2FyZSkpIHtcbiAgICBzZXRMYXRlc3RNaWRkbGV3YXJlKG1pZGRsZXdhcmUpO1xuICB9XG4gIGNvbnN0IFtfcmVmZXJlbmNlLCBfc2V0UmVmZXJlbmNlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBbX2Zsb2F0aW5nLCBfc2V0RmxvYXRpbmddID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IHNldFJlZmVyZW5jZSA9IFJlYWN0LnVzZUNhbGxiYWNrKG5vZGUgPT4ge1xuICAgIGlmIChub2RlICE9PSByZWZlcmVuY2VSZWYuY3VycmVudCkge1xuICAgICAgcmVmZXJlbmNlUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgX3NldFJlZmVyZW5jZShub2RlKTtcbiAgICB9XG4gIH0sIFtdKTtcbiAgY29uc3Qgc2V0RmxvYXRpbmcgPSBSZWFjdC51c2VDYWxsYmFjayhub2RlID0+IHtcbiAgICBpZiAobm9kZSAhPT0gZmxvYXRpbmdSZWYuY3VycmVudCkge1xuICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBfc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgfVxuICB9LCBbXSk7XG4gIGNvbnN0IHJlZmVyZW5jZUVsID0gZXh0ZXJuYWxSZWZlcmVuY2UgfHwgX3JlZmVyZW5jZTtcbiAgY29uc3QgZmxvYXRpbmdFbCA9IGV4dGVybmFsRmxvYXRpbmcgfHwgX2Zsb2F0aW5nO1xuICBjb25zdCByZWZlcmVuY2VSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gIGNvbnN0IGZsb2F0aW5nUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICBjb25zdCBkYXRhUmVmID0gUmVhY3QudXNlUmVmKGRhdGEpO1xuICBjb25zdCBoYXNXaGlsZUVsZW1lbnRzTW91bnRlZCA9IHdoaWxlRWxlbWVudHNNb3VudGVkICE9IG51bGw7XG4gIGNvbnN0IHdoaWxlRWxlbWVudHNNb3VudGVkUmVmID0gdXNlTGF0ZXN0UmVmKHdoaWxlRWxlbWVudHNNb3VudGVkKTtcbiAgY29uc3QgcGxhdGZvcm1SZWYgPSB1c2VMYXRlc3RSZWYocGxhdGZvcm0pO1xuICBjb25zdCBvcGVuUmVmID0gdXNlTGF0ZXN0UmVmKG9wZW4pO1xuICBjb25zdCB1cGRhdGUgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKCFyZWZlcmVuY2VSZWYuY3VycmVudCB8fCAhZmxvYXRpbmdSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBwbGFjZW1lbnQsXG4gICAgICBzdHJhdGVneSxcbiAgICAgIG1pZGRsZXdhcmU6IGxhdGVzdE1pZGRsZXdhcmVcbiAgICB9O1xuICAgIGlmIChwbGF0Zm9ybVJlZi5jdXJyZW50KSB7XG4gICAgICBjb25maWcucGxhdGZvcm0gPSBwbGF0Zm9ybVJlZi5jdXJyZW50O1xuICAgIH1cbiAgICBjb21wdXRlUG9zaXRpb24ocmVmZXJlbmNlUmVmLmN1cnJlbnQsIGZsb2F0aW5nUmVmLmN1cnJlbnQsIGNvbmZpZykudGhlbihkYXRhID0+IHtcbiAgICAgIGNvbnN0IGZ1bGxEYXRhID0ge1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICAvLyBUaGUgZmxvYXRpbmcgZWxlbWVudCdzIHBvc2l0aW9uIG1heSBiZSByZWNvbXB1dGVkIHdoaWxlIGl0J3MgY2xvc2VkXG4gICAgICAgIC8vIGJ1dCBzdGlsbCBtb3VudGVkIChzdWNoIGFzIHdoZW4gdHJhbnNpdGlvbmluZyBvdXQpLiBUbyBlbnN1cmVcbiAgICAgICAgLy8gYGlzUG9zaXRpb25lZGAgd2lsbCBiZSBgZmFsc2VgIGluaXRpYWxseSBvbiB0aGUgbmV4dCBvcGVuLCBhdm9pZFxuICAgICAgICAvLyBzZXR0aW5nIGl0IHRvIGB0cnVlYCB3aGVuIGBvcGVuID09PSBmYWxzZWAgKG11c3QgYmUgc3BlY2lmaWVkKS5cbiAgICAgICAgaXNQb3NpdGlvbmVkOiBvcGVuUmVmLmN1cnJlbnQgIT09IGZhbHNlXG4gICAgICB9O1xuICAgICAgaWYgKGlzTW91bnRlZFJlZi5jdXJyZW50ICYmICFkZWVwRXF1YWwoZGF0YVJlZi5jdXJyZW50LCBmdWxsRGF0YSkpIHtcbiAgICAgICAgZGF0YVJlZi5jdXJyZW50ID0gZnVsbERhdGE7XG4gICAgICAgIFJlYWN0RE9NLmZsdXNoU3luYygoKSA9PiB7XG4gICAgICAgICAgc2V0RGF0YShmdWxsRGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbbGF0ZXN0TWlkZGxld2FyZSwgcGxhY2VtZW50LCBzdHJhdGVneSwgcGxhdGZvcm1SZWYsIG9wZW5SZWZdKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlmIChvcGVuID09PSBmYWxzZSAmJiBkYXRhUmVmLmN1cnJlbnQuaXNQb3NpdGlvbmVkKSB7XG4gICAgICBkYXRhUmVmLmN1cnJlbnQuaXNQb3NpdGlvbmVkID0gZmFsc2U7XG4gICAgICBzZXREYXRhKGRhdGEgPT4gKHtcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgaXNQb3NpdGlvbmVkOiBmYWxzZVxuICAgICAgfSkpO1xuICAgIH1cbiAgfSwgW29wZW5dKTtcbiAgY29uc3QgaXNNb3VudGVkUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgaW5kZXgoKCkgPT4ge1xuICAgIGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaXNNb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9O1xuICB9LCBbXSk7XG4gIGluZGV4KCgpID0+IHtcbiAgICBpZiAocmVmZXJlbmNlRWwpIHJlZmVyZW5jZVJlZi5jdXJyZW50ID0gcmVmZXJlbmNlRWw7XG4gICAgaWYgKGZsb2F0aW5nRWwpIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBmbG9hdGluZ0VsO1xuICAgIGlmIChyZWZlcmVuY2VFbCAmJiBmbG9hdGluZ0VsKSB7XG4gICAgICBpZiAod2hpbGVFbGVtZW50c01vdW50ZWRSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm4gd2hpbGVFbGVtZW50c01vdW50ZWRSZWYuY3VycmVudChyZWZlcmVuY2VFbCwgZmxvYXRpbmdFbCwgdXBkYXRlKTtcbiAgICAgIH1cbiAgICAgIHVwZGF0ZSgpO1xuICAgIH1cbiAgfSwgW3JlZmVyZW5jZUVsLCBmbG9hdGluZ0VsLCB1cGRhdGUsIHdoaWxlRWxlbWVudHNNb3VudGVkUmVmLCBoYXNXaGlsZUVsZW1lbnRzTW91bnRlZF0pO1xuICBjb25zdCByZWZzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIHJlZmVyZW5jZTogcmVmZXJlbmNlUmVmLFxuICAgIGZsb2F0aW5nOiBmbG9hdGluZ1JlZixcbiAgICBzZXRSZWZlcmVuY2UsXG4gICAgc2V0RmxvYXRpbmdcbiAgfSksIFtzZXRSZWZlcmVuY2UsIHNldEZsb2F0aW5nXSk7XG4gIGNvbnN0IGVsZW1lbnRzID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIHJlZmVyZW5jZTogcmVmZXJlbmNlRWwsXG4gICAgZmxvYXRpbmc6IGZsb2F0aW5nRWxcbiAgfSksIFtyZWZlcmVuY2VFbCwgZmxvYXRpbmdFbF0pO1xuICBjb25zdCBmbG9hdGluZ1N0eWxlcyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGluaXRpYWxTdHlsZXMgPSB7XG4gICAgICBwb3NpdGlvbjogc3RyYXRlZ3ksXG4gICAgICBsZWZ0OiAwLFxuICAgICAgdG9wOiAwXG4gICAgfTtcbiAgICBpZiAoIWVsZW1lbnRzLmZsb2F0aW5nKSB7XG4gICAgICByZXR1cm4gaW5pdGlhbFN0eWxlcztcbiAgICB9XG4gICAgY29uc3QgeCA9IHJvdW5kQnlEUFIoZWxlbWVudHMuZmxvYXRpbmcsIGRhdGEueCk7XG4gICAgY29uc3QgeSA9IHJvdW5kQnlEUFIoZWxlbWVudHMuZmxvYXRpbmcsIGRhdGEueSk7XG4gICAgaWYgKHRyYW5zZm9ybSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5pdGlhbFN0eWxlcyxcbiAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZShcIiArIHggKyBcInB4LCBcIiArIHkgKyBcInB4KVwiLFxuICAgICAgICAuLi4oZ2V0RFBSKGVsZW1lbnRzLmZsb2F0aW5nKSA+PSAxLjUgJiYge1xuICAgICAgICAgIHdpbGxDaGFuZ2U6ICd0cmFuc2Zvcm0nXG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246IHN0cmF0ZWd5LFxuICAgICAgbGVmdDogeCxcbiAgICAgIHRvcDogeVxuICAgIH07XG4gIH0sIFtzdHJhdGVneSwgdHJhbnNmb3JtLCBlbGVtZW50cy5mbG9hdGluZywgZGF0YS54LCBkYXRhLnldKTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICAuLi5kYXRhLFxuICAgIHVwZGF0ZSxcbiAgICByZWZzLFxuICAgIGVsZW1lbnRzLFxuICAgIGZsb2F0aW5nU3R5bGVzXG4gIH0pLCBbZGF0YSwgdXBkYXRlLCByZWZzLCBlbGVtZW50cywgZmxvYXRpbmdTdHlsZXNdKTtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIHBvc2l0aW9uIGFuIGlubmVyIGVsZW1lbnQgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgc28gdGhhdCBpdFxuICogYXBwZWFycyBjZW50ZXJlZCB0byB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBUaGlzIHdyYXBzIHRoZSBjb3JlIGBhcnJvd2AgbWlkZGxld2FyZSB0byBhbGxvdyBSZWFjdCByZWZzIGFzIHRoZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2Fycm93XG4gKi9cbmNvbnN0IGFycm93JDEgPSBvcHRpb25zID0+IHtcbiAgZnVuY3Rpb24gaXNSZWYodmFsdWUpIHtcbiAgICByZXR1cm4ge30uaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2N1cnJlbnQnKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdhcnJvdycsXG4gICAgb3B0aW9ucyxcbiAgICBmbihzdGF0ZSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBlbGVtZW50LFxuICAgICAgICBwYWRkaW5nXG4gICAgICB9ID0gdHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicgPyBvcHRpb25zKHN0YXRlKSA6IG9wdGlvbnM7XG4gICAgICBpZiAoZWxlbWVudCAmJiBpc1JlZihlbGVtZW50KSkge1xuICAgICAgICBpZiAoZWxlbWVudC5jdXJyZW50ICE9IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gYXJyb3ckMih7XG4gICAgICAgICAgICBlbGVtZW50OiBlbGVtZW50LmN1cnJlbnQsXG4gICAgICAgICAgICBwYWRkaW5nXG4gICAgICAgICAgfSkuZm4oc3RhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBhcnJvdyQyKHtcbiAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgIHBhZGRpbmdcbiAgICAgICAgfSkuZm4oc3RhdGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogTW9kaWZpZXMgdGhlIHBsYWNlbWVudCBieSB0cmFuc2xhdGluZyB0aGUgZmxvYXRpbmcgZWxlbWVudCBhbG9uZyB0aGVcbiAqIHNwZWNpZmllZCBheGVzLlxuICogQSBudW1iZXIgKHNob3J0aGFuZCBmb3IgYG1haW5BeGlzYCBvciBkaXN0YW5jZSksIG9yIGFuIGF4ZXMgY29uZmlndXJhdGlvblxuICogb2JqZWN0IG1heSBiZSBwYXNzZWQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3Mvb2Zmc2V0XG4gKi9cbmNvbnN0IG9mZnNldCA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5vZmZzZXQkMShvcHRpb25zKSxcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXG59KTtcblxuLyoqXG4gKiBPcHRpbWl6ZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGZsb2F0aW5nIGVsZW1lbnQgYnkgc2hpZnRpbmcgaXQgaW4gb3JkZXIgdG9cbiAqIGtlZXAgaXQgaW4gdmlldyB3aGVuIGl0IHdpbGwgb3ZlcmZsb3cgdGhlIGNsaXBwaW5nIGJvdW5kYXJ5LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3NoaWZ0XG4gKi9cbmNvbnN0IHNoaWZ0ID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XG4gIC4uLnNoaWZ0JDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogQnVpbHQtaW4gYGxpbWl0ZXJgIHRoYXQgd2lsbCBzdG9wIGBzaGlmdCgpYCBhdCBhIGNlcnRhaW4gcG9pbnQuXG4gKi9cbmNvbnN0IGxpbWl0U2hpZnQgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4ubGltaXRTaGlmdCQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG4vKipcbiAqIE9wdGltaXplcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZmxvYXRpbmcgZWxlbWVudCBieSBmbGlwcGluZyB0aGUgYHBsYWNlbWVudGBcbiAqIGluIG9yZGVyIHRvIGtlZXAgaXQgaW4gdmlldyB3aGVuIHRoZSBwcmVmZXJyZWQgcGxhY2VtZW50KHMpIHdpbGwgb3ZlcmZsb3cgdGhlXG4gKiBjbGlwcGluZyBib3VuZGFyeS4gQWx0ZXJuYXRpdmUgdG8gYGF1dG9QbGFjZW1lbnRgLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2ZsaXBcbiAqL1xuY29uc3QgZmxpcCA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5mbGlwJDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0aGF0IGFsbG93cyB5b3UgdG8gY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IOKAlFxuICogZm9yIGluc3RhbmNlLCBwcmV2ZW50IGl0IGZyb20gb3ZlcmZsb3dpbmcgdGhlIGNsaXBwaW5nIGJvdW5kYXJ5IG9yIG1hdGNoIHRoZVxuICogd2lkdGggb2YgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL3NpemVcbiAqL1xuY29uc3Qgc2l6ZSA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5zaXplJDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogT3B0aW1pemVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IGJ5IGNob29zaW5nIHRoZSBwbGFjZW1lbnRcbiAqIHRoYXQgaGFzIHRoZSBtb3N0IHNwYWNlIGF2YWlsYWJsZSBhdXRvbWF0aWNhbGx5LCB3aXRob3V0IG5lZWRpbmcgdG8gc3BlY2lmeSBhXG4gKiBwcmVmZXJyZWQgcGxhY2VtZW50LiBBbHRlcm5hdGl2ZSB0byBgZmxpcGAuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvYXV0b1BsYWNlbWVudFxuICovXG5jb25zdCBhdXRvUGxhY2VtZW50ID0gKG9wdGlvbnMsIGRlcHMpID0+ICh7XG4gIC4uLmF1dG9QbGFjZW1lbnQkMShvcHRpb25zKSxcbiAgb3B0aW9uczogW29wdGlvbnMsIGRlcHNdXG59KTtcblxuLyoqXG4gKiBQcm92aWRlcyBkYXRhIHRvIGhpZGUgdGhlIGZsb2F0aW5nIGVsZW1lbnQgaW4gYXBwbGljYWJsZSBzaXR1YXRpb25zLCBzdWNoIGFzXG4gKiB3aGVuIGl0IGlzIG5vdCBpbiB0aGUgc2FtZSBjbGlwcGluZyBjb250ZXh0IGFzIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9oaWRlXG4gKi9cbmNvbnN0IGhpZGUgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4uaGlkZSQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG4vKipcbiAqIFByb3ZpZGVzIGltcHJvdmVkIHBvc2l0aW9uaW5nIGZvciBpbmxpbmUgcmVmZXJlbmNlIGVsZW1lbnRzIHRoYXQgY2FuIHNwYW5cbiAqIG92ZXIgbXVsdGlwbGUgbGluZXMsIHN1Y2ggYXMgaHlwZXJsaW5rcyBvciByYW5nZSBzZWxlY3Rpb25zLlxuICogQHNlZSBodHRwczovL2Zsb2F0aW5nLXVpLmNvbS9kb2NzL2lubGluZVxuICovXG5jb25zdCBpbmxpbmUgPSAob3B0aW9ucywgZGVwcykgPT4gKHtcbiAgLi4uaW5saW5lJDEob3B0aW9ucyksXG4gIG9wdGlvbnM6IFtvcHRpb25zLCBkZXBzXVxufSk7XG5cbi8qKlxuICogUHJvdmlkZXMgZGF0YSB0byBwb3NpdGlvbiBhbiBpbm5lciBlbGVtZW50IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50IHNvIHRoYXQgaXRcbiAqIGFwcGVhcnMgY2VudGVyZWQgdG8gdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICogVGhpcyB3cmFwcyB0aGUgY29yZSBgYXJyb3dgIG1pZGRsZXdhcmUgdG8gYWxsb3cgUmVhY3QgcmVmcyBhcyB0aGUgZWxlbWVudC5cbiAqIEBzZWUgaHR0cHM6Ly9mbG9hdGluZy11aS5jb20vZG9jcy9hcnJvd1xuICovXG5jb25zdCBhcnJvdyA9IChvcHRpb25zLCBkZXBzKSA9PiAoe1xuICAuLi5hcnJvdyQxKG9wdGlvbnMpLFxuICBvcHRpb25zOiBbb3B0aW9ucywgZGVwc11cbn0pO1xuXG5leHBvcnQgeyBhcnJvdywgYXV0b1BsYWNlbWVudCwgZmxpcCwgaGlkZSwgaW5saW5lLCBsaW1pdFNoaWZ0LCBvZmZzZXQsIHNoaWZ0LCBzaXplLCB1c2VGbG9hdGluZyB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs":
/*!************************************************************************!*\
!*** ./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs ***!
\************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getComputedStyle: () => (/* binding */ getComputedStyle),\n/* harmony export */ getContainingBlock: () => (/* binding */ getContainingBlock),\n/* harmony export */ getDocumentElement: () => (/* binding */ getDocumentElement),\n/* harmony export */ getFrameElement: () => (/* binding */ getFrameElement),\n/* harmony export */ getNearestOverflowAncestor: () => (/* binding */ getNearestOverflowAncestor),\n/* harmony export */ getNodeName: () => (/* binding */ getNodeName),\n/* harmony export */ getNodeScroll: () => (/* binding */ getNodeScroll),\n/* harmony export */ getOverflowAncestors: () => (/* binding */ getOverflowAncestors),\n/* harmony export */ getParentNode: () => (/* binding */ getParentNode),\n/* harmony export */ getWindow: () => (/* binding */ getWindow),\n/* harmony export */ isContainingBlock: () => (/* binding */ isContainingBlock),\n/* harmony export */ isElement: () => (/* binding */ isElement),\n/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement),\n/* harmony export */ isLastTraversableNode: () => (/* binding */ isLastTraversableNode),\n/* harmony export */ isNode: () => (/* binding */ isNode),\n/* harmony export */ isOverflowElement: () => (/* binding */ isOverflowElement),\n/* harmony export */ isShadowRoot: () => (/* binding */ isShadowRoot),\n/* harmony export */ isTableElement: () => (/* binding */ isTableElement),\n/* harmony export */ isTopLayer: () => (/* binding */ isTopLayer),\n/* harmony export */ isWebKit: () => (/* binding */ isWebKit)\n/* harmony export */ });\nfunction hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvdXRpbHMvZGlzdC9mbG9hdGluZy11aS51dGlscy5kb20ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWdWIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvdXRpbHMvZGlzdC9mbG9hdGluZy11aS51dGlscy5kb20ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGhhc1dpbmRvdygpIHtcbiAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnO1xufVxuZnVuY3Rpb24gZ2V0Tm9kZU5hbWUobm9kZSkge1xuICBpZiAoaXNOb2RlKG5vZGUpKSB7XG4gICAgcmV0dXJuIChub2RlLm5vZGVOYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICB9XG4gIC8vIE1vY2tlZCBub2RlcyBpbiB0ZXN0aW5nIGVudmlyb25tZW50cyBtYXkgbm90IGJlIGluc3RhbmNlcyBvZiBOb2RlLiBCeVxuICAvLyByZXR1cm5pbmcgYCNkb2N1bWVudGAgYW4gaW5maW5pdGUgbG9vcCB3b24ndCBvY2N1ci5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2Zsb2F0aW5nLXVpL2Zsb2F0aW5nLXVpL2lzc3Vlcy8yMzE3XG4gIHJldHVybiAnI2RvY3VtZW50Jztcbn1cbmZ1bmN0aW9uIGdldFdpbmRvdyhub2RlKSB7XG4gIHZhciBfbm9kZSRvd25lckRvY3VtZW50O1xuICByZXR1cm4gKG5vZGUgPT0gbnVsbCB8fCAoX25vZGUkb3duZXJEb2N1bWVudCA9IG5vZGUub3duZXJEb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9ub2RlJG93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpIHx8IHdpbmRvdztcbn1cbmZ1bmN0aW9uIGdldERvY3VtZW50RWxlbWVudChub2RlKSB7XG4gIHZhciBfcmVmO1xuICByZXR1cm4gKF9yZWYgPSAoaXNOb2RlKG5vZGUpID8gbm9kZS5vd25lckRvY3VtZW50IDogbm9kZS5kb2N1bWVudCkgfHwgd2luZG93LmRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX3JlZi5kb2N1bWVudEVsZW1lbnQ7XG59XG5mdW5jdGlvbiBpc05vZGUodmFsdWUpIHtcbiAgaWYgKCFoYXNXaW5kb3coKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBOb2RlIHx8IHZhbHVlIGluc3RhbmNlb2YgZ2V0V2luZG93KHZhbHVlKS5Ob2RlO1xufVxuZnVuY3Rpb24gaXNFbGVtZW50KHZhbHVlKSB7XG4gIGlmICghaGFzV2luZG93KCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRWxlbWVudCB8fCB2YWx1ZSBpbnN0YW5jZW9mIGdldFdpbmRvdyh2YWx1ZSkuRWxlbWVudDtcbn1cbmZ1bmN0aW9uIGlzSFRNTEVsZW1lbnQodmFsdWUpIHtcbiAgaWYgKCFoYXNXaW5kb3coKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCB8fCB2YWx1ZSBpbnN0YW5jZW9mIGdldFdpbmRvdyh2YWx1ZSkuSFRNTEVsZW1lbnQ7XG59XG5mdW5jdGlvbiBpc1NoYWRvd1Jvb3QodmFsdWUpIHtcbiAgaWYgKCFoYXNXaW5kb3coKSB8fCB0eXBlb2YgU2hhZG93Um9vdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgU2hhZG93Um9vdCB8fCB2YWx1ZSBpbnN0YW5jZW9mIGdldFdpbmRvdyh2YWx1ZSkuU2hhZG93Um9vdDtcbn1cbmZ1bmN0aW9uIGlzT3ZlcmZsb3dFbGVtZW50KGVsZW1lbnQpIHtcbiAgY29uc3Qge1xuICAgIG92ZXJmbG93LFxuICAgIG92ZXJmbG93WCxcbiAgICBvdmVyZmxvd1ksXG4gICAgZGlzcGxheVxuICB9ID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgcmV0dXJuIC9hdXRvfHNjcm9sbHxvdmVybGF5fGhpZGRlbnxjbGlwLy50ZXN0KG92ZXJmbG93ICsgb3ZlcmZsb3dZICsgb3ZlcmZsb3dYKSAmJiAhWydpbmxpbmUnLCAnY29udGVudHMnXS5pbmNsdWRlcyhkaXNwbGF5KTtcbn1cbmZ1bmN0aW9uIGlzVGFibGVFbGVtZW50KGVsZW1lbnQpIHtcbiAgcmV0dXJuIFsndGFibGUnLCAndGQnLCAndGgnXS5pbmNsdWRlcyhnZXROb2RlTmFtZShlbGVtZW50KSk7XG59XG5mdW5jdGlvbiBpc1RvcExheWVyKGVsZW1lbnQpIHtcbiAgcmV0dXJuIFsnOnBvcG92ZXItb3BlbicsICc6bW9kYWwnXS5zb21lKHNlbGVjdG9yID0+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGVsZW1lbnQubWF0Y2hlcyhzZWxlY3Rvcik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSk7XG59XG5mdW5jdGlvbiBpc0NvbnRhaW5pbmdCbG9jayhlbGVtZW50T3JDc3MpIHtcbiAgY29uc3Qgd2Via2l0ID0gaXNXZWJLaXQoKTtcbiAgY29uc3QgY3NzID0gaXNFbGVtZW50KGVsZW1lbnRPckNzcykgPyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnRPckNzcykgOiBlbGVtZW50T3JDc3M7XG5cbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0NvbnRhaW5pbmdfYmxvY2sjaWRlbnRpZnlpbmdfdGhlX2NvbnRhaW5pbmdfYmxvY2tcbiAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy10cmFuc2Zvcm1zLTIvI2luZGl2aWR1YWwtdHJhbnNmb3Jtc1xuICByZXR1cm4gWyd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlJywgJ3NjYWxlJywgJ3JvdGF0ZScsICdwZXJzcGVjdGl2ZSddLnNvbWUodmFsdWUgPT4gY3NzW3ZhbHVlXSA/IGNzc1t2YWx1ZV0gIT09ICdub25lJyA6IGZhbHNlKSB8fCAoY3NzLmNvbnRhaW5lclR5cGUgPyBjc3MuY29udGFpbmVyVHlwZSAhPT0gJ25vcm1hbCcgOiBmYWxzZSkgfHwgIXdlYmtpdCAmJiAoY3NzLmJhY2tkcm9wRmlsdGVyID8gY3NzLmJhY2tkcm9wRmlsdGVyICE9PSAnbm9uZScgOiBmYWxzZSkgfHwgIXdlYmtpdCAmJiAoY3NzLmZpbHRlciA/IGNzcy5maWx0ZXIgIT09ICdub25lJyA6IGZhbHNlKSB8fCBbJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUnLCAnc2NhbGUnLCAncm90YXRlJywgJ3BlcnNwZWN0aXZlJywgJ2ZpbHRlciddLnNvbWUodmFsdWUgPT4gKGNzcy53aWxsQ2hhbmdlIHx8ICcnKS5pbmNsdWRlcyh2YWx1ZSkpIHx8IFsncGFpbnQnLCAnbGF5b3V0JywgJ3N0cmljdCcsICdjb250ZW50J10uc29tZSh2YWx1ZSA9PiAoY3NzLmNvbnRhaW4gfHwgJycpLmluY2x1ZGVzKHZhbHVlKSk7XG59XG5mdW5jdGlvbiBnZXRDb250YWluaW5nQmxvY2soZWxlbWVudCkge1xuICBsZXQgY3VycmVudE5vZGUgPSBnZXRQYXJlbnROb2RlKGVsZW1lbnQpO1xuICB3aGlsZSAoaXNIVE1MRWxlbWVudChjdXJyZW50Tm9kZSkgJiYgIWlzTGFzdFRyYXZlcnNhYmxlTm9kZShjdXJyZW50Tm9kZSkpIHtcbiAgICBpZiAoaXNDb250YWluaW5nQmxvY2soY3VycmVudE5vZGUpKSB7XG4gICAgICByZXR1cm4gY3VycmVudE5vZGU7XG4gICAgfSBlbHNlIGlmIChpc1RvcExheWVyKGN1cnJlbnROb2RlKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGN1cnJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShjdXJyZW50Tm9kZSk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBpc1dlYktpdCgpIHtcbiAgaWYgKHR5cGVvZiBDU1MgPT09ICd1bmRlZmluZWQnIHx8ICFDU1Muc3VwcG9ydHMpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIENTUy5zdXBwb3J0cygnLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXInLCAnbm9uZScpO1xufVxuZnVuY3Rpb24gaXNMYXN0VHJhdmVyc2FibGVOb2RlKG5vZGUpIHtcbiAgcmV0dXJuIFsnaHRtbCcsICdib2R5JywgJyNkb2N1bWVudCddLmluY2x1ZGVzKGdldE5vZGVOYW1lKG5vZGUpKTtcbn1cbmZ1bmN0aW9uIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkge1xuICByZXR1cm4gZ2V0V2luZG93KGVsZW1lbnQpLmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG59XG5mdW5jdGlvbiBnZXROb2RlU2Nyb2xsKGVsZW1lbnQpIHtcbiAgaWYgKGlzRWxlbWVudChlbGVtZW50KSkge1xuICAgIHJldHVybiB7XG4gICAgICBzY3JvbGxMZWZ0OiBlbGVtZW50LnNjcm9sbExlZnQsXG4gICAgICBzY3JvbGxUb3A6IGVsZW1lbnQuc2Nyb2xsVG9wXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHNjcm9sbExlZnQ6IGVsZW1lbnQuc2Nyb2xsWCxcbiAgICBzY3JvbGxUb3A6IGVsZW1lbnQuc2Nyb2xsWVxuICB9O1xufVxuZnVuY3Rpb24gZ2V0UGFyZW50Tm9kZShub2RlKSB7XG4gIGlmIChnZXROb2RlTmFtZShub2RlKSA9PT0gJ2h0bWwnKSB7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID1cbiAgLy8gU3RlcCBpbnRvIHRoZSBzaGFkb3cgRE9NIG9mIHRoZSBwYXJlbnQgb2YgYSBzbG90dGVkIG5vZGUuXG4gIG5vZGUuYXNzaWduZWRTbG90IHx8XG4gIC8vIERPTSBFbGVtZW50IGRldGVjdGVkLlxuICBub2RlLnBhcmVudE5vZGUgfHxcbiAgLy8gU2hhZG93Um9vdCBkZXRlY3RlZC5cbiAgaXNTaGFkb3dSb290KG5vZGUpICYmIG5vZGUuaG9zdCB8fFxuICAvLyBGYWxsYmFjay5cbiAgZ2V0RG9jdW1lbnRFbGVtZW50KG5vZGUpO1xuICByZXR1cm4gaXNTaGFkb3dSb290KHJlc3VsdCkgPyByZXN1bHQuaG9zdCA6IHJlc3VsdDtcbn1cbmZ1bmN0aW9uIGdldE5lYXJlc3RPdmVyZmxvd0FuY2VzdG9yKG5vZGUpIHtcbiAgY29uc3QgcGFyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUobm9kZSk7XG4gIGlmIChpc0xhc3RUcmF2ZXJzYWJsZU5vZGUocGFyZW50Tm9kZSkpIHtcbiAgICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50ID8gbm9kZS5vd25lckRvY3VtZW50LmJvZHkgOiBub2RlLmJvZHk7XG4gIH1cbiAgaWYgKGlzSFRNTEVsZW1lbnQocGFyZW50Tm9kZSkgJiYgaXNPdmVyZmxvd0VsZW1lbnQocGFyZW50Tm9kZSkpIHtcbiAgICByZXR1cm4gcGFyZW50Tm9kZTtcbiAgfVxuICByZXR1cm4gZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3IocGFyZW50Tm9kZSk7XG59XG5mdW5jdGlvbiBnZXRPdmVyZmxvd0FuY2VzdG9ycyhub2RlLCBsaXN0LCB0cmF2ZXJzZUlmcmFtZXMpIHtcbiAgdmFyIF9ub2RlJG93bmVyRG9jdW1lbnQyO1xuICBpZiAobGlzdCA9PT0gdm9pZCAwKSB7XG4gICAgbGlzdCA9IFtdO1xuICB9XG4gIGlmICh0cmF2ZXJzZUlmcmFtZXMgPT09IHZvaWQgMCkge1xuICAgIHRyYXZlcnNlSWZyYW1lcyA9IHRydWU7XG4gIH1cbiAgY29uc3Qgc2Nyb2xsYWJsZUFuY2VzdG9yID0gZ2V0TmVhcmVzdE92ZXJmbG93QW5jZXN0b3Iobm9kZSk7XG4gIGNvbnN0IGlzQm9keSA9IHNjcm9sbGFibGVBbmNlc3RvciA9PT0gKChfbm9kZSRvd25lckRvY3VtZW50MiA9IG5vZGUub3duZXJEb2N1bWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9ub2RlJG93bmVyRG9jdW1lbnQyLmJvZHkpO1xuICBjb25zdCB3aW4gPSBnZXRXaW5kb3coc2Nyb2xsYWJsZUFuY2VzdG9yKTtcbiAgaWYgKGlzQm9keSkge1xuICAgIGNvbnN0IGZyYW1lRWxlbWVudCA9IGdldEZyYW1lRWxlbWVudCh3aW4pO1xuICAgIHJldHVybiBsaXN0LmNvbmNhdCh3aW4sIHdpbi52aXN1YWxWaWV3cG9ydCB8fCBbXSwgaXNPdmVyZmxvd0VsZW1lbnQoc2Nyb2xsYWJsZUFuY2VzdG9yKSA/IHNjcm9sbGFibGVBbmNlc3RvciA6IFtdLCBmcmFtZUVsZW1lbnQgJiYgdHJhdmVyc2VJZnJhbWVzID8gZ2V0T3ZlcmZsb3dBbmNlc3RvcnMoZnJhbWVFbGVtZW50KSA6IFtdKTtcbiAgfVxuICByZXR1cm4gbGlzdC5jb25jYXQoc2Nyb2xsYWJsZUFuY2VzdG9yLCBnZXRPdmVyZmxvd0FuY2VzdG9ycyhzY3JvbGxhYmxlQW5jZXN0b3IsIFtdLCB0cmF2ZXJzZUlmcmFtZXMpKTtcbn1cbmZ1bmN0aW9uIGdldEZyYW1lRWxlbWVudCh3aW4pIHtcbiAgcmV0dXJuIHdpbi5wYXJlbnQgJiYgT2JqZWN0LmdldFByb3RvdHlwZU9mKHdpbi5wYXJlbnQpID8gd2luLmZyYW1lRWxlbWVudCA6IG51bGw7XG59XG5cbmV4cG9ydCB7IGdldENvbXB1dGVkU3R5bGUsIGdldENvbnRhaW5pbmdCbG9jaywgZ2V0RG9jdW1lbnRFbGVtZW50LCBnZXRGcmFtZUVsZW1lbnQsIGdldE5lYXJlc3RPdmVyZmxvd0FuY2VzdG9yLCBnZXROb2RlTmFtZSwgZ2V0Tm9kZVNjcm9sbCwgZ2V0T3ZlcmZsb3dBbmNlc3RvcnMsIGdldFBhcmVudE5vZGUsIGdldFdpbmRvdywgaXNDb250YWluaW5nQmxvY2ssIGlzRWxlbWVudCwgaXNIVE1MRWxlbWVudCwgaXNMYXN0VHJhdmVyc2FibGVOb2RlLCBpc05vZGUsIGlzT3ZlcmZsb3dFbGVtZW50LCBpc1NoYWRvd1Jvb3QsIGlzVGFibGVFbGVtZW50LCBpc1RvcExheWVyLCBpc1dlYktpdCB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs":
/*!********************************************************************!*\
!*** ./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs ***!
\********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ alignments: () => (/* binding */ alignments),\n/* harmony export */ clamp: () => (/* binding */ clamp),\n/* harmony export */ createCoords: () => (/* binding */ createCoords),\n/* harmony export */ evaluate: () => (/* binding */ evaluate),\n/* harmony export */ expandPaddingObject: () => (/* binding */ expandPaddingObject),\n/* harmony export */ floor: () => (/* binding */ floor),\n/* harmony export */ getAlignment: () => (/* binding */ getAlignment),\n/* harmony export */ getAlignmentAxis: () => (/* binding */ getAlignmentAxis),\n/* harmony export */ getAlignmentSides: () => (/* binding */ getAlignmentSides),\n/* harmony export */ getAxisLength: () => (/* binding */ getAxisLength),\n/* harmony export */ getExpandedPlacements: () => (/* binding */ getExpandedPlacements),\n/* harmony export */ getOppositeAlignmentPlacement: () => (/* binding */ getOppositeAlignmentPlacement),\n/* harmony export */ getOppositeAxis: () => (/* binding */ getOppositeAxis),\n/* harmony export */ getOppositeAxisPlacements: () => (/* binding */ getOppositeAxisPlacements),\n/* harmony export */ getOppositePlacement: () => (/* binding */ getOppositePlacement),\n/* harmony export */ getPaddingObject: () => (/* binding */ getPaddingObject),\n/* harmony export */ getSide: () => (/* binding */ getSide),\n/* harmony export */ getSideAxis: () => (/* binding */ getSideAxis),\n/* harmony export */ max: () => (/* binding */ max),\n/* harmony export */ min: () => (/* binding */ min),\n/* harmony export */ placements: () => (/* binding */ placements),\n/* harmony export */ rectToClientRect: () => (/* binding */ rectToClientRect),\n/* harmony export */ round: () => (/* binding */ round),\n/* harmony export */ sides: () => (/* binding */ sides)\n/* harmony export */ });\n/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvdXRpbHMvZGlzdC9mbG9hdGluZy11aS51dGlscy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXlXIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9AZmxvYXRpbmctdWkvdXRpbHMvZGlzdC9mbG9hdGluZy11aS51dGlscy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXN0b20gcG9zaXRpb25pbmcgcmVmZXJlbmNlIGVsZW1lbnQuXG4gKiBAc2VlIGh0dHBzOi8vZmxvYXRpbmctdWkuY29tL2RvY3MvdmlydHVhbC1lbGVtZW50c1xuICovXG5cbmNvbnN0IHNpZGVzID0gWyd0b3AnLCAncmlnaHQnLCAnYm90dG9tJywgJ2xlZnQnXTtcbmNvbnN0IGFsaWdubWVudHMgPSBbJ3N0YXJ0JywgJ2VuZCddO1xuY29uc3QgcGxhY2VtZW50cyA9IC8qI19fUFVSRV9fKi9zaWRlcy5yZWR1Y2UoKGFjYywgc2lkZSkgPT4gYWNjLmNvbmNhdChzaWRlLCBzaWRlICsgXCItXCIgKyBhbGlnbm1lbnRzWzBdLCBzaWRlICsgXCItXCIgKyBhbGlnbm1lbnRzWzFdKSwgW10pO1xuY29uc3QgbWluID0gTWF0aC5taW47XG5jb25zdCBtYXggPSBNYXRoLm1heDtcbmNvbnN0IHJvdW5kID0gTWF0aC5yb3VuZDtcbmNvbnN0IGZsb29yID0gTWF0aC5mbG9vcjtcbmNvbnN0IGNyZWF0ZUNvb3JkcyA9IHYgPT4gKHtcbiAgeDogdixcbiAgeTogdlxufSk7XG5jb25zdCBvcHBvc2l0ZVNpZGVNYXAgPSB7XG4gIGxlZnQ6ICdyaWdodCcsXG4gIHJpZ2h0OiAnbGVmdCcsXG4gIGJvdHRvbTogJ3RvcCcsXG4gIHRvcDogJ2JvdHRvbSdcbn07XG5jb25zdCBvcHBvc2l0ZUFsaWdubWVudE1hcCA9IHtcbiAgc3RhcnQ6ICdlbmQnLFxuICBlbmQ6ICdzdGFydCdcbn07XG5mdW5jdGlvbiBjbGFtcChzdGFydCwgdmFsdWUsIGVuZCkge1xuICByZXR1cm4gbWF4KHN0YXJ0LCBtaW4odmFsdWUsIGVuZCkpO1xufVxuZnVuY3Rpb24gZXZhbHVhdGUodmFsdWUsIHBhcmFtKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgPyB2YWx1ZShwYXJhbSkgOiB2YWx1ZTtcbn1cbmZ1bmN0aW9uIGdldFNpZGUocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQuc3BsaXQoJy0nKVswXTtcbn1cbmZ1bmN0aW9uIGdldEFsaWdubWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5zcGxpdCgnLScpWzFdO1xufVxuZnVuY3Rpb24gZ2V0T3Bwb3NpdGVBeGlzKGF4aXMpIHtcbiAgcmV0dXJuIGF4aXMgPT09ICd4JyA/ICd5JyA6ICd4Jztcbn1cbmZ1bmN0aW9uIGdldEF4aXNMZW5ndGgoYXhpcykge1xuICByZXR1cm4gYXhpcyA9PT0gJ3knID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xufVxuZnVuY3Rpb24gZ2V0U2lkZUF4aXMocGxhY2VtZW50KSB7XG4gIHJldHVybiBbJ3RvcCcsICdib3R0b20nXS5pbmNsdWRlcyhnZXRTaWRlKHBsYWNlbWVudCkpID8gJ3knIDogJ3gnO1xufVxuZnVuY3Rpb24gZ2V0QWxpZ25tZW50QXhpcyhwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIGdldE9wcG9zaXRlQXhpcyhnZXRTaWRlQXhpcyhwbGFjZW1lbnQpKTtcbn1cbmZ1bmN0aW9uIGdldEFsaWdubWVudFNpZGVzKHBsYWNlbWVudCwgcmVjdHMsIHJ0bCkge1xuICBpZiAocnRsID09PSB2b2lkIDApIHtcbiAgICBydGwgPSBmYWxzZTtcbiAgfVxuICBjb25zdCBhbGlnbm1lbnQgPSBnZXRBbGlnbm1lbnQocGxhY2VtZW50KTtcbiAgY29uc3QgYWxpZ25tZW50QXhpcyA9IGdldEFsaWdubWVudEF4aXMocGxhY2VtZW50KTtcbiAgY29uc3QgbGVuZ3RoID0gZ2V0QXhpc0xlbmd0aChhbGlnbm1lbnRBeGlzKTtcbiAgbGV0IG1haW5BbGlnbm1lbnRTaWRlID0gYWxpZ25tZW50QXhpcyA9PT0gJ3gnID8gYWxpZ25tZW50ID09PSAocnRsID8gJ2VuZCcgOiAnc3RhcnQnKSA/ICdyaWdodCcgOiAnbGVmdCcgOiBhbGlnbm1lbnQgPT09ICdzdGFydCcgPyAnYm90dG9tJyA6ICd0b3AnO1xuICBpZiAocmVjdHMucmVmZXJlbmNlW2xlbmd0aF0gPiByZWN0cy5mbG9hdGluZ1tsZW5ndGhdKSB7XG4gICAgbWFpbkFsaWdubWVudFNpZGUgPSBnZXRPcHBvc2l0ZVBsYWNlbWVudChtYWluQWxpZ25tZW50U2lkZSk7XG4gIH1cbiAgcmV0dXJuIFttYWluQWxpZ25tZW50U2lkZSwgZ2V0T3Bwb3NpdGVQbGFjZW1lbnQobWFpbkFsaWdubWVudFNpZGUpXTtcbn1cbmZ1bmN0aW9uIGdldEV4cGFuZGVkUGxhY2VtZW50cyhwbGFjZW1lbnQpIHtcbiAgY29uc3Qgb3Bwb3NpdGVQbGFjZW1lbnQgPSBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpO1xuICByZXR1cm4gW2dldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50KHBsYWNlbWVudCksIG9wcG9zaXRlUGxhY2VtZW50LCBnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudChvcHBvc2l0ZVBsYWNlbWVudCldO1xufVxuZnVuY3Rpb24gZ2V0T3Bwb3NpdGVBbGlnbm1lbnRQbGFjZW1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQucmVwbGFjZSgvc3RhcnR8ZW5kL2csIGFsaWdubWVudCA9PiBvcHBvc2l0ZUFsaWdubWVudE1hcFthbGlnbm1lbnRdKTtcbn1cbmZ1bmN0aW9uIGdldFNpZGVMaXN0KHNpZGUsIGlzU3RhcnQsIHJ0bCkge1xuICBjb25zdCBsciA9IFsnbGVmdCcsICdyaWdodCddO1xuICBjb25zdCBybCA9IFsncmlnaHQnLCAnbGVmdCddO1xuICBjb25zdCB0YiA9IFsndG9wJywgJ2JvdHRvbSddO1xuICBjb25zdCBidCA9IFsnYm90dG9tJywgJ3RvcCddO1xuICBzd2l0Y2ggKHNpZGUpIHtcbiAgICBjYXNlICd0b3AnOlxuICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICBpZiAocnRsKSByZXR1cm4gaXNTdGFydCA/IHJsIDogbHI7XG4gICAgICByZXR1cm4gaXNTdGFydCA/IGxyIDogcmw7XG4gICAgY2FzZSAnbGVmdCc6XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgcmV0dXJuIGlzU3RhcnQgPyB0YiA6IGJ0O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gW107XG4gIH1cbn1cbmZ1bmN0aW9uIGdldE9wcG9zaXRlQXhpc1BsYWNlbWVudHMocGxhY2VtZW50LCBmbGlwQWxpZ25tZW50LCBkaXJlY3Rpb24sIHJ0bCkge1xuICBjb25zdCBhbGlnbm1lbnQgPSBnZXRBbGlnbm1lbnQocGxhY2VtZW50KTtcbiAgbGV0IGxpc3QgPSBnZXRTaWRlTGlzdChnZXRTaWRlKHBsYWNlbWVudCksIGRpcmVjdGlvbiA9PT0gJ3N0YXJ0JywgcnRsKTtcbiAgaWYgKGFsaWdubWVudCkge1xuICAgIGxpc3QgPSBsaXN0Lm1hcChzaWRlID0+IHNpZGUgKyBcIi1cIiArIGFsaWdubWVudCk7XG4gICAgaWYgKGZsaXBBbGlnbm1lbnQpIHtcbiAgICAgIGxpc3QgPSBsaXN0LmNvbmNhdChsaXN0Lm1hcChnZXRPcHBvc2l0ZUFsaWdubWVudFBsYWNlbWVudCkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbGlzdDtcbn1cbmZ1bmN0aW9uIGdldE9wcG9zaXRlUGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnJlcGxhY2UoL2xlZnR8cmlnaHR8Ym90dG9tfHRvcC9nLCBzaWRlID0+IG9wcG9zaXRlU2lkZU1hcFtzaWRlXSk7XG59XG5mdW5jdGlvbiBleHBhbmRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpIHtcbiAgcmV0dXJuIHtcbiAgICB0b3A6IDAsXG4gICAgcmlnaHQ6IDAsXG4gICAgYm90dG9tOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgLi4ucGFkZGluZ1xuICB9O1xufVxuZnVuY3Rpb24gZ2V0UGFkZGluZ09iamVjdChwYWRkaW5nKSB7XG4gIHJldHVybiB0eXBlb2YgcGFkZGluZyAhPT0gJ251bWJlcicgPyBleHBhbmRQYWRkaW5nT2JqZWN0KHBhZGRpbmcpIDoge1xuICAgIHRvcDogcGFkZGluZyxcbiAgICByaWdodDogcGFkZGluZyxcbiAgICBib3R0b206IHBhZGRpbmcsXG4gICAgbGVmdDogcGFkZGluZ1xuICB9O1xufVxuZnVuY3Rpb24gcmVjdFRvQ2xpZW50UmVjdChyZWN0KSB7XG4gIGNvbnN0IHtcbiAgICB4LFxuICAgIHksXG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0XG4gIH0gPSByZWN0O1xuICByZXR1cm4ge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICB0b3A6IHksXG4gICAgbGVmdDogeCxcbiAgICByaWdodDogeCArIHdpZHRoLFxuICAgIGJvdHRvbTogeSArIGhlaWdodCxcbiAgICB4LFxuICAgIHlcbiAgfTtcbn1cblxuZXhwb3J0IHsgYWxpZ25tZW50cywgY2xhbXAsIGNyZWF0ZUNvb3JkcywgZXZhbHVhdGUsIGV4cGFuZFBhZGRpbmdPYmplY3QsIGZsb29yLCBnZXRBbGlnbm1lbnQsIGdldEFsaWdubWVudEF4aXMsIGdldEFsaWdubWVudFNpZGVzLCBnZXRBeGlzTGVuZ3RoLCBnZXRFeHBhbmRlZFBsYWNlbWVudHMsIGdldE9wcG9zaXRlQWxpZ25tZW50UGxhY2VtZW50LCBnZXRPcHBvc2l0ZUF4aXMsIGdldE9wcG9zaXRlQXhpc1BsYWNlbWVudHMsIGdldE9wcG9zaXRlUGxhY2VtZW50LCBnZXRQYWRkaW5nT2JqZWN0LCBnZXRTaWRlLCBnZXRTaWRlQXhpcywgbWF4LCBtaW4sIHBsYWNlbWVudHMsIHJlY3RUb0NsaWVudFJlY3QsIHJvdW5kLCBzaWRlcyB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/number/dist/index.mjs":
/*!******************************************************!*\
!*** ./node_modules/@radix-ui/number/dist/index.mjs ***!
\******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clamp: () => (/* binding */ clamp)\n/* harmony export */ });\n// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvbnVtYmVyL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9udW1iZXIvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvY29yZS9udW1iZXIvc3JjL251bWJlci50c1xuZnVuY3Rpb24gY2xhbXAodmFsdWUsIFttaW4sIG1heF0pIHtcbiAgcmV0dXJuIE1hdGgubWluKG1heCwgTWF0aC5tYXgobWluLCB2YWx1ZSkpO1xufVxuZXhwb3J0IHtcbiAgY2xhbXBcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/number/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs":
/*!*********************************************************!*\
!*** ./node_modules/@radix-ui/primitive/dist/index.mjs ***!
\*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ composeEventHandlers: () => (/* binding */ composeEventHandlers)\n/* harmony export */ });\n// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLHVFQUF1RSxrQ0FBa0MsSUFBSTtBQUM3RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9wcmltaXRpdmUvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvY29yZS9wcmltaXRpdmUvc3JjL3ByaW1pdGl2ZS50c3hcbmZ1bmN0aW9uIGNvbXBvc2VFdmVudEhhbmRsZXJzKG9yaWdpbmFsRXZlbnRIYW5kbGVyLCBvdXJFdmVudEhhbmRsZXIsIHsgY2hlY2tGb3JEZWZhdWx0UHJldmVudGVkID0gdHJ1ZSB9ID0ge30pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGhhbmRsZUV2ZW50KGV2ZW50KSB7XG4gICAgb3JpZ2luYWxFdmVudEhhbmRsZXI/LihldmVudCk7XG4gICAgaWYgKGNoZWNrRm9yRGVmYXVsdFByZXZlbnRlZCA9PT0gZmFsc2UgfHwgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHJldHVybiBvdXJFdmVudEhhbmRsZXI/LihldmVudCk7XG4gICAgfVxuICB9O1xufVxuZXhwb3J0IHtcbiAgY29tcG9zZUV2ZW50SGFuZGxlcnNcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-alert-dialog/dist/index.mjs":
/*!******************************************************************!*\
!*** ./node_modules/@radix-ui/react-alert-dialog/dist/index.mjs ***!
\******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Action: () => (/* binding */ Action),\n/* harmony export */ AlertDialog: () => (/* binding */ AlertDialog),\n/* harmony export */ AlertDialogAction: () => (/* binding */ AlertDialogAction),\n/* harmony export */ AlertDialogCancel: () => (/* binding */ AlertDialogCancel),\n/* harmony export */ AlertDialogContent: () => (/* binding */ AlertDialogContent),\n/* harmony export */ AlertDialogDescription: () => (/* binding */ AlertDialogDescription),\n/* harmony export */ AlertDialogOverlay: () => (/* binding */ AlertDialogOverlay),\n/* harmony export */ AlertDialogPortal: () => (/* binding */ AlertDialogPortal),\n/* harmony export */ AlertDialogTitle: () => (/* binding */ AlertDialogTitle),\n/* harmony export */ AlertDialogTrigger: () => (/* binding */ AlertDialogTrigger),\n/* harmony export */ Cancel: () => (/* binding */ Cancel),\n/* harmony export */ Content: () => (/* binding */ Content2),\n/* harmony export */ Description: () => (/* binding */ Description2),\n/* harmony export */ Overlay: () => (/* binding */ Overlay2),\n/* harmony export */ Portal: () => (/* binding */ Portal2),\n/* harmony export */ Root: () => (/* binding */ Root2),\n/* harmony export */ Title: () => (/* binding */ Title2),\n/* harmony export */ Trigger: () => (/* binding */ Trigger2),\n/* harmony export */ createAlertDialogScope: () => (/* binding */ createAlertDialogScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-dialog */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dialog/dist/index.mjs\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Action,AlertDialog,AlertDialogAction,AlertDialogCancel,AlertDialogContent,AlertDialogDescription,AlertDialogOverlay,AlertDialogPortal,AlertDialogTitle,AlertDialogTrigger,Cancel,Content,Description,Overlay,Portal,Root,Title,Trigger,createAlertDialogScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$(), _s7 = $RefreshSig$(), _s8 = $RefreshSig$(), _s9 = $RefreshSig$();\n// packages/react/alert-dialog/src/AlertDialog.tsx\n\n\n\n\n\n\n\n\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(ROOT_NAME, [\n _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.createDialogScope\n]);\nvar useDialogScope = (0,_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.createDialogScope)();\nvar AlertDialog = (props)=>{\n _s();\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ...dialogScope,\n ...alertDialogProps,\n modal: true\n });\n};\n_s(AlertDialog, \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n});\n_c = AlertDialog;\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c1 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Trigger, {\n ...dialogScope,\n ...triggerProps,\n ref: forwardedRef\n });\n}, \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n})), \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n});\n_c2 = AlertDialogTrigger;\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props)=>{\n _s2();\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Portal, {\n ...dialogScope,\n ...portalProps\n });\n};\n_s2(AlertDialogPortal, \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n});\n_c3 = AlertDialogPortal;\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c4 = _s3((props, forwardedRef)=>{\n _s3();\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Overlay, {\n ...dialogScope,\n ...overlayProps,\n ref: forwardedRef\n });\n}, \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n})), \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n});\n_c5 = AlertDialogOverlay;\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar AlertDialogContent = /*#__PURE__*/ _s4(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c6 = _s4((props, forwardedRef)=>{\n _s4();\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs)(forwardedRef, contentRef);\n const cancelRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.WarningProvider, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"alert-dialog\",\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(AlertDialogContentProvider, {\n scope: __scopeAlertDialog,\n cancelRef,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Content, {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(contentProps.onOpenAutoFocus, (event)=>{\n var _cancelRef_current;\n event.preventDefault();\n (_cancelRef_current = cancelRef.current) === null || _cancelRef_current === void 0 ? void 0 : _cancelRef_current.focus({\n preventScroll: true\n });\n }),\n onPointerDownOutside: (event)=>event.preventDefault(),\n onInteractOutside: (event)=>event.preventDefault(),\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_6__.Slottable, {\n children\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DescriptionWarning, {\n contentRef\n })\n ]\n })\n })\n });\n}, \"VgRBSpPSE2H4I20qORuFRbe0uOY=\", false, function() {\n return [\n useDialogScope,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs\n ];\n})), \"VgRBSpPSE2H4I20qORuFRbe0uOY=\", false, function() {\n return [\n useDialogScope,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs\n ];\n});\n_c7 = AlertDialogContent;\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = /*#__PURE__*/ _s5(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c8 = _s5((props, forwardedRef)=>{\n _s5();\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Title, {\n ...dialogScope,\n ...titleProps,\n ref: forwardedRef\n });\n}, \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n})), \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n});\n_c9 = AlertDialogTitle;\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = /*#__PURE__*/ _s6(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c10 = _s6((props, forwardedRef)=>{\n _s6();\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Description, {\n ...dialogScope,\n ...descriptionProps,\n ref: forwardedRef\n });\n}, \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n})), \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n});\n_c11 = AlertDialogDescription;\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = /*#__PURE__*/ _s7(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c12 = _s7((props, forwardedRef)=>{\n _s7();\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Close, {\n ...dialogScope,\n ...actionProps,\n ref: forwardedRef\n });\n}, \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n})), \"Igt0+P1lkSTpsn2+Kaw4JpohrwI=\", false, function() {\n return [\n useDialogScope\n ];\n});\n_c13 = AlertDialogAction;\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = /*#__PURE__*/ _s8(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c14 = _s8((props, forwardedRef)=>{\n _s8();\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs)(forwardedRef, cancelRef);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Close, {\n ...dialogScope,\n ...cancelProps,\n ref\n });\n}, \"ez9FFFRlK1Lb5sklgYcuczR5X3s=\", false, function() {\n return [\n useAlertDialogContentContext,\n useDialogScope,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs\n ];\n})), \"ez9FFFRlK1Lb5sklgYcuczR5X3s=\", false, function() {\n return [\n useAlertDialogContentContext,\n useDialogScope,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs\n ];\n});\n_c15 = AlertDialogCancel;\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = (param)=>{\n let { contentRef } = param;\n _s9();\n const MESSAGE = \"`\".concat(CONTENT_NAME, \"` requires a description for the component to be accessible for screen reader users.\\n\\nYou can add a description to the `\").concat(CONTENT_NAME, \"` by passing a `\").concat(DESCRIPTION_NAME, \"` component as a child, which also benefits sighted users by adding visible context to the dialog.\\n\\nAlternatively, you can use your own component as a description by assigning it an `id` and passing the same value to the `aria-describedby` prop in `\").concat(CONTENT_NAME, \"`. If the description is confusing or duplicative for sighted users, you can use the `@radix-ui/react-visually-hidden` primitive as a wrapper around your description component.\\n\\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog\");\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DescriptionWarning.useEffect\": ()=>{\n var _contentRef_current;\n const hasDescription = document.getElementById((_contentRef_current = contentRef.current) === null || _contentRef_current === void 0 ? void 0 : _contentRef_current.getAttribute(\"aria-describedby\"));\n if (!hasDescription) console.warn(MESSAGE);\n }\n }[\"DescriptionWarning.useEffect\"], [\n MESSAGE,\n contentRef\n ]);\n return null;\n};\n_s9(DescriptionWarning, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n_c16 = DescriptionWarning;\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15, _c16;\n$RefreshReg$(_c, \"AlertDialog\");\n$RefreshReg$(_c1, \"AlertDialogTrigger$React.forwardRef\");\n$RefreshReg$(_c2, \"AlertDialogTrigger\");\n$RefreshReg$(_c3, \"AlertDialogPortal\");\n$RefreshReg$(_c4, \"AlertDialogOverlay$React.forwardRef\");\n$RefreshReg$(_c5, \"AlertDialogOverlay\");\n$RefreshReg$(_c6, \"AlertDialogContent$React.forwardRef\");\n$RefreshReg$(_c7, \"AlertDialogContent\");\n$RefreshReg$(_c8, \"AlertDialogTitle$React.forwardRef\");\n$RefreshReg$(_c9, \"AlertDialogTitle\");\n$RefreshReg$(_c10, \"AlertDialogDescription$React.forwardRef\");\n$RefreshReg$(_c11, \"AlertDialogDescription\");\n$RefreshReg$(_c12, \"AlertDialogAction$React.forwardRef\");\n$RefreshReg$(_c13, \"AlertDialogAction\");\n$RefreshReg$(_c14, \"AlertDialogCancel$React.forwardRef\");\n$RefreshReg$(_c15, \"AlertDialogCancel\");\n$RefreshReg$(_c16, \"DescriptionWarning\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYWxlcnQtZGlhbG9nL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdUI7QUFDWTtBQUNIO0FBQ0M7QUFDQztBQUNHO0FBQ1g7QUFzQmpCO0FBZFQsSUFBTSxZQUFZO0FBR2xCLElBQU0sQ0FBQywwQkFBMEIsc0JBQXNCLElBQUksMkVBQWtCLENBQUMsV0FBVztJQUN2RixxRUFBaUI7Q0FDbEI7QUFDRCxJQUFNLGlCQUFpQix5RUFBaUIsQ0FBQztBQUt6QyxrQkFBZ0QsQ0FBQzs7SUFDL0MsTUFBTSxFQUFFLG9CQUFvQixHQUFHLGlCQUFpQixJQUFJO0lBQ3BELE1BQU0sNkJBQTZCLGtCQUFrQjtJQUNyRCxPQUFPLHVFQUFpQiwwREFBaEI7UUFBc0IsR0FBRztRQUFjLEdBQUc7UUFBa0IsT0FBTztJQUFBLENBQU07QUFDbkY7OztRQUZzQjs7O0tBRmhCO0FBTU4sWUFBWSxjQUFjO0FBSzFCLElBQU0sZUFBZTtBQU1yQixJQUFNLHVDQUEyQix3REFDL0IsQ0FBQyxPQUE2Qzs7SUFDNUMsTUFBTSxFQUFFLG9CQUFvQixHQUFHLGFBQWEsSUFBSTtJQUNoRCxNQUFNLDZCQUE2QixrQkFBa0I7SUFDckQsT0FBTyx1RUFBaUIsNkRBQWhCO1FBQXlCLEdBQUc7UUFBYyxHQUFHO1FBQWMsS0FBSztJQUFBLENBQWM7QUFDeEY7Ozs7OztRQUZzQjs7OztBQUt4QixtQkFBbUIsY0FBYztBQU1qQyxJQUFNLGNBQWM7QUFLcEIsd0JBQTRELENBQzFEOztJQUVBLE1BQU0sRUFBRSxvQkFBb0IsR0FBRyxZQUFZLElBQUk7SUFDL0MsTUFBTSxjQUFjLGVBQWUsa0JBQWtCO0lBQ3JELE9BQU8sdUVBQWlCLDREQUFoQjtRQUF3QixHQUFHO1FBQWMsR0FBRztJQUFBLENBQWE7QUFDbkU7Ozs7OztNQU5NO0FBUU4sa0JBQWtCLGNBQWM7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a0JBQWtCO0lBQ3JELE1BQU0sTUFBTSw2RUFBZSxDQUFDLGNBQWMsU0FBUztJQUNuRCxPQUFPLHVFQUFpQiwyREFBaEI7UUFBdUIsR0FBRztRQUFjLEdBQUc7UUFBYTtJQUFBLENBQVU7QUFDNUU7Ozs7Ozs7O1FBSndCO1FBQ0Y7UUFDUix5RUFBZTs7OztBQUsvQixrQkFBa0IsY0FBYztBQVFoQyx5QkFBOEQ7UUFBQyxFQUFFLFdBQVcsTUFBTTs7SUFDaEYsTUFBTSxVQUFVLFdBQUssWUFBWSx1SUFFRSxZQUFZLDZCQUFxQixnQkFBZ0IsaVFBRWtGLE9BQVosWUFBWTtJQUloSzt3Q0FBVTs7WUFDZCxNQUFNLGlCQUFpQixTQUFTLGdCQUM5QixpQ0FBVyxtRkFBUyxhQUFhLGtCQUFrQjtZQUVyRCxJQUFJLENBQUMsZUFBZ0IsU0FBUSxLQUFLLE9BQU87UUFDM0M7dUNBQUc7UUFBQztRQUFTLFVBQVU7S0FBQztJQUV4QixPQUFPO0FBQ1Q7O09BakJNO0FBbUJOLElBQU1BLFFBQU87QUFDYixJQUFNQyxXQUFVO0FBQ2hCLElBQU1DLFVBQVM7QUFDZixJQUFNQyxXQUFVO0FBQ2hCLElBQU1DLFdBQVU7QUFDaEIsSUFBTSxTQUFTO0FBQ2YsSUFBTSxTQUFTO0FBQ2YsSUFBTUMsU0FBUTtBQUNkLElBQU1DLGVBQWMiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9zcmMvQWxlcnREaWFsb2cudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMnO1xuaW1wb3J0ICogYXMgRGlhbG9nUHJpbWl0aXZlIGZyb20gJ0ByYWRpeC11aS9yZWFjdC1kaWFsb2cnO1xuaW1wb3J0IHsgY3JlYXRlRGlhbG9nU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZGlhbG9nJztcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSAnQHJhZGl4LXVpL3ByaW1pdGl2ZSc7XG5pbXBvcnQgeyBTbG90dGFibGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3Qtc2xvdCc7XG5cbmltcG9ydCB0eXBlIHsgU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEFsZXJ0RGlhbG9nXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFJPT1RfTkFNRSA9ICdBbGVydERpYWxvZyc7XG5cbnR5cGUgU2NvcGVkUHJvcHM8UD4gPSBQICYgeyBfX3Njb3BlQWxlcnREaWFsb2c/OiBTY29wZSB9O1xuY29uc3QgW2NyZWF0ZUFsZXJ0RGlhbG9nQ29udGV4dCwgY3JlYXRlQWxlcnREaWFsb2dTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoUk9PVF9OQU1FLCBbXG4gIGNyZWF0ZURpYWxvZ1Njb3BlLFxuXSk7XG5jb25zdCB1c2VEaWFsb2dTY29wZSA9IGNyZWF0ZURpYWxvZ1Njb3BlKCk7XG5cbnR5cGUgRGlhbG9nUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5Sb290PjtcbmludGVyZmFjZSBBbGVydERpYWxvZ1Byb3BzIGV4dGVuZHMgT21pdDxEaWFsb2dQcm9wcywgJ21vZGFsJz4ge31cblxuY29uc3QgQWxlcnREaWFsb2c6IFJlYWN0LkZDPEFsZXJ0RGlhbG9nUHJvcHM+ID0gKHByb3BzOiBTY29wZWRQcm9wczxBbGVydERpYWxvZ1Byb3BzPikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVBbGVydERpYWxvZywgLi4uYWxlcnREaWFsb2dQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGRpYWxvZ1Njb3BlID0gdXNlRGlhbG9nU2NvcGUoX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgcmV0dXJuIDxEaWFsb2dQcmltaXRpdmUuUm9vdCB7Li4uZGlhbG9nU2NvcGV9IHsuLi5hbGVydERpYWxvZ1Byb3BzfSBtb2RhbD17dHJ1ZX0gLz47XG59O1xuXG5BbGVydERpYWxvZy5kaXNwbGF5TmFtZSA9IFJPT1RfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQWxlcnREaWFsb2dUcmlnZ2VyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5jb25zdCBUUklHR0VSX05BTUUgPSAnQWxlcnREaWFsb2dUcmlnZ2VyJztcblxudHlwZSBBbGVydERpYWxvZ1RyaWdnZXJFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLlRyaWdnZXI+O1xudHlwZSBEaWFsb2dUcmlnZ2VyUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5UcmlnZ2VyPjtcbmludGVyZmFjZSBBbGVydERpYWxvZ1RyaWdnZXJQcm9wcyBleHRlbmRzIERpYWxvZ1RyaWdnZXJQcm9wcyB7fVxuXG5jb25zdCBBbGVydERpYWxvZ1RyaWdnZXIgPSBSZWFjdC5mb3J3YXJkUmVmPEFsZXJ0RGlhbG9nVHJpZ2dlckVsZW1lbnQsIEFsZXJ0RGlhbG9nVHJpZ2dlclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxBbGVydERpYWxvZ1RyaWdnZXJQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZUFsZXJ0RGlhbG9nLCAuLi50cmlnZ2VyUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpYWxvZ1Njb3BlID0gdXNlRGlhbG9nU2NvcGUoX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgICByZXR1cm4gPERpYWxvZ1ByaW1pdGl2ZS5UcmlnZ2VyIHsuLi5kaWFsb2dTY29wZX0gey4uLnRyaWdnZXJQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5BbGVydERpYWxvZ1RyaWdnZXIuZGlzcGxheU5hbWUgPSBUUklHR0VSX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEFsZXJ0RGlhbG9nUG9ydGFsXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFBPUlRBTF9OQU1FID0gJ0FsZXJ0RGlhbG9nUG9ydGFsJztcblxudHlwZSBEaWFsb2dQb3J0YWxQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLlBvcnRhbD47XG5pbnRlcmZhY2UgQWxlcnREaWFsb2dQb3J0YWxQcm9wcyBleHRlbmRzIERpYWxvZ1BvcnRhbFByb3BzIHt9XG5cbmNvbnN0IEFsZXJ0RGlhbG9nUG9ydGFsOiBSZWFjdC5GQzxBbGVydERpYWxvZ1BvcnRhbFByb3BzPiA9IChcbiAgcHJvcHM6IFNjb3BlZFByb3BzPEFsZXJ0RGlhbG9nUG9ydGFsUHJvcHM+XG4pID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlQWxlcnREaWFsb2csIC4uLnBvcnRhbFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgZGlhbG9nU2NvcGUgPSB1c2VEaWFsb2dTY29wZShfX3Njb3BlQWxlcnREaWFsb2cpO1xuICByZXR1cm4gPERpYWxvZ1ByaW1pdGl2ZS5Qb3J0YWwgey4uLmRpYWxvZ1Njb3BlfSB7Li4ucG9ydGFsUHJvcHN9IC8+O1xufTtcblxuQWxlcnREaWFsb2dQb3J0YWwuZGlzcGxheU5hbWUgPSBQT1JUQUxfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQWxlcnREaWFsb2dPdmVybGF5XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IE9WRVJMQVlfTkFNRSA9ICdBbGVydERpYWxvZ092ZXJsYXknO1xuXG50eXBlIEFsZXJ0RGlhbG9nT3ZlcmxheUVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuT3ZlcmxheT47XG50eXBlIERpYWxvZ092ZXJsYXlQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLk92ZXJsYXk+O1xuaW50ZXJmYWNlIEFsZXJ0RGlhbG9nT3ZlcmxheVByb3BzIGV4dGVuZHMgRGlhbG9nT3ZlcmxheVByb3BzIHt9XG5cbmNvbnN0IEFsZXJ0RGlhbG9nT3ZlcmxheSA9IFJlYWN0LmZvcndhcmRSZWY8QWxlcnREaWFsb2dPdmVybGF5RWxlbWVudCwgQWxlcnREaWFsb2dPdmVybGF5UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPEFsZXJ0RGlhbG9nT3ZlcmxheVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlQWxlcnREaWFsb2csIC4uLm92ZXJsYXlQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGlhbG9nU2NvcGUgPSB1c2VEaWFsb2dTY29wZShfX3Njb3BlQWxlcnREaWFsb2cpO1xuICAgIHJldHVybiA8RGlhbG9nUHJpbWl0aXZlLk92ZXJsYXkgey4uLmRpYWxvZ1Njb3BlfSB7Li4ub3ZlcmxheVByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG4gIH1cbik7XG5cbkFsZXJ0RGlhbG9nT3ZlcmxheS5kaXNwbGF5TmFtZSA9IE9WRVJMQVlfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQWxlcnREaWFsb2dDb250ZW50XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IENPTlRFTlRfTkFNRSA9ICdBbGVydERpYWxvZ0NvbnRlbnQnO1xuXG50eXBlIEFsZXJ0RGlhbG9nQ29udGVudENvbnRleHRWYWx1ZSA9IHtcbiAgY2FuY2VsUmVmOiBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PEFsZXJ0RGlhbG9nQ2FuY2VsRWxlbWVudCB8IG51bGw+O1xufTtcblxuY29uc3QgW0FsZXJ0RGlhbG9nQ29udGVudFByb3ZpZGVyLCB1c2VBbGVydERpYWxvZ0NvbnRlbnRDb250ZXh0XSA9XG4gIGNyZWF0ZUFsZXJ0RGlhbG9nQ29udGV4dDxBbGVydERpYWxvZ0NvbnRlbnRDb250ZXh0VmFsdWU+KENPTlRFTlRfTkFNRSk7XG5cbnR5cGUgQWxlcnREaWFsb2dDb250ZW50RWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5Db250ZW50PjtcbnR5cGUgRGlhbG9nQ29udGVudFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuQ29udGVudD47XG5pbnRlcmZhY2UgQWxlcnREaWFsb2dDb250ZW50UHJvcHNcbiAgZXh0ZW5kcyBPbWl0PERpYWxvZ0NvbnRlbnRQcm9wcywgJ29uUG9pbnRlckRvd25PdXRzaWRlJyB8ICdvbkludGVyYWN0T3V0c2lkZSc+IHt9XG5cbmNvbnN0IEFsZXJ0RGlhbG9nQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8QWxlcnREaWFsb2dDb250ZW50RWxlbWVudCwgQWxlcnREaWFsb2dDb250ZW50UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPEFsZXJ0RGlhbG9nQ29udGVudFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlQWxlcnREaWFsb2csIGNoaWxkcmVuLCAuLi5jb250ZW50UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpYWxvZ1Njb3BlID0gdXNlRGlhbG9nU2NvcGUoX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgICBjb25zdCBjb250ZW50UmVmID0gUmVhY3QudXNlUmVmPEFsZXJ0RGlhbG9nQ29udGVudEVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRlbnRSZWYpO1xuICAgIGNvbnN0IGNhbmNlbFJlZiA9IFJlYWN0LnVzZVJlZjxBbGVydERpYWxvZ0NhbmNlbEVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RGlhbG9nUHJpbWl0aXZlLldhcm5pbmdQcm92aWRlclxuICAgICAgICBjb250ZW50TmFtZT17Q09OVEVOVF9OQU1FfVxuICAgICAgICB0aXRsZU5hbWU9e1RJVExFX05BTUV9XG4gICAgICAgIGRvY3NTbHVnPVwiYWxlcnQtZGlhbG9nXCJcbiAgICAgID5cbiAgICAgICAgPEFsZXJ0RGlhbG9nQ29udGVudFByb3ZpZGVyIHNjb3BlPXtfX3Njb3BlQWxlcnREaWFsb2d9IGNhbmNlbFJlZj17Y2FuY2VsUmVmfT5cbiAgICAgICAgICA8RGlhbG9nUHJpbWl0aXZlLkNvbnRlbnRcbiAgICAgICAgICAgIHJvbGU9XCJhbGVydGRpYWxvZ1wiXG4gICAgICAgICAgICB7Li4uZGlhbG9nU2NvcGV9XG4gICAgICAgICAgICB7Li4uY29udGVudFByb3BzfVxuICAgICAgICAgICAgcmVmPXtjb21wb3NlZFJlZnN9XG4gICAgICAgICAgICBvbk9wZW5BdXRvRm9jdXM9e2NvbXBvc2VFdmVudEhhbmRsZXJzKGNvbnRlbnRQcm9wcy5vbk9wZW5BdXRvRm9jdXMsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjYW5jZWxSZWYuY3VycmVudD8uZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBvblBvaW50ZXJEb3duT3V0c2lkZT17KGV2ZW50KSA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpfVxuICAgICAgICAgICAgb25JbnRlcmFjdE91dHNpZGU9eyhldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7LyoqXG4gICAgICAgICAgICAgKiBXZSBoYXZlIHRvIHVzZSBgU2xvdHRhYmxlYCBoZXJlIGFzIHdlIGNhbm5vdCB3cmFwIHRoZSBgQWxlcnREaWFsb2dDb250ZW50UHJvdmlkZXJgXG4gICAgICAgICAgICAgKiBhcm91bmQgZXZlcnl0aGluZywgb3RoZXJ3aXNlIHRoZSBgRGVzY3JpcHRpb25XYXJuaW5nYCB3b3VsZCBiZSByZW5kZXJlZCBzdHJhaWdodCBhd2F5LlxuICAgICAgICAgICAgICogVGhpcyBpcyBiZWNhdXNlIHdlIHdhbnQgdGhlIGFjY2Vzc2liaWxpdHkgY2hlY2tzIHRvIHJ1biBvbmx5IG9uY2UgdGhlIGNvbnRlbnQgaXMgYWN0dWFsbHlcbiAgICAgICAgICAgICAqIG9wZW4gYW5kIHRoYXQgYmVoYXZpb3VyIGlzIGFscmVhZHkgZW5jYXBzdWxhdGVkIGluIGBEaWFsb2dDb250ZW50YC5cbiAgICAgICAgICAgICAqL31cbiAgICAgICAgICAgIDxTbG90dGFibGU+e2NoaWxkcmVufTwvU2xvdHRhYmxlPlxuICAgICAgICAgICAge3Byb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmIChcbiAgICAgICAgICAgICAgPERlc2NyaXB0aW9uV2FybmluZyBjb250ZW50UmVmPXtjb250ZW50UmVmfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0RpYWxvZ1ByaW1pdGl2ZS5Db250ZW50PlxuICAgICAgICA8L0FsZXJ0RGlhbG9nQ29udGVudFByb3ZpZGVyPlxuICAgICAgPC9EaWFsb2dQcmltaXRpdmUuV2FybmluZ1Byb3ZpZGVyPlxuICAgICk7XG4gIH1cbik7XG5cbkFsZXJ0RGlhbG9nQ29udGVudC5kaXNwbGF5TmFtZSA9IENPTlRFTlRfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQWxlcnREaWFsb2dUaXRsZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBUSVRMRV9OQU1FID0gJ0FsZXJ0RGlhbG9nVGl0bGUnO1xuXG50eXBlIEFsZXJ0RGlhbG9nVGl0bGVFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLlRpdGxlPjtcbnR5cGUgRGlhbG9nVGl0bGVQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLlRpdGxlPjtcbmludGVyZmFjZSBBbGVydERpYWxvZ1RpdGxlUHJvcHMgZXh0ZW5kcyBEaWFsb2dUaXRsZVByb3BzIHt9XG5cbmNvbnN0IEFsZXJ0RGlhbG9nVGl0bGUgPSBSZWFjdC5mb3J3YXJkUmVmPEFsZXJ0RGlhbG9nVGl0bGVFbGVtZW50LCBBbGVydERpYWxvZ1RpdGxlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPEFsZXJ0RGlhbG9nVGl0bGVQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZUFsZXJ0RGlhbG9nLCAuLi50aXRsZVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaWFsb2dTY29wZSA9IHVzZURpYWxvZ1Njb3BlKF9fc2NvcGVBbGVydERpYWxvZyk7XG4gICAgcmV0dXJuIDxEaWFsb2dQcmltaXRpdmUuVGl0bGUgey4uLmRpYWxvZ1Njb3BlfSB7Li4udGl0bGVQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5BbGVydERpYWxvZ1RpdGxlLmRpc3BsYXlOYW1lID0gVElUTEVfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQWxlcnREaWFsb2dEZXNjcmlwdGlvblxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBERVNDUklQVElPTl9OQU1FID0gJ0FsZXJ0RGlhbG9nRGVzY3JpcHRpb24nO1xuXG50eXBlIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb25FbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkRlc2NyaXB0aW9uPjtcbnR5cGUgRGlhbG9nRGVzY3JpcHRpb25Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkRlc2NyaXB0aW9uPjtcbmludGVyZmFjZSBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uUHJvcHMgZXh0ZW5kcyBEaWFsb2dEZXNjcmlwdGlvblByb3BzIHt9XG5cbmNvbnN0IEFsZXJ0RGlhbG9nRGVzY3JpcHRpb24gPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uRWxlbWVudCxcbiAgQWxlcnREaWFsb2dEZXNjcmlwdGlvblByb3BzXG4+KChwcm9wczogU2NvcGVkUHJvcHM8QWxlcnREaWFsb2dEZXNjcmlwdGlvblByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZUFsZXJ0RGlhbG9nLCAuLi5kZXNjcmlwdGlvblByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgZGlhbG9nU2NvcGUgPSB1c2VEaWFsb2dTY29wZShfX3Njb3BlQWxlcnREaWFsb2cpO1xuICByZXR1cm4gPERpYWxvZ1ByaW1pdGl2ZS5EZXNjcmlwdGlvbiB7Li4uZGlhbG9nU2NvcGV9IHsuLi5kZXNjcmlwdGlvblByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG59KTtcblxuQWxlcnREaWFsb2dEZXNjcmlwdGlvbi5kaXNwbGF5TmFtZSA9IERFU0NSSVBUSU9OX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEFsZXJ0RGlhbG9nQWN0aW9uXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IEFDVElPTl9OQU1FID0gJ0FsZXJ0RGlhbG9nQWN0aW9uJztcblxudHlwZSBBbGVydERpYWxvZ0FjdGlvbkVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuQ2xvc2U+O1xudHlwZSBEaWFsb2dDbG9zZVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuQ2xvc2U+O1xuaW50ZXJmYWNlIEFsZXJ0RGlhbG9nQWN0aW9uUHJvcHMgZXh0ZW5kcyBEaWFsb2dDbG9zZVByb3BzIHt9XG5cbmNvbnN0IEFsZXJ0RGlhbG9nQWN0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxBbGVydERpYWxvZ0FjdGlvbkVsZW1lbnQsIEFsZXJ0RGlhbG9nQWN0aW9uUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPEFsZXJ0RGlhbG9nQWN0aW9uUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVBbGVydERpYWxvZywgLi4uYWN0aW9uUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpYWxvZ1Njb3BlID0gdXNlRGlhbG9nU2NvcGUoX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgICByZXR1cm4gPERpYWxvZ1ByaW1pdGl2ZS5DbG9zZSB7Li4uZGlhbG9nU2NvcGV9IHsuLi5hY3Rpb25Qcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5BbGVydERpYWxvZ0FjdGlvbi5kaXNwbGF5TmFtZSA9IEFDVElPTl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBBbGVydERpYWxvZ0NhbmNlbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDQU5DRUxfTkFNRSA9ICdBbGVydERpYWxvZ0NhbmNlbCc7XG5cbnR5cGUgQWxlcnREaWFsb2dDYW5jZWxFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkNsb3NlPjtcbmludGVyZmFjZSBBbGVydERpYWxvZ0NhbmNlbFByb3BzIGV4dGVuZHMgRGlhbG9nQ2xvc2VQcm9wcyB7fVxuXG5jb25zdCBBbGVydERpYWxvZ0NhbmNlbCA9IFJlYWN0LmZvcndhcmRSZWY8QWxlcnREaWFsb2dDYW5jZWxFbGVtZW50LCBBbGVydERpYWxvZ0NhbmNlbFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxBbGVydERpYWxvZ0NhbmNlbFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlQWxlcnREaWFsb2csIC4uLmNhbmNlbFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCB7IGNhbmNlbFJlZiB9ID0gdXNlQWxlcnREaWFsb2dDb250ZW50Q29udGV4dChDQU5DRUxfTkFNRSwgX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgICBjb25zdCBkaWFsb2dTY29wZSA9IHVzZURpYWxvZ1Njb3BlKF9fc2NvcGVBbGVydERpYWxvZyk7XG4gICAgY29uc3QgcmVmID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgY2FuY2VsUmVmKTtcbiAgICByZXR1cm4gPERpYWxvZ1ByaW1pdGl2ZS5DbG9zZSB7Li4uZGlhbG9nU2NvcGV9IHsuLi5jYW5jZWxQcm9wc30gcmVmPXtyZWZ9IC8+O1xuICB9XG4pO1xuXG5BbGVydERpYWxvZ0NhbmNlbC5kaXNwbGF5TmFtZSA9IENBTkNFTF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbnR5cGUgRGVzY3JpcHRpb25XYXJuaW5nUHJvcHMgPSB7XG4gIGNvbnRlbnRSZWY6IFJlYWN0LlJlZk9iamVjdDxBbGVydERpYWxvZ0NvbnRlbnRFbGVtZW50IHwgbnVsbD47XG59O1xuXG5jb25zdCBEZXNjcmlwdGlvbldhcm5pbmc6IFJlYWN0LkZDPERlc2NyaXB0aW9uV2FybmluZ1Byb3BzPiA9ICh7IGNvbnRlbnRSZWYgfSkgPT4ge1xuICBjb25zdCBNRVNTQUdFID0gYFxcYCR7Q09OVEVOVF9OQU1FfVxcYCByZXF1aXJlcyBhIGRlc2NyaXB0aW9uIGZvciB0aGUgY29tcG9uZW50IHRvIGJlIGFjY2Vzc2libGUgZm9yIHNjcmVlbiByZWFkZXIgdXNlcnMuXG5cbllvdSBjYW4gYWRkIGEgZGVzY3JpcHRpb24gdG8gdGhlIFxcYCR7Q09OVEVOVF9OQU1FfVxcYCBieSBwYXNzaW5nIGEgXFxgJHtERVNDUklQVElPTl9OQU1FfVxcYCBjb21wb25lbnQgYXMgYSBjaGlsZCwgd2hpY2ggYWxzbyBiZW5lZml0cyBzaWdodGVkIHVzZXJzIGJ5IGFkZGluZyB2aXNpYmxlIGNvbnRleHQgdG8gdGhlIGRpYWxvZy5cblxuQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgeW91ciBvd24gY29tcG9uZW50IGFzIGEgZGVzY3JpcHRpb24gYnkgYXNzaWduaW5nIGl0IGFuIFxcYGlkXFxgIGFuZCBwYXNzaW5nIHRoZSBzYW1lIHZhbHVlIHRvIHRoZSBcXGBhcmlhLWRlc2NyaWJlZGJ5XFxgIHByb3AgaW4gXFxgJHtDT05URU5UX05BTUV9XFxgLiBJZiB0aGUgZGVzY3JpcHRpb24gaXMgY29uZnVzaW5nIG9yIGR1cGxpY2F0aXZlIGZvciBzaWdodGVkIHVzZXJzLCB5b3UgY2FuIHVzZSB0aGUgXFxgQHJhZGl4LXVpL3JlYWN0LXZpc3VhbGx5LWhpZGRlblxcYCBwcmltaXRpdmUgYXMgYSB3cmFwcGVyIGFyb3VuZCB5b3VyIGRlc2NyaXB0aW9uIGNvbXBvbmVudC5cblxuRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL3JhZGl4LXVpLmNvbS9wcmltaXRpdmVzL2RvY3MvY29tcG9uZW50cy9hbGVydC1kaWFsb2dgO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFzRGVzY3JpcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgIGNvbnRlbnRSZWYuY3VycmVudD8uZ2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5JykhXG4gICAgKTtcbiAgICBpZiAoIWhhc0Rlc2NyaXB0aW9uKSBjb25zb2xlLndhcm4oTUVTU0FHRSk7XG4gIH0sIFtNRVNTQUdFLCBjb250ZW50UmVmXSk7XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBSb290ID0gQWxlcnREaWFsb2c7XG5jb25zdCBUcmlnZ2VyID0gQWxlcnREaWFsb2dUcmlnZ2VyO1xuY29uc3QgUG9ydGFsID0gQWxlcnREaWFsb2dQb3J0YWw7XG5jb25zdCBPdmVybGF5ID0gQWxlcnREaWFsb2dPdmVybGF5O1xuY29uc3QgQ29udGVudCA9IEFsZXJ0RGlhbG9nQ29udGVudDtcbmNvbnN0IEFjdGlvbiA9IEFsZXJ0RGlhbG9nQWN0aW9uO1xuY29uc3QgQ2FuY2VsID0gQWxlcnREaWFsb2dDYW5jZWw7XG5jb25zdCBUaXRsZSA9IEFsZXJ0RGlhbG9nVGl0bGU7XG5jb25zdCBEZXNjcmlwdGlvbiA9IEFsZXJ0RGlhbG9nRGVzY3JpcHRpb247XG5cbmV4cG9ydCB7XG4gIGNyZWF0ZUFsZXJ0RGlhbG9nU2NvcGUsXG4gIC8vXG4gIEFsZXJ0RGlhbG9nLFxuICBBbGVydERpYWxvZ1RyaWdnZXIsXG4gIEFsZXJ0RGlhbG9nUG9ydGFsLFxuICBBbGVydERpYWxvZ092ZXJsYXksXG4gIEFsZXJ0RGlhbG9nQ29udGVudCxcbiAgQWxlcnREaWFsb2dBY3Rpb24sXG4gIEFsZXJ0RGlhbG9nQ2FuY2VsLFxuICBBbGVydERpYWxvZ1RpdGxlLFxuICBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uLFxuICAvL1xuICBSb290LFxuICBUcmlnZ2VyLFxuICBQb3J0YWwsXG4gIE92ZXJsYXksXG4gIENvbnRlbnQsXG4gIEFjdGlvbixcbiAgQ2FuY2VsLFxuICBUaXRsZSxcbiAgRGVzY3JpcHRpb24sXG59O1xuZXhwb3J0IHR5cGUge1xuICBBbGVydERpYWxvZ1Byb3BzLFxuICBBbGVydERpYWxvZ1RyaWdnZXJQcm9wcyxcbiAgQWxlcnREaWFsb2dQb3J0YWxQcm9wcyxcbiAgQWxlcnREaWFsb2dPdmVybGF5UHJvcHMsXG4gIEFsZXJ0RGlhbG9nQ29udGVudFByb3BzLFxuICBBbGVydERpYWxvZ0FjdGlvblByb3BzLFxuICBBbGVydERpYWxvZ0NhbmNlbFByb3BzLFxuICBBbGVydERpYWxvZ1RpdGxlUHJvcHMsXG4gIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb25Qcm9wcyxcbn07XG4iXSwibmFtZXMiOlsiUm9vdCIsIlRyaWdnZXIiLCJQb3J0YWwiLCJPdmVybGF5IiwiQ29udGVudCIsIlRpdGxlIiwiRGVzY3JpcHRpb24iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-alert-dialog/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs":
/*!****************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs ***!
\****************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Slot: () => (/* binding */ Slot),\n/* harmony export */ Slottable: () => (/* binding */ Slottable)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/slot/src/Slot.tsx\n\n\n\nvar Slot = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (react__WEBPACK_IMPORTED_MODULE_0__.Children.count(newElement) > 1) return react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null);\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.composeRefs)(forwardedRef, childrenRef) : childrenRef\n });\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) > 1 ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children });\n};\nfunction isSlottable(child) {\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYWxlcnQtZGlhbG9nL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2xvdC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUM0QjtBQUNUO0FBQ2xELFdBQVcsNkNBQWdCO0FBQzNCLFVBQVUseUJBQXlCO0FBQ25DLHdCQUF3QiwyQ0FBYztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSwyQ0FBYywrQkFBK0IsMkNBQWM7QUFDdkUsZUFBZSxpREFBb0I7QUFDbkMsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsMkJBQTJCLHNEQUFHLGNBQWMsMkNBQTJDLGlEQUFvQixlQUFlLCtDQUFrQiwwQ0FBMEM7QUFDdEw7QUFDQSx5QkFBeUIsc0RBQUcsY0FBYywyQ0FBMkM7QUFDckYsQ0FBQztBQUNEO0FBQ0EsZ0JBQWdCLDZDQUFnQjtBQUNoQyxVQUFVLHlCQUF5QjtBQUNuQyxNQUFNLGlEQUFvQjtBQUMxQjtBQUNBLFdBQVcsK0NBQWtCO0FBQzdCO0FBQ0E7QUFDQSwwQkFBMEIseUVBQVc7QUFDckMsS0FBSztBQUNMO0FBQ0EsU0FBUywyQ0FBYyx1QkFBdUIsMkNBQWM7QUFDNUQsQ0FBQztBQUNEO0FBQ0EsbUJBQW1CLFVBQVU7QUFDN0IseUJBQXlCLHNEQUFHLENBQUMsdURBQVEsSUFBSSxVQUFVO0FBQ25EO0FBQ0E7QUFDQSxTQUFTLGlEQUFvQjtBQUM3QjtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0NBQWtDO0FBQ2xDLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0U7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWFsZXJ0LWRpYWxvZy9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3Qvc2xvdC9zcmMvU2xvdC50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcG9zZVJlZnMgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xuaW1wb3J0IHsgRnJhZ21lbnQsIGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIFNsb3QgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgY2hpbGRyZW4sIC4uLnNsb3RQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNoaWxkcmVuQXJyYXkgPSBSZWFjdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKTtcbiAgY29uc3Qgc2xvdHRhYmxlID0gY2hpbGRyZW5BcnJheS5maW5kKGlzU2xvdHRhYmxlKTtcbiAgaWYgKHNsb3R0YWJsZSkge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBzbG90dGFibGUucHJvcHMuY2hpbGRyZW47XG4gICAgY29uc3QgbmV3Q2hpbGRyZW4gPSBjaGlsZHJlbkFycmF5Lm1hcCgoY2hpbGQpID0+IHtcbiAgICAgIGlmIChjaGlsZCA9PT0gc2xvdHRhYmxlKSB7XG4gICAgICAgIGlmIChSZWFjdC5DaGlsZHJlbi5jb3VudChuZXdFbGVtZW50KSA+IDEpIHJldHVybiBSZWFjdC5DaGlsZHJlbi5vbmx5KG51bGwpO1xuICAgICAgICByZXR1cm4gUmVhY3QuaXNWYWxpZEVsZW1lbnQobmV3RWxlbWVudCkgPyBuZXdFbGVtZW50LnByb3BzLmNoaWxkcmVuIDogbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTbG90Q2xvbmUsIHsgLi4uc2xvdFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiwgY2hpbGRyZW46IFJlYWN0LmlzVmFsaWRFbGVtZW50KG5ld0VsZW1lbnQpID8gUmVhY3QuY2xvbmVFbGVtZW50KG5ld0VsZW1lbnQsIHZvaWQgMCwgbmV3Q2hpbGRyZW4pIDogbnVsbCB9KTtcbiAgfVxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTbG90Q2xvbmUsIHsgLi4uc2xvdFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiwgY2hpbGRyZW4gfSk7XG59KTtcblNsb3QuZGlzcGxheU5hbWUgPSBcIlNsb3RcIjtcbnZhciBTbG90Q2xvbmUgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgY2hpbGRyZW4sIC4uLnNsb3RQcm9wcyB9ID0gcHJvcHM7XG4gIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICBjb25zdCBjaGlsZHJlblJlZiA9IGdldEVsZW1lbnRSZWYoY2hpbGRyZW4pO1xuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHtcbiAgICAgIC4uLm1lcmdlUHJvcHMoc2xvdFByb3BzLCBjaGlsZHJlbi5wcm9wcyksXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZWY6IGZvcndhcmRlZFJlZiA/IGNvbXBvc2VSZWZzKGZvcndhcmRlZFJlZiwgY2hpbGRyZW5SZWYpIDogY2hpbGRyZW5SZWZcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gUmVhY3QuQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMSA/IFJlYWN0LkNoaWxkcmVuLm9ubHkobnVsbCkgOiBudWxsO1xufSk7XG5TbG90Q2xvbmUuZGlzcGxheU5hbWUgPSBcIlNsb3RDbG9uZVwiO1xudmFyIFNsb3R0YWJsZSA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goRnJhZ21lbnQsIHsgY2hpbGRyZW4gfSk7XG59O1xuZnVuY3Rpb24gaXNTbG90dGFibGUoY2hpbGQpIHtcbiAgcmV0dXJuIFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSAmJiBjaGlsZC50eXBlID09PSBTbG90dGFibGU7XG59XG5mdW5jdGlvbiBtZXJnZVByb3BzKHNsb3RQcm9wcywgY2hpbGRQcm9wcykge1xuICBjb25zdCBvdmVycmlkZVByb3BzID0geyAuLi5jaGlsZFByb3BzIH07XG4gIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gY2hpbGRQcm9wcykge1xuICAgIGNvbnN0IHNsb3RQcm9wVmFsdWUgPSBzbG90UHJvcHNbcHJvcE5hbWVdO1xuICAgIGNvbnN0IGNoaWxkUHJvcFZhbHVlID0gY2hpbGRQcm9wc1twcm9wTmFtZV07XG4gICAgY29uc3QgaXNIYW5kbGVyID0gL15vbltBLVpdLy50ZXN0KHByb3BOYW1lKTtcbiAgICBpZiAoaXNIYW5kbGVyKSB7XG4gICAgICBpZiAoc2xvdFByb3BWYWx1ZSAmJiBjaGlsZFByb3BWYWx1ZSkge1xuICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgY2hpbGRQcm9wVmFsdWUoLi4uYXJncyk7XG4gICAgICAgICAgc2xvdFByb3BWYWx1ZSguLi5hcmdzKTtcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAoc2xvdFByb3BWYWx1ZSkge1xuICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IHNsb3RQcm9wVmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wTmFtZSA9PT0gXCJzdHlsZVwiKSB7XG4gICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IHsgLi4uc2xvdFByb3BWYWx1ZSwgLi4uY2hpbGRQcm9wVmFsdWUgfTtcbiAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcImNsYXNzTmFtZVwiKSB7XG4gICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IFtzbG90UHJvcFZhbHVlLCBjaGlsZFByb3BWYWx1ZV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpO1xuICAgIH1cbiAgfVxuICByZXR1cm4geyAuLi5zbG90UHJvcHMsIC4uLm92ZXJyaWRlUHJvcHMgfTtcbn1cbmZ1bmN0aW9uIGdldEVsZW1lbnRSZWYoZWxlbWVudCkge1xuICBsZXQgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LnByb3BzLCBcInJlZlwiKT8uZ2V0O1xuICBsZXQgbWF5V2FybiA9IGdldHRlciAmJiBcImlzUmVhY3RXYXJuaW5nXCIgaW4gZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZztcbiAgaWYgKG1heVdhcm4pIHtcbiAgICByZXR1cm4gZWxlbWVudC5yZWY7XG4gIH1cbiAgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LCBcInJlZlwiKT8uZ2V0O1xuICBtYXlXYXJuID0gZ2V0dGVyICYmIFwiaXNSZWFjdFdhcm5pbmdcIiBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICBpZiAobWF5V2Fybikge1xuICAgIHJldHVybiBlbGVtZW50LnByb3BzLnJlZjtcbiAgfVxuICByZXR1cm4gZWxlbWVudC5wcm9wcy5yZWYgfHwgZWxlbWVudC5yZWY7XG59XG52YXIgUm9vdCA9IFNsb3Q7XG5leHBvcnQge1xuICBSb290LFxuICBTbG90LFxuICBTbG90dGFibGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-arrow/dist/index.mjs":
/*!***********************************************************!*\
!*** ./node_modules/@radix-ui/react-arrow/dist/index.mjs ***!
\***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Arrow: () => (/* binding */ Arrow),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/arrow/src/Arrow.tsx\n\n\n\nvar NAME = \"Arrow\";\nvar Arrow = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, width = 10, height = 5, ...arrowProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.svg,\n {\n ...arrowProps,\n ref: forwardedRef,\n width,\n height,\n viewBox: \"0 0 30 10\",\n preserveAspectRatio: \"none\",\n children: props.asChild ? children : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"polygon\", { points: \"0,0 30,0 15,10\" })\n }\n );\n});\nArrow.displayName = NAME;\nvar Root = Arrow;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXJyb3cvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUN1QjtBQUNkO0FBQ3hDO0FBQ0EsWUFBWSw2Q0FBZ0I7QUFDNUIsVUFBVSxrREFBa0Q7QUFDNUQseUJBQXlCLHNEQUFHO0FBQzVCLElBQUksZ0VBQVM7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxzREFBRyxjQUFjLDBCQUEwQjtBQUN0RztBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFJRTtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXJyb3cvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvYXJyb3cvc3JjL0Fycm93LnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZVwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgTkFNRSA9IFwiQXJyb3dcIjtcbnZhciBBcnJvdyA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgd2lkdGggPSAxMCwgaGVpZ2h0ID0gNSwgLi4uYXJyb3dQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgIFByaW1pdGl2ZS5zdmcsXG4gICAge1xuICAgICAgLi4uYXJyb3dQcm9wcyxcbiAgICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICB2aWV3Qm94OiBcIjAgMCAzMCAxMFwiLFxuICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbzogXCJub25lXCIsXG4gICAgICBjaGlsZHJlbjogcHJvcHMuYXNDaGlsZCA/IGNoaWxkcmVuIDogLyogQF9fUFVSRV9fICovIGpzeChcInBvbHlnb25cIiwgeyBwb2ludHM6IFwiMCwwIDMwLDAgMTUsMTBcIiB9KVxuICAgIH1cbiAgKTtcbn0pO1xuQXJyb3cuZGlzcGxheU5hbWUgPSBOQU1FO1xudmFyIFJvb3QgPSBBcnJvdztcbmV4cG9ydCB7XG4gIEFycm93LFxuICBSb290XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-arrow/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-avatar/dist/index.mjs":
/*!************************************************************!*\
!*** ./node_modules/@radix-ui/react-avatar/dist/index.mjs ***!
\************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Avatar: () => (/* binding */ Avatar),\n/* harmony export */ AvatarFallback: () => (/* binding */ AvatarFallback),\n/* harmony export */ AvatarImage: () => (/* binding */ AvatarImage),\n/* harmony export */ Fallback: () => (/* binding */ Fallback),\n/* harmony export */ Image: () => (/* binding */ Image),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ createAvatarScope: () => (/* binding */ createAvatarScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Avatar,AvatarFallback,AvatarImage,Fallback,Image,Root,createAvatarScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n// packages/react/avatar/src/avatar.tsx\n\n\n\n\n\n\nvar AVATAR_NAME = \"Avatar\";\nvar [createAvatarContext, createAvatarScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(AVATAR_NAME);\nvar [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);\nvar Avatar = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n _s();\n const { __scopeAvatar, ...avatarProps } = props;\n const [imageLoadingStatus, setImageLoadingStatus] = react__WEBPACK_IMPORTED_MODULE_0__.useState(\"idle\");\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(AvatarProvider, {\n scope: __scopeAvatar,\n imageLoadingStatus,\n onImageLoadingStatusChange: setImageLoadingStatus,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_3__.Primitive.span, {\n ...avatarProps,\n ref: forwardedRef\n })\n });\n}, \"LArj5vvXGSJ1qfdOqtP5F0s7/3k=\")), \"LArj5vvXGSJ1qfdOqtP5F0s7/3k=\");\n_c1 = Avatar;\nAvatar.displayName = AVATAR_NAME;\nvar IMAGE_NAME = \"AvatarImage\";\nvar AvatarImage = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c2 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeAvatar, src, onLoadingStatusChange = ()=>{}, ...imageProps } = props;\n const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);\n const imageLoadingStatus = useImageLoadingStatus(src, imageProps.referrerPolicy);\n const handleLoadingStatusChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_4__.useCallbackRef)({\n \"AvatarImage.useCallbackRef[handleLoadingStatusChange]\": (status)=>{\n onLoadingStatusChange(status);\n context.onImageLoadingStatusChange(status);\n }\n }[\"AvatarImage.useCallbackRef[handleLoadingStatusChange]\"]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_5__.useLayoutEffect)({\n \"AvatarImage.useLayoutEffect\": ()=>{\n if (imageLoadingStatus !== \"idle\") {\n handleLoadingStatusChange(imageLoadingStatus);\n }\n }\n }[\"AvatarImage.useLayoutEffect\"], [\n imageLoadingStatus,\n handleLoadingStatusChange\n ]);\n return imageLoadingStatus === \"loaded\" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_3__.Primitive.img, {\n ...imageProps,\n ref: forwardedRef,\n src\n }) : null;\n}, \"pLqDpzOvi4to5gZ7rBbQ5hdybXk=\", false, function() {\n return [\n useAvatarContext,\n useImageLoadingStatus,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_4__.useCallbackRef\n ];\n})), \"pLqDpzOvi4to5gZ7rBbQ5hdybXk=\", false, function() {\n return [\n useAvatarContext,\n useImageLoadingStatus,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_4__.useCallbackRef\n ];\n});\n_c3 = AvatarImage;\nAvatarImage.displayName = IMAGE_NAME;\nvar FALLBACK_NAME = \"AvatarFallback\";\nvar AvatarFallback = /*#__PURE__*/ _s2(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c4 = _s2((props, forwardedRef)=>{\n _s2();\n const { __scopeAvatar, delayMs, ...fallbackProps } = props;\n const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);\n const [canRender, setCanRender] = react__WEBPACK_IMPORTED_MODULE_0__.useState(delayMs === void 0);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"AvatarFallback.useEffect\": ()=>{\n if (delayMs !== void 0) {\n const timerId = window.setTimeout({\n \"AvatarFallback.useEffect.timerId\": ()=>setCanRender(true)\n }[\"AvatarFallback.useEffect.timerId\"], delayMs);\n return ({\n \"AvatarFallback.useEffect\": ()=>window.clearTimeout(timerId)\n })[\"AvatarFallback.useEffect\"];\n }\n }\n }[\"AvatarFallback.useEffect\"], [\n delayMs\n ]);\n return canRender && context.imageLoadingStatus !== \"loaded\" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_3__.Primitive.span, {\n ...fallbackProps,\n ref: forwardedRef\n }) : null;\n}, \"IfNhTzYfBBOb8/Nn5G9fJj5kYTk=\", false, function() {\n return [\n useAvatarContext\n ];\n})), \"IfNhTzYfBBOb8/Nn5G9fJj5kYTk=\", false, function() {\n return [\n useAvatarContext\n ];\n});\n_c5 = AvatarFallback;\nAvatarFallback.displayName = FALLBACK_NAME;\nfunction useImageLoadingStatus(src, referrerPolicy) {\n _s3();\n const [loadingStatus, setLoadingStatus] = react__WEBPACK_IMPORTED_MODULE_0__.useState(\"idle\");\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_5__.useLayoutEffect)({\n \"useImageLoadingStatus.useLayoutEffect\": ()=>{\n if (!src) {\n setLoadingStatus(\"error\");\n return;\n }\n let isMounted = true;\n const image = new window.Image();\n const updateStatus = {\n \"useImageLoadingStatus.useLayoutEffect.updateStatus\": (status)=>({\n \"useImageLoadingStatus.useLayoutEffect.updateStatus\": ()=>{\n if (!isMounted) return;\n setLoadingStatus(status);\n }\n })[\"useImageLoadingStatus.useLayoutEffect.updateStatus\"]\n }[\"useImageLoadingStatus.useLayoutEffect.updateStatus\"];\n setLoadingStatus(\"loading\");\n image.onload = updateStatus(\"loaded\");\n image.onerror = updateStatus(\"error\");\n image.src = src;\n if (referrerPolicy) {\n image.referrerPolicy = referrerPolicy;\n }\n return ({\n \"useImageLoadingStatus.useLayoutEffect\": ()=>{\n isMounted = false;\n }\n })[\"useImageLoadingStatus.useLayoutEffect\"];\n }\n }[\"useImageLoadingStatus.useLayoutEffect\"], [\n src,\n referrerPolicy\n ]);\n return loadingStatus;\n}\n_s3(useImageLoadingStatus, \"kHtr7xNJjlthpAAUmbEbUxzkNdM=\");\nvar Root = Avatar;\nvar Image = AvatarImage;\nvar Fallback = AvatarFallback;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5;\n$RefreshReg$(_c, \"Avatar$React.forwardRef\");\n$RefreshReg$(_c1, \"Avatar\");\n$RefreshReg$(_c2, \"AvatarImage$React.forwardRef\");\n$RefreshReg$(_c3, \"AvatarImage\");\n$RefreshReg$(_c4, \"AvatarFallback$React.forwardRef\");\n$RefreshReg$(_c5, \"AvatarFallback\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXZhdGFyL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNZO0FBQ0o7QUFDQztBQUNOO0FBb0NsQjtBQTVCUixJQUFNLGNBQWM7QUFHcEIsSUFBTSxDQUFDLHFCQUFxQixpQkFBaUIsSUFBSSwyRUFBa0IsQ0FBQyxXQUFXO0FBUy9FLElBQU0sQ0FBQyxnQkFBZ0IsZ0JBQWdCLElBQUksb0JBQXdDLFdBQVc7QUFNOUYsSUFBTSwwQkFBZSxzREFDbkIsQ0FBQyxPQUFpQzs7SUFDaEMsTUFBTSxFQUFFLGVBQWUsR0FBRyxZQUFZLElBQUk7SUFDMUMsTUFBTSxDQUFDLG9CQUFvQixxQkFBcUIsSUFBVSw0Q0FBNkIsTUFBTTtJQUM3RixPQUNFLHVFQUFDO1FBQ0MsT0FBTztRQUNQO1FBQ0EsNEJBQTRCO1FBRTVCLGlGQUFDLGdFQUFTLENBQUMsTUFBVjtZQUFnQixHQUFHO1lBQWEsS0FBSztRQUFBLENBQWM7SUFBQTtBQUcxRDs7QUFHRixPQUFPLGNBQWM7QUFNckIsSUFBTSxhQUFhO0FBUW5CLElBQU0sZ0NBQW9CLHdEQUN4QixDQUFDLE9BQXNDOztJQUNyQyxNQUFNLEVBQUUsZUFBZSxLQUFLLHdCQUF3QixLQUFPLEdBQUcsR0FBRyxXQUFXLElBQUk7SUFDaEYsTUFBTSxVQUFVLGlCQUFpQixZQUFZLGFBQWE7SUFDMUQsTUFBTSwyQ0FBMkMsS0FBSyxXQUFXLGNBQWM7SUFDL0UsTUFBTSw0QkFBNEIsZ0ZBQWM7aUVBQUMsQ0FBQztZQUNoRCxzQkFBc0IsTUFBTTtZQUM1QixRQUFRLDJCQUEyQixNQUFNO1FBQzNDLENBQUM7O0lBRUQsa0ZBQWU7dUNBQUM7WUFDZCxJQUFJLHVCQUF1QixRQUFRO2dCQUNqQywwQkFBMEIsa0JBQWtCO1lBQzlDO1FBQ0Y7c0NBQUc7UUFBQztRQUFvQix5QkFBeUI7S0FBQztJQUVsRCxPQUFPLHVCQUF1QixXQUM1Qix1RUFBQyxnRUFBUyxDQUFDLEtBQVY7UUFBZSxHQUFHO1FBQVksS0FBSztRQUFjO0lBQUEsQ0FBVSxJQUMxRDtBQUNOOzs7Ozs7Ozs7UUFmNkI7UUFDTyw0RUFBYzs7OztBQWlCcEQsWUFBWSxjQUFjO0FBTTFCLElBQU0sZ0JBQWdCO0FBT3RCLElBQU0sbUNBQXVCLHdEQUMzQixDQUFDLE9BQXlDOztJQUN4QyxNQUFNLEVBQUUsZUFBZSxTQUFTLEdBQUcsY0FBYyxJQUFJO0lBQ3JELE1BQU0sMkJBQTJCLGVBQWUsYUFBYTtJQUM3RCxNQUFNLENBQUMsV0FBVyxZQUFZLElBQVUsNENBQVMsWUFBWSxNQUFTO0lBRWhFO29DQUFVO1lBQ2QsSUFBSSxZQUFZLFFBQVc7Z0JBQ3pCLE1BQU0sVUFBVSxPQUFPO3dEQUFXLElBQU0sYUFBYSxJQUFJO3VEQUFHLE9BQU87Z0JBQ25FO2dEQUFPLElBQU0sT0FBTyxhQUFhLE9BQU87O1lBQzFDO1FBQ0Y7bUNBQUc7UUFBQyxPQUFPO0tBQUM7SUFFWixPQUFPLGFBQWEsUUFBUSx1QkFBdUIsV0FDakQsdUVBQUMsZ0VBQVMsQ0FBQyxNQUFWO1FBQWdCLEdBQUc7UUFBZSxLQUFLO0lBQUEsQ0FBYyxJQUNwRDtBQUNOOzs7Ozs7UUFia0I7Ozs7QUFnQnBCLGVBQWUsY0FBYztBQUk3QiwrQkFBK0IsS0FBYyxnQkFBb0Q7O0lBQy9GLE1BQU0sQ0FBQyxlQUFlLGdCQUFnQixJQUFVLDRDQUE2QixNQUFNO0lBRW5GLGtGQUFlO2lEQUFDO1lBQ2QsSUFBSSxDQUFDLEtBQUs7Z0JBQ1IsaUJBQWlCLE9BQU87Z0JBQ3hCO1lBQ0Y7WUFFQSxJQUFJLFlBQVk7WUFDaEIsTUFBTSxRQUFRLElBQUksT0FBTyxNQUFNO1lBRS9CLE1BQU07c0VBQWUsQ0FBQzs4RUFBK0I7NEJBQ25ELElBQUksQ0FBQyxVQUFXOzRCQUNoQixpQkFBaUIsTUFBTTt3QkFDekI7OztZQUVBLGlCQUFpQixTQUFTO1lBQzFCLE1BQU0sU0FBUyxhQUFhLFFBQVE7WUFDcEMsTUFBTSxVQUFVLGFBQWEsT0FBTztZQUNwQyxNQUFNLE1BQU07WUFDWixJQUFJLGdCQUFnQjtnQkFDbEIsTUFBTSxpQkFBaUI7WUFDekI7WUFFQTt5REFBTztvQkFDTCxZQUFZO2dCQUNkOztRQUNGO2dEQUFHO1FBQUM7UUFBSyxjQUFjO0tBQUM7SUFFeEIsT0FBTztBQUNUO0lBL0JTO0FBZ0NULElBQU0sT0FBTztBQUNiLElBQU0sUUFBUTtBQUNkLElBQU0sV0FBVyIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL3NyYy9hdmF0YXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1jYWxsYmFjay1yZWYnO1xuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0JztcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBBdmF0YXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQVZBVEFSX05BTUUgPSAnQXZhdGFyJztcblxudHlwZSBTY29wZWRQcm9wczxQPiA9IFAgJiB7IF9fc2NvcGVBdmF0YXI/OiBTY29wZSB9O1xuY29uc3QgW2NyZWF0ZUF2YXRhckNvbnRleHQsIGNyZWF0ZUF2YXRhclNjb3BlXSA9IGNyZWF0ZUNvbnRleHRTY29wZShBVkFUQVJfTkFNRSk7XG5cbnR5cGUgSW1hZ2VMb2FkaW5nU3RhdHVzID0gJ2lkbGUnIHwgJ2xvYWRpbmcnIHwgJ2xvYWRlZCcgfCAnZXJyb3InO1xuXG50eXBlIEF2YXRhckNvbnRleHRWYWx1ZSA9IHtcbiAgaW1hZ2VMb2FkaW5nU3RhdHVzOiBJbWFnZUxvYWRpbmdTdGF0dXM7XG4gIG9uSW1hZ2VMb2FkaW5nU3RhdHVzQ2hhbmdlKHN0YXR1czogSW1hZ2VMb2FkaW5nU3RhdHVzKTogdm9pZDtcbn07XG5cbmNvbnN0IFtBdmF0YXJQcm92aWRlciwgdXNlQXZhdGFyQ29udGV4dF0gPSBjcmVhdGVBdmF0YXJDb250ZXh0PEF2YXRhckNvbnRleHRWYWx1ZT4oQVZBVEFSX05BTUUpO1xuXG50eXBlIEF2YXRhckVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuc3Bhbj47XG50eXBlIFByaW1pdGl2ZVNwYW5Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLnNwYW4+O1xuaW50ZXJmYWNlIEF2YXRhclByb3BzIGV4dGVuZHMgUHJpbWl0aXZlU3BhblByb3BzIHt9XG5cbmNvbnN0IEF2YXRhciA9IFJlYWN0LmZvcndhcmRSZWY8QXZhdGFyRWxlbWVudCwgQXZhdGFyUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPEF2YXRhclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlQXZhdGFyLCAuLi5hdmF0YXJQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgW2ltYWdlTG9hZGluZ1N0YXR1cywgc2V0SW1hZ2VMb2FkaW5nU3RhdHVzXSA9IFJlYWN0LnVzZVN0YXRlPEltYWdlTG9hZGluZ1N0YXR1cz4oJ2lkbGUnKTtcbiAgICByZXR1cm4gKFxuICAgICAgPEF2YXRhclByb3ZpZGVyXG4gICAgICAgIHNjb3BlPXtfX3Njb3BlQXZhdGFyfVxuICAgICAgICBpbWFnZUxvYWRpbmdTdGF0dXM9e2ltYWdlTG9hZGluZ1N0YXR1c31cbiAgICAgICAgb25JbWFnZUxvYWRpbmdTdGF0dXNDaGFuZ2U9e3NldEltYWdlTG9hZGluZ1N0YXR1c31cbiAgICAgID5cbiAgICAgICAgPFByaW1pdGl2ZS5zcGFuIHsuLi5hdmF0YXJQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+XG4gICAgICA8L0F2YXRhclByb3ZpZGVyPlxuICAgICk7XG4gIH1cbik7XG5cbkF2YXRhci5kaXNwbGF5TmFtZSA9IEFWQVRBUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBBdmF0YXJJbWFnZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBJTUFHRV9OQU1FID0gJ0F2YXRhckltYWdlJztcblxudHlwZSBBdmF0YXJJbWFnZUVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuaW1nPjtcbnR5cGUgUHJpbWl0aXZlSW1hZ2VQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmltZz47XG5pbnRlcmZhY2UgQXZhdGFySW1hZ2VQcm9wcyBleHRlbmRzIFByaW1pdGl2ZUltYWdlUHJvcHMge1xuICBvbkxvYWRpbmdTdGF0dXNDaGFuZ2U/OiAoc3RhdHVzOiBJbWFnZUxvYWRpbmdTdGF0dXMpID0+IHZvaWQ7XG59XG5cbmNvbnN0IEF2YXRhckltYWdlID0gUmVhY3QuZm9yd2FyZFJlZjxBdmF0YXJJbWFnZUVsZW1lbnQsIEF2YXRhckltYWdlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPEF2YXRhckltYWdlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVBdmF0YXIsIHNyYywgb25Mb2FkaW5nU3RhdHVzQ2hhbmdlID0gKCkgPT4ge30sIC4uLmltYWdlUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VBdmF0YXJDb250ZXh0KElNQUdFX05BTUUsIF9fc2NvcGVBdmF0YXIpO1xuICAgIGNvbnN0IGltYWdlTG9hZGluZ1N0YXR1cyA9IHVzZUltYWdlTG9hZGluZ1N0YXR1cyhzcmMsIGltYWdlUHJvcHMucmVmZXJyZXJQb2xpY3kpO1xuICAgIGNvbnN0IGhhbmRsZUxvYWRpbmdTdGF0dXNDaGFuZ2UgPSB1c2VDYWxsYmFja1JlZigoc3RhdHVzOiBJbWFnZUxvYWRpbmdTdGF0dXMpID0+IHtcbiAgICAgIG9uTG9hZGluZ1N0YXR1c0NoYW5nZShzdGF0dXMpO1xuICAgICAgY29udGV4dC5vbkltYWdlTG9hZGluZ1N0YXR1c0NoYW5nZShzdGF0dXMpO1xuICAgIH0pO1xuXG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpbWFnZUxvYWRpbmdTdGF0dXMgIT09ICdpZGxlJykge1xuICAgICAgICBoYW5kbGVMb2FkaW5nU3RhdHVzQ2hhbmdlKGltYWdlTG9hZGluZ1N0YXR1cyk7XG4gICAgICB9XG4gICAgfSwgW2ltYWdlTG9hZGluZ1N0YXR1cywgaGFuZGxlTG9hZGluZ1N0YXR1c0NoYW5nZV0pO1xuXG4gICAgcmV0dXJuIGltYWdlTG9hZGluZ1N0YXR1cyA9PT0gJ2xvYWRlZCcgPyAoXG4gICAgICA8UHJpbWl0aXZlLmltZyB7Li4uaW1hZ2VQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IHNyYz17c3JjfSAvPlxuICAgICkgOiBudWxsO1xuICB9XG4pO1xuXG5BdmF0YXJJbWFnZS5kaXNwbGF5TmFtZSA9IElNQUdFX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEF2YXRhckZhbGxiYWNrXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IEZBTExCQUNLX05BTUUgPSAnQXZhdGFyRmFsbGJhY2snO1xuXG50eXBlIEF2YXRhckZhbGxiYWNrRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5zcGFuPjtcbmludGVyZmFjZSBBdmF0YXJGYWxsYmFja1Byb3BzIGV4dGVuZHMgUHJpbWl0aXZlU3BhblByb3BzIHtcbiAgZGVsYXlNcz86IG51bWJlcjtcbn1cblxuY29uc3QgQXZhdGFyRmFsbGJhY2sgPSBSZWFjdC5mb3J3YXJkUmVmPEF2YXRhckZhbGxiYWNrRWxlbWVudCwgQXZhdGFyRmFsbGJhY2tQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8QXZhdGFyRmFsbGJhY2tQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZUF2YXRhciwgZGVsYXlNcywgLi4uZmFsbGJhY2tQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZUF2YXRhckNvbnRleHQoRkFMTEJBQ0tfTkFNRSwgX19zY29wZUF2YXRhcik7XG4gICAgY29uc3QgW2NhblJlbmRlciwgc2V0Q2FuUmVuZGVyXSA9IFJlYWN0LnVzZVN0YXRlKGRlbGF5TXMgPT09IHVuZGVmaW5lZCk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGRlbGF5TXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCB0aW1lcklkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gc2V0Q2FuUmVuZGVyKHRydWUpLCBkZWxheU1zKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXJJZCk7XG4gICAgICB9XG4gICAgfSwgW2RlbGF5TXNdKTtcblxuICAgIHJldHVybiBjYW5SZW5kZXIgJiYgY29udGV4dC5pbWFnZUxvYWRpbmdTdGF0dXMgIT09ICdsb2FkZWQnID8gKFxuICAgICAgPFByaW1pdGl2ZS5zcGFuIHsuLi5mYWxsYmFja1Byb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz5cbiAgICApIDogbnVsbDtcbiAgfVxuKTtcblxuQXZhdGFyRmFsbGJhY2suZGlzcGxheU5hbWUgPSBGQUxMQkFDS19OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmZ1bmN0aW9uIHVzZUltYWdlTG9hZGluZ1N0YXR1cyhzcmM/OiBzdHJpbmcsIHJlZmVycmVyUG9saWN5PzogUmVhY3QuSFRNTEF0dHJpYnV0ZVJlZmVycmVyUG9saWN5KSB7XG4gIGNvbnN0IFtsb2FkaW5nU3RhdHVzLCBzZXRMb2FkaW5nU3RhdHVzXSA9IFJlYWN0LnVzZVN0YXRlPEltYWdlTG9hZGluZ1N0YXR1cz4oJ2lkbGUnKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghc3JjKSB7XG4gICAgICBzZXRMb2FkaW5nU3RhdHVzKCdlcnJvcicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBpc01vdW50ZWQgPSB0cnVlO1xuICAgIGNvbnN0IGltYWdlID0gbmV3IHdpbmRvdy5JbWFnZSgpO1xuXG4gICAgY29uc3QgdXBkYXRlU3RhdHVzID0gKHN0YXR1czogSW1hZ2VMb2FkaW5nU3RhdHVzKSA9PiAoKSA9PiB7XG4gICAgICBpZiAoIWlzTW91bnRlZCkgcmV0dXJuO1xuICAgICAgc2V0TG9hZGluZ1N0YXR1cyhzdGF0dXMpO1xuICAgIH07XG5cbiAgICBzZXRMb2FkaW5nU3RhdHVzKCdsb2FkaW5nJyk7XG4gICAgaW1hZ2Uub25sb2FkID0gdXBkYXRlU3RhdHVzKCdsb2FkZWQnKTtcbiAgICBpbWFnZS5vbmVycm9yID0gdXBkYXRlU3RhdHVzKCdlcnJvcicpO1xuICAgIGltYWdlLnNyYyA9IHNyYztcbiAgICBpZiAocmVmZXJyZXJQb2xpY3kpIHtcbiAgICAgIGltYWdlLnJlZmVycmVyUG9saWN5ID0gcmVmZXJyZXJQb2xpY3k7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlzTW91bnRlZCA9IGZhbHNlO1xuICAgIH07XG4gIH0sIFtzcmMsIHJlZmVycmVyUG9saWN5XSk7XG5cbiAgcmV0dXJuIGxvYWRpbmdTdGF0dXM7XG59XG5jb25zdCBSb290ID0gQXZhdGFyO1xuY29uc3QgSW1hZ2UgPSBBdmF0YXJJbWFnZTtcbmNvbnN0IEZhbGxiYWNrID0gQXZhdGFyRmFsbGJhY2s7XG5cbmV4cG9ydCB7XG4gIGNyZWF0ZUF2YXRhclNjb3BlLFxuICAvL1xuICBBdmF0YXIsXG4gIEF2YXRhckltYWdlLFxuICBBdmF0YXJGYWxsYmFjayxcbiAgLy9cbiAgUm9vdCxcbiAgSW1hZ2UsXG4gIEZhbGxiYWNrLFxufTtcbmV4cG9ydCB0eXBlIHsgQXZhdGFyUHJvcHMsIEF2YXRhckltYWdlUHJvcHMsIEF2YXRhckZhbGxiYWNrUHJvcHMgfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-avatar/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.mjs":
/*!***************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.mjs ***!
\***************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitive: () => (/* binding */ Primitive),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ dispatchDiscreteCustomEvent: () => (/* binding */ dispatchDiscreteCustomEvent)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/primitive/src/primitive.tsx\n\n\n\n\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__.Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXZhdGFyL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUNPO0FBQ007QUFDSjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsNkNBQWdCO0FBQy9CLFlBQVksNkJBQTZCO0FBQ3pDLDJCQUEyQixzREFBSTtBQUMvQjtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsc0RBQUcsU0FBUyxzQ0FBc0M7QUFDN0UsR0FBRztBQUNILGtDQUFrQyxLQUFLO0FBQ3ZDLFdBQVc7QUFDWCxDQUFDLElBQUk7QUFDTDtBQUNBLGNBQWMsZ0RBQWtCO0FBQ2hDO0FBQ0E7QUFLRTtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXZhdGFyL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3ByaW1pdGl2ZS9zcmMvcHJpbWl0aXZlLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyBTbG90IH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1zbG90XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBOT0RFUyA9IFtcbiAgXCJhXCIsXG4gIFwiYnV0dG9uXCIsXG4gIFwiZGl2XCIsXG4gIFwiZm9ybVwiLFxuICBcImgyXCIsXG4gIFwiaDNcIixcbiAgXCJpbWdcIixcbiAgXCJpbnB1dFwiLFxuICBcImxhYmVsXCIsXG4gIFwibGlcIixcbiAgXCJuYXZcIixcbiAgXCJvbFwiLFxuICBcInBcIixcbiAgXCJzcGFuXCIsXG4gIFwic3ZnXCIsXG4gIFwidWxcIlxuXTtcbnZhciBQcmltaXRpdmUgPSBOT0RFUy5yZWR1Y2UoKHByaW1pdGl2ZSwgbm9kZSkgPT4ge1xuICBjb25zdCBOb2RlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgYXNDaGlsZCwgLi4ucHJpbWl0aXZlUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IENvbXAgPSBhc0NoaWxkID8gU2xvdCA6IG5vZGU7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHdpbmRvd1tTeW1ib2wuZm9yKFwicmFkaXgtdWlcIildID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goQ29tcCwgeyAuLi5wcmltaXRpdmVQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XG4gIH0pO1xuICBOb2RlLmRpc3BsYXlOYW1lID0gYFByaW1pdGl2ZS4ke25vZGV9YDtcbiAgcmV0dXJuIHsgLi4ucHJpbWl0aXZlLCBbbm9kZV06IE5vZGUgfTtcbn0sIHt9KTtcbmZ1bmN0aW9uIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCh0YXJnZXQsIGV2ZW50KSB7XG4gIGlmICh0YXJnZXQpIFJlYWN0RE9NLmZsdXNoU3luYygoKSA9PiB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCkpO1xufVxudmFyIFJvb3QgPSBQcmltaXRpdmU7XG5leHBvcnQge1xuICBQcmltaXRpdmUsXG4gIFJvb3QsXG4gIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-checkbox/dist/index.mjs":
/*!**************************************************************!*\
!*** ./node_modules/@radix-ui/react-checkbox/dist/index.mjs ***!
\**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Checkbox: () => (/* binding */ Checkbox),\n/* harmony export */ CheckboxIndicator: () => (/* binding */ CheckboxIndicator),\n/* harmony export */ Indicator: () => (/* binding */ Indicator),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ createCheckboxScope: () => (/* binding */ createCheckboxScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_previous__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-use-previous */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-previous/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-use-size */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-size/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Checkbox,CheckboxIndicator,Indicator,Root,createCheckboxScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$();\n// packages/react/checkbox/src/checkbox.tsx\n\n\n\n\n\n\n\n\n\n\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n _s();\n const { __scopeCheckbox, name, checked: checkedProp, defaultChecked, required, disabled, value = \"on\", onCheckedChange, form, ...checkboxProps } = props;\n const [button, setButton] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, {\n \"Checkbox.useComposedRefs[composedRefs]\": (node)=>setButton(node)\n }[\"Checkbox.useComposedRefs[composedRefs]\"]);\n const hasConsumerStoppedPropagationRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState)({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(checked);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"Checkbox.useEffect\": ()=>{\n const form2 = button === null || button === void 0 ? void 0 : button.form;\n if (form2) {\n const reset = {\n \"Checkbox.useEffect.reset\": ()=>setChecked(initialCheckedStateRef.current)\n }[\"Checkbox.useEffect.reset\"];\n form2.addEventListener(\"reset\", reset);\n return ({\n \"Checkbox.useEffect\": ()=>form2.removeEventListener(\"reset\", reset)\n })[\"Checkbox.useEffect\"];\n }\n }\n }[\"Checkbox.useEffect\"], [\n button,\n setChecked\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(CheckboxProvider, {\n scope: __scopeCheckbox,\n state: checked,\n disabled,\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.button, {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_6__.composeEventHandlers)(props.onKeyDown, (event)=>{\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_6__.composeEventHandlers)(props.onClick, (event)=>{\n setChecked((prevChecked)=>isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }),\n isFormControl && /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(BubbleInput, {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: {\n transform: \"translateX(-100%)\"\n },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n })\n ]\n });\n}, \"HJ7dP5YP8ZIfh0duK3mH4F1Xfsk=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState\n ];\n})), \"HJ7dP5YP8ZIfh0duK3mH4F1Xfsk=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState\n ];\n});\n_c1 = Checkbox;\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c2 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_7__.Presence, {\n present: forceMount || isIndeterminate(context.state) || context.state === true,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.span, {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: {\n pointerEvents: \"none\",\n ...props.style\n }\n })\n });\n}, \"XPZjzIIZHUbC5kJgI5B/JOzmD9c=\", false, function() {\n return [\n useCheckboxContext\n ];\n})), \"XPZjzIIZHUbC5kJgI5B/JOzmD9c=\", false, function() {\n return [\n useCheckboxContext\n ];\n});\n_c3 = CheckboxIndicator;\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props)=>{\n _s2();\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const prevChecked = (0,_radix_ui_react_use_previous__WEBPACK_IMPORTED_MODULE_8__.usePrevious)(checked);\n const controlSize = (0,_radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_9__.useSize)(control);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"BubbleInput.useEffect\": ()=>{\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", {\n bubbles\n });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }\n }[\"BubbleInput.useEffect\"], [\n prevChecked,\n checked,\n bubbles\n ]);\n const defaultCheckedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"input\", {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n });\n};\n_s2(BubbleInput, \"QRvIDgojkl5Y0XVCSbKojHYRvPw=\", false, function() {\n return [\n _radix_ui_react_use_previous__WEBPACK_IMPORTED_MODULE_8__.usePrevious,\n _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_9__.useSize\n ];\n});\n_c4 = BubbleInput;\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4;\n$RefreshReg$(_c, \"Checkbox$React.forwardRef\");\n$RefreshReg$(_c1, \"Checkbox\");\n$RefreshReg$(_c2, \"CheckboxIndicator$React.forwardRef\");\n$RefreshReg$(_c3, \"CheckboxIndicator\");\n$RefreshReg$(_c4, \"BubbleInput\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY2hlY2tib3gvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdUI7QUFDUztBQUNHO0FBQ0U7QUFDQTtBQUNUO0FBQ0o7QUFDQztBQUNDO0FBbUVwQjtBQTNETixJQUFNLGdCQUFnQjtBQUd0QixJQUFNLENBQUMsdUJBQXVCLG1CQUFtQixJQUFJLDJFQUFrQixDQUFDLGFBQWE7QUFTckYsSUFBTSxDQUFDLGtCQUFrQixrQkFBa0IsSUFDekMsc0JBQTRDLGFBQWE7QUFXM0QsSUFBTSw0QkFBaUIsc0RBQ3JCLENBQUMsT0FBbUM7O0lBQ2xDLE1BQU0sRUFDSixpQkFDQSxNQUNBLFNBQVMsYUFDVCxnQkFDQSxVQUNBLFVBQ0EsUUFBUSxNQUNSLGlCQUNBLE1BQ0EsR0FBRyxlQUNMLEdBQUk7SUFDSixNQUFNLENBQUMsUUFBUSxTQUFTLElBQVUsNENBQW1DLElBQUk7SUFDekUsTUFBTSxlQUFlLDZFQUFlLENBQUM7a0RBQWMsQ0FBQyxPQUFTLFVBQVUsSUFBSSxDQUFDOztJQUM1RSxNQUFNLG1DQUF5QywwQ0FBTyxLQUFLO0lBRTNELE1BQU0sZ0JBQWdCLFNBQVMsUUFBUSxDQUFDLENBQUMsT0FBTyxRQUFRLE1BQU0sSUFBSTtJQUNsRSxNQUFNLENBQUMsVUFBVSxPQUFPLFVBQVUsaUdBQXlCO1FBQ3pELE1BQU07UUFDTixhQUFhO1FBQ2IsVUFBVTtJQUNaLENBQUM7SUFDRCxNQUFNLHlCQUErQiwwQ0FBTyxPQUFPO0lBQzdDOzhCQUFVO1lBQ2QsTUFBTUEsd0RBQU8sT0FBUTtZQUNyQixJQUFJQSxPQUFNO2dCQUNSLE1BQU07Z0RBQVEsSUFBTSxXQUFXLHVCQUF1QixPQUFPOztnQkFDN0RBLE1BQUssaUJBQWlCLFNBQVMsS0FBSztnQkFDcEM7MENBQU8sSUFBTUEsTUFBSyxvQkFBb0IsU0FBUyxLQUFLOztZQUN0RDtRQUNGOzZCQUFH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O1FBQ0osVUFBVTtRQUNWO1FBQ0EsT0FBTztZQUNMLEdBQUcsTUFBTTtZQUNULEdBQUc7WUFDSCxVQUFVO1lBQ1YsZUFBZTtZQUNmLFNBQVM7WUFDVCxRQUFRO1FBQ1Y7SUFBQTtBQUdOOzs7UUFyQ3NCLHFFQUFXO1FBQ1gsNkRBQU87OztNQUp2QjtBQTBDTixTQUFTLGdCQUFnQixTQUFvRDtJQUMzRSxPQUFPLFlBQVk7QUFDckI7QUFFQSxTQUFTLFNBQVMsU0FBdUI7SUFDdkMsT0FBTyxnQkFBZ0IsT0FBTyxJQUFJLGtCQUFrQixVQUFVLFlBQVk7QUFDNUU7QUFFQSxJQUFNLE9BQU87QUFDYixJQUFNLFlBQVkiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9zcmMvY2hlY2tib3gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tICdAcmFkaXgtdWkvcHJpbWl0aXZlJztcbmltcG9ydCB7IHVzZUNvbnRyb2xsYWJsZVN0YXRlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1jb250cm9sbGFibGUtc3RhdGUnO1xuaW1wb3J0IHsgdXNlUHJldmlvdXMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLXByZXZpb3VzJztcbmltcG9ydCB7IHVzZVNpemUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLXNpemUnO1xuaW1wb3J0IHsgUHJlc2VuY2UgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2UnO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5cbmltcG9ydCB0eXBlIHsgU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIENoZWNrYm94XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IENIRUNLQk9YX05BTUUgPSAnQ2hlY2tib3gnO1xuXG50eXBlIFNjb3BlZFByb3BzPFA+ID0gUCAmIHsgX19zY29wZUNoZWNrYm94PzogU2NvcGUgfTtcbmNvbnN0IFtjcmVhdGVDaGVja2JveENvbnRleHQsIGNyZWF0ZUNoZWNrYm94U2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKENIRUNLQk9YX05BTUUpO1xuXG50eXBlIENoZWNrZWRTdGF0ZSA9IGJvb2xlYW4gfCAnaW5kZXRlcm1pbmF0ZSc7XG5cbnR5cGUgQ2hlY2tib3hDb250ZXh0VmFsdWUgPSB7XG4gIHN0YXRlOiBDaGVja2VkU3RhdGU7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IFtDaGVja2JveFByb3ZpZGVyLCB1c2VDaGVja2JveENvbnRleHRdID1cbiAgY3JlYXRlQ2hlY2tib3hDb250ZXh0PENoZWNrYm94Q29udGV4dFZhbHVlPihDSEVDS0JPWF9OQU1FKTtcblxudHlwZSBDaGVja2JveEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuYnV0dG9uPjtcbnR5cGUgUHJpbWl0aXZlQnV0dG9uUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5idXR0b24+O1xuaW50ZXJmYWNlIENoZWNrYm94UHJvcHMgZXh0ZW5kcyBPbWl0PFByaW1pdGl2ZUJ1dHRvblByb3BzLCAnY2hlY2tlZCcgfCAnZGVmYXVsdENoZWNrZWQnPiB7XG4gIGNoZWNrZWQ/OiBDaGVja2VkU3RhdGU7XG4gIGRlZmF1bHRDaGVja2VkPzogQ2hlY2tlZFN0YXRlO1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIG9uQ2hlY2tlZENoYW5nZT8oY2hlY2tlZDogQ2hlY2tlZFN0YXRlKTogdm9pZDtcbn1cblxuY29uc3QgQ2hlY2tib3ggPSBSZWFjdC5mb3J3YXJkUmVmPENoZWNrYm94RWxlbWVudCwgQ2hlY2tib3hQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8Q2hlY2tib3hQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIF9fc2NvcGVDaGVja2JveCxcbiAgICAgIG5hbWUsXG4gICAgICBjaGVja2VkOiBjaGVja2VkUHJvcCxcbiAgICAgIGRlZmF1bHRDaGVja2VkLFxuICAgICAgcmVxdWlyZWQsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIHZhbHVlID0gJ29uJyxcbiAgICAgIG9uQ2hlY2tlZENoYW5nZSxcbiAgICAgIGZvcm0sXG4gICAgICAuLi5jaGVja2JveFByb3BzXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtidXR0b24sIHNldEJ1dHRvbl0gPSBSZWFjdC51c2VTdGF0ZTxIVE1MQnV0dG9uRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIChub2RlKSA9PiBzZXRCdXR0b24obm9kZSkpO1xuICAgIGNvbnN0IGhhc0NvbnN1bWVyU3RvcHBlZFByb3BhZ2F0aW9uUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICAvLyBXZSBzZXQgdGhpcyB0byB0cnVlIGJ5IGRlZmF1bHQgc28gdGhhdCBldmVudHMgYnViYmxlIHRvIGZvcm1zIHdpdGhvdXQgSlMgKFNTUilcbiAgICBjb25zdCBpc0Zvcm1Db250cm9sID0gYnV0dG9uID8gZm9ybSB8fCAhIWJ1dHRvbi5jbG9zZXN0KCdmb3JtJykgOiB0cnVlO1xuICAgIGNvbnN0IFtjaGVja2VkID0gZmFsc2UsIHNldENoZWNrZWRdID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgICAgcHJvcDogY2hlY2tlZFByb3AsXG4gICAgICBkZWZhdWx0UHJvcDogZGVmYXVsdENoZWNrZWQsXG4gICAgICBvbkNoYW5nZTogb25DaGVja2VkQ2hhbmdlLFxuICAgIH0pO1xuICAgIGNvbnN0IGluaXRpYWxDaGVja2VkU3RhdGVSZWYgPSBSZWFjdC51c2VSZWYoY2hlY2tlZCk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGZvcm0gPSBidXR0b24/LmZvcm07XG4gICAgICBpZiAoZm9ybSkge1xuICAgICAgICBjb25zdCByZXNldCA9ICgpID0+IHNldENoZWNrZWQoaW5pdGlhbENoZWNrZWRTdGF0ZVJlZi5jdXJyZW50KTtcbiAgICAgICAgZm9ybS5hZGRFdmVudExpc3RlbmVyKCdyZXNldCcsIHJlc2V0KTtcbiAgICAgICAgcmV0dXJuICgpID0+IGZvcm0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzZXQnLCByZXNldCk7XG4gICAgICB9XG4gICAgfSwgW2J1dHRvbiwgc2V0Q2hlY2tlZF0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxDaGVja2JveFByb3ZpZGVyIHNjb3BlPXtfX3Njb3BlQ2hlY2tib3h9IHN0YXRlPXtjaGVja2VkfSBkaXNhYmxlZD17ZGlzYWJsZWR9PlxuICAgICAgICA8UHJpbWl0aXZlLmJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJvbGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgYXJpYS1jaGVja2VkPXtpc0luZGV0ZXJtaW5hdGUoY2hlY2tlZCkgPyAnbWl4ZWQnIDogY2hlY2tlZH1cbiAgICAgICAgICBhcmlhLXJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRTdGF0ZShjaGVja2VkKX1cbiAgICAgICAgICBkYXRhLWRpc2FibGVkPXtkaXNhYmxlZCA/ICcnIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgey4uLmNoZWNrYm94UHJvcHN9XG4gICAgICAgICAgcmVmPXtjb21wb3NlZFJlZnN9XG4gICAgICAgICAgb25LZXlEb3duPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgLy8gQWNjb3JkaW5nIHRvIFdBSSBBUklBLCBDaGVja2JveGVzIGRvbid0IGFjdGl2YXRlIG9uIGVudGVyIGtleXByZXNzXG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH0pfVxuICAgICAgICAgIG9uQ2xpY2s9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQ2xpY2ssIChldmVudCkgPT4ge1xuICAgICAgICAgICAgc2V0Q2hlY2tlZCgocHJldkNoZWNrZWQpID0+IChpc0luZGV0ZXJtaW5hdGUocHJldkNoZWNrZWQpID8gdHJ1ZSA6ICFwcmV2Q2hlY2tlZCkpO1xuICAgICAgICAgICAgaWYgKGlzRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgaGFzQ29uc3VtZXJTdG9wcGVkUHJvcGFnYXRpb25SZWYuY3VycmVudCA9IGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7XG4gICAgICAgICAgICAgIC8vIGlmIGNoZWNrYm94IGlzIGluIGEgZm9ybSwgc3RvcCBwcm9wYWdhdGlvbiBmcm9tIHRoZSBidXR0b24gc28gdGhhdCB3ZSBvbmx5IHByb3BhZ2F0ZVxuICAgICAgICAgICAgICAvLyBvbmUgY2xpY2sgZXZlbnQgKGZyb20gdGhlIGlucHV0KS4gV2UgcHJvcGFnYXRlIGNoYW5nZXMgZnJvbSBhbiBpbnB1dCBzbyB0aGF0IG5hdGl2ZVxuICAgICAgICAgICAgICAvLyBmb3JtIHZhbGlkYXRpb24gd29ya3MgYW5kIGZvcm0gZXZlbnRzIHJlZmxlY3QgY2hlY2tib3ggdXBkYXRlcy5cbiAgICAgICAgICAgICAgaWYgKCFoYXNDb25zdW1lclN0b3BwZWRQcm9wYWdhdGlvblJlZi5jdXJyZW50KSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KX1cbiAgICAgICAgLz5cbiAgICAgICAge2lzRm9ybUNvbnRyb2wgJiYgKFxuICAgICAgICAgIDxCdWJibGVJbnB1dFxuICAgICAgICAgICAgY29udHJvbD17YnV0dG9ufVxuICAgICAgICAgICAgYnViYmxlcz17IWhhc0NvbnN1bWVyU3RvcHBlZFByb3BhZ2F0aW9uUmVmLmN1cnJlbnR9XG4gICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgY2hlY2tlZD17Y2hlY2tlZH1cbiAgICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGZvcm09e2Zvcm19XG4gICAgICAgICAgICAvLyBXZSB0cmFuc2Zvcm0gYmVjYXVzZSB0aGUgaW5wdXQgaXMgYWJzb2x1dGVseSBwb3NpdGlvbmVkIGJ1dCB3ZSBoYXZlXG4gICAgICAgICAgICAvLyByZW5kZXJlZCBpdCAqKmFmdGVyKiogdGhlIGJ1dHRvbi4gVGhpcyBwdWxscyBpdCBiYWNrIHRvIHNpdCBvbiB0b3BcbiAgICAgICAgICAgIC8vIG9mIHRoZSBidXR0b24uXG4gICAgICAgICAgICBzdHlsZT17eyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC0xMDAlKScgfX1cbiAgICAgICAgICAgIGRlZmF1bHRDaGVja2VkPXtpc0luZGV0ZXJtaW5hdGUoZGVmYXVsdENoZWNrZWQpID8gZmFsc2UgOiBkZWZhdWx0Q2hlY2tlZH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9DaGVja2JveFByb3ZpZGVyPlxuICAgICk7XG4gIH1cbik7XG5cbkNoZWNrYm94LmRpc3BsYXlOYW1lID0gQ0hFQ0tCT1hfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQ2hlY2tib3hJbmRpY2F0b3JcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgSU5ESUNBVE9SX05BTUUgPSAnQ2hlY2tib3hJbmRpY2F0b3InO1xuXG50eXBlIENoZWNrYm94SW5kaWNhdG9yRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5zcGFuPjtcbnR5cGUgUHJpbWl0aXZlU3BhblByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuc3Bhbj47XG5pbnRlcmZhY2UgQ2hlY2tib3hJbmRpY2F0b3JQcm9wcyBleHRlbmRzIFByaW1pdGl2ZVNwYW5Qcm9wcyB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBDaGVja2JveEluZGljYXRvciA9IFJlYWN0LmZvcndhcmRSZWY8Q2hlY2tib3hJbmRpY2F0b3JFbGVtZW50LCBDaGVja2JveEluZGljYXRvclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxDaGVja2JveEluZGljYXRvclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlQ2hlY2tib3gsIGZvcmNlTW91bnQsIC4uLmluZGljYXRvclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlQ2hlY2tib3hDb250ZXh0KElORElDQVRPUl9OQU1FLCBfX3Njb3BlQ2hlY2tib3gpO1xuICAgIHJldHVybiAoXG4gICAgICA8UHJlc2VuY2UgcHJlc2VudD17Zm9yY2VNb3VudCB8fCBpc0luZGV0ZXJtaW5hdGUoY29udGV4dC5zdGF0ZSkgfHwgY29udGV4dC5zdGF0ZSA9PT0gdHJ1ZX0+XG4gICAgICAgIDxQcmltaXRpdmUuc3BhblxuICAgICAgICAgIGRhdGEtc3RhdGU9e2dldFN0YXRlKGNvbnRleHQuc3RhdGUpfVxuICAgICAgICAgIGRhdGEtZGlzYWJsZWQ9e2NvbnRleHQuZGlzYWJsZWQgPyAnJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICB7Li4uaW5kaWNhdG9yUHJvcHN9XG4gICAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgICAgc3R5bGU9e3sgcG9pbnRlckV2ZW50czogJ25vbmUnLCAuLi5wcm9wcy5zdHlsZSB9fVxuICAgICAgICAvPlxuICAgICAgPC9QcmVzZW5jZT5cbiAgICApO1xuICB9XG4pO1xuXG5DaGVja2JveEluZGljYXRvci5kaXNwbGF5TmFtZSA9IElORElDQVRPUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbnR5cGUgSW5wdXRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjwnaW5wdXQnPjtcbmludGVyZmFjZSBCdWJibGVJbnB1dFByb3BzIGV4dGVuZHMgT21pdDxJbnB1dFByb3BzLCAnY2hlY2tlZCc+IHtcbiAgY2hlY2tlZDogQ2hlY2tlZFN0YXRlO1xuICBjb250cm9sOiBIVE1MRWxlbWVudCB8IG51bGw7XG4gIGJ1YmJsZXM6IGJvb2xlYW47XG59XG5cbmNvbnN0IEJ1YmJsZUlucHV0ID0gKHByb3BzOiBCdWJibGVJbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udHJvbCwgY2hlY2tlZCwgYnViYmxlcyA9IHRydWUsIGRlZmF1bHRDaGVja2VkLCAuLi5pbnB1dFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBwcmV2Q2hlY2tlZCA9IHVzZVByZXZpb3VzKGNoZWNrZWQpO1xuICBjb25zdCBjb250cm9sU2l6ZSA9IHVzZVNpemUoY29udHJvbCk7XG5cbiAgLy8gQnViYmxlIGNoZWNrZWQgY2hhbmdlIHRvIHBhcmVudHMgKGUuZyBmb3JtIGNoYW5nZSBldmVudClcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHJlZi5jdXJyZW50ITtcbiAgICBjb25zdCBpbnB1dFByb3RvID0gd2luZG93LkhUTUxJbnB1dEVsZW1lbnQucHJvdG90eXBlO1xuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGlucHV0UHJvdG8sICdjaGVja2VkJykgYXMgUHJvcGVydHlEZXNjcmlwdG9yO1xuICAgIGNvbnN0IHNldENoZWNrZWQgPSBkZXNjcmlwdG9yLnNldDtcblxuICAgIGlmIChwcmV2Q2hlY2tlZCAhPT0gY2hlY2tlZCAmJiBzZXRDaGVja2VkKSB7XG4gICAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudCgnY2xpY2snLCB7IGJ1YmJsZXMgfSk7XG4gICAgICBpbnB1dC5pbmRldGVybWluYXRlID0gaXNJbmRldGVybWluYXRlKGNoZWNrZWQpO1xuICAgICAgc2V0Q2hlY2tlZC5jYWxsKGlucHV0LCBpc0luZGV0ZXJtaW5hdGUoY2hlY2tlZCkgPyBmYWxzZSA6IGNoZWNrZWQpO1xuICAgICAgaW5wdXQuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gICAgfVxuICB9LCBbcHJldkNoZWNrZWQsIGNoZWNrZWQsIGJ1YmJsZXNdKTtcblxuICBjb25zdCBkZWZhdWx0Q2hlY2tlZFJlZiA9IFJlYWN0LnVzZVJlZihpc0luZGV0ZXJtaW5hdGUoY2hlY2tlZCkgPyBmYWxzZSA6IGNoZWNrZWQpO1xuICByZXR1cm4gKFxuICAgIDxpbnB1dFxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgIGFyaWEtaGlkZGVuXG4gICAgICBkZWZhdWx0Q2hlY2tlZD17ZGVmYXVsdENoZWNrZWQgPz8gZGVmYXVsdENoZWNrZWRSZWYuY3VycmVudH1cbiAgICAgIHsuLi5pbnB1dFByb3BzfVxuICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgcmVmPXtyZWZ9XG4gICAgICBzdHlsZT17e1xuICAgICAgICAuLi5wcm9wcy5zdHlsZSxcbiAgICAgICAgLi4uY29udHJvbFNpemUsXG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIG1hcmdpbjogMCxcbiAgICAgIH19XG4gICAgLz5cbiAgKTtcbn07XG5cbmZ1bmN0aW9uIGlzSW5kZXRlcm1pbmF0ZShjaGVja2VkPzogQ2hlY2tlZFN0YXRlKTogY2hlY2tlZCBpcyAnaW5kZXRlcm1pbmF0ZScge1xuICByZXR1cm4gY2hlY2tlZCA9PT0gJ2luZGV0ZXJtaW5hdGUnO1xufVxuXG5mdW5jdGlvbiBnZXRTdGF0ZShjaGVja2VkOiBDaGVja2VkU3RhdGUpIHtcbiAgcmV0dXJuIGlzSW5kZXRlcm1pbmF0ZShjaGVja2VkKSA/ICdpbmRldGVybWluYXRlJyA6IGNoZWNrZWQgPyAnY2hlY2tlZCcgOiAndW5jaGVja2VkJztcbn1cblxuY29uc3QgUm9vdCA9IENoZWNrYm94O1xuY29uc3QgSW5kaWNhdG9yID0gQ2hlY2tib3hJbmRpY2F0b3I7XG5cbmV4cG9ydCB7XG4gIGNyZWF0ZUNoZWNrYm94U2NvcGUsXG4gIC8vXG4gIENoZWNrYm94LFxuICBDaGVja2JveEluZGljYXRvcixcbiAgLy9cbiAgUm9vdCxcbiAgSW5kaWNhdG9yLFxufTtcbmV4cG9ydCB0eXBlIHsgQ2hlY2tib3hQcm9wcywgQ2hlY2tib3hJbmRpY2F0b3JQcm9wcywgQ2hlY2tlZFN0YXRlIH07XG4iXSwibmFtZXMiOlsiZm9ybSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-checkbox/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-primitive/dist/index.mjs":
/*!*****************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-primitive/dist/index.mjs ***!
\*****************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitive: () => (/* binding */ Primitive),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ dispatchDiscreteCustomEvent: () => (/* binding */ dispatchDiscreteCustomEvent)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/primitive/src/primitive.tsx\n\n\n\n\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__.Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY2hlY2tib3gvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQytCO0FBQ087QUFDTTtBQUNKO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSw2Q0FBZ0I7QUFDL0IsWUFBWSw2QkFBNkI7QUFDekMsMkJBQTJCLHNEQUFJO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixzREFBRyxTQUFTLHNDQUFzQztBQUM3RSxHQUFHO0FBQ0gsa0NBQWtDLEtBQUs7QUFDdkMsV0FBVztBQUNYLENBQUMsSUFBSTtBQUNMO0FBQ0EsY0FBYyxnREFBa0I7QUFDaEM7QUFDQTtBQUtFO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1jaGVja2JveC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZS9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9wcmltaXRpdmUvc3JjL3ByaW1pdGl2ZS50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgU2xvdCB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtc2xvdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgTk9ERVMgPSBbXG4gIFwiYVwiLFxuICBcImJ1dHRvblwiLFxuICBcImRpdlwiLFxuICBcImZvcm1cIixcbiAgXCJoMlwiLFxuICBcImgzXCIsXG4gIFwiaW1nXCIsXG4gIFwiaW5wdXRcIixcbiAgXCJsYWJlbFwiLFxuICBcImxpXCIsXG4gIFwibmF2XCIsXG4gIFwib2xcIixcbiAgXCJwXCIsXG4gIFwic3BhblwiLFxuICBcInN2Z1wiLFxuICBcInVsXCJcbl07XG52YXIgUHJpbWl0aXZlID0gTk9ERVMucmVkdWNlKChwcmltaXRpdmUsIG5vZGUpID0+IHtcbiAgY29uc3QgTm9kZSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IGFzQ2hpbGQsIC4uLnByaW1pdGl2ZVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBDb21wID0gYXNDaGlsZCA/IFNsb3QgOiBub2RlO1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICB3aW5kb3dbU3ltYm9sLmZvcihcInJhZGl4LXVpXCIpXSA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KENvbXAsIHsgLi4ucHJpbWl0aXZlUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xuICB9KTtcbiAgTm9kZS5kaXNwbGF5TmFtZSA9IGBQcmltaXRpdmUuJHtub2RlfWA7XG4gIHJldHVybiB7IC4uLnByaW1pdGl2ZSwgW25vZGVdOiBOb2RlIH07XG59LCB7fSk7XG5mdW5jdGlvbiBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQodGFyZ2V0LCBldmVudCkge1xuICBpZiAodGFyZ2V0KSBSZWFjdERPTS5mbHVzaFN5bmMoKCkgPT4gdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpKTtcbn1cbnZhciBSb290ID0gUHJpbWl0aXZlO1xuZXhwb3J0IHtcbiAgUHJpbWl0aXZlLFxuICBSb290LFxuICBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnRcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-primitive/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-collection/dist/index.mjs":
/*!****************************************************************!*\
!*** ./node_modules/@radix-ui/react-collection/dist/index.mjs ***!
\****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createCollection: () => (/* binding */ createCollection)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ createCollection auto */ // packages/react/collection/src/Collection.tsx\n\n\n\n\n\nfunction createCollection(name) {\n var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, {\n collectionRef: {\n current: null\n },\n itemMap: /* @__PURE__ */ new Map()\n });\n const CollectionProvider = (props)=>{\n _s();\n const { scope, children } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const itemMap = react__WEBPACK_IMPORTED_MODULE_0__.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(CollectionProviderImpl, {\n scope,\n itemMap,\n collectionRef: ref,\n children\n });\n };\n _s(CollectionProvider, \"i9R1RY532Tsw7syarXwOonBpwXM=\");\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s1((props, forwardedRef)=>{\n _s1();\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__.Slot, {\n ref: composedRefs,\n children\n });\n }, \"5JQ4uy78XLW8WM+YuDpNgF/JIVs=\", false, function() {\n return [\n useCollectionContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n }));\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s2((props, forwardedRef)=>{\n _s2();\n const { scope, children, ...itemData } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"createCollection.CollectionItemSlot.useEffect\": ()=>{\n context.itemMap.set(ref, {\n ref,\n ...itemData\n });\n return ({\n \"createCollection.CollectionItemSlot.useEffect\": ()=>void context.itemMap.delete(ref)\n })[\"createCollection.CollectionItemSlot.useEffect\"];\n }\n }[\"createCollection.CollectionItemSlot.useEffect\"]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__.Slot, {\n ...{\n [ITEM_DATA_ATTR]: \"\"\n },\n ref: composedRefs,\n children\n });\n }, \"eauD3DgWC2VdU7voCXLDR4PeA+k=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n useCollectionContext\n ];\n }));\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n _s3();\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"createCollection.useCollection.useCallback[getItems]\": ()=>{\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(\"[\".concat(ITEM_DATA_ATTR, \"]\")));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort({\n \"createCollection.useCollection.useCallback[getItems].orderedItems\": (a, b)=>orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n }[\"createCollection.useCollection.useCallback[getItems].orderedItems\"]);\n return orderedItems;\n }\n }[\"createCollection.useCollection.useCallback[getItems]\"], [\n context.collectionRef,\n context.itemMap\n ]);\n return getItems;\n }\n _s3(useCollection, \"jCyvzZFUzVDqeEjq0R8vi6mUa78=\", false, function() {\n return [\n useCollectionContext\n ];\n });\n return [\n {\n Provider: CollectionProvider,\n Slot: CollectionSlot,\n ItemSlot: CollectionItemSlot\n },\n useCollection,\n createCollectionScope\n ];\n}\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29sbGVjdGlvbi9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQWtCO0FBQ2lCO0FBQ0g7QUFDWDtBQXVDZjtBQTFCTixTQUFTLGlCQUFpRSxNQUFjOztJQUt0RixNQUFNLGdCQUFnQixPQUFPO0lBQzdCLE1BQU0sQ0FBQyx5QkFBeUIscUJBQXFCLElBQUksMkVBQWtCLENBQUMsYUFBYTtJQVV6RixNQUFNLENBQUMsd0JBQXdCLG9CQUFvQixJQUFJLHdCQUNyRCxlQUNBO1FBQUUsZUFBZTtZQUFFLFNBQVM7UUFBSztRQUFHLFNBQVMsb0JBQUksSUFBSTtJQUFFO0lBR3pELDJCQUFpRixDQUFDOztRQUNoRixNQUFNLEVBQUUsT0FBTyxTQUFTLElBQUk7UUFDNUIsTUFBTSxNQUFNLHlDQUFNLENBQTBCLElBQUk7UUFDaEQsTUFBTSxVQUFVLHlDQUFNLENBQWdDLG9CQUFJLElBQUksQ0FBQyxFQUFFO1FBQ2pFLE9BQ0UsdUVBQUM7WUFBdUI7WUFBYztZQUFrQixlQUFlO1lBQ3BFO1FBQUEsQ0FDSDtJQUVKO09BVE07SUFXTixtQkFBbUIsY0FBYztJQU1qQyxNQUFNLHVCQUF1QixPQUFPO0lBRXBDLE1BQU0sK0JBQWlCLDZDQUFNLEtBQzNCLENBQUMsT0FBTzs7UUFDTixNQUFNLEVBQUUsT0FBTyxTQUFTLElBQUk7UUFDNUIsTUFBTSwrQkFBK0Isc0JBQXNCLEtBQUs7UUFDaEUsTUFBTSxlQUFlLDZFQUFlLENBQUMsY0FBYyxRQUFRLGFBQWE7UUFDeEUsT0FBTyx1RUFBQyxzREFBSSxFQUFKO1lBQUssS0FBSztZQUFlO1FBQUEsQ0FBUztJQUM1Qzs7WUFIa0I7WUFDSyx5RUFBZTs7O0lBS3hDLGVBQWUsY0FBYztJQU03QixNQUFNLGlCQUFpQixPQUFPO0lBQzlCLE1BQU0saUJBQWlCO0lBT3ZCLE1BQU0sbUNBQXFCLDZDQUFNLEtBQy9CLENBQUMsT0FBTzs7UUFDTixNQUFNLEVBQUUsT0FBTyxVQUFVLEdBQUcsU0FBUyxJQUFJO1FBQ3pDLE1BQU0sTUFBTSx5Q0FBTSxDQUFvQixJQUFJO1FBQzFDLE1BQU0sZUFBZSw2RUFBZSxDQUFDLGNBQWMsR0FBRztRQUN0RCxNQUFNLCtCQUErQixnQkFBZ0IsS0FBSztRQUUxRCw0Q0FBTTs2REFBVTtnQkFDZCxRQUFRLFFBQVEsSUFBSSxLQUFLO29CQUFFO29CQUFLLEdBQUk7Z0JBQWlDLENBQUM7Z0JBQ3RFO3FFQUFPLElBQU0sS0FBSyxRQUFRLFFBQVEsT0FBTyxHQUFHOztZQUM5QyxDQUFDOztRQUVELE9BQ0UsdUVBQUMsc0RBQUksRUFBSjtZQUFNLEdBQUc7Z0JBQUUsQ0FBQyxjQUFjLEdBQUc7WUFBRztZQUFHLEtBQUs7WUFDdEM7UUFBQSxDQUNIO0lBRUo7O1lBYnVCLHlFQUFlO1lBQ3BCOzs7SUFlcEIsbUJBQW1CLGNBQWM7SUFNakMsdUJBQXVCLE9BQVk7O1FBQ2pDLE1BQU0sK0JBQStCLE9BQU8sc0JBQXNCLEtBQUs7UUFFdkUsTUFBTSxXQUFXLDhDQUFNO29FQUFZO2dCQUNqQyxNQUFNLGlCQUFpQixRQUFRLGNBQWM7Z0JBQzdDLElBQUksQ0FBQyxlQUFnQixRQUFPLENBQUM7Z0JBQzdCLE1BQU0sZUFBZSxNQUFNLEtBQUssZUFBZSxpQkFBaUIsSUFBa0IsT0FBZCxjQUFjLElBQUcsQ0FBQztnQkFDdEYsTUFBTSxRQUFRLE1BQU0sS0FBSyxRQUFRLFFBQVEsT0FBTyxDQUFDO2dCQUNqRCxNQUFNLGVBQWUsTUFBTTt5RkFDekIsQ0FBQyxHQUFHLElBQU0sYUFBYSxRQUFRLEVBQUUsSUFBSSxPQUFRLElBQUksYUFBYSxRQUFRLEVBQUUsSUFBSSxPQUFROztnQkFFdEYsT0FBTztZQUNUO21FQUFHO1lBQUMsUUFBUTtZQUFlLFFBQVEsT0FBTztTQUFDO1FBRTNDLE9BQU87SUFDVDtRQWZTOztZQUNTOzs7SUFnQmxCLE9BQU87UUFDTDtZQUFFLFVBQVU7WUFBb0IsTUFBTTtZQUFnQixVQUFVO1FBQW1CO1FBQ25GO1FBQ0E7S0FDRjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vc3JjL0NvbGxlY3Rpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IFNsb3QgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3Qtc2xvdCc7XG5cbnR5cGUgU2xvdFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBTbG90PjtcbnR5cGUgQ29sbGVjdGlvbkVsZW1lbnQgPSBIVE1MRWxlbWVudDtcbmludGVyZmFjZSBDb2xsZWN0aW9uUHJvcHMgZXh0ZW5kcyBTbG90UHJvcHMge1xuICBzY29wZTogYW55O1xufVxuXG4vLyBXZSBoYXZlIHJlc29ydGVkIHRvIHJldHVybmluZyBzbG90cyBkaXJlY3RseSByYXRoZXIgdGhhbiBleHBvc2luZyBwcmltaXRpdmVzIHRoYXQgY2FuIHRoZW5cbi8vIGJlIHNsb3R0ZWQgbGlrZSBgPENvbGxlY3Rpb25JdGVtIGFzPXtTbG90fT7igKY8L0NvbGxlY3Rpb25JdGVtPmAuXG4vLyBUaGlzIGlzIGJlY2F1c2Ugd2UgZW5jb3VudGVyZWQgaXNzdWVzIHdpdGggZ2VuZXJpYyB0eXBlcyB0aGF0IGNhbm5vdCBiZSBzdGF0aWNhbGx5IGFuYWx5c2VkXG4vLyBkdWUgdG8gY3JlYXRpbmcgdGhlbSBkeW5hbWljYWxseSB2aWEgY3JlYXRlQ29sbGVjdGlvbi5cblxuZnVuY3Rpb24gY3JlYXRlQ29sbGVjdGlvbjxJdGVtRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50LCBJdGVtRGF0YSA9IHt9PihuYW1lOiBzdHJpbmcpIHtcbiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQ29sbGVjdGlvblByb3ZpZGVyXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgY29uc3QgUFJPVklERVJfTkFNRSA9IG5hbWUgKyAnQ29sbGVjdGlvblByb3ZpZGVyJztcbiAgY29uc3QgW2NyZWF0ZUNvbGxlY3Rpb25Db250ZXh0LCBjcmVhdGVDb2xsZWN0aW9uU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFBST1ZJREVSX05BTUUpO1xuXG4gIHR5cGUgQ29udGV4dFZhbHVlID0ge1xuICAgIGNvbGxlY3Rpb25SZWY6IFJlYWN0LlJlZk9iamVjdDxDb2xsZWN0aW9uRWxlbWVudCB8IG51bGw+O1xuICAgIGl0ZW1NYXA6IE1hcDxcbiAgICAgIFJlYWN0LlJlZk9iamVjdDxJdGVtRWxlbWVudCB8IG51bGw+LFxuICAgICAgeyByZWY6IFJlYWN0LlJlZk9iamVjdDxJdGVtRWxlbWVudCB8IG51bGw+IH0gJiBJdGVtRGF0YVxuICAgID47XG4gIH07XG5cbiAgY29uc3QgW0NvbGxlY3Rpb25Qcm92aWRlckltcGwsIHVzZUNvbGxlY3Rpb25Db250ZXh0XSA9IGNyZWF0ZUNvbGxlY3Rpb25Db250ZXh0PENvbnRleHRWYWx1ZT4oXG4gICAgUFJPVklERVJfTkFNRSxcbiAgICB7IGNvbGxlY3Rpb25SZWY6IHsgY3VycmVudDogbnVsbCB9LCBpdGVtTWFwOiBuZXcgTWFwKCkgfVxuICApO1xuXG4gIGNvbnN0IENvbGxlY3Rpb25Qcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTsgc2NvcGU6IGFueSB9PiA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgc2NvcGUsIGNoaWxkcmVuIH0gPSBwcm9wcztcbiAgICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWY8Q29sbGVjdGlvbkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGl0ZW1NYXAgPSBSZWFjdC51c2VSZWY8Q29udGV4dFZhbHVlWydpdGVtTWFwJ10+KG5ldyBNYXAoKSkuY3VycmVudDtcbiAgICByZXR1cm4gKFxuICAgICAgPENvbGxlY3Rpb25Qcm92aWRlckltcGwgc2NvcGU9e3Njb3BlfSBpdGVtTWFwPXtpdGVtTWFwfSBjb2xsZWN0aW9uUmVmPXtyZWZ9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0NvbGxlY3Rpb25Qcm92aWRlckltcGw+XG4gICAgKTtcbiAgfTtcblxuICBDb2xsZWN0aW9uUHJvdmlkZXIuZGlzcGxheU5hbWUgPSBQUk9WSURFUl9OQU1FO1xuXG4gIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIENvbGxlY3Rpb25TbG90XG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgY29uc3QgQ09MTEVDVElPTl9TTE9UX05BTUUgPSBuYW1lICsgJ0NvbGxlY3Rpb25TbG90JztcblxuICBjb25zdCBDb2xsZWN0aW9uU2xvdCA9IFJlYWN0LmZvcndhcmRSZWY8Q29sbGVjdGlvbkVsZW1lbnQsIENvbGxlY3Rpb25Qcm9wcz4oXG4gICAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICAgIGNvbnN0IHsgc2NvcGUsIGNoaWxkcmVuIH0gPSBwcm9wcztcbiAgICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDb2xsZWN0aW9uQ29udGV4dChDT0xMRUNUSU9OX1NMT1RfTkFNRSwgc2NvcGUpO1xuICAgICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgY29udGV4dC5jb2xsZWN0aW9uUmVmKTtcbiAgICAgIHJldHVybiA8U2xvdCByZWY9e2NvbXBvc2VkUmVmc30+e2NoaWxkcmVufTwvU2xvdD47XG4gICAgfVxuICApO1xuXG4gIENvbGxlY3Rpb25TbG90LmRpc3BsYXlOYW1lID0gQ09MTEVDVElPTl9TTE9UX05BTUU7XG5cbiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQ29sbGVjdGlvbkl0ZW1cbiAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICBjb25zdCBJVEVNX1NMT1RfTkFNRSA9IG5hbWUgKyAnQ29sbGVjdGlvbkl0ZW1TbG90JztcbiAgY29uc3QgSVRFTV9EQVRBX0FUVFIgPSAnZGF0YS1yYWRpeC1jb2xsZWN0aW9uLWl0ZW0nO1xuXG4gIHR5cGUgQ29sbGVjdGlvbkl0ZW1TbG90UHJvcHMgPSBJdGVtRGF0YSAmIHtcbiAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICAgIHNjb3BlOiBhbnk7XG4gIH07XG5cbiAgY29uc3QgQ29sbGVjdGlvbkl0ZW1TbG90ID0gUmVhY3QuZm9yd2FyZFJlZjxJdGVtRWxlbWVudCwgQ29sbGVjdGlvbkl0ZW1TbG90UHJvcHM+KFxuICAgIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgICBjb25zdCB7IHNjb3BlLCBjaGlsZHJlbiwgLi4uaXRlbURhdGEgfSA9IHByb3BzO1xuICAgICAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPEl0ZW1FbGVtZW50PihudWxsKTtcbiAgICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG4gICAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29sbGVjdGlvbkNvbnRleHQoSVRFTV9TTE9UX05BTUUsIHNjb3BlKTtcblxuICAgICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29udGV4dC5pdGVtTWFwLnNldChyZWYsIHsgcmVmLCAuLi4oaXRlbURhdGEgYXMgdW5rbm93biBhcyBJdGVtRGF0YSkgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB2b2lkIGNvbnRleHQuaXRlbU1hcC5kZWxldGUocmVmKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U2xvdCB7Li4ueyBbSVRFTV9EQVRBX0FUVFJdOiAnJyB9fSByZWY9e2NvbXBvc2VkUmVmc30+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1Nsb3Q+XG4gICAgICApO1xuICAgIH1cbiAgKTtcblxuICBDb2xsZWN0aW9uSXRlbVNsb3QuZGlzcGxheU5hbWUgPSBJVEVNX1NMT1RfTkFNRTtcblxuICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiB1c2VDb2xsZWN0aW9uXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgZnVuY3Rpb24gdXNlQ29sbGVjdGlvbihzY29wZTogYW55KSB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZUNvbGxlY3Rpb25Db250ZXh0KG5hbWUgKyAnQ29sbGVjdGlvbkNvbnN1bWVyJywgc2NvcGUpO1xuXG4gICAgY29uc3QgZ2V0SXRlbXMgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBjb2xsZWN0aW9uTm9kZSA9IGNvbnRleHQuY29sbGVjdGlvblJlZi5jdXJyZW50O1xuICAgICAgaWYgKCFjb2xsZWN0aW9uTm9kZSkgcmV0dXJuIFtdO1xuICAgICAgY29uc3Qgb3JkZXJlZE5vZGVzID0gQXJyYXkuZnJvbShjb2xsZWN0aW9uTm9kZS5xdWVyeVNlbGVjdG9yQWxsKGBbJHtJVEVNX0RBVEFfQVRUUn1dYCkpO1xuICAgICAgY29uc3QgaXRlbXMgPSBBcnJheS5mcm9tKGNvbnRleHQuaXRlbU1hcC52YWx1ZXMoKSk7XG4gICAgICBjb25zdCBvcmRlcmVkSXRlbXMgPSBpdGVtcy5zb3J0KFxuICAgICAgICAoYSwgYikgPT4gb3JkZXJlZE5vZGVzLmluZGV4T2YoYS5yZWYuY3VycmVudCEpIC0gb3JkZXJlZE5vZGVzLmluZGV4T2YoYi5yZWYuY3VycmVudCEpXG4gICAgICApO1xuICAgICAgcmV0dXJuIG9yZGVyZWRJdGVtcztcbiAgICB9LCBbY29udGV4dC5jb2xsZWN0aW9uUmVmLCBjb250ZXh0Lml0ZW1NYXBdKTtcblxuICAgIHJldHVybiBnZXRJdGVtcztcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgeyBQcm92aWRlcjogQ29sbGVjdGlvblByb3ZpZGVyLCBTbG90OiBDb2xsZWN0aW9uU2xvdCwgSXRlbVNsb3Q6IENvbGxlY3Rpb25JdGVtU2xvdCB9LFxuICAgIHVzZUNvbGxlY3Rpb24sXG4gICAgY3JlYXRlQ29sbGVjdGlvblNjb3BlLFxuICBdIGFzIGNvbnN0O1xufVxuXG5leHBvcnQgeyBjcmVhdGVDb2xsZWN0aW9uIH07XG5leHBvcnQgdHlwZSB7IENvbGxlY3Rpb25Qcm9wcyB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-collection/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot/dist/index.mjs":
/*!**************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot/dist/index.mjs ***!
\**************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Slot: () => (/* binding */ Slot),\n/* harmony export */ Slottable: () => (/* binding */ Slottable)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/slot/src/Slot.tsx\n\n\n\nvar Slot = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (react__WEBPACK_IMPORTED_MODULE_0__.Children.count(newElement) > 1) return react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null);\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.composeRefs)(forwardedRef, childrenRef) : childrenRef\n });\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) > 1 ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children });\n};\nfunction isSlottable(child) {\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29sbGVjdGlvbi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDK0I7QUFDNEI7QUFDVDtBQUNsRCxXQUFXLDZDQUFnQjtBQUMzQixVQUFVLHlCQUF5QjtBQUNuQyx3QkFBd0IsMkNBQWM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksMkNBQWMsK0JBQStCLDJDQUFjO0FBQ3ZFLGVBQWUsaURBQW9CO0FBQ25DLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMLDJCQUEyQixzREFBRyxjQUFjLDJDQUEyQyxpREFBb0IsZUFBZSwrQ0FBa0IsMENBQTBDO0FBQ3RMO0FBQ0EseUJBQXlCLHNEQUFHLGNBQWMsMkNBQTJDO0FBQ3JGLENBQUM7QUFDRDtBQUNBLGdCQUFnQiw2Q0FBZ0I7QUFDaEMsVUFBVSx5QkFBeUI7QUFDbkMsTUFBTSxpREFBb0I7QUFDMUI7QUFDQSxXQUFXLCtDQUFrQjtBQUM3QjtBQUNBO0FBQ0EsMEJBQTBCLHlFQUFXO0FBQ3JDLEtBQUs7QUFDTDtBQUNBLFNBQVMsMkNBQWMsdUJBQXVCLDJDQUFjO0FBQzVELENBQUM7QUFDRDtBQUNBLG1CQUFtQixVQUFVO0FBQzdCLHlCQUF5QixzREFBRyxDQUFDLHVEQUFRLElBQUksVUFBVTtBQUNuRDtBQUNBO0FBQ0EsU0FBUyxpREFBb0I7QUFDN0I7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTtBQUNOLGtDQUFrQztBQUNsQyxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtFO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1jb2xsZWN0aW9uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2xvdC9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9zbG90L3NyYy9TbG90LnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjb21wb3NlUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XG5pbXBvcnQgeyBGcmFnbWVudCwganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgU2xvdCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgLi4uc2xvdFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgY2hpbGRyZW5BcnJheSA9IFJlYWN0LkNoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pO1xuICBjb25zdCBzbG90dGFibGUgPSBjaGlsZHJlbkFycmF5LmZpbmQoaXNTbG90dGFibGUpO1xuICBpZiAoc2xvdHRhYmxlKSB7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHNsb3R0YWJsZS5wcm9wcy5jaGlsZHJlbjtcbiAgICBjb25zdCBuZXdDaGlsZHJlbiA9IGNoaWxkcmVuQXJyYXkubWFwKChjaGlsZCkgPT4ge1xuICAgICAgaWYgKGNoaWxkID09PSBzbG90dGFibGUpIHtcbiAgICAgICAgaWYgKFJlYWN0LkNoaWxkcmVuLmNvdW50KG5ld0VsZW1lbnQpID4gMSkgcmV0dXJuIFJlYWN0LkNoaWxkcmVuLm9ubHkobnVsbCk7XG4gICAgICAgIHJldHVybiBSZWFjdC5pc1ZhbGlkRWxlbWVudChuZXdFbGVtZW50KSA/IG5ld0VsZW1lbnQucHJvcHMuY2hpbGRyZW4gOiBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFNsb3RDbG9uZSwgeyAuLi5zbG90UHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmLCBjaGlsZHJlbjogUmVhY3QuaXNWYWxpZEVsZW1lbnQobmV3RWxlbWVudCkgPyBSZWFjdC5jbG9uZUVsZW1lbnQobmV3RWxlbWVudCwgdm9pZCAwLCBuZXdDaGlsZHJlbikgOiBudWxsIH0pO1xuICB9XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFNsb3RDbG9uZSwgeyAuLi5zbG90UHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmLCBjaGlsZHJlbiB9KTtcbn0pO1xuU2xvdC5kaXNwbGF5TmFtZSA9IFwiU2xvdFwiO1xudmFyIFNsb3RDbG9uZSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgLi4uc2xvdFByb3BzIH0gPSBwcm9wcztcbiAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSkge1xuICAgIGNvbnN0IGNoaWxkcmVuUmVmID0gZ2V0RWxlbWVudFJlZihjaGlsZHJlbik7XG4gICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZHJlbiwge1xuICAgICAgLi4ubWVyZ2VQcm9wcyhzbG90UHJvcHMsIGNoaWxkcmVuLnByb3BzKSxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJlZjogZm9yd2FyZGVkUmVmID8gY29tcG9zZVJlZnMoZm9yd2FyZGVkUmVmLCBjaGlsZHJlblJlZikgOiBjaGlsZHJlblJlZlxuICAgIH0pO1xuICB9XG4gIHJldHVybiBSZWFjdC5DaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAxID8gUmVhY3QuQ2hpbGRyZW4ub25seShudWxsKSA6IG51bGw7XG59KTtcblNsb3RDbG9uZS5kaXNwbGF5TmFtZSA9IFwiU2xvdENsb25lXCI7XG52YXIgU2xvdHRhYmxlID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChGcmFnbWVudCwgeyBjaGlsZHJlbiB9KTtcbn07XG5mdW5jdGlvbiBpc1Nsb3R0YWJsZShjaGlsZCkge1xuICByZXR1cm4gUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpICYmIGNoaWxkLnR5cGUgPT09IFNsb3R0YWJsZTtcbn1cbmZ1bmN0aW9uIG1lcmdlUHJvcHMoc2xvdFByb3BzLCBjaGlsZFByb3BzKSB7XG4gIGNvbnN0IG92ZXJyaWRlUHJvcHMgPSB7IC4uLmNoaWxkUHJvcHMgfTtcbiAgZm9yIChjb25zdCBwcm9wTmFtZSBpbiBjaGlsZFByb3BzKSB7XG4gICAgY29uc3Qgc2xvdFByb3BWYWx1ZSA9IHNsb3RQcm9wc1twcm9wTmFtZV07XG4gICAgY29uc3QgY2hpbGRQcm9wVmFsdWUgPSBjaGlsZFByb3BzW3Byb3BOYW1lXTtcbiAgICBjb25zdCBpc0hhbmRsZXIgPSAvXm9uW0EtWl0vLnRlc3QocHJvcE5hbWUpO1xuICAgIGlmIChpc0hhbmRsZXIpIHtcbiAgICAgIGlmIChzbG90UHJvcFZhbHVlICYmIGNoaWxkUHJvcFZhbHVlKSB7XG4gICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICBjaGlsZFByb3BWYWx1ZSguLi5hcmdzKTtcbiAgICAgICAgICBzbG90UHJvcFZhbHVlKC4uLmFyZ3MpO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChzbG90UHJvcFZhbHVlKSB7XG4gICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gc2xvdFByb3BWYWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcInN0eWxlXCIpIHtcbiAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0geyAuLi5zbG90UHJvcFZhbHVlLCAuLi5jaGlsZFByb3BWYWx1ZSB9O1xuICAgIH0gZWxzZSBpZiAocHJvcE5hbWUgPT09IFwiY2xhc3NOYW1lXCIpIHtcbiAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gW3Nsb3RQcm9wVmFsdWUsIGNoaWxkUHJvcFZhbHVlXS5maWx0ZXIoQm9vbGVhbikuam9pbihcIiBcIik7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IC4uLnNsb3RQcm9wcywgLi4ub3ZlcnJpZGVQcm9wcyB9O1xufVxuZnVuY3Rpb24gZ2V0RWxlbWVudFJlZihlbGVtZW50KSB7XG4gIGxldCBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQucHJvcHMsIFwicmVmXCIpPy5nZXQ7XG4gIGxldCBtYXlXYXJuID0gZ2V0dGVyICYmIFwiaXNSZWFjdFdhcm5pbmdcIiBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICBpZiAobWF5V2Fybikge1xuICAgIHJldHVybiBlbGVtZW50LnJlZjtcbiAgfVxuICBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQsIFwicmVmXCIpPy5nZXQ7XG4gIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gIGlmIChtYXlXYXJuKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmO1xuICB9XG4gIHJldHVybiBlbGVtZW50LnByb3BzLnJlZiB8fCBlbGVtZW50LnJlZjtcbn1cbnZhciBSb290ID0gU2xvdDtcbmV4cG9ydCB7XG4gIFJvb3QsXG4gIFNsb3QsXG4gIFNsb3R0YWJsZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs":
/*!******************************************************************!*\
!*** ./node_modules/@radix-ui/react-compose-refs/dist/index.mjs ***!
\******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ composeRefs: () => (/* binding */ composeRefs),\n/* harmony export */ useComposedRefs: () => (/* binding */ useComposedRefs)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n// packages/react/compose-refs/src/composeRefs.tsx\n\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return react__WEBPACK_IMPORTED_MODULE_0__.useCallback(composeRefs(...refs), refs);\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQytCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLHdCQUF3QixxQkFBcUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLDhDQUFpQjtBQUMxQjtBQUlFO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvY29tcG9zZS1yZWZzL3NyYy9jb21wb3NlUmVmcy50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gc2V0UmVmKHJlZiwgdmFsdWUpIHtcbiAgaWYgKHR5cGVvZiByZWYgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiByZWYodmFsdWUpO1xuICB9IGVsc2UgaWYgKHJlZiAhPT0gbnVsbCAmJiByZWYgIT09IHZvaWQgMCkge1xuICAgIHJlZi5jdXJyZW50ID0gdmFsdWU7XG4gIH1cbn1cbmZ1bmN0aW9uIGNvbXBvc2VSZWZzKC4uLnJlZnMpIHtcbiAgcmV0dXJuIChub2RlKSA9PiB7XG4gICAgbGV0IGhhc0NsZWFudXAgPSBmYWxzZTtcbiAgICBjb25zdCBjbGVhbnVwcyA9IHJlZnMubWFwKChyZWYpID0+IHtcbiAgICAgIGNvbnN0IGNsZWFudXAgPSBzZXRSZWYocmVmLCBub2RlKTtcbiAgICAgIGlmICghaGFzQ2xlYW51cCAmJiB0eXBlb2YgY2xlYW51cCA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgaGFzQ2xlYW51cCA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2xlYW51cDtcbiAgICB9KTtcbiAgICBpZiAoaGFzQ2xlYW51cCkge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbGVhbnVwcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IGNsZWFudXAgPSBjbGVhbnVwc1tpXTtcbiAgICAgICAgICBpZiAodHlwZW9mIGNsZWFudXAgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFJlZihyZWZzW2ldLCBudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9O1xufVxuZnVuY3Rpb24gdXNlQ29tcG9zZWRSZWZzKC4uLnJlZnMpIHtcbiAgcmV0dXJuIFJlYWN0LnVzZUNhbGxiYWNrKGNvbXBvc2VSZWZzKC4uLnJlZnMpLCByZWZzKTtcbn1cbmV4cG9ydCB7XG4gIGNvbXBvc2VSZWZzLFxuICB1c2VDb21wb3NlZFJlZnNcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs":
/*!*************************************************************!*\
!*** ./node_modules/@radix-ui/react-context/dist/index.mjs ***!
\*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createContext: () => (/* binding */ createContext2),\n/* harmony export */ createContextScope: () => (/* binding */ createContextScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/context/src/createContext.tsx\n\n\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29udGV4dC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDK0I7QUFDUztBQUN4QztBQUNBLGtCQUFrQixnREFBbUI7QUFDckM7QUFDQSxZQUFZLHVCQUF1QjtBQUNuQyxrQkFBa0IsMENBQWE7QUFDL0IsMkJBQTJCLHNEQUFHLHFCQUFxQixpQkFBaUI7QUFDcEU7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDZDQUFnQjtBQUNwQztBQUNBO0FBQ0EseUJBQXlCLGFBQWEsMkJBQTJCLGtCQUFrQjtBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0RBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBLGNBQWMsOEJBQThCO0FBQzVDO0FBQ0Esb0JBQW9CLDBDQUFhO0FBQ2pDLDZCQUE2QixzREFBRyxxQkFBcUIsaUJBQWlCO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDZDQUFnQjtBQUN0QztBQUNBO0FBQ0EsMkJBQTJCLGFBQWEsMkJBQTJCLGtCQUFrQjtBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxnREFBbUI7QUFDaEMsS0FBSztBQUNMO0FBQ0E7QUFDQSxhQUFhLDBDQUFhO0FBQzFCLGlCQUFpQixXQUFXLFVBQVUsTUFBTSxtQ0FBbUM7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLDJEQUEyRCxxQkFBcUI7QUFDaEY7QUFDQSxrREFBa0QsVUFBVTtBQUM1RCxpQkFBaUI7QUFDakIsT0FBTyxJQUFJO0FBQ1gsYUFBYSwwQ0FBYSxVQUFVLFdBQVcsb0JBQW9CLGdCQUFnQjtBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUU7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvY29udGV4dC9zcmMvY3JlYXRlQ29udGV4dC50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5mdW5jdGlvbiBjcmVhdGVDb250ZXh0Mihyb290Q29tcG9uZW50TmFtZSwgZGVmYXVsdENvbnRleHQpIHtcbiAgY29uc3QgQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoZGVmYXVsdENvbnRleHQpO1xuICBjb25zdCBQcm92aWRlciA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIC4uLmNvbnRleHQgfSA9IHByb3BzO1xuICAgIGNvbnN0IHZhbHVlID0gUmVhY3QudXNlTWVtbygoKSA9PiBjb250ZXh0LCBPYmplY3QudmFsdWVzKGNvbnRleHQpKTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlLCBjaGlsZHJlbiB9KTtcbiAgfTtcbiAgUHJvdmlkZXIuZGlzcGxheU5hbWUgPSByb290Q29tcG9uZW50TmFtZSArIFwiUHJvdmlkZXJcIjtcbiAgZnVuY3Rpb24gdXNlQ29udGV4dDIoY29uc3VtZXJOYW1lKSB7XG4gICAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoQ29udGV4dCk7XG4gICAgaWYgKGNvbnRleHQpIHJldHVybiBjb250ZXh0O1xuICAgIGlmIChkZWZhdWx0Q29udGV4dCAhPT0gdm9pZCAwKSByZXR1cm4gZGVmYXVsdENvbnRleHQ7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBcXGAke2NvbnN1bWVyTmFtZX1cXGAgbXVzdCBiZSB1c2VkIHdpdGhpbiBcXGAke3Jvb3RDb21wb25lbnROYW1lfVxcYGApO1xuICB9XG4gIHJldHVybiBbUHJvdmlkZXIsIHVzZUNvbnRleHQyXTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRleHRTY29wZShzY29wZU5hbWUsIGNyZWF0ZUNvbnRleHRTY29wZURlcHMgPSBbXSkge1xuICBsZXQgZGVmYXVsdENvbnRleHRzID0gW107XG4gIGZ1bmN0aW9uIGNyZWF0ZUNvbnRleHQzKHJvb3RDb21wb25lbnROYW1lLCBkZWZhdWx0Q29udGV4dCkge1xuICAgIGNvbnN0IEJhc2VDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dChkZWZhdWx0Q29udGV4dCk7XG4gICAgY29uc3QgaW5kZXggPSBkZWZhdWx0Q29udGV4dHMubGVuZ3RoO1xuICAgIGRlZmF1bHRDb250ZXh0cyA9IFsuLi5kZWZhdWx0Q29udGV4dHMsIGRlZmF1bHRDb250ZXh0XTtcbiAgICBjb25zdCBQcm92aWRlciA9IChwcm9wcykgPT4ge1xuICAgICAgY29uc3QgeyBzY29wZSwgY2hpbGRyZW4sIC4uLmNvbnRleHQgfSA9IHByb3BzO1xuICAgICAgY29uc3QgQ29udGV4dCA9IHNjb3BlPy5bc2NvcGVOYW1lXT8uW2luZGV4XSB8fCBCYXNlQ29udGV4dDtcbiAgICAgIGNvbnN0IHZhbHVlID0gUmVhY3QudXNlTWVtbygoKSA9PiBjb250ZXh0LCBPYmplY3QudmFsdWVzKGNvbnRleHQpKTtcbiAgICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWUsIGNoaWxkcmVuIH0pO1xuICAgIH07XG4gICAgUHJvdmlkZXIuZGlzcGxheU5hbWUgPSByb290Q29tcG9uZW50TmFtZSArIFwiUHJvdmlkZXJcIjtcbiAgICBmdW5jdGlvbiB1c2VDb250ZXh0Mihjb25zdW1lck5hbWUsIHNjb3BlKSB7XG4gICAgICBjb25zdCBDb250ZXh0ID0gc2NvcGU/LltzY29wZU5hbWVdPy5baW5kZXhdIHx8IEJhc2VDb250ZXh0O1xuICAgICAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoQ29udGV4dCk7XG4gICAgICBpZiAoY29udGV4dCkgcmV0dXJuIGNvbnRleHQ7XG4gICAgICBpZiAoZGVmYXVsdENvbnRleHQgIT09IHZvaWQgMCkgcmV0dXJuIGRlZmF1bHRDb250ZXh0O1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBcXGAke2NvbnN1bWVyTmFtZX1cXGAgbXVzdCBiZSB1c2VkIHdpdGhpbiBcXGAke3Jvb3RDb21wb25lbnROYW1lfVxcYGApO1xuICAgIH1cbiAgICByZXR1cm4gW1Byb3ZpZGVyLCB1c2VDb250ZXh0Ml07XG4gIH1cbiAgY29uc3QgY3JlYXRlU2NvcGUgPSAoKSA9PiB7XG4gICAgY29uc3Qgc2NvcGVDb250ZXh0cyA9IGRlZmF1bHRDb250ZXh0cy5tYXAoKGRlZmF1bHRDb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlQ29udGV4dChkZWZhdWx0Q29udGV4dCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVzZVNjb3BlKHNjb3BlKSB7XG4gICAgICBjb25zdCBjb250ZXh0cyA9IHNjb3BlPy5bc2NvcGVOYW1lXSB8fCBzY29wZUNvbnRleHRzO1xuICAgICAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oXG4gICAgICAgICgpID0+ICh7IFtgX19zY29wZSR7c2NvcGVOYW1lfWBdOiB7IC4uLnNjb3BlLCBbc2NvcGVOYW1lXTogY29udGV4dHMgfSB9KSxcbiAgICAgICAgW3Njb3BlLCBjb250ZXh0c11cbiAgICAgICk7XG4gICAgfTtcbiAgfTtcbiAgY3JlYXRlU2NvcGUuc2NvcGVOYW1lID0gc2NvcGVOYW1lO1xuICByZXR1cm4gW2NyZWF0ZUNvbnRleHQzLCBjb21wb3NlQ29udGV4dFNjb3BlcyhjcmVhdGVTY29wZSwgLi4uY3JlYXRlQ29udGV4dFNjb3BlRGVwcyldO1xufVxuZnVuY3Rpb24gY29tcG9zZUNvbnRleHRTY29wZXMoLi4uc2NvcGVzKSB7XG4gIGNvbnN0IGJhc2VTY29wZSA9IHNjb3Blc1swXTtcbiAgaWYgKHNjb3Blcy5sZW5ndGggPT09IDEpIHJldHVybiBiYXNlU2NvcGU7XG4gIGNvbnN0IGNyZWF0ZVNjb3BlID0gKCkgPT4ge1xuICAgIGNvbnN0IHNjb3BlSG9va3MgPSBzY29wZXMubWFwKChjcmVhdGVTY29wZTIpID0+ICh7XG4gICAgICB1c2VTY29wZTogY3JlYXRlU2NvcGUyKCksXG4gICAgICBzY29wZU5hbWU6IGNyZWF0ZVNjb3BlMi5zY29wZU5hbWVcbiAgICB9KSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVzZUNvbXBvc2VkU2NvcGVzKG92ZXJyaWRlU2NvcGVzKSB7XG4gICAgICBjb25zdCBuZXh0U2NvcGVzID0gc2NvcGVIb29rcy5yZWR1Y2UoKG5leHRTY29wZXMyLCB7IHVzZVNjb3BlLCBzY29wZU5hbWUgfSkgPT4ge1xuICAgICAgICBjb25zdCBzY29wZVByb3BzID0gdXNlU2NvcGUob3ZlcnJpZGVTY29wZXMpO1xuICAgICAgICBjb25zdCBjdXJyZW50U2NvcGUgPSBzY29wZVByb3BzW2BfX3Njb3BlJHtzY29wZU5hbWV9YF07XG4gICAgICAgIHJldHVybiB7IC4uLm5leHRTY29wZXMyLCAuLi5jdXJyZW50U2NvcGUgfTtcbiAgICAgIH0sIHt9KTtcbiAgICAgIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+ICh7IFtgX19zY29wZSR7YmFzZVNjb3BlLnNjb3BlTmFtZX1gXTogbmV4dFNjb3BlcyB9KSwgW25leHRTY29wZXNdKTtcbiAgICB9O1xuICB9O1xuICBjcmVhdGVTY29wZS5zY29wZU5hbWUgPSBiYXNlU2NvcGUuc2NvcGVOYW1lO1xuICByZXR1cm4gY3JlYXRlU2NvcGU7XG59XG5leHBvcnQge1xuICBjcmVhdGVDb250ZXh0MiBhcyBjcmVhdGVDb250ZXh0LFxuICBjcmVhdGVDb250ZXh0U2NvcGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dialog/dist/index.mjs":
/*!************************************************************!*\
!*** ./node_modules/@radix-ui/react-dialog/dist/index.mjs ***!
\************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Close: () => (/* binding */ Close),\n/* harmony export */ Content: () => (/* binding */ Content),\n/* harmony export */ Description: () => (/* binding */ Description),\n/* harmony export */ Dialog: () => (/* binding */ Dialog),\n/* harmony export */ DialogClose: () => (/* binding */ DialogClose),\n/* harmony export */ DialogContent: () => (/* binding */ DialogContent),\n/* harmony export */ DialogDescription: () => (/* binding */ DialogDescription),\n/* harmony export */ DialogOverlay: () => (/* binding */ DialogOverlay),\n/* harmony export */ DialogPortal: () => (/* binding */ DialogPortal),\n/* harmony export */ DialogTitle: () => (/* binding */ DialogTitle),\n/* harmony export */ DialogTrigger: () => (/* binding */ DialogTrigger),\n/* harmony export */ Overlay: () => (/* binding */ Overlay),\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Title: () => (/* binding */ Title),\n/* harmony export */ Trigger: () => (/* binding */ Trigger),\n/* harmony export */ WarningProvider: () => (/* binding */ WarningProvider),\n/* harmony export */ createDialogScope: () => (/* binding */ createDialogScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @radix-ui/react-dismissable-layer */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @radix-ui/react-focus-scope */ \"(app-pages-browser)/./node_modules/@radix-ui/react-focus-scope/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-portal */ \"(app-pages-browser)/./node_modules/@radix-ui/react-portal/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @radix-ui/react-focus-guards */ \"(app-pages-browser)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs\");\n/* harmony import */ var react_remove_scroll__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-remove-scroll */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/Combination.js\");\n/* harmony import */ var aria_hidden__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! aria-hidden */ \"(app-pages-browser)/./node_modules/aria-hidden/dist/es2015/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Close,Content,Description,Dialog,DialogClose,DialogContent,DialogDescription,DialogOverlay,DialogPortal,DialogTitle,DialogTrigger,Overlay,Portal,Root,Title,Trigger,WarningProvider,createDialogScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$(), _s7 = $RefreshSig$(), _s8 = $RefreshSig$(), _s9 = $RefreshSig$(), _s10 = $RefreshSig$(), _s11 = $RefreshSig$(), _s12 = $RefreshSig$(), _s13 = $RefreshSig$();\n// packages/react/dialog/src/Dialog.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props)=>{\n _s();\n const { __scopeDialog, children, open: openProp, defaultOpen, onOpenChange, modal = true } = props;\n const triggerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__.useControllableState)({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogProvider, {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n titleId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n descriptionId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Dialog.useCallback\": ()=>setOpen({\n \"Dialog.useCallback\": (prevOpen)=>!prevOpen\n }[\"Dialog.useCallback\"])\n }[\"Dialog.useCallback\"], [\n setOpen\n ]),\n modal,\n children\n });\n};\n_s(Dialog, \"/yuatmodaV7w4hyulEirYGxYW3g=\", false, function() {\n return [\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__.useControllableState,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId\n ];\n});\n_c = Dialog;\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c1 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.button, {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onClick, context.onOpenToggle)\n });\n}, \"bYhw/KL0iUSfvGN4c0UsGZCd7iM=\", false, function() {\n return [\n useDialogContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs\n ];\n})), \"bYhw/KL0iUSfvGN4c0UsGZCd7iM=\", false, function() {\n return [\n useDialogContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs\n ];\n});\n_c2 = DialogTrigger;\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props)=>{\n _s2();\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PortalProvider, {\n scope: __scopeDialog,\n forceMount,\n children: react__WEBPACK_IMPORTED_MODULE_0__.Children.map(children, (child)=>/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_9__.Portal, {\n asChild: true,\n container,\n children: child\n })\n }))\n });\n};\n_s2(DialogPortal, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n});\n_c3 = DialogPortal;\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c4 = _s3((props, forwardedRef)=>{\n _s3();\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogOverlayImpl, {\n ...overlayProps,\n ref: forwardedRef\n })\n }) : null;\n}, \"AXliLo+uLr/KDo6FX78QKyFnPa0=\", false, function() {\n return [\n usePortalContext,\n useDialogContext\n ];\n})), \"AXliLo+uLr/KDo6FX78QKyFnPa0=\", false, function() {\n return [\n usePortalContext,\n useDialogContext\n ];\n});\n_c5 = DialogOverlay;\nDialogOverlay.displayName = OVERLAY_NAME;\nvar DialogOverlayImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s4((props, forwardedRef)=>{\n _s4();\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return(// Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_remove_scroll__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n as: _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_11__.Slot,\n allowPinchZoom: true,\n shards: [\n context.contentRef\n ],\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.div, {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: {\n pointerEvents: \"auto\",\n ...overlayProps.style\n }\n })\n }));\n}, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n}));\n_c6 = DialogOverlayImpl;\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = /*#__PURE__*/ _s5(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c7 = _s5((props, forwardedRef)=>{\n _s5();\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: context.modal ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentModal, {\n ...contentProps,\n ref: forwardedRef\n }) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentNonModal, {\n ...contentProps,\n ref: forwardedRef\n })\n });\n}, \"AXliLo+uLr/KDo6FX78QKyFnPa0=\", false, function() {\n return [\n usePortalContext,\n useDialogContext\n ];\n})), \"AXliLo+uLr/KDo6FX78QKyFnPa0=\", false, function() {\n return [\n usePortalContext,\n useDialogContext\n ];\n});\n_c8 = DialogContent;\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s6((props, forwardedRef)=>{\n _s6();\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, context.contentRef, contentRef);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DialogContentModal.useEffect\": ()=>{\n const content = contentRef.current;\n if (content) return (0,aria_hidden__WEBPACK_IMPORTED_MODULE_12__.hideOthers)(content);\n }\n }[\"DialogContentModal.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentImpl, {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onCloseAutoFocus, (event)=>{\n var _context_triggerRef_current;\n event.preventDefault();\n (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 ? void 0 : _context_triggerRef_current.focus();\n }),\n onPointerDownOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerDownOutside, (event)=>{\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onFocusOutside, (event)=>event.preventDefault())\n });\n}, \"z0QlyWdXD1MaBi1+3AtBr2MuboI=\", false, function() {\n return [\n useDialogContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs\n ];\n}));\n_c9 = DialogContentModal;\nvar DialogContentNonModal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s7((props, forwardedRef)=>{\n _s7();\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const hasPointerDownOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentImpl, {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event)=>{\n var _props_onCloseAutoFocus;\n (_props_onCloseAutoFocus = props.onCloseAutoFocus) === null || _props_onCloseAutoFocus === void 0 ? void 0 : _props_onCloseAutoFocus.call(props, event);\n if (!event.defaultPrevented) {\n var _context_triggerRef_current;\n if (!hasInteractedOutsideRef.current) (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 ? void 0 : _context_triggerRef_current.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event)=>{\n var _props_onInteractOutside, _context_triggerRef_current;\n (_props_onInteractOutside = props.onInteractOutside) === null || _props_onInteractOutside === void 0 ? void 0 : _props_onInteractOutside.call(props, event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 ? void 0 : _context_triggerRef_current.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n });\n}, \"YrVQPDdDfWR20TF4ZFjbVSADLNA=\", false, function() {\n return [\n useDialogContext\n ];\n}));\n_c10 = DialogContentNonModal;\nvar DialogContentImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s8((props, forwardedRef)=>{\n _s8();\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, contentRef);\n (0,_radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_13__.useFocusGuards)();\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_14__.FocusScope, {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_15__.DismissableLayer, {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: ()=>context.onOpenChange(false)\n })\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TitleWarning, {\n titleId: context.titleId\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DescriptionWarning, {\n contentRef,\n descriptionId: context.descriptionId\n })\n ]\n })\n ]\n });\n}, \"wjdue5beIiufJExexORWgo6pOh0=\", false, function() {\n return [\n useDialogContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs,\n _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_13__.useFocusGuards\n ];\n}));\n_c11 = DialogContentImpl;\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = /*#__PURE__*/ _s9(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c12 = _s9((props, forwardedRef)=>{\n _s9();\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.h2, {\n id: context.titleId,\n ...titleProps,\n ref: forwardedRef\n });\n}, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n})), \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n});\n_c13 = DialogTitle;\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = /*#__PURE__*/ _s10(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c14 = _s10((props, forwardedRef)=>{\n _s10();\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.p, {\n id: context.descriptionId,\n ...descriptionProps,\n ref: forwardedRef\n });\n}, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n})), \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n});\n_c15 = DialogDescription;\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = /*#__PURE__*/ _s11(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c16 = _s11((props, forwardedRef)=>{\n _s11();\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.button, {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onClick, ()=>context.onOpenChange(false))\n });\n}, \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n})), \"gb1df/SMEHYUh29U87o5E06m2nU=\", false, function() {\n return [\n useDialogContext\n ];\n});\n_c17 = DialogClose;\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContext)(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = (param)=>{\n let { titleId } = param;\n _s12();\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n const MESSAGE = \"`\".concat(titleWarningContext.contentName, \"` requires a `\").concat(titleWarningContext.titleName, \"` for the component to be accessible for screen reader users.\\n\\nIf you want to hide the `\").concat(titleWarningContext.titleName, \"`, you can wrap it with our VisuallyHidden component.\\n\\nFor more information, see https://radix-ui.com/primitives/docs/components/\").concat(titleWarningContext.docsSlug);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"TitleWarning.useEffect\": ()=>{\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }\n }[\"TitleWarning.useEffect\"], [\n MESSAGE,\n titleId\n ]);\n return null;\n};\n_s12(TitleWarning, \"GA0m2oeX5XXEaAUGtZZQs5ML670=\", false, function() {\n return [\n useWarningContext\n ];\n});\n_c18 = TitleWarning;\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = (param)=>{\n let { contentRef, descriptionId } = param;\n _s13();\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = \"Warning: Missing `Description` or `aria-describedby={undefined}` for {\".concat(descriptionWarningContext.contentName, \"}.\");\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DescriptionWarning.useEffect\": ()=>{\n var _contentRef_current;\n const describedById = (_contentRef_current = contentRef.current) === null || _contentRef_current === void 0 ? void 0 : _contentRef_current.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }\n }[\"DescriptionWarning.useEffect\"], [\n MESSAGE,\n contentRef,\n descriptionId\n ]);\n return null;\n};\n_s13(DescriptionWarning, \"udowy/X+0YeBLGtDTT18KC58FH0=\", false, function() {\n return [\n useWarningContext\n ];\n});\n_c19 = DescriptionWarning;\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15, _c16, _c17, _c18, _c19;\n$RefreshReg$(_c, \"Dialog\");\n$RefreshReg$(_c1, \"DialogTrigger$React.forwardRef\");\n$RefreshReg$(_c2, \"DialogTrigger\");\n$RefreshReg$(_c3, \"DialogPortal\");\n$RefreshReg$(_c4, \"DialogOverlay$React.forwardRef\");\n$RefreshReg$(_c5, \"DialogOverlay\");\n$RefreshReg$(_c6, \"DialogOverlayImpl\");\n$RefreshReg$(_c7, \"DialogContent$React.forwardRef\");\n$RefreshReg$(_c8, \"DialogContent\");\n$RefreshReg$(_c9, \"DialogContentModal\");\n$RefreshReg$(_c10, \"DialogContentNonModal\");\n$RefreshReg$(_c11, \"DialogContentImpl\");\n$RefreshReg$(_c12, \"DialogTitle$React.forwardRef\");\n$RefreshReg$(_c13, \"DialogTitle\");\n$RefreshReg$(_c14, \"DialogDescription$React.forwardRef\");\n$RefreshReg$(_c15, \"DialogDescription\");\n$RefreshReg$(_c16, \"DialogClose$React.forwardRef\");\n$RefreshReg$(_c17, \"DialogClose\");\n$RefreshReg$(_c18, \"TitleWarning\");\n$RefreshReg$(_c19, \"DescriptionWarning\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlhbG9nL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ0w7QUFDa0I7QUFDNUI7QUFDZTtBQUNKO0FBQ047QUFDZTtBQUNqQjtBQUNDO0FBQ0s7QUFDRjtBQUNGO0FBQ047QUFxRGpCO0FBN0NKLElBQU0sY0FBYztBQUdwQixJQUFNLENBQUMscUJBQXFCLGlCQUFpQixJQUFJLDJFQUFrQixDQUFDLFdBQVc7QUFjL0UsSUFBTSxDQUFDLGdCQUFnQixnQkFBZ0IsSUFBSSxvQkFBd0MsV0FBVztBQVU5RixhQUFzQyxDQUFDOztJQUNyQyxNQUFNLEVBQ0osZUFDQSxVQUNBLE1BQU0sVUFDTixhQUNBLGNBQ0EsUUFBUSxNQUNWLEdBQUk7SUFDSixNQUFNLGFBQW1CLDBDQUEwQixJQUFJO0lBQ3ZELE1BQU0sYUFBbUIsMENBQTZCLElBQUk7SUFDMUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxPQUFPLGlHQUF5QjtRQUNuRCxNQUFNO1FBQ04sYUFBYTtRQUNiLFVBQVU7SUFDWixDQUFDO0lBRUQsT0FDRSx1RUFBQztRQUNDLE9BQU87UUFDUDtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQSxjQUFjO1FBQ2QsY0FBb0I7a0NBQVksSUFBTTswQ0FBUSxDQUFDLFdBQWEsQ0FBQyxRQUFROztpQ0FBRztZQUFDLE9BQU87U0FBQztRQUNqRjtRQUVDO0lBQUE7QUFHUDs7O1FBdEJrQyx3RkFBb0I7UUFXckMscURBQUssQ0FBQztRQUNSLHFEQUFLLENBQUM7UUFDQSxxREFBSzs7O0tBeEJwQjtBQW1DTixPQUFPLGNBQWM7QUFNckIsSUFBTSxlQUFlO0FBTXJCLElBQU0sa0NBQXNCLHdEQUMxQixDQUFDLE9BQXdDOztJQUN2QyxNQUFNLEVBQUUsZUFBZSxHQUFHLGFBQWEsSUFBSTtJQUMzQyxN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SUFBTSxVQUFVO0FBQ2hCLElBQU0sU0FBUztBQUNmLElBQU0sVUFBVTtBQUNoQixJQUFNLFVBQVU7QUFDaEIsSUFBTSxRQUFRO0FBQ2QsSUFBTSxjQUFjO0FBQ3BCLElBQU0sUUFBUSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL3NyYy9EaWFsb2cudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSAnQHJhZGl4LXVpL3ByaW1pdGl2ZSc7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWlkJztcbmltcG9ydCB7IHVzZUNvbnRyb2xsYWJsZVN0YXRlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1jb250cm9sbGFibGUtc3RhdGUnO1xuaW1wb3J0IHsgRGlzbWlzc2FibGVMYXllciB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1kaXNtaXNzYWJsZS1sYXllcic7XG5pbXBvcnQgeyBGb2N1c1Njb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWZvY3VzLXNjb3BlJztcbmltcG9ydCB7IFBvcnRhbCBhcyBQb3J0YWxQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcG9ydGFsJztcbmltcG9ydCB7IFByZXNlbmNlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByZXNlbmNlJztcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuaW1wb3J0IHsgdXNlRm9jdXNHdWFyZHMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZm9jdXMtZ3VhcmRzJztcbmltcG9ydCB7IFJlbW92ZVNjcm9sbCB9IGZyb20gJ3JlYWN0LXJlbW92ZS1zY3JvbGwnO1xuaW1wb3J0IHsgaGlkZU90aGVycyB9IGZyb20gJ2FyaWEtaGlkZGVuJztcbmltcG9ydCB7IFNsb3QgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3Qtc2xvdCc7XG5cbmltcG9ydCB0eXBlIHsgU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpYWxvZ1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBESUFMT0dfTkFNRSA9ICdEaWFsb2cnO1xuXG50eXBlIFNjb3BlZFByb3BzPFA+ID0gUCAmIHsgX19zY29wZURpYWxvZz86IFNjb3BlIH07XG5jb25zdCBbY3JlYXRlRGlhbG9nQ29udGV4dCwgY3JlYXRlRGlhbG9nU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKERJQUxPR19OQU1FKTtcblxudHlwZSBEaWFsb2dDb250ZXh0VmFsdWUgPSB7XG4gIHRyaWdnZXJSZWY6IFJlYWN0LlJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudCB8IG51bGw+O1xuICBjb250ZW50UmVmOiBSZWFjdC5SZWZPYmplY3Q8RGlhbG9nQ29udGVudEVsZW1lbnQgfCBudWxsPjtcbiAgY29udGVudElkOiBzdHJpbmc7XG4gIHRpdGxlSWQ6IHN0cmluZztcbiAgZGVzY3JpcHRpb25JZDogc3RyaW5nO1xuICBvcGVuOiBib29sZWFuO1xuICBvbk9wZW5DaGFuZ2Uob3BlbjogYm9vbGVhbik6IHZvaWQ7XG4gIG9uT3BlblRvZ2dsZSgpOiB2b2lkO1xuICBtb2RhbDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IFtEaWFsb2dQcm92aWRlciwgdXNlRGlhbG9nQ29udGV4dF0gPSBjcmVhdGVEaWFsb2dDb250ZXh0PERpYWxvZ0NvbnRleHRWYWx1ZT4oRElBTE9HX05BTUUpO1xuXG5pbnRlcmZhY2UgRGlhbG9nUHJvcHMge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgb3Blbj86IGJvb2xlYW47XG4gIGRlZmF1bHRPcGVuPzogYm9vbGVhbjtcbiAgb25PcGVuQ2hhbmdlPyhvcGVuOiBib29sZWFuKTogdm9pZDtcbiAgbW9kYWw/OiBib29sZWFuO1xufVxuXG5jb25zdCBEaWFsb2c6IFJlYWN0LkZDPERpYWxvZ1Byb3BzPiA9IChwcm9wczogU2NvcGVkUHJvcHM8RGlhbG9nUHJvcHM+KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfX3Njb3BlRGlhbG9nLFxuICAgIGNoaWxkcmVuLFxuICAgIG9wZW46IG9wZW5Qcm9wLFxuICAgIGRlZmF1bHRPcGVuLFxuICAgIG9uT3BlbkNoYW5nZSxcbiAgICBtb2RhbCA9IHRydWUsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgdHJpZ2dlclJlZiA9IFJlYWN0LnVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGNvbnRlbnRSZWYgPSBSZWFjdC51c2VSZWY8RGlhbG9nQ29udGVudEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBbb3BlbiA9IGZhbHNlLCBzZXRPcGVuXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICBwcm9wOiBvcGVuUHJvcCxcbiAgICBkZWZhdWx0UHJvcDogZGVmYXVsdE9wZW4sXG4gICAgb25DaGFuZ2U6IG9uT3BlbkNoYW5nZSxcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RGlhbG9nUHJvdmlkZXJcbiAgICAgIHNjb3BlPXtfX3Njb3BlRGlhbG9nfVxuICAgICAgdHJpZ2dlclJlZj17dHJpZ2dlclJlZn1cbiAgICAgIGNvbnRlbnRSZWY9e2NvbnRlbnRSZWZ9XG4gICAgICBjb250ZW50SWQ9e3VzZUlkKCl9XG4gICAgICB0aXRsZUlkPXt1c2VJZCgpfVxuICAgICAgZGVzY3JpcHRpb25JZD17dXNlSWQoKX1cbiAgICAgIG9wZW49e29wZW59XG4gICAgICBvbk9wZW5DaGFuZ2U9e3NldE9wZW59XG4gICAgICBvbk9wZW5Ub2dnbGU9e1JlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHNldE9wZW4oKHByZXZPcGVuKSA9PiAhcHJldk9wZW4pLCBbc2V0T3Blbl0pfVxuICAgICAgbW9kYWw9e21vZGFsfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0RpYWxvZ1Byb3ZpZGVyPlxuICApO1xufTtcblxuRGlhbG9nLmRpc3BsYXlOYW1lID0gRElBTE9HX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpYWxvZ1RyaWdnZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgVFJJR0dFUl9OQU1FID0gJ0RpYWxvZ1RyaWdnZXInO1xuXG50eXBlIERpYWxvZ1RyaWdnZXJFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmJ1dHRvbj47XG50eXBlIFByaW1pdGl2ZUJ1dHRvblByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuYnV0dG9uPjtcbmludGVyZmFjZSBEaWFsb2dUcmlnZ2VyUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVCdXR0b25Qcm9wcyB7fVxuXG5jb25zdCBEaWFsb2dUcmlnZ2VyID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dUcmlnZ2VyRWxlbWVudCwgRGlhbG9nVHJpZ2dlclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dUcmlnZ2VyUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEaWFsb2csIC4uLnRyaWdnZXJQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoVFJJR0dFUl9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgICBjb25zdCBjb21wb3NlZFRyaWdnZXJSZWYgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBjb250ZXh0LnRyaWdnZXJSZWYpO1xuICAgIHJldHVybiAoXG4gICAgICA8UHJpbWl0aXZlLmJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cImRpYWxvZ1wiXG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e2NvbnRleHQub3Blbn1cbiAgICAgICAgYXJpYS1jb250cm9scz17Y29udGV4dC5jb250ZW50SWR9XG4gICAgICAgIGRhdGEtc3RhdGU9e2dldFN0YXRlKGNvbnRleHQub3Blbil9XG4gICAgICAgIHsuLi50cmlnZ2VyUHJvcHN9XG4gICAgICAgIHJlZj17Y29tcG9zZWRUcmlnZ2VyUmVmfVxuICAgICAgICBvbkNsaWNrPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCBjb250ZXh0Lm9uT3BlblRvZ2dsZSl9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbik7XG5cbkRpYWxvZ1RyaWdnZXIuZGlzcGxheU5hbWUgPSBUUklHR0VSX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpYWxvZ1BvcnRhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBQT1JUQUxfTkFNRSA9ICdEaWFsb2dQb3J0YWwnO1xuXG50eXBlIFBvcnRhbENvbnRleHRWYWx1ZSA9IHsgZm9yY2VNb3VudD86IHRydWUgfTtcbmNvbnN0IFtQb3J0YWxQcm92aWRlciwgdXNlUG9ydGFsQ29udGV4dF0gPSBjcmVhdGVEaWFsb2dDb250ZXh0PFBvcnRhbENvbnRleHRWYWx1ZT4oUE9SVEFMX05BTUUsIHtcbiAgZm9yY2VNb3VudDogdW5kZWZpbmVkLFxufSk7XG5cbnR5cGUgUG9ydGFsUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFBvcnRhbFByaW1pdGl2ZT47XG5pbnRlcmZhY2UgRGlhbG9nUG9ydGFsUHJvcHMge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIFNwZWNpZnkgYSBjb250YWluZXIgZWxlbWVudCB0byBwb3J0YWwgdGhlIGNvbnRlbnQgaW50by5cbiAgICovXG4gIGNvbnRhaW5lcj86IFBvcnRhbFByb3BzWydjb250YWluZXInXTtcbiAgLyoqXG4gICAqIFVzZWQgdG8gZm9yY2UgbW91bnRpbmcgd2hlbiBtb3JlIGNvbnRyb2wgaXMgbmVlZGVkLiBVc2VmdWwgd2hlblxuICAgKiBjb250cm9sbGluZyBhbmltYXRpb24gd2l0aCBSZWFjdCBhbmltYXRpb24gbGlicmFyaWVzLlxuICAgKi9cbiAgZm9yY2VNb3VudD86IHRydWU7XG59XG5cbmNvbnN0IERpYWxvZ1BvcnRhbDogUmVhY3QuRkM8RGlhbG9nUG9ydGFsUHJvcHM+ID0gKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dQb3J0YWxQcm9wcz4pID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlRGlhbG9nLCBmb3JjZU1vdW50LCBjaGlsZHJlbiwgY29udGFpbmVyIH0gPSBwcm9wcztcbiAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoUE9SVEFMX05BTUUsIF9fc2NvcGVEaWFsb2cpO1xuICByZXR1cm4gKFxuICAgIDxQb3J0YWxQcm92aWRlciBzY29wZT17X19zY29wZURpYWxvZ30gZm9yY2VNb3VudD17Zm9yY2VNb3VudH0+XG4gICAgICB7UmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCAoY2hpbGQpID0+IChcbiAgICAgICAgPFByZXNlbmNlIHByZXNlbnQ9e2ZvcmNlTW91bnQgfHwgY29udGV4dC5vcGVufT5cbiAgICAgICAgICA8UG9ydGFsUHJpbWl0aXZlIGFzQ2hpbGQgY29udGFpbmVyPXtjb250YWluZXJ9PlxuICAgICAgICAgICAge2NoaWxkfVxuICAgICAgICAgIDwvUG9ydGFsUHJpbWl0aXZlPlxuICAgICAgICA8L1ByZXNlbmNlPlxuICAgICAgKSl9XG4gICAgPC9Qb3J0YWxQcm92aWRlcj5cbiAgKTtcbn07XG5cbkRpYWxvZ1BvcnRhbC5kaXNwbGF5TmFtZSA9IFBPUlRBTF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaWFsb2dPdmVybGF5XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IE9WRVJMQVlfTkFNRSA9ICdEaWFsb2dPdmVybGF5JztcblxudHlwZSBEaWFsb2dPdmVybGF5RWxlbWVudCA9IERpYWxvZ092ZXJsYXlJbXBsRWxlbWVudDtcbmludGVyZmFjZSBEaWFsb2dPdmVybGF5UHJvcHMgZXh0ZW5kcyBEaWFsb2dPdmVybGF5SW1wbFByb3BzIHtcbiAgLyoqXG4gICAqIFVzZWQgdG8gZm9yY2UgbW91bnRpbmcgd2hlbiBtb3JlIGNvbnRyb2wgaXMgbmVlZGVkLiBVc2VmdWwgd2hlblxuICAgKiBjb250cm9sbGluZyBhbmltYXRpb24gd2l0aCBSZWFjdCBhbmltYXRpb24gbGlicmFyaWVzLlxuICAgKi9cbiAgZm9yY2VNb3VudD86IHRydWU7XG59XG5cbmNvbnN0IERpYWxvZ092ZXJsYXkgPSBSZWFjdC5mb3J3YXJkUmVmPERpYWxvZ092ZXJsYXlFbGVtZW50LCBEaWFsb2dPdmVybGF5UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ092ZXJsYXlQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHBvcnRhbENvbnRleHQgPSB1c2VQb3J0YWxDb250ZXh0KE9WRVJMQVlfTkFNRSwgcHJvcHMuX19zY29wZURpYWxvZyk7XG4gICAgY29uc3QgeyBmb3JjZU1vdW50ID0gcG9ydGFsQ29udGV4dC5mb3JjZU1vdW50LCAuLi5vdmVybGF5UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KE9WRVJMQVlfTkFNRSwgcHJvcHMuX19zY29wZURpYWxvZyk7XG4gICAgcmV0dXJuIGNvbnRleHQubW9kYWwgPyAoXG4gICAgICA8UHJlc2VuY2UgcHJlc2VudD17Zm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW59PlxuICAgICAgICA8RGlhbG9nT3ZlcmxheUltcGwgey4uLm92ZXJsYXlQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+XG4gICAgICA8L1ByZXNlbmNlPlxuICAgICkgOiBudWxsO1xuICB9XG4pO1xuXG5EaWFsb2dPdmVybGF5LmRpc3BsYXlOYW1lID0gT1ZFUkxBWV9OQU1FO1xuXG50eXBlIERpYWxvZ092ZXJsYXlJbXBsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBQcmltaXRpdmVEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgRGlhbG9nT3ZlcmxheUltcGxQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHt9XG5cbmNvbnN0IERpYWxvZ092ZXJsYXlJbXBsID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dPdmVybGF5SW1wbEVsZW1lbnQsIERpYWxvZ092ZXJsYXlJbXBsUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ092ZXJsYXlJbXBsUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEaWFsb2csIC4uLm92ZXJsYXlQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoT1ZFUkxBWV9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgICByZXR1cm4gKFxuICAgICAgLy8gTWFrZSBzdXJlIGBDb250ZW50YCBpcyBzY3JvbGxhYmxlIGV2ZW4gd2hlbiBpdCBkb2Vzbid0IGxpdmUgaW5zaWRlIGBSZW1vdmVTY3JvbGxgXG4gICAgICAvLyBpZS4gd2hlbiBgT3ZlcmxheWAgYW5kIGBDb250ZW50YCBhcmUgc2libGluZ3NcbiAgICAgIDxSZW1vdmVTY3JvbGwgYXM9e1Nsb3R9IGFsbG93UGluY2hab29tIHNoYXJkcz17W2NvbnRleHQuY29udGVudFJlZl19PlxuICAgICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICAgIGRhdGEtc3RhdGU9e2dldFN0YXRlKGNvbnRleHQub3Blbil9XG4gICAgICAgICAgey4uLm92ZXJsYXlQcm9wc31cbiAgICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgICAvLyBXZSByZS1lbmFibGUgcG9pbnRlci1ldmVudHMgcHJldmVudGVkIGJ5IGBEaWFsb2cuQ29udGVudGAgdG8gYWxsb3cgc2Nyb2xsaW5nIHRoZSBvdmVybGF5LlxuICAgICAgICAgIHN0eWxlPXt7IHBvaW50ZXJFdmVudHM6ICdhdXRvJywgLi4ub3ZlcmxheVByb3BzLnN0eWxlIH19XG4gICAgICAgIC8+XG4gICAgICA8L1JlbW92ZVNjcm9sbD5cbiAgICApO1xuICB9XG4pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaWFsb2dDb250ZW50XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IENPTlRFTlRfTkFNRSA9ICdEaWFsb2dDb250ZW50JztcblxudHlwZSBEaWFsb2dDb250ZW50RWxlbWVudCA9IERpYWxvZ0NvbnRlbnRUeXBlRWxlbWVudDtcbmludGVyZmFjZSBEaWFsb2dDb250ZW50UHJvcHMgZXh0ZW5kcyBEaWFsb2dDb250ZW50VHlwZVByb3BzIHtcbiAgLyoqXG4gICAqIFVzZWQgdG8gZm9yY2UgbW91bnRpbmcgd2hlbiBtb3JlIGNvbnRyb2wgaXMgbmVlZGVkLiBVc2VmdWwgd2hlblxuICAgKiBjb250cm9sbGluZyBhbmltYXRpb24gd2l0aCBSZWFjdCBhbmltYXRpb24gbGlicmFyaWVzLlxuICAgKi9cbiAgZm9yY2VNb3VudD86IHRydWU7XG59XG5cbmNvbnN0IERpYWxvZ0NvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPERpYWxvZ0NvbnRlbnRFbGVtZW50LCBEaWFsb2dDb250ZW50UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ0NvbnRlbnRQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHBvcnRhbENvbnRleHQgPSB1c2VQb3J0YWxDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZURpYWxvZyk7XG4gICAgY29uc3QgeyBmb3JjZU1vdW50ID0gcG9ydGFsQ29udGV4dC5mb3JjZU1vdW50LCAuLi5jb250ZW50UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZURpYWxvZyk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmVzZW5jZSBwcmVzZW50PXtmb3JjZU1vdW50IHx8IGNvbnRleHQub3Blbn0+XG4gICAgICAgIHtjb250ZXh0Lm1vZGFsID8gKFxuICAgICAgICAgIDxEaWFsb2dDb250ZW50TW9kYWwgey4uLmNvbnRlbnRQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPERpYWxvZ0NvbnRlbnROb25Nb2RhbCB7Li4uY29udGVudFByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz5cbiAgICAgICAgKX1cbiAgICAgIDwvUHJlc2VuY2U+XG4gICAgKTtcbiAgfVxuKTtcblxuRGlhbG9nQ29udGVudC5kaXNwbGF5TmFtZSA9IENPTlRFTlRfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIERpYWxvZ0NvbnRlbnRUeXBlRWxlbWVudCA9IERpYWxvZ0NvbnRlbnRJbXBsRWxlbWVudDtcbmludGVyZmFjZSBEaWFsb2dDb250ZW50VHlwZVByb3BzXG4gIGV4dGVuZHMgT21pdDxEaWFsb2dDb250ZW50SW1wbFByb3BzLCAndHJhcEZvY3VzJyB8ICdkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMnPiB7fVxuXG5jb25zdCBEaWFsb2dDb250ZW50TW9kYWwgPSBSZWFjdC5mb3J3YXJkUmVmPERpYWxvZ0NvbnRlbnRUeXBlRWxlbWVudCwgRGlhbG9nQ29udGVudFR5cGVQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8RGlhbG9nQ29udGVudFR5cGVQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZURpYWxvZyk7XG4gICAgY29uc3QgY29udGVudFJlZiA9IFJlYWN0LnVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgY29udGV4dC5jb250ZW50UmVmLCBjb250ZW50UmVmKTtcblxuICAgIC8vIGFyaWEtaGlkZSBldmVyeXRoaW5nIGV4Y2VwdCB0aGUgY29udGVudCAoYmV0dGVyIHN1cHBvcnRlZCBlcXVpdmFsZW50IHRvIHNldHRpbmcgYXJpYS1tb2RhbClcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgY29udGVudCA9IGNvbnRlbnRSZWYuY3VycmVudDtcbiAgICAgIGlmIChjb250ZW50KSByZXR1cm4gaGlkZU90aGVycyhjb250ZW50KTtcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERpYWxvZ0NvbnRlbnRJbXBsXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgcmVmPXtjb21wb3NlZFJlZnN9XG4gICAgICAgIC8vIHdlIG1ha2Ugc3VyZSBmb2N1cyBpc24ndCB0cmFwcGVkIG9uY2UgYERpYWxvZ0NvbnRlbnRgIGhhcyBiZWVuIGNsb3NlZFxuICAgICAgICAvLyAoY2xvc2VkICE9PSB1bm1vdW50ZWQgd2hlbiBhbmltYXRpbmcgb3V0KVxuICAgICAgICB0cmFwRm9jdXM9e2NvbnRleHQub3Blbn1cbiAgICAgICAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzXG4gICAgICAgIG9uQ2xvc2VBdXRvRm9jdXM9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQ2xvc2VBdXRvRm9jdXMsIChldmVudCkgPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgY29udGV4dC50cmlnZ2VyUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIH0pfVxuICAgICAgICBvblBvaW50ZXJEb3duT3V0c2lkZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Qb2ludGVyRG93bk91dHNpZGUsIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsRXZlbnQgPSBldmVudC5kZXRhaWwub3JpZ2luYWxFdmVudDtcbiAgICAgICAgICBjb25zdCBjdHJsTGVmdENsaWNrID0gb3JpZ2luYWxFdmVudC5idXR0b24gPT09IDAgJiYgb3JpZ2luYWxFdmVudC5jdHJsS2V5ID09PSB0cnVlO1xuICAgICAgICAgIGNvbnN0IGlzUmlnaHRDbGljayA9IG9yaWdpbmFsRXZlbnQuYnV0dG9uID09PSAyIHx8IGN0cmxMZWZ0Q2xpY2s7XG5cbiAgICAgICAgICAvLyBJZiB0aGUgZXZlbnQgaXMgYSByaWdodC1jbGljaywgd2Ugc2hvdWxkbid0IGNsb3NlIGJlY2F1c2VcbiAgICAgICAgICAvLyBpdCBpcyBlZmZlY3RpdmVseSBhcyBpZiB3ZSByaWdodC1jbGlja2VkIHRoZSBgT3ZlcmxheWAuXG4gICAgICAgICAgaWYgKGlzUmlnaHRDbGljaykgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSl9XG4gICAgICAgIC8vIFdoZW4gZm9jdXMgaXMgdHJhcHBlZCwgYSBgZm9jdXNvdXRgIGV2ZW50IG1heSBzdGlsbCBoYXBwZW4uXG4gICAgICAgIC8vIFdlIG1ha2Ugc3VyZSB3ZSBkb24ndCB0cmlnZ2VyIG91ciBgb25EaXNtaXNzYCBpbiBzdWNoIGNhc2UuXG4gICAgICAgIG9uRm9jdXNPdXRzaWRlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkZvY3VzT3V0c2lkZSwgKGV2ZW50KSA9PlxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgKX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBEaWFsb2dDb250ZW50Tm9uTW9kYWwgPSBSZWFjdC5mb3J3YXJkUmVmPERpYWxvZ0NvbnRlbnRUeXBlRWxlbWVudCwgRGlhbG9nQ29udGVudFR5cGVQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8RGlhbG9nQ29udGVudFR5cGVQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZURpYWxvZyk7XG4gICAgY29uc3QgaGFzSW50ZXJhY3RlZE91dHNpZGVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERpYWxvZ0NvbnRlbnRJbXBsXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgIHRyYXBGb2N1cz17ZmFsc2V9XG4gICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cz17ZmFsc2V9XG4gICAgICAgIG9uQ2xvc2VBdXRvRm9jdXM9eyhldmVudCkgPT4ge1xuICAgICAgICAgIHByb3BzLm9uQ2xvc2VBdXRvRm9jdXM/LihldmVudCk7XG5cbiAgICAgICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgIGlmICghaGFzSW50ZXJhY3RlZE91dHNpZGVSZWYuY3VycmVudCkgY29udGV4dC50cmlnZ2VyUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgICAgICAvLyBBbHdheXMgcHJldmVudCBhdXRvIGZvY3VzIGJlY2F1c2Ugd2UgZWl0aGVyIGZvY3VzIG1hbnVhbGx5IG9yIHdhbnQgdXNlciBhZ2VudCBmb2N1c1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgaGFzUG9pbnRlckRvd25PdXRzaWRlUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgfX1cbiAgICAgICAgb25JbnRlcmFjdE91dHNpZGU9eyhldmVudCkgPT4ge1xuICAgICAgICAgIHByb3BzLm9uSW50ZXJhY3RPdXRzaWRlPy4oZXZlbnQpO1xuXG4gICAgICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICBoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChldmVudC5kZXRhaWwub3JpZ2luYWxFdmVudC50eXBlID09PSAncG9pbnRlcmRvd24nKSB7XG4gICAgICAgICAgICAgIGhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBQcmV2ZW50IGRpc21pc3Npbmcgd2hlbiBjbGlja2luZyB0aGUgdHJpZ2dlci5cbiAgICAgICAgICAvLyBBcyB0aGUgdHJpZ2dlciBpcyBhbHJlYWR5IHNldHVwIHRvIGNsb3NlLCB3aXRob3V0IGRvaW5nIHNvIHdvdWxkXG4gICAgICAgICAgLy8gY2F1c2UgaXQgdG8gY2xvc2UgYW5kIGltbWVkaWF0ZWx5IG9wZW4uXG4gICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgIGNvbnN0IHRhcmdldElzVHJpZ2dlciA9IGNvbnRleHQudHJpZ2dlclJlZi5jdXJyZW50Py5jb250YWlucyh0YXJnZXQpO1xuICAgICAgICAgIGlmICh0YXJnZXRJc1RyaWdnZXIpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAvLyBPbiBTYWZhcmkgaWYgdGhlIHRyaWdnZXIgaXMgaW5zaWRlIGEgY29udGFpbmVyIHdpdGggdGFiSW5kZXg9ezB9LCB3aGVuIGNsaWNrZWRcbiAgICAgICAgICAvLyB3ZSB3aWxsIGdldCB0aGUgcG9pbnRlciBkb3duIG91dHNpZGUgZXZlbnQgb24gdGhlIHRyaWdnZXIsIGJ1dCB0aGVuIGEgc3Vic2VxdWVudFxuICAgICAgICAgIC8vIGZvY3VzIG91dHNpZGUgZXZlbnQgb24gdGhlIGNvbnRhaW5lciwgd2UgaWdub3JlIGFueSBmb2N1cyBvdXRzaWRlIGV2ZW50IHdoZW4gd2UndmVcbiAgICAgICAgICAvLyBhbHJlYWR5IGhhZCBhIHBvaW50ZXIgZG93biBvdXRzaWRlIGV2ZW50LlxuICAgICAgICAgIGlmIChldmVudC5kZXRhaWwub3JpZ2luYWxFdmVudC50eXBlID09PSAnZm9jdXNpbicgJiYgaGFzUG9pbnRlckRvd25PdXRzaWRlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnR5cGUgRGlhbG9nQ29udGVudEltcGxFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRGlzbWlzc2FibGVMYXllcj47XG50eXBlIERpc21pc3NhYmxlTGF5ZXJQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlzbWlzc2FibGVMYXllcj47XG50eXBlIEZvY3VzU2NvcGVQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRm9jdXNTY29wZT47XG5pbnRlcmZhY2UgRGlhbG9nQ29udGVudEltcGxQcm9wcyBleHRlbmRzIE9taXQ8RGlzbWlzc2FibGVMYXllclByb3BzLCAnb25EaXNtaXNzJz4ge1xuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIGZvY3VzIGNhbm5vdCBlc2NhcGUgdGhlIGBDb250ZW50YCB2aWEga2V5Ym9hcmQsXG4gICAqIHBvaW50ZXIsIG9yIGEgcHJvZ3JhbW1hdGljIGZvY3VzLlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICB0cmFwRm9jdXM/OiBGb2N1c1Njb3BlUHJvcHNbJ3RyYXBwZWQnXTtcblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiBhdXRvLWZvY3VzaW5nIG9uIG9wZW4uXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvbk9wZW5BdXRvRm9jdXM/OiBGb2N1c1Njb3BlUHJvcHNbJ29uTW91bnRBdXRvRm9jdXMnXTtcblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiBhdXRvLWZvY3VzaW5nIG9uIGNsb3NlLlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25DbG9zZUF1dG9Gb2N1cz86IEZvY3VzU2NvcGVQcm9wc1snb25Vbm1vdW50QXV0b0ZvY3VzJ107XG59XG5cbmNvbnN0IERpYWxvZ0NvbnRlbnRJbXBsID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dDb250ZW50SW1wbEVsZW1lbnQsIERpYWxvZ0NvbnRlbnRJbXBsUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ0NvbnRlbnRJbXBsUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEaWFsb2csIHRyYXBGb2N1cywgb25PcGVuQXV0b0ZvY3VzLCBvbkNsb3NlQXV0b0ZvY3VzLCAuLi5jb250ZW50UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KENPTlRFTlRfTkFNRSwgX19zY29wZURpYWxvZyk7XG4gICAgY29uc3QgY29udGVudFJlZiA9IFJlYWN0LnVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgY29udGVudFJlZik7XG5cbiAgICAvLyBNYWtlIHN1cmUgdGhlIHdob2xlIHRyZWUgaGFzIGZvY3VzIGd1YXJkcyBhcyBvdXIgYERpYWxvZ2Agd2lsbCBiZVxuICAgIC8vIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIERPTSAoYmVjYXVzZSBvZiB0aGUgYFBvcnRhbGApXG4gICAgdXNlRm9jdXNHdWFyZHMoKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8Rm9jdXNTY29wZVxuICAgICAgICAgIGFzQ2hpbGRcbiAgICAgICAgICBsb29wXG4gICAgICAgICAgdHJhcHBlZD17dHJhcEZvY3VzfVxuICAgICAgICAgIG9uTW91bnRBdXRvRm9jdXM9e29uT3BlbkF1dG9Gb2N1c31cbiAgICAgICAgICBvblVubW91bnRBdXRvRm9jdXM9e29uQ2xvc2VBdXRvRm9jdXN9XG4gICAgICAgID5cbiAgICAgICAgICA8RGlzbWlzc2FibGVMYXllclxuICAgICAgICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICAgICAgICBpZD17Y29udGV4dC5jb250ZW50SWR9XG4gICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtjb250ZXh0LmRlc2NyaXB0aW9uSWR9XG4gICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e2NvbnRleHQudGl0bGVJZH1cbiAgICAgICAgICAgIGRhdGEtc3RhdGU9e2dldFN0YXRlKGNvbnRleHQub3Blbil9XG4gICAgICAgICAgICB7Li4uY29udGVudFByb3BzfVxuICAgICAgICAgICAgcmVmPXtjb21wb3NlZFJlZnN9XG4gICAgICAgICAgICBvbkRpc21pc3M9eygpID0+IGNvbnRleHQub25PcGVuQ2hhbmdlKGZhbHNlKX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0ZvY3VzU2NvcGU+XG4gICAgICAgIHtwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFRpdGxlV2FybmluZyB0aXRsZUlkPXtjb250ZXh0LnRpdGxlSWR9IC8+XG4gICAgICAgICAgICA8RGVzY3JpcHRpb25XYXJuaW5nIGNvbnRlbnRSZWY9e2NvbnRlbnRSZWZ9IGRlc2NyaXB0aW9uSWQ9e2NvbnRleHQuZGVzY3JpcHRpb25JZH0gLz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpYWxvZ1RpdGxlXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFRJVExFX05BTUUgPSAnRGlhbG9nVGl0bGUnO1xuXG50eXBlIERpYWxvZ1RpdGxlRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5oMj47XG50eXBlIFByaW1pdGl2ZUhlYWRpbmcyUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5oMj47XG5pbnRlcmZhY2UgRGlhbG9nVGl0bGVQcm9wcyBleHRlbmRzIFByaW1pdGl2ZUhlYWRpbmcyUHJvcHMge31cblxuY29uc3QgRGlhbG9nVGl0bGUgPSBSZWFjdC5mb3J3YXJkUmVmPERpYWxvZ1RpdGxlRWxlbWVudCwgRGlhbG9nVGl0bGVQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8RGlhbG9nVGl0bGVQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURpYWxvZywgLi4udGl0bGVQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoVElUTEVfTkFNRSwgX19zY29wZURpYWxvZyk7XG4gICAgcmV0dXJuIDxQcmltaXRpdmUuaDIgaWQ9e2NvbnRleHQudGl0bGVJZH0gey4uLnRpdGxlUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuRGlhbG9nVGl0bGUuZGlzcGxheU5hbWUgPSBUSVRMRV9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaWFsb2dEZXNjcmlwdGlvblxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBERVNDUklQVElPTl9OQU1FID0gJ0RpYWxvZ0Rlc2NyaXB0aW9uJztcblxudHlwZSBEaWFsb2dEZXNjcmlwdGlvbkVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUucD47XG50eXBlIFByaW1pdGl2ZVBhcmFncmFwaFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUucD47XG5pbnRlcmZhY2UgRGlhbG9nRGVzY3JpcHRpb25Qcm9wcyBleHRlbmRzIFByaW1pdGl2ZVBhcmFncmFwaFByb3BzIHt9XG5cbmNvbnN0IERpYWxvZ0Rlc2NyaXB0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxEaWFsb2dEZXNjcmlwdGlvbkVsZW1lbnQsIERpYWxvZ0Rlc2NyaXB0aW9uUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ0Rlc2NyaXB0aW9uUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEaWFsb2csIC4uLmRlc2NyaXB0aW9uUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VEaWFsb2dDb250ZXh0KERFU0NSSVBUSU9OX05BTUUsIF9fc2NvcGVEaWFsb2cpO1xuICAgIHJldHVybiA8UHJpbWl0aXZlLnAgaWQ9e2NvbnRleHQuZGVzY3JpcHRpb25JZH0gey4uLmRlc2NyaXB0aW9uUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuRGlhbG9nRGVzY3JpcHRpb24uZGlzcGxheU5hbWUgPSBERVNDUklQVElPTl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaWFsb2dDbG9zZVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDTE9TRV9OQU1FID0gJ0RpYWxvZ0Nsb3NlJztcblxudHlwZSBEaWFsb2dDbG9zZUVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuYnV0dG9uPjtcbmludGVyZmFjZSBEaWFsb2dDbG9zZVByb3BzIGV4dGVuZHMgUHJpbWl0aXZlQnV0dG9uUHJvcHMge31cblxuY29uc3QgRGlhbG9nQ2xvc2UgPSBSZWFjdC5mb3J3YXJkUmVmPERpYWxvZ0Nsb3NlRWxlbWVudCwgRGlhbG9nQ2xvc2VQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8RGlhbG9nQ2xvc2VQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURpYWxvZywgLi4uY2xvc2VQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoQ0xPU0VfTkFNRSwgX19zY29wZURpYWxvZyk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmltaXRpdmUuYnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICB7Li4uY2xvc2VQcm9wc31cbiAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgIG9uQ2xpY2s9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQ2xpY2ssICgpID0+IGNvbnRleHQub25PcGVuQ2hhbmdlKGZhbHNlKSl9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbik7XG5cbkRpYWxvZ0Nsb3NlLmRpc3BsYXlOYW1lID0gQ0xPU0VfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5mdW5jdGlvbiBnZXRTdGF0ZShvcGVuOiBib29sZWFuKSB7XG4gIHJldHVybiBvcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCc7XG59XG5cbmNvbnN0IFRJVExFX1dBUk5JTkdfTkFNRSA9ICdEaWFsb2dUaXRsZVdhcm5pbmcnO1xuXG5jb25zdCBbV2FybmluZ1Byb3ZpZGVyLCB1c2VXYXJuaW5nQ29udGV4dF0gPSBjcmVhdGVDb250ZXh0KFRJVExFX1dBUk5JTkdfTkFNRSwge1xuICBjb250ZW50TmFtZTogQ09OVEVOVF9OQU1FLFxuICB0aXRsZU5hbWU6IFRJVExFX05BTUUsXG4gIGRvY3NTbHVnOiAnZGlhbG9nJyxcbn0pO1xuXG50eXBlIFRpdGxlV2FybmluZ1Byb3BzID0geyB0aXRsZUlkPzogc3RyaW5nIH07XG5cbmNvbnN0IFRpdGxlV2FybmluZzogUmVhY3QuRkM8VGl0bGVXYXJuaW5nUHJvcHM+ID0gKHsgdGl0bGVJZCB9KSA9PiB7XG4gIGNvbnN0IHRpdGxlV2FybmluZ0NvbnRleHQgPSB1c2VXYXJuaW5nQ29udGV4dChUSVRMRV9XQVJOSU5HX05BTUUpO1xuXG4gIGNvbnN0IE1FU1NBR0UgPSBgXFxgJHt0aXRsZVdhcm5pbmdDb250ZXh0LmNvbnRlbnROYW1lfVxcYCByZXF1aXJlcyBhIFxcYCR7dGl0bGVXYXJuaW5nQ29udGV4dC50aXRsZU5hbWV9XFxgIGZvciB0aGUgY29tcG9uZW50IHRvIGJlIGFjY2Vzc2libGUgZm9yIHNjcmVlbiByZWFkZXIgdXNlcnMuXG5cbklmIHlvdSB3YW50IHRvIGhpZGUgdGhlIFxcYCR7dGl0bGVXYXJuaW5nQ29udGV4dC50aXRsZU5hbWV9XFxgLCB5b3UgY2FuIHdyYXAgaXQgd2l0aCBvdXIgVmlzdWFsbHlIaWRkZW4gY29tcG9uZW50LlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHBzOi8vcmFkaXgtdWkuY29tL3ByaW1pdGl2ZXMvZG9jcy9jb21wb25lbnRzLyR7dGl0bGVXYXJuaW5nQ29udGV4dC5kb2NzU2x1Z31gO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRpdGxlSWQpIHtcbiAgICAgIGNvbnN0IGhhc1RpdGxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGl0bGVJZCk7XG4gICAgICBpZiAoIWhhc1RpdGxlKSBjb25zb2xlLmVycm9yKE1FU1NBR0UpO1xuICAgIH1cbiAgfSwgW01FU1NBR0UsIHRpdGxlSWRdKTtcblxuICByZXR1cm4gbnVsbDtcbn07XG5cbmNvbnN0IERFU0NSSVBUSU9OX1dBUk5JTkdfTkFNRSA9ICdEaWFsb2dEZXNjcmlwdGlvbldhcm5pbmcnO1xuXG50eXBlIERlc2NyaXB0aW9uV2FybmluZ1Byb3BzID0ge1xuICBjb250ZW50UmVmOiBSZWFjdC5SZWZPYmplY3Q8RGlhbG9nQ29udGVudEVsZW1lbnQgfCBudWxsPjtcbiAgZGVzY3JpcHRpb25JZD86IHN0cmluZztcbn07XG5cbmNvbnN0IERlc2NyaXB0aW9uV2FybmluZzogUmVhY3QuRkM8RGVzY3JpcHRpb25XYXJuaW5nUHJvcHM+ID0gKHsgY29udGVudFJlZiwgZGVzY3JpcHRpb25JZCB9KSA9PiB7XG4gIGNvbnN0IGRlc2NyaXB0aW9uV2FybmluZ0NvbnRleHQgPSB1c2VXYXJuaW5nQ29udGV4dChERVNDUklQVElPTl9XQVJOSU5HX05BTUUpO1xuICBjb25zdCBNRVNTQUdFID0gYFdhcm5pbmc6IE1pc3NpbmcgXFxgRGVzY3JpcHRpb25cXGAgb3IgXFxgYXJpYS1kZXNjcmliZWRieT17dW5kZWZpbmVkfVxcYCBmb3IgeyR7ZGVzY3JpcHRpb25XYXJuaW5nQ29udGV4dC5jb250ZW50TmFtZX19LmA7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBkZXNjcmliZWRCeUlkID0gY29udGVudFJlZi5jdXJyZW50Py5nZXRBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknKTtcbiAgICAvLyBpZiB3ZSBoYXZlIGFuIGlkIGFuZCB0aGUgdXNlciBoYXNuJ3Qgc2V0IGFyaWEtZGVzY3JpYmVkYnk9e3VuZGVmaW5lZH1cbiAgICBpZiAoZGVzY3JpcHRpb25JZCAmJiBkZXNjcmliZWRCeUlkKSB7XG4gICAgICBjb25zdCBoYXNEZXNjcmlwdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRlc2NyaXB0aW9uSWQpO1xuICAgICAgaWYgKCFoYXNEZXNjcmlwdGlvbikgY29uc29sZS53YXJuKE1FU1NBR0UpO1xuICAgIH1cbiAgfSwgW01FU1NBR0UsIGNvbnRlbnRSZWYsIGRlc2NyaXB0aW9uSWRdKTtcblxuICByZXR1cm4gbnVsbDtcbn07XG5cbmNvbnN0IFJvb3QgPSBEaWFsb2c7XG5jb25zdCBUcmlnZ2VyID0gRGlhbG9nVHJpZ2dlcjtcbmNvbnN0IFBvcnRhbCA9IERpYWxvZ1BvcnRhbDtcbmNvbnN0IE92ZXJsYXkgPSBEaWFsb2dPdmVybGF5O1xuY29uc3QgQ29udGVudCA9IERpYWxvZ0NvbnRlbnQ7XG5jb25zdCBUaXRsZSA9IERpYWxvZ1RpdGxlO1xuY29uc3QgRGVzY3JpcHRpb24gPSBEaWFsb2dEZXNjcmlwdGlvbjtcbmNvbnN0IENsb3NlID0gRGlhbG9nQ2xvc2U7XG5cbmV4cG9ydCB7XG4gIGNyZWF0ZURpYWxvZ1Njb3BlLFxuICAvL1xuICBEaWFsb2csXG4gIERpYWxvZ1RyaWdnZXIsXG4gIERpYWxvZ1BvcnRhbCxcbiAgRGlhbG9nT3ZlcmxheSxcbiAgRGlhbG9nQ29udGVudCxcbiAgRGlhbG9nVGl0bGUsXG4gIERpYWxvZ0Rlc2NyaXB0aW9uLFxuICBEaWFsb2dDbG9zZSxcbiAgLy9cbiAgUm9vdCxcbiAgVHJpZ2dlcixcbiAgUG9ydGFsLFxuICBPdmVybGF5LFxuICBDb250ZW50LFxuICBUaXRsZSxcbiAgRGVzY3JpcHRpb24sXG4gIENsb3NlLFxuICAvL1xuICBXYXJuaW5nUHJvdmlkZXIsXG59O1xuZXhwb3J0IHR5cGUge1xuICBEaWFsb2dQcm9wcyxcbiAgRGlhbG9nVHJpZ2dlclByb3BzLFxuICBEaWFsb2dQb3J0YWxQcm9wcyxcbiAgRGlhbG9nT3ZlcmxheVByb3BzLFxuICBEaWFsb2dDb250ZW50UHJvcHMsXG4gIERpYWxvZ1RpdGxlUHJvcHMsXG4gIERpYWxvZ0Rlc2NyaXB0aW9uUHJvcHMsXG4gIERpYWxvZ0Nsb3NlUHJvcHMsXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dialog/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs":
/*!**********************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs ***!
\**********************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Slot: () => (/* binding */ Slot),\n/* harmony export */ Slottable: () => (/* binding */ Slottable)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/slot/src/Slot.tsx\n\n\n\nvar Slot = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (react__WEBPACK_IMPORTED_MODULE_0__.Children.count(newElement) > 1) return react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null);\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.composeRefs)(forwardedRef, childrenRef) : childrenRef\n });\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) > 1 ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children });\n};\nfunction isSlottable(child) {\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlhbG9nL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2xvdC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUM0QjtBQUNUO0FBQ2xELFdBQVcsNkNBQWdCO0FBQzNCLFVBQVUseUJBQXlCO0FBQ25DLHdCQUF3QiwyQ0FBYztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSwyQ0FBYywrQkFBK0IsMkNBQWM7QUFDdkUsZUFBZSxpREFBb0I7QUFDbkMsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsMkJBQTJCLHNEQUFHLGNBQWMsMkNBQTJDLGlEQUFvQixlQUFlLCtDQUFrQiwwQ0FBMEM7QUFDdEw7QUFDQSx5QkFBeUIsc0RBQUcsY0FBYywyQ0FBMkM7QUFDckYsQ0FBQztBQUNEO0FBQ0EsZ0JBQWdCLDZDQUFnQjtBQUNoQyxVQUFVLHlCQUF5QjtBQUNuQyxNQUFNLGlEQUFvQjtBQUMxQjtBQUNBLFdBQVcsK0NBQWtCO0FBQzdCO0FBQ0E7QUFDQSwwQkFBMEIseUVBQVc7QUFDckMsS0FBSztBQUNMO0FBQ0EsU0FBUywyQ0FBYyx1QkFBdUIsMkNBQWM7QUFDNUQsQ0FBQztBQUNEO0FBQ0EsbUJBQW1CLFVBQVU7QUFDN0IseUJBQXlCLHNEQUFHLENBQUMsdURBQVEsSUFBSSxVQUFVO0FBQ25EO0FBQ0E7QUFDQSxTQUFTLGlEQUFvQjtBQUM3QjtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0NBQWtDO0FBQ2xDLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0U7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRpYWxvZy9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3Qvc2xvdC9zcmMvU2xvdC50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcG9zZVJlZnMgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xuaW1wb3J0IHsgRnJhZ21lbnQsIGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIFNsb3QgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgY2hpbGRyZW4sIC4uLnNsb3RQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNoaWxkcmVuQXJyYXkgPSBSZWFjdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKTtcbiAgY29uc3Qgc2xvdHRhYmxlID0gY2hpbGRyZW5BcnJheS5maW5kKGlzU2xvdHRhYmxlKTtcbiAgaWYgKHNsb3R0YWJsZSkge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBzbG90dGFibGUucHJvcHMuY2hpbGRyZW47XG4gICAgY29uc3QgbmV3Q2hpbGRyZW4gPSBjaGlsZHJlbkFycmF5Lm1hcCgoY2hpbGQpID0+IHtcbiAgICAgIGlmIChjaGlsZCA9PT0gc2xvdHRhYmxlKSB7XG4gICAgICAgIGlmIChSZWFjdC5DaGlsZHJlbi5jb3VudChuZXdFbGVtZW50KSA+IDEpIHJldHVybiBSZWFjdC5DaGlsZHJlbi5vbmx5KG51bGwpO1xuICAgICAgICByZXR1cm4gUmVhY3QuaXNWYWxpZEVsZW1lbnQobmV3RWxlbWVudCkgPyBuZXdFbGVtZW50LnByb3BzLmNoaWxkcmVuIDogbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTbG90Q2xvbmUsIHsgLi4uc2xvdFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiwgY2hpbGRyZW46IFJlYWN0LmlzVmFsaWRFbGVtZW50KG5ld0VsZW1lbnQpID8gUmVhY3QuY2xvbmVFbGVtZW50KG5ld0VsZW1lbnQsIHZvaWQgMCwgbmV3Q2hpbGRyZW4pIDogbnVsbCB9KTtcbiAgfVxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTbG90Q2xvbmUsIHsgLi4uc2xvdFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiwgY2hpbGRyZW4gfSk7XG59KTtcblNsb3QuZGlzcGxheU5hbWUgPSBcIlNsb3RcIjtcbnZhciBTbG90Q2xvbmUgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgY2hpbGRyZW4sIC4uLnNsb3RQcm9wcyB9ID0gcHJvcHM7XG4gIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICBjb25zdCBjaGlsZHJlblJlZiA9IGdldEVsZW1lbnRSZWYoY2hpbGRyZW4pO1xuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHtcbiAgICAgIC4uLm1lcmdlUHJvcHMoc2xvdFByb3BzLCBjaGlsZHJlbi5wcm9wcyksXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZWY6IGZvcndhcmRlZFJlZiA/IGNvbXBvc2VSZWZzKGZvcndhcmRlZFJlZiwgY2hpbGRyZW5SZWYpIDogY2hpbGRyZW5SZWZcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gUmVhY3QuQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMSA/IFJlYWN0LkNoaWxkcmVuLm9ubHkobnVsbCkgOiBudWxsO1xufSk7XG5TbG90Q2xvbmUuZGlzcGxheU5hbWUgPSBcIlNsb3RDbG9uZVwiO1xudmFyIFNsb3R0YWJsZSA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goRnJhZ21lbnQsIHsgY2hpbGRyZW4gfSk7XG59O1xuZnVuY3Rpb24gaXNTbG90dGFibGUoY2hpbGQpIHtcbiAgcmV0dXJuIFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSAmJiBjaGlsZC50eXBlID09PSBTbG90dGFibGU7XG59XG5mdW5jdGlvbiBtZXJnZVByb3BzKHNsb3RQcm9wcywgY2hpbGRQcm9wcykge1xuICBjb25zdCBvdmVycmlkZVByb3BzID0geyAuLi5jaGlsZFByb3BzIH07XG4gIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gY2hpbGRQcm9wcykge1xuICAgIGNvbnN0IHNsb3RQcm9wVmFsdWUgPSBzbG90UHJvcHNbcHJvcE5hbWVdO1xuICAgIGNvbnN0IGNoaWxkUHJvcFZhbHVlID0gY2hpbGRQcm9wc1twcm9wTmFtZV07XG4gICAgY29uc3QgaXNIYW5kbGVyID0gL15vbltBLVpdLy50ZXN0KHByb3BOYW1lKTtcbiAgICBpZiAoaXNIYW5kbGVyKSB7XG4gICAgICBpZiAoc2xvdFByb3BWYWx1ZSAmJiBjaGlsZFByb3BWYWx1ZSkge1xuICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgY2hpbGRQcm9wVmFsdWUoLi4uYXJncyk7XG4gICAgICAgICAgc2xvdFByb3BWYWx1ZSguLi5hcmdzKTtcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAoc2xvdFByb3BWYWx1ZSkge1xuICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IHNsb3RQcm9wVmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wTmFtZSA9PT0gXCJzdHlsZVwiKSB7XG4gICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IHsgLi4uc2xvdFByb3BWYWx1ZSwgLi4uY2hpbGRQcm9wVmFsdWUgfTtcbiAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcImNsYXNzTmFtZVwiKSB7XG4gICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IFtzbG90UHJvcFZhbHVlLCBjaGlsZFByb3BWYWx1ZV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpO1xuICAgIH1cbiAgfVxuICByZXR1cm4geyAuLi5zbG90UHJvcHMsIC4uLm92ZXJyaWRlUHJvcHMgfTtcbn1cbmZ1bmN0aW9uIGdldEVsZW1lbnRSZWYoZWxlbWVudCkge1xuICBsZXQgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LnByb3BzLCBcInJlZlwiKT8uZ2V0O1xuICBsZXQgbWF5V2FybiA9IGdldHRlciAmJiBcImlzUmVhY3RXYXJuaW5nXCIgaW4gZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZztcbiAgaWYgKG1heVdhcm4pIHtcbiAgICByZXR1cm4gZWxlbWVudC5yZWY7XG4gIH1cbiAgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LCBcInJlZlwiKT8uZ2V0O1xuICBtYXlXYXJuID0gZ2V0dGVyICYmIFwiaXNSZWFjdFdhcm5pbmdcIiBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICBpZiAobWF5V2Fybikge1xuICAgIHJldHVybiBlbGVtZW50LnByb3BzLnJlZjtcbiAgfVxuICByZXR1cm4gZWxlbWVudC5wcm9wcy5yZWYgfHwgZWxlbWVudC5yZWY7XG59XG52YXIgUm9vdCA9IFNsb3Q7XG5leHBvcnQge1xuICBSb290LFxuICBTbG90LFxuICBTbG90dGFibGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-direction/dist/index.mjs":
/*!***************************************************************!*\
!*** ./node_modules/@radix-ui/react-direction/dist/index.mjs ***!
\***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DirectionProvider: () => (/* binding */ DirectionProvider),\n/* harmony export */ Provider: () => (/* binding */ Provider),\n/* harmony export */ useDirection: () => (/* binding */ useDirection)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/direction/src/Direction.tsx\n\n\nvar DirectionContext = react__WEBPACK_IMPORTED_MODULE_0__.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlyZWN0aW9uL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDK0I7QUFDUztBQUN4Qyx1QkFBdUIsZ0RBQW1CO0FBQzFDO0FBQ0EsVUFBVSxnQkFBZ0I7QUFDMUIseUJBQXlCLHNEQUFHLDhCQUE4QixzQkFBc0I7QUFDaEY7QUFDQTtBQUNBLG9CQUFvQiw2Q0FBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBS0U7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRpcmVjdGlvbi9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9kaXJlY3Rpb24vc3JjL0RpcmVjdGlvbi50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgRGlyZWN0aW9uQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQodm9pZCAwKTtcbnZhciBEaXJlY3Rpb25Qcm92aWRlciA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IGRpciwgY2hpbGRyZW4gfSA9IHByb3BzO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChEaXJlY3Rpb25Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBkaXIsIGNoaWxkcmVuIH0pO1xufTtcbmZ1bmN0aW9uIHVzZURpcmVjdGlvbihsb2NhbERpcikge1xuICBjb25zdCBnbG9iYWxEaXIgPSBSZWFjdC51c2VDb250ZXh0KERpcmVjdGlvbkNvbnRleHQpO1xuICByZXR1cm4gbG9jYWxEaXIgfHwgZ2xvYmFsRGlyIHx8IFwibHRyXCI7XG59XG52YXIgUHJvdmlkZXIgPSBEaXJlY3Rpb25Qcm92aWRlcjtcbmV4cG9ydCB7XG4gIERpcmVjdGlvblByb3ZpZGVyLFxuICBQcm92aWRlcixcbiAgdXNlRGlyZWN0aW9uXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-direction/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs":
/*!***********************************************************************!*\
!*** ./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs ***!
\***********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Branch: () => (/* binding */ Branch),\n/* harmony export */ DismissableLayer: () => (/* binding */ DismissableLayer),\n/* harmony export */ DismissableLayerBranch: () => (/* binding */ DismissableLayerBranch),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-escape-keydown */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Branch,DismissableLayer,DismissableLayerBranch,Root auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n// packages/react/dismissable-layer/src/DismissableLayer.tsx\n\n\n\n\n\n\n\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n var _globalThis;\n _s();\n const { disableOutsidePointerEvents = false, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, ...layerProps } = props;\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DismissableLayerContext);\n const [node, setNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n var _node_ownerDocument;\n const ownerDocument = (_node_ownerDocument = node === null || node === void 0 ? void 0 : node.ownerDocument) !== null && _node_ownerDocument !== void 0 ? _node_ownerDocument : (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.document;\n const [, force] = react__WEBPACK_IMPORTED_MODULE_0__.useState({});\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(forwardedRef, {\n \"DismissableLayer.useComposedRefs[composedRefs]\": (node2)=>setNode(node2)\n }[\"DismissableLayer.useComposedRefs[composedRefs]\"]);\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside({\n \"DismissableLayer.usePointerDownOutside[pointerDownOutside]\": (event)=>{\n const target = event.target;\n const isPointerDownOnBranch = [\n ...context.branches\n ].some({\n \"DismissableLayer.usePointerDownOutside[pointerDownOutside].isPointerDownOnBranch\": (branch)=>branch.contains(target)\n }[\"DismissableLayer.usePointerDownOutside[pointerDownOutside].isPointerDownOnBranch\"]);\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside === null || onPointerDownOutside === void 0 ? void 0 : onPointerDownOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 ? void 0 : onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();\n }\n }[\"DismissableLayer.usePointerDownOutside[pointerDownOutside]\"], ownerDocument);\n const focusOutside = useFocusOutside({\n \"DismissableLayer.useFocusOutside[focusOutside]\": (event)=>{\n const target = event.target;\n const isFocusInBranch = [\n ...context.branches\n ].some({\n \"DismissableLayer.useFocusOutside[focusOutside].isFocusInBranch\": (branch)=>branch.contains(target)\n }[\"DismissableLayer.useFocusOutside[focusOutside].isFocusInBranch\"]);\n if (isFocusInBranch) return;\n onFocusOutside === null || onFocusOutside === void 0 ? void 0 : onFocusOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 ? void 0 : onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();\n }\n }[\"DismissableLayer.useFocusOutside[focusOutside]\"], ownerDocument);\n (0,_radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown)({\n \"DismissableLayer.useEscapeKeydown\": (event)=>{\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown === null || onEscapeKeyDown === void 0 ? void 0 : onEscapeKeyDown(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }\n }[\"DismissableLayer.useEscapeKeydown\"], ownerDocument);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayer.useEffect\": ()=>{\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return ({\n \"DismissableLayer.useEffect\": ()=>{\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n }\n })[\"DismissableLayer.useEffect\"];\n }\n }[\"DismissableLayer.useEffect\"], [\n node,\n ownerDocument,\n disableOutsidePointerEvents,\n context\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayer.useEffect\": ()=>{\n return ({\n \"DismissableLayer.useEffect\": ()=>{\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n }\n })[\"DismissableLayer.useEffect\"];\n }\n }[\"DismissableLayer.useEffect\"], [\n node,\n context\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayer.useEffect\": ()=>{\n const handleUpdate = {\n \"DismissableLayer.useEffect.handleUpdate\": ()=>force({})\n }[\"DismissableLayer.useEffect.handleUpdate\"];\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return ({\n \"DismissableLayer.useEffect\": ()=>document.removeEventListener(CONTEXT_UPDATE, handleUpdate)\n })[\"DismissableLayer.useEffect\"];\n }\n }[\"DismissableLayer.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)\n });\n}, \"Cv1Mp9NkKD7dAs9oYGx4QOBfHI8=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs,\n usePointerDownOutside,\n useFocusOutside,\n _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown\n ];\n})), \"Cv1Mp9NkKD7dAs9oYGx4QOBfHI8=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs,\n usePointerDownOutside,\n useFocusOutside,\n _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown\n ];\n});\n_c1 = DismissableLayer;\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c2 = _s1((props, forwardedRef)=>{\n _s1();\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DismissableLayerContext);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(forwardedRef, ref);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayerBranch.useEffect\": ()=>{\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return ({\n \"DismissableLayerBranch.useEffect\": ()=>{\n context.branches.delete(node);\n }\n })[\"DismissableLayerBranch.useEffect\"];\n }\n }\n }[\"DismissableLayerBranch.useEffect\"], [\n context.branches\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...props,\n ref: composedRefs\n });\n}, \"GBdJ+COKIgE+yfoxVYovlSfvJLw=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs\n ];\n})), \"GBdJ+COKIgE+yfoxVYovlSfvJLw=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs\n ];\n});\n_c3 = DismissableLayerBranch;\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside) {\n let ownerDocument = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : (()=>{\n var _globalThis;\n return (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.document;\n })();\n _s2();\n const handlePointerDownOutside = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onPointerDownOutside);\n const isPointerInsideReactTreeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const handleClickRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef({\n \"usePointerDownOutside.useRef[handleClickRef]\": ()=>{}\n }[\"usePointerDownOutside.useRef[handleClickRef]\"]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"usePointerDownOutside.useEffect\": ()=>{\n const handlePointerDown = {\n \"usePointerDownOutside.useEffect.handlePointerDown\": (event)=>{\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = {\n \"usePointerDownOutside.useEffect.handlePointerDown.handleAndDispatchPointerDownOutsideEvent2\": function() {\n handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {\n discrete: true\n });\n }\n }[\"usePointerDownOutside.useEffect.handlePointerDown.handleAndDispatchPointerDownOutsideEvent2\"];\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = {\n originalEvent: event\n };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, {\n once: true\n });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n }\n }[\"usePointerDownOutside.useEffect.handlePointerDown\"];\n const timerId = window.setTimeout({\n \"usePointerDownOutside.useEffect.timerId\": ()=>{\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }\n }[\"usePointerDownOutside.useEffect.timerId\"], 0);\n return ({\n \"usePointerDownOutside.useEffect\": ()=>{\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n })[\"usePointerDownOutside.useEffect\"];\n }\n }[\"usePointerDownOutside.useEffect\"], [\n ownerDocument,\n handlePointerDownOutside\n ]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: ()=>isPointerInsideReactTreeRef.current = true\n };\n}\n_s2(usePointerDownOutside, \"M0Jqtgoae/27FfRizMxidmqs6b8=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef\n ];\n});\nfunction useFocusOutside(onFocusOutside) {\n let ownerDocument = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : (()=>{\n var _globalThis;\n return (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.document;\n })();\n _s3();\n const handleFocusOutside = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onFocusOutside);\n const isFocusInsideReactTreeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"useFocusOutside.useEffect\": ()=>{\n const handleFocus = {\n \"useFocusOutside.useEffect.handleFocus\": (event)=>{\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n }\n }[\"useFocusOutside.useEffect.handleFocus\"];\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return ({\n \"useFocusOutside.useEffect\": ()=>ownerDocument.removeEventListener(\"focusin\", handleFocus)\n })[\"useFocusOutside.useEffect\"];\n }\n }[\"useFocusOutside.useEffect\"], [\n ownerDocument,\n handleFocusOutside\n ]);\n return {\n onFocusCapture: ()=>isFocusInsideReactTreeRef.current = true,\n onBlurCapture: ()=>isFocusInsideReactTreeRef.current = false\n };\n}\n_s3(useFocusOutside, \"IjUuEsgpHwQc3lZUTypKaC1ceUQ=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef\n ];\n});\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, param) {\n let { discrete } = param;\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: true,\n detail\n });\n if (handler) target.addEventListener(name, handler, {\n once: true\n });\n if (discrete) {\n (0,_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.dispatchDiscreteCustomEvent)(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3;\n$RefreshReg$(_c, \"DismissableLayer$React.forwardRef\");\n$RefreshReg$(_c1, \"DismissableLayer\");\n$RefreshReg$(_c2, \"DismissableLayerBranch$React.forwardRef\");\n$RefreshReg$(_c3, \"DismissableLayerBranch\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXIvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ2tCO0FBQ3ZCO0FBQ0Q7QUFDRTtBQXFKM0I7QUEvSU4sSUFBTSx5QkFBeUI7QUFDL0IsSUFBTSxpQkFBaUI7QUFDdkIsSUFBTSx1QkFBdUI7QUFDN0IsSUFBTSxnQkFBZ0I7QUFFdEIsSUFBSTtBQUVKLElBQU0sd0NBQWdDLGlEQUFjO0lBQ2xELFFBQVEsb0JBQUksSUFBNkI7SUFDekMsd0NBQXdDLG9CQUFJLElBQTZCO0lBQ3pFLFVBQVUsb0JBQUksSUFBbUM7QUFDbkQsQ0FBQztBQXNDRCxJQUFNLG9DQUF5QixzREFDN0IsQ0FBQyxPQUFPO1FBWXVDOztJQVg3QyxNQUFNLEVBQ0osOEJBQThCLE9BQzlCLGlCQUNBLHNCQUNBLGdCQUNBLG1CQUNBLFdBQ0EsR0FBRyxZQUNMLEdBQUk7SUFDSixNQUFNLFVBQWdCLDhDQUFXLHVCQUF1QjtJQUN4RCxNQUFNLENBQUMsTUFBTSxPQUFPLElBQVUsNENBQXlDLElBQUk7UUFDckQ7SUFBdEIsTUFBTSx3RkFBc0IsdUtBQTZCO0lBQ3pELE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBVSw0Q0FBUyxDQUFDLENBQUM7SUFDbkMsTUFBTSxlQUFlLDZFQUFlLENBQUM7MERBQWMsQ0FBQ0EsUUFBUyxRQUFRQSxLQUFJLENBQUM7O0lBQzFFLE1BQU0sU0FBUyxNQUFNLEtBQUssUUFBUSxNQUFNO0lBQ3hDLE1BQU0sQ0FBQyw0Q0FBNEMsSUFBSSxDQUFDO1dBQUcsUUFBUSxzQ0FBc0M7S0FBQSxDQUFFLE1BQU0sRUFBRTtJQUNuSCxNQUFNLG9EQUFvRCxPQUFPLFFBQVEsNENBQTRDO0lBQ3JILE1BQU0sUUFBUSxPQUFPLE9BQU8sUUFBUSxJQUFJLElBQUk7SUFDNUMsTUFBTSw4QkFBOEIsUUFBUSx1Q0FBdUMs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LElBQUksWUFBWSxNQUFNO1FBQUUsU0FBUztRQUFPLFlBQVk7UUFBTTtJQUFPLENBQUM7SUFDaEYsSUFBSSxRQUFTLFFBQU8saUJBQWlCLE1BQU0sU0FBMEI7UUFBRSxNQUFNO0lBQUssQ0FBQztJQUVuRixJQUFJLFVBQVU7UUFDWixzRkFBMkIsQ0FBQyxRQUFRLEtBQUs7SUFDM0MsT0FBTztRQUNMLE9BQU8sY0FBYyxLQUFLO0lBQzVCO0FBQ0Y7QUFFQSxJQUFNLE9BQU87QUFDYixJQUFNLFNBQVMiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9zcmMvRGlzbWlzc2FibGVMYXllci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tICdAcmFkaXgtdWkvcHJpbWl0aXZlJztcbmltcG9ydCB7IFByaW1pdGl2ZSwgZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50IH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1jYWxsYmFjay1yZWYnO1xuaW1wb3J0IHsgdXNlRXNjYXBlS2V5ZG93biB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtZXNjYXBlLWtleWRvd24nO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaXNtaXNzYWJsZUxheWVyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IERJU01JU1NBQkxFX0xBWUVSX05BTUUgPSAnRGlzbWlzc2FibGVMYXllcic7XG5jb25zdCBDT05URVhUX1VQREFURSA9ICdkaXNtaXNzYWJsZUxheWVyLnVwZGF0ZSc7XG5jb25zdCBQT0lOVEVSX0RPV05fT1VUU0lERSA9ICdkaXNtaXNzYWJsZUxheWVyLnBvaW50ZXJEb3duT3V0c2lkZSc7XG5jb25zdCBGT0NVU19PVVRTSURFID0gJ2Rpc21pc3NhYmxlTGF5ZXIuZm9jdXNPdXRzaWRlJztcblxubGV0IG9yaWdpbmFsQm9keVBvaW50ZXJFdmVudHM6IHN0cmluZztcblxuY29uc3QgRGlzbWlzc2FibGVMYXllckNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHtcbiAgbGF5ZXJzOiBuZXcgU2V0PERpc21pc3NhYmxlTGF5ZXJFbGVtZW50PigpLFxuICBsYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZDogbmV3IFNldDxEaXNtaXNzYWJsZUxheWVyRWxlbWVudD4oKSxcbiAgYnJhbmNoZXM6IG5ldyBTZXQ8RGlzbWlzc2FibGVMYXllckJyYW5jaEVsZW1lbnQ+KCksXG59KTtcblxudHlwZSBEaXNtaXNzYWJsZUxheWVyRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBQcmltaXRpdmVEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgRGlzbWlzc2FibGVMYXllclByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIGhvdmVyL2ZvY3VzL2NsaWNrIGludGVyYWN0aW9ucyB3aWxsIGJlIGRpc2FibGVkIG9uIGVsZW1lbnRzIG91dHNpZGVcbiAgICogdGhlIGBEaXNtaXNzYWJsZUxheWVyYC4gVXNlcnMgd2lsbCBuZWVkIHRvIGNsaWNrIHR3aWNlIG9uIG91dHNpZGUgZWxlbWVudHMgdG9cbiAgICogaW50ZXJhY3Qgd2l0aCB0aGVtOiBvbmNlIHRvIGNsb3NlIHRoZSBgRGlzbWlzc2FibGVMYXllcmAsIGFuZCBhZ2FpbiB0byB0cmlnZ2VyIHRoZSBlbGVtZW50LlxuICAgKi9cbiAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIGVzY2FwZSBrZXkgaXMgZG93bi5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uRXNjYXBlS2V5RG93bj86IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIGEgYHBvaW50ZXJkb3duYCBldmVudCBoYXBwZW5zIG91dHNpZGUgb2YgdGhlIGBEaXNtaXNzYWJsZUxheWVyYC5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uUG9pbnRlckRvd25PdXRzaWRlPzogKGV2ZW50OiBQb2ludGVyRG93bk91dHNpZGVFdmVudCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIGZvY3VzIG1vdmVzIG91dHNpZGUgb2YgdGhlIGBEaXNtaXNzYWJsZUxheWVyYC5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uRm9jdXNPdXRzaWRlPzogKGV2ZW50OiBGb2N1c091dHNpZGVFdmVudCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gYW4gaW50ZXJhY3Rpb24gaGFwcGVucyBvdXRzaWRlIHRoZSBgRGlzbWlzc2FibGVMYXllcmAuXG4gICAqIFNwZWNpZmljYWxseSwgd2hlbiBhIGBwb2ludGVyZG93bmAgZXZlbnQgaGFwcGVucyBvdXRzaWRlIG9yIGZvY3VzIG1vdmVzIG91dHNpZGUgb2YgaXQuXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvbkludGVyYWN0T3V0c2lkZT86IChldmVudDogUG9pbnRlckRvd25PdXRzaWRlRXZlbnQgfCBGb2N1c091dHNpZGVFdmVudCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIEhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIGBEaXNtaXNzYWJsZUxheWVyYCBzaG91bGQgYmUgZGlzbWlzc2VkXG4gICAqL1xuICBvbkRpc21pc3M/OiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBEaXNtaXNzYWJsZUxheWVyID0gUmVhY3QuZm9yd2FyZFJlZjxEaXNtaXNzYWJsZUxheWVyRWxlbWVudCwgRGlzbWlzc2FibGVMYXllclByb3BzPihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMgPSBmYWxzZSxcbiAgICAgIG9uRXNjYXBlS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckRvd25PdXRzaWRlLFxuICAgICAgb25Gb2N1c091dHNpZGUsXG4gICAgICBvbkludGVyYWN0T3V0c2lkZSxcbiAgICAgIG9uRGlzbWlzcyxcbiAgICAgIC4uLmxheWVyUHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRGlzbWlzc2FibGVMYXllckNvbnRleHQpO1xuICAgIGNvbnN0IFtub2RlLCBzZXROb2RlXSA9IFJlYWN0LnVzZVN0YXRlPERpc21pc3NhYmxlTGF5ZXJFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3Qgb3duZXJEb2N1bWVudCA9IG5vZGU/Lm93bmVyRG9jdW1lbnQgPz8gZ2xvYmFsVGhpcz8uZG9jdW1lbnQ7XG4gICAgY29uc3QgWywgZm9yY2VdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIChub2RlKSA9PiBzZXROb2RlKG5vZGUpKTtcbiAgICBjb25zdCBsYXllcnMgPSBBcnJheS5mcm9tKGNvbnRleHQubGF5ZXJzKTtcbiAgICBjb25zdCBbaGlnaGVzdExheWVyV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWRdID0gWy4uLmNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWRdLnNsaWNlKC0xKTsgLy8gcHJldHRpZXItaWdub3JlXG4gICAgY29uc3QgaGlnaGVzdExheWVyV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWRJbmRleCA9IGxheWVycy5pbmRleE9mKGhpZ2hlc3RMYXllcldpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkKTsgLy8gcHJldHRpZXItaWdub3JlXG4gICAgY29uc3QgaW5kZXggPSBub2RlID8gbGF5ZXJzLmluZGV4T2Yobm9kZSkgOiAtMTtcbiAgICBjb25zdCBpc0JvZHlQb2ludGVyRXZlbnRzRGlzYWJsZWQgPSBjb250ZXh0LmxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkLnNpemUgPiAwO1xuICAgIGNvbnN0IGlzUG9pbnRlckV2ZW50c0VuYWJsZWQgPSBpbmRleCA+PSBoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZEluZGV4O1xuXG4gICAgY29uc3QgcG9pbnRlckRvd25PdXRzaWRlID0gdXNlUG9pbnRlckRvd25PdXRzaWRlKChldmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgaXNQb2ludGVyRG93bk9uQnJhbmNoID0gWy4uLmNvbnRleHQuYnJhbmNoZXNdLnNvbWUoKGJyYW5jaCkgPT4gYnJhbmNoLmNvbnRhaW5zKHRhcmdldCkpO1xuICAgICAgaWYgKCFpc1BvaW50ZXJFdmVudHNFbmFibGVkIHx8IGlzUG9pbnRlckRvd25PbkJyYW5jaCkgcmV0dXJuO1xuICAgICAgb25Qb2ludGVyRG93bk91dHNpZGU/LihldmVudCk7XG4gICAgICBvbkludGVyYWN0T3V0c2lkZT8uKGV2ZW50KTtcbiAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkgb25EaXNtaXNzPy4oKTtcbiAgICB9LCBvd25lckRvY3VtZW50KTtcblxuICAgIGNvbnN0IGZvY3VzT3V0c2lkZSA9IHVzZUZvY3VzT3V0c2lkZSgoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IGlzRm9jdXNJbkJyYW5jaCA9IFsuLi5jb250ZXh0LmJyYW5jaGVzXS5zb21lKChicmFuY2gpID0+IGJyYW5jaC5jb250YWlucyh0YXJnZXQpKTtcbiAgICAgIGlmIChpc0ZvY3VzSW5CcmFuY2gpIHJldHVybjtcbiAgICAgIG9uRm9jdXNPdXRzaWRlPy4oZXZlbnQpO1xuICAgICAgb25JbnRlcmFjdE91dHNpZGU/LihldmVudCk7XG4gICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIG9uRGlzbWlzcz8uKCk7XG4gICAgfSwgb3duZXJEb2N1bWVudCk7XG5cbiAgICB1c2VFc2NhcGVLZXlkb3duKChldmVudCkgPT4ge1xuICAgICAgY29uc3QgaXNIaWdoZXN0TGF5ZXIgPSBpbmRleCA9PT0gY29udGV4dC5sYXllcnMuc2l6ZSAtIDE7XG4gICAgICBpZiAoIWlzSGlnaGVzdExheWVyKSByZXR1cm47XG4gICAgICBvbkVzY2FwZUtleURvd24/LihldmVudCk7XG4gICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgJiYgb25EaXNtaXNzKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG9uRGlzbWlzcygpO1xuICAgICAgfVxuICAgIH0sIG93bmVyRG9jdW1lbnQpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghbm9kZSkgcmV0dXJuO1xuICAgICAgaWYgKGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cykge1xuICAgICAgICBpZiAoY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZC5zaXplID09PSAwKSB7XG4gICAgICAgICAgb3JpZ2luYWxCb2R5UG9pbnRlckV2ZW50cyA9IG93bmVyRG9jdW1lbnQuYm9keS5zdHlsZS5wb2ludGVyRXZlbnRzO1xuICAgICAgICAgIG93bmVyRG9jdW1lbnQuYm9keS5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuYWRkKG5vZGUpO1xuICAgICAgfVxuICAgICAgY29udGV4dC5sYXllcnMuYWRkKG5vZGUpO1xuICAgICAgZGlzcGF0Y2hVcGRhdGUoKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMgJiZcbiAgICAgICAgICBjb250ZXh0LmxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkLnNpemUgPT09IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgb3duZXJEb2N1bWVudC5ib2R5LnN0eWxlLnBvaW50ZXJFdmVudHMgPSBvcmlnaW5hbEJvZHlQb2ludGVyRXZlbnRzO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sIFtub2RlLCBvd25lckRvY3VtZW50LCBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMsIGNvbnRleHRdKTtcblxuICAgIC8qKlxuICAgICAqIFdlIHB1cnBvc2VmdWxseSBwcmV2ZW50IGNvbWJpbmluZyB0aGlzIGVmZmVjdCB3aXRoIHRoZSBgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzYCBlZmZlY3RcbiAgICAgKiBiZWNhdXNlIGEgY2hhbmdlIHRvIGBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHNgIHdvdWxkIHJlbW92ZSB0aGlzIGxheWVyIGZyb20gdGhlIHN0YWNrXG4gICAgICogYW5kIGFkZCBpdCB0byB0aGUgZW5kIGFnYWluIHNvIHRoZSBsYXllcmluZyBvcmRlciB3b3VsZG4ndCBiZSBfY3JlYXRpb24gb3JkZXJfLlxuICAgICAqIFdlIG9ubHkgd2FudCB0aGVtIHRvIGJlIHJlbW92ZWQgZnJvbSBjb250ZXh0IHN0YWNrcyB3aGVuIHVubW91bnRlZC5cbiAgICAgKi9cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKCFub2RlKSByZXR1cm47XG4gICAgICAgIGNvbnRleHQubGF5ZXJzLmRlbGV0ZShub2RlKTtcbiAgICAgICAgY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZC5kZWxldGUobm9kZSk7XG4gICAgICAgIGRpc3BhdGNoVXBkYXRlKCk7XG4gICAgICB9O1xuICAgIH0sIFtub2RlLCBjb250ZXh0XSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlVXBkYXRlID0gKCkgPT4gZm9yY2Uoe30pO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihDT05URVhUX1VQREFURSwgaGFuZGxlVXBkYXRlKTtcbiAgICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKENPTlRFWFRfVVBEQVRFLCBoYW5kbGVVcGRhdGUpO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICB7Li4ubGF5ZXJQcm9wc31cbiAgICAgICAgcmVmPXtjb21wb3NlZFJlZnN9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgcG9pbnRlckV2ZW50czogaXNCb2R5UG9pbnRlckV2ZW50c0Rpc2FibGVkXG4gICAgICAgICAgICA/IGlzUG9pbnRlckV2ZW50c0VuYWJsZWRcbiAgICAgICAgICAgICAgPyAnYXV0bydcbiAgICAgICAgICAgICAgOiAnbm9uZSdcbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIC4uLnByb3BzLnN0eWxlLFxuICAgICAgICB9fVxuICAgICAgICBvbkZvY3VzQ2FwdHVyZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Gb2N1c0NhcHR1cmUsIGZvY3VzT3V0c2lkZS5vbkZvY3VzQ2FwdHVyZSl9XG4gICAgICAgIG9uQmx1ckNhcHR1cmU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQmx1ckNhcHR1cmUsIGZvY3VzT3V0c2lkZS5vbkJsdXJDYXB0dXJlKX1cbiAgICAgICAgb25Qb2ludGVyRG93bkNhcHR1cmU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKFxuICAgICAgICAgIHByb3BzLm9uUG9pbnRlckRvd25DYXB0dXJlLFxuICAgICAgICAgIHBvaW50ZXJEb3duT3V0c2lkZS5vblBvaW50ZXJEb3duQ2FwdHVyZVxuICAgICAgICApfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5EaXNtaXNzYWJsZUxheWVyLmRpc3BsYXlOYW1lID0gRElTTUlTU0FCTEVfTEFZRVJfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlzbWlzc2FibGVMYXllckJyYW5jaFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBCUkFOQ0hfTkFNRSA9ICdEaXNtaXNzYWJsZUxheWVyQnJhbmNoJztcblxudHlwZSBEaXNtaXNzYWJsZUxheWVyQnJhbmNoRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIERpc21pc3NhYmxlTGF5ZXJCcmFuY2hQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHt9XG5cbmNvbnN0IERpc21pc3NhYmxlTGF5ZXJCcmFuY2ggPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBEaXNtaXNzYWJsZUxheWVyQnJhbmNoRWxlbWVudCxcbiAgRGlzbWlzc2FibGVMYXllckJyYW5jaFByb3BzXG4+KChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KERpc21pc3NhYmxlTGF5ZXJDb250ZXh0KTtcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPERpc21pc3NhYmxlTGF5ZXJCcmFuY2hFbGVtZW50PihudWxsKTtcbiAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgcmVmKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG5vZGUgPSByZWYuY3VycmVudDtcbiAgICBpZiAobm9kZSkge1xuICAgICAgY29udGV4dC5icmFuY2hlcy5hZGQobm9kZSk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBjb250ZXh0LmJyYW5jaGVzLmRlbGV0ZShub2RlKTtcbiAgICAgIH07XG4gICAgfVxuICB9LCBbY29udGV4dC5icmFuY2hlc10pO1xuXG4gIHJldHVybiA8UHJpbWl0aXZlLmRpdiB7Li4ucHJvcHN9IHJlZj17Y29tcG9zZWRSZWZzfSAvPjtcbn0pO1xuXG5EaXNtaXNzYWJsZUxheWVyQnJhbmNoLmRpc3BsYXlOYW1lID0gQlJBTkNIX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxudHlwZSBQb2ludGVyRG93bk91dHNpZGVFdmVudCA9IEN1c3RvbUV2ZW50PHsgb3JpZ2luYWxFdmVudDogUG9pbnRlckV2ZW50IH0+O1xudHlwZSBGb2N1c091dHNpZGVFdmVudCA9IEN1c3RvbUV2ZW50PHsgb3JpZ2luYWxFdmVudDogRm9jdXNFdmVudCB9PjtcblxuLyoqXG4gKiBMaXN0ZW5zIGZvciBgcG9pbnRlcmRvd25gIG91dHNpZGUgYSByZWFjdCBzdWJ0cmVlLiBXZSB1c2UgYHBvaW50ZXJkb3duYCByYXRoZXIgdGhhbiBgcG9pbnRlcnVwYFxuICogdG8gbWltaWMgbGF5ZXIgZGlzbWlzc2luZyBiZWhhdmlvdXIgcHJlc2VudCBpbiBPUy5cbiAqIFJldHVybnMgcHJvcHMgdG8gcGFzcyB0byB0aGUgbm9kZSB3ZSB3YW50IHRvIGNoZWNrIGZvciBvdXRzaWRlIGV2ZW50cy5cbiAqL1xuZnVuY3Rpb24gdXNlUG9pbnRlckRvd25PdXRzaWRlKFxuICBvblBvaW50ZXJEb3duT3V0c2lkZT86IChldmVudDogUG9pbnRlckRvd25PdXRzaWRlRXZlbnQpID0+IHZvaWQsXG4gIG93bmVyRG9jdW1lbnQ6IERvY3VtZW50ID0gZ2xvYmFsVGhpcz8uZG9jdW1lbnRcbikge1xuICBjb25zdCBoYW5kbGVQb2ludGVyRG93bk91dHNpZGUgPSB1c2VDYWxsYmFja1JlZihvblBvaW50ZXJEb3duT3V0c2lkZSkgYXMgRXZlbnRMaXN0ZW5lcjtcbiAgY29uc3QgaXNQb2ludGVySW5zaWRlUmVhY3RUcmVlUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgaGFuZGxlQ2xpY2tSZWYgPSBSZWFjdC51c2VSZWYoKCkgPT4ge30pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlUG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LnRhcmdldCAmJiAhaXNQb2ludGVySW5zaWRlUmVhY3RUcmVlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgZXZlbnREZXRhaWwgPSB7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50IH07XG5cbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlQW5kRGlzcGF0Y2hQb2ludGVyRG93bk91dHNpZGVFdmVudCgpIHtcbiAgICAgICAgICBoYW5kbGVBbmREaXNwYXRjaEN1c3RvbUV2ZW50KFxuICAgICAgICAgICAgUE9JTlRFUl9ET1dOX09VVFNJREUsXG4gICAgICAgICAgICBoYW5kbGVQb2ludGVyRG93bk91dHNpZGUsXG4gICAgICAgICAgICBldmVudERldGFpbCxcbiAgICAgICAgICAgIHsgZGlzY3JldGU6IHRydWUgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogT24gdG91Y2ggZGV2aWNlcywgd2UgbmVlZCB0byB3YWl0IGZvciBhIGNsaWNrIGV2ZW50IGJlY2F1c2UgYnJvd3NlcnMgaW1wbGVtZW50XG4gICAgICAgICAqIGEgfjM1MG1zIGRlbGF5IGJldHdlZW4gdGhlIHRpbWUgdGhlIHVzZXIgc3RvcHMgdG91Y2hpbmcgdGhlIGRpc3BsYXkgYW5kIHdoZW4gdGhlXG4gICAgICAgICAqIGJyb3dzZXIgZXhlY3V0cmVzIGV2ZW50cy4gV2UgbmVlZCB0byBlbnN1cmUgd2UgZG9uJ3QgcmVhY3RpdmF0ZSBwb2ludGVyLWV2ZW50cyB3aXRoaW5cbiAgICAgICAgICogdGhpcyB0aW1lZnJhbWUgb3RoZXJ3aXNlIHRoZSBicm93c2VyIG1heSBleGVjdXRlIGV2ZW50cyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gcHJldmVudGVkLlxuICAgICAgICAgKlxuICAgICAgICAgKiBBZGRpdGlvbmFsbHksIHRoaXMgYWxzbyBsZXRzIHVzIGRlYWwgYXV0b21hdGljYWxseSB3aXRoIGNhbmNlbGxhdGlvbnMgd2hlbiBhIGNsaWNrIGV2ZW50XG4gICAgICAgICAqIGlzbid0IHJhaXNlZCBiZWNhdXNlIHRoZSBwYWdlIHdhcyBjb25zaWRlcmVkIHNjcm9sbGVkL2RyYWctc2Nyb2xsZWQsIGxvbmctcHJlc3NlZCwgZXRjLlxuICAgICAgICAgKlxuICAgICAgICAgKiBUaGlzIGlzIHdoeSB3ZSBhbHNvIGNvbnRpbnVvdXNseSByZW1vdmUgdGhlIHByZXZpb3VzIGxpc3RlbmVyLCBiZWNhdXNlIHdlIGNhbm5vdCBiZVxuICAgICAgICAgKiBjZXJ0YWluIHRoYXQgaXQgd2FzIHJhaXNlZCwgYW5kIHRoZXJlZm9yZSBjbGVhbmVkLXVwLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGV2ZW50LnBvaW50ZXJUeXBlID09PSAndG91Y2gnKSB7XG4gICAgICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrUmVmLmN1cnJlbnQpO1xuICAgICAgICAgIGhhbmRsZUNsaWNrUmVmLmN1cnJlbnQgPSBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50O1xuICAgICAgICAgIG93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja1JlZi5jdXJyZW50LCB7IG9uY2U6IHRydWUgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaGFuZGxlQW5kRGlzcGF0Y2hQb2ludGVyRG93bk91dHNpZGVFdmVudCgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXZSBuZWVkIHRvIHJlbW92ZSB0aGUgZXZlbnQgbGlzdGVuZXIgaW4gY2FzZSB0aGUgb3V0c2lkZSBjbGljayBoYXMgYmVlbiBjYW5jZWxlZC5cbiAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vcmFkaXgtdWkvcHJpbWl0aXZlcy9pc3N1ZXMvMjE3MVxuICAgICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgICBpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogaWYgdGhpcyBob29rIGV4ZWN1dGVzIGluIGEgY29tcG9uZW50IHRoYXQgbW91bnRzIHZpYSBhIGBwb2ludGVyZG93bmAgZXZlbnQsIHRoZSBldmVudFxuICAgICAqIHdvdWxkIGJ1YmJsZSB1cCB0byB0aGUgZG9jdW1lbnQgYW5kIHRyaWdnZXIgYSBgcG9pbnRlckRvd25PdXRzaWRlYCBldmVudC4gV2UgYXZvaWRcbiAgICAgKiB0aGlzIGJ5IGRlbGF5aW5nIHRoZSBldmVudCBsaXN0ZW5lciByZWdpc3RyYXRpb24gb24gdGhlIGRvY3VtZW50LlxuICAgICAqIFRoaXMgaXMgbm90IFJlYWN0IHNwZWNpZmljLCBidXQgcmF0aGVyIGhvdyB0aGUgRE9NIHdvcmtzLCBpZTpcbiAgICAgKiBgYGBcbiAgICAgKiBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCAoKSA9PiB7XG4gICAgICogICBjb25zb2xlLmxvZygnSSB3aWxsIGxvZycpO1xuICAgICAqICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCAoKSA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKCdJIHdpbGwgYWxzbyBsb2cnKTtcbiAgICAgKiAgIH0pXG4gICAgICogfSk7XG4gICAgICovXG4gICAgY29uc3QgdGltZXJJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIG93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBoYW5kbGVQb2ludGVyRG93bik7XG4gICAgfSwgMCk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXJJZCk7XG4gICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgaGFuZGxlUG9pbnRlckRvd24pO1xuICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrUmVmLmN1cnJlbnQpO1xuICAgIH07XG4gIH0sIFtvd25lckRvY3VtZW50LCBoYW5kbGVQb2ludGVyRG93bk91dHNpZGVdKTtcblxuICByZXR1cm4ge1xuICAgIC8vIGVuc3VyZXMgd2UgY2hlY2sgUmVhY3QgY29tcG9uZW50IHRyZWUgKG5vdCBqdXN0IERPTSB0cmVlKVxuICAgIG9uUG9pbnRlckRvd25DYXB0dXJlOiAoKSA9PiAoaXNQb2ludGVySW5zaWRlUmVhY3RUcmVlUmVmLmN1cnJlbnQgPSB0cnVlKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBMaXN0ZW5zIGZvciB3aGVuIGZvY3VzIGhhcHBlbnMgb3V0c2lkZSBhIHJlYWN0IHN1YnRyZWUuXG4gKiBSZXR1cm5zIHByb3BzIHRvIHBhc3MgdG8gdGhlIHJvb3QgKG5vZGUpIG9mIHRoZSBzdWJ0cmVlIHdlIHdhbnQgdG8gY2hlY2suXG4gKi9cbmZ1bmN0aW9uIHVzZUZvY3VzT3V0c2lkZShcbiAgb25Gb2N1c091dHNpZGU/OiAoZXZlbnQ6IEZvY3VzT3V0c2lkZUV2ZW50KSA9PiB2b2lkLFxuICBvd25lckRvY3VtZW50OiBEb2N1bWVudCA9IGdsb2JhbFRoaXM/LmRvY3VtZW50XG4pIHtcbiAgY29uc3QgaGFuZGxlRm9jdXNPdXRzaWRlID0gdXNlQ2FsbGJhY2tSZWYob25Gb2N1c091dHNpZGUpIGFzIEV2ZW50TGlzdGVuZXI7XG4gIGNvbnN0IGlzRm9jdXNJbnNpZGVSZWFjdFRyZWVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlRm9jdXMgPSAoZXZlbnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC50YXJnZXQgJiYgIWlzRm9jdXNJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCkge1xuICAgICAgICBjb25zdCBldmVudERldGFpbCA9IHsgb3JpZ2luYWxFdmVudDogZXZlbnQgfTtcbiAgICAgICAgaGFuZGxlQW5kRGlzcGF0Y2hDdXN0b21FdmVudChGT0NVU19PVVRTSURFLCBoYW5kbGVGb2N1c091dHNpZGUsIGV2ZW50RGV0YWlsLCB7XG4gICAgICAgICAgZGlzY3JldGU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIG93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIGhhbmRsZUZvY3VzKTtcbiAgICByZXR1cm4gKCkgPT4gb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c2luJywgaGFuZGxlRm9jdXMpO1xuICB9LCBbb3duZXJEb2N1bWVudCwgaGFuZGxlRm9jdXNPdXRzaWRlXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBvbkZvY3VzQ2FwdHVyZTogKCkgPT4gKGlzRm9jdXNJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IHRydWUpLFxuICAgIG9uQmx1ckNhcHR1cmU6ICgpID0+IChpc0ZvY3VzSW5zaWRlUmVhY3RUcmVlUmVmLmN1cnJlbnQgPSBmYWxzZSksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGRpc3BhdGNoVXBkYXRlKCkge1xuICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudChDT05URVhUX1VQREFURSk7XG4gIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVBbmREaXNwYXRjaEN1c3RvbUV2ZW50PEUgZXh0ZW5kcyBDdXN0b21FdmVudCwgT3JpZ2luYWxFdmVudCBleHRlbmRzIEV2ZW50PihcbiAgbmFtZTogc3RyaW5nLFxuICBoYW5kbGVyOiAoKGV2ZW50OiBFKSA9PiB2b2lkKSB8IHVuZGVmaW5lZCxcbiAgZGV0YWlsOiB7IG9yaWdpbmFsRXZlbnQ6IE9yaWdpbmFsRXZlbnQgfSAmIChFIGV4dGVuZHMgQ3VzdG9tRXZlbnQ8aW5mZXIgRD4gPyBEIDogbmV2ZXIpLFxuICB7IGRpc2NyZXRlIH06IHsgZGlzY3JldGU6IGJvb2xlYW4gfVxuKSB7XG4gIGNvbnN0IHRhcmdldCA9IGRldGFpbC5vcmlnaW5hbEV2ZW50LnRhcmdldDtcbiAgY29uc3QgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQobmFtZSwgeyBidWJibGVzOiBmYWxzZSwgY2FuY2VsYWJsZTogdHJ1ZSwgZGV0YWlsIH0pO1xuICBpZiAoaGFuZGxlcikgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgaGFuZGxlciBhcyBFdmVudExpc3RlbmVyLCB7IG9uY2U6IHRydWUgfSk7XG5cbiAgaWYgKGRpc2NyZXRlKSB7XG4gICAgZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50KHRhcmdldCwgZXZlbnQpO1xuICB9IGVsc2Uge1xuICAgIHRhcmdldC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfVxufVxuXG5jb25zdCBSb290ID0gRGlzbWlzc2FibGVMYXllcjtcbmNvbnN0IEJyYW5jaCA9IERpc21pc3NhYmxlTGF5ZXJCcmFuY2g7XG5cbmV4cG9ydCB7XG4gIERpc21pc3NhYmxlTGF5ZXIsXG4gIERpc21pc3NhYmxlTGF5ZXJCcmFuY2gsXG4gIC8vXG4gIFJvb3QsXG4gIEJyYW5jaCxcbn07XG5leHBvcnQgdHlwZSB7IERpc21pc3NhYmxlTGF5ZXJQcm9wcyB9O1xuIl0sIm5hbWVzIjpbIm5vZGUiLCJoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs":
/*!*******************************************************************!*\
!*** ./node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs ***!
\*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Arrow: () => (/* binding */ Arrow2),\n/* harmony export */ CheckboxItem: () => (/* binding */ CheckboxItem2),\n/* harmony export */ Content: () => (/* binding */ Content2),\n/* harmony export */ DropdownMenu: () => (/* binding */ DropdownMenu),\n/* harmony export */ DropdownMenuArrow: () => (/* binding */ DropdownMenuArrow),\n/* harmony export */ DropdownMenuCheckboxItem: () => (/* binding */ DropdownMenuCheckboxItem),\n/* harmony export */ DropdownMenuContent: () => (/* binding */ DropdownMenuContent),\n/* harmony export */ DropdownMenuGroup: () => (/* binding */ DropdownMenuGroup),\n/* harmony export */ DropdownMenuItem: () => (/* binding */ DropdownMenuItem),\n/* harmony export */ DropdownMenuItemIndicator: () => (/* binding */ DropdownMenuItemIndicator),\n/* harmony export */ DropdownMenuLabel: () => (/* binding */ DropdownMenuLabel),\n/* harmony export */ DropdownMenuPortal: () => (/* binding */ DropdownMenuPortal),\n/* harmony export */ DropdownMenuRadioGroup: () => (/* binding */ DropdownMenuRadioGroup),\n/* harmony export */ DropdownMenuRadioItem: () => (/* binding */ DropdownMenuRadioItem),\n/* harmony export */ DropdownMenuSeparator: () => (/* binding */ DropdownMenuSeparator),\n/* harmony export */ DropdownMenuSub: () => (/* binding */ DropdownMenuSub),\n/* harmony export */ DropdownMenuSubContent: () => (/* binding */ DropdownMenuSubContent),\n/* harmony export */ DropdownMenuSubTrigger: () => (/* binding */ DropdownMenuSubTrigger),\n/* harmony export */ DropdownMenuTrigger: () => (/* binding */ DropdownMenuTrigger),\n/* harmony export */ Group: () => (/* binding */ Group2),\n/* harmony export */ Item: () => (/* binding */ Item2),\n/* harmony export */ ItemIndicator: () => (/* binding */ ItemIndicator2),\n/* harmony export */ Label: () => (/* binding */ Label2),\n/* harmony export */ Portal: () => (/* binding */ Portal2),\n/* harmony export */ RadioGroup: () => (/* binding */ RadioGroup2),\n/* harmony export */ RadioItem: () => (/* binding */ RadioItem2),\n/* harmony export */ Root: () => (/* binding */ Root2),\n/* harmony export */ Separator: () => (/* binding */ Separator2),\n/* harmony export */ Sub: () => (/* binding */ Sub2),\n/* harmony export */ SubContent: () => (/* binding */ SubContent2),\n/* harmony export */ SubTrigger: () => (/* binding */ SubTrigger2),\n/* harmony export */ Trigger: () => (/* binding */ Trigger),\n/* harmony export */ createDropdownMenuScope: () => (/* binding */ createDropdownMenuScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-menu */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-menu/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Arrow,CheckboxItem,Content,DropdownMenu,DropdownMenuArrow,DropdownMenuCheckboxItem,DropdownMenuContent,DropdownMenuGroup,DropdownMenuItem,DropdownMenuItemIndicator,DropdownMenuLabel,DropdownMenuPortal,DropdownMenuRadioGroup,DropdownMenuRadioItem,DropdownMenuSeparator,DropdownMenuSub,DropdownMenuSubContent,DropdownMenuSubTrigger,DropdownMenuTrigger,Group,Item,ItemIndicator,Label,Portal,RadioGroup,RadioItem,Root,Separator,Sub,SubContent,SubTrigger,Trigger,createDropdownMenuScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$(), _s7 = $RefreshSig$(), _s8 = $RefreshSig$(), _s9 = $RefreshSig$(), _s10 = $RefreshSig$(), _s11 = $RefreshSig$(), _s12 = $RefreshSig$(), _s13 = $RefreshSig$(), _s14 = $RefreshSig$(), _s15 = $RefreshSig$();\n// packages/react/dropdown-menu/src/dropdown-menu.tsx\n\n\n\n\n\n\n\n\n\n\nvar DROPDOWN_MENU_NAME = \"DropdownMenu\";\nvar [createDropdownMenuContext, createDropdownMenuScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(DROPDOWN_MENU_NAME, [\n _radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.createMenuScope\n]);\nvar useMenuScope = (0,_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.createMenuScope)();\nvar [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);\nvar DropdownMenu = (props)=>{\n _s();\n const { __scopeDropdownMenu, children, dir, open: openProp, defaultOpen, onOpenChange, modal = true } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const triggerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState)({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DropdownMenuProvider, {\n scope: __scopeDropdownMenu,\n triggerId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_5__.useId)(),\n triggerRef,\n contentId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_5__.useId)(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"DropdownMenu.useCallback\": ()=>setOpen({\n \"DropdownMenu.useCallback\": (prevOpen)=>!prevOpen\n }[\"DropdownMenu.useCallback\"])\n }[\"DropdownMenu.useCallback\"], [\n setOpen\n ]),\n modal,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ...menuScope,\n open,\n onOpenChange: setOpen,\n dir,\n modal,\n children\n })\n });\n};\n_s(DropdownMenu, \"wJP6WddUJB6yyPU3UeqipcdnRzk=\", false, function() {\n return [\n useMenuScope,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_5__.useId,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_5__.useId\n ];\n});\n_c = DropdownMenu;\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\nvar TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar DropdownMenuTrigger = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c1 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Anchor, {\n asChild: true,\n ...menuScope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.button, {\n type: \"button\",\n id: context.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n ...triggerProps,\n ref: (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_7__.composeRefs)(forwardedRef, context.triggerRef),\n onPointerDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onPointerDown, (event)=>{\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n if (!context.open) event.preventDefault();\n }\n }),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onKeyDown, (event)=>{\n if (disabled) return;\n if ([\n \"Enter\",\n \" \"\n ].includes(event.key)) context.onOpenToggle();\n if (event.key === \"ArrowDown\") context.onOpenChange(true);\n if ([\n \"Enter\",\n \" \",\n \"ArrowDown\"\n ].includes(event.key)) event.preventDefault();\n })\n })\n });\n}, \"VF6M01Vk8Lj/m3Pf4rnYmk8awgw=\", false, function() {\n return [\n useDropdownMenuContext,\n useMenuScope\n ];\n})), \"VF6M01Vk8Lj/m3Pf4rnYmk8awgw=\", false, function() {\n return [\n useDropdownMenuContext,\n useMenuScope\n ];\n});\n_c2 = DropdownMenuTrigger;\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DropdownMenuPortal\";\nvar DropdownMenuPortal = (props)=>{\n _s2();\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Portal, {\n ...menuScope,\n ...portalProps\n });\n};\n_s2(DropdownMenuPortal, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c3 = DropdownMenuPortal;\nDropdownMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"DropdownMenuContent\";\nvar DropdownMenuContent = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c4 = _s3((props, forwardedRef)=>{\n _s3();\n const { __scopeDropdownMenu, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Content, {\n id: context.contentId,\n \"aria-labelledby\": context.triggerId,\n ...menuScope,\n ...contentProps,\n ref: forwardedRef,\n onCloseAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onCloseAutoFocus, (event)=>{\n var _context_triggerRef_current;\n if (!hasInteractedOutsideRef.current) (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 ? void 0 : _context_triggerRef_current.focus();\n hasInteractedOutsideRef.current = false;\n event.preventDefault();\n }),\n onInteractOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onInteractOutside, (event)=>{\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n }),\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n });\n}, \"IxfmRH92Vi06xpdwf/XFbSU51nY=\", false, function() {\n return [\n useDropdownMenuContext,\n useMenuScope\n ];\n})), \"IxfmRH92Vi06xpdwf/XFbSU51nY=\", false, function() {\n return [\n useDropdownMenuContext,\n useMenuScope\n ];\n});\n_c5 = DropdownMenuContent;\nDropdownMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"DropdownMenuGroup\";\nvar DropdownMenuGroup = /*#__PURE__*/ _s4(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c6 = _s4((props, forwardedRef)=>{\n _s4();\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Group, {\n ...menuScope,\n ...groupProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c7 = DropdownMenuGroup;\nDropdownMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"DropdownMenuLabel\";\nvar DropdownMenuLabel = /*#__PURE__*/ _s5(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c8 = _s5((props, forwardedRef)=>{\n _s5();\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Label, {\n ...menuScope,\n ...labelProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c9 = DropdownMenuLabel;\nDropdownMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"DropdownMenuItem\";\nvar DropdownMenuItem = /*#__PURE__*/ _s6(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c10 = _s6((props, forwardedRef)=>{\n _s6();\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Item, {\n ...menuScope,\n ...itemProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c11 = DropdownMenuItem;\nDropdownMenuItem.displayName = ITEM_NAME;\nvar CHECKBOX_ITEM_NAME = \"DropdownMenuCheckboxItem\";\nvar DropdownMenuCheckboxItem = /*#__PURE__*/ _s7(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c12 = _s7((props, forwardedRef)=>{\n _s7();\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.CheckboxItem, {\n ...menuScope,\n ...checkboxItemProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c13 = DropdownMenuCheckboxItem;\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"DropdownMenuRadioGroup\";\nvar DropdownMenuRadioGroup = /*#__PURE__*/ _s8(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c14 = _s8((props, forwardedRef)=>{\n _s8();\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.RadioGroup, {\n ...menuScope,\n ...radioGroupProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c15 = DropdownMenuRadioGroup;\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"DropdownMenuRadioItem\";\nvar DropdownMenuRadioItem = /*#__PURE__*/ _s9(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c16 = _s9((props, forwardedRef)=>{\n _s9();\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.RadioItem, {\n ...menuScope,\n ...radioItemProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c17 = DropdownMenuRadioItem;\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar INDICATOR_NAME = \"DropdownMenuItemIndicator\";\nvar DropdownMenuItemIndicator = /*#__PURE__*/ _s10(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c18 = _s10((props, forwardedRef)=>{\n _s10();\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.ItemIndicator, {\n ...menuScope,\n ...itemIndicatorProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c19 = DropdownMenuItemIndicator;\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\nvar SEPARATOR_NAME = \"DropdownMenuSeparator\";\nvar DropdownMenuSeparator = /*#__PURE__*/ _s11(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c20 = _s11((props, forwardedRef)=>{\n _s11();\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Separator, {\n ...menuScope,\n ...separatorProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c21 = DropdownMenuSeparator;\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"DropdownMenuArrow\";\nvar DropdownMenuArrow = /*#__PURE__*/ _s12(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c22 = _s12((props, forwardedRef)=>{\n _s12();\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Arrow, {\n ...menuScope,\n ...arrowProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c23 = DropdownMenuArrow;\nDropdownMenuArrow.displayName = ARROW_NAME;\nvar DropdownMenuSub = (props)=>{\n _s13();\n const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState)({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.Sub, {\n ...menuScope,\n open,\n onOpenChange: setOpen,\n children\n });\n};\n_s13(DropdownMenuSub, \"gVVi3jy7WExj7Ovhmd5ypv5gQnU=\", false, function() {\n return [\n useMenuScope,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_4__.useControllableState\n ];\n});\n_c24 = DropdownMenuSub;\nvar SUB_TRIGGER_NAME = \"DropdownMenuSubTrigger\";\nvar DropdownMenuSubTrigger = /*#__PURE__*/ _s14(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c25 = _s14((props, forwardedRef)=>{\n _s14();\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.SubTrigger, {\n ...menuScope,\n ...subTriggerProps,\n ref: forwardedRef\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c26 = DropdownMenuSubTrigger;\nDropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"DropdownMenuSubContent\";\nvar DropdownMenuSubContent = /*#__PURE__*/ _s15(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c27 = _s15((props, forwardedRef)=>{\n _s15();\n const { __scopeDropdownMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_menu__WEBPACK_IMPORTED_MODULE_3__.SubContent, {\n ...menuScope,\n ...subContentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n });\n}, \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n})), \"tiYL9inPD2cEO2HZIBsVh57evhg=\", false, function() {\n return [\n useMenuScope\n ];\n});\n_c28 = DropdownMenuSubContent;\nDropdownMenuSubContent.displayName = SUB_CONTENT_NAME;\nvar Root2 = DropdownMenu;\nvar Trigger = DropdownMenuTrigger;\nvar Portal2 = DropdownMenuPortal;\nvar Content2 = DropdownMenuContent;\nvar Group2 = DropdownMenuGroup;\nvar Label2 = DropdownMenuLabel;\nvar Item2 = DropdownMenuItem;\nvar CheckboxItem2 = DropdownMenuCheckboxItem;\nvar RadioGroup2 = DropdownMenuRadioGroup;\nvar RadioItem2 = DropdownMenuRadioItem;\nvar ItemIndicator2 = DropdownMenuItemIndicator;\nvar Separator2 = DropdownMenuSeparator;\nvar Arrow2 = DropdownMenuArrow;\nvar Sub2 = DropdownMenuSub;\nvar SubTrigger2 = DropdownMenuSubTrigger;\nvar SubContent2 = DropdownMenuSubContent;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15, _c16, _c17, _c18, _c19, _c20, _c21, _c22, _c23, _c24, _c25, _c26, _c27, _c28;\n$RefreshReg$(_c, \"DropdownMenu\");\n$RefreshReg$(_c1, \"DropdownMenuTrigger$React.forwardRef\");\n$RefreshReg$(_c2, \"DropdownMenuTrigger\");\n$RefreshReg$(_c3, \"DropdownMenuPortal\");\n$RefreshReg$(_c4, \"DropdownMenuContent$React.forwardRef\");\n$RefreshReg$(_c5, \"DropdownMenuContent\");\n$RefreshReg$(_c6, \"DropdownMenuGroup$React.forwardRef\");\n$RefreshReg$(_c7, \"DropdownMenuGroup\");\n$RefreshReg$(_c8, \"DropdownMenuLabel$React.forwardRef\");\n$RefreshReg$(_c9, \"DropdownMenuLabel\");\n$RefreshReg$(_c10, \"DropdownMenuItem$React.forwardRef\");\n$RefreshReg$(_c11, \"DropdownMenuItem\");\n$RefreshReg$(_c12, \"DropdownMenuCheckboxItem$React.forwardRef\");\n$RefreshReg$(_c13, \"DropdownMenuCheckboxItem\");\n$RefreshReg$(_c14, \"DropdownMenuRadioGroup$React.forwardRef\");\n$RefreshReg$(_c15, \"DropdownMenuRadioGroup\");\n$RefreshReg$(_c16, \"DropdownMenuRadioItem$React.forwardRef\");\n$RefreshReg$(_c17, \"DropdownMenuRadioItem\");\n$RefreshReg$(_c18, \"DropdownMenuItemIndicator$React.forwardRef\");\n$RefreshReg$(_c19, \"DropdownMenuItemIndicator\");\n$RefreshReg$(_c20, \"DropdownMenuSeparator$React.forwardRef\");\n$RefreshReg$(_c21, \"DropdownMenuSeparator\");\n$RefreshReg$(_c22, \"DropdownMenuArrow$React.forwardRef\");\n$RefreshReg$(_c23, \"DropdownMenuArrow\");\n$RefreshReg$(_c24, \"DropdownMenuSub\");\n$RefreshReg$(_c25, \"DropdownMenuSubTrigger$React.forwardRef\");\n$RefreshReg$(_c26, \"DropdownMenuSubTrigger\");\n$RefreshReg$(_c27, \"DropdownMenuSubContent$React.forwardRef\");\n$RefreshReg$(_c28, \"DropdownMenuSubContent\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZHJvcGRvd24tbWVudS9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ1Q7QUFDTztBQUNFO0FBQ1g7QUFDSztBQUNDO0FBQ1Y7QUFzRWhCO0FBNUROLElBQU0scUJBQXFCO0FBRzNCLElBQU0sQ0FBQywyQkFBMkIsdUJBQXVCLElBQUksMkVBQWtCLENBQzdFLG9CQUNBO0lBQUMsaUVBQWU7Q0FBQTtBQUVsQixJQUFNLGVBQWUscUVBQWUsQ0FBQztBQVlyQyxJQUFNLENBQUMsc0JBQXNCLHNCQUFzQixJQUNqRCwwQkFBb0Qsa0JBQWtCO0FBV3hFLG1CQUFrRCxDQUFDOztJQUNqRCxNQUFNLEVBQ0oscUJBQ0EsVUFDQSxLQUNBLE1BQU0sVUFDTixhQUNBLGNBQ0EsUUFBUSxNQUNWLEdBQUk7SUFDSixNQUFNLHlCQUF5QixtQkFBbUI7SUFDbEQsTUFBTSxhQUFtQiwwQ0FBMEIsSUFBSTtJQUN2RCxNQUFNLENBQUMsT0FBTyxPQUFPLE9BQU8saUdBQXlCO1FBQ25ELE1BQU07UUFDTixhQUFhO1FBQ2IsVUFBVTtJQUNaLENBQUM7SUFFRCxPQUNFLHVFQUFDO1FBQ0MsT0FBTztRQUNQO1FBQ0E7UUFDQSxXQUFXLHlEQUFLLENBQUM7UUFDakI7UUFDQSxjQUFjO1FBQ2QsY0FBb0I7d0NBQVksSUFBTTtnREFBUSxDQUFDLFdBQWEsQ0FBQyxRQUFROzt1Q0FBRztZQUFDLE9BQU87U0FBQztRQUNqRjtRQUVBLGlGQUFlLHdEQUFkO1lBQW9CLEdBQUc7WUFBVztZQUFZLGNBQWM7WUFBUztZQUFVO1lBQzdFO1FBQUEsQ0FDSDtJQUFBO0FBR047OztRQXhCb0I7UUFFYyx3RkFBb0I7UUFTckMscURBQUssQ0FBQzs7OztLQXJCakI7QUFvQ04sYUFBYSxjQUFjO0FBTTNCLElBQU0s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QUc7UUFDSixLQUFLO1FBQ0wsT0FBTztZQUNMLEdBQUcsTUFBTTtZQUFBO1lBRVQsR0FBRztnQkFDRCxrREFBa0Q7Z0JBQ2xELGlEQUFpRDtnQkFDakQsa0RBQWtEO2dCQUNsRCx1Q0FBdUM7Z0JBQ3ZDLHdDQUF3QztZQUMxQztRQUNGO0lBQUE7QUFHTixDQUFDOzs7Ozs7UUFwQm1COzs7O0FBc0JwQix1QkFBdUIsY0FBYztBQUlyQyxJQUFNQSxRQUFPO0FBQ2IsSUFBTSxVQUFVO0FBQ2hCLElBQU1DLFVBQVM7QUFDZixJQUFNQyxXQUFVO0FBQ2hCLElBQU1DLFNBQVE7QUFDZCxJQUFNQyxTQUFRO0FBQ2QsSUFBTUMsUUFBTztBQUNiLElBQU1DLGdCQUFlO0FBQ3JCLElBQU1DLGNBQWE7QUFDbkIsSUFBTUMsYUFBWTtBQUNsQixJQUFNQyxpQkFBZ0I7QUFDdEIsSUFBTUMsYUFBWTtBQUNsQixJQUFNQyxTQUFRO0FBQ2QsSUFBTUMsT0FBTTtBQUNaLElBQU1DLGNBQWE7QUFDbkIsSUFBTUMsY0FBYSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL3NyYy9kcm9wZG93bi1tZW51LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByYWRpeC11aS9wcmltaXRpdmUnO1xuaW1wb3J0IHsgY29tcG9zZVJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsYWJsZVN0YXRlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1jb250cm9sbGFibGUtc3RhdGUnO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5pbXBvcnQgKiBhcyBNZW51UHJpbWl0aXZlIGZyb20gJ0ByYWRpeC11aS9yZWFjdC1tZW51JztcbmltcG9ydCB7IGNyZWF0ZU1lbnVTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1tZW51JztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWlkJztcblxuaW1wb3J0IHR5cGUgeyBTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcblxudHlwZSBEaXJlY3Rpb24gPSAnbHRyJyB8ICdydGwnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEcm9wZG93bk1lbnVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgRFJPUERPV05fTUVOVV9OQU1FID0gJ0Ryb3Bkb3duTWVudSc7XG5cbnR5cGUgU2NvcGVkUHJvcHM8UD4gPSBQICYgeyBfX3Njb3BlRHJvcGRvd25NZW51PzogU2NvcGUgfTtcbmNvbnN0IFtjcmVhdGVEcm9wZG93bk1lbnVDb250ZXh0LCBjcmVhdGVEcm9wZG93bk1lbnVTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoXG4gIERST1BET1dOX01FTlVfTkFNRSxcbiAgW2NyZWF0ZU1lbnVTY29wZV1cbik7XG5jb25zdCB1c2VNZW51U2NvcGUgPSBjcmVhdGVNZW51U2NvcGUoKTtcblxudHlwZSBEcm9wZG93bk1lbnVDb250ZXh0VmFsdWUgPSB7XG4gIHRyaWdnZXJJZDogc3RyaW5nO1xuICB0cmlnZ2VyUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPjtcbiAgY29udGVudElkOiBzdHJpbmc7XG4gIG9wZW46IGJvb2xlYW47XG4gIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZDtcbiAgb25PcGVuVG9nZ2xlKCk6IHZvaWQ7XG4gIG1vZGFsOiBib29sZWFuO1xufTtcblxuY29uc3QgW0Ryb3Bkb3duTWVudVByb3ZpZGVyLCB1c2VEcm9wZG93bk1lbnVDb250ZXh0XSA9XG4gIGNyZWF0ZURyb3Bkb3duTWVudUNvbnRleHQ8RHJvcGRvd25NZW51Q29udGV4dFZhbHVlPihEUk9QRE9XTl9NRU5VX05BTUUpO1xuXG5pbnRlcmZhY2UgRHJvcGRvd25NZW51UHJvcHMge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgZGlyPzogRGlyZWN0aW9uO1xuICBvcGVuPzogYm9vbGVhbjtcbiAgZGVmYXVsdE9wZW4/OiBib29sZWFuO1xuICBvbk9wZW5DaGFuZ2U/KG9wZW46IGJvb2xlYW4pOiB2b2lkO1xuICBtb2RhbD86IGJvb2xlYW47XG59XG5cbmNvbnN0IERyb3Bkb3duTWVudTogUmVhY3QuRkM8RHJvcGRvd25NZW51UHJvcHM+ID0gKHByb3BzOiBTY29wZWRQcm9wczxEcm9wZG93bk1lbnVQcm9wcz4pID0+IHtcbiAgY29uc3Qge1xuICAgIF9fc2NvcGVEcm9wZG93bk1lbnUsXG4gICAgY2hpbGRyZW4sXG4gICAgZGlyLFxuICAgIG9wZW46IG9wZW5Qcm9wLFxuICAgIGRlZmF1bHRPcGVuLFxuICAgIG9uT3BlbkNoYW5nZSxcbiAgICBtb2RhbCA9IHRydWUsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICBjb25zdCB0cmlnZ2VyUmVmID0gUmVhY3QudXNlUmVmPEhUTUxCdXR0b25FbGVtZW50PihudWxsKTtcbiAgY29uc3QgW29wZW4gPSBmYWxzZSwgc2V0T3Blbl0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgcHJvcDogb3BlblByb3AsXG4gICAgZGVmYXVsdFByb3A6IGRlZmF1bHRPcGVuLFxuICAgIG9uQ2hhbmdlOiBvbk9wZW5DaGFuZ2UsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPERyb3Bkb3duTWVudVByb3ZpZGVyXG4gICAgICBzY29wZT17X19zY29wZURyb3Bkb3duTWVudX1cbiAgICAgIHRyaWdnZXJJZD17dXNlSWQoKX1cbiAgICAgIHRyaWdnZXJSZWY9e3RyaWdnZXJSZWZ9XG4gICAgICBjb250ZW50SWQ9e3VzZUlkKCl9XG4gICAgICBvcGVuPXtvcGVufVxuICAgICAgb25PcGVuQ2hhbmdlPXtzZXRPcGVufVxuICAgICAgb25PcGVuVG9nZ2xlPXtSZWFjdC51c2VDYWxsYmFjaygoKSA9PiBzZXRPcGVuKChwcmV2T3BlbikgPT4gIXByZXZPcGVuKSwgW3NldE9wZW5dKX1cbiAgICAgIG1vZGFsPXttb2RhbH1cbiAgICA+XG4gICAgICA8TWVudVByaW1pdGl2ZS5Sb290IHsuLi5tZW51U2NvcGV9IG9wZW49e29wZW59IG9uT3BlbkNoYW5nZT17c2V0T3Blbn0gZGlyPXtkaXJ9IG1vZGFsPXttb2RhbH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvTWVudVByaW1pdGl2ZS5Sb290PlxuICAgIDwvRHJvcGRvd25NZW51UHJvdmlkZXI+XG4gICk7XG59O1xuXG5Ecm9wZG93bk1lbnUuZGlzcGxheU5hbWUgPSBEUk9QRE9XTl9NRU5VX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERyb3Bkb3duTWVudVRyaWdnZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgVFJJR0dFUl9OQU1FID0gJ0Ryb3Bkb3duTWVudVRyaWdnZXInO1xuXG50eXBlIERyb3Bkb3duTWVudVRyaWdnZXJFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmJ1dHRvbj47XG50eXBlIFByaW1pdGl2ZUJ1dHRvblByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuYnV0dG9uPjtcbmludGVyZmFjZSBEcm9wZG93bk1lbnVUcmlnZ2VyUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVCdXR0b25Qcm9wcyB7fVxuXG5jb25zdCBEcm9wZG93bk1lbnVUcmlnZ2VyID0gUmVhY3QuZm9yd2FyZFJlZjxEcm9wZG93bk1lbnVUcmlnZ2VyRWxlbWVudCwgRHJvcGRvd25NZW51VHJpZ2dlclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEcm9wZG93bk1lbnVUcmlnZ2VyUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIGRpc2FibGVkID0gZmFsc2UsIC4uLnRyaWdnZXJQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURyb3Bkb3duTWVudUNvbnRleHQoVFJJR0dFUl9OQU1FLCBfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgICBjb25zdCBtZW51U2NvcGUgPSB1c2VNZW51U2NvcGUoX19zY29wZURyb3Bkb3duTWVudSk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxNZW51UHJpbWl0aXZlLkFuY2hvciBhc0NoaWxkIHsuLi5tZW51U2NvcGV9PlxuICAgICAgICA8UHJpbWl0aXZlLmJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGlkPXtjb250ZXh0LnRyaWdnZXJJZH1cbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibWVudVwiXG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17Y29udGV4dC5vcGVufVxuICAgICAgICAgIGFyaWEtY29udHJvbHM9e2NvbnRleHQub3BlbiA/IGNvbnRleHQuY29udGVudElkIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtc3RhdGU9e2NvbnRleHQub3BlbiA/ICdvcGVuJyA6ICdjbG9zZWQnfVxuICAgICAgICAgIGRhdGEtZGlzYWJsZWQ9e2Rpc2FibGVkID8gJycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHsuLi50cmlnZ2VyUHJvcHN9XG4gICAgICAgICAgcmVmPXtjb21wb3NlUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRleHQudHJpZ2dlclJlZil9XG4gICAgICAgICAgb25Qb2ludGVyRG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Qb2ludGVyRG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAvLyBvbmx5IGNhbGwgaGFuZGxlciBpZiBpdCdzIHRoZSBsZWZ0IGJ1dHRvbiAobW91c2Vkb3duIGdldHMgdHJpZ2dlcmVkIGJ5IGFsbCBtb3VzZSBidXR0b25zKVxuICAgICAgICAgICAgLy8gYnV0IG5vdCB3aGVuIHRoZSBjb250cm9sIGtleSBpcyBwcmVzc2VkIChhdm9pZGluZyBNYWNPUyByaWdodCBjbGljaylcbiAgICAgICAgICAgIGlmICghZGlzYWJsZWQgJiYgZXZlbnQuYnV0dG9uID09PSAwICYmIGV2ZW50LmN0cmxLZXkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQub25PcGVuVG9nZ2xlKCk7XG4gICAgICAgICAgICAgIC8vIHByZXZlbnQgdHJpZ2dlciBmb2N1c2luZyB3aGVuIG9wZW5pbmdcbiAgICAgICAgICAgICAgLy8gdGhpcyBhbGxvd3MgdGhlIGNvbnRlbnQgdG8gYmUgZ2l2ZW4gZm9jdXMgd2l0aG91dCBjb21wZXRpdGlvblxuICAgICAgICAgICAgICBpZiAoIWNvbnRleHQub3BlbikgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KX1cbiAgICAgICAgICBvbktleURvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoZGlzYWJsZWQpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChbJ0VudGVyJywgJyAnXS5pbmNsdWRlcyhldmVudC5rZXkpKSBjb250ZXh0Lm9uT3BlblRvZ2dsZSgpO1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIGNvbnRleHQub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICAgICAgLy8gcHJldmVudCBrZXlkb3duIGZyb20gc2Nyb2xsaW5nIHdpbmRvdyAvIGZpcnN0IGZvY3VzZWQgaXRlbSB0byBleGVjdXRlXG4gICAgICAgICAgICAvLyB0aGF0IGtleWRvd24gKGluYWR2ZXJ0ZW50bHkgY2xvc2luZyB0aGUgbWVudSlcbiAgICAgICAgICAgIGlmIChbJ0VudGVyJywgJyAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoZXZlbnQua2V5KSkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgLz5cbiAgICAgIDwvTWVudVByaW1pdGl2ZS5BbmNob3I+XG4gICAgKTtcbiAgfVxuKTtcblxuRHJvcGRvd25NZW51VHJpZ2dlci5kaXNwbGF5TmFtZSA9IFRSSUdHRVJfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51UG9ydGFsXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFBPUlRBTF9OQU1FID0gJ0Ryb3Bkb3duTWVudVBvcnRhbCc7XG5cbnR5cGUgTWVudVBvcnRhbFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLlBvcnRhbD47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51UG9ydGFsUHJvcHMgZXh0ZW5kcyBNZW51UG9ydGFsUHJvcHMge31cblxuY29uc3QgRHJvcGRvd25NZW51UG9ydGFsOiBSZWFjdC5GQzxEcm9wZG93bk1lbnVQb3J0YWxQcm9wcz4gPSAoXG4gIHByb3BzOiBTY29wZWRQcm9wczxEcm9wZG93bk1lbnVQb3J0YWxQcm9wcz5cbikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLnBvcnRhbFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICByZXR1cm4gPE1lbnVQcmltaXRpdmUuUG9ydGFsIHsuLi5tZW51U2NvcGV9IHsuLi5wb3J0YWxQcm9wc30gLz47XG59O1xuXG5Ecm9wZG93bk1lbnVQb3J0YWwuZGlzcGxheU5hbWUgPSBQT1JUQUxfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51Q29udGVudFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDT05URU5UX05BTUUgPSAnRHJvcGRvd25NZW51Q29udGVudCc7XG5cbnR5cGUgRHJvcGRvd25NZW51Q29udGVudEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLkNvbnRlbnQ+O1xudHlwZSBNZW51Q29udGVudFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLkNvbnRlbnQ+O1xuaW50ZXJmYWNlIERyb3Bkb3duTWVudUNvbnRlbnRQcm9wcyBleHRlbmRzIE9taXQ8TWVudUNvbnRlbnRQcm9wcywgJ29uRW50cnlGb2N1cyc+IHt9XG5cbmNvbnN0IERyb3Bkb3duTWVudUNvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPERyb3Bkb3duTWVudUNvbnRlbnRFbGVtZW50LCBEcm9wZG93bk1lbnVDb250ZW50UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERyb3Bkb3duTWVudUNvbnRlbnRQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRHJvcGRvd25NZW51Q29udGV4dChDT05URU5UX05BTUUsIF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICAgIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgICBjb25zdCBoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVQcmltaXRpdmUuQ29udGVudFxuICAgICAgICBpZD17Y29udGV4dC5jb250ZW50SWR9XG4gICAgICAgIGFyaWEtbGFiZWxsZWRieT17Y29udGV4dC50cmlnZ2VySWR9XG4gICAgICAgIHsuLi5tZW51U2NvcGV9XG4gICAgICAgIHsuLi5jb250ZW50UHJvcHN9XG4gICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICBvbkNsb3NlQXV0b0ZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsb3NlQXV0b0ZvY3VzLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoIWhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmLmN1cnJlbnQpIGNvbnRleHQudHJpZ2dlclJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICAgIGhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAvLyBBbHdheXMgcHJldmVudCBhdXRvIGZvY3VzIGJlY2F1c2Ugd2UgZWl0aGVyIGZvY3VzIG1hbnVhbGx5IG9yIHdhbnQgdXNlciBhZ2VudCBmb2N1c1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH0pfVxuICAgICAgICBvbkludGVyYWN0T3V0c2lkZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25JbnRlcmFjdE91dHNpZGUsIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsRXZlbnQgPSBldmVudC5kZXRhaWwub3JpZ2luYWxFdmVudCBhcyBQb2ludGVyRXZlbnQ7XG4gICAgICAgICAgY29uc3QgY3RybExlZnRDbGljayA9IG9yaWdpbmFsRXZlbnQuYnV0dG9uID09PSAwICYmIG9yaWdpbmFsRXZlbnQuY3RybEtleSA9PT0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBpc1JpZ2h0Q2xpY2sgPSBvcmlnaW5hbEV2ZW50LmJ1dHRvbiA9PT0gMiB8fCBjdHJsTGVmdENsaWNrO1xuICAgICAgICAgIGlmICghY29udGV4dC5tb2RhbCB8fCBpc1JpZ2h0Q2xpY2spIGhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICB9KX1cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAuLi5wcm9wcy5zdHlsZSxcbiAgICAgICAgICAvLyByZS1uYW1lc3BhY2UgZXhwb3NlZCBjb250ZW50IGN1c3RvbSBwcm9wZXJ0aWVzXG4gICAgICAgICAgLi4ue1xuICAgICAgICAgICAgJy0tcmFkaXgtZHJvcGRvd24tbWVudS1jb250ZW50LXRyYW5zZm9ybS1vcmlnaW4nOlxuICAgICAgICAgICAgICAndmFyKC0tcmFkaXgtcG9wcGVyLXRyYW5zZm9ybS1vcmlnaW4pJyxcbiAgICAgICAgICAgICctLXJhZGl4LWRyb3Bkb3duLW1lbnUtY29udGVudC1hdmFpbGFibGUtd2lkdGgnOiAndmFyKC0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS13aWR0aCknLFxuICAgICAgICAgICAgJy0tcmFkaXgtZHJvcGRvd24tbWVudS1jb250ZW50LWF2YWlsYWJsZS1oZWlnaHQnOlxuICAgICAgICAgICAgICAndmFyKC0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS1oZWlnaHQpJyxcbiAgICAgICAgICAgICctLXJhZGl4LWRyb3Bkb3duLW1lbnUtdHJpZ2dlci13aWR0aCc6ICd2YXIoLS1yYWRpeC1wb3BwZXItYW5jaG9yLXdpZHRoKScsXG4gICAgICAgICAgICAnLS1yYWRpeC1kcm9wZG93bi1tZW51LXRyaWdnZXItaGVpZ2h0JzogJ3ZhcigtLXJhZGl4LXBvcHBlci1hbmNob3ItaGVpZ2h0KScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuKTtcblxuRHJvcGRvd25NZW51Q29udGVudC5kaXNwbGF5TmFtZSA9IENPTlRFTlRfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51R3JvdXBcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgR1JPVVBfTkFNRSA9ICdEcm9wZG93bk1lbnVHcm91cCc7XG5cbnR5cGUgRHJvcGRvd25NZW51R3JvdXBFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgTWVudVByaW1pdGl2ZS5Hcm91cD47XG50eXBlIE1lbnVHcm91cFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLkdyb3VwPjtcbmludGVyZmFjZSBEcm9wZG93bk1lbnVHcm91cFByb3BzIGV4dGVuZHMgTWVudUdyb3VwUHJvcHMge31cblxuY29uc3QgRHJvcGRvd25NZW51R3JvdXAgPSBSZWFjdC5mb3J3YXJkUmVmPERyb3Bkb3duTWVudUdyb3VwRWxlbWVudCwgRHJvcGRvd25NZW51R3JvdXBQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8RHJvcGRvd25NZW51R3JvdXBQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgLi4uZ3JvdXBQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICAgIHJldHVybiA8TWVudVByaW1pdGl2ZS5Hcm91cCB7Li4ubWVudVNjb3BlfSB7Li4uZ3JvdXBQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5Ecm9wZG93bk1lbnVHcm91cC5kaXNwbGF5TmFtZSA9IEdST1VQX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERyb3Bkb3duTWVudUxhYmVsXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IExBQkVMX05BTUUgPSAnRHJvcGRvd25NZW51TGFiZWwnO1xuXG50eXBlIERyb3Bkb3duTWVudUxhYmVsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuTGFiZWw+O1xudHlwZSBNZW51TGFiZWxQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgTWVudVByaW1pdGl2ZS5MYWJlbD47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51TGFiZWxQcm9wcyBleHRlbmRzIE1lbnVMYWJlbFByb3BzIHt9XG5cbmNvbnN0IERyb3Bkb3duTWVudUxhYmVsID0gUmVhY3QuZm9yd2FyZFJlZjxEcm9wZG93bk1lbnVMYWJlbEVsZW1lbnQsIERyb3Bkb3duTWVudUxhYmVsUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERyb3Bkb3duTWVudUxhYmVsUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLmxhYmVsUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgICByZXR1cm4gPE1lbnVQcmltaXRpdmUuTGFiZWwgey4uLm1lbnVTY29wZX0gey4uLmxhYmVsUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuRHJvcGRvd25NZW51TGFiZWwuZGlzcGxheU5hbWUgPSBMQUJFTF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEcm9wZG93bk1lbnVJdGVtXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IElURU1fTkFNRSA9ICdEcm9wZG93bk1lbnVJdGVtJztcblxudHlwZSBEcm9wZG93bk1lbnVJdGVtRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuSXRlbT47XG50eXBlIE1lbnVJdGVtUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuSXRlbT47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51SXRlbVByb3BzIGV4dGVuZHMgTWVudUl0ZW1Qcm9wcyB7fVxuXG5jb25zdCBEcm9wZG93bk1lbnVJdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxEcm9wZG93bk1lbnVJdGVtRWxlbWVudCwgRHJvcGRvd25NZW51SXRlbVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEcm9wZG93bk1lbnVJdGVtUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLml0ZW1Qcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICAgIHJldHVybiA8TWVudVByaW1pdGl2ZS5JdGVtIHsuLi5tZW51U2NvcGV9IHsuLi5pdGVtUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuRHJvcGRvd25NZW51SXRlbS5kaXNwbGF5TmFtZSA9IElURU1fTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51Q2hlY2tib3hJdGVtXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IENIRUNLQk9YX0lURU1fTkFNRSA9ICdEcm9wZG93bk1lbnVDaGVja2JveEl0ZW0nO1xuXG50eXBlIERyb3Bkb3duTWVudUNoZWNrYm94SXRlbUVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLkNoZWNrYm94SXRlbT47XG50eXBlIE1lbnVDaGVja2JveEl0ZW1Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgTWVudVByaW1pdGl2ZS5DaGVja2JveEl0ZW0+O1xuaW50ZXJmYWNlIERyb3Bkb3duTWVudUNoZWNrYm94SXRlbVByb3BzIGV4dGVuZHMgTWVudUNoZWNrYm94SXRlbVByb3BzIHt9XG5cbmNvbnN0IERyb3Bkb3duTWVudUNoZWNrYm94SXRlbSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIERyb3Bkb3duTWVudUNoZWNrYm94SXRlbUVsZW1lbnQsXG4gIERyb3Bkb3duTWVudUNoZWNrYm94SXRlbVByb3BzXG4+KChwcm9wczogU2NvcGVkUHJvcHM8RHJvcGRvd25NZW51Q2hlY2tib3hJdGVtUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlRHJvcGRvd25NZW51LCAuLi5jaGVja2JveEl0ZW1Qcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgcmV0dXJuIDxNZW51UHJpbWl0aXZlLkNoZWNrYm94SXRlbSB7Li4ubWVudVNjb3BlfSB7Li4uY2hlY2tib3hJdGVtUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbn0pO1xuXG5Ecm9wZG93bk1lbnVDaGVja2JveEl0ZW0uZGlzcGxheU5hbWUgPSBDSEVDS0JPWF9JVEVNX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERyb3Bkb3duTWVudVJhZGlvR3JvdXBcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgUkFESU9fR1JPVVBfTkFNRSA9ICdEcm9wZG93bk1lbnVSYWRpb0dyb3VwJztcblxudHlwZSBEcm9wZG93bk1lbnVSYWRpb0dyb3VwRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuUmFkaW9Hcm91cD47XG50eXBlIE1lbnVSYWRpb0dyb3VwUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuUmFkaW9Hcm91cD47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51UmFkaW9Hcm91cFByb3BzIGV4dGVuZHMgTWVudVJhZGlvR3JvdXBQcm9wcyB7fVxuXG5jb25zdCBEcm9wZG93bk1lbnVSYWRpb0dyb3VwID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgRHJvcGRvd25NZW51UmFkaW9Hcm91cEVsZW1lbnQsXG4gIERyb3Bkb3duTWVudVJhZGlvR3JvdXBQcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPERyb3Bkb3duTWVudVJhZGlvR3JvdXBQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLnJhZGlvR3JvdXBQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgcmV0dXJuIDxNZW51UHJpbWl0aXZlLlJhZGlvR3JvdXAgey4uLm1lbnVTY29wZX0gey4uLnJhZGlvR3JvdXBQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xufSk7XG5cbkRyb3Bkb3duTWVudVJhZGlvR3JvdXAuZGlzcGxheU5hbWUgPSBSQURJT19HUk9VUF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEcm9wZG93bk1lbnVSYWRpb0l0ZW1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgUkFESU9fSVRFTV9OQU1FID0gJ0Ryb3Bkb3duTWVudVJhZGlvSXRlbSc7XG5cbnR5cGUgRHJvcGRvd25NZW51UmFkaW9JdGVtRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuUmFkaW9JdGVtPjtcbnR5cGUgTWVudVJhZGlvSXRlbVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLlJhZGlvSXRlbT47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51UmFkaW9JdGVtUHJvcHMgZXh0ZW5kcyBNZW51UmFkaW9JdGVtUHJvcHMge31cblxuY29uc3QgRHJvcGRvd25NZW51UmFkaW9JdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgRHJvcGRvd25NZW51UmFkaW9JdGVtRWxlbWVudCxcbiAgRHJvcGRvd25NZW51UmFkaW9JdGVtUHJvcHNcbj4oKHByb3BzOiBTY29wZWRQcm9wczxEcm9wZG93bk1lbnVSYWRpb0l0ZW1Qcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLnJhZGlvSXRlbVByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICByZXR1cm4gPE1lbnVQcmltaXRpdmUuUmFkaW9JdGVtIHsuLi5tZW51U2NvcGV9IHsuLi5yYWRpb0l0ZW1Qcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xufSk7XG5cbkRyb3Bkb3duTWVudVJhZGlvSXRlbS5kaXNwbGF5TmFtZSA9IFJBRElPX0lURU1fTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51SXRlbUluZGljYXRvclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBJTkRJQ0FUT1JfTkFNRSA9ICdEcm9wZG93bk1lbnVJdGVtSW5kaWNhdG9yJztcblxudHlwZSBEcm9wZG93bk1lbnVJdGVtSW5kaWNhdG9yRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuSXRlbUluZGljYXRvcj47XG50eXBlIE1lbnVJdGVtSW5kaWNhdG9yUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuSXRlbUluZGljYXRvcj47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51SXRlbUluZGljYXRvclByb3BzIGV4dGVuZHMgTWVudUl0ZW1JbmRpY2F0b3JQcm9wcyB7fVxuXG5jb25zdCBEcm9wZG93bk1lbnVJdGVtSW5kaWNhdG9yID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgRHJvcGRvd25NZW51SXRlbUluZGljYXRvckVsZW1lbnQsXG4gIERyb3Bkb3duTWVudUl0ZW1JbmRpY2F0b3JQcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPERyb3Bkb3duTWVudUl0ZW1JbmRpY2F0b3JQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLml0ZW1JbmRpY2F0b3JQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcbiAgcmV0dXJuIDxNZW51UHJpbWl0aXZlLkl0ZW1JbmRpY2F0b3Igey4uLm1lbnVTY29wZX0gey4uLml0ZW1JbmRpY2F0b3JQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xufSk7XG5cbkRyb3Bkb3duTWVudUl0ZW1JbmRpY2F0b3IuZGlzcGxheU5hbWUgPSBJTkRJQ0FUT1JfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51U2VwYXJhdG9yXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFNFUEFSQVRPUl9OQU1FID0gJ0Ryb3Bkb3duTWVudVNlcGFyYXRvcic7XG5cbnR5cGUgRHJvcGRvd25NZW51U2VwYXJhdG9yRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuU2VwYXJhdG9yPjtcbnR5cGUgTWVudVNlcGFyYXRvclByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLlNlcGFyYXRvcj47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51U2VwYXJhdG9yUHJvcHMgZXh0ZW5kcyBNZW51U2VwYXJhdG9yUHJvcHMge31cblxuY29uc3QgRHJvcGRvd25NZW51U2VwYXJhdG9yID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgRHJvcGRvd25NZW51U2VwYXJhdG9yRWxlbWVudCxcbiAgRHJvcGRvd25NZW51U2VwYXJhdG9yUHJvcHNcbj4oKHByb3BzOiBTY29wZWRQcm9wczxEcm9wZG93bk1lbnVTZXBhcmF0b3JQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLnNlcGFyYXRvclByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICByZXR1cm4gPE1lbnVQcmltaXRpdmUuU2VwYXJhdG9yIHsuLi5tZW51U2NvcGV9IHsuLi5zZXBhcmF0b3JQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xufSk7XG5cbkRyb3Bkb3duTWVudVNlcGFyYXRvci5kaXNwbGF5TmFtZSA9IFNFUEFSQVRPUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEcm9wZG93bk1lbnVBcnJvd1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBBUlJPV19OQU1FID0gJ0Ryb3Bkb3duTWVudUFycm93JztcblxudHlwZSBEcm9wZG93bk1lbnVBcnJvd0VsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBNZW51UHJpbWl0aXZlLkFycm93PjtcbnR5cGUgTWVudUFycm93UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuQXJyb3c+O1xuaW50ZXJmYWNlIERyb3Bkb3duTWVudUFycm93UHJvcHMgZXh0ZW5kcyBNZW51QXJyb3dQcm9wcyB7fVxuXG5jb25zdCBEcm9wZG93bk1lbnVBcnJvdyA9IFJlYWN0LmZvcndhcmRSZWY8RHJvcGRvd25NZW51QXJyb3dFbGVtZW50LCBEcm9wZG93bk1lbnVBcnJvd1Byb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEcm9wZG93bk1lbnVBcnJvd1Byb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRHJvcGRvd25NZW51LCAuLi5hcnJvd1Byb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBtZW51U2NvcGUgPSB1c2VNZW51U2NvcGUoX19zY29wZURyb3Bkb3duTWVudSk7XG4gICAgcmV0dXJuIDxNZW51UHJpbWl0aXZlLkFycm93IHsuLi5tZW51U2NvcGV9IHsuLi5hcnJvd1Byb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG4gIH1cbik7XG5cbkRyb3Bkb3duTWVudUFycm93LmRpc3BsYXlOYW1lID0gQVJST1dfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51U3ViXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmludGVyZmFjZSBEcm9wZG93bk1lbnVTdWJQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBvcGVuPzogYm9vbGVhbjtcbiAgZGVmYXVsdE9wZW4/OiBib29sZWFuO1xuICBvbk9wZW5DaGFuZ2U/KG9wZW46IGJvb2xlYW4pOiB2b2lkO1xufVxuXG5jb25zdCBEcm9wZG93bk1lbnVTdWI6IFJlYWN0LkZDPERyb3Bkb3duTWVudVN1YlByb3BzPiA9IChcbiAgcHJvcHM6IFNjb3BlZFByb3BzPERyb3Bkb3duTWVudVN1YlByb3BzPlxuKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgY2hpbGRyZW4sIG9wZW46IG9wZW5Qcm9wLCBvbk9wZW5DaGFuZ2UsIGRlZmF1bHRPcGVuIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICBjb25zdCBbb3BlbiA9IGZhbHNlLCBzZXRPcGVuXSA9IHVzZUNvbnRyb2xsYWJsZVN0YXRlKHtcbiAgICBwcm9wOiBvcGVuUHJvcCxcbiAgICBkZWZhdWx0UHJvcDogZGVmYXVsdE9wZW4sXG4gICAgb25DaGFuZ2U6IG9uT3BlbkNoYW5nZSxcbiAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8TWVudVByaW1pdGl2ZS5TdWIgey4uLm1lbnVTY29wZX0gb3Blbj17b3Blbn0gb25PcGVuQ2hhbmdlPXtzZXRPcGVufT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L01lbnVQcmltaXRpdmUuU3ViPlxuICApO1xufTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRHJvcGRvd25NZW51U3ViVHJpZ2dlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBTVUJfVFJJR0dFUl9OQU1FID0gJ0Ryb3Bkb3duTWVudVN1YlRyaWdnZXInO1xuXG50eXBlIERyb3Bkb3duTWVudVN1YlRyaWdnZXJFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgTWVudVByaW1pdGl2ZS5TdWJUcmlnZ2VyPjtcbnR5cGUgTWVudVN1YlRyaWdnZXJQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgTWVudVByaW1pdGl2ZS5TdWJUcmlnZ2VyPjtcbmludGVyZmFjZSBEcm9wZG93bk1lbnVTdWJUcmlnZ2VyUHJvcHMgZXh0ZW5kcyBNZW51U3ViVHJpZ2dlclByb3BzIHt9XG5cbmNvbnN0IERyb3Bkb3duTWVudVN1YlRyaWdnZXIgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBEcm9wZG93bk1lbnVTdWJUcmlnZ2VyRWxlbWVudCxcbiAgRHJvcGRvd25NZW51U3ViVHJpZ2dlclByb3BzXG4+KChwcm9wczogU2NvcGVkUHJvcHM8RHJvcGRvd25NZW51U3ViVHJpZ2dlclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZURyb3Bkb3duTWVudSwgLi4uc3ViVHJpZ2dlclByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgbWVudVNjb3BlID0gdXNlTWVudVNjb3BlKF9fc2NvcGVEcm9wZG93bk1lbnUpO1xuICByZXR1cm4gPE1lbnVQcmltaXRpdmUuU3ViVHJpZ2dlciB7Li4ubWVudVNjb3BlfSB7Li4uc3ViVHJpZ2dlclByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG59KTtcblxuRHJvcGRvd25NZW51U3ViVHJpZ2dlci5kaXNwbGF5TmFtZSA9IFNVQl9UUklHR0VSX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERyb3Bkb3duTWVudVN1YkNvbnRlbnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgU1VCX0NPTlRFTlRfTkFNRSA9ICdEcm9wZG93bk1lbnVTdWJDb250ZW50JztcblxudHlwZSBEcm9wZG93bk1lbnVTdWJDb250ZW50RWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuQ29udGVudD47XG50eXBlIE1lbnVTdWJDb250ZW50UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIE1lbnVQcmltaXRpdmUuU3ViQ29udGVudD47XG5pbnRlcmZhY2UgRHJvcGRvd25NZW51U3ViQ29udGVudFByb3BzIGV4dGVuZHMgTWVudVN1YkNvbnRlbnRQcm9wcyB7fVxuXG5jb25zdCBEcm9wZG93bk1lbnVTdWJDb250ZW50ID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgRHJvcGRvd25NZW51U3ViQ29udGVudEVsZW1lbnQsXG4gIERyb3Bkb3duTWVudVN1YkNvbnRlbnRQcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPERyb3Bkb3duTWVudVN1YkNvbnRlbnRQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEcm9wZG93bk1lbnUsIC4uLnN1YkNvbnRlbnRQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IG1lbnVTY29wZSA9IHVzZU1lbnVTY29wZShfX3Njb3BlRHJvcGRvd25NZW51KTtcblxuICByZXR1cm4gKFxuICAgIDxNZW51UHJpbWl0aXZlLlN1YkNvbnRlbnRcbiAgICAgIHsuLi5tZW51U2NvcGV9XG4gICAgICB7Li4uc3ViQ29udGVudFByb3BzfVxuICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICBzdHlsZT17e1xuICAgICAgICAuLi5wcm9wcy5zdHlsZSxcbiAgICAgICAgLy8gcmUtbmFtZXNwYWNlIGV4cG9zZWQgY29udGVudCBjdXN0b20gcHJvcGVydGllc1xuICAgICAgICAuLi57XG4gICAgICAgICAgJy0tcmFkaXgtZHJvcGRvd24tbWVudS1jb250ZW50LXRyYW5zZm9ybS1vcmlnaW4nOiAndmFyKC0tcmFkaXgtcG9wcGVyLXRyYW5zZm9ybS1vcmlnaW4pJyxcbiAgICAgICAgICAnLS1yYWRpeC1kcm9wZG93bi1tZW51LWNvbnRlbnQtYXZhaWxhYmxlLXdpZHRoJzogJ3ZhcigtLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtd2lkdGgpJyxcbiAgICAgICAgICAnLS1yYWRpeC1kcm9wZG93bi1tZW51LWNvbnRlbnQtYXZhaWxhYmxlLWhlaWdodCc6ICd2YXIoLS1yYWRpeC1wb3BwZXItYXZhaWxhYmxlLWhlaWdodCknLFxuICAgICAgICAgICctLXJhZGl4LWRyb3Bkb3duLW1lbnUtdHJpZ2dlci13aWR0aCc6ICd2YXIoLS1yYWRpeC1wb3BwZXItYW5jaG9yLXdpZHRoKScsXG4gICAgICAgICAgJy0tcmFkaXgtZHJvcGRvd24tbWVudS10cmlnZ2VyLWhlaWdodCc6ICd2YXIoLS1yYWRpeC1wb3BwZXItYW5jaG9yLWhlaWdodCknLFxuICAgICAgICB9LFxuICAgICAgfX1cbiAgICAvPlxuICApO1xufSk7XG5cbkRyb3Bkb3duTWVudVN1YkNvbnRlbnQuZGlzcGxheU5hbWUgPSBTVUJfQ09OVEVOVF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFJvb3QgPSBEcm9wZG93bk1lbnU7XG5jb25zdCBUcmlnZ2VyID0gRHJvcGRvd25NZW51VHJpZ2dlcjtcbmNvbnN0IFBvcnRhbCA9IERyb3Bkb3duTWVudVBvcnRhbDtcbmNvbnN0IENvbnRlbnQgPSBEcm9wZG93bk1lbnVDb250ZW50O1xuY29uc3QgR3JvdXAgPSBEcm9wZG93bk1lbnVHcm91cDtcbmNvbnN0IExhYmVsID0gRHJvcGRvd25NZW51TGFiZWw7XG5jb25zdCBJdGVtID0gRHJvcGRvd25NZW51SXRlbTtcbmNvbnN0IENoZWNrYm94SXRlbSA9IERyb3Bkb3duTWVudUNoZWNrYm94SXRlbTtcbmNvbnN0IFJhZGlvR3JvdXAgPSBEcm9wZG93bk1lbnVSYWRpb0dyb3VwO1xuY29uc3QgUmFkaW9JdGVtID0gRHJvcGRvd25NZW51UmFkaW9JdGVtO1xuY29uc3QgSXRlbUluZGljYXRvciA9IERyb3Bkb3duTWVudUl0ZW1JbmRpY2F0b3I7XG5jb25zdCBTZXBhcmF0b3IgPSBEcm9wZG93bk1lbnVTZXBhcmF0b3I7XG5jb25zdCBBcnJvdyA9IERyb3Bkb3duTWVudUFycm93O1xuY29uc3QgU3ViID0gRHJvcGRvd25NZW51U3ViO1xuY29uc3QgU3ViVHJpZ2dlciA9IERyb3Bkb3duTWVudVN1YlRyaWdnZXI7XG5jb25zdCBTdWJDb250ZW50ID0gRHJvcGRvd25NZW51U3ViQ29udGVudDtcblxuZXhwb3J0IHtcbiAgY3JlYXRlRHJvcGRvd25NZW51U2NvcGUsXG4gIC8vXG4gIERyb3Bkb3duTWVudSxcbiAgRHJvcGRvd25NZW51VHJpZ2dlcixcbiAgRHJvcGRvd25NZW51UG9ydGFsLFxuICBEcm9wZG93bk1lbnVDb250ZW50LFxuICBEcm9wZG93bk1lbnVHcm91cCxcbiAgRHJvcGRvd25NZW51TGFiZWwsXG4gIERyb3Bkb3duTWVudUl0ZW0sXG4gIERyb3Bkb3duTWVudUNoZWNrYm94SXRlbSxcbiAgRHJvcGRvd25NZW51UmFkaW9Hcm91cCxcbiAgRHJvcGRvd25NZW51UmFkaW9JdGVtLFxuICBEcm9wZG93bk1lbnVJdGVtSW5kaWNhdG9yLFxuICBEcm9wZG93bk1lbnVTZXBhcmF0b3IsXG4gIERyb3Bkb3duTWVudUFycm93LFxuICBEcm9wZG93bk1lbnVTdWIsXG4gIERyb3Bkb3duTWVudVN1YlRyaWdnZXIsXG4gIERyb3Bkb3duTWVudVN1YkNvbnRlbnQsXG4gIC8vXG4gIFJvb3QsXG4gIFRyaWdnZXIsXG4gIFBvcnRhbCxcbiAgQ29udGVudCxcbiAgR3JvdXAsXG4gIExhYmVsLFxuICBJdGVtLFxuICBDaGVja2JveEl0ZW0sXG4gIFJhZGlvR3JvdXAsXG4gIFJhZGlvSXRlbSxcbiAgSXRlbUluZGljYXRvcixcbiAgU2VwYXJhdG9yLFxuICBBcnJvdyxcbiAgU3ViLFxuICBTdWJUcmlnZ2VyLFxuICBTdWJDb250ZW50LFxufTtcbmV4cG9ydCB0eXBlIHtcbiAgRHJvcGRvd25NZW51UHJvcHMsXG4gIERyb3Bkb3duTWVudVRyaWdnZXJQcm9wcyxcbiAgRHJvcGRvd25NZW51UG9ydGFsUHJvcHMsXG4gIERyb3Bkb3duTWVudUNvbnRlbnRQcm9wcyxcbiAgRHJvcGRvd25NZW51R3JvdXBQcm9wcyxcbiAgRHJvcGRvd25NZW51TGFiZWxQcm9wcyxcbiAgRHJvcGRvd25NZW51SXRlbVByb3BzLFxuICBEcm9wZG93bk1lbnVDaGVja2JveEl0ZW1Qcm9wcyxcbiAgRHJvcGRvd25NZW51UmFkaW9Hcm91cFByb3BzLFxuICBEcm9wZG93bk1lbnVSYWRpb0l0ZW1Qcm9wcyxcbiAgRHJvcGRvd25NZW51SXRlbUluZGljYXRvclByb3BzLFxuICBEcm9wZG93bk1lbnVTZXBhcmF0b3JQcm9wcyxcbiAgRHJvcGRvd25NZW51QXJyb3dQcm9wcyxcbiAgRHJvcGRvd25NZW51U3ViUHJvcHMsXG4gIERyb3Bkb3duTWVudVN1YlRyaWdnZXJQcm9wcyxcbiAgRHJvcGRvd25NZW51U3ViQ29udGVudFByb3BzLFxufTtcbiJdLCJuYW1lcyI6WyJSb290IiwiUG9ydGFsIiwiQ29udGVudCIsIkdyb3VwIiwiTGFiZWwiLCJJdGVtIiwiQ2hlY2tib3hJdGVtIiwiUmFkaW9Hcm91cCIsIlJhZGlvSXRlbSIsIkl0ZW1JbmRpY2F0b3IiLCJTZXBhcmF0b3IiLCJBcnJvdyIsIlN1YiIsIlN1YlRyaWdnZXIiLCJTdWJDb250ZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-arrow/dist/index.mjs":
/*!******************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-arrow/dist/index.mjs ***!
\******************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Arrow: () => (/* binding */ Arrow),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/arrow/src/arrow.tsx\n\n\n\nvar NAME = \"Arrow\";\nvar Arrow = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, width = 10, height = 5, ...arrowProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.svg,\n {\n ...arrowProps,\n ref: forwardedRef,\n width,\n height,\n viewBox: \"0 0 30 10\",\n preserveAspectRatio: \"none\",\n children: props.asChild ? children : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"polygon\", { points: \"0,0 30,0 15,10\" })\n }\n );\n});\nArrow.displayName = NAME;\nvar Root = Arrow;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZHJvcGRvd24tbWVudS9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWFycm93L2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDK0I7QUFDdUI7QUFDZDtBQUN4QztBQUNBLFlBQVksNkNBQWdCO0FBQzVCLFVBQVUsa0RBQWtEO0FBQzVELHlCQUF5QixzREFBRztBQUM1QixJQUFJLGdFQUFTO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQsc0RBQUcsY0FBYywwQkFBMEI7QUFDdEc7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBSUU7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRyb3Bkb3duLW1lbnUvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1hcnJvdy9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9hcnJvdy9zcmMvYXJyb3cudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBOQU1FID0gXCJBcnJvd1wiO1xudmFyIEFycm93ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCB3aWR0aCA9IDEwLCBoZWlnaHQgPSA1LCAuLi5hcnJvd1Byb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgUHJpbWl0aXZlLnN2ZyxcbiAgICB7XG4gICAgICAuLi5hcnJvd1Byb3BzLFxuICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIHZpZXdCb3g6IFwiMCAwIDMwIDEwXCIsXG4gICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBcIm5vbmVcIixcbiAgICAgIGNoaWxkcmVuOiBwcm9wcy5hc0NoaWxkID8gY2hpbGRyZW4gOiAvKiBAX19QVVJFX18gKi8ganN4KFwicG9seWdvblwiLCB7IHBvaW50czogXCIwLDAgMzAsMCAxNSwxMFwiIH0pXG4gICAgfVxuICApO1xufSk7XG5BcnJvdy5kaXNwbGF5TmFtZSA9IE5BTUU7XG52YXIgUm9vdCA9IEFycm93O1xuZXhwb3J0IHtcbiAgQXJyb3csXG4gIFJvb3Rcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-arrow/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-collection/dist/index.mjs":
/*!***********************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-collection/dist/index.mjs ***!
\***********************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createCollection: () => (/* binding */ createCollection)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ createCollection auto */ // packages/react/collection/src/collection.tsx\n\n\n\n\n\nfunction createCollection(name) {\n var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, {\n collectionRef: {\n current: null\n },\n itemMap: /* @__PURE__ */ new Map()\n });\n const CollectionProvider = (props)=>{\n _s();\n const { scope, children } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const itemMap = react__WEBPACK_IMPORTED_MODULE_0__.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(CollectionProviderImpl, {\n scope,\n itemMap,\n collectionRef: ref,\n children\n });\n };\n _s(CollectionProvider, \"i9R1RY532Tsw7syarXwOonBpwXM=\");\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s1((props, forwardedRef)=>{\n _s1();\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__.Slot, {\n ref: composedRefs,\n children\n });\n }, \"5JQ4uy78XLW8WM+YuDpNgF/JIVs=\", false, function() {\n return [\n useCollectionContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n }));\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s2((props, forwardedRef)=>{\n _s2();\n const { scope, children, ...itemData } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"createCollection.CollectionItemSlot.useEffect\": ()=>{\n context.itemMap.set(ref, {\n ref,\n ...itemData\n });\n return ({\n \"createCollection.CollectionItemSlot.useEffect\": ()=>void context.itemMap.delete(ref)\n })[\"createCollection.CollectionItemSlot.useEffect\"];\n }\n }[\"createCollection.CollectionItemSlot.useEffect\"]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__.Slot, {\n ...{\n [ITEM_DATA_ATTR]: \"\"\n },\n ref: composedRefs,\n children\n });\n }, \"eauD3DgWC2VdU7voCXLDR4PeA+k=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n useCollectionContext\n ];\n }));\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n _s3();\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"createCollection.useCollection.useCallback[getItems]\": ()=>{\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(\"[\".concat(ITEM_DATA_ATTR, \"]\")));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort({\n \"createCollection.useCollection.useCallback[getItems].orderedItems\": (a, b)=>orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n }[\"createCollection.useCollection.useCallback[getItems].orderedItems\"]);\n return orderedItems;\n }\n }[\"createCollection.useCollection.useCallback[getItems]\"], [\n context.collectionRef,\n context.itemMap\n ]);\n return getItems;\n }\n _s3(useCollection, \"jCyvzZFUzVDqeEjq0R8vi6mUa78=\", false, function() {\n return [\n useCollectionContext\n ];\n });\n return [\n {\n Provider: CollectionProvider,\n Slot: CollectionSlot,\n ItemSlot: CollectionItemSlot\n },\n useCollection,\n createCollectionScope\n ];\n}\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZHJvcGRvd24tbWVudS9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWNvbGxlY3Rpb24vZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFrQjtBQUNpQjtBQUNIO0FBQ1g7QUF1Q2Y7QUExQk4sU0FBUyxpQkFBaUUsTUFBYzs7SUFLdEYsTUFBTSxnQkFBZ0IsT0FBTztJQUM3QixNQUFNLENBQUMseUJBQXlCLHFCQUFxQixJQUFJLDJFQUFrQixDQUFDLGFBQWE7SUFVekYsTUFBTSxDQUFDLHdCQUF3QixvQkFBb0IsSUFBSSx3QkFDckQsZUFDQTtRQUFFLGVBQWU7WUFBRSxTQUFTO1FBQUs7UUFBRyxTQUFTLG9CQUFJLElBQUk7SUFBRTtJQUd6RCwyQkFBaUYsQ0FBQzs7UUFDaEYsTUFBTSxFQUFFLE9BQU8sU0FBUyxJQUFJO1FBQzVCLE1BQU0sTUFBTSx5Q0FBTSxDQUEwQixJQUFJO1FBQ2hELE1BQU0sVUFBVSx5Q0FBTSxDQUFnQyxvQkFBSSxJQUFJLENBQUMsRUFBRTtRQUNqRSxPQUNFLHVFQUFDO1lBQXVCO1lBQWM7WUFBa0IsZUFBZTtZQUNwRTtRQUFBLENBQ0g7SUFFSjtPQVRNO0lBV04sbUJBQW1CLGNBQWM7SUFNakMsTUFBTSx1QkFBdUIsT0FBTztJQUVwQyxNQUFNLCtCQUFpQiw2Q0FBTSxLQUMzQixDQUFDLE9BQU87O1FBQ04sTUFBTSxFQUFFLE9BQU8sU0FBUyxJQUFJO1FBQzVCLE1BQU0sK0JBQStCLHNCQUFzQixLQUFLO1FBQ2hFLE1BQU0sZUFBZSw2RUFBZSxDQUFDLGNBQWMsUUFBUSxhQUFhO1FBQ3hFLE9BQU8sdUVBQUMsc0RBQUksRUFBSjtZQUFLLEtBQUs7WUFBZTtRQUFBLENBQVM7SUFDNUM7O1lBSGtCO1lBQ0sseUVBQWU7OztJQUt4QyxlQUFlLGNBQWM7SUFNN0IsTUFBTSxpQkFBaUIsT0FBTztJQUM5QixNQUFNLGlCQUFpQjtJQU92QixNQUFNLG1DQUFxQiw2Q0FBTSxLQUMvQixDQUFDLE9BQU87O1FBQ04sTUFBTSxFQUFFLE9BQU8sVUFBVSxHQUFHLFNBQVMsSUFBSTtRQUN6QyxNQUFNLE1BQU0seUNBQU0sQ0FBb0IsSUFBSTtRQUMxQyxNQUFNLGVBQWUsNkVBQWUsQ0FBQyxjQUFjLEdBQUc7UUFDdEQsTUFBTSwrQkFBK0IsZ0JBQWdCLEtBQUs7UUFFMUQsNENBQU07NkRBQVU7Z0JBQ2QsUUFBUSxRQUFRLElBQUksS0FBSztvQkFBRTtvQkFBSyxHQUFJO2dCQUFpQyxDQUFDO2dCQUN0RTtxRUFBTyxJQUFNLEtBQUssUUFBUSxRQUFRLE9BQU8sR0FBRzs7WUFDOUMsQ0FBQzs7UUFFRCxPQUNFLHVFQUFDLHNEQUFJLEVBQUo7WUFBTSxHQUFHO2dCQUFFLENBQUMsY0FBYyxHQUFHO1lBQUc7WUFBRyxLQUFLO1lBQ3RDO1FBQUEsQ0FDSDtJQUVKOztZQWJ1Qix5RUFBZTtZQUNwQjs7O0lBZXBCLG1CQUFtQixjQUFjO0lBTWpDLHVCQUF1QixPQUFZOztRQUNqQyxNQUFNLCtCQUErQixPQUFPLHNCQUFzQixLQUFLO1FBRXZFLE1BQU0sV0FBVyw4Q0FBTTtvRUFBWTtnQkFDakMsTUFBTSxpQkFBaUIsUUFBUSxjQUFjO2dCQUM3QyxJQUFJLENBQUMsZUFBZ0IsUUFBTyxDQUFDO2dCQUM3QixNQUFNLGVBQWUsTUFBTSxLQUFLLGVBQWUsaUJBQWlCLElBQWtCLE9BQWQsY0FBYyxJQUFHLENBQUM7Z0JBQ3RGLE1BQU0sUUFBUSxNQUFNLEtBQUssUUFBUSxRQUFRLE9BQU8sQ0FBQztnQkFDakQsTUFBTSxlQUFlLE1BQU07eUZBQ3pCLENBQUMsR0FBRyxJQUFNLGFBQWEsUUFBUSxFQUFFLElBQUksT0FBUSxJQUFJLGFBQWEsUUFBUSxFQUFFLElBQUksT0FBUTs7Z0JBRXRGLE9BQU87WUFDVDttRUFBRztZQUFDLFFBQVE7WUFBZSxRQUFRLE9BQU87U0FBQztRQUUzQyxPQUFPO0lBQ1Q7UUFmUzs7WUFDUzs7O0lBZ0JsQixPQUFPO1FBQ0w7WUFBRSxVQUFVO1lBQW9CLE1BQU07WUFBZ0IsVUFBVTtRQUFtQjtRQUNuRjtRQUNBO0tBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL3NyYy9jb2xsZWN0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyBTbG90IH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXNsb3QnO1xuXG50eXBlIFNsb3RQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgU2xvdD47XG50eXBlIENvbGxlY3Rpb25FbGVtZW50ID0gSFRNTEVsZW1lbnQ7XG5pbnRlcmZhY2UgQ29sbGVjdGlvblByb3BzIGV4dGVuZHMgU2xvdFByb3BzIHtcbiAgc2NvcGU6IGFueTtcbn1cblxuLy8gV2UgaGF2ZSByZXNvcnRlZCB0byByZXR1cm5pbmcgc2xvdHMgZGlyZWN0bHkgcmF0aGVyIHRoYW4gZXhwb3NpbmcgcHJpbWl0aXZlcyB0aGF0IGNhbiB0aGVuXG4vLyBiZSBzbG90dGVkIGxpa2UgYDxDb2xsZWN0aW9uSXRlbSBhcz17U2xvdH0+4oCmPC9Db2xsZWN0aW9uSXRlbT5gLlxuLy8gVGhpcyBpcyBiZWNhdXNlIHdlIGVuY291bnRlcmVkIGlzc3VlcyB3aXRoIGdlbmVyaWMgdHlwZXMgdGhhdCBjYW5ub3QgYmUgc3RhdGljYWxseSBhbmFseXNlZFxuLy8gZHVlIHRvIGNyZWF0aW5nIHRoZW0gZHluYW1pY2FsbHkgdmlhIGNyZWF0ZUNvbGxlY3Rpb24uXG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbGxlY3Rpb248SXRlbUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCwgSXRlbURhdGEgPSB7fT4obmFtZTogc3RyaW5nKSB7XG4gIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIENvbGxlY3Rpb25Qcm92aWRlclxuICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gIGNvbnN0IFBST1ZJREVSX05BTUUgPSBuYW1lICsgJ0NvbGxlY3Rpb25Qcm92aWRlcic7XG4gIGNvbnN0IFtjcmVhdGVDb2xsZWN0aW9uQ29udGV4dCwgY3JlYXRlQ29sbGVjdGlvblNjb3BlXSA9IGNyZWF0ZUNvbnRleHRTY29wZShQUk9WSURFUl9OQU1FKTtcblxuICB0eXBlIENvbnRleHRWYWx1ZSA9IHtcbiAgICBjb2xsZWN0aW9uUmVmOiBSZWFjdC5SZWZPYmplY3Q8Q29sbGVjdGlvbkVsZW1lbnQgfCBudWxsPjtcbiAgICBpdGVtTWFwOiBNYXA8XG4gICAgICBSZWFjdC5SZWZPYmplY3Q8SXRlbUVsZW1lbnQgfCBudWxsPixcbiAgICAgIHsgcmVmOiBSZWFjdC5SZWZPYmplY3Q8SXRlbUVsZW1lbnQgfCBudWxsPiB9ICYgSXRlbURhdGFcbiAgICA+O1xuICB9O1xuXG4gIGNvbnN0IFtDb2xsZWN0aW9uUHJvdmlkZXJJbXBsLCB1c2VDb2xsZWN0aW9uQ29udGV4dF0gPSBjcmVhdGVDb2xsZWN0aW9uQ29udGV4dDxDb250ZXh0VmFsdWU+KFxuICAgIFBST1ZJREVSX05BTUUsXG4gICAgeyBjb2xsZWN0aW9uUmVmOiB7IGN1cnJlbnQ6IG51bGwgfSwgaXRlbU1hcDogbmV3IE1hcCgpIH1cbiAgKTtcblxuICBjb25zdCBDb2xsZWN0aW9uUHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7IHNjb3BlOiBhbnkgfT4gPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHNjb3BlLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gICAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPENvbGxlY3Rpb25FbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpdGVtTWFwID0gUmVhY3QudXNlUmVmPENvbnRleHRWYWx1ZVsnaXRlbU1hcCddPihuZXcgTWFwKCkpLmN1cnJlbnQ7XG4gICAgcmV0dXJuIChcbiAgICAgIDxDb2xsZWN0aW9uUHJvdmlkZXJJbXBsIHNjb3BlPXtzY29wZX0gaXRlbU1hcD17aXRlbU1hcH0gY29sbGVjdGlvblJlZj17cmVmfT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9Db2xsZWN0aW9uUHJvdmlkZXJJbXBsPlxuICAgICk7XG4gIH07XG5cbiAgQ29sbGVjdGlvblByb3ZpZGVyLmRpc3BsYXlOYW1lID0gUFJPVklERVJfTkFNRTtcblxuICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBDb2xsZWN0aW9uU2xvdFxuICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gIGNvbnN0IENPTExFQ1RJT05fU0xPVF9OQU1FID0gbmFtZSArICdDb2xsZWN0aW9uU2xvdCc7XG5cbiAgY29uc3QgQ29sbGVjdGlvblNsb3QgPSBSZWFjdC5mb3J3YXJkUmVmPENvbGxlY3Rpb25FbGVtZW50LCBDb2xsZWN0aW9uUHJvcHM+KFxuICAgIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgICBjb25zdCB7IHNjb3BlLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gICAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29sbGVjdGlvbkNvbnRleHQoQ09MTEVDVElPTl9TTE9UX05BTUUsIHNjb3BlKTtcbiAgICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRleHQuY29sbGVjdGlvblJlZik7XG4gICAgICByZXR1cm4gPFNsb3QgcmVmPXtjb21wb3NlZFJlZnN9PntjaGlsZHJlbn08L1Nsb3Q+O1xuICAgIH1cbiAgKTtcblxuICBDb2xsZWN0aW9uU2xvdC5kaXNwbGF5TmFtZSA9IENPTExFQ1RJT05fU0xPVF9OQU1FO1xuXG4gIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIENvbGxlY3Rpb25JdGVtXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgY29uc3QgSVRFTV9TTE9UX05BTUUgPSBuYW1lICsgJ0NvbGxlY3Rpb25JdGVtU2xvdCc7XG4gIGNvbnN0IElURU1fREFUQV9BVFRSID0gJ2RhdGEtcmFkaXgtY29sbGVjdGlvbi1pdGVtJztcblxuICB0eXBlIENvbGxlY3Rpb25JdGVtU2xvdFByb3BzID0gSXRlbURhdGEgJiB7XG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgICBzY29wZTogYW55O1xuICB9O1xuXG4gIGNvbnN0IENvbGxlY3Rpb25JdGVtU2xvdCA9IFJlYWN0LmZvcndhcmRSZWY8SXRlbUVsZW1lbnQsIENvbGxlY3Rpb25JdGVtU2xvdFByb3BzPihcbiAgICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgICAgY29uc3QgeyBzY29wZSwgY2hpbGRyZW4sIC4uLml0ZW1EYXRhIH0gPSBwcm9wcztcbiAgICAgIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZjxJdGVtRWxlbWVudD4obnVsbCk7XG4gICAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuICAgICAgY29uc3QgY29udGV4dCA9IHVzZUNvbGxlY3Rpb25Db250ZXh0KElURU1fU0xPVF9OQU1FLCBzY29wZSk7XG5cbiAgICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnRleHQuaXRlbU1hcC5zZXQocmVmLCB7IHJlZiwgLi4uKGl0ZW1EYXRhIGFzIHVua25vd24gYXMgSXRlbURhdGEpIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4gdm9pZCBjb250ZXh0Lml0ZW1NYXAuZGVsZXRlKHJlZik7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFNsb3Qgey4uLnsgW0lURU1fREFUQV9BVFRSXTogJycgfX0gcmVmPXtjb21wb3NlZFJlZnN9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TbG90PlxuICAgICAgKTtcbiAgICB9XG4gICk7XG5cbiAgQ29sbGVjdGlvbkl0ZW1TbG90LmRpc3BsYXlOYW1lID0gSVRFTV9TTE9UX05BTUU7XG5cbiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogdXNlQ29sbGVjdGlvblxuICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gIGZ1bmN0aW9uIHVzZUNvbGxlY3Rpb24oc2NvcGU6IGFueSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDb2xsZWN0aW9uQ29udGV4dChuYW1lICsgJ0NvbGxlY3Rpb25Db25zdW1lcicsIHNjb3BlKTtcblxuICAgIGNvbnN0IGdldEl0ZW1zID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgY29uc3QgY29sbGVjdGlvbk5vZGUgPSBjb250ZXh0LmNvbGxlY3Rpb25SZWYuY3VycmVudDtcbiAgICAgIGlmICghY29sbGVjdGlvbk5vZGUpIHJldHVybiBbXTtcbiAgICAgIGNvbnN0IG9yZGVyZWROb2RlcyA9IEFycmF5LmZyb20oY29sbGVjdGlvbk5vZGUucXVlcnlTZWxlY3RvckFsbChgWyR7SVRFTV9EQVRBX0FUVFJ9XWApKTtcbiAgICAgIGNvbnN0IGl0ZW1zID0gQXJyYXkuZnJvbShjb250ZXh0Lml0ZW1NYXAudmFsdWVzKCkpO1xuICAgICAgY29uc3Qgb3JkZXJlZEl0ZW1zID0gaXRlbXMuc29ydChcbiAgICAgICAgKGEsIGIpID0+IG9yZGVyZWROb2Rlcy5pbmRleE9mKGEucmVmLmN1cnJlbnQhKSAtIG9yZGVyZWROb2Rlcy5pbmRleE9mKGIucmVmLmN1cnJlbnQhKVxuICAgICAgKTtcbiAgICAgIHJldHVybiBvcmRlcmVkSXRlbXM7XG4gICAgfSwgW2NvbnRleHQuY29sbGVjdGlvblJlZiwgY29udGV4dC5pdGVtTWFwXSk7XG5cbiAgICByZXR1cm4gZ2V0SXRlbXM7XG4gIH1cblxuICByZXR1cm4gW1xuICAgIHsgUHJvdmlkZXI6IENvbGxlY3Rpb25Qcm92aWRlciwgU2xvdDogQ29sbGVjdGlvblNsb3QsIEl0ZW1TbG90OiBDb2xsZWN0aW9uSXRlbVNsb3QgfSxcbiAgICB1c2VDb2xsZWN0aW9uLFxuICAgIGNyZWF0ZUNvbGxlY3Rpb25TY29wZSxcbiAgXSBhcyBjb25zdDtcbn1cblxuZXhwb3J0IHsgY3JlYXRlQ29sbGVjdGlvbiB9O1xuZXhwb3J0IHR5cGUgeyBDb2xsZWN0aW9uUHJvcHMgfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-collection/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs":
/*!******************************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs ***!
\******************************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Branch: () => (/* binding */ Branch),\n/* harmony export */ DismissableLayer: () => (/* binding */ DismissableLayer),\n/* harmony export */ DismissableLayerBranch: () => (/* binding */ DismissableLayerBranch),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-escape-keydown */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Branch,DismissableLayer,DismissableLayerBranch,Root auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n// packages/react/dismissable-layer/src/dismissable-layer.tsx\n\n\n\n\n\n\n\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n var _globalThis;\n _s();\n const { disableOutsidePointerEvents = false, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, ...layerProps } = props;\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DismissableLayerContext);\n const [node, setNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n var _node_ownerDocument;\n const ownerDocument = (_node_ownerDocument = node === null || node === void 0 ? void 0 : node.ownerDocument) !== null && _node_ownerDocument !== void 0 ? _node_ownerDocument : (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.document;\n const [, force] = react__WEBPACK_IMPORTED_MODULE_0__.useState({});\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(forwardedRef, {\n \"DismissableLayer.useComposedRefs[composedRefs]\": (node2)=>setNode(node2)\n }[\"DismissableLayer.useComposedRefs[composedRefs]\"]);\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside({\n \"DismissableLayer.usePointerDownOutside[pointerDownOutside]\": (event)=>{\n const target = event.target;\n const isPointerDownOnBranch = [\n ...context.branches\n ].some({\n \"DismissableLayer.usePointerDownOutside[pointerDownOutside].isPointerDownOnBranch\": (branch)=>branch.contains(target)\n }[\"DismissableLayer.usePointerDownOutside[pointerDownOutside].isPointerDownOnBranch\"]);\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside === null || onPointerDownOutside === void 0 ? void 0 : onPointerDownOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 ? void 0 : onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();\n }\n }[\"DismissableLayer.usePointerDownOutside[pointerDownOutside]\"], ownerDocument);\n const focusOutside = useFocusOutside({\n \"DismissableLayer.useFocusOutside[focusOutside]\": (event)=>{\n const target = event.target;\n const isFocusInBranch = [\n ...context.branches\n ].some({\n \"DismissableLayer.useFocusOutside[focusOutside].isFocusInBranch\": (branch)=>branch.contains(target)\n }[\"DismissableLayer.useFocusOutside[focusOutside].isFocusInBranch\"]);\n if (isFocusInBranch) return;\n onFocusOutside === null || onFocusOutside === void 0 ? void 0 : onFocusOutside(event);\n onInteractOutside === null || onInteractOutside === void 0 ? void 0 : onInteractOutside(event);\n if (!event.defaultPrevented) onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();\n }\n }[\"DismissableLayer.useFocusOutside[focusOutside]\"], ownerDocument);\n (0,_radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown)({\n \"DismissableLayer.useEscapeKeydown\": (event)=>{\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown === null || onEscapeKeyDown === void 0 ? void 0 : onEscapeKeyDown(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }\n }[\"DismissableLayer.useEscapeKeydown\"], ownerDocument);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayer.useEffect\": ()=>{\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return ({\n \"DismissableLayer.useEffect\": ()=>{\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n }\n })[\"DismissableLayer.useEffect\"];\n }\n }[\"DismissableLayer.useEffect\"], [\n node,\n ownerDocument,\n disableOutsidePointerEvents,\n context\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayer.useEffect\": ()=>{\n return ({\n \"DismissableLayer.useEffect\": ()=>{\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n }\n })[\"DismissableLayer.useEffect\"];\n }\n }[\"DismissableLayer.useEffect\"], [\n node,\n context\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayer.useEffect\": ()=>{\n const handleUpdate = {\n \"DismissableLayer.useEffect.handleUpdate\": ()=>force({})\n }[\"DismissableLayer.useEffect.handleUpdate\"];\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return ({\n \"DismissableLayer.useEffect\": ()=>document.removeEventListener(CONTEXT_UPDATE, handleUpdate)\n })[\"DismissableLayer.useEffect\"];\n }\n }[\"DismissableLayer.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)\n });\n}, \"Cv1Mp9NkKD7dAs9oYGx4QOBfHI8=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs,\n usePointerDownOutside,\n useFocusOutside,\n _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown\n ];\n})), \"Cv1Mp9NkKD7dAs9oYGx4QOBfHI8=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs,\n usePointerDownOutside,\n useFocusOutside,\n _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown\n ];\n});\n_c1 = DismissableLayer;\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c2 = _s1((props, forwardedRef)=>{\n _s1();\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DismissableLayerContext);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(forwardedRef, ref);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"DismissableLayerBranch.useEffect\": ()=>{\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return ({\n \"DismissableLayerBranch.useEffect\": ()=>{\n context.branches.delete(node);\n }\n })[\"DismissableLayerBranch.useEffect\"];\n }\n }\n }[\"DismissableLayerBranch.useEffect\"], [\n context.branches\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...props,\n ref: composedRefs\n });\n}, \"GBdJ+COKIgE+yfoxVYovlSfvJLw=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs\n ];\n})), \"GBdJ+COKIgE+yfoxVYovlSfvJLw=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs\n ];\n});\n_c3 = DismissableLayerBranch;\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside) {\n let ownerDocument = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : (()=>{\n var _globalThis;\n return (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.document;\n })();\n _s2();\n const handlePointerDownOutside = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onPointerDownOutside);\n const isPointerInsideReactTreeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const handleClickRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef({\n \"usePointerDownOutside.useRef[handleClickRef]\": ()=>{}\n }[\"usePointerDownOutside.useRef[handleClickRef]\"]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"usePointerDownOutside.useEffect\": ()=>{\n const handlePointerDown = {\n \"usePointerDownOutside.useEffect.handlePointerDown\": (event)=>{\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = {\n \"usePointerDownOutside.useEffect.handlePointerDown.handleAndDispatchPointerDownOutsideEvent2\": function() {\n handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {\n discrete: true\n });\n }\n }[\"usePointerDownOutside.useEffect.handlePointerDown.handleAndDispatchPointerDownOutsideEvent2\"];\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = {\n originalEvent: event\n };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, {\n once: true\n });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n }\n }[\"usePointerDownOutside.useEffect.handlePointerDown\"];\n const timerId = window.setTimeout({\n \"usePointerDownOutside.useEffect.timerId\": ()=>{\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }\n }[\"usePointerDownOutside.useEffect.timerId\"], 0);\n return ({\n \"usePointerDownOutside.useEffect\": ()=>{\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n })[\"usePointerDownOutside.useEffect\"];\n }\n }[\"usePointerDownOutside.useEffect\"], [\n ownerDocument,\n handlePointerDownOutside\n ]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: ()=>isPointerInsideReactTreeRef.current = true\n };\n}\n_s2(usePointerDownOutside, \"M0Jqtgoae/27FfRizMxidmqs6b8=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef\n ];\n});\nfunction useFocusOutside(onFocusOutside) {\n let ownerDocument = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : (()=>{\n var _globalThis;\n return (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.document;\n })();\n _s3();\n const handleFocusOutside = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onFocusOutside);\n const isFocusInsideReactTreeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"useFocusOutside.useEffect\": ()=>{\n const handleFocus = {\n \"useFocusOutside.useEffect.handleFocus\": (event)=>{\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n }\n }[\"useFocusOutside.useEffect.handleFocus\"];\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return ({\n \"useFocusOutside.useEffect\": ()=>ownerDocument.removeEventListener(\"focusin\", handleFocus)\n })[\"useFocusOutside.useEffect\"];\n }\n }[\"useFocusOutside.useEffect\"], [\n ownerDocument,\n handleFocusOutside\n ]);\n return {\n onFocusCapture: ()=>isFocusInsideReactTreeRef.current = true,\n onBlurCapture: ()=>isFocusInsideReactTreeRef.current = false\n };\n}\n_s3(useFocusOutside, \"IjUuEsgpHwQc3lZUTypKaC1ceUQ=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef\n ];\n});\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, param) {\n let { discrete } = param;\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: true,\n detail\n });\n if (handler) target.addEventListener(name, handler, {\n once: true\n });\n if (discrete) {\n (0,_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.dispatchDiscreteCustomEvent)(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3;\n$RefreshReg$(_c, \"DismissableLayer$React.forwardRef\");\n$RefreshReg$(_c1, \"DismissableLayer\");\n$RefreshReg$(_c2, \"DismissableLayerBranch$React.forwardRef\");\n$RefreshReg$(_c3, \"DismissableLayerBranch\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZHJvcGRvd24tbWVudS9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdUI7QUFDYztBQUNrQjtBQUN2QjtBQUNEO0FBQ0U7QUFxSjNCO0FBL0lOLElBQU0seUJBQXlCO0FBQy9CLElBQU0saUJBQWlCO0FBQ3ZCLElBQU0sdUJBQXVCO0FBQzdCLElBQU0sZ0JBQWdCO0FBRXRCLElBQUk7QUFFSixJQUFNLHdDQUFnQyxpREFBYztJQUNsRCxRQUFRLG9CQUFJLElBQTZCO0lBQ3pDLHdDQUF3QyxvQkFBSSxJQUE2QjtJQUN6RSxVQUFVLG9CQUFJLElBQW1DO0FBQ25ELENBQUM7QUFzQ0QsSUFBTSxvQ0FBeUIsc0RBQzdCLENBQUMsT0FBTztRQVl1Qzs7SUFYN0MsTUFBTSxFQUNKLDhCQUE4QixPQUM5QixpQkFDQSxzQkFDQSxnQkFDQSxtQkFDQSxXQUNBLEdBQUcsWUFDTCxHQUFJO0lBQ0osTUFBTSxVQUFnQiw4Q0FBVyx1QkFBdUI7SUFDeEQsTUFBTSxDQUFDLE1BQU0sT0FBTyxJQUFVLDRDQUF5QyxJQUFJO1FBQ3JEO0lBQXRCLE1BQU0sd0ZBQXNCLHVLQUE2QjtJQUN6RCxNQUFNLENBQUMsRUFBRSxLQUFLLElBQVUsNENBQVMsQ0FBQyxDQUFDO0lBQ25DLE1BQU0sZUFBZSw2RUFBZSxDQUFDOzBEQUFjLENBQUNBLFFBQVMsUUFBUUEsS0FBSSxDQUFDOztJQUMxRSxNQUFNLFNBQVMsTUFBTSxLQUFLLFFBQVEsTUFBTTtJQUN4QyxNQUFNLENBQUMsNENBQTRDLElBQUksQ0FBQztXQUFHLFFBQVEsc0NBQXNDO0tBQUEsQ0FBRSxNQUFNLEVBQUU7SUFDbkgsTUFBTSxvREFBb0QsT0FBTyxRQUFRLDRDQUE0QztJQUNySCxNQUFNLFFBQVEsT0FBTyxPQUFPLFFB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REE7SUFFQSxNQUFNLFNBQVMsT0FBTyxjQUFjO0lBQ3BDLE1BQU0sUUFBUSxJQUFJLFlBQVksTUFBTTtRQUFFLFNBQVM7UUFBTyxZQUFZO1FBQU07SUFBTyxDQUFDO0lBQ2hGLElBQUksUUFBUyxRQUFPLGlCQUFpQixNQUFNLFNBQTBCO1FBQUUsTUFBTTtJQUFLLENBQUM7SUFFbkYsSUFBSSxVQUFVO1FBQ1osc0ZBQTJCLENBQUMsUUFBUSxLQUFLO0lBQzNDLE9BQU87UUFDTCxPQUFPLGNBQWMsS0FBSztJQUM1QjtBQUNGO0FBRUEsSUFBTSxPQUFPO0FBQ2IsSUFBTSxTQUFTIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vc3JjL2Rpc21pc3NhYmxlLWxheWVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByYWRpeC11aS9wcmltaXRpdmUnO1xuaW1wb3J0IHsgUHJpbWl0aXZlLCBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMnO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2tSZWYgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZic7XG5pbXBvcnQgeyB1c2VFc2NhcGVLZXlkb3duIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1lc2NhcGUta2V5ZG93bic7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpc21pc3NhYmxlTGF5ZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgRElTTUlTU0FCTEVfTEFZRVJfTkFNRSA9ICdEaXNtaXNzYWJsZUxheWVyJztcbmNvbnN0IENPTlRFWFRfVVBEQVRFID0gJ2Rpc21pc3NhYmxlTGF5ZXIudXBkYXRlJztcbmNvbnN0IFBPSU5URVJfRE9XTl9PVVRTSURFID0gJ2Rpc21pc3NhYmxlTGF5ZXIucG9pbnRlckRvd25PdXRzaWRlJztcbmNvbnN0IEZPQ1VTX09VVFNJREUgPSAnZGlzbWlzc2FibGVMYXllci5mb2N1c091dHNpZGUnO1xuXG5sZXQgb3JpZ2luYWxCb2R5UG9pbnRlckV2ZW50czogc3RyaW5nO1xuXG5jb25zdCBEaXNtaXNzYWJsZUxheWVyQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe1xuICBsYXllcnM6IG5ldyBTZXQ8RGlzbWlzc2FibGVMYXllckVsZW1lbnQ+KCksXG4gIGxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkOiBuZXcgU2V0PERpc21pc3NhYmxlTGF5ZXJFbGVtZW50PigpLFxuICBicmFuY2hlczogbmV3IFNldDxEaXNtaXNzYWJsZUxheWVyQnJhbmNoRWxlbWVudD4oKSxcbn0pO1xuXG50eXBlIERpc21pc3NhYmxlTGF5ZXJFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG50eXBlIFByaW1pdGl2ZURpdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBEaXNtaXNzYWJsZUxheWVyUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVEaXZQcm9wcyB7XG4gIC8qKlxuICAgKiBXaGVuIGB0cnVlYCwgaG92ZXIvZm9jdXMvY2xpY2sgaW50ZXJhY3Rpb25zIHdpbGwgYmUgZGlzYWJsZWQgb24gZWxlbWVudHMgb3V0c2lkZVxuICAgKiB0aGUgYERpc21pc3NhYmxlTGF5ZXJgLiBVc2VycyB3aWxsIG5lZWQgdG8gY2xpY2sgdHdpY2Ugb24gb3V0c2lkZSBlbGVtZW50cyB0b1xuICAgKiBpbnRlcmFjdCB3aXRoIHRoZW06IG9uY2UgdG8gY2xvc2UgdGhlIGBEaXNtaXNzYWJsZUxheWVyYCwgYW5kIGFnYWluIHRvIHRyaWdnZXIgdGhlIGVsZW1lbnQuXG4gICAqL1xuICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHM/OiBib29sZWFuO1xuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgZXNjYXBlIGtleSBpcyBkb3duLlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25Fc2NhcGVLZXlEb3duPzogKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgYSBgcG9pbnRlcmRvd25gIGV2ZW50IGhhcHBlbnMgb3V0c2lkZSBvZiB0aGUgYERpc21pc3NhYmxlTGF5ZXJgLlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25Qb2ludGVyRG93bk91dHNpZGU/OiAoZXZlbnQ6IFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgZm9jdXMgbW92ZXMgb3V0c2lkZSBvZiB0aGUgYERpc21pc3NhYmxlTGF5ZXJgLlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25Gb2N1c091dHNpZGU/OiAoZXZlbnQ6IEZvY3VzT3V0c2lkZUV2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiBhbiBpbnRlcmFjdGlvbiBoYXBwZW5zIG91dHNpZGUgdGhlIGBEaXNtaXNzYWJsZUxheWVyYC5cbiAgICogU3BlY2lmaWNhbGx5LCB3aGVuIGEgYHBvaW50ZXJkb3duYCBldmVudCBoYXBwZW5zIG91dHNpZGUgb3IgZm9jdXMgbW92ZXMgb3V0c2lkZSBvZiBpdC5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uSW50ZXJhY3RPdXRzaWRlPzogKGV2ZW50OiBQb2ludGVyRG93bk91dHNpZGVFdmVudCB8IEZvY3VzT3V0c2lkZUV2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogSGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgYERpc21pc3NhYmxlTGF5ZXJgIHNob3VsZCBiZSBkaXNtaXNzZWRcbiAgICovXG4gIG9uRGlzbWlzcz86ICgpID0+IHZvaWQ7XG59XG5cbmNvbnN0IERpc21pc3NhYmxlTGF5ZXIgPSBSZWFjdC5mb3J3YXJkUmVmPERpc21pc3NhYmxlTGF5ZXJFbGVtZW50LCBEaXNtaXNzYWJsZUxheWVyUHJvcHM+KFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cyA9IGZhbHNlLFxuICAgICAgb25Fc2NhcGVLZXlEb3duLFxuICAgICAgb25Qb2ludGVyRG93bk91dHNpZGUsXG4gICAgICBvbkZvY3VzT3V0c2lkZSxcbiAgICAgIG9uSW50ZXJhY3RPdXRzaWRlLFxuICAgICAgb25EaXNtaXNzLFxuICAgICAgLi4ubGF5ZXJQcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChEaXNtaXNzYWJsZUxheWVyQ29udGV4dCk7XG4gICAgY29uc3QgW25vZGUsIHNldE5vZGVdID0gUmVhY3QudXNlU3RhdGU8RGlzbWlzc2FibGVMYXllckVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBvd25lckRvY3VtZW50ID0gbm9kZT8ub3duZXJEb2N1bWVudCA/PyBnbG9iYWxUaGlzPy5kb2N1bWVudDtcbiAgICBjb25zdCBbLCBmb3JjZV0gPSBSZWFjdC51c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldE5vZGUobm9kZSkpO1xuICAgIGNvbnN0IGxheWVycyA9IEFycmF5LmZyb20oY29udGV4dC5sYXllcnMpO1xuICAgIGNvbnN0IFtoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZF0gPSBbLi4uY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZF0uc2xpY2UoLTEpOyAvLyBwcmV0dGllci1pZ25vcmVcbiAgICBjb25zdCBoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZEluZGV4ID0gbGF5ZXJzLmluZGV4T2YoaGlnaGVzdExheWVyV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQpOyAvLyBwcmV0dGllci1pZ25vcmVcbiAgICBjb25zdCBpbmRleCA9IG5vZGUgPyBsYXllcnMuaW5kZXhPZihub2RlKSA6IC0xO1xuICAgIGNvbnN0IGlzQm9keVBvaW50ZXJFdmVudHNEaXNhYmxlZCA9IGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuc2l6ZSA+IDA7XG4gICAgY29uc3QgaXNQb2ludGVyRXZlbnRzRW5hYmxlZCA9IGluZGV4ID49IGhpZ2hlc3RMYXllcldpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkSW5kZXg7XG5cbiAgICBjb25zdCBwb2ludGVyRG93bk91dHNpZGUgPSB1c2VQb2ludGVyRG93bk91dHNpZGUoKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBpc1BvaW50ZXJEb3duT25CcmFuY2ggPSBbLi4uY29udGV4dC5icmFuY2hlc10uc29tZSgoYnJhbmNoKSA9PiBicmFuY2guY29udGFpbnModGFyZ2V0KSk7XG4gICAgICBpZiAoIWlzUG9pbnRlckV2ZW50c0VuYWJsZWQgfHwgaXNQb2ludGVyRG93bk9uQnJhbmNoKSByZXR1cm47XG4gICAgICBvblBvaW50ZXJEb3duT3V0c2lkZT8uKGV2ZW50KTtcbiAgICAgIG9uSW50ZXJhY3RPdXRzaWRlPy4oZXZlbnQpO1xuICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSBvbkRpc21pc3M/LigpO1xuICAgIH0sIG93bmVyRG9jdW1lbnQpO1xuXG4gICAgY29uc3QgZm9jdXNPdXRzaWRlID0gdXNlRm9jdXNPdXRzaWRlKChldmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgaXNGb2N1c0luQnJhbmNoID0gWy4uLmNvbnRleHQuYnJhbmNoZXNdLnNvbWUoKGJyYW5jaCkgPT4gYnJhbmNoLmNvbnRhaW5zKHRhcmdldCkpO1xuICAgICAgaWYgKGlzRm9jdXNJbkJyYW5jaCkgcmV0dXJuO1xuICAgICAgb25Gb2N1c091dHNpZGU/LihldmVudCk7XG4gICAgICBvbkludGVyYWN0T3V0c2lkZT8uKGV2ZW50KTtcbiAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkgb25EaXNtaXNzPy4oKTtcbiAgICB9LCBvd25lckRvY3VtZW50KTtcblxuICAgIHVzZUVzY2FwZUtleWRvd24oKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBpc0hpZ2hlc3RMYXllciA9IGluZGV4ID09PSBjb250ZXh0LmxheWVycy5zaXplIC0gMTtcbiAgICAgIGlmICghaXNIaWdoZXN0TGF5ZXIpIHJldHVybjtcbiAgICAgIG9uRXNjYXBlS2V5RG93bj8uKGV2ZW50KTtcbiAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCAmJiBvbkRpc21pc3MpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgb25EaXNtaXNzKCk7XG4gICAgICB9XG4gICAgfSwgb3duZXJEb2N1bWVudCk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCFub2RlKSByZXR1cm47XG4gICAgICBpZiAoZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzKSB7XG4gICAgICAgIGlmIChjb250ZXh0LmxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkLnNpemUgPT09IDApIHtcbiAgICAgICAgICBvcmlnaW5hbEJvZHlQb2ludGVyRXZlbnRzID0gb3duZXJEb2N1bWVudC5ib2R5LnN0eWxlLnBvaW50ZXJFdmVudHM7XG4gICAgICAgICAgb3duZXJEb2N1bWVudC5ib2R5LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XG4gICAgICAgIH1cbiAgICAgICAgY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZC5hZGQobm9kZSk7XG4gICAgICB9XG4gICAgICBjb250ZXh0LmxheWVycy5hZGQobm9kZSk7XG4gICAgICBkaXNwYXRjaFVwZGF0ZSgpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cyAmJlxuICAgICAgICAgIGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuc2l6ZSA9PT0gMVxuICAgICAgICApIHtcbiAgICAgICAgICBvd25lckRvY3VtZW50LmJvZHkuc3R5bGUucG9pbnRlckV2ZW50cyA9IG9yaWdpbmFsQm9keVBvaW50ZXJFdmVudHM7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW25vZGUsIG93bmVyRG9jdW1lbnQsIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cywgY29udGV4dF0pO1xuXG4gICAgLyoqXG4gICAgICogV2UgcHVycG9zZWZ1bGx5IHByZXZlbnQgY29tYmluaW5nIHRoaXMgZWZmZWN0IHdpdGggdGhlIGBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHNgIGVmZmVjdFxuICAgICAqIGJlY2F1c2UgYSBjaGFuZ2UgdG8gYGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50c2Agd291bGQgcmVtb3ZlIHRoaXMgbGF5ZXIgZnJvbSB0aGUgc3RhY2tcbiAgICAgKiBhbmQgYWRkIGl0IHRvIHRoZSBlbmQgYWdhaW4gc28gdGhlIGxheWVyaW5nIG9yZGVyIHdvdWxkbid0IGJlIF9jcmVhdGlvbiBvcmRlcl8uXG4gICAgICogV2Ugb25seSB3YW50IHRoZW0gdG8gYmUgcmVtb3ZlZCBmcm9tIGNvbnRleHQgc3RhY2tzIHdoZW4gdW5tb3VudGVkLlxuICAgICAqL1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoIW5vZGUpIHJldHVybjtcbiAgICAgICAgY29udGV4dC5sYXllcnMuZGVsZXRlKG5vZGUpO1xuICAgICAgICBjb250ZXh0LmxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkLmRlbGV0ZShub2RlKTtcbiAgICAgICAgZGlzcGF0Y2hVcGRhdGUoKTtcbiAgICAgIH07XG4gICAgfSwgW25vZGUsIGNvbnRleHRdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVVcGRhdGUgPSAoKSA9PiBmb3JjZSh7fSk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKENPTlRFWFRfVVBEQVRFLCBoYW5kbGVVcGRhdGUpO1xuICAgICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoQ09OVEVYVF9VUERBVEUsIGhhbmRsZVVwZGF0ZSk7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmltaXRpdmUuZGl2XG4gICAgICAgIHsuLi5sYXllclByb3BzfVxuICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBwb2ludGVyRXZlbnRzOiBpc0JvZHlQb2ludGVyRXZlbnRzRGlzYWJsZWRcbiAgICAgICAgICAgID8gaXNQb2ludGVyRXZlbnRzRW5hYmxlZFxuICAgICAgICAgICAgICA/ICdhdXRvJ1xuICAgICAgICAgICAgICA6ICdub25lJ1xuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgLi4ucHJvcHMuc3R5bGUsXG4gICAgICAgIH19XG4gICAgICAgIG9uRm9jdXNDYXB0dXJlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkZvY3VzQ2FwdHVyZSwgZm9jdXNPdXRzaWRlLm9uRm9jdXNDYXB0dXJlKX1cbiAgICAgICAgb25CbHVyQ2FwdHVyZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25CbHVyQ2FwdHVyZSwgZm9jdXNPdXRzaWRlLm9uQmx1ckNhcHR1cmUpfVxuICAgICAgICBvblBvaW50ZXJEb3duQ2FwdHVyZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMoXG4gICAgICAgICAgcHJvcHMub25Qb2ludGVyRG93bkNhcHR1cmUsXG4gICAgICAgICAgcG9pbnRlckRvd25PdXRzaWRlLm9uUG9pbnRlckRvd25DYXB0dXJlXG4gICAgICAgICl9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbik7XG5cbkRpc21pc3NhYmxlTGF5ZXIuZGlzcGxheU5hbWUgPSBESVNNSVNTQUJMRV9MQVlFUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaXNtaXNzYWJsZUxheWVyQnJhbmNoXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IEJSQU5DSF9OQU1FID0gJ0Rpc21pc3NhYmxlTGF5ZXJCcmFuY2gnO1xuXG50eXBlIERpc21pc3NhYmxlTGF5ZXJCcmFuY2hFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgRGlzbWlzc2FibGVMYXllckJyYW5jaFByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge31cblxuY29uc3QgRGlzbWlzc2FibGVMYXllckJyYW5jaCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIERpc21pc3NhYmxlTGF5ZXJCcmFuY2hFbGVtZW50LFxuICBEaXNtaXNzYWJsZUxheWVyQnJhbmNoUHJvcHNcbj4oKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRGlzbWlzc2FibGVMYXllckNvbnRleHQpO1xuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWY8RGlzbWlzc2FibGVMYXllckJyYW5jaEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IHJlZi5jdXJyZW50O1xuICAgIGlmIChub2RlKSB7XG4gICAgICBjb250ZXh0LmJyYW5jaGVzLmFkZChub2RlKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNvbnRleHQuYnJhbmNoZXMuZGVsZXRlKG5vZGUpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtjb250ZXh0LmJyYW5jaGVzXSk7XG5cbiAgcmV0dXJuIDxQcmltaXRpdmUuZGl2IHsuLi5wcm9wc30gcmVmPXtjb21wb3NlZFJlZnN9IC8+O1xufSk7XG5cbkRpc21pc3NhYmxlTGF5ZXJCcmFuY2guZGlzcGxheU5hbWUgPSBCUkFOQ0hfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50ID0gQ3VzdG9tRXZlbnQ8eyBvcmlnaW5hbEV2ZW50OiBQb2ludGVyRXZlbnQgfT47XG50eXBlIEZvY3VzT3V0c2lkZUV2ZW50ID0gQ3VzdG9tRXZlbnQ8eyBvcmlnaW5hbEV2ZW50OiBGb2N1c0V2ZW50IH0+O1xuXG4vKipcbiAqIExpc3RlbnMgZm9yIGBwb2ludGVyZG93bmAgb3V0c2lkZSBhIHJlYWN0IHN1YnRyZWUuIFdlIHVzZSBgcG9pbnRlcmRvd25gIHJhdGhlciB0aGFuIGBwb2ludGVydXBgXG4gKiB0byBtaW1pYyBsYXllciBkaXNtaXNzaW5nIGJlaGF2aW91ciBwcmVzZW50IGluIE9TLlxuICogUmV0dXJucyBwcm9wcyB0byBwYXNzIHRvIHRoZSBub2RlIHdlIHdhbnQgdG8gY2hlY2sgZm9yIG91dHNpZGUgZXZlbnRzLlxuICovXG5mdW5jdGlvbiB1c2VQb2ludGVyRG93bk91dHNpZGUoXG4gIG9uUG9pbnRlckRvd25PdXRzaWRlPzogKGV2ZW50OiBQb2ludGVyRG93bk91dHNpZGVFdmVudCkgPT4gdm9pZCxcbiAgb3duZXJEb2N1bWVudDogRG9jdW1lbnQgPSBnbG9iYWxUaGlzPy5kb2N1bWVudFxuKSB7XG4gIGNvbnN0IGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSA9IHVzZUNhbGxiYWNrUmVmKG9uUG9pbnRlckRvd25PdXRzaWRlKSBhcyBFdmVudExpc3RlbmVyO1xuICBjb25zdCBpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCBoYW5kbGVDbGlja1JlZiA9IFJlYWN0LnVzZVJlZigoKSA9PiB7fSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVQb2ludGVyRG93biA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQudGFyZ2V0ICYmICFpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCkge1xuICAgICAgICBjb25zdCBldmVudERldGFpbCA9IHsgb3JpZ2luYWxFdmVudDogZXZlbnQgfTtcblxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50KCkge1xuICAgICAgICAgIGhhbmRsZUFuZERpc3BhdGNoQ3VzdG9tRXZlbnQoXG4gICAgICAgICAgICBQT0lOVEVSX0RPV05fT1VUU0lERSxcbiAgICAgICAgICAgIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgICAgICAgIGV2ZW50RGV0YWlsLFxuICAgICAgICAgICAgeyBkaXNjcmV0ZTogdHJ1ZSB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPbiB0b3VjaCBkZXZpY2VzLCB3ZSBuZWVkIHRvIHdhaXQgZm9yIGEgY2xpY2sgZXZlbnQgYmVjYXVzZSBicm93c2VycyBpbXBsZW1lbnRcbiAgICAgICAgICogYSB+MzUwbXMgZGVsYXkgYmV0d2VlbiB0aGUgdGltZSB0aGUgdXNlciBzdG9wcyB0b3VjaGluZyB0aGUgZGlzcGxheSBhbmQgd2hlbiB0aGVcbiAgICAgICAgICogYnJvd3NlciBleGVjdXRyZXMgZXZlbnRzLiBXZSBuZWVkIHRvIGVuc3VyZSB3ZSBkb24ndCByZWFjdGl2YXRlIHBvaW50ZXItZXZlbnRzIHdpdGhpblxuICAgICAgICAgKiB0aGlzIHRpbWVmcmFtZSBvdGhlcndpc2UgdGhlIGJyb3dzZXIgbWF5IGV4ZWN1dGUgZXZlbnRzIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBwcmV2ZW50ZWQuXG4gICAgICAgICAqXG4gICAgICAgICAqIEFkZGl0aW9uYWxseSwgdGhpcyBhbHNvIGxldHMgdXMgZGVhbCBhdXRvbWF0aWNhbGx5IHdpdGggY2FuY2VsbGF0aW9ucyB3aGVuIGEgY2xpY2sgZXZlbnRcbiAgICAgICAgICogaXNuJ3QgcmFpc2VkIGJlY2F1c2UgdGhlIHBhZ2Ugd2FzIGNvbnNpZGVyZWQgc2Nyb2xsZWQvZHJhZy1zY3JvbGxlZCwgbG9uZy1wcmVzc2VkLCBldGMuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoaXMgaXMgd2h5IHdlIGFsc28gY29udGludW91c2x5IHJlbW92ZSB0aGUgcHJldmlvdXMgbGlzdGVuZXIsIGJlY2F1c2Ugd2UgY2Fubm90IGJlXG4gICAgICAgICAqIGNlcnRhaW4gdGhhdCBpdCB3YXMgcmFpc2VkLCBhbmQgdGhlcmVmb3JlIGNsZWFuZWQtdXAuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgPT09ICd0b3VjaCcpIHtcbiAgICAgICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCk7XG4gICAgICAgICAgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCA9IGhhbmRsZUFuZERpc3BhdGNoUG9pbnRlckRvd25PdXRzaWRlRXZlbnQ7XG4gICAgICAgICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrUmVmLmN1cnJlbnQsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBldmVudCBsaXN0ZW5lciBpbiBjYXNlIHRoZSBvdXRzaWRlIGNsaWNrIGhhcyBiZWVuIGNhbmNlbGVkLlxuICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yYWRpeC11aS9wcmltaXRpdmVzL2lzc3Vlcy8yMTcxXG4gICAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja1JlZi5jdXJyZW50KTtcbiAgICAgIH1cbiAgICAgIGlzUG9pbnRlckluc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBpZiB0aGlzIGhvb2sgZXhlY3V0ZXMgaW4gYSBjb21wb25lbnQgdGhhdCBtb3VudHMgdmlhIGEgYHBvaW50ZXJkb3duYCBldmVudCwgdGhlIGV2ZW50XG4gICAgICogd291bGQgYnViYmxlIHVwIHRvIHRoZSBkb2N1bWVudCBhbmQgdHJpZ2dlciBhIGBwb2ludGVyRG93bk91dHNpZGVgIGV2ZW50LiBXZSBhdm9pZFxuICAgICAqIHRoaXMgYnkgZGVsYXlpbmcgdGhlIGV2ZW50IGxpc3RlbmVyIHJlZ2lzdHJhdGlvbiBvbiB0aGUgZG9jdW1lbnQuXG4gICAgICogVGhpcyBpcyBub3QgUmVhY3Qgc3BlY2lmaWMsIGJ1dCByYXRoZXIgaG93IHRoZSBET00gd29ya3MsIGllOlxuICAgICAqIGBgYFxuICAgICAqIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsICgpID0+IHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKCdJIHdpbGwgbG9nJyk7XG4gICAgICogICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsICgpID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ0kgd2lsbCBhbHNvIGxvZycpO1xuICAgICAqICAgfSlcbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICBjb25zdCB0aW1lcklkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZVBvaW50ZXJEb3duKTtcbiAgICB9LCAwKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lcklkKTtcbiAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBoYW5kbGVQb2ludGVyRG93bik7XG4gICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCk7XG4gICAgfTtcbiAgfSwgW293bmVyRG9jdW1lbnQsIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZV0pO1xuXG4gIHJldHVybiB7XG4gICAgLy8gZW5zdXJlcyB3ZSBjaGVjayBSZWFjdCBjb21wb25lbnQgdHJlZSAobm90IGp1c3QgRE9NIHRyZWUpXG4gICAgb25Qb2ludGVyRG93bkNhcHR1cmU6ICgpID0+IChpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IHRydWUpLFxuICB9O1xufVxuXG4vKipcbiAqIExpc3RlbnMgZm9yIHdoZW4gZm9jdXMgaGFwcGVucyBvdXRzaWRlIGEgcmVhY3Qgc3VidHJlZS5cbiAqIFJldHVybnMgcHJvcHMgdG8gcGFzcyB0byB0aGUgcm9vdCAobm9kZSkgb2YgdGhlIHN1YnRyZWUgd2Ugd2FudCB0byBjaGVjay5cbiAqL1xuZnVuY3Rpb24gdXNlRm9jdXNPdXRzaWRlKFxuICBvbkZvY3VzT3V0c2lkZT86IChldmVudDogRm9jdXNPdXRzaWRlRXZlbnQpID0+IHZvaWQsXG4gIG93bmVyRG9jdW1lbnQ6IERvY3VtZW50ID0gZ2xvYmFsVGhpcz8uZG9jdW1lbnRcbikge1xuICBjb25zdCBoYW5kbGVGb2N1c091dHNpZGUgPSB1c2VDYWxsYmFja1JlZihvbkZvY3VzT3V0c2lkZSkgYXMgRXZlbnRMaXN0ZW5lcjtcbiAgY29uc3QgaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9IChldmVudDogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LnRhcmdldCAmJiAhaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGV2ZW50RGV0YWlsID0geyBvcmlnaW5hbEV2ZW50OiBldmVudCB9O1xuICAgICAgICBoYW5kbGVBbmREaXNwYXRjaEN1c3RvbUV2ZW50KEZPQ1VTX09VVFNJREUsIGhhbmRsZUZvY3VzT3V0c2lkZSwgZXZlbnREZXRhaWwsIHtcbiAgICAgICAgICBkaXNjcmV0ZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgaGFuZGxlRm9jdXMpO1xuICAgIHJldHVybiAoKSA9PiBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBoYW5kbGVGb2N1cyk7XG4gIH0sIFtvd25lckRvY3VtZW50LCBoYW5kbGVGb2N1c091dHNpZGVdKTtcblxuICByZXR1cm4ge1xuICAgIG9uRm9jdXNDYXB0dXJlOiAoKSA9PiAoaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gdHJ1ZSksXG4gICAgb25CbHVyQ2FwdHVyZTogKCkgPT4gKGlzRm9jdXNJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IGZhbHNlKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hVcGRhdGUoKSB7XG4gIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KENPTlRFWFRfVVBEQVRFKTtcbiAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUFuZERpc3BhdGNoQ3VzdG9tRXZlbnQ8RSBleHRlbmRzIEN1c3RvbUV2ZW50LCBPcmlnaW5hbEV2ZW50IGV4dGVuZHMgRXZlbnQ+KFxuICBuYW1lOiBzdHJpbmcsXG4gIGhhbmRsZXI6ICgoZXZlbnQ6IEUpID0+IHZvaWQpIHwgdW5kZWZpbmVkLFxuICBkZXRhaWw6IHsgb3JpZ2luYWxFdmVudDogT3JpZ2luYWxFdmVudCB9ICYgKEUgZXh0ZW5kcyBDdXN0b21FdmVudDxpbmZlciBEPiA/IEQgOiBuZXZlciksXG4gIHsgZGlzY3JldGUgfTogeyBkaXNjcmV0ZTogYm9vbGVhbiB9XG4pIHtcbiAgY29uc3QgdGFyZ2V0ID0gZGV0YWlsLm9yaWdpbmFsRXZlbnQudGFyZ2V0O1xuICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudChuYW1lLCB7IGJ1YmJsZXM6IGZhbHNlLCBjYW5jZWxhYmxlOiB0cnVlLCBkZXRhaWwgfSk7XG4gIGlmIChoYW5kbGVyKSB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBoYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcblxuICBpZiAoZGlzY3JldGUpIHtcbiAgICBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQodGFyZ2V0LCBldmVudCk7XG4gIH0gZWxzZSB7XG4gICAgdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICB9XG59XG5cbmNvbnN0IFJvb3QgPSBEaXNtaXNzYWJsZUxheWVyO1xuY29uc3QgQnJhbmNoID0gRGlzbWlzc2FibGVMYXllckJyYW5jaDtcblxuZXhwb3J0IHtcbiAgRGlzbWlzc2FibGVMYXllcixcbiAgRGlzbWlzc2FibGVMYXllckJyYW5jaCxcbiAgLy9cbiAgUm9vdCxcbiAgQnJhbmNoLFxufTtcbmV4cG9ydCB0eXBlIHsgRGlzbWlzc2FibGVMYXllclByb3BzIH07XG4iXSwibmFtZXMiOlsibm9kZSIsImhhbmRsZUFuZERpc3BhdGNoUG9pbnRlckRvd25PdXRzaWRlRXZlbnQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-focus-scope/dist/index.mjs":
/*!************************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-focus-scope/dist/index.mjs ***!
\************************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FocusScope: () => (/* binding */ FocusScope),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ FocusScope,Root auto */ var _s = $RefreshSig$();\n// packages/react/focus-scope/src/focus-scope.tsx\n\n\n\n\n\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n _s();\n const { loop = false, trapped = false, onMountAutoFocus: onMountAutoFocusProp, onUnmountAutoFocus: onUnmountAutoFocusProp, ...scopeProps } = props;\n const [container, setContainer] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const onMountAutoFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef)(onMountAutoFocusProp);\n const onUnmountAutoFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef)(onUnmountAutoFocusProp);\n const lastFocusedElementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, {\n \"FocusScope.useComposedRefs[composedRefs]\": (node)=>setContainer(node)\n }[\"FocusScope.useComposedRefs[composedRefs]\"]);\n const focusScope = react__WEBPACK_IMPORTED_MODULE_0__.useRef({\n paused: false,\n pause () {\n this.paused = true;\n },\n resume () {\n this.paused = false;\n }\n }).current;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"FocusScope.useEffect\": ()=>{\n if (trapped) {\n let handleFocusIn2 = {\n \"FocusScope.useEffect.handleFocusIn2\": function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n }\n }[\"FocusScope.useEffect.handleFocusIn2\"], handleFocusOut2 = {\n \"FocusScope.useEffect.handleFocusOut2\": function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n }\n }[\"FocusScope.useEffect.handleFocusOut2\"], handleMutations2 = {\n \"FocusScope.useEffect.handleMutations2\": function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations){\n if (mutation.removedNodes.length > 0) focus(container);\n }\n }\n }[\"FocusScope.useEffect.handleMutations2\"];\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, {\n childList: true,\n subtree: true\n });\n return ({\n \"FocusScope.useEffect\": ()=>{\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n }\n })[\"FocusScope.useEffect\"];\n }\n }\n }[\"FocusScope.useEffect\"], [\n trapped,\n container,\n focusScope.paused\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"FocusScope.useEffect\": ()=>{\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), {\n select: true\n });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return ({\n \"FocusScope.useEffect\": ()=>{\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout({\n \"FocusScope.useEffect\": ()=>{\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {\n select: true\n });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }\n }[\"FocusScope.useEffect\"], 0);\n }\n })[\"FocusScope.useEffect\"];\n }\n }\n }[\"FocusScope.useEffect\"], [\n container,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope\n ]);\n const handleKeyDown = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"FocusScope.useCallback[handleKeyDown]\": (event)=>{\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, {\n select: true\n });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, {\n select: true\n });\n }\n }\n }\n }\n }[\"FocusScope.useCallback[handleKeyDown]\"], [\n loop,\n trapped,\n focusScope.paused\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n tabIndex: -1,\n ...scopeProps,\n ref: composedRefs,\n onKeyDown: handleKeyDown\n });\n}, \"l+MhPHbysTuaMVA0Nuk5lsharoc=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n})), \"l+MhPHbysTuaMVA0Nuk5lsharoc=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n});\n_c1 = FocusScope;\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates) {\n let { select = false } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates){\n focus(candidate, {\n select\n });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [\n first,\n last\n ];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node)=>{\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while(walker.nextNode())nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements){\n if (!isHidden(element, {\n upTo: container\n })) return element;\n }\n}\nfunction isHidden(node, param) {\n let { upTo } = param;\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while(node){\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element) {\n let { select = false } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({\n preventScroll: true\n });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select) element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add (focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope === null || activeFocusScope === void 0 ? void 0 : activeFocusScope.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove (focusScope) {\n var _stack_;\n stack = arrayRemove(stack, focusScope);\n (_stack_ = stack[0]) === null || _stack_ === void 0 ? void 0 : _stack_.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [\n ...array\n ];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item)=>item.tagName !== \"A\");\n}\nvar Root = FocusScope;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1;\n$RefreshReg$(_c, \"FocusScope$React.forwardRef\");\n$RefreshReg$(_c1, \"FocusScope\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZHJvcGRvd24tbWVudS9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWZvY3VzLXNjb3BlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNTO0FBQ047QUFDSztBQXdNM0I7QUF0TUosSUFBTSxxQkFBcUI7QUFDM0IsSUFBTSx1QkFBdUI7QUFDN0IsSUFBTSxnQkFBZ0I7SUFBRSxTQUFTO0lBQU8sWUFBWTtBQUFLO0FBUXpELElBQU0sbUJBQW1CO0FBZ0N6QixJQUFNLDhCQUFtQixzREFBK0MsQ0FBQyxPQUFPOztJQUM5RSxNQUFNLEVBQ0osT0FBTyxPQUNQLFVBQVUsT0FDVixrQkFBa0Isc0JBQ2xCLG9CQUFvQix3QkFDcEIsR0FBRyxZQUNMLEdBQUk7SUFDSixNQUFNLENBQUMsV0FBVyxZQUFZLElBQVUsNENBQTZCLElBQUk7SUFDekUsTUFBTSxtQkFBbUIsZ0ZBQWMsQ0FBQyxvQkFBb0I7SUFDNUQsTUFBTSxxQkFBcUIsZ0ZBQWMsQ0FBQyxzQkFBc0I7SUFDaEUsTUFBTSx3QkFBOEIsMENBQTJCLElBQUk7SUFDbkUsTUFBTSxlQUFlLDZFQUFlLENBQUM7b0RBQWMsQ0FBQyxPQUFTLGFBQWEsSUFBSSxDQUFDOztJQUUvRSxNQUFNLGFBQW1CLDBDQUFPO1FBQzlCLFFBQVE7UUFDUixRQUFRO1lBQ04sS0FBSyxTQUFTO1FBQ2hCO1FBQ0EsU0FBUztZQUNQLEtBQUssU0FBUztRQUNoQjtJQUNGLENBQUMsRUFBRTtJQUdHO2dDQUFVO1lBQ2QsSUFBSSxTQUFTO2dCQUNYLElBQVNBOzJEQUFULFNBQXVCLE9BQW1CO3dCQUN4QyxJQUFJLFdBQVcsVUFBVSxDQUFDLFVBQVc7d0JBQ3JDLE1BQU0sU0FBUyxNQUFNO3dCQUNyQixJQUFJLFVBQVUsU0FBUyxNQUFNLEdBQUc7NEJBQzlCLHNCQUFzQixVQUFVO3dCQUNsQyxPQUFPOzRCQUNM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TCxLQUFJLFlBQTJCO1lBRTdCLE1BQU0sbUJBQW1CLE1BQU0sQ0FBQztZQUNoQyxJQUFJLGVBQWUsa0JBQWtCO2dCQUNuQyxxRkFBa0IsTUFBTTtZQUMxQjtZQUVBLFFBQVEsWUFBWSxPQUFPLFVBQVU7WUFDckMsTUFBTSxRQUFRLFVBQVU7UUFDMUI7UUFFQSxRQUFPLFlBQTJCO2dCQUVoQztZQURBLFFBQVEsWUFBWSxPQUFPLFVBQVU7YUFDckMsZ0JBQU0sQ0FBQyxlQUFQLHNDQUFVLE9BQU87UUFDbkI7SUFDRjtBQUNGO0FBRUEsU0FBUyxZQUFlLE9BQVksTUFBUztJQUMzQyxNQUFNLGVBQWUsQ0FBQztXQUFHLEtBQUs7S0FBQTtJQUM5QixNQUFNLFFBQVEsYUFBYSxRQUFRLElBQUk7SUFDdkMsSUFBSSxVQUFVLElBQUk7UUFDaEIsYUFBYSxPQUFPLE9BQU8sQ0FBQztJQUM5QjtJQUNBLE9BQU87QUFDVDtBQUVBLFNBQVMsWUFBWSxPQUFzQjtJQUN6QyxPQUFPLE1BQU0sT0FBTyxDQUFDLE9BQVMsS0FBSyxZQUFZLEdBQUc7QUFDcEQ7QUFFQSxJQUFNLE9BQU8iLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9zcmMvZm9jdXMtc2NvcGUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMnO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmJztcblxuY29uc3QgQVVUT0ZPQ1VTX09OX01PVU5UID0gJ2ZvY3VzU2NvcGUuYXV0b0ZvY3VzT25Nb3VudCc7XG5jb25zdCBBVVRPRk9DVVNfT05fVU5NT1VOVCA9ICdmb2N1c1Njb3BlLmF1dG9Gb2N1c09uVW5tb3VudCc7XG5jb25zdCBFVkVOVF9PUFRJT05TID0geyBidWJibGVzOiBmYWxzZSwgY2FuY2VsYWJsZTogdHJ1ZSB9O1xuXG50eXBlIEZvY3VzYWJsZVRhcmdldCA9IEhUTUxFbGVtZW50IHwgeyBmb2N1cygpOiB2b2lkIH07XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEZvY3VzU2NvcGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgRk9DVVNfU0NPUEVfTkFNRSA9ICdGb2N1c1Njb3BlJztcblxudHlwZSBGb2N1c1Njb3BlRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBQcmltaXRpdmVEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgRm9jdXNTY29wZVByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIHRhYmJpbmcgZnJvbSBsYXN0IGl0ZW0gd2lsbCBmb2N1cyBmaXJzdCB0YWJiYWJsZVxuICAgKiBhbmQgc2hpZnQrdGFiIGZyb20gZmlyc3QgaXRlbSB3aWxsIGZvY3VzIGxhc3QgdGFiYWJibGUuXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIGxvb3A/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGVuIGB0cnVlYCwgZm9jdXMgY2Fubm90IGVzY2FwZSB0aGUgZm9jdXMgc2NvcGUgdmlhIGtleWJvYXJkLFxuICAgKiBwb2ludGVyLCBvciBhIHByb2dyYW1tYXRpYyBmb2N1cy5cbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgdHJhcHBlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gYXV0by1mb2N1c2luZyBvbiBtb3VudC5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uTW91bnRBdXRvRm9jdXM/OiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIGF1dG8tZm9jdXNpbmcgb24gdW5tb3VudC5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uVW5tb3VudEF1dG9Gb2N1cz86IChldmVudDogRXZlbnQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IEZvY3VzU2NvcGUgPSBSZWFjdC5mb3J3YXJkUmVmPEZvY3VzU2NvcGVFbGVtZW50LCBGb2N1c1Njb3BlUHJvcHM+KChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsb29wID0gZmFsc2UsXG4gICAgdHJhcHBlZCA9IGZhbHNlLFxuICAgIG9uTW91bnRBdXRvRm9jdXM6IG9uTW91bnRBdXRvRm9jdXNQcm9wLFxuICAgIG9uVW5tb3VudEF1dG9Gb2N1czogb25Vbm1vdW50QXV0b0ZvY3VzUHJvcCxcbiAgICAuLi5zY29wZVByb3BzXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW2NvbnRhaW5lciwgc2V0Q29udGFpbmVyXSA9IFJlYWN0LnVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IG9uTW91bnRBdXRvRm9jdXMgPSB1c2VDYWxsYmFja1JlZihvbk1vdW50QXV0b0ZvY3VzUHJvcCk7XG4gIGNvbnN0IG9uVW5tb3VudEF1dG9Gb2N1cyA9IHVzZUNhbGxiYWNrUmVmKG9uVW5tb3VudEF1dG9Gb2N1c1Byb3ApO1xuICBjb25zdCBsYXN0Rm9jdXNlZEVsZW1lbnRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldENvbnRhaW5lcihub2RlKSk7XG5cbiAgY29uc3QgZm9jdXNTY29wZSA9IFJlYWN0LnVzZVJlZih7XG4gICAgcGF1c2VkOiBmYWxzZSxcbiAgICBwYXVzZSgpIHtcbiAgICAgIHRoaXMucGF1c2VkID0gdHJ1ZTtcbiAgICB9LFxuICAgIHJlc3VtZSgpIHtcbiAgICAgIHRoaXMucGF1c2VkID0gZmFsc2U7XG4gICAgfSxcbiAgfSkuY3VycmVudDtcblxuICAvLyBUYWtlcyBjYXJlIG9mIHRyYXBwaW5nIGZvY3VzIGlmIGZvY3VzIGlzIG1vdmVkIG91dHNpZGUgcHJvZ3JhbW1hdGljYWxseSBmb3IgZXhhbXBsZVxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0cmFwcGVkKSB7XG4gICAgICBmdW5jdGlvbiBoYW5kbGVGb2N1c0luKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIGlmIChmb2N1c1Njb3BlLnBhdXNlZCB8fCAhY29udGFpbmVyKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgIGlmIChjb250YWluZXIuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgIGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50ID0gdGFyZ2V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvY3VzKGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50LCB7IHNlbGVjdDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBoYW5kbGVGb2N1c091dChldmVudDogRm9jdXNFdmVudCkge1xuICAgICAgICBpZiAoZm9jdXNTY29wZS5wYXVzZWQgfHwgIWNvbnRhaW5lcikgcmV0dXJuO1xuICAgICAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gZXZlbnQucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICAgICAgLy8gQSBgZm9jdXNvdXRgIGV2ZW50IHdpdGggYSBgbnVsbGAgYHJlbGF0ZWRUYXJnZXRgIHdpbGwgaGFwcGVuIGluIGF0IGxlYXN0IHR3byBjYXNlczpcbiAgICAgICAgLy9cbiAgICAgICAgLy8gMS4gV2hlbiB0aGUgdXNlciBzd2l0Y2hlcyBhcHAvdGFicy93aW5kb3dzL3RoZSBicm93c2VyIGl0c2VsZiBsb3NlcyBmb2N1cy5cbiAgICAgICAgLy8gMi4gSW4gR29vZ2xlIENocm9tZSwgd2hlbiB0aGUgZm9jdXNlZCBlbGVtZW50IGlzIHJlbW92ZWQgZnJvbSB0aGUgRE9NLlxuICAgICAgICAvL1xuICAgICAgICAvLyBXZSBsZXQgdGhlIGJyb3dzZXIgZG8gaXRzIHRoaW5nIGhlcmUgYmVjYXVzZTpcbiAgICAgICAgLy9cbiAgICAgICAgLy8gMS4gVGhlIGJyb3dzZXIgYWxyZWFkeSBrZWVwcyBhIG1lbW9yeSBvZiB3aGF0J3MgZm9jdXNlZCBmb3Igd2hlbiB0aGUgcGFnZSBnZXRzIHJlZm9jdXNlZC5cbiAgICAgICAgLy8gMi4gSW4gR29vZ2xlIENocm9tZSwgaWYgd2UgdHJ5IHRvIGZvY3VzIHRoZSBkZWxldGVkIGZvY3VzZWQgZWxlbWVudCAoYXMgcGVyIGJlbG93KSwgaXRcbiAgICAgICAgLy8gICAgdGhyb3dzIHRoZSBDUFUgdG8gMTAwJSwgc28gd2UgYXZvaWQgZG9pbmcgYW55dGhpbmcgZm9yIHRoaXMgcmVhc29uIGhlcmUgdG9vLlxuICAgICAgICBpZiAocmVsYXRlZFRhcmdldCA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgIC8vIElmIHRoZSBmb2N1cyBoYXMgbW92ZWQgdG8gYW4gYWN0dWFsIGxlZ2l0aW1hdGUgZWxlbWVudCAoYHJlbGF0ZWRUYXJnZXQgIT09IG51bGxgKVxuICAgICAgICAvLyB0aGF0IGlzIG91dHNpZGUgdGhlIGNvbnRhaW5lciwgd2UgbW92ZSBmb2N1cyB0byB0aGUgbGFzdCB2YWxpZCBmb2N1c2VkIGVsZW1lbnQgaW5zaWRlLlxuICAgICAgICBpZiAoIWNvbnRhaW5lci5jb250YWlucyhyZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgICAgIGZvY3VzKGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50LCB7IHNlbGVjdDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBXaGVuIHRoZSBmb2N1c2VkIGVsZW1lbnQgZ2V0cyByZW1vdmVkIGZyb20gdGhlIERPTSwgYnJvd3NlcnMgbW92ZSBmb2N1c1xuICAgICAgLy8gYmFjayB0byB0aGUgZG9jdW1lbnQuYm9keS4gSW4gdGhpcyBjYXNlLCB3ZSBtb3ZlIGZvY3VzIHRvIHRoZSBjb250YWluZXJcbiAgICAgIC8vIHRvIGtlZXAgZm9jdXMgdHJhcHBlZCBjb3JyZWN0bHkuXG4gICAgICBmdW5jdGlvbiBoYW5kbGVNdXRhdGlvbnMobXV0YXRpb25zOiBNdXRhdGlvblJlY29yZFtdKSB7XG4gICAgICAgIGNvbnN0IGZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgIGlmIChmb2N1c2VkRWxlbWVudCAhPT0gZG9jdW1lbnQuYm9keSkgcmV0dXJuO1xuICAgICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9ucykge1xuICAgICAgICAgIGlmIChtdXRhdGlvbi5yZW1vdmVkTm9kZXMubGVuZ3RoID4gMCkgZm9jdXMoY29udGFpbmVyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgaGFuZGxlRm9jdXNJbik7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGhhbmRsZUZvY3VzT3V0KTtcbiAgICAgIGNvbnN0IG11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihoYW5kbGVNdXRhdGlvbnMpO1xuICAgICAgaWYgKGNvbnRhaW5lcikgbXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGNvbnRhaW5lciwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBoYW5kbGVGb2N1c0luKTtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCBoYW5kbGVGb2N1c091dCk7XG4gICAgICAgIG11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFt0cmFwcGVkLCBjb250YWluZXIsIGZvY3VzU2NvcGUucGF1c2VkXSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICBmb2N1c1Njb3Blc1N0YWNrLmFkZChmb2N1c1Njb3BlKTtcbiAgICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgY29uc3QgaGFzRm9jdXNlZENhbmRpZGF0ZSA9IGNvbnRhaW5lci5jb250YWlucyhwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQpO1xuXG4gICAgICBpZiAoIWhhc0ZvY3VzZWRDYW5kaWRhdGUpIHtcbiAgICAgICAgY29uc3QgbW91bnRFdmVudCA9IG5ldyBDdXN0b21FdmVudChBVVRPRk9DVVNfT05fTU9VTlQsIEVWRU5UX09QVElPTlMpO1xuICAgICAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihBVVRPRk9DVVNfT05fTU9VTlQsIG9uTW91bnRBdXRvRm9jdXMpO1xuICAgICAgICBjb250YWluZXIuZGlzcGF0Y2hFdmVudChtb3VudEV2ZW50KTtcbiAgICAgICAgaWYgKCFtb3VudEV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICBmb2N1c0ZpcnN0KHJlbW92ZUxpbmtzKGdldFRhYmJhYmxlQ2FuZGlkYXRlcyhjb250YWluZXIpKSwgeyBzZWxlY3Q6IHRydWUgfSk7XG4gICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCkge1xuICAgICAgICAgICAgZm9jdXMoY29udGFpbmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoQVVUT0ZPQ1VTX09OX01PVU5ULCBvbk1vdW50QXV0b0ZvY3VzKTtcblxuICAgICAgICAvLyBXZSBoaXQgYSByZWFjdCBidWcgKGZpeGVkIGluIHYxNykgd2l0aCBmb2N1c2luZyBpbiB1bm1vdW50LlxuICAgICAgICAvLyBXZSBuZWVkIHRvIGRlbGF5IHRoZSBmb2N1cyBhIGxpdHRsZSB0byBnZXQgYXJvdW5kIGl0IGZvciBub3cuXG4gICAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNzg5NFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB1bm1vdW50RXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoQVVUT0ZPQ1VTX09OX1VOTU9VTlQsIEVWRU5UX09QVElPTlMpO1xuICAgICAgICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKEFVVE9GT0NVU19PTl9VTk1PVU5ULCBvblVubW91bnRBdXRvRm9jdXMpO1xuICAgICAgICAgIGNvbnRhaW5lci5kaXNwYXRjaEV2ZW50KHVubW91bnRFdmVudCk7XG4gICAgICAgICAgaWYgKCF1bm1vdW50RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgZm9jdXMocHJldmlvdXNseUZvY3VzZWRFbGVtZW50ID8/IGRvY3VtZW50LmJvZHksIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGlzdGVuZXIgYWZ0ZXIgd2UgYGRpc3BhdGNoRXZlbnRgXG4gICAgICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoQVVUT0ZPQ1VTX09OX1VOTU9VTlQsIG9uVW5tb3VudEF1dG9Gb2N1cyk7XG5cbiAgICAgICAgICBmb2N1c1Njb3Blc1N0YWNrLnJlbW92ZShmb2N1c1Njb3BlKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9O1xuICAgIH1cbiAgfSwgW2NvbnRhaW5lciwgb25Nb3VudEF1dG9Gb2N1cywgb25Vbm1vdW50QXV0b0ZvY3VzLCBmb2N1c1Njb3BlXSk7XG5cbiAgLy8gVGFrZXMgY2FyZSBvZiBsb29waW5nIGZvY3VzICh3aGVuIHRhYmJpbmcgd2hpbHN0IGF0IHRoZSBlZGdlcylcbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKCFsb29wICYmICF0cmFwcGVkKSByZXR1cm47XG4gICAgICBpZiAoZm9jdXNTY29wZS5wYXVzZWQpIHJldHVybjtcblxuICAgICAgY29uc3QgaXNUYWJLZXkgPSBldmVudC5rZXkgPT09ICdUYWInICYmICFldmVudC5hbHRLZXkgJiYgIWV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50Lm1ldGFLZXk7XG4gICAgICBjb25zdCBmb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgICBpZiAoaXNUYWJLZXkgJiYgZm9jdXNlZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgW2ZpcnN0LCBsYXN0XSA9IGdldFRhYmJhYmxlRWRnZXMoY29udGFpbmVyKTtcbiAgICAgICAgY29uc3QgaGFzVGFiYmFibGVFbGVtZW50c0luc2lkZSA9IGZpcnN0ICYmIGxhc3Q7XG5cbiAgICAgICAgLy8gd2UgY2FuIG9ubHkgd3JhcCBmb2N1cyBpZiB3ZSBoYXZlIHRhYmJhYmxlIGVkZ2VzXG4gICAgICAgIGlmICghaGFzVGFiYmFibGVFbGVtZW50c0luc2lkZSkge1xuICAgICAgICAgIGlmIChmb2N1c2VkRWxlbWVudCA9PT0gY29udGFpbmVyKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghZXZlbnQuc2hpZnRLZXkgJiYgZm9jdXNlZEVsZW1lbnQgPT09IGxhc3QpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAobG9vcCkgZm9jdXMoZmlyc3QsIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgZm9jdXNlZEVsZW1lbnQgPT09IGZpcnN0KSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKGxvb3ApIGZvY3VzKGxhc3QsIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgW2xvb3AsIHRyYXBwZWQsIGZvY3VzU2NvcGUucGF1c2VkXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFByaW1pdGl2ZS5kaXYgdGFiSW5kZXg9ey0xfSB7Li4uc2NvcGVQcm9wc30gcmVmPXtjb21wb3NlZFJlZnN9IG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn0gLz5cbiAgKTtcbn0pO1xuXG5Gb2N1c1Njb3BlLmRpc3BsYXlOYW1lID0gRk9DVVNfU0NPUEVfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVXRpbHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBBdHRlbXB0cyBmb2N1c2luZyB0aGUgZmlyc3QgZWxlbWVudCBpbiBhIGxpc3Qgb2YgY2FuZGlkYXRlcy5cbiAqIFN0b3BzIHdoZW4gZm9jdXMgaGFzIGFjdHVhbGx5IG1vdmVkLlxuICovXG5mdW5jdGlvbiBmb2N1c0ZpcnN0KGNhbmRpZGF0ZXM6IEhUTUxFbGVtZW50W10sIHsgc2VsZWN0ID0gZmFsc2UgfSA9IHt9KSB7XG4gIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBmb2N1cyhjYW5kaWRhdGUsIHsgc2VsZWN0IH0pO1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQpIHJldHVybjtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGZpcnN0IGFuZCBsYXN0IHRhYmJhYmxlIGVsZW1lbnRzIGluc2lkZSBhIGNvbnRhaW5lci5cbiAqL1xuZnVuY3Rpb24gZ2V0VGFiYmFibGVFZGdlcyhjb250YWluZXI6IEhUTUxFbGVtZW50KSB7XG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBnZXRUYWJiYWJsZUNhbmRpZGF0ZXMoY29udGFpbmVyKTtcbiAgY29uc3QgZmlyc3QgPSBmaW5kVmlzaWJsZShjYW5kaWRhdGVzLCBjb250YWluZXIpO1xuICBjb25zdCBsYXN0ID0gZmluZFZpc2libGUoY2FuZGlkYXRlcy5yZXZlcnNlKCksIGNvbnRhaW5lcik7XG4gIHJldHVybiBbZmlyc3QsIGxhc3RdIGFzIGNvbnN0O1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBsaXN0IG9mIHBvdGVudGlhbCB0YWJiYWJsZSBjYW5kaWRhdGVzLlxuICpcbiAqIE5PVEU6IFRoaXMgaXMgb25seSBhIGNsb3NlIGFwcHJveGltYXRpb24uIEZvciBleGFtcGxlIGl0IGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgY2FzZXMgbGlrZSB3aGVuXG4gKiBlbGVtZW50cyBhcmUgbm90IHZpc2libGUuIFRoaXMgY2Fubm90IGJlIHdvcmtlZCBvdXQgZWFzaWx5IGJ5IGp1c3QgcmVhZGluZyBhIHByb3BlcnR5LCBidXQgcmF0aGVyXG4gKiBuZWNlc3NpdGF0ZSBydW50aW1lIGtub3dsZWRnZSAoY29tcHV0ZWQgc3R5bGVzLCBldGMpLiBXZSBkZWFsIHdpdGggdGhlc2UgY2FzZXMgc2VwYXJhdGVseS5cbiAqXG4gKiBTZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9UcmVlV2Fsa2VyXG4gKiBDcmVkaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjb3JkL2ZvY3VzLWxheWVycy9ibG9iL21hc3Rlci9zcmMvdXRpbC93cmFwRm9jdXMudHN4I0wxXG4gKi9cbmZ1bmN0aW9uIGdldFRhYmJhYmxlQ2FuZGlkYXRlcyhjb250YWluZXI6IEhUTUxFbGVtZW50KSB7XG4gIGNvbnN0IG5vZGVzOiBIVE1MRWxlbWVudFtdID0gW107XG4gIGNvbnN0IHdhbGtlciA9IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29udGFpbmVyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwge1xuICAgIGFjY2VwdE5vZGU6IChub2RlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGlzSGlkZGVuSW5wdXQgPSBub2RlLnRhZ05hbWUgPT09ICdJTlBVVCcgJiYgbm9kZS50eXBlID09PSAnaGlkZGVuJztcbiAgICAgIGlmIChub2RlLmRpc2FibGVkIHx8IG5vZGUuaGlkZGVuIHx8IGlzSGlkZGVuSW5wdXQpIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xuICAgICAgLy8gYC50YWJJbmRleGAgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBgdGFiaW5kZXhgIGF0dHJpYnV0ZS4gSXQgd29ya3Mgb24gdGhlXG4gICAgICAvLyBydW50aW1lJ3MgdW5kZXJzdGFuZGluZyBvZiB0YWJiYWJpbGl0eSwgc28gdGhpcyBhdXRvbWF0aWNhbGx5IGFjY291bnRzXG4gICAgICAvLyBmb3IgYW55IGtpbmQgb2YgZWxlbWVudCB0aGF0IGNvdWxkIGJlIHRhYmJlZCB0by5cbiAgICAgIHJldHVybiBub2RlLnRhYkluZGV4ID49IDAgPyBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQgOiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xuICAgIH0sXG4gIH0pO1xuICB3aGlsZSAod2Fsa2VyLm5leHROb2RlKCkpIG5vZGVzLnB1c2god2Fsa2VyLmN1cnJlbnROb2RlIGFzIEhUTUxFbGVtZW50KTtcbiAgLy8gd2UgZG8gbm90IHRha2UgaW50byBhY2NvdW50IHRoZSBvcmRlciBvZiBub2RlcyB3aXRoIHBvc2l0aXZlIGB0YWJJbmRleGAgYXMgaXRcbiAgLy8gaGluZGVycyBhY2Nlc3NpYmlsaXR5IHRvIGhhdmUgdGFiIG9yZGVyIGRpZmZlcmVudCBmcm9tIHZpc3VhbCBvcmRlci5cbiAgcmV0dXJuIG5vZGVzO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGZpcnN0IHZpc2libGUgZWxlbWVudCBpbiBhIGxpc3QuXG4gKiBOT1RFOiBPbmx5IGNoZWNrcyB2aXNpYmlsaXR5IHVwIHRvIHRoZSBgY29udGFpbmVyYC5cbiAqL1xuZnVuY3Rpb24gZmluZFZpc2libGUoZWxlbWVudHM6IEhUTUxFbGVtZW50W10sIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQpIHtcbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIGVsZW1lbnRzKSB7XG4gICAgLy8gd2Ugc3RvcCBjaGVja2luZyBpZiBpdCdzIGhpZGRlbiBhdCB0aGUgYGNvbnRhaW5lcmAgbGV2ZWwgKGV4Y2x1ZGluZylcbiAgICBpZiAoIWlzSGlkZGVuKGVsZW1lbnQsIHsgdXBUbzogY29udGFpbmVyIH0pKSByZXR1cm4gZWxlbWVudDtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0hpZGRlbihub2RlOiBIVE1MRWxlbWVudCwgeyB1cFRvIH06IHsgdXBUbz86IEhUTUxFbGVtZW50IH0pIHtcbiAgaWYgKGdldENvbXB1dGVkU3R5bGUobm9kZSkudmlzaWJpbGl0eSA9PT0gJ2hpZGRlbicpIHJldHVybiB0cnVlO1xuICB3aGlsZSAobm9kZSkge1xuICAgIC8vIHdlIHN0b3AgYXQgYHVwVG9gIChleGNsdWRpbmcgaXQpXG4gICAgaWYgKHVwVG8gIT09IHVuZGVmaW5lZCAmJiBub2RlID09PSB1cFRvKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGdldENvbXB1dGVkU3R5bGUobm9kZSkuZGlzcGxheSA9PT0gJ25vbmUnKSByZXR1cm4gdHJ1ZTtcbiAgICBub2RlID0gbm9kZS5wYXJlbnRFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gaXNTZWxlY3RhYmxlSW5wdXQoZWxlbWVudDogYW55KTogZWxlbWVudCBpcyBGb2N1c2FibGVUYXJnZXQgJiB7IHNlbGVjdDogKCkgPT4gdm9pZCB9IHtcbiAgcmV0dXJuIGVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50ICYmICdzZWxlY3QnIGluIGVsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIGZvY3VzKGVsZW1lbnQ/OiBGb2N1c2FibGVUYXJnZXQgfCBudWxsLCB7IHNlbGVjdCA9IGZhbHNlIH0gPSB7fSkge1xuICAvLyBvbmx5IGZvY3VzIGlmIHRoYXQgZWxlbWVudCBpcyBmb2N1c2FibGVcbiAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5mb2N1cykge1xuICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgLy8gTk9URTogd2UgcHJldmVudCBzY3JvbGxpbmcgb24gZm9jdXMsIHRvIG1pbmltaXplIGphcnJpbmcgdHJhbnNpdGlvbnMgZm9yIHVzZXJzXG4gICAgZWxlbWVudC5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgLy8gb25seSBzZWxlY3QgaWYgaXRzIG5vdCB0aGUgc2FtZSBlbGVtZW50LCBpdCBzdXBwb3J0cyBzZWxlY3Rpb24gYW5kIHdlIG5lZWQgdG8gc2VsZWN0XG4gICAgaWYgKGVsZW1lbnQgIT09IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCAmJiBpc1NlbGVjdGFibGVJbnB1dChlbGVtZW50KSAmJiBzZWxlY3QpXG4gICAgICBlbGVtZW50LnNlbGVjdCgpO1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEZvY3VzU2NvcGUgc3RhY2tcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxudHlwZSBGb2N1c1Njb3BlQVBJID0geyBwYXVzZWQ6IGJvb2xlYW47IHBhdXNlKCk6IHZvaWQ7IHJlc3VtZSgpOiB2b2lkIH07XG5jb25zdCBmb2N1c1Njb3Blc1N0YWNrID0gY3JlYXRlRm9jdXNTY29wZXNTdGFjaygpO1xuXG5mdW5jdGlvbiBjcmVhdGVGb2N1c1Njb3Blc1N0YWNrKCkge1xuICAvKiogQSBzdGFjayBvZiBmb2N1cyBzY29wZXMsIHdpdGggdGhlIGFjdGl2ZSBvbmUgYXQgdGhlIHRvcCAqL1xuICBsZXQgc3RhY2s6IEZvY3VzU2NvcGVBUElbXSA9IFtdO1xuXG4gIHJldHVybiB7XG4gICAgYWRkKGZvY3VzU2NvcGU6IEZvY3VzU2NvcGVBUEkpIHtcbiAgICAgIC8vIHBhdXNlIHRoZSBjdXJyZW50bHkgYWN0aXZlIGZvY3VzIHNjb3BlIChhdCB0aGUgdG9wIG9mIHRoZSBzdGFjaylcbiAgICAgIGNvbnN0IGFjdGl2ZUZvY3VzU2NvcGUgPSBzdGFja1swXTtcbiAgICAgIGlmIChmb2N1c1Njb3BlICE9PSBhY3RpdmVGb2N1c1Njb3BlKSB7XG4gICAgICAgIGFjdGl2ZUZvY3VzU2NvcGU/LnBhdXNlKCk7XG4gICAgICB9XG4gICAgICAvLyByZW1vdmUgaW4gY2FzZSBpdCBhbHJlYWR5IGV4aXN0cyAoYmVjYXVzZSB3ZSdsbCByZS1hZGQgaXQgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2spXG4gICAgICBzdGFjayA9IGFycmF5UmVtb3ZlKHN0YWNrLCBmb2N1c1Njb3BlKTtcbiAgICAgIHN0YWNrLnVuc2hpZnQoZm9jdXNTY29wZSk7XG4gICAgfSxcblxuICAgIHJlbW92ZShmb2N1c1Njb3BlOiBGb2N1c1Njb3BlQVBJKSB7XG4gICAgICBzdGFjayA9IGFycmF5UmVtb3ZlKHN0YWNrLCBmb2N1c1Njb3BlKTtcbiAgICAgIHN0YWNrWzBdPy5yZXN1bWUoKTtcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBhcnJheVJlbW92ZTxUPihhcnJheTogVFtdLCBpdGVtOiBUKSB7XG4gIGNvbnN0IHVwZGF0ZWRBcnJheSA9IFsuLi5hcnJheV07XG4gIGNvbnN0IGluZGV4ID0gdXBkYXRlZEFycmF5LmluZGV4T2YoaXRlbSk7XG4gIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICB1cGRhdGVkQXJyYXkuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxuICByZXR1cm4gdXBkYXRlZEFycmF5O1xufVxuXG5mdW5jdGlvbiByZW1vdmVMaW5rcyhpdGVtczogSFRNTEVsZW1lbnRbXSkge1xuICByZXR1cm4gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnRhZ05hbWUgIT09ICdBJyk7XG59XG5cbmNvbnN0IFJvb3QgPSBGb2N1c1Njb3BlO1xuXG5leHBvcnQge1xuICBGb2N1c1Njb3BlLFxuICAvL1xuICBSb290LFxufTtcbmV4cG9ydCB0eXBlIHsgRm9jdXNTY29wZVByb3BzIH07XG4iXSwibmFtZXMiOlsiaGFuZGxlRm9jdXNJbiIsImhhbmRsZUZvY3VzT3V0IiwiaGFuZGxlTXV0YXRpb25zIiwiY29udGFpbmVyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-focus-scope/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-menu/dist/index.mjs":
/*!*****************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-menu/dist/index.mjs ***!
\*****************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Anchor: () => (/* binding */ Anchor2),\n/* harmony export */ Arrow: () => (/* binding */ Arrow2),\n/* harmony export */ CheckboxItem: () => (/* binding */ CheckboxItem),\n/* harmony export */ Content: () => (/* binding */ Content2),\n/* harmony export */ Group: () => (/* binding */ Group),\n/* harmony export */ Item: () => (/* binding */ Item2),\n/* harmony export */ ItemIndicator: () => (/* binding */ ItemIndicator),\n/* harmony export */ Label: () => (/* binding */ Label),\n/* harmony export */ Menu: () => (/* binding */ Menu),\n/* harmony export */ MenuAnchor: () => (/* binding */ MenuAnchor),\n/* harmony export */ MenuArrow: () => (/* binding */ MenuArrow),\n/* harmony export */ MenuCheckboxItem: () => (/* binding */ MenuCheckboxItem),\n/* harmony export */ MenuContent: () => (/* binding */ MenuContent),\n/* harmony export */ MenuGroup: () => (/* binding */ MenuGroup),\n/* harmony export */ MenuItem: () => (/* binding */ MenuItem),\n/* harmony export */ MenuItemIndicator: () => (/* binding */ MenuItemIndicator),\n/* harmony export */ MenuLabel: () => (/* binding */ MenuLabel),\n/* harmony export */ MenuPortal: () => (/* binding */ MenuPortal),\n/* harmony export */ MenuRadioGroup: () => (/* binding */ MenuRadioGroup),\n/* harmony export */ MenuRadioItem: () => (/* binding */ MenuRadioItem),\n/* harmony export */ MenuSeparator: () => (/* binding */ MenuSeparator),\n/* harmony export */ MenuSub: () => (/* binding */ MenuSub),\n/* harmony export */ MenuSubContent: () => (/* binding */ MenuSubContent),\n/* harmony export */ MenuSubTrigger: () => (/* binding */ MenuSubTrigger),\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ RadioGroup: () => (/* binding */ RadioGroup),\n/* harmony export */ RadioItem: () => (/* binding */ RadioItem),\n/* harmony export */ Root: () => (/* binding */ Root3),\n/* harmony export */ Separator: () => (/* binding */ Separator),\n/* harmony export */ Sub: () => (/* binding */ Sub),\n/* harmony export */ SubContent: () => (/* binding */ SubContent),\n/* harmony export */ SubTrigger: () => (/* binding */ SubTrigger),\n/* harmony export */ createMenuScope: () => (/* binding */ createMenuScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-collection */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-collection/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-direction */ \"(app-pages-browser)/./node_modules/@radix-ui/react-direction/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @radix-ui/react-dismissable-layer */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @radix-ui/react-focus-guards */ \"(app-pages-browser)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @radix-ui/react-focus-scope */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-focus-scope/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-popper */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-popper/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-portal */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-portal/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-roving-focus */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-roving-focus/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var aria_hidden__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! aria-hidden */ \"(app-pages-browser)/./node_modules/aria-hidden/dist/es2015/index.js\");\n/* harmony import */ var react_remove_scroll__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! react-remove-scroll */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/Combination.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Anchor,Arrow,CheckboxItem,Content,Group,Item,ItemIndicator,Label,Menu,MenuAnchor,MenuArrow,MenuCheckboxItem,MenuContent,MenuGroup,MenuItem,MenuItemIndicator,MenuLabel,MenuPortal,MenuRadioGroup,MenuRadioItem,MenuSeparator,MenuSub,MenuSubContent,MenuSubTrigger,Portal,RadioGroup,RadioItem,Root,Separator,Sub,SubContent,SubTrigger,createMenuScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$(), _s7 = $RefreshSig$(), _s8 = $RefreshSig$(), _s9 = $RefreshSig$(), _s10 = $RefreshSig$(), _s11 = $RefreshSig$(), _s12 = $RefreshSig$(), _s13 = $RefreshSig$(), _s14 = $RefreshSig$(), _s15 = $RefreshSig$();\n// packages/react/menu/src/menu.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar SELECTION_KEYS = [\n \"Enter\",\n \" \"\n];\nvar FIRST_KEYS = [\n \"ArrowDown\",\n \"PageUp\",\n \"Home\"\n];\nvar LAST_KEYS = [\n \"ArrowUp\",\n \"PageDown\",\n \"End\"\n];\nvar FIRST_LAST_KEYS = [\n ...FIRST_KEYS,\n ...LAST_KEYS\n];\nvar SUB_OPEN_KEYS = {\n ltr: [\n ...SELECTION_KEYS,\n \"ArrowRight\"\n ],\n rtl: [\n ...SELECTION_KEYS,\n \"ArrowLeft\"\n ]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\n \"ArrowLeft\"\n ],\n rtl: [\n \"ArrowRight\"\n ]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection, createCollectionScope] = (0,_radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_2__.createCollection)(MENU_NAME);\nvar [createMenuContext, createMenuScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_3__.createContextScope)(MENU_NAME, [\n createCollectionScope,\n _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__.createPopperScope,\n _radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_5__.createRovingFocusGroupScope\n]);\nvar usePopperScope = (0,_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__.createPopperScope)();\nvar useRovingFocusGroupScope = (0,_radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_5__.createRovingFocusGroupScope)();\nvar [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\nvar [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\nvar Menu = (props)=>{\n _s();\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const isUsingKeyboardRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const handleOpenChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onOpenChange);\n const direction = (0,_radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_7__.useDirection)(dir);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"Menu.useEffect\": ()=>{\n const handleKeyDown = {\n \"Menu.useEffect.handleKeyDown\": ()=>{\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, {\n capture: true,\n once: true\n });\n document.addEventListener(\"pointermove\", handlePointer, {\n capture: true,\n once: true\n });\n }\n }[\"Menu.useEffect.handleKeyDown\"];\n const handlePointer = {\n \"Menu.useEffect.handlePointer\": ()=>isUsingKeyboardRef.current = false\n }[\"Menu.useEffect.handlePointer\"];\n document.addEventListener(\"keydown\", handleKeyDown, {\n capture: true\n });\n return ({\n \"Menu.useEffect\": ()=>{\n document.removeEventListener(\"keydown\", handleKeyDown, {\n capture: true\n });\n document.removeEventListener(\"pointerdown\", handlePointer, {\n capture: true\n });\n document.removeEventListener(\"pointermove\", handlePointer, {\n capture: true\n });\n }\n })[\"Menu.useEffect\"];\n }\n }[\"Menu.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__.Root, {\n ...popperScope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuProvider, {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuRootProvider, {\n scope: __scopeMenu,\n onClose: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Menu.useCallback\": ()=>handleOpenChange(false)\n }[\"Menu.useCallback\"], [\n handleOpenChange\n ]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children\n })\n })\n });\n};\n_s(Menu, \"s3TED/xxiblk6CJ7nFTmEKubTI0=\", false, function() {\n return [\n usePopperScope,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef,\n _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_7__.useDirection\n ];\n});\n_c = Menu;\nMenu.displayName = MENU_NAME;\nvar ANCHOR_NAME = \"MenuAnchor\";\nvar MenuAnchor = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s1((props, forwardedRef)=>{\n _s1();\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__.Anchor, {\n ...popperScope,\n ...anchorProps,\n ref: forwardedRef\n });\n}, \"8WgpbJ/Lqh/12BZO7Eu0CP/9cMI=\", false, function() {\n return [\n usePopperScope\n ];\n}));\n_c1 = MenuAnchor;\nMenuAnchor.displayName = ANCHOR_NAME;\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = (props)=>{\n _s2();\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PortalProvider, {\n scope: __scopeMenu,\n forceMount,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_9__.Portal, {\n asChild: true,\n container,\n children\n })\n })\n });\n};\n_s2(MenuPortal, \"Jc8vKAvq94jPZkBJYIZO/X0jxQk=\", false, function() {\n return [\n useMenuContext\n ];\n});\n_c2 = MenuPortal;\nMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c3 = _s3((props, forwardedRef)=>{\n _s3();\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Provider, {\n scope: props.__scopeMenu,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Slot, {\n scope: props.__scopeMenu,\n children: rootContext.modal ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuRootContentModal, {\n ...contentProps,\n ref: forwardedRef\n }) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuRootContentNonModal, {\n ...contentProps,\n ref: forwardedRef\n })\n })\n })\n });\n}, \"88aWBo7Y4OkW6oWjofHWFhQydGE=\", false, function() {\n return [\n usePortalContext,\n useMenuContext,\n useMenuRootContext\n ];\n})), \"88aWBo7Y4OkW6oWjofHWFhQydGE=\", false, function() {\n return [\n usePortalContext,\n useMenuContext,\n useMenuRootContext\n ];\n});\n_c4 = MenuContent;\nvar MenuRootContentModal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s4((props, forwardedRef)=>{\n _s4();\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs)(forwardedRef, ref);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"MenuRootContentModal.useEffect\": ()=>{\n const content = ref.current;\n if (content) return (0,aria_hidden__WEBPACK_IMPORTED_MODULE_11__.hideOthers)(content);\n }\n }[\"MenuRootContentModal.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuContentImpl, {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onFocusOutside, (event)=>event.preventDefault(), {\n checkForDefaultPrevented: false\n }),\n onDismiss: ()=>context.onOpenChange(false)\n });\n}, \"JZl1V6I1pr8fHXBNF9+BmgCcv1M=\", false, function() {\n return [\n useMenuContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs\n ];\n}));\n_c5 = MenuRootContentModal;\nvar MenuRootContentNonModal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s5((props, forwardedRef)=>{\n _s5();\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuContentImpl, {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: ()=>context.onOpenChange(false)\n });\n}, \"Jc8vKAvq94jPZkBJYIZO/X0jxQk=\", false, function() {\n return [\n useMenuContext\n ];\n}));\n_c6 = MenuRootContentNonModal;\nvar MenuContentImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s6((props, forwardedRef)=>{\n _s6();\n const { __scopeMenu, loop = false, trapFocus, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, onEntryFocus, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, disableOutsideScroll, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs)(forwardedRef, contentRef, context.onContentChange);\n const timerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n const searchRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"\");\n const pointerGraceTimerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n const pointerGraceIntentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const pointerDirRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"right\");\n const lastPointerXRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n const ScrollLockWrapper = disableOutsideScroll ? react_remove_scroll__WEBPACK_IMPORTED_MODULE_13__[\"default\"] : react__WEBPACK_IMPORTED_MODULE_0__.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? {\n as: _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_14__.Slot,\n allowPinchZoom: true\n } : void 0;\n const handleTypeaheadSearch = (key)=>{\n var _items_find, _items_find1;\n const search = searchRef.current + key;\n const items = getItems().filter((item)=>!item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = (_items_find = items.find((item)=>item.ref.current === currentItem)) === null || _items_find === void 0 ? void 0 : _items_find.textValue;\n const values = items.map((item)=>item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = (_items_find1 = items.find((item)=>item.textValue === nextMatch)) === null || _items_find1 === void 0 ? void 0 : _items_find1.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(()=>updateSearch(\"\"), 1e3);\n })(search);\n if (newItem) {\n setTimeout(()=>newItem.focus());\n }\n };\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"MenuContentImpl.useEffect\": ()=>{\n return ({\n \"MenuContentImpl.useEffect\": ()=>window.clearTimeout(timerRef.current)\n })[\"MenuContentImpl.useEffect\"];\n }\n }[\"MenuContentImpl.useEffect\"], []);\n (0,_radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_15__.useFocusGuards)();\n const isPointerMovingToSubmenu = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"MenuContentImpl.useCallback[isPointerMovingToSubmenu]\": (event)=>{\n var _pointerGraceIntentRef_current, _pointerGraceIntentRef_current1;\n const isMovingTowards = pointerDirRef.current === ((_pointerGraceIntentRef_current = pointerGraceIntentRef.current) === null || _pointerGraceIntentRef_current === void 0 ? void 0 : _pointerGraceIntentRef_current.side);\n return isMovingTowards && isPointerInGraceArea(event, (_pointerGraceIntentRef_current1 = pointerGraceIntentRef.current) === null || _pointerGraceIntentRef_current1 === void 0 ? void 0 : _pointerGraceIntentRef_current1.area);\n }\n }[\"MenuContentImpl.useCallback[isPointerMovingToSubmenu]\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuContentProvider, {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"MenuContentImpl.useCallback\": (event)=>{\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n }\n }[\"MenuContentImpl.useCallback\"], [\n isPointerMovingToSubmenu\n ]),\n onItemLeave: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"MenuContentImpl.useCallback\": (event)=>{\n var _contentRef_current;\n if (isPointerMovingToSubmenu(event)) return;\n (_contentRef_current = contentRef.current) === null || _contentRef_current === void 0 ? void 0 : _contentRef_current.focus();\n setCurrentItemId(null);\n }\n }[\"MenuContentImpl.useCallback\"], [\n isPointerMovingToSubmenu\n ]),\n onTriggerLeave: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"MenuContentImpl.useCallback\": (event)=>{\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n }\n }[\"MenuContentImpl.useCallback\"], [\n isPointerMovingToSubmenu\n ]),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"MenuContentImpl.useCallback\": (intent)=>{\n pointerGraceIntentRef.current = intent;\n }\n }[\"MenuContentImpl.useCallback\"], []),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollLockWrapper, {\n ...scrollLockWrapperProps,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_16__.FocusScope, {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(onOpenAutoFocus, (event)=>{\n var _contentRef_current;\n event.preventDefault();\n (_contentRef_current = contentRef.current) === null || _contentRef_current === void 0 ? void 0 : _contentRef_current.focus({\n preventScroll: true\n });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_17__.DismissableLayer, {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_5__.Root, {\n asChild: true,\n ...rovingFocusGroupScope,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(onEntryFocus, (event)=>{\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n }),\n preventScrollOnEntryFocus: true,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__.Content, {\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir,\n ...popperScope,\n ...contentProps,\n ref: composedRefs,\n style: {\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(contentProps.onKeyDown, (event)=>{\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item)=>!item.disabled);\n const candidateNodes = items.map((item)=>item.ref.current);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n }),\n onBlur: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onBlur, (event)=>{\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onPointerMove, whenMouse((event)=>{\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n }))\n })\n })\n })\n })\n })\n });\n}, \"qe6U4z7qIQaBUgGjkDzQECcJRJ4=\", false, function() {\n return [\n useMenuContext,\n useMenuRootContext,\n usePopperScope,\n useRovingFocusGroupScope,\n useCollection,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs,\n _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_15__.useFocusGuards\n ];\n}));\n_c7 = MenuContentImpl;\nMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"MenuGroup\";\nvar MenuGroup = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_18__.Primitive.div, {\n role: \"group\",\n ...groupProps,\n ref: forwardedRef\n });\n});\n_c8 = MenuGroup;\nMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"MenuLabel\";\nvar MenuLabel = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c9 = (props, forwardedRef)=>{\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_18__.Primitive.div, {\n ...labelProps,\n ref: forwardedRef\n });\n});\n_c10 = MenuLabel;\nMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s7((props, forwardedRef)=>{\n _s7();\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs)(forwardedRef, ref);\n const isPointerDownRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const handleSelect = ()=>{\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, {\n bubbles: true,\n cancelable: true\n });\n menuItem.addEventListener(ITEM_SELECT, (event)=>onSelect === null || onSelect === void 0 ? void 0 : onSelect(event), {\n once: true\n });\n (0,_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_18__.dispatchDiscreteCustomEvent)(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n };\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuItemImpl, {\n ...itemProps,\n ref: composedRefs,\n disabled,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onClick, handleSelect),\n onPointerDown: (event)=>{\n var _props_onPointerDown;\n (_props_onPointerDown = props.onPointerDown) === null || _props_onPointerDown === void 0 ? void 0 : _props_onPointerDown.call(props, event);\n isPointerDownRef.current = true;\n },\n onPointerUp: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onPointerUp, (event)=>{\n var _event_currentTarget;\n if (!isPointerDownRef.current) (_event_currentTarget = event.currentTarget) === null || _event_currentTarget === void 0 ? void 0 : _event_currentTarget.click();\n }),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onKeyDown, (event)=>{\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n });\n}, \"n4NCMoANrBHYaagbUs9HO/KGL+U=\", false, function() {\n return [\n useMenuRootContext,\n useMenuContentContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs\n ];\n}));\n_c11 = MenuItem;\nMenuItem.displayName = ITEM_NAME;\nvar MenuItemImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s8((props, forwardedRef)=>{\n _s8();\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs)(forwardedRef, ref);\n const [isFocused, setIsFocused] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const [textContent, setTextContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(\"\");\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"MenuItemImpl.useEffect\": ()=>{\n const menuItem = ref.current;\n if (menuItem) {\n var _menuItem_textContent;\n setTextContent(((_menuItem_textContent = menuItem.textContent) !== null && _menuItem_textContent !== void 0 ? _menuItem_textContent : \"\").trim());\n }\n }\n }[\"MenuItemImpl.useEffect\"], [\n itemProps.children\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.ItemSlot, {\n scope: __scopeMenu,\n disabled,\n textValue: textValue !== null && textValue !== void 0 ? textValue : textContent,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_5__.Item, {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_18__.Primitive.div, {\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n onPointerMove: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onPointerMove, whenMouse((event)=>{\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus({\n preventScroll: true\n });\n }\n }\n })),\n onPointerLeave: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onPointerLeave, whenMouse((event)=>contentContext.onItemLeave(event))),\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onFocus, ()=>setIsFocused(true)),\n onBlur: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onBlur, ()=>setIsFocused(false))\n })\n })\n });\n}, \"EIIU5nILlLlHidQF42Iw4DmWIAo=\", false, function() {\n return [\n useMenuContentContext,\n useRovingFocusGroupScope,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs\n ];\n}));\n_c12 = MenuItemImpl;\nvar CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\nvar MenuCheckboxItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c13 = (props, forwardedRef)=>{\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ItemIndicatorProvider, {\n scope: props.__scopeMenu,\n checked,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuItem, {\n role: \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(checkboxItemProps.onSelect, ()=>onCheckedChange === null || onCheckedChange === void 0 ? void 0 : onCheckedChange(isIndeterminate(checked) ? true : !checked), {\n checkForDefaultPrevented: false\n })\n })\n });\n});\n_c14 = MenuCheckboxItem;\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(RADIO_GROUP_NAME, {\n value: void 0,\n onValueChange: ()=>{}\n});\nvar MenuRadioGroup = /*#__PURE__*/ _s9(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c15 = _s9((props, forwardedRef)=>{\n _s9();\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onValueChange);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(RadioGroupProvider, {\n scope: props.__scopeMenu,\n value,\n onValueChange: handleValueChange,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuGroup, {\n ...groupProps,\n ref: forwardedRef\n })\n });\n}, \"Mcwj+JprOIrXmxtkZuo1sy6nu34=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef\n ];\n})), \"Mcwj+JprOIrXmxtkZuo1sy6nu34=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef\n ];\n});\n_c16 = MenuRadioGroup;\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = /*#__PURE__*/ _s10(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c17 = _s10((props, forwardedRef)=>{\n _s10();\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ItemIndicatorProvider, {\n scope: props.__scopeMenu,\n checked,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuItem, {\n role: \"menuitemradio\",\n \"aria-checked\": checked,\n ...radioItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(radioItemProps.onSelect, ()=>{\n var _context_onValueChange;\n return (_context_onValueChange = context.onValueChange) === null || _context_onValueChange === void 0 ? void 0 : _context_onValueChange.call(context, value);\n }, {\n checkForDefaultPrevented: false\n })\n })\n });\n}, \"pu7nAGGQbggF4/7/93WWC5/VrL0=\", false, function() {\n return [\n useRadioGroupContext\n ];\n})), \"pu7nAGGQbggF4/7/93WWC5/VrL0=\", false, function() {\n return [\n useRadioGroupContext\n ];\n});\n_c18 = MenuRadioItem;\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(ITEM_INDICATOR_NAME, {\n checked: false\n});\nvar MenuItemIndicator = /*#__PURE__*/ _s11(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c19 = _s11((props, forwardedRef)=>{\n _s11();\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_18__.Primitive.span, {\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n })\n });\n}, \"W2/Y2Td7XZBLzAFnNcANg/AGfF8=\", false, function() {\n return [\n useItemIndicatorContext\n ];\n})), \"W2/Y2Td7XZBLzAFnNcANg/AGfF8=\", false, function() {\n return [\n useItemIndicatorContext\n ];\n});\n_c20 = MenuItemIndicator;\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SEPARATOR_NAME = \"MenuSeparator\";\nvar MenuSeparator = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c21 = (props, forwardedRef)=>{\n const { __scopeMenu, ...separatorProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_18__.Primitive.div, {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...separatorProps,\n ref: forwardedRef\n });\n});\n_c22 = MenuSeparator;\nMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"MenuArrow\";\nvar MenuArrow = /*#__PURE__*/ _s12(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c23 = _s12((props, forwardedRef)=>{\n _s12();\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__.Arrow, {\n ...popperScope,\n ...arrowProps,\n ref: forwardedRef\n });\n}, \"8WgpbJ/Lqh/12BZO7Eu0CP/9cMI=\", false, function() {\n return [\n usePopperScope\n ];\n})), \"8WgpbJ/Lqh/12BZO7Eu0CP/9cMI=\", false, function() {\n return [\n usePopperScope\n ];\n});\n_c24 = MenuArrow;\nMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = (props)=>{\n _s13();\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const handleOpenChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onOpenChange);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"MenuSub.useEffect\": ()=>{\n if (parentMenuContext.open === false) handleOpenChange(false);\n return ({\n \"MenuSub.useEffect\": ()=>handleOpenChange(false)\n })[\"MenuSub.useEffect\"];\n }\n }[\"MenuSub.useEffect\"], [\n parentMenuContext.open,\n handleOpenChange\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_4__.Root, {\n ...popperScope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuProvider, {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuSubProvider, {\n scope: __scopeMenu,\n contentId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_19__.useId)(),\n triggerId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_19__.useId)(),\n trigger,\n onTriggerChange: setTrigger,\n children\n })\n })\n });\n};\n_s13(MenuSub, \"oHJgNfGJeeigMsJqyuJgZ/xXcaA=\", false, function() {\n return [\n useMenuContext,\n usePopperScope,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_19__.useId,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_19__.useId\n ];\n});\n_c25 = MenuSub;\nMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = /*#__PURE__*/ _s14(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c26 = _s14((props, forwardedRef)=>{\n _s14();\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = {\n __scopeMenu: props.__scopeMenu\n };\n const clearOpenTimer = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"MenuSubTrigger.useCallback[clearOpenTimer]\": ()=>{\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }\n }[\"MenuSubTrigger.useCallback[clearOpenTimer]\"], []);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"MenuSubTrigger.useEffect\": ()=>clearOpenTimer\n }[\"MenuSubTrigger.useEffect\"], [\n clearOpenTimer\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"MenuSubTrigger.useEffect\": ()=>{\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return ({\n \"MenuSubTrigger.useEffect\": ()=>{\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n }\n })[\"MenuSubTrigger.useEffect\"];\n }\n }[\"MenuSubTrigger.useEffect\"], [\n pointerGraceTimerRef,\n onPointerGraceIntentChange\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuAnchor, {\n asChild: true,\n ...scope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuItemImpl, {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.composeRefs)(forwardedRef, subContext.onTriggerChange),\n onClick: (event)=>{\n var _props_onClick;\n (_props_onClick = props.onClick) === null || _props_onClick === void 0 ? void 0 : _props_onClick.call(props, event);\n if (props.disabled || event.defaultPrevented) return;\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onPointerMove, whenMouse((event)=>{\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(()=>{\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })),\n onPointerLeave: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onPointerLeave, whenMouse((event)=>{\n var _context_content;\n clearOpenTimer();\n const contentRect = (_context_content = context.content) === null || _context_content === void 0 ? void 0 : _context_content.getBoundingClientRect();\n if (contentRect) {\n var _context_content1;\n const side = (_context_content1 = context.content) === null || _context_content1 === void 0 ? void 0 : _context_content1.dataset.side;\n const rightSide = side === \"right\";\n const bleed = rightSide ? -5 : 5;\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n {\n x: event.clientX + bleed,\n y: event.clientY\n },\n {\n x: contentNearEdge,\n y: contentRect.top\n },\n {\n x: contentFarEdge,\n y: contentRect.top\n },\n {\n x: contentFarEdge,\n y: contentRect.bottom\n },\n {\n x: contentNearEdge,\n y: contentRect.bottom\n }\n ],\n side\n });\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(()=>contentContext.onPointerGraceIntentChange(null), 300);\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n })),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onKeyDown, (event)=>{\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n var _context_content;\n context.onOpenChange(true);\n (_context_content = context.content) === null || _context_content === void 0 ? void 0 : _context_content.focus();\n event.preventDefault();\n }\n })\n })\n });\n}, \"/ehIxLkqpn6AwUD2r8VUL6WM7sc=\", false, function() {\n return [\n useMenuContext,\n useMenuRootContext,\n useMenuSubContext,\n useMenuContentContext\n ];\n})), \"/ehIxLkqpn6AwUD2r8VUL6WM7sc=\", false, function() {\n return [\n useMenuContext,\n useMenuRootContext,\n useMenuSubContext,\n useMenuContentContext\n ];\n});\n_c27 = MenuSubTrigger;\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = /*#__PURE__*/ _s15(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c28 = _s15((props, forwardedRef)=>{\n _s15();\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs)(forwardedRef, ref);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Provider, {\n scope: props.__scopeMenu,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Slot, {\n scope: props.__scopeMenu,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(MenuContentImpl, {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n align: \"start\",\n side: rootContext.dir === \"rtl\" ? \"left\" : \"right\",\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: (event)=>{\n var _ref_current;\n if (rootContext.isUsingKeyboardRef.current) (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.focus();\n event.preventDefault();\n },\n onCloseAutoFocus: (event)=>event.preventDefault(),\n onFocusOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onFocusOutside, (event)=>{\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onEscapeKeyDown, (event)=>{\n rootContext.onClose();\n event.preventDefault();\n }),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_12__.composeEventHandlers)(props.onKeyDown, (event)=>{\n const isKeyDownInside = event.currentTarget.contains(event.target);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n var _subContext_trigger;\n context.onOpenChange(false);\n (_subContext_trigger = subContext.trigger) === null || _subContext_trigger === void 0 ? void 0 : _subContext_trigger.focus();\n event.preventDefault();\n }\n })\n })\n })\n })\n });\n}, \"C8o93gKdg5HNUblK4mz+D9S6O8c=\", false, function() {\n return [\n usePortalContext,\n useMenuContext,\n useMenuRootContext,\n useMenuSubContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs\n ];\n})), \"C8o93gKdg5HNUblK4mz+D9S6O8c=\", false, function() {\n return [\n usePortalContext,\n useMenuContext,\n useMenuRootContext,\n useMenuSubContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_10__.useComposedRefs\n ];\n});\n_c29 = MenuSubContent;\nMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates){\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index)=>array[(startIndex + index) % array.length]);\n}\nfunction getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every((char)=>char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v)=>v !== currentMatch);\n const nextMatch = wrappedValues.find((value)=>value.toLowerCase().startsWith(normalizedSearch.toLowerCase()));\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for(let i = 0, j = polygon.length - 1; i < polygon.length; j = i++){\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = {\n x: event.clientX,\n y: event.clientY\n };\n return isPointInPolygon(cursorPos, area);\n}\nfunction whenMouse(handler) {\n return (event)=>event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar Root3 = Menu;\nvar Anchor2 = MenuAnchor;\nvar Portal = MenuPortal;\nvar Content2 = MenuContent;\nvar Group = MenuGroup;\nvar Label = MenuLabel;\nvar Item2 = MenuItem;\nvar CheckboxItem = MenuCheckboxItem;\nvar RadioGroup = MenuRadioGroup;\nvar RadioItem = MenuRadioItem;\nvar ItemIndicator = MenuItemIndicator;\nvar Separator = MenuSeparator;\nvar Arrow2 = MenuArrow;\nvar Sub = MenuSub;\nvar SubTrigger = MenuSubTrigger;\nvar SubContent = MenuSubContent;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15, _c16, _c17, _c18, _c19, _c20, _c21, _c22, _c23, _c24, _c25, _c26, _c27, _c28, _c29;\n$RefreshReg$(_c, \"Menu\");\n$RefreshReg$(_c1, \"MenuAnchor\");\n$RefreshReg$(_c2, \"MenuPortal\");\n$RefreshReg$(_c3, \"MenuContent$React.forwardRef\");\n$RefreshReg$(_c4, \"MenuContent\");\n$RefreshReg$(_c5, \"MenuRootContentModal\");\n$RefreshReg$(_c6, \"MenuRootContentNonModal\");\n$RefreshReg$(_c7, \"MenuContentImpl\");\n$RefreshReg$(_c8, \"MenuGroup\");\n$RefreshReg$(_c9, \"MenuLabel$React.forwardRef\");\n$RefreshReg$(_c10, \"MenuLabel\");\n$RefreshReg$(_c11, \"MenuItem\");\n$RefreshReg$(_c12, \"MenuItemImpl\");\n$RefreshReg$(_c13, \"MenuCheckboxItem$React.forwardRef\");\n$RefreshReg$(_c14, \"MenuCheckboxItem\");\n$RefreshReg$(_c15, \"MenuRadioGroup$React.forwardRef\");\n$RefreshReg$(_c16, \"MenuRadioGroup\");\n$RefreshReg$(_c17, \"MenuRadioItem$React.forwardRef\");\n$RefreshReg$(_c18, \"MenuRadioItem\");\n$RefreshReg$(_c19, \"MenuItemIndicator$React.forwardRef\");\n$RefreshReg$(_c20, \"MenuItemIndicator\");\n$RefreshReg$(_c21, \"MenuSeparator$React.forwardRef\");\n$RefreshReg$(_c22, \"MenuSeparator\");\n$RefreshReg$(_c23, \"MenuArrow$React.forwardRef\");\n$RefreshReg$(_c24, \"MenuArrow\");\n$RefreshReg$(_c25, \"MenuSub\");\n$RefreshReg$(_c26, \"MenuSubTrigger$React.forwardRef\");\n$RefreshReg$(_c27, \"MenuSubTrigger\");\n$RefreshReg$(_c28, \"MenuSubContent$React.forwardRef\");\n$RefreshReg$(_c29, \"MenuSubContent\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZHJvcGRvd24tbWVudS9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LW1lbnUvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ0o7QUFDWTtBQUNWO0FBQ047QUFDSTtBQUNGO0FBQ0o7QUFDTDtBQUNXO0FBQ0M7QUFDUTtBQUNqQjtBQUM4QjtBQUNyQjtBQUNVO0FBQ3ZCO0FBQ1U7QUFDSjtBQUNFO0FBb0dyQjtBQTlGUixJQUFNLGlCQUFpQjtJQUFDO0lBQVMsR0FBRztDQUFBO0FBQ3BDLElBQU0sYUFBYTtJQUFDO0lBQWE7SUFBVSxNQUFNO0NBQUE7QUFDakQsSUFBTSxZQUFZO0lBQUM7SUFBVztJQUFZLEtBQUs7Q0FBQTtBQUMvQyxJQUFNLGtCQUFrQixDQUFDO09BQUc7T0FBZSxTQUFTO0NBQUE7QUFDcEQsSUFBTSxnQkFBNkM7SUFDakQsS0FBSyxDQUFDO1dBQUc7UUFBZ0IsWUFBWTtLQUFBO0lBQ3JDLEtBQUssQ0FBQztXQUFHO1FBQWdCLFdBQVc7S0FBQTtBQUN0QztBQUNBLElBQU0saUJBQThDO0lBQ2xELEtBQUs7UUFBQyxXQUFXO0tBQUE7SUFDakIsS0FBSztRQUFDLFlBQVk7S0FBQTtBQUNwQjtBQU1BLElBQU0sWUFBWTtBQUdsQixJQUFNLENBQUMsWUFBWSxlQUFlLHFCQUFxQixJQUFJLDRFQUFnQixDQUd6RSxTQUFTO0FBR1gsSUFBTSxDQUFDLG1CQUFtQixlQUFlLElBQUksMkVBQWtCLENBQUMsV0FBVztJQUN6RTtJQUNBLHFFQUFpQjtJQUNqQixxRkFBMkI7Q0FDNUI7QUFDRCxJQUFNLGlCQUFpQix5RUFBaUIsQ0FBQztBQUN6QyxJQUFNLDJCQUEyQix5RkFBMkIsQ0FBQztBQVM3RCxJQUFNLENBQUMsY0FBYyxjQUFj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LENBQUMsRUFBRTtRQUd0QixNQUFNLFlBQWMsS0FBSyxNQUFRLEtBQUssS0FBUSxLQUFLLEtBQUssT0FBTyxJQUFJLE9BQU8sS0FBSyxNQUFNO1FBQ3JGLElBQUksVUFBVyxVQUFTLENBQUM7SUFDM0I7SUFFQSxPQUFPO0FBQ1Q7QUFFQSxTQUFTLHFCQUFxQixPQUEyQixNQUFnQjtJQUN2RSxJQUFJLENBQUMsS0FBTSxRQUFPO0lBQ2xCLE1BQU0sWUFBWTtRQUFFLEdBQUcsTUFBTTtRQUFTLEdBQUcsTUFBTTtJQUFRO0lBQ3ZELE9BQU8saUJBQWlCLFdBQVcsSUFBSTtBQUN6QztBQUVBLFNBQVMsVUFBYSxTQUFxRTtJQUN6RixPQUFPLENBQUMsUUFBVyxNQUFNLGdCQUFnQixVQUFVLFFBQVEsS0FBSyxJQUFJO0FBQ3RFO0FBRUEsSUFBTUEsUUFBTztBQUNiLElBQU1DLFVBQVM7QUFDZixJQUFNLFNBQVM7QUFDZixJQUFNQyxXQUFVO0FBQ2hCLElBQU0sUUFBUTtBQUNkLElBQU0sUUFBUTtBQUNkLElBQU1DLFFBQU87QUFDYixJQUFNLGVBQWU7QUFDckIsSUFBTSxhQUFhO0FBQ25CLElBQU0sWUFBWTtBQUNsQixJQUFNLGdCQUFnQjtBQUN0QixJQUFNLFlBQVk7QUFDbEIsSUFBTUMsU0FBUTtBQUNkLElBQU0sTUFBTTtBQUNaLElBQU0sYUFBYTtBQUNuQixJQUFNLGFBQWEiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9zcmMvbWVudS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tICdAcmFkaXgtdWkvcHJpbWl0aXZlJztcbmltcG9ydCB7IGNyZWF0ZUNvbGxlY3Rpb24gfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29sbGVjdGlvbic7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMsIGNvbXBvc2VSZWZzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5pbXBvcnQgeyB1c2VEaXJlY3Rpb24gfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZGlyZWN0aW9uJztcbmltcG9ydCB7IERpc21pc3NhYmxlTGF5ZXIgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXInO1xuaW1wb3J0IHsgdXNlRm9jdXNHdWFyZHMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZm9jdXMtZ3VhcmRzJztcbmltcG9ydCB7IEZvY3VzU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZm9jdXMtc2NvcGUnO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtaWQnO1xuaW1wb3J0ICogYXMgUG9wcGVyUHJpbWl0aXZlIGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wb3BwZXInO1xuaW1wb3J0IHsgY3JlYXRlUG9wcGVyU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcG9wcGVyJztcbmltcG9ydCB7IFBvcnRhbCBhcyBQb3J0YWxQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcG9ydGFsJztcbmltcG9ydCB7IFByZXNlbmNlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByZXNlbmNlJztcbmltcG9ydCB7IFByaW1pdGl2ZSwgZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50IH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5pbXBvcnQgKiBhcyBSb3ZpbmdGb2N1c0dyb3VwIGZyb20gJ0ByYWRpeC11aS9yZWFjdC1yb3ZpbmctZm9jdXMnO1xuaW1wb3J0IHsgY3JlYXRlUm92aW5nRm9jdXNHcm91cFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXJvdmluZy1mb2N1cyc7XG5pbXBvcnQgeyBTbG90IH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXNsb3QnO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2tSZWYgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZic7XG5pbXBvcnQgeyBoaWRlT3RoZXJzIH0gZnJvbSAnYXJpYS1oaWRkZW4nO1xuaW1wb3J0IHsgUmVtb3ZlU2Nyb2xsIH0gZnJvbSAncmVhY3QtcmVtb3ZlLXNjcm9sbCc7XG5cbmltcG9ydCB0eXBlIHsgU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5cbnR5cGUgRGlyZWN0aW9uID0gJ2x0cicgfCAncnRsJztcblxuY29uc3QgU0VMRUNUSU9OX0tFWVMgPSBbJ0VudGVyJywgJyAnXTtcbmNvbnN0IEZJUlNUX0tFWVMgPSBbJ0Fycm93RG93bicsICdQYWdlVXAnLCAnSG9tZSddO1xuY29uc3QgTEFTVF9LRVlTID0gWydBcnJvd1VwJywgJ1BhZ2VEb3duJywgJ0VuZCddO1xuY29uc3QgRklSU1RfTEFTVF9LRVlTID0gWy4uLkZJUlNUX0tFWVMsIC4uLkxBU1RfS0VZU107XG5jb25zdCBTVUJfT1BFTl9LRVlTOiBSZWNvcmQ8RGlyZWN0aW9uLCBzdHJpbmdbXT4gPSB7XG4gIGx0cjogWy4uLlNFTEVDVElPTl9LRVlTLCAnQXJyb3dSaWdodCddLFxuICBydGw6IFsuLi5TRUxFQ1RJT05fS0VZUywgJ0Fycm93TGVmdCddLFxufTtcbmNvbnN0IFNVQl9DTE9TRV9LRVlTOiBSZWNvcmQ8RGlyZWN0aW9uLCBzdHJpbmdbXT4gPSB7XG4gIGx0cjogWydBcnJvd0xlZnQnXSxcbiAgcnRsOiBbJ0Fycm93UmlnaHQnXSxcbn07XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIE1lbnVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgTUVOVV9OQU1FID0gJ01lbnUnO1xuXG50eXBlIEl0ZW1EYXRhID0geyBkaXNhYmxlZDogYm9vbGVhbjsgdGV4dFZhbHVlOiBzdHJpbmcgfTtcbmNvbnN0IFtDb2xsZWN0aW9uLCB1c2VDb2xsZWN0aW9uLCBjcmVhdGVDb2xsZWN0aW9uU2NvcGVdID0gY3JlYXRlQ29sbGVjdGlvbjxcbiAgTWVudUl0ZW1FbGVtZW50LFxuICBJdGVtRGF0YVxuPihNRU5VX05BTUUpO1xuXG50eXBlIFNjb3BlZFByb3BzPFA+ID0gUCAmIHsgX19zY29wZU1lbnU/OiBTY29wZSB9O1xuY29uc3QgW2NyZWF0ZU1lbnVDb250ZXh0LCBjcmVhdGVNZW51U2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKE1FTlVfTkFNRSwgW1xuICBjcmVhdGVDb2xsZWN0aW9uU2NvcGUsXG4gIGNyZWF0ZVBvcHBlclNjb3BlLFxuICBjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwU2NvcGUsXG5dKTtcbmNvbnN0IHVzZVBvcHBlclNjb3BlID0gY3JlYXRlUG9wcGVyU2NvcGUoKTtcbmNvbnN0IHVzZVJvdmluZ0ZvY3VzR3JvdXBTY29wZSA9IGNyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBTY29wZSgpO1xuXG50eXBlIE1lbnVDb250ZXh0VmFsdWUgPSB7XG4gIG9wZW46IGJvb2xlYW47XG4gIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZDtcbiAgY29udGVudDogTWVudUNvbnRlbnRFbGVtZW50IHwgbnVsbDtcbiAgb25Db250ZW50Q2hhbmdlKGNvbnRlbnQ6IE1lbnVDb250ZW50RWxlbWVudCB8IG51bGwpOiB2b2lkO1xufTtcblxuY29uc3QgW01lbnVQcm92aWRlciwgdXNlTWVudUNvbnRleHRdID0gY3JlYXRlTWVudUNvbnRleHQ8TWVudUNvbnRleHRWYWx1ZT4oTUVOVV9OQU1FKTtcblxudHlwZSBNZW51Um9vdENvbnRleHRWYWx1ZSA9IHtcbiAgb25DbG9zZSgpOiB2b2lkO1xuICBpc1VzaW5nS2V5Ym9hcmRSZWY6IFJlYWN0LlJlZk9iamVjdDxib29sZWFuPjtcbiAgZGlyOiBEaXJlY3Rpb247XG4gIG1vZGFsOiBib29sZWFuO1xufTtcblxuY29uc3QgW01lbnVSb290UHJvdmlkZXIsIHVzZU1lbnVSb290Q29udGV4dF0gPSBjcmVhdGVNZW51Q29udGV4dDxNZW51Um9vdENvbnRleHRWYWx1ZT4oTUVOVV9OQU1FKTtcblxuaW50ZXJmYWNlIE1lbnVQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBvcGVuPzogYm9vbGVhbjtcbiAgb25PcGVuQ2hhbmdlPyhvcGVuOiBib29sZWFuKTogdm9pZDtcbiAgZGlyPzogRGlyZWN0aW9uO1xuICBtb2RhbD86IGJvb2xlYW47XG59XG5cbmNvbnN0IE1lbnU6IFJlYWN0LkZDPE1lbnVQcm9wcz4gPSAocHJvcHM6IFNjb3BlZFByb3BzPE1lbnVQcm9wcz4pID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlTWVudSwgb3BlbiA9IGZhbHNlLCBjaGlsZHJlbiwgZGlyLCBvbk9wZW5DaGFuZ2UsIG1vZGFsID0gdHJ1ZSB9ID0gcHJvcHM7XG4gIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZU1lbnUpO1xuICBjb25zdCBbY29udGVudCwgc2V0Q29udGVudF0gPSBSZWFjdC51c2VTdGF0ZTxNZW51Q29udGVudEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgaXNVc2luZ0tleWJvYXJkUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgaGFuZGxlT3BlbkNoYW5nZSA9IHVzZUNhbGxiYWNrUmVmKG9uT3BlbkNoYW5nZSk7XG4gIGNvbnN0IGRpcmVjdGlvbiA9IHVzZURpcmVjdGlvbihkaXIpO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gQ2FwdHVyZSBwaGFzZSBlbnN1cmVzIHdlIHNldCB0aGUgYm9vbGVhbiBiZWZvcmUgYW55IHNpZGUgZWZmZWN0cyBleGVjdXRlXG4gICAgLy8gaW4gcmVzcG9uc2UgdG8gdGhlIGtleSBvciBwb2ludGVyIGV2ZW50IGFzIHRoZXkgbWlnaHQgZGVwZW5kIG9uIHRoaXMgdmFsdWUuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93biA9ICgpID0+IHtcbiAgICAgIGlzVXNpbmdLZXlib2FyZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgaGFuZGxlUG9pbnRlciwgeyBjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlIH0pO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCBoYW5kbGVQb2ludGVyLCB7IGNhcHR1cmU6IHRydWUsIG9uY2U6IHRydWUgfSk7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVQb2ludGVyID0gKCkgPT4gKGlzVXNpbmdLZXlib2FyZFJlZi5jdXJyZW50ID0gZmFsc2UpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZVBvaW50ZXIsIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgaGFuZGxlUG9pbnRlciwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgIH07XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxQb3BwZXJQcmltaXRpdmUuUm9vdCB7Li4ucG9wcGVyU2NvcGV9PlxuICAgICAgPE1lbnVQcm92aWRlclxuICAgICAgICBzY29wZT17X19zY29wZU1lbnV9XG4gICAgICAgIG9wZW49e29wZW59XG4gICAgICAgIG9uT3BlbkNoYW5nZT17aGFuZGxlT3BlbkNoYW5nZX1cbiAgICAgICAgY29udGVudD17Y29udGVudH1cbiAgICAgICAgb25Db250ZW50Q2hhbmdlPXtzZXRDb250ZW50fVxuICAgICAgPlxuICAgICAgICA8TWVudVJvb3RQcm92aWRlclxuICAgICAgICAgIHNjb3BlPXtfX3Njb3BlTWVudX1cbiAgICAgICAgICBvbkNsb3NlPXtSZWFjdC51c2VDYWxsYmFjaygoKSA9PiBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKSwgW2hhbmRsZU9wZW5DaGFuZ2VdKX1cbiAgICAgICAgICBpc1VzaW5nS2V5Ym9hcmRSZWY9e2lzVXNpbmdLZXlib2FyZFJlZn1cbiAgICAgICAgICBkaXI9e2RpcmVjdGlvbn1cbiAgICAgICAgICBtb2RhbD17bW9kYWx9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvTWVudVJvb3RQcm92aWRlcj5cbiAgICAgIDwvTWVudVByb3ZpZGVyPlxuICAgIDwvUG9wcGVyUHJpbWl0aXZlLlJvb3Q+XG4gICk7XG59O1xuXG5NZW51LmRpc3BsYXlOYW1lID0gTUVOVV9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBNZW51QW5jaG9yXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IEFOQ0hPUl9OQU1FID0gJ01lbnVBbmNob3InO1xuXG50eXBlIE1lbnVBbmNob3JFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUG9wcGVyUHJpbWl0aXZlLkFuY2hvcj47XG50eXBlIFBvcHBlckFuY2hvclByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQb3BwZXJQcmltaXRpdmUuQW5jaG9yPjtcbmludGVyZmFjZSBNZW51QW5jaG9yUHJvcHMgZXh0ZW5kcyBQb3BwZXJBbmNob3JQcm9wcyB7fVxuXG5jb25zdCBNZW51QW5jaG9yID0gUmVhY3QuZm9yd2FyZFJlZjxNZW51QW5jaG9yRWxlbWVudCwgTWVudUFuY2hvclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51QW5jaG9yUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVNZW51LCAuLi5hbmNob3JQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlTWVudSk7XG4gICAgcmV0dXJuIDxQb3BwZXJQcmltaXRpdmUuQW5jaG9yIHsuLi5wb3BwZXJTY29wZX0gey4uLmFuY2hvclByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG4gIH1cbik7XG5cbk1lbnVBbmNob3IuZGlzcGxheU5hbWUgPSBBTkNIT1JfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogTWVudVBvcnRhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBQT1JUQUxfTkFNRSA9ICdNZW51UG9ydGFsJztcblxudHlwZSBQb3J0YWxDb250ZXh0VmFsdWUgPSB7IGZvcmNlTW91bnQ/OiB0cnVlIH07XG5jb25zdCBbUG9ydGFsUHJvdmlkZXIsIHVzZVBvcnRhbENvbnRleHRdID0gY3JlYXRlTWVudUNvbnRleHQ8UG9ydGFsQ29udGV4dFZhbHVlPihQT1JUQUxfTkFNRSwge1xuICBmb3JjZU1vdW50OiB1bmRlZmluZWQsXG59KTtcblxudHlwZSBQb3J0YWxQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUG9ydGFsUHJpbWl0aXZlPjtcbmludGVyZmFjZSBNZW51UG9ydGFsUHJvcHMge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIFNwZWNpZnkgYSBjb250YWluZXIgZWxlbWVudCB0byBwb3J0YWwgdGhlIGNvbnRlbnQgaW50by5cbiAgICovXG4gIGNvbnRhaW5lcj86IFBvcnRhbFByb3BzWydjb250YWluZXInXTtcbiAgLyoqXG4gICAqIFVzZWQgdG8gZm9yY2UgbW91bnRpbmcgd2hlbiBtb3JlIGNvbnRyb2wgaXMgbmVlZGVkLiBVc2VmdWwgd2hlblxuICAgKiBjb250cm9sbGluZyBhbmltYXRpb24gd2l0aCBSZWFjdCBhbmltYXRpb24gbGlicmFyaWVzLlxuICAgKi9cbiAgZm9yY2VNb3VudD86IHRydWU7XG59XG5cbmNvbnN0IE1lbnVQb3J0YWw6IFJlYWN0LkZDPE1lbnVQb3J0YWxQcm9wcz4gPSAocHJvcHM6IFNjb3BlZFByb3BzPE1lbnVQb3J0YWxQcm9wcz4pID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlTWVudSwgZm9yY2VNb3VudCwgY2hpbGRyZW4sIGNvbnRhaW5lciB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VNZW51Q29udGV4dChQT1JUQUxfTkFNRSwgX19zY29wZU1lbnUpO1xuICByZXR1cm4gKFxuICAgIDxQb3J0YWxQcm92aWRlciBzY29wZT17X19zY29wZU1lbnV9IGZvcmNlTW91bnQ9e2ZvcmNlTW91bnR9PlxuICAgICAgPFByZXNlbmNlIHByZXNlbnQ9e2ZvcmNlTW91bnQgfHwgY29udGV4dC5vcGVufT5cbiAgICAgICAgPFBvcnRhbFByaW1pdGl2ZSBhc0NoaWxkIGNvbnRhaW5lcj17Y29udGFpbmVyfT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvUG9ydGFsUHJpbWl0aXZlPlxuICAgICAgPC9QcmVzZW5jZT5cbiAgICA8L1BvcnRhbFByb3ZpZGVyPlxuICApO1xufTtcblxuTWVudVBvcnRhbC5kaXNwbGF5TmFtZSA9IFBPUlRBTF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBNZW51Q29udGVudFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDT05URU5UX05BTUUgPSAnTWVudUNvbnRlbnQnO1xuXG50eXBlIE1lbnVDb250ZW50Q29udGV4dFZhbHVlID0ge1xuICBvbkl0ZW1FbnRlcihldmVudDogUmVhY3QuUG9pbnRlckV2ZW50KTogdm9pZDtcbiAgb25JdGVtTGVhdmUoZXZlbnQ6IFJlYWN0LlBvaW50ZXJFdmVudCk6IHZvaWQ7XG4gIG9uVHJpZ2dlckxlYXZlKGV2ZW50OiBSZWFjdC5Qb2ludGVyRXZlbnQpOiB2b2lkO1xuICBzZWFyY2hSZWY6IFJlYWN0LlJlZk9iamVjdDxzdHJpbmc+O1xuICBwb2ludGVyR3JhY2VUaW1lclJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxudW1iZXI+O1xuICBvblBvaW50ZXJHcmFjZUludGVudENoYW5nZShpbnRlbnQ6IEdyYWNlSW50ZW50IHwgbnVsbCk6IHZvaWQ7XG59O1xuY29uc3QgW01lbnVDb250ZW50UHJvdmlkZXIsIHVzZU1lbnVDb250ZW50Q29udGV4dF0gPVxuICBjcmVhdGVNZW51Q29udGV4dDxNZW51Q29udGVudENvbnRleHRWYWx1ZT4oQ09OVEVOVF9OQU1FKTtcblxudHlwZSBNZW51Q29udGVudEVsZW1lbnQgPSBNZW51Um9vdENvbnRlbnRUeXBlRWxlbWVudDtcbi8qKlxuICogV2UgcHVycG9zZWZ1bGx5IGRvbid0IHVuaW9uIE1lbnVSb290Q29udGVudCBhbmQgTWVudVN1YkNvbnRlbnQgcHJvcHMgaGVyZSBiZWNhdXNlXG4gKiB0aGV5IGhhdmUgY29uZmxpY3RpbmcgcHJvcCB0eXBlcy4gV2UgYWdyZWVkIHRoYXQgd2Ugd291bGQgYWxsb3cgTWVudVN1YkNvbnRlbnQgdG9cbiAqIGFjY2VwdCBwcm9wcyB0aGF0IGl0IHdvdWxkIGp1c3QgaWdub3JlLlxuICovXG5pbnRlcmZhY2UgTWVudUNvbnRlbnRQcm9wcyBleHRlbmRzIE1lbnVSb290Q29udGVudFR5cGVQcm9wcyB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBNZW51Q29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8TWVudUNvbnRlbnRFbGVtZW50LCBNZW51Q29udGVudFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51Q29udGVudFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgcG9ydGFsQ29udGV4dCA9IHVzZVBvcnRhbENvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlTWVudSk7XG4gICAgY29uc3QgeyBmb3JjZU1vdW50ID0gcG9ydGFsQ29udGV4dC5mb3JjZU1vdW50LCAuLi5jb250ZW50UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VNZW51Q29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCByb290Q29udGV4dCA9IHVzZU1lbnVSb290Q29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Q29sbGVjdGlvbi5Qcm92aWRlciBzY29wZT17cHJvcHMuX19zY29wZU1lbnV9PlxuICAgICAgICA8UHJlc2VuY2UgcHJlc2VudD17Zm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW59PlxuICAgICAgICAgIDxDb2xsZWN0aW9uLlNsb3Qgc2NvcGU9e3Byb3BzLl9fc2NvcGVNZW51fT5cbiAgICAgICAgICAgIHtyb290Q29udGV4dC5tb2RhbCA/IChcbiAgICAgICAgICAgICAgPE1lbnVSb290Q29udGVudE1vZGFsIHsuLi5jb250ZW50UHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnVSb290Q29udGVudE5vbk1vZGFsIHsuLi5jb250ZW50UHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0NvbGxlY3Rpb24uU2xvdD5cbiAgICAgICAgPC9QcmVzZW5jZT5cbiAgICAgIDwvQ29sbGVjdGlvbi5Qcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbnR5cGUgTWVudVJvb3RDb250ZW50VHlwZUVsZW1lbnQgPSBNZW51Q29udGVudEltcGxFbGVtZW50O1xuaW50ZXJmYWNlIE1lbnVSb290Q29udGVudFR5cGVQcm9wc1xuICBleHRlbmRzIE9taXQ8TWVudUNvbnRlbnRJbXBsUHJvcHMsIGtleW9mIE1lbnVDb250ZW50SW1wbFByaXZhdGVQcm9wcz4ge31cblxuY29uc3QgTWVudVJvb3RDb250ZW50TW9kYWwgPSBSZWFjdC5mb3J3YXJkUmVmPE1lbnVSb290Q29udGVudFR5cGVFbGVtZW50LCBNZW51Um9vdENvbnRlbnRUeXBlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPE1lbnVSb290Q29udGVudFR5cGVQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VNZW51Q29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWY8TWVudVJvb3RDb250ZW50VHlwZUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG5cbiAgICAvLyBIaWRlIGV2ZXJ5dGhpbmcgZnJvbSBBUklBIGV4Y2VwdCB0aGUgYE1lbnVDb250ZW50YFxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjb250ZW50ID0gcmVmLmN1cnJlbnQ7XG4gICAgICBpZiAoY29udGVudCkgcmV0dXJuIGhpZGVPdGhlcnMoY29udGVudCk7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxNZW51Q29udGVudEltcGxcbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgLy8gd2UgbWFrZSBzdXJlIHdlJ3JlIG5vdCB0cmFwcGluZyBvbmNlIGl0J3MgYmVlbiBjbG9zZWRcbiAgICAgICAgLy8gKGNsb3NlZCAhPT0gdW5tb3VudGVkIHdoZW4gYW5pbWF0aW5nIG91dClcbiAgICAgICAgdHJhcEZvY3VzPXtjb250ZXh0Lm9wZW59XG4gICAgICAgIC8vIG1ha2Ugc3VyZSB0byBvbmx5IGRpc2FibGUgcG9pbnRlciBldmVudHMgd2hlbiBvcGVuXG4gICAgICAgIC8vIHRoaXMgYXZvaWRzIGJsb2NraW5nIGludGVyYWN0aW9ucyB3aGlsZSBhbmltYXRpbmcgb3V0XG4gICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cz17Y29udGV4dC5vcGVufVxuICAgICAgICBkaXNhYmxlT3V0c2lkZVNjcm9sbFxuICAgICAgICAvLyBXaGVuIGZvY3VzIGlzIHRyYXBwZWQsIGEgYGZvY3Vzb3V0YCBldmVudCBtYXkgc3RpbGwgaGFwcGVuLlxuICAgICAgICAvLyBXZSBtYWtlIHN1cmUgd2UgZG9uJ3QgdHJpZ2dlciBvdXIgYG9uRGlzbWlzc2AgaW4gc3VjaCBjYXNlLlxuICAgICAgICBvbkZvY3VzT3V0c2lkZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMoXG4gICAgICAgICAgcHJvcHMub25Gb2N1c091dHNpZGUsXG4gICAgICAgICAgKGV2ZW50KSA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpLFxuICAgICAgICAgIHsgY2hlY2tGb3JEZWZhdWx0UHJldmVudGVkOiBmYWxzZSB9XG4gICAgICAgICl9XG4gICAgICAgIG9uRGlzbWlzcz17KCkgPT4gY29udGV4dC5vbk9wZW5DaGFuZ2UoZmFsc2UpfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBNZW51Um9vdENvbnRlbnROb25Nb2RhbCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIE1lbnVSb290Q29udGVudFR5cGVFbGVtZW50LFxuICBNZW51Um9vdENvbnRlbnRUeXBlUHJvcHNcbj4oKHByb3BzOiBTY29wZWRQcm9wczxNZW51Um9vdENvbnRlbnRUeXBlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZU1lbnVDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICByZXR1cm4gKFxuICAgIDxNZW51Q29udGVudEltcGxcbiAgICAgIHsuLi5wcm9wc31cbiAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgdHJhcEZvY3VzPXtmYWxzZX1cbiAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cz17ZmFsc2V9XG4gICAgICBkaXNhYmxlT3V0c2lkZVNjcm9sbD17ZmFsc2V9XG4gICAgICBvbkRpc21pc3M9eygpID0+IGNvbnRleHQub25PcGVuQ2hhbmdlKGZhbHNlKX1cbiAgICAvPlxuICApO1xufSk7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxudHlwZSBNZW51Q29udGVudEltcGxFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUG9wcGVyUHJpbWl0aXZlLkNvbnRlbnQ+O1xudHlwZSBGb2N1c1Njb3BlUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEZvY3VzU2NvcGU+O1xudHlwZSBEaXNtaXNzYWJsZUxheWVyUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpc21pc3NhYmxlTGF5ZXI+O1xudHlwZSBSb3ZpbmdGb2N1c0dyb3VwUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFJvdmluZ0ZvY3VzR3JvdXAuUm9vdD47XG50eXBlIFBvcHBlckNvbnRlbnRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUG9wcGVyUHJpbWl0aXZlLkNvbnRlbnQ+O1xudHlwZSBNZW51Q29udGVudEltcGxQcml2YXRlUHJvcHMgPSB7XG4gIG9uT3BlbkF1dG9Gb2N1cz86IEZvY3VzU2NvcGVQcm9wc1snb25Nb3VudEF1dG9Gb2N1cyddO1xuICBvbkRpc21pc3M/OiBEaXNtaXNzYWJsZUxheWVyUHJvcHNbJ29uRGlzbWlzcyddO1xuICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHM/OiBEaXNtaXNzYWJsZUxheWVyUHJvcHNbJ2Rpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cyddO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHNjcm9sbGluZyBvdXRzaWRlIHRoZSBgTWVudUNvbnRlbnRgIHNob3VsZCBiZSBwcmV2ZW50ZWRcbiAgICogKGRlZmF1bHQ6IGBmYWxzZWApXG4gICAqL1xuICBkaXNhYmxlT3V0c2lkZVNjcm9sbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgZm9jdXMgc2hvdWxkIGJlIHRyYXBwZWQgd2l0aGluIHRoZSBgTWVudUNvbnRlbnRgXG4gICAqIChkZWZhdWx0OiBmYWxzZSlcbiAgICovXG4gIHRyYXBGb2N1cz86IEZvY3VzU2NvcGVQcm9wc1sndHJhcHBlZCddO1xufTtcbmludGVyZmFjZSBNZW51Q29udGVudEltcGxQcm9wc1xuICBleHRlbmRzIE1lbnVDb250ZW50SW1wbFByaXZhdGVQcm9wcyxcbiAgICBPbWl0PFBvcHBlckNvbnRlbnRQcm9wcywgJ2RpcicgfCAnb25QbGFjZWQnPiB7XG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIGF1dG8tZm9jdXNpbmcgb24gY2xvc2UuXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvbkNsb3NlQXV0b0ZvY3VzPzogRm9jdXNTY29wZVByb3BzWydvblVubW91bnRBdXRvRm9jdXMnXTtcblxuICAvKipcbiAgICogV2hldGhlciBrZXlib2FyZCBuYXZpZ2F0aW9uIHNob3VsZCBsb29wIGFyb3VuZFxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICBsb29wPzogUm92aW5nRm9jdXNHcm91cFByb3BzWydsb29wJ107XG5cbiAgb25FbnRyeUZvY3VzPzogUm92aW5nRm9jdXNHcm91cFByb3BzWydvbkVudHJ5Rm9jdXMnXTtcbiAgb25Fc2NhcGVLZXlEb3duPzogRGlzbWlzc2FibGVMYXllclByb3BzWydvbkVzY2FwZUtleURvd24nXTtcbiAgb25Qb2ludGVyRG93bk91dHNpZGU/OiBEaXNtaXNzYWJsZUxheWVyUHJvcHNbJ29uUG9pbnRlckRvd25PdXRzaWRlJ107XG4gIG9uRm9jdXNPdXRzaWRlPzogRGlzbWlzc2FibGVMYXllclByb3BzWydvbkZvY3VzT3V0c2lkZSddO1xuICBvbkludGVyYWN0T3V0c2lkZT86IERpc21pc3NhYmxlTGF5ZXJQcm9wc1snb25JbnRlcmFjdE91dHNpZGUnXTtcbn1cblxuY29uc3QgTWVudUNvbnRlbnRJbXBsID0gUmVhY3QuZm9yd2FyZFJlZjxNZW51Q29udGVudEltcGxFbGVtZW50LCBNZW51Q29udGVudEltcGxQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8TWVudUNvbnRlbnRJbXBsUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlTWVudSxcbiAgICAgIGxvb3AgPSBmYWxzZSxcbiAgICAgIHRyYXBGb2N1cyxcbiAgICAgIG9uT3BlbkF1dG9Gb2N1cyxcbiAgICAgIG9uQ2xvc2VBdXRvRm9jdXMsXG4gICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMsXG4gICAgICBvbkVudHJ5Rm9jdXMsXG4gICAgICBvbkVzY2FwZUtleURvd24sXG4gICAgICBvblBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgIG9uRm9jdXNPdXRzaWRlLFxuICAgICAgb25JbnRlcmFjdE91dHNpZGUsXG4gICAgICBvbkRpc21pc3MsXG4gICAgICBkaXNhYmxlT3V0c2lkZVNjcm9sbCxcbiAgICAgIC4uLmNvbnRlbnRQcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlTWVudUNvbnRleHQoQ09OVEVOVF9OQU1FLCBfX3Njb3BlTWVudSk7XG4gICAgY29uc3Qgcm9vdENvbnRleHQgPSB1c2VNZW51Um9vdENvbnRleHQoQ09OVEVOVF9OQU1FLCBfX3Njb3BlTWVudSk7XG4gICAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlTWVudSk7XG4gICAgY29uc3Qgcm92aW5nRm9jdXNHcm91cFNjb3BlID0gdXNlUm92aW5nRm9jdXNHcm91cFNjb3BlKF9fc2NvcGVNZW51KTtcbiAgICBjb25zdCBnZXRJdGVtcyA9IHVzZUNvbGxlY3Rpb24oX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IFtjdXJyZW50SXRlbUlkLCBzZXRDdXJyZW50SXRlbUlkXSA9IFJlYWN0LnVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRlbnRSZWYsIGNvbnRleHQub25Db250ZW50Q2hhbmdlKTtcbiAgICBjb25zdCB0aW1lclJlZiA9IFJlYWN0LnVzZVJlZigwKTtcbiAgICBjb25zdCBzZWFyY2hSZWYgPSBSZWFjdC51c2VSZWYoJycpO1xuICAgIGNvbnN0IHBvaW50ZXJHcmFjZVRpbWVyUmVmID0gUmVhY3QudXNlUmVmKDApO1xuICAgIGNvbnN0IHBvaW50ZXJHcmFjZUludGVudFJlZiA9IFJlYWN0LnVzZVJlZjxHcmFjZUludGVudCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IHBvaW50ZXJEaXJSZWYgPSBSZWFjdC51c2VSZWY8U2lkZT4oJ3JpZ2h0Jyk7XG4gICAgY29uc3QgbGFzdFBvaW50ZXJYUmVmID0gUmVhY3QudXNlUmVmKDApO1xuXG4gICAgY29uc3QgU2Nyb2xsTG9ja1dyYXBwZXIgPSBkaXNhYmxlT3V0c2lkZVNjcm9sbCA/IFJlbW92ZVNjcm9sbCA6IFJlYWN0LkZyYWdtZW50O1xuICAgIGNvbnN0IHNjcm9sbExvY2tXcmFwcGVyUHJvcHMgPSBkaXNhYmxlT3V0c2lkZVNjcm9sbFxuICAgICAgPyB7IGFzOiBTbG90LCBhbGxvd1BpbmNoWm9vbTogdHJ1ZSB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGhhbmRsZVR5cGVhaGVhZFNlYXJjaCA9IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qgc2VhcmNoID0gc2VhcmNoUmVmLmN1cnJlbnQgKyBrZXk7XG4gICAgICBjb25zdCBpdGVtcyA9IGdldEl0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5kaXNhYmxlZCk7XG4gICAgICBjb25zdCBjdXJyZW50SXRlbSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCBjdXJyZW50TWF0Y2ggPSBpdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLnJlZi5jdXJyZW50ID09PSBjdXJyZW50SXRlbSk/LnRleHRWYWx1ZTtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS50ZXh0VmFsdWUpO1xuICAgICAgY29uc3QgbmV4dE1hdGNoID0gZ2V0TmV4dE1hdGNoKHZhbHVlcywgc2VhcmNoLCBjdXJyZW50TWF0Y2gpO1xuICAgICAgY29uc3QgbmV3SXRlbSA9IGl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udGV4dFZhbHVlID09PSBuZXh0TWF0Y2gpPy5yZWYuY3VycmVudDtcblxuICAgICAgLy8gUmVzZXQgYHNlYXJjaFJlZmAgMSBzZWNvbmQgYWZ0ZXIgaXQgd2FzIGxhc3QgdXBkYXRlZFxuICAgICAgKGZ1bmN0aW9uIHVwZGF0ZVNlYXJjaCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHNlYXJjaFJlZi5jdXJyZW50ID0gdmFsdWU7XG4gICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gJycpIHRpbWVyUmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB1cGRhdGVTZWFyY2goJycpLCAxMDAwKTtcbiAgICAgIH0pKHNlYXJjaCk7XG5cbiAgICAgIGlmIChuZXdJdGVtKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbXBlcmF0aXZlIGZvY3VzIGR1cmluZyBrZXlkb3duIGlzIHJpc2t5IHNvIHdlIHByZXZlbnQgUmVhY3QncyBiYXRjaGluZyB1cGRhdGVzXG4gICAgICAgICAqIHRvIGF2b2lkIHBvdGVudGlhbCBidWdzLiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMjAzMzJcbiAgICAgICAgICovXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gKG5ld0l0ZW0gYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCkpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXJSZWYuY3VycmVudCk7XG4gICAgfSwgW10pO1xuXG4gICAgLy8gTWFrZSBzdXJlIHRoZSB3aG9sZSB0cmVlIGhhcyBmb2N1cyBndWFyZHMgYXMgb3VyIGBNZW51Q29udGVudGAgbWF5IGJlXG4gICAgLy8gdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgRE9NIChiZWNhdXNlIG9mIHRoZSBgUG9ydGFsYClcbiAgICB1c2VGb2N1c0d1YXJkcygpO1xuXG4gICAgY29uc3QgaXNQb2ludGVyTW92aW5nVG9TdWJtZW51ID0gUmVhY3QudXNlQ2FsbGJhY2soKGV2ZW50OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGlzTW92aW5nVG93YXJkcyA9IHBvaW50ZXJEaXJSZWYuY3VycmVudCA9PT0gcG9pbnRlckdyYWNlSW50ZW50UmVmLmN1cnJlbnQ/LnNpZGU7XG4gICAgICByZXR1cm4gaXNNb3ZpbmdUb3dhcmRzICYmIGlzUG9pbnRlckluR3JhY2VBcmVhKGV2ZW50LCBwb2ludGVyR3JhY2VJbnRlbnRSZWYuY3VycmVudD8uYXJlYSk7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxNZW51Q29udGVudFByb3ZpZGVyXG4gICAgICAgIHNjb3BlPXtfX3Njb3BlTWVudX1cbiAgICAgICAgc2VhcmNoUmVmPXtzZWFyY2hSZWZ9XG4gICAgICAgIG9uSXRlbUVudGVyPXtSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChpc1BvaW50ZXJNb3ZpbmdUb1N1Ym1lbnUoZXZlbnQpKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgW2lzUG9pbnRlck1vdmluZ1RvU3VibWVudV1cbiAgICAgICAgKX1cbiAgICAgICAgb25JdGVtTGVhdmU9e1JlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzUG9pbnRlck1vdmluZ1RvU3VibWVudShldmVudCkpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnRlbnRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgICAgIHNldEN1cnJlbnRJdGVtSWQobnVsbCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBbaXNQb2ludGVyTW92aW5nVG9TdWJtZW51XVxuICAgICAgICApfVxuICAgICAgICBvblRyaWdnZXJMZWF2ZT17UmVhY3QudXNlQ2FsbGJhY2soXG4gICAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNQb2ludGVyTW92aW5nVG9TdWJtZW51KGV2ZW50KSkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIFtpc1BvaW50ZXJNb3ZpbmdUb1N1Ym1lbnVdXG4gICAgICAgICl9XG4gICAgICAgIHBvaW50ZXJHcmFjZVRpbWVyUmVmPXtwb2ludGVyR3JhY2VUaW1lclJlZn1cbiAgICAgICAgb25Qb2ludGVyR3JhY2VJbnRlbnRDaGFuZ2U9e1JlYWN0LnVzZUNhbGxiYWNrKChpbnRlbnQpID0+IHtcbiAgICAgICAgICBwb2ludGVyR3JhY2VJbnRlbnRSZWYuY3VycmVudCA9IGludGVudDtcbiAgICAgICAgfSwgW10pfVxuICAgICAgPlxuICAgICAgICA8U2Nyb2xsTG9ja1dyYXBwZXIgey4uLnNjcm9sbExvY2tXcmFwcGVyUHJvcHN9PlxuICAgICAgICAgIDxGb2N1c1Njb3BlXG4gICAgICAgICAgICBhc0NoaWxkXG4gICAgICAgICAgICB0cmFwcGVkPXt0cmFwRm9jdXN9XG4gICAgICAgICAgICBvbk1vdW50QXV0b0ZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhvbk9wZW5BdXRvRm9jdXMsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAvLyB3aGVuIG9wZW5pbmcsIGV4cGxpY2l0bHkgZm9jdXMgdGhlIGNvbnRlbnQgYXJlYSBvbmx5IGFuZCBsZWF2ZVxuICAgICAgICAgICAgICAvLyBgb25FbnRyeUZvY3VzYCBpbiAgY29udHJvbCBvZiBmb2N1c2luZyBmaXJzdCBpdGVtXG4gICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNvbnRlbnRSZWYuY3VycmVudD8uZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBvblVubW91bnRBdXRvRm9jdXM9e29uQ2xvc2VBdXRvRm9jdXN9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPERpc21pc3NhYmxlTGF5ZXJcbiAgICAgICAgICAgICAgYXNDaGlsZFxuICAgICAgICAgICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHM9e2Rpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50c31cbiAgICAgICAgICAgICAgb25Fc2NhcGVLZXlEb3duPXtvbkVzY2FwZUtleURvd259XG4gICAgICAgICAgICAgIG9uUG9pbnRlckRvd25PdXRzaWRlPXtvblBvaW50ZXJEb3duT3V0c2lkZX1cbiAgICAgICAgICAgICAgb25Gb2N1c091dHNpZGU9e29uRm9jdXNPdXRzaWRlfVxuICAgICAgICAgICAgICBvbkludGVyYWN0T3V0c2lkZT17b25JbnRlcmFjdE91dHNpZGV9XG4gICAgICAgICAgICAgIG9uRGlzbWlzcz17b25EaXNtaXNzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8Um92aW5nRm9jdXNHcm91cC5Sb290XG4gICAgICAgICAgICAgICAgYXNDaGlsZFxuICAgICAgICAgICAgICAgIHsuLi5yb3ZpbmdGb2N1c0dyb3VwU2NvcGV9XG4gICAgICAgICAgICAgICAgZGlyPXtyb290Q29udGV4dC5kaXJ9XG4gICAgICAgICAgICAgICAgb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgbG9vcD17bG9vcH1cbiAgICAgICAgICAgICAgICBjdXJyZW50VGFiU3RvcElkPXtjdXJyZW50SXRlbUlkfVxuICAgICAgICAgICAgICAgIG9uQ3VycmVudFRhYlN0b3BJZENoYW5nZT17c2V0Q3VycmVudEl0ZW1JZH1cbiAgICAgICAgICAgICAgICBvbkVudHJ5Rm9jdXM9e2NvbXBvc2VFdmVudEhhbmRsZXJzKG9uRW50cnlGb2N1cywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBvbmx5IGZvY3VzIGZpcnN0IGl0ZW0gd2hlbiB1c2luZyBrZXlib2FyZFxuICAgICAgICAgICAgICAgICAgaWYgKCFyb290Q29udGV4dC5pc1VzaW5nS2V5Ym9hcmRSZWYuY3VycmVudCkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICBwcmV2ZW50U2Nyb2xsT25FbnRyeUZvY3VzXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UG9wcGVyUHJpbWl0aXZlLkNvbnRlbnRcbiAgICAgICAgICAgICAgICAgIHJvbGU9XCJtZW51XCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRPcGVuU3RhdGUoY29udGV4dC5vcGVuKX1cbiAgICAgICAgICAgICAgICAgIGRhdGEtcmFkaXgtbWVudS1jb250ZW50PVwiXCJcbiAgICAgICAgICAgICAgICAgIGRpcj17cm9vdENvbnRleHQuZGlyfVxuICAgICAgICAgICAgICAgICAgey4uLnBvcHBlclNjb3BlfVxuICAgICAgICAgICAgICAgICAgey4uLmNvbnRlbnRQcm9wc31cbiAgICAgICAgICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgb3V0bGluZTogJ25vbmUnLCAuLi5jb250ZW50UHJvcHMuc3R5bGUgfX1cbiAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMoY29udGVudFByb3BzLm9uS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHN1Ym1lbnUga2V5IGV2ZW50cyBidWJibGUgdGhyb3VnaCBwb3J0YWxzLiBXZSBvbmx5IGNhcmUgYWJvdXQga2V5cyBpbiB0aGlzIG1lbnUuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNLZXlEb3duSW5zaWRlID1cbiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuY2xvc2VzdCgnW2RhdGEtcmFkaXgtbWVudS1jb250ZW50XScpID09PSBldmVudC5jdXJyZW50VGFyZ2V0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc01vZGlmaWVyS2V5ID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQubWV0YUtleTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDaGFyYWN0ZXJLZXkgPSBldmVudC5rZXkubGVuZ3RoID09PSAxO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNLZXlEb3duSW5zaWRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgLy8gbWVudXMgc2hvdWxkIG5vdCBiZSBuYXZpZ2F0ZWQgdXNpbmcgdGFiIGtleSBzbyB3ZSBwcmV2ZW50IGl0XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc01vZGlmaWVyS2V5ICYmIGlzQ2hhcmFjdGVyS2V5KSBoYW5kbGVUeXBlYWhlYWRTZWFyY2goZXZlbnQua2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBmb2N1cyBmaXJzdC9sYXN0IGl0ZW0gYmFzZWQgb24ga2V5IHByZXNzZWRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGNvbnRlbnRSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnRhcmdldCAhPT0gY29udGVudCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIUZJUlNUX0xBU1RfS0VZUy5pbmNsdWRlcyhldmVudC5rZXkpKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gZ2V0SXRlbXMoKS5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmRpc2FibGVkKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlTm9kZXMgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ucmVmLmN1cnJlbnQhKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKExBU1RfS0VZUy5pbmNsdWRlcyhldmVudC5rZXkpKSBjYW5kaWRhdGVOb2Rlcy5yZXZlcnNlKCk7XG4gICAgICAgICAgICAgICAgICAgIGZvY3VzRmlyc3QoY2FuZGlkYXRlTm9kZXMpO1xuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICBvbkJsdXI9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQmx1ciwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsZWFyIHNlYXJjaCBidWZmZXIgd2hlbiBsZWF2aW5nIHRoZSBtZW51XG4gICAgICAgICAgICAgICAgICAgIGlmICghZXZlbnQuY3VycmVudFRhcmdldC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lclJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hSZWYuY3VycmVudCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgIG9uUG9pbnRlck1vdmU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKFxuICAgICAgICAgICAgICAgICAgICBwcm9wcy5vblBvaW50ZXJNb3ZlLFxuICAgICAgICAgICAgICAgICAgICB3aGVuTW91c2UoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvaW50ZXJYSGFzQ2hhbmdlZCA9IGxhc3RQb2ludGVyWFJlZi5jdXJyZW50ICE9PSBldmVudC5jbGllbnRYO1xuXG4gICAgICAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgdXNlIGBldmVudC5tb3ZlbWVudFhgIGZvciB0aGlzIGNoZWNrIGJlY2F1c2UgU2FmYXJpIHdpbGxcbiAgICAgICAgICAgICAgICAgICAgICAvLyBhbHdheXMgcmV0dXJuIGAwYCBvbiBhIHBvaW50ZXIgZXZlbnQuXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmN1cnJlbnRUYXJnZXQuY29udGFpbnModGFyZ2V0KSAmJiBwb2ludGVyWEhhc0NoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0RpciA9IGV2ZW50LmNsaWVudFggPiBsYXN0UG9pbnRlclhSZWYuY3VycmVudCA/ICdyaWdodCcgOiAnbGVmdCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyRGlyUmVmLmN1cnJlbnQgPSBuZXdEaXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0UG9pbnRlclhSZWYuY3VycmVudCA9IGV2ZW50LmNsaWVudFg7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1JvdmluZ0ZvY3VzR3JvdXAuUm9vdD5cbiAgICAgICAgICAgIDwvRGlzbWlzc2FibGVMYXllcj5cbiAgICAgICAgICA8L0ZvY3VzU2NvcGU+XG4gICAgICAgIDwvU2Nyb2xsTG9ja1dyYXBwZXI+XG4gICAgICA8L01lbnVDb250ZW50UHJvdmlkZXI+XG4gICAgKTtcbiAgfVxuKTtcblxuTWVudUNvbnRlbnQuZGlzcGxheU5hbWUgPSBDT05URU5UX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIE1lbnVHcm91cFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBHUk9VUF9OQU1FID0gJ01lbnVHcm91cCc7XG5cbnR5cGUgTWVudUdyb3VwRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBQcmltaXRpdmVEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgTWVudUdyb3VwUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVEaXZQcm9wcyB7fVxuXG5jb25zdCBNZW51R3JvdXAgPSBSZWFjdC5mb3J3YXJkUmVmPE1lbnVHcm91cEVsZW1lbnQsIE1lbnVHcm91cFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51R3JvdXBQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZU1lbnUsIC4uLmdyb3VwUHJvcHMgfSA9IHByb3BzO1xuICAgIHJldHVybiA8UHJpbWl0aXZlLmRpdiByb2xlPVwiZ3JvdXBcIiB7Li4uZ3JvdXBQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5NZW51R3JvdXAuZGlzcGxheU5hbWUgPSBHUk9VUF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBNZW51TGFiZWxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgTEFCRUxfTkFNRSA9ICdNZW51TGFiZWwnO1xuXG50eXBlIE1lbnVMYWJlbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBNZW51TGFiZWxQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHt9XG5cbmNvbnN0IE1lbnVMYWJlbCA9IFJlYWN0LmZvcndhcmRSZWY8TWVudUxhYmVsRWxlbWVudCwgTWVudUxhYmVsUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPE1lbnVMYWJlbFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlTWVudSwgLi4ubGFiZWxQcm9wcyB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIDxQcmltaXRpdmUuZGl2IHsuLi5sYWJlbFByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG4gIH1cbik7XG5cbk1lbnVMYWJlbC5kaXNwbGF5TmFtZSA9IExBQkVMX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIE1lbnVJdGVtXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IElURU1fTkFNRSA9ICdNZW51SXRlbSc7XG5jb25zdCBJVEVNX1NFTEVDVCA9ICdtZW51Lml0ZW1TZWxlY3QnO1xuXG50eXBlIE1lbnVJdGVtRWxlbWVudCA9IE1lbnVJdGVtSW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgTWVudUl0ZW1Qcm9wcyBleHRlbmRzIE9taXQ8TWVudUl0ZW1JbXBsUHJvcHMsICdvblNlbGVjdCc+IHtcbiAgb25TZWxlY3Q/OiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xufVxuXG5jb25zdCBNZW51SXRlbSA9IFJlYWN0LmZvcndhcmRSZWY8TWVudUl0ZW1FbGVtZW50LCBNZW51SXRlbVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51SXRlbVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBkaXNhYmxlZCA9IGZhbHNlLCBvblNlbGVjdCwgLi4uaXRlbVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHJvb3RDb250ZXh0ID0gdXNlTWVudVJvb3RDb250ZXh0KElURU1fTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlTWVudUNvbnRlbnRDb250ZXh0KElURU1fTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG4gICAgY29uc3QgaXNQb2ludGVyRG93blJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgICBjb25zdCBoYW5kbGVTZWxlY3QgPSAoKSA9PiB7XG4gICAgICBjb25zdCBtZW51SXRlbSA9IHJlZi5jdXJyZW50O1xuICAgICAgaWYgKCFkaXNhYmxlZCAmJiBtZW51SXRlbSkge1xuICAgICAgICBjb25zdCBpdGVtU2VsZWN0RXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoSVRFTV9TRUxFQ1QsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgbWVudUl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihJVEVNX1NFTEVDVCwgKGV2ZW50KSA9PiBvblNlbGVjdD8uKGV2ZW50KSwgeyBvbmNlOiB0cnVlIH0pO1xuICAgICAgICBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQobWVudUl0ZW0sIGl0ZW1TZWxlY3RFdmVudCk7XG4gICAgICAgIGlmIChpdGVtU2VsZWN0RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgIGlzUG9pbnRlckRvd25SZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJvb3RDb250ZXh0Lm9uQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVJdGVtSW1wbFxuICAgICAgICB7Li4uaXRlbVByb3BzfVxuICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBvbkNsaWNrPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCBoYW5kbGVTZWxlY3QpfVxuICAgICAgICBvblBvaW50ZXJEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBwcm9wcy5vblBvaW50ZXJEb3duPy4oZXZlbnQpO1xuICAgICAgICAgIGlzUG9pbnRlckRvd25SZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIH19XG4gICAgICAgIG9uUG9pbnRlclVwPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJVcCwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgLy8gUG9pbnRlciBkb3duIGNhbiBtb3ZlIHRvIGEgZGlmZmVyZW50IG1lbnUgaXRlbSB3aGljaCBzaG91bGQgYWN0aXZhdGUgaXQgb24gcG9pbnRlciB1cC5cbiAgICAgICAgICAvLyBXZSBkaXNwYXRjaCBhIGNsaWNrIGZvciBzZWxlY3Rpb24gdG8gYWxsb3cgY29tcG9zaXRpb24gd2l0aCBjbGljayBiYXNlZCB0cmlnZ2VycyBhbmQgdG9cbiAgICAgICAgICAvLyBwcmV2ZW50IEZpcmVmb3ggZnJvbSBnZXR0aW5nIHN0dWNrIGluIHRleHQgc2VsZWN0aW9uIG1vZGUgd2hlbiB0aGUgbWVudSBjbG9zZXMuXG4gICAgICAgICAgaWYgKCFpc1BvaW50ZXJEb3duUmVmLmN1cnJlbnQpIGV2ZW50LmN1cnJlbnRUYXJnZXQ/LmNsaWNrKCk7XG4gICAgICAgIH0pfVxuICAgICAgICBvbktleURvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNUeXBpbmdBaGVhZCA9IGNvbnRlbnRDb250ZXh0LnNlYXJjaFJlZi5jdXJyZW50ICE9PSAnJztcbiAgICAgICAgICBpZiAoZGlzYWJsZWQgfHwgKGlzVHlwaW5nQWhlYWQgJiYgZXZlbnQua2V5ID09PSAnICcpKSByZXR1cm47XG4gICAgICAgICAgaWYgKFNFTEVDVElPTl9LRVlTLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuY2xpY2soKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2UgcHJldmVudCBkZWZhdWx0IGJyb3dzZXIgYmVoYXZpb3VyIGZvciBzZWxlY3Rpb24ga2V5cyBhcyB0aGV5IHNob3VsZCB0cmlnZ2VyXG4gICAgICAgICAgICAgKiBhIHNlbGVjdGlvbiBvbmx5OlxuICAgICAgICAgICAgICogLSBwcmV2ZW50cyBzcGFjZSBmcm9tIHNjcm9sbGluZyB0aGUgcGFnZS5cbiAgICAgICAgICAgICAqIC0gaWYga2V5ZG93biBjYXVzZXMgZm9jdXMgdG8gbW92ZSwgcHJldmVudHMga2V5ZG93biBmcm9tIGZpcmluZyBvbiB0aGUgbmV3IHRhcmdldC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5NZW51SXRlbS5kaXNwbGF5TmFtZSA9IElURU1fTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG50eXBlIE1lbnVJdGVtSW1wbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBNZW51SXRlbUltcGxQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICB0ZXh0VmFsdWU/OiBzdHJpbmc7XG59XG5cbmNvbnN0IE1lbnVJdGVtSW1wbCA9IFJlYWN0LmZvcndhcmRSZWY8TWVudUl0ZW1JbXBsRWxlbWVudCwgTWVudUl0ZW1JbXBsUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPE1lbnVJdGVtSW1wbFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlTWVudSwgZGlzYWJsZWQgPSBmYWxzZSwgdGV4dFZhbHVlLCAuLi5pdGVtUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlTWVudUNvbnRlbnRDb250ZXh0KElURU1fTkFNRSwgX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IHJvdmluZ0ZvY3VzR3JvdXBTY29wZSA9IHVzZVJvdmluZ0ZvY3VzR3JvdXBTY29wZShfX3Njb3BlTWVudSk7XG4gICAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuICAgIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG5cbiAgICAvLyBnZXQgdGhlIGl0ZW0ncyBgLnRleHRDb250ZW50YCBhcyBkZWZhdWx0IHN0cmF0ZWd5IGZvciB0eXBlYWhlYWQgYHRleHRWYWx1ZWBcbiAgICBjb25zdCBbdGV4dENvbnRlbnQsIHNldFRleHRDb250ZW50XSA9IFJlYWN0LnVzZVN0YXRlKCcnKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbWVudUl0ZW0gPSByZWYuY3VycmVudDtcbiAgICAgIGlmIChtZW51SXRlbSkge1xuICAgICAgICBzZXRUZXh0Q29udGVudCgobWVudUl0ZW0udGV4dENvbnRlbnQgPz8gJycpLnRyaW0oKSk7XG4gICAgICB9XG4gICAgfSwgW2l0ZW1Qcm9wcy5jaGlsZHJlbl0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxDb2xsZWN0aW9uLkl0ZW1TbG90XG4gICAgICAgIHNjb3BlPXtfX3Njb3BlTWVudX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICB0ZXh0VmFsdWU9e3RleHRWYWx1ZSA/PyB0ZXh0Q29udGVudH1cbiAgICAgID5cbiAgICAgICAgPFJvdmluZ0ZvY3VzR3JvdXAuSXRlbSBhc0NoaWxkIHsuLi5yb3ZpbmdGb2N1c0dyb3VwU2NvcGV9IGZvY3VzYWJsZT17IWRpc2FibGVkfT5cbiAgICAgICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICAgIGRhdGEtaGlnaGxpZ2h0ZWQ9e2lzRm9jdXNlZCA/ICcnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgYXJpYS1kaXNhYmxlZD17ZGlzYWJsZWQgfHwgdW5kZWZpbmVkfVxuICAgICAgICAgICAgZGF0YS1kaXNhYmxlZD17ZGlzYWJsZWQgPyAnJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIHsuLi5pdGVtUHJvcHN9XG4gICAgICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2UgZm9jdXMgaXRlbXMgb24gYHBvaW50ZXJNb3ZlYCB0byBhY2hpZXZlIHRoZSBmb2xsb3dpbmc6XG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogLSBNb3VzZSBvdmVyIGFuIGl0ZW0gKGl0IGZvY3VzZXMpXG4gICAgICAgICAgICAgKiAtIExlYXZlIG1vdXNlIHdoZXJlIGl0IGlzIGFuZCB1c2Uga2V5Ym9hcmQgdG8gZm9jdXMgYSBkaWZmZXJlbnQgaXRlbVxuICAgICAgICAgICAgICogLSBXaWdnbGUgbW91c2Ugd2l0aG91dCBpdCBsZWF2aW5nIHByZXZpb3VzbHkgZm9jdXNlZCBpdGVtXG4gICAgICAgICAgICAgKiAtIFByZXZpb3VzbHkgZm9jdXNlZCBpdGVtIHNob3VsZCByZS1mb2N1c1xuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIElmIHdlIHVzZWQgYG1vdXNlT3ZlcmAvYG1vdXNlRW50ZXJgIGl0IHdvdWxkIG5vdCByZS1mb2N1cyB3aGVuIHRoZSBtb3VzZVxuICAgICAgICAgICAgICogd2lnZ2xlcy4gVGhpcyBpcyB0byBtYXRjaCBuYXRpdmUgbWVudSBpbXBsZW1lbnRhdGlvbi5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgb25Qb2ludGVyTW92ZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMoXG4gICAgICAgICAgICAgIHByb3BzLm9uUG9pbnRlck1vdmUsXG4gICAgICAgICAgICAgIHdoZW5Nb3VzZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uSXRlbUxlYXZlKGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgY29udGVudENvbnRleHQub25JdGVtRW50ZXIoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBldmVudC5jdXJyZW50VGFyZ2V0O1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgb25Qb2ludGVyTGVhdmU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKFxuICAgICAgICAgICAgICBwcm9wcy5vblBvaW50ZXJMZWF2ZSxcbiAgICAgICAgICAgICAgd2hlbk1vdXNlKChldmVudCkgPT4gY29udGVudENvbnRleHQub25JdGVtTGVhdmUoZXZlbnQpKVxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIG9uRm9jdXM9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRm9jdXMsICgpID0+IHNldElzRm9jdXNlZCh0cnVlKSl9XG4gICAgICAgICAgICBvbkJsdXI9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQmx1ciwgKCkgPT4gc2V0SXNGb2N1c2VkKGZhbHNlKSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Sb3ZpbmdGb2N1c0dyb3VwLkl0ZW0+XG4gICAgICA8L0NvbGxlY3Rpb24uSXRlbVNsb3Q+XG4gICAgKTtcbiAgfVxuKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogTWVudUNoZWNrYm94SXRlbVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDSEVDS0JPWF9JVEVNX05BTUUgPSAnTWVudUNoZWNrYm94SXRlbSc7XG5cbnR5cGUgTWVudUNoZWNrYm94SXRlbUVsZW1lbnQgPSBNZW51SXRlbUVsZW1lbnQ7XG5cbnR5cGUgQ2hlY2tlZFN0YXRlID0gYm9vbGVhbiB8ICdpbmRldGVybWluYXRlJztcblxuaW50ZXJmYWNlIE1lbnVDaGVja2JveEl0ZW1Qcm9wcyBleHRlbmRzIE1lbnVJdGVtUHJvcHMge1xuICBjaGVja2VkPzogQ2hlY2tlZFN0YXRlO1xuICAvLyBgb25DaGVja2VkQ2hhbmdlYCBjYW4gbmV2ZXIgYmUgY2FsbGVkIHdpdGggYFwiaW5kZXRlcm1pbmF0ZVwiYCBmcm9tIHRoZSBpbnNpZGVcbiAgb25DaGVja2VkQ2hhbmdlPzogKGNoZWNrZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG59XG5cbmNvbnN0IE1lbnVDaGVja2JveEl0ZW0gPSBSZWFjdC5mb3J3YXJkUmVmPE1lbnVDaGVja2JveEl0ZW1FbGVtZW50LCBNZW51Q2hlY2tib3hJdGVtUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPE1lbnVDaGVja2JveEl0ZW1Qcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgY2hlY2tlZCA9IGZhbHNlLCBvbkNoZWNrZWRDaGFuZ2UsIC4uLmNoZWNrYm94SXRlbVByb3BzIH0gPSBwcm9wcztcbiAgICByZXR1cm4gKFxuICAgICAgPEl0ZW1JbmRpY2F0b3JQcm92aWRlciBzY29wZT17cHJvcHMuX19zY29wZU1lbnV9IGNoZWNrZWQ9e2NoZWNrZWR9PlxuICAgICAgICA8TWVudUl0ZW1cbiAgICAgICAgICByb2xlPVwibWVudWl0ZW1jaGVja2JveFwiXG4gICAgICAgICAgYXJpYS1jaGVja2VkPXtpc0luZGV0ZXJtaW5hdGUoY2hlY2tlZCkgPyAnbWl4ZWQnIDogY2hlY2tlZH1cbiAgICAgICAgICB7Li4uY2hlY2tib3hJdGVtUHJvcHN9XG4gICAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgICAgZGF0YS1zdGF0ZT17Z2V0Q2hlY2tlZFN0YXRlKGNoZWNrZWQpfVxuICAgICAgICAgIG9uU2VsZWN0PXtjb21wb3NlRXZlbnRIYW5kbGVycyhcbiAgICAgICAgICAgIGNoZWNrYm94SXRlbVByb3BzLm9uU2VsZWN0LFxuICAgICAgICAgICAgKCkgPT4gb25DaGVja2VkQ2hhbmdlPy4oaXNJbmRldGVybWluYXRlKGNoZWNrZWQpID8gdHJ1ZSA6ICFjaGVja2VkKSxcbiAgICAgICAgICAgIHsgY2hlY2tGb3JEZWZhdWx0UHJldmVudGVkOiBmYWxzZSB9XG4gICAgICAgICAgKX1cbiAgICAgICAgLz5cbiAgICAgIDwvSXRlbUluZGljYXRvclByb3ZpZGVyPlxuICAgICk7XG4gIH1cbik7XG5cbk1lbnVDaGVja2JveEl0ZW0uZGlzcGxheU5hbWUgPSBDSEVDS0JPWF9JVEVNX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIE1lbnVSYWRpb0dyb3VwXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFJBRElPX0dST1VQX05BTUUgPSAnTWVudVJhZGlvR3JvdXAnO1xuXG5jb25zdCBbUmFkaW9Hcm91cFByb3ZpZGVyLCB1c2VSYWRpb0dyb3VwQ29udGV4dF0gPSBjcmVhdGVNZW51Q29udGV4dDxNZW51UmFkaW9Hcm91cFByb3BzPihcbiAgUkFESU9fR1JPVVBfTkFNRSxcbiAgeyB2YWx1ZTogdW5kZWZpbmVkLCBvblZhbHVlQ2hhbmdlOiAoKSA9PiB7fSB9XG4pO1xuXG50eXBlIE1lbnVSYWRpb0dyb3VwRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIE1lbnVHcm91cD47XG5pbnRlcmZhY2UgTWVudVJhZGlvR3JvdXBQcm9wcyBleHRlbmRzIE1lbnVHcm91cFByb3BzIHtcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIG9uVmFsdWVDaGFuZ2U/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuY29uc3QgTWVudVJhZGlvR3JvdXAgPSBSZWFjdC5mb3J3YXJkUmVmPE1lbnVSYWRpb0dyb3VwRWxlbWVudCwgTWVudVJhZGlvR3JvdXBQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8TWVudVJhZGlvR3JvdXBQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWUsIG9uVmFsdWVDaGFuZ2UsIC4uLmdyb3VwUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGhhbmRsZVZhbHVlQ2hhbmdlID0gdXNlQ2FsbGJhY2tSZWYob25WYWx1ZUNoYW5nZSk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxSYWRpb0dyb3VwUHJvdmlkZXIgc2NvcGU9e3Byb3BzLl9fc2NvcGVNZW51fSB2YWx1ZT17dmFsdWV9IG9uVmFsdWVDaGFuZ2U9e2hhbmRsZVZhbHVlQ2hhbmdlfT5cbiAgICAgICAgPE1lbnVHcm91cCB7Li4uZ3JvdXBQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+XG4gICAgICA8L1JhZGlvR3JvdXBQcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG5NZW51UmFkaW9Hcm91cC5kaXNwbGF5TmFtZSA9IFJBRElPX0dST1VQX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIE1lbnVSYWRpb0l0ZW1cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgUkFESU9fSVRFTV9OQU1FID0gJ01lbnVSYWRpb0l0ZW0nO1xuXG50eXBlIE1lbnVSYWRpb0l0ZW1FbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgTWVudUl0ZW0+O1xuaW50ZXJmYWNlIE1lbnVSYWRpb0l0ZW1Qcm9wcyBleHRlbmRzIE1lbnVJdGVtUHJvcHMge1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5jb25zdCBNZW51UmFkaW9JdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxNZW51UmFkaW9JdGVtRWxlbWVudCwgTWVudVJhZGlvSXRlbVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51UmFkaW9JdGVtUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCAuLi5yYWRpb0l0ZW1Qcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVJhZGlvR3JvdXBDb250ZXh0KFJBRElPX0lURU1fTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IGNoZWNrZWQgPSB2YWx1ZSA9PT0gY29udGV4dC52YWx1ZTtcbiAgICByZXR1cm4gKFxuICAgICAgPEl0ZW1JbmRpY2F0b3JQcm92aWRlciBzY29wZT17cHJvcHMuX19zY29wZU1lbnV9IGNoZWNrZWQ9e2NoZWNrZWR9PlxuICAgICAgICA8TWVudUl0ZW1cbiAgICAgICAgICByb2xlPVwibWVudWl0ZW1yYWRpb1wiXG4gICAgICAgICAgYXJpYS1jaGVja2VkPXtjaGVja2VkfVxuICAgICAgICAgIHsuLi5yYWRpb0l0ZW1Qcm9wc31cbiAgICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRDaGVja2VkU3RhdGUoY2hlY2tlZCl9XG4gICAgICAgICAgb25TZWxlY3Q9e2NvbXBvc2VFdmVudEhhbmRsZXJzKFxuICAgICAgICAgICAgcmFkaW9JdGVtUHJvcHMub25TZWxlY3QsXG4gICAgICAgICAgICAoKSA9PiBjb250ZXh0Lm9uVmFsdWVDaGFuZ2U/Lih2YWx1ZSksXG4gICAgICAgICAgICB7IGNoZWNrRm9yRGVmYXVsdFByZXZlbnRlZDogZmFsc2UgfVxuICAgICAgICAgICl9XG4gICAgICAgIC8+XG4gICAgICA8L0l0ZW1JbmRpY2F0b3JQcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG5NZW51UmFkaW9JdGVtLmRpc3BsYXlOYW1lID0gUkFESU9fSVRFTV9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBNZW51SXRlbUluZGljYXRvclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBJVEVNX0lORElDQVRPUl9OQU1FID0gJ01lbnVJdGVtSW5kaWNhdG9yJztcblxudHlwZSBDaGVja2JveENvbnRleHRWYWx1ZSA9IHsgY2hlY2tlZDogQ2hlY2tlZFN0YXRlIH07XG5cbmNvbnN0IFtJdGVtSW5kaWNhdG9yUHJvdmlkZXIsIHVzZUl0ZW1JbmRpY2F0b3JDb250ZXh0XSA9IGNyZWF0ZU1lbnVDb250ZXh0PENoZWNrYm94Q29udGV4dFZhbHVlPihcbiAgSVRFTV9JTkRJQ0FUT1JfTkFNRSxcbiAgeyBjaGVja2VkOiBmYWxzZSB9XG4pO1xuXG50eXBlIE1lbnVJdGVtSW5kaWNhdG9yRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5zcGFuPjtcbnR5cGUgUHJpbWl0aXZlU3BhblByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuc3Bhbj47XG5pbnRlcmZhY2UgTWVudUl0ZW1JbmRpY2F0b3JQcm9wcyBleHRlbmRzIFByaW1pdGl2ZVNwYW5Qcm9wcyB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBNZW51SXRlbUluZGljYXRvciA9IFJlYWN0LmZvcndhcmRSZWY8TWVudUl0ZW1JbmRpY2F0b3JFbGVtZW50LCBNZW51SXRlbUluZGljYXRvclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51SXRlbUluZGljYXRvclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlTWVudSwgZm9yY2VNb3VudCwgLi4uaXRlbUluZGljYXRvclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBpbmRpY2F0b3JDb250ZXh0ID0gdXNlSXRlbUluZGljYXRvckNvbnRleHQoSVRFTV9JTkRJQ0FUT1JfTkFNRSwgX19zY29wZU1lbnUpO1xuICAgIHJldHVybiAoXG4gICAgICA8UHJlc2VuY2VcbiAgICAgICAgcHJlc2VudD17XG4gICAgICAgICAgZm9yY2VNb3VudCB8fFxuICAgICAgICAgIGlzSW5kZXRlcm1pbmF0ZShpbmRpY2F0b3JDb250ZXh0LmNoZWNrZWQpIHx8XG4gICAgICAgICAgaW5kaWNhdG9yQ29udGV4dC5jaGVja2VkID09PSB0cnVlXG4gICAgICAgIH1cbiAgICAgID5cbiAgICAgICAgPFByaW1pdGl2ZS5zcGFuXG4gICAgICAgICAgey4uLml0ZW1JbmRpY2F0b3JQcm9wc31cbiAgICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRDaGVja2VkU3RhdGUoaW5kaWNhdG9yQ29udGV4dC5jaGVja2VkKX1cbiAgICAgICAgLz5cbiAgICAgIDwvUHJlc2VuY2U+XG4gICAgKTtcbiAgfVxuKTtcblxuTWVudUl0ZW1JbmRpY2F0b3IuZGlzcGxheU5hbWUgPSBJVEVNX0lORElDQVRPUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBNZW51U2VwYXJhdG9yXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFNFUEFSQVRPUl9OQU1FID0gJ01lbnVTZXBhcmF0b3InO1xuXG50eXBlIE1lbnVTZXBhcmF0b3JFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgTWVudVNlcGFyYXRvclByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge31cblxuY29uc3QgTWVudVNlcGFyYXRvciA9IFJlYWN0LmZvcndhcmRSZWY8TWVudVNlcGFyYXRvckVsZW1lbnQsIE1lbnVTZXBhcmF0b3JQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8TWVudVNlcGFyYXRvclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlTWVudSwgLi4uc2VwYXJhdG9yUHJvcHMgfSA9IHByb3BzO1xuICAgIHJldHVybiAoXG4gICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICByb2xlPVwic2VwYXJhdG9yXCJcbiAgICAgICAgYXJpYS1vcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxuICAgICAgICB7Li4uc2VwYXJhdG9yUHJvcHN9XG4gICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG5NZW51U2VwYXJhdG9yLmRpc3BsYXlOYW1lID0gU0VQQVJBVE9SX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIE1lbnVBcnJvd1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBBUlJPV19OQU1FID0gJ01lbnVBcnJvdyc7XG5cbnR5cGUgTWVudUFycm93RWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFBvcHBlclByaW1pdGl2ZS5BcnJvdz47XG50eXBlIFBvcHBlckFycm93UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFBvcHBlclByaW1pdGl2ZS5BcnJvdz47XG5pbnRlcmZhY2UgTWVudUFycm93UHJvcHMgZXh0ZW5kcyBQb3BwZXJBcnJvd1Byb3BzIHt9XG5cbmNvbnN0IE1lbnVBcnJvdyA9IFJlYWN0LmZvcndhcmRSZWY8TWVudUFycm93RWxlbWVudCwgTWVudUFycm93UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPE1lbnVBcnJvd1Byb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlTWVudSwgLi4uYXJyb3dQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlTWVudSk7XG4gICAgcmV0dXJuIDxQb3BwZXJQcmltaXRpdmUuQXJyb3cgey4uLnBvcHBlclNjb3BlfSB7Li4uYXJyb3dQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5NZW51QXJyb3cuZGlzcGxheU5hbWUgPSBBUlJPV19OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBNZW51U3ViXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFNVQl9OQU1FID0gJ01lbnVTdWInO1xuXG50eXBlIE1lbnVTdWJDb250ZXh0VmFsdWUgPSB7XG4gIGNvbnRlbnRJZDogc3RyaW5nO1xuICB0cmlnZ2VySWQ6IHN0cmluZztcbiAgdHJpZ2dlcjogTWVudVN1YlRyaWdnZXJFbGVtZW50IHwgbnVsbDtcbiAgb25UcmlnZ2VyQ2hhbmdlKHRyaWdnZXI6IE1lbnVTdWJUcmlnZ2VyRWxlbWVudCB8IG51bGwpOiB2b2lkO1xufTtcblxuY29uc3QgW01lbnVTdWJQcm92aWRlciwgdXNlTWVudVN1YkNvbnRleHRdID0gY3JlYXRlTWVudUNvbnRleHQ8TWVudVN1YkNvbnRleHRWYWx1ZT4oU1VCX05BTUUpO1xuXG5pbnRlcmZhY2UgTWVudVN1YlByb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIG9wZW4/OiBib29sZWFuO1xuICBvbk9wZW5DaGFuZ2U/KG9wZW46IGJvb2xlYW4pOiB2b2lkO1xufVxuXG5jb25zdCBNZW51U3ViOiBSZWFjdC5GQzxNZW51U3ViUHJvcHM+ID0gKHByb3BzOiBTY29wZWRQcm9wczxNZW51U3ViUHJvcHM+KSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZU1lbnUsIGNoaWxkcmVuLCBvcGVuID0gZmFsc2UsIG9uT3BlbkNoYW5nZSB9ID0gcHJvcHM7XG4gIGNvbnN0IHBhcmVudE1lbnVDb250ZXh0ID0gdXNlTWVudUNvbnRleHQoU1VCX05BTUUsIF9fc2NvcGVNZW51KTtcbiAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlTWVudSk7XG4gIGNvbnN0IFt0cmlnZ2VyLCBzZXRUcmlnZ2VyXSA9IFJlYWN0LnVzZVN0YXRlPE1lbnVTdWJUcmlnZ2VyRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbY29udGVudCwgc2V0Q29udGVudF0gPSBSZWFjdC51c2VTdGF0ZTxNZW51Q29udGVudEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgaGFuZGxlT3BlbkNoYW5nZSA9IHVzZUNhbGxiYWNrUmVmKG9uT3BlbkNoYW5nZSk7XG5cbiAgLy8gUHJldmVudCB0aGUgcGFyZW50IG1lbnUgZnJvbSByZW9wZW5pbmcgd2l0aCBvcGVuIHN1Ym1lbnVzLlxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwYXJlbnRNZW51Q29udGV4dC5vcGVuID09PSBmYWxzZSkgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgcmV0dXJuICgpID0+IGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICB9LCBbcGFyZW50TWVudUNvbnRleHQub3BlbiwgaGFuZGxlT3BlbkNoYW5nZV0pO1xuXG4gIHJldHVybiAoXG4gICAgPFBvcHBlclByaW1pdGl2ZS5Sb290IHsuLi5wb3BwZXJTY29wZX0+XG4gICAgICA8TWVudVByb3ZpZGVyXG4gICAgICAgIHNjb3BlPXtfX3Njb3BlTWVudX1cbiAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgb25PcGVuQ2hhbmdlPXtoYW5kbGVPcGVuQ2hhbmdlfVxuICAgICAgICBjb250ZW50PXtjb250ZW50fVxuICAgICAgICBvbkNvbnRlbnRDaGFuZ2U9e3NldENvbnRlbnR9XG4gICAgICA+XG4gICAgICAgIDxNZW51U3ViUHJvdmlkZXJcbiAgICAgICAgICBzY29wZT17X19zY29wZU1lbnV9XG4gICAgICAgICAgY29udGVudElkPXt1c2VJZCgpfVxuICAgICAgICAgIHRyaWdnZXJJZD17dXNlSWQoKX1cbiAgICAgICAgICB0cmlnZ2VyPXt0cmlnZ2VyfVxuICAgICAgICAgIG9uVHJpZ2dlckNoYW5nZT17c2V0VHJpZ2dlcn1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9NZW51U3ViUHJvdmlkZXI+XG4gICAgICA8L01lbnVQcm92aWRlcj5cbiAgICA8L1BvcHBlclByaW1pdGl2ZS5Sb290PlxuICApO1xufTtcblxuTWVudVN1Yi5kaXNwbGF5TmFtZSA9IFNVQl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBNZW51U3ViVHJpZ2dlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBTVUJfVFJJR0dFUl9OQU1FID0gJ01lbnVTdWJUcmlnZ2VyJztcblxudHlwZSBNZW51U3ViVHJpZ2dlckVsZW1lbnQgPSBNZW51SXRlbUltcGxFbGVtZW50O1xuaW50ZXJmYWNlIE1lbnVTdWJUcmlnZ2VyUHJvcHMgZXh0ZW5kcyBNZW51SXRlbUltcGxQcm9wcyB7fVxuXG5jb25zdCBNZW51U3ViVHJpZ2dlciA9IFJlYWN0LmZvcndhcmRSZWY8TWVudVN1YlRyaWdnZXJFbGVtZW50LCBNZW51U3ViVHJpZ2dlclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51U3ViVHJpZ2dlclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZU1lbnVDb250ZXh0KFNVQl9UUklHR0VSX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCByb290Q29udGV4dCA9IHVzZU1lbnVSb290Q29udGV4dChTVUJfVFJJR0dFUl9OQU1FLCBwcm9wcy5fX3Njb3BlTWVudSk7XG4gICAgY29uc3Qgc3ViQ29udGV4dCA9IHVzZU1lbnVTdWJDb250ZXh0KFNVQl9UUklHR0VSX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCBjb250ZW50Q29udGV4dCA9IHVzZU1lbnVDb250ZW50Q29udGV4dChTVUJfVFJJR0dFUl9OQU1FLCBwcm9wcy5fX3Njb3BlTWVudSk7XG4gICAgY29uc3Qgb3BlblRpbWVyUmVmID0gUmVhY3QudXNlUmVmPG51bWJlciB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IHsgcG9pbnRlckdyYWNlVGltZXJSZWYsIG9uUG9pbnRlckdyYWNlSW50ZW50Q2hhbmdlIH0gPSBjb250ZW50Q29udGV4dDtcbiAgICBjb25zdCBzY29wZSA9IHsgX19zY29wZU1lbnU6IHByb3BzLl9fc2NvcGVNZW51IH07XG5cbiAgICBjb25zdCBjbGVhck9wZW5UaW1lciA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChvcGVuVGltZXJSZWYuY3VycmVudCkgd2luZG93LmNsZWFyVGltZW91dChvcGVuVGltZXJSZWYuY3VycmVudCk7XG4gICAgICBvcGVuVGltZXJSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IGNsZWFyT3BlblRpbWVyLCBbY2xlYXJPcGVuVGltZXJdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBwb2ludGVyR3JhY2VUaW1lciA9IHBvaW50ZXJHcmFjZVRpbWVyUmVmLmN1cnJlbnQ7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHBvaW50ZXJHcmFjZVRpbWVyKTtcbiAgICAgICAgb25Qb2ludGVyR3JhY2VJbnRlbnRDaGFuZ2UobnVsbCk7XG4gICAgICB9O1xuICAgIH0sIFtwb2ludGVyR3JhY2VUaW1lclJlZiwgb25Qb2ludGVyR3JhY2VJbnRlbnRDaGFuZ2VdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8TWVudUFuY2hvciBhc0NoaWxkIHsuLi5zY29wZX0+XG4gICAgICAgIDxNZW51SXRlbUltcGxcbiAgICAgICAgICBpZD17c3ViQ29udGV4dC50cmlnZ2VySWR9XG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1lbnVcIlxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2NvbnRleHQub3Blbn1cbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtzdWJDb250ZXh0LmNvbnRlbnRJZH1cbiAgICAgICAgICBkYXRhLXN0YXRlPXtnZXRPcGVuU3RhdGUoY29udGV4dC5vcGVuKX1cbiAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgcmVmPXtjb21wb3NlUmVmcyhmb3J3YXJkZWRSZWYsIHN1YkNvbnRleHQub25UcmlnZ2VyQ2hhbmdlKX1cbiAgICAgICAgICAvLyBUaGlzIGlzIHJlZHVuZGFudCBmb3IgbW91c2UgdXNlcnMgYnV0IHdlIGNhbm5vdCBkZXRlcm1pbmUgcG9pbnRlciB0eXBlIGZyb21cbiAgICAgICAgICAvLyBjbGljayBldmVudCBhbmQgd2UgY2Fubm90IHVzZSBwb2ludGVydXAgZXZlbnQgKHNlZSBnaXQgaGlzdG9yeSBmb3IgcmVhc29ucyB3aHkpXG4gICAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBwcm9wcy5vbkNsaWNrPy4oZXZlbnQpO1xuICAgICAgICAgICAgaWYgKHByb3BzLmRpc2FibGVkIHx8IGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2UgbWFudWFsbHkgZm9jdXMgYmVjYXVzZSBpT1MgU2FmYXJpIGRvZXNuJ3QgYWx3YXlzIGZvY3VzIG9uIGNsaWNrIChlLmcuIGJ1dHRvbnMpXG4gICAgICAgICAgICAgKiBhbmQgd2UgcmVseSBoZWF2aWx5IG9uIGBvbkZvY3VzT3V0c2lkZWAgZm9yIHN1Ym1lbnVzIHRvIGNsb3NlIHdoZW4gc3dpdGNoaW5nXG4gICAgICAgICAgICAgKiBiZXR3ZWVuIHNlcGFyYXRlIHN1Ym1lbnVzLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBldmVudC5jdXJyZW50VGFyZ2V0LmZvY3VzKCk7XG4gICAgICAgICAgICBpZiAoIWNvbnRleHQub3BlbikgY29udGV4dC5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvblBvaW50ZXJNb3ZlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhcbiAgICAgICAgICAgIHByb3BzLm9uUG9pbnRlck1vdmUsXG4gICAgICAgICAgICB3aGVuTW91c2UoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uSXRlbUVudGVyKGV2ZW50KTtcbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcbiAgICAgICAgICAgICAgaWYgKCFwcm9wcy5kaXNhYmxlZCAmJiAhY29udGV4dC5vcGVuICYmICFvcGVuVGltZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uUG9pbnRlckdyYWNlSW50ZW50Q2hhbmdlKG51bGwpO1xuICAgICAgICAgICAgICAgIG9wZW5UaW1lclJlZi5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29udGV4dC5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICBjbGVhck9wZW5UaW1lcigpO1xuICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKX1cbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMoXG4gICAgICAgICAgICBwcm9wcy5vblBvaW50ZXJMZWF2ZSxcbiAgICAgICAgICAgIHdoZW5Nb3VzZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgY2xlYXJPcGVuVGltZXIoKTtcblxuICAgICAgICAgICAgICBjb25zdCBjb250ZW50UmVjdCA9IGNvbnRleHQuY29udGVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgIGlmIChjb250ZW50UmVjdCkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IG1ha2Ugc3VyZSB0byB1cGRhdGUgdGhpcyB3aGVuIHdlIGNoYW5nZSBwb3NpdGlvbmluZyBsb2dpY1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpZGUgPSBjb250ZXh0LmNvbnRlbnQ/LmRhdGFzZXQuc2lkZSBhcyBTaWRlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0U2lkZSA9IHNpZGUgPT09ICdyaWdodCc7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxlZWQgPSByaWdodFNpZGUgPyAtNSA6ICs1O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnROZWFyRWRnZSA9IGNvbnRlbnRSZWN0W3JpZ2h0U2lkZSA/ICdsZWZ0JyA6ICdyaWdodCddO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRGYXJFZGdlID0gY29udGVudFJlY3RbcmlnaHRTaWRlID8gJ3JpZ2h0JyA6ICdsZWZ0J107XG5cbiAgICAgICAgICAgICAgICBjb250ZW50Q29udGV4dC5vblBvaW50ZXJHcmFjZUludGVudENoYW5nZSh7XG4gICAgICAgICAgICAgICAgICBhcmVhOiBbXG4gICAgICAgICAgICAgICAgICAgIC8vIEFwcGx5IGEgYmxlZWQgb24gY2xpZW50WCB0byBlbnN1cmUgdGhhdCBvdXIgZXhpdCBwb2ludCBpc1xuICAgICAgICAgICAgICAgICAgICAvLyBjb25zaXN0ZW50bHkgd2l0aGluIHBvbHlnb24gYm91bmRzXG4gICAgICAgICAgICAgICAgICAgIHsgeDogZXZlbnQuY2xpZW50WCArIGJsZWVkLCB5OiBldmVudC5jbGllbnRZIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgeDogY29udGVudE5lYXJFZGdlLCB5OiBjb250ZW50UmVjdC50b3AgfSxcbiAgICAgICAgICAgICAgICAgICAgeyB4OiBjb250ZW50RmFyRWRnZSwgeTogY29udGVudFJlY3QudG9wIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgeDogY29udGVudEZhckVkZ2UsIHk6IGNvbnRlbnRSZWN0LmJvdHRvbSB9LFxuICAgICAgICAgICAgICAgICAgICB7IHg6IGNvbnRlbnROZWFyRWRnZSwgeTogY29udGVudFJlY3QuYm90dG9tIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgc2lkZSxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQocG9pbnRlckdyYWNlVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgcG9pbnRlckdyYWNlVGltZXJSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KFxuICAgICAgICAgICAgICAgICAgKCkgPT4gY29udGVudENvbnRleHQub25Qb2ludGVyR3JhY2VJbnRlbnRDaGFuZ2UobnVsbCksXG4gICAgICAgICAgICAgICAgICAzMDBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uVHJpZ2dlckxlYXZlKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgLy8gVGhlcmUncyAxMDBtcyB3aGVyZSB0aGUgdXNlciBtYXkgbGVhdmUgYW4gaXRlbSBiZWZvcmUgdGhlIHN1Ym1lbnUgd2FzIG9wZW5lZC5cbiAgICAgICAgICAgICAgICBjb250ZW50Q29udGV4dC5vblBvaW50ZXJHcmFjZUludGVudENoYW5nZShudWxsKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApfVxuICAgICAgICAgIG9uS2V5RG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25LZXlEb3duLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzVHlwaW5nQWhlYWQgPSBjb250ZW50Q29udGV4dC5zZWFyY2hSZWYuY3VycmVudCAhPT0gJyc7XG4gICAgICAgICAgICBpZiAocHJvcHMuZGlzYWJsZWQgfHwgKGlzVHlwaW5nQWhlYWQgJiYgZXZlbnQua2V5ID09PSAnICcpKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoU1VCX09QRU5fS0VZU1tyb290Q29udGV4dC5kaXJdLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5vbk9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgICAgICAgIC8vIFRoZSB0cmlnZ2VyIG1heSBob2xkIGZvY3VzIGlmIG9wZW5lZCB2aWEgcG9pbnRlciBpbnRlcmFjdGlvblxuICAgICAgICAgICAgICAvLyBzbyB3ZSBlbnN1cmUgY29udGVudCBpcyBnaXZlbiBmb2N1cyBhZ2FpbiB3aGVuIHN3aXRjaGluZyB0byBrZXlib2FyZC5cbiAgICAgICAgICAgICAgY29udGV4dC5jb250ZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgICAvLyBwcmV2ZW50IHdpbmRvdyBmcm9tIHNjcm9sbGluZ1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pfVxuICAgICAgICAvPlxuICAgICAgPC9NZW51QW5jaG9yPlxuICAgICk7XG4gIH1cbik7XG5cbk1lbnVTdWJUcmlnZ2VyLmRpc3BsYXlOYW1lID0gU1VCX1RSSUdHRVJfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogTWVudVN1YkNvbnRlbnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgU1VCX0NPTlRFTlRfTkFNRSA9ICdNZW51U3ViQ29udGVudCc7XG5cbnR5cGUgTWVudVN1YkNvbnRlbnRFbGVtZW50ID0gTWVudUNvbnRlbnRJbXBsRWxlbWVudDtcbmludGVyZmFjZSBNZW51U3ViQ29udGVudFByb3BzXG4gIGV4dGVuZHMgT21pdDxcbiAgICBNZW51Q29udGVudEltcGxQcm9wcyxcbiAgICBrZXlvZiBNZW51Q29udGVudEltcGxQcml2YXRlUHJvcHMgfCAnb25DbG9zZUF1dG9Gb2N1cycgfCAnb25FbnRyeUZvY3VzJyB8ICdzaWRlJyB8ICdhbGlnbidcbiAgPiB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBNZW51U3ViQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8TWVudVN1YkNvbnRlbnRFbGVtZW50LCBNZW51U3ViQ29udGVudFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxNZW51U3ViQ29udGVudFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgcG9ydGFsQ29udGV4dCA9IHVzZVBvcnRhbENvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlTWVudSk7XG4gICAgY29uc3QgeyBmb3JjZU1vdW50ID0gcG9ydGFsQ29udGV4dC5mb3JjZU1vdW50LCAuLi5zdWJDb250ZW50UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VNZW51Q29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCByb290Q29udGV4dCA9IHVzZU1lbnVSb290Q29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVNZW51KTtcbiAgICBjb25zdCBzdWJDb250ZXh0ID0gdXNlTWVudVN1YkNvbnRleHQoU1VCX0NPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZU1lbnUpO1xuICAgIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZjxNZW51U3ViQ29udGVudEVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG4gICAgcmV0dXJuIChcbiAgICAgIDxDb2xsZWN0aW9uLlByb3ZpZGVyIHNjb3BlPXtwcm9wcy5fX3Njb3BlTWVudX0+XG4gICAgICAgIDxQcmVzZW5jZSBwcmVzZW50PXtmb3JjZU1vdW50IHx8IGNvbnRleHQub3Blbn0+XG4gICAgICAgICAgPENvbGxlY3Rpb24uU2xvdCBzY29wZT17cHJvcHMuX19zY29wZU1lbnV9PlxuICAgICAgICAgICAgPE1lbnVDb250ZW50SW1wbFxuICAgICAgICAgICAgICBpZD17c3ViQ29udGV4dC5jb250ZW50SWR9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT17c3ViQ29udGV4dC50cmlnZ2VySWR9XG4gICAgICAgICAgICAgIHsuLi5zdWJDb250ZW50UHJvcHN9XG4gICAgICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgICAgICBhbGlnbj1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgc2lkZT17cm9vdENvbnRleHQuZGlyID09PSAncnRsJyA/ICdsZWZ0JyA6ICdyaWdodCd9XG4gICAgICAgICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cz17ZmFsc2V9XG4gICAgICAgICAgICAgIGRpc2FibGVPdXRzaWRlU2Nyb2xsPXtmYWxzZX1cbiAgICAgICAgICAgICAgdHJhcEZvY3VzPXtmYWxzZX1cbiAgICAgICAgICAgICAgb25PcGVuQXV0b0ZvY3VzPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIG9wZW5pbmcgYSBzdWJtZW51LCBmb2N1cyBjb250ZW50IGZvciBrZXlib2FyZCB1c2VycyBvbmx5XG4gICAgICAgICAgICAgICAgaWYgKHJvb3RDb250ZXh0LmlzVXNpbmdLZXlib2FyZFJlZi5jdXJyZW50KSByZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvLyBUaGUgbWVudSBtaWdodCBjbG9zZSBiZWNhdXNlIG9mIGZvY3VzaW5nIGFub3RoZXIgbWVudSBpdGVtIGluIHRoZSBwYXJlbnQgbWVudS4gV2VcbiAgICAgICAgICAgICAgLy8gZG9uJ3Qgd2FudCBpdCB0byByZWZvY3VzIHRoZSB0cmlnZ2VyIGluIHRoYXQgY2FzZSBzbyB3ZSBoYW5kbGUgdHJpZ2dlciBmb2N1cyBvdXJzZWx2ZXMuXG4gICAgICAgICAgICAgIG9uQ2xvc2VBdXRvRm9jdXM9eyhldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKX1cbiAgICAgICAgICAgICAgb25Gb2N1c091dHNpZGU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRm9jdXNPdXRzaWRlLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBXZSBwcmV2ZW50IGNsb3Npbmcgd2hlbiB0aGUgdHJpZ2dlciBpcyBmb2N1c2VkIHRvIGF2b2lkIHRyaWdnZXJpbmcgYSByZS1vcGVuIGFuaW1hdGlvblxuICAgICAgICAgICAgICAgIC8vIG9uIHBvaW50ZXIgaW50ZXJhY3Rpb24uXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LnRhcmdldCAhPT0gc3ViQ29udGV4dC50cmlnZ2VyKSBjb250ZXh0Lm9uT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICBvbkVzY2FwZUtleURvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRXNjYXBlS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgcm9vdENvbnRleHQub25DbG9zZSgpO1xuICAgICAgICAgICAgICAgIC8vIGVuc3VyZSBwcmVzc2luZyBlc2NhcGUgaW4gc3VibWVudSBkb2Vzbid0IGVzY2FwZSBmdWxsIHNjcmVlbiBtb2RlXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIG9uS2V5RG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25LZXlEb3duLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBTdWJtZW51IGtleSBldmVudHMgYnViYmxlIHRocm91Z2ggcG9ydGFscy4gV2Ugb25seSBjYXJlIGFib3V0IGtleXMgaW4gdGhpcyBtZW51LlxuICAgICAgICAgICAgICAgIGNvbnN0IGlzS2V5RG93bkluc2lkZSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0Nsb3NlS2V5ID0gU1VCX0NMT1NFX0tFWVNbcm9vdENvbnRleHQuZGlyXS5pbmNsdWRlcyhldmVudC5rZXkpO1xuICAgICAgICAgICAgICAgIGlmIChpc0tleURvd25JbnNpZGUgJiYgaXNDbG9zZUtleSkge1xuICAgICAgICAgICAgICAgICAgY29udGV4dC5vbk9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgLy8gV2UgZm9jdXMgbWFudWFsbHkgYmVjYXVzZSB3ZSBwcmV2ZW50ZWQgaXQgaW4gYG9uQ2xvc2VBdXRvRm9jdXNgXG4gICAgICAgICAgICAgICAgICBzdWJDb250ZXh0LnRyaWdnZXI/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IHdpbmRvdyBmcm9tIHNjcm9sbGluZ1xuICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbGxlY3Rpb24uU2xvdD5cbiAgICAgICAgPC9QcmVzZW5jZT5cbiAgICAgIDwvQ29sbGVjdGlvbi5Qcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG5NZW51U3ViQ29udGVudC5kaXNwbGF5TmFtZSA9IFNVQl9DT05URU5UX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuZnVuY3Rpb24gZ2V0T3BlblN0YXRlKG9wZW46IGJvb2xlYW4pIHtcbiAgcmV0dXJuIG9wZW4gPyAnb3BlbicgOiAnY2xvc2VkJztcbn1cblxuZnVuY3Rpb24gaXNJbmRldGVybWluYXRlKGNoZWNrZWQ/OiBDaGVja2VkU3RhdGUpOiBjaGVja2VkIGlzICdpbmRldGVybWluYXRlJyB7XG4gIHJldHVybiBjaGVja2VkID09PSAnaW5kZXRlcm1pbmF0ZSc7XG59XG5cbmZ1bmN0aW9uIGdldENoZWNrZWRTdGF0ZShjaGVja2VkOiBDaGVja2VkU3RhdGUpIHtcbiAgcmV0dXJuIGlzSW5kZXRlcm1pbmF0ZShjaGVja2VkKSA/ICdpbmRldGVybWluYXRlJyA6IGNoZWNrZWQgPyAnY2hlY2tlZCcgOiAndW5jaGVja2VkJztcbn1cblxuZnVuY3Rpb24gZm9jdXNGaXJzdChjYW5kaWRhdGVzOiBIVE1MRWxlbWVudFtdKSB7XG4gIGNvbnN0IFBSRVZJT1VTTFlfRk9DVVNFRF9FTEVNRU5UID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRlcykge1xuICAgIC8vIGlmIGZvY3VzIGlzIGFscmVhZHkgd2hlcmUgd2Ugd2FudCB0byBnbywgd2UgZG9uJ3Qgd2FudCB0byBrZWVwIGdvaW5nIHRocm91Z2ggdGhlIGNhbmRpZGF0ZXNcbiAgICBpZiAoY2FuZGlkYXRlID09PSBQUkVWSU9VU0xZX0ZPQ1VTRURfRUxFTUVOVCkgcmV0dXJuO1xuICAgIGNhbmRpZGF0ZS5mb2N1cygpO1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBQUkVWSU9VU0xZX0ZPQ1VTRURfRUxFTUVOVCkgcmV0dXJuO1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYW4gYXJyYXkgYXJvdW5kIGl0c2VsZiBhdCBhIGdpdmVuIHN0YXJ0IGluZGV4XG4gKiBFeGFtcGxlOiBgd3JhcEFycmF5KFsnYScsICdiJywgJ2MnLCAnZCddLCAyKSA9PT0gWydjJywgJ2QnLCAnYScsICdiJ11gXG4gKi9cbmZ1bmN0aW9uIHdyYXBBcnJheTxUPihhcnJheTogVFtdLCBzdGFydEluZGV4OiBudW1iZXIpIHtcbiAgcmV0dXJuIGFycmF5Lm1hcCgoXywgaW5kZXgpID0+IGFycmF5WyhzdGFydEluZGV4ICsgaW5kZXgpICUgYXJyYXkubGVuZ3RoXSk7XG59XG5cbi8qKlxuICogVGhpcyBpcyB0aGUgXCJtZWF0XCIgb2YgdGhlIHR5cGVhaGVhZCBtYXRjaGluZyBsb2dpYy4gSXQgdGFrZXMgaW4gYWxsIHRoZSB2YWx1ZXMsXG4gKiB0aGUgc2VhcmNoIGFuZCB0aGUgY3VycmVudCBtYXRjaCwgYW5kIHJldHVybnMgdGhlIG5leHQgbWF0Y2ggKG9yIGB1bmRlZmluZWRgKS5cbiAqXG4gKiBXZSBub3JtYWxpemUgdGhlIHNlYXJjaCBiZWNhdXNlIGlmIGEgdXNlciBoYXMgcmVwZWF0ZWRseSBwcmVzc2VkIGEgY2hhcmFjdGVyLFxuICogd2Ugd2FudCB0aGUgZXhhY3Qgc2FtZSBiZWhhdmlvciBhcyBpZiB3ZSBvbmx5IGhhZCB0aGF0IG9uZSBjaGFyYWN0ZXJcbiAqIChpZS4gY3ljbGUgdGhyb3VnaCBvcHRpb25zIHN0YXJ0aW5nIHdpdGggdGhhdCBjaGFyYWN0ZXIpXG4gKlxuICogV2UgYWxzbyByZW9yZGVyIHRoZSB2YWx1ZXMgYnkgd3JhcHBpbmcgdGhlIGFycmF5IGFyb3VuZCB0aGUgY3VycmVudCBtYXRjaC5cbiAqIFRoaXMgaXMgc28gd2UgYWx3YXlzIGxvb2sgZm9yd2FyZCBmcm9tIHRoZSBjdXJyZW50IG1hdGNoLCBhbmQgcGlja2luZyB0aGUgZmlyc3RcbiAqIG1hdGNoIHdpbGwgYWx3YXlzIGJlIHRoZSBjb3JyZWN0IG9uZS5cbiAqXG4gKiBGaW5hbGx5LCBpZiB0aGUgbm9ybWFsaXplZCBzZWFyY2ggaXMgZXhhY3RseSBvbmUgY2hhcmFjdGVyLCB3ZSBleGNsdWRlIHRoZVxuICogY3VycmVudCBtYXRjaCBmcm9tIHRoZSB2YWx1ZXMgYmVjYXVzZSBvdGhlcndpc2UgaXQgd291bGQgYmUgdGhlIGZpcnN0IHRvIG1hdGNoIGFsd2F5c1xuICogYW5kIGZvY3VzIHdvdWxkIG5ldmVyIG1vdmUuIFRoaXMgaXMgYXMgb3Bwb3NlZCB0byB0aGUgcmVndWxhciBjYXNlLCB3aGVyZSB3ZVxuICogZG9uJ3Qgd2FudCBmb2N1cyB0byBtb3ZlIGlmIHRoZSBjdXJyZW50IG1hdGNoIHN0aWxsIG1hdGNoZXMuXG4gKi9cbmZ1bmN0aW9uIGdldE5leHRNYXRjaCh2YWx1ZXM6IHN0cmluZ1tdLCBzZWFyY2g6IHN0cmluZywgY3VycmVudE1hdGNoPzogc3RyaW5nKSB7XG4gIGNvbnN0IGlzUmVwZWF0ZWQgPSBzZWFyY2gubGVuZ3RoID4gMSAmJiBBcnJheS5mcm9tKHNlYXJjaCkuZXZlcnkoKGNoYXIpID0+IGNoYXIgPT09IHNlYXJjaFswXSk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRTZWFyY2ggPSBpc1JlcGVhdGVkID8gc2VhcmNoWzBdIDogc2VhcmNoO1xuICBjb25zdCBjdXJyZW50TWF0Y2hJbmRleCA9IGN1cnJlbnRNYXRjaCA/IHZhbHVlcy5pbmRleE9mKGN1cnJlbnRNYXRjaCkgOiAtMTtcbiAgbGV0IHdyYXBwZWRWYWx1ZXMgPSB3cmFwQXJyYXkodmFsdWVzLCBNYXRoLm1heChjdXJyZW50TWF0Y2hJbmRleCwgMCkpO1xuICBjb25zdCBleGNsdWRlQ3VycmVudE1hdGNoID0gbm9ybWFsaXplZFNlYXJjaC5sZW5ndGggPT09IDE7XG4gIGlmIChleGNsdWRlQ3VycmVudE1hdGNoKSB3cmFwcGVkVmFsdWVzID0gd3JhcHBlZFZhbHVlcy5maWx0ZXIoKHYpID0+IHYgIT09IGN1cnJlbnRNYXRjaCk7XG4gIGNvbnN0IG5leHRNYXRjaCA9IHdyYXBwZWRWYWx1ZXMuZmluZCgodmFsdWUpID0+XG4gICAgdmFsdWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKG5vcm1hbGl6ZWRTZWFyY2gudG9Mb3dlckNhc2UoKSlcbiAgKTtcbiAgcmV0dXJuIG5leHRNYXRjaCAhPT0gY3VycmVudE1hdGNoID8gbmV4dE1hdGNoIDogdW5kZWZpbmVkO1xufVxuXG50eXBlIFBvaW50ID0geyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xudHlwZSBQb2x5Z29uID0gUG9pbnRbXTtcbnR5cGUgU2lkZSA9ICdsZWZ0JyB8ICdyaWdodCc7XG50eXBlIEdyYWNlSW50ZW50ID0geyBhcmVhOiBQb2x5Z29uOyBzaWRlOiBTaWRlIH07XG5cbi8vIERldGVybWluZSBpZiBhIHBvaW50IGlzIGluc2lkZSBvZiBhIHBvbHlnb24uXG4vLyBCYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vc3Vic3RhY2svcG9pbnQtaW4tcG9seWdvblxuZnVuY3Rpb24gaXNQb2ludEluUG9seWdvbihwb2ludDogUG9pbnQsIHBvbHlnb246IFBvbHlnb24pIHtcbiAgY29uc3QgeyB4LCB5IH0gPSBwb2ludDtcbiAgbGV0IGluc2lkZSA9IGZhbHNlO1xuICBmb3IgKGxldCBpID0gMCwgaiA9IHBvbHlnb24ubGVuZ3RoIC0gMTsgaSA8IHBvbHlnb24ubGVuZ3RoOyBqID0gaSsrKSB7XG4gICAgY29uc3QgeGkgPSBwb2x5Z29uW2ldLng7XG4gICAgY29uc3QgeWkgPSBwb2x5Z29uW2ldLnk7XG4gICAgY29uc3QgeGogPSBwb2x5Z29uW2pdLng7XG4gICAgY29uc3QgeWogPSBwb2x5Z29uW2pdLnk7XG5cbiAgICAvLyBwcmV0dGllci1pZ25vcmVcbiAgICBjb25zdCBpbnRlcnNlY3QgPSAoKHlpID4geSkgIT09ICh5aiA+IHkpKSAmJiAoeCA8ICh4aiAtIHhpKSAqICh5IC0geWkpIC8gKHlqIC0geWkpICsgeGkpO1xuICAgIGlmIChpbnRlcnNlY3QpIGluc2lkZSA9ICFpbnNpZGU7XG4gIH1cblxuICByZXR1cm4gaW5zaWRlO1xufVxuXG5mdW5jdGlvbiBpc1BvaW50ZXJJbkdyYWNlQXJlYShldmVudDogUmVhY3QuUG9pbnRlckV2ZW50LCBhcmVhPzogUG9seWdvbikge1xuICBpZiAoIWFyZWEpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgY3Vyc29yUG9zID0geyB4OiBldmVudC5jbGllbnRYLCB5OiBldmVudC5jbGllbnRZIH07XG4gIHJldHVybiBpc1BvaW50SW5Qb2x5Z29uKGN1cnNvclBvcywgYXJlYSk7XG59XG5cbmZ1bmN0aW9uIHdoZW5Nb3VzZTxFPihoYW5kbGVyOiBSZWFjdC5Qb2ludGVyRXZlbnRIYW5kbGVyPEU+KTogUmVhY3QuUG9pbnRlckV2ZW50SGFuZGxlcjxFPiB7XG4gIHJldHVybiAoZXZlbnQpID0+IChldmVudC5wb2ludGVyVHlwZSA9PT0gJ21vdXNlJyA/IGhhbmRsZXIoZXZlbnQpIDogdW5kZWZpbmVkKTtcbn1cblxuY29uc3QgUm9vdCA9IE1lbnU7XG5jb25zdCBBbmNob3IgPSBNZW51QW5jaG9yO1xuY29uc3QgUG9ydGFsID0gTWVudVBvcnRhbDtcbmNvbnN0IENvbnRlbnQgPSBNZW51Q29udGVudDtcbmNvbnN0IEdyb3VwID0gTWVudUdyb3VwO1xuY29uc3QgTGFiZWwgPSBNZW51TGFiZWw7XG5jb25zdCBJdGVtID0gTWVudUl0ZW07XG5jb25zdCBDaGVja2JveEl0ZW0gPSBNZW51Q2hlY2tib3hJdGVtO1xuY29uc3QgUmFkaW9Hcm91cCA9IE1lbnVSYWRpb0dyb3VwO1xuY29uc3QgUmFkaW9JdGVtID0gTWVudVJhZGlvSXRlbTtcbmNvbnN0IEl0ZW1JbmRpY2F0b3IgPSBNZW51SXRlbUluZGljYXRvcjtcbmNvbnN0IFNlcGFyYXRvciA9IE1lbnVTZXBhcmF0b3I7XG5jb25zdCBBcnJvdyA9IE1lbnVBcnJvdztcbmNvbnN0IFN1YiA9IE1lbnVTdWI7XG5jb25zdCBTdWJUcmlnZ2VyID0gTWVudVN1YlRyaWdnZXI7XG5jb25zdCBTdWJDb250ZW50ID0gTWVudVN1YkNvbnRlbnQ7XG5cbmV4cG9ydCB7XG4gIGNyZWF0ZU1lbnVTY29wZSxcbiAgLy9cbiAgTWVudSxcbiAgTWVudUFuY2hvcixcbiAgTWVudVBvcnRhbCxcbiAgTWVudUNvbnRlbnQsXG4gIE1lbnVHcm91cCxcbiAgTWVudUxhYmVsLFxuICBNZW51SXRlbSxcbiAgTWVudUNoZWNrYm94SXRlbSxcbiAgTWVudVJhZGlvR3JvdXAsXG4gIE1lbnVSYWRpb0l0ZW0sXG4gIE1lbnVJdGVtSW5kaWNhdG9yLFxuICBNZW51U2VwYXJhdG9yLFxuICBNZW51QXJyb3csXG4gIE1lbnVTdWIsXG4gIE1lbnVTdWJUcmlnZ2VyLFxuICBNZW51U3ViQ29udGVudCxcbiAgLy9cbiAgUm9vdCxcbiAgQW5jaG9yLFxuICBQb3J0YWwsXG4gIENvbnRlbnQsXG4gIEdyb3VwLFxuICBMYWJlbCxcbiAgSXRlbSxcbiAgQ2hlY2tib3hJdGVtLFxuICBSYWRpb0dyb3VwLFxuICBSYWRpb0l0ZW0sXG4gIEl0ZW1JbmRpY2F0b3IsXG4gIFNlcGFyYXRvcixcbiAgQXJyb3csXG4gIFN1YixcbiAgU3ViVHJpZ2dlcixcbiAgU3ViQ29udGVudCxcbn07XG5leHBvcnQgdHlwZSB7XG4gIE1lbnVQcm9wcyxcbiAgTWVudUFuY2hvclByb3BzLFxuICBNZW51UG9ydGFsUHJvcHMsXG4gIE1lbnVDb250ZW50UHJvcHMsXG4gIE1lbnVHcm91cFByb3BzLFxuICBNZW51TGFiZWxQcm9wcyxcbiAgTWVudUl0ZW1Qcm9wcyxcbiAgTWVudUNoZWNrYm94SXRlbVByb3BzLFxuICBNZW51UmFkaW9Hcm91cFByb3BzLFxuICBNZW51UmFkaW9JdGVtUHJvcHMsXG4gIE1lbnVJdGVtSW5kaWNhdG9yUHJvcHMsXG4gIE1lbnVTZXBhcmF0b3JQcm9wcyxcbiAgTWVudUFycm93UHJvcHMsXG4gIE1lbnVTdWJQcm9wcyxcbiAgTWVudVN1YlRyaWdnZXJQcm9wcyxcbiAgTWVudVN1YkNvbnRlbnRQcm9wcyxcbn07XG4iXSwibmFtZXMiOlsiUm9vdCIsIkFuY2hvciIsIkNvbnRlbnQiLCJJdGVtIiwiQXJyb3ciXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-menu/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-popper/dist/index.mjs":
/*!*******************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-popper/dist/index.mjs ***!
\*******************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ALIGN_OPTIONS: () => (/* binding */ ALIGN_OPTIONS),\n/* harmony export */ Anchor: () => (/* binding */ Anchor),\n/* harmony export */ Arrow: () => (/* binding */ Arrow),\n/* harmony export */ Content: () => (/* binding */ Content),\n/* harmony export */ Popper: () => (/* binding */ Popper),\n/* harmony export */ PopperAnchor: () => (/* binding */ PopperAnchor),\n/* harmony export */ PopperArrow: () => (/* binding */ PopperArrow),\n/* harmony export */ PopperContent: () => (/* binding */ PopperContent),\n/* harmony export */ Root: () => (/* binding */ Root2),\n/* harmony export */ SIDE_OPTIONS: () => (/* binding */ SIDE_OPTIONS),\n/* harmony export */ createPopperScope: () => (/* binding */ createPopperScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @floating-ui/react-dom */ \"(app-pages-browser)/./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs\");\n/* harmony import */ var _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @floating-ui/react-dom */ \"(app-pages-browser)/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\");\n/* harmony import */ var _radix_ui_react_arrow__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-arrow */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-arrow/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-use-size */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-size/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ ALIGN_OPTIONS,Anchor,Arrow,Content,Popper,PopperAnchor,PopperArrow,PopperContent,Root,SIDE_OPTIONS,createPopperScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n// packages/react/popper/src/popper.tsx\n\n\n\n\n\n\n\n\n\n\nvar SIDE_OPTIONS = [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n];\nvar ALIGN_OPTIONS = [\n \"start\",\n \"center\",\n \"end\"\n];\nvar POPPER_NAME = \"Popper\";\nvar [createPopperContext, createPopperScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(POPPER_NAME);\nvar [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\nvar Popper = (props)=>{\n _s();\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PopperProvider, {\n scope: __scopePopper,\n anchor,\n onAnchorChange: setAnchor,\n children\n });\n};\n_s(Popper, \"wxYvbWVl4wPDiI7jlInCOrjrm3Y=\");\n_c = Popper;\nPopper.displayName = POPPER_NAME;\nvar ANCHOR_NAME = \"PopperAnchor\";\nvar PopperAnchor = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c1 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopePopper, virtualRef, ...anchorProps } = props;\n const context = usePopperContext(ANCHOR_NAME, __scopePopper);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"PopperAnchor.useEffect\": ()=>{\n context.onAnchorChange((virtualRef === null || virtualRef === void 0 ? void 0 : virtualRef.current) || ref.current);\n }\n }[\"PopperAnchor.useEffect\"]);\n return virtualRef ? null : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...anchorProps,\n ref: composedRefs\n });\n}, \"aNTYZQIUknAyxpmCTV83WEqvsAs=\", false, function() {\n return [\n usePopperContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n})), \"aNTYZQIUknAyxpmCTV83WEqvsAs=\", false, function() {\n return [\n usePopperContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n});\n_c2 = PopperAnchor;\nPopperAnchor.displayName = ANCHOR_NAME;\nvar CONTENT_NAME = \"PopperContent\";\nvar [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);\nvar PopperContent = /*#__PURE__*/ _s2(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c3 = _s2((props, forwardedRef)=>{\n var _middlewareData_arrow, _middlewareData_arrow1, _middlewareData_arrow2, _middlewareData_transformOrigin, _middlewareData_transformOrigin1, _middlewareData_hide;\n _s2();\n const { __scopePopper, side = \"bottom\", sideOffset = 0, align = \"center\", alignOffset = 0, arrowPadding = 0, avoidCollisions = true, collisionBoundary = [], collisionPadding: collisionPaddingProp = 0, sticky = \"partial\", hideWhenDetached = false, updatePositionStrategy = \"optimized\", onPlaced, ...contentProps } = props;\n const context = usePopperContext(CONTENT_NAME, __scopePopper);\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, {\n \"PopperContent.useComposedRefs[composedRefs]\": (node)=>setContent(node)\n }[\"PopperContent.useComposedRefs[composedRefs]\"]);\n const [arrow, setArrow] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const arrowSize = (0,_radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__.useSize)(arrow);\n var _arrowSize_width;\n const arrowWidth = (_arrowSize_width = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.width) !== null && _arrowSize_width !== void 0 ? _arrowSize_width : 0;\n var _arrowSize_height;\n const arrowHeight = (_arrowSize_height = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.height) !== null && _arrowSize_height !== void 0 ? _arrowSize_height : 0;\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...collisionPaddingProp\n };\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [\n collisionBoundary\n ];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: hasExplicitBoundaries\n };\n const { refs, floatingStyles, placement, isPositioned, middlewareData } = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.useFloating)({\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: \"fixed\",\n placement: desiredPlacement,\n whileElementsMounted: {\n \"PopperContent.useFloating\": function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n const cleanup = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__.autoUpdate)(...args, {\n animationFrame: updatePositionStrategy === \"always\"\n });\n return cleanup;\n }\n }[\"PopperContent.useFloating\"],\n elements: {\n reference: context.anchor\n },\n middleware: [\n (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.offset)({\n mainAxis: sideOffset + arrowHeight,\n alignmentAxis: alignOffset\n }),\n avoidCollisions && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.shift)({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === \"partial\" ? (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.limitShift)() : void 0,\n ...detectOverflowOptions\n }),\n avoidCollisions && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.flip)({\n ...detectOverflowOptions\n }),\n (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.size)({\n ...detectOverflowOptions,\n apply: {\n \"PopperContent.useFloating\": (param)=>{\n let { elements, rects, availableWidth, availableHeight } = param;\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n const contentStyle = elements.floating.style;\n contentStyle.setProperty(\"--radix-popper-available-width\", \"\".concat(availableWidth, \"px\"));\n contentStyle.setProperty(\"--radix-popper-available-height\", \"\".concat(availableHeight, \"px\"));\n contentStyle.setProperty(\"--radix-popper-anchor-width\", \"\".concat(anchorWidth, \"px\"));\n contentStyle.setProperty(\"--radix-popper-anchor-height\", \"\".concat(anchorHeight, \"px\"));\n }\n }[\"PopperContent.useFloating\"]\n }),\n arrow && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.arrow)({\n element: arrow,\n padding: arrowPadding\n }),\n transformOrigin({\n arrowWidth,\n arrowHeight\n }),\n hideWhenDetached && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.hide)({\n strategy: \"referenceHidden\",\n ...detectOverflowOptions\n })\n ]\n });\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const handlePlaced = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onPlaced);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__.useLayoutEffect)({\n \"PopperContent.useLayoutEffect\": ()=>{\n if (isPositioned) {\n handlePlaced === null || handlePlaced === void 0 ? void 0 : handlePlaced();\n }\n }\n }[\"PopperContent.useLayoutEffect\"], [\n isPositioned,\n handlePlaced\n ]);\n const arrowX = (_middlewareData_arrow = middlewareData.arrow) === null || _middlewareData_arrow === void 0 ? void 0 : _middlewareData_arrow.x;\n const arrowY = (_middlewareData_arrow1 = middlewareData.arrow) === null || _middlewareData_arrow1 === void 0 ? void 0 : _middlewareData_arrow1.y;\n const cannotCenterArrow = ((_middlewareData_arrow2 = middlewareData.arrow) === null || _middlewareData_arrow2 === void 0 ? void 0 : _middlewareData_arrow2.centerOffset) !== 0;\n const [contentZIndex, setContentZIndex] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__.useLayoutEffect)({\n \"PopperContent.useLayoutEffect\": ()=>{\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }\n }[\"PopperContent.useLayoutEffect\"], [\n content\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"div\", {\n ref: refs.setFloating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : \"translate(0, -200%)\",\n // keep off the page when measuring\n minWidth: \"max-content\",\n zIndex: contentZIndex,\n [\"--radix-popper-transform-origin\"]: [\n (_middlewareData_transformOrigin = middlewareData.transformOrigin) === null || _middlewareData_transformOrigin === void 0 ? void 0 : _middlewareData_transformOrigin.x,\n (_middlewareData_transformOrigin1 = middlewareData.transformOrigin) === null || _middlewareData_transformOrigin1 === void 0 ? void 0 : _middlewareData_transformOrigin1.y\n ].join(\" \"),\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...((_middlewareData_hide = middlewareData.hide) === null || _middlewareData_hide === void 0 ? void 0 : _middlewareData_hide.referenceHidden) && {\n visibility: \"hidden\",\n pointerEvents: \"none\"\n }\n },\n dir: props.dir,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PopperContentProvider, {\n scope: __scopePopper,\n placedSide,\n onArrowChange: setArrow,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n \"data-side\": placedSide,\n \"data-align\": placedAlign,\n ...contentProps,\n ref: composedRefs,\n style: {\n ...contentProps.style,\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? \"none\" : void 0\n }\n })\n })\n });\n}, \"A1/Pj+1UFz1xA3voq7zud2LMtfs=\", false, function() {\n return [\n usePopperContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__.useSize,\n _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.useFloating,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef\n ];\n})), \"A1/Pj+1UFz1xA3voq7zud2LMtfs=\", false, function() {\n return [\n usePopperContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__.useSize,\n _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.useFloating,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef\n ];\n});\n_c4 = PopperContent;\nPopperContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"PopperArrow\";\nvar OPPOSITE_SIDE = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nvar PopperArrow = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c5 = _s3(function PopperArrow2(props, forwardedRef) {\n _s3();\n const { __scopePopper, ...arrowProps } = props;\n const contentContext = useContentContext(ARROW_NAME, __scopePopper);\n const baseSide = OPPOSITE_SIDE[contentContext.placedSide];\n return(// we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)\n // doesn't report size as we'd expect on SVG elements.\n // it reports their bounding box which is effectively the largest path inside the SVG.\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"span\", {\n ref: contentContext.onArrowChange,\n style: {\n position: \"absolute\",\n left: contentContext.arrowX,\n top: contentContext.arrowY,\n [baseSide]: 0,\n transformOrigin: {\n top: \"\",\n right: \"0 0\",\n bottom: \"center 0\",\n left: \"100% 0\"\n }[contentContext.placedSide],\n transform: {\n top: \"translateY(100%)\",\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n bottom: \"rotate(180deg)\",\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\n }[contentContext.placedSide],\n visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\n },\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_arrow__WEBPACK_IMPORTED_MODULE_10__.Root, {\n ...arrowProps,\n ref: forwardedRef,\n style: {\n ...arrowProps.style,\n // ensures the element can be measured correctly (mostly for if SVG)\n display: \"block\"\n }\n })\n }));\n}, \"VtYBvsFWU0YFzmBU5dyx7SVFyFY=\", false, function() {\n return [\n useContentContext\n ];\n})), \"VtYBvsFWU0YFzmBU5dyx7SVFyFY=\", false, function() {\n return [\n useContentContext\n ];\n});\n_c6 = PopperArrow;\nPopperArrow.displayName = ARROW_NAME;\nfunction isNotNull(value) {\n return value !== null;\n}\nvar transformOrigin = (options)=>({\n name: \"transformOrigin\",\n options,\n fn (data) {\n var _middlewareData_arrow, _middlewareData_arrow1, _middlewareData_arrow2;\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = ((_middlewareData_arrow = middlewareData.arrow) === null || _middlewareData_arrow === void 0 ? void 0 : _middlewareData_arrow.centerOffset) !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = {\n start: \"0%\",\n center: \"50%\",\n end: \"100%\"\n }[placedAlign];\n var _middlewareData_arrow_x;\n const arrowXCenter = ((_middlewareData_arrow_x = (_middlewareData_arrow1 = middlewareData.arrow) === null || _middlewareData_arrow1 === void 0 ? void 0 : _middlewareData_arrow1.x) !== null && _middlewareData_arrow_x !== void 0 ? _middlewareData_arrow_x : 0) + arrowWidth / 2;\n var _middlewareData_arrow_y;\n const arrowYCenter = ((_middlewareData_arrow_y = (_middlewareData_arrow2 = middlewareData.arrow) === null || _middlewareData_arrow2 === void 0 ? void 0 : _middlewareData_arrow2.y) !== null && _middlewareData_arrow_y !== void 0 ? _middlewareData_arrow_y : 0) + arrowHeight / 2;\n let x = \"\";\n let y = \"\";\n if (placedSide === \"bottom\") {\n x = isArrowHidden ? noArrowAlign : \"\".concat(arrowXCenter, \"px\");\n y = \"\".concat(-arrowHeight, \"px\");\n } else if (placedSide === \"top\") {\n x = isArrowHidden ? noArrowAlign : \"\".concat(arrowXCenter, \"px\");\n y = \"\".concat(rects.floating.height + arrowHeight, \"px\");\n } else if (placedSide === \"right\") {\n x = \"\".concat(-arrowHeight, \"px\");\n y = isArrowHidden ? noArrowAlign : \"\".concat(arrowYCenter, \"px\");\n } else if (placedSide === \"left\") {\n x = \"\".concat(rects.floating.width + arrowHeight, \"px\");\n y = isArrowHidden ? noArrowAlign : \"\".concat(arrowYCenter, \"px\");\n }\n return {\n data: {\n x,\n y\n }\n };\n }\n });\nfunction getSideAndAlignFromPlacement(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [\n side,\n align\n ];\n}\nvar Root2 = Popper;\nvar Anchor = PopperAnchor;\nvar Content = PopperContent;\nvar Arrow = PopperArrow;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6;\n$RefreshReg$(_c, \"Popper\");\n$RefreshReg$(_c1, \"PopperAnchor$React.forwardRef\");\n$RefreshReg$(_c2, \"PopperAnchor\");\n$RefreshReg$(_c3, \"PopperContent$React.forwardRef\");\n$RefreshReg$(_c4, \"PopperContent\");\n$RefreshReg$(_c5, \"PopperArrow$React.forwardRef\");\n$RefreshReg$(_c6, \"PopperArrow\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZHJvcGRvd24tbWVudS9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXBvcHBlci9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdUI7QUFXaEI7QUFDeUI7QUFDQTtBQUNHO0FBQ1Q7QUFDSztBQUNDO0FBQ1I7QUFrQ3BCO0FBNUJKLElBQU0sZUFBZTtJQUFDO0lBQU87SUFBUztJQUFVLE1BQU07Q0FBQTtBQUN0RCxJQUFNLGdCQUFnQjtJQUFDO0lBQVM7SUFBVSxLQUFLO0NBQUE7QUFTL0MsSUFBTSxjQUFjO0FBR3BCLElBQU0sQ0FBQyxxQkFBcUIsaUJBQWlCLElBQUksMkVBQWtCLENBQUMsV0FBVztBQU0vRSxJQUFNLENBQUMsZ0JBQWdCLGdCQUFnQixJQUFJLG9CQUF3QyxXQUFXO0FBSzlGLGFBQXNDLENBQUM7O0lBQ3JDLE1BQU0sRUFBRSxlQUFlLFNBQVMsSUFBSTtJQUNwQyxNQUFNLENBQUMsUUFBUSxTQUFTLElBQVUsNENBQTRCLElBQUk7SUFDbEUsT0FDRSx1RUFBQztRQUFlLE9BQU87UUFBZTtRQUFnQixnQkFBZ0I7UUFDbkU7SUFBQSxDQUNIO0FBRUo7O0tBUk07QUFVTixPQUFPLGNBQWM7QUFNckIsSUFBTSxjQUFjO0FBUXBCLElBQU0saUNBQXFCLHdEQUN6QixDQUFDLE9BQXVDOztJQUN0QyxNQUFNLEVBQUUsZUFBZSxZQUFZLEdBQUcsWUFBWSxJQUFJO0lBQ3RELE1BQU0sVUFBVSxpQkFBaUIsYUFBYSxhQUFhO0lBQzNELE1BQU0sTUFBWSwwQ0FBNEIsSUFBSTtJQUNsRCxNQUFNLGVBQWUsNkVBQWUsQ0FBQyxjQUFjLEdBQUc7SUFFaEQ7a0NBQVU7WUFJZCxRQUFRLGVBQWUsb0VBQVksWUFBVyxJQUFJLE9BQU87UUFDM0QsQ0FBQzs7SUFFRCxPQUFPLGFBQWEsT0FBTyx1RUFBQyxnRUFBUyxD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MUQsTUFBTSxDQUFDLE1BQU0sUUFBUSxRQUFRLElBQUksVUFBVSxNQUFNLEdBQUc7SUFDcEQsT0FBTztRQUFDO1FBQWMsS0FBYztLQUFBO0FBQ3RDO0FBRUEsSUFBTUMsUUFBTztBQUNiLElBQU0sU0FBUztBQUNmLElBQU0sVUFBVTtBQUNoQixJQUFNLFFBQVEiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9zcmMvcG9wcGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICB1c2VGbG9hdGluZyxcbiAgYXV0b1VwZGF0ZSxcbiAgb2Zmc2V0LFxuICBzaGlmdCxcbiAgbGltaXRTaGlmdCxcbiAgaGlkZSxcbiAgYXJyb3cgYXMgZmxvYXRpbmdVSWFycm93LFxuICBmbGlwLFxuICBzaXplLFxufSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QtZG9tJztcbmltcG9ydCAqIGFzIEFycm93UHJpbWl0aXZlIGZyb20gJ0ByYWRpeC11aS9yZWFjdC1hcnJvdyc7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2tSZWYgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZic7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWxheW91dC1lZmZlY3QnO1xuaW1wb3J0IHsgdXNlU2l6ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2Utc2l6ZSc7XG5cbmltcG9ydCB0eXBlIHsgUGxhY2VtZW50LCBNaWRkbGV3YXJlIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0LWRvbSc7XG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBNZWFzdXJhYmxlIH0gZnJvbSAnQHJhZGl4LXVpL3JlY3QnO1xuXG5jb25zdCBTSURFX09QVElPTlMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddIGFzIGNvbnN0O1xuY29uc3QgQUxJR05fT1BUSU9OUyA9IFsnc3RhcnQnLCAnY2VudGVyJywgJ2VuZCddIGFzIGNvbnN0O1xuXG50eXBlIFNpZGUgPSAodHlwZW9mIFNJREVfT1BUSU9OUylbbnVtYmVyXTtcbnR5cGUgQWxpZ24gPSAodHlwZW9mIEFMSUdOX09QVElPTlMpW251bWJlcl07XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcHBlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBQT1BQRVJfTkFNRSA9ICdQb3BwZXInO1xuXG50eXBlIFNjb3BlZFByb3BzPFA+ID0gUCAmIHsgX19zY29wZVBvcHBlcj86IFNjb3BlIH07XG5jb25zdCBbY3JlYXRlUG9wcGVyQ29udGV4dCwgY3JlYXRlUG9wcGVyU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFBPUFBFUl9OQU1FKTtcblxudHlwZSBQb3BwZXJDb250ZXh0VmFsdWUgPSB7XG4gIGFuY2hvcjogTWVhc3VyYWJsZSB8IG51bGw7XG4gIG9uQW5jaG9yQ2hhbmdlKGFuY2hvcjogTWVhc3VyYWJsZSB8IG51bGwpOiB2b2lkO1xufTtcbmNvbnN0IFtQb3BwZXJQcm92aWRlciwgdXNlUG9wcGVyQ29udGV4dF0gPSBjcmVhdGVQb3BwZXJDb250ZXh0PFBvcHBlckNvbnRleHRWYWx1ZT4oUE9QUEVSX05BTUUpO1xuXG5pbnRlcmZhY2UgUG9wcGVyUHJvcHMge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbn1cbmNvbnN0IFBvcHBlcjogUmVhY3QuRkM8UG9wcGVyUHJvcHM+ID0gKHByb3BzOiBTY29wZWRQcm9wczxQb3BwZXJQcm9wcz4pID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlUG9wcGVyLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gIGNvbnN0IFthbmNob3IsIHNldEFuY2hvcl0gPSBSZWFjdC51c2VTdGF0ZTxNZWFzdXJhYmxlIHwgbnVsbD4obnVsbCk7XG4gIHJldHVybiAoXG4gICAgPFBvcHBlclByb3ZpZGVyIHNjb3BlPXtfX3Njb3BlUG9wcGVyfSBhbmNob3I9e2FuY2hvcn0gb25BbmNob3JDaGFuZ2U9e3NldEFuY2hvcn0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Qb3BwZXJQcm92aWRlcj5cbiAgKTtcbn07XG5cblBvcHBlci5kaXNwbGF5TmFtZSA9IFBPUFBFUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBQb3BwZXJBbmNob3JcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQU5DSE9SX05BTUUgPSAnUG9wcGVyQW5jaG9yJztcblxudHlwZSBQb3BwZXJBbmNob3JFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG50eXBlIFByaW1pdGl2ZURpdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBQb3BwZXJBbmNob3JQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHtcbiAgdmlydHVhbFJlZj86IFJlYWN0LlJlZk9iamVjdDxNZWFzdXJhYmxlPjtcbn1cblxuY29uc3QgUG9wcGVyQW5jaG9yID0gUmVhY3QuZm9yd2FyZFJlZjxQb3BwZXJBbmNob3JFbGVtZW50LCBQb3BwZXJBbmNob3JQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8UG9wcGVyQW5jaG9yUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVQb3BwZXIsIHZpcnR1YWxSZWYsIC4uLmFuY2hvclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlUG9wcGVyQ29udGV4dChBTkNIT1JfTkFNRSwgX19zY29wZVBvcHBlcik7XG4gICAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPFBvcHBlckFuY2hvckVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgLy8gQ29uc3VtZXIgY2FuIGFuY2hvciB0aGUgcG9wcGVyIHRvIHNvbWV0aGluZyB0aGF0IGlzbid0XG4gICAgICAvLyBhIERPTSBub2RlIGUuZy4gcG9pbnRlciBwb3NpdGlvbiwgc28gd2Ugb3ZlcnJpZGUgdGhlXG4gICAgICAvLyBgYW5jaG9yUmVmYCB3aXRoIHRoZWlyIHZpcnR1YWwgcmVmIGluIHRoaXMgY2FzZS5cbiAgICAgIGNvbnRleHQub25BbmNob3JDaGFuZ2UodmlydHVhbFJlZj8uY3VycmVudCB8fCByZWYuY3VycmVudCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmlydHVhbFJlZiA/IG51bGwgOiA8UHJpbWl0aXZlLmRpdiB7Li4uYW5jaG9yUHJvcHN9IHJlZj17Y29tcG9zZWRSZWZzfSAvPjtcbiAgfVxuKTtcblxuUG9wcGVyQW5jaG9yLmRpc3BsYXlOYW1lID0gQU5DSE9SX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcHBlckNvbnRlbnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQ09OVEVOVF9OQU1FID0gJ1BvcHBlckNvbnRlbnQnO1xuXG50eXBlIFBvcHBlckNvbnRlbnRDb250ZXh0VmFsdWUgPSB7XG4gIHBsYWNlZFNpZGU6IFNpZGU7XG4gIG9uQXJyb3dDaGFuZ2UoYXJyb3c6IEhUTUxTcGFuRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuICBhcnJvd1g/OiBudW1iZXI7XG4gIGFycm93WT86IG51bWJlcjtcbiAgc2hvdWxkSGlkZUFycm93OiBib29sZWFuO1xufTtcblxuY29uc3QgW1BvcHBlckNvbnRlbnRQcm92aWRlciwgdXNlQ29udGVudENvbnRleHRdID1cbiAgY3JlYXRlUG9wcGVyQ29udGV4dDxQb3BwZXJDb250ZW50Q29udGV4dFZhbHVlPihDT05URU5UX05BTUUpO1xuXG50eXBlIEJvdW5kYXJ5ID0gRWxlbWVudCB8IG51bGw7XG5cbnR5cGUgUG9wcGVyQ29udGVudEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBQb3BwZXJDb250ZW50UHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVEaXZQcm9wcyB7XG4gIHNpZGU/OiBTaWRlO1xuICBzaWRlT2Zmc2V0PzogbnVtYmVyO1xuICBhbGlnbj86IEFsaWduO1xuICBhbGlnbk9mZnNldD86IG51bWJlcjtcbiAgYXJyb3dQYWRkaW5nPzogbnVtYmVyO1xuICBhdm9pZENvbGxpc2lvbnM/OiBib29sZWFuO1xuICBjb2xsaXNpb25Cb3VuZGFyeT86IEJvdW5kYXJ5IHwgQm91bmRhcnlbXTtcbiAgY29sbGlzaW9uUGFkZGluZz86IG51bWJlciB8IFBhcnRpYWw8UmVjb3JkPFNpZGUsIG51bWJlcj4+O1xuICBzdGlja3k/OiAncGFydGlhbCcgfCAnYWx3YXlzJztcbiAgaGlkZVdoZW5EZXRhY2hlZD86IGJvb2xlYW47XG4gIHVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3k/OiAnb3B0aW1pemVkJyB8ICdhbHdheXMnO1xuICBvblBsYWNlZD86ICgpID0+IHZvaWQ7XG59XG5cbmNvbnN0IFBvcHBlckNvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFBvcHBlckNvbnRlbnRFbGVtZW50LCBQb3BwZXJDb250ZW50UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFBvcHBlckNvbnRlbnRQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIF9fc2NvcGVQb3BwZXIsXG4gICAgICBzaWRlID0gJ2JvdHRvbScsXG4gICAgICBzaWRlT2Zmc2V0ID0gMCxcbiAgICAgIGFsaWduID0gJ2NlbnRlcicsXG4gICAgICBhbGlnbk9mZnNldCA9IDAsXG4gICAgICBhcnJvd1BhZGRpbmcgPSAwLFxuICAgICAgYXZvaWRDb2xsaXNpb25zID0gdHJ1ZSxcbiAgICAgIGNvbGxpc2lvbkJvdW5kYXJ5ID0gW10sXG4gICAgICBjb2xsaXNpb25QYWRkaW5nOiBjb2xsaXNpb25QYWRkaW5nUHJvcCA9IDAsXG4gICAgICBzdGlja3kgPSAncGFydGlhbCcsXG4gICAgICBoaWRlV2hlbkRldGFjaGVkID0gZmFsc2UsXG4gICAgICB1cGRhdGVQb3NpdGlvblN0cmF0ZWd5ID0gJ29wdGltaXplZCcsXG4gICAgICBvblBsYWNlZCxcbiAgICAgIC4uLmNvbnRlbnRQcm9wc1xuICAgIH0gPSBwcm9wcztcblxuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VQb3BwZXJDb250ZXh0KENPTlRFTlRfTkFNRSwgX19zY29wZVBvcHBlcik7XG5cbiAgICBjb25zdCBbY29udGVudCwgc2V0Q29udGVudF0gPSBSZWFjdC51c2VTdGF0ZTxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIChub2RlKSA9PiBzZXRDb250ZW50KG5vZGUpKTtcblxuICAgIGNvbnN0IFthcnJvdywgc2V0QXJyb3ddID0gUmVhY3QudXNlU3RhdGU8SFRNTFNwYW5FbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgYXJyb3dTaXplID0gdXNlU2l6ZShhcnJvdyk7XG4gICAgY29uc3QgYXJyb3dXaWR0aCA9IGFycm93U2l6ZT8ud2lkdGggPz8gMDtcbiAgICBjb25zdCBhcnJvd0hlaWdodCA9IGFycm93U2l6ZT8uaGVpZ2h0ID8/IDA7XG5cbiAgICBjb25zdCBkZXNpcmVkUGxhY2VtZW50ID0gKHNpZGUgKyAoYWxpZ24gIT09ICdjZW50ZXInID8gJy0nICsgYWxpZ24gOiAnJykpIGFzIFBsYWNlbWVudDtcblxuICAgIGNvbnN0IGNvbGxpc2lvblBhZGRpbmcgPVxuICAgICAgdHlwZW9mIGNvbGxpc2lvblBhZGRpbmdQcm9wID09PSAnbnVtYmVyJ1xuICAgICAgICA/IGNvbGxpc2lvblBhZGRpbmdQcm9wXG4gICAgICAgIDogeyB0b3A6IDAsIHJpZ2h0OiAwLCBib3R0b206IDAsIGxlZnQ6IDAsIC4uLmNvbGxpc2lvblBhZGRpbmdQcm9wIH07XG5cbiAgICBjb25zdCBib3VuZGFyeSA9IEFycmF5LmlzQXJyYXkoY29sbGlzaW9uQm91bmRhcnkpID8gY29sbGlzaW9uQm91bmRhcnkgOiBbY29sbGlzaW9uQm91bmRhcnldO1xuICAgIGNvbnN0IGhhc0V4cGxpY2l0Qm91bmRhcmllcyA9IGJvdW5kYXJ5Lmxlbmd0aCA+IDA7XG5cbiAgICBjb25zdCBkZXRlY3RPdmVyZmxvd09wdGlvbnMgPSB7XG4gICAgICBwYWRkaW5nOiBjb2xsaXNpb25QYWRkaW5nLFxuICAgICAgYm91bmRhcnk6IGJvdW5kYXJ5LmZpbHRlcihpc05vdE51bGwpLFxuICAgICAgLy8gd2l0aCBgc3RyYXRlZ3k6ICdmaXhlZCdgLCB0aGlzIGlzIHRoZSBvbmx5IHdheSB0byBnZXQgaXQgdG8gcmVzcGVjdCBib3VuZGFyaWVzXG4gICAgICBhbHRCb3VuZGFyeTogaGFzRXhwbGljaXRCb3VuZGFyaWVzLFxuICAgIH07XG5cbiAgICBjb25zdCB7IHJlZnMsIGZsb2F0aW5nU3R5bGVzLCBwbGFjZW1lbnQsIGlzUG9zaXRpb25lZCwgbWlkZGxld2FyZURhdGEgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICAgIC8vIGRlZmF1bHQgdG8gYGZpeGVkYCBzdHJhdGVneSBzbyB1c2VycyBkb24ndCBoYXZlIHRvIHBpY2sgYW5kIHdlIGFsc28gYXZvaWQgZm9jdXMgc2Nyb2xsIGlzc3Vlc1xuICAgICAgc3RyYXRlZ3k6ICdmaXhlZCcsXG4gICAgICBwbGFjZW1lbnQ6IGRlc2lyZWRQbGFjZW1lbnQsXG4gICAgICB3aGlsZUVsZW1lbnRzTW91bnRlZDogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgY2xlYW51cCA9IGF1dG9VcGRhdGUoLi4uYXJncywge1xuICAgICAgICAgIGFuaW1hdGlvbkZyYW1lOiB1cGRhdGVQb3NpdGlvblN0cmF0ZWd5ID09PSAnYWx3YXlzJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjbGVhbnVwO1xuICAgICAgfSxcbiAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgIHJlZmVyZW5jZTogY29udGV4dC5hbmNob3IsXG4gICAgICB9LFxuICAgICAgbWlkZGxld2FyZTogW1xuICAgICAgICBvZmZzZXQoeyBtYWluQXhpczogc2lkZU9mZnNldCArIGFycm93SGVpZ2h0LCBhbGlnbm1lbnRBeGlzOiBhbGlnbk9mZnNldCB9KSxcbiAgICAgICAgYXZvaWRDb2xsaXNpb25zICYmXG4gICAgICAgICAgc2hpZnQoe1xuICAgICAgICAgICAgbWFpbkF4aXM6IHRydWUsXG4gICAgICAgICAgICBjcm9zc0F4aXM6IGZhbHNlLFxuICAgICAgICAgICAgbGltaXRlcjogc3RpY2t5ID09PSAncGFydGlhbCcgPyBsaW1pdFNoaWZ0KCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnMsXG4gICAgICAgICAgfSksXG4gICAgICAgIGF2b2lkQ29sbGlzaW9ucyAmJiBmbGlwKHsgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zIH0pLFxuICAgICAgICBzaXplKHtcbiAgICAgICAgICAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnMsXG4gICAgICAgICAgYXBwbHk6ICh7IGVsZW1lbnRzLCByZWN0cywgYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHdpZHRoOiBhbmNob3JXaWR0aCwgaGVpZ2h0OiBhbmNob3JIZWlnaHQgfSA9IHJlY3RzLnJlZmVyZW5jZTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRTdHlsZSA9IGVsZW1lbnRzLmZsb2F0aW5nLnN0eWxlO1xuICAgICAgICAgICAgY29udGVudFN0eWxlLnNldFByb3BlcnR5KCctLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtd2lkdGgnLCBgJHthdmFpbGFibGVXaWR0aH1weGApO1xuICAgICAgICAgICAgY29udGVudFN0eWxlLnNldFByb3BlcnR5KCctLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtaGVpZ2h0JywgYCR7YXZhaWxhYmxlSGVpZ2h0fXB4YCk7XG4gICAgICAgICAgICBjb250ZW50U3R5bGUuc2V0UHJvcGVydHkoJy0tcmFkaXgtcG9wcGVyLWFuY2hvci13aWR0aCcsIGAke2FuY2hvcldpZHRofXB4YCk7XG4gICAgICAgICAgICBjb250ZW50U3R5bGUuc2V0UHJvcGVydHkoJy0tcmFkaXgtcG9wcGVyLWFuY2hvci1oZWlnaHQnLCBgJHthbmNob3JIZWlnaHR9cHhgKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgYXJyb3cgJiYgZmxvYXRpbmdVSWFycm93KHsgZWxlbWVudDogYXJyb3csIHBhZGRpbmc6IGFycm93UGFkZGluZyB9KSxcbiAgICAgICAgdHJhbnNmb3JtT3JpZ2luKHsgYXJyb3dXaWR0aCwgYXJyb3dIZWlnaHQgfSksXG4gICAgICAgIGhpZGVXaGVuRGV0YWNoZWQgJiYgaGlkZSh7IHN0cmF0ZWd5OiAncmVmZXJlbmNlSGlkZGVuJywgLi4uZGV0ZWN0T3ZlcmZsb3dPcHRpb25zIH0pLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IFtwbGFjZWRTaWRlLCBwbGFjZWRBbGlnbl0gPSBnZXRTaWRlQW5kQWxpZ25Gcm9tUGxhY2VtZW50KHBsYWNlbWVudCk7XG5cbiAgICBjb25zdCBoYW5kbGVQbGFjZWQgPSB1c2VDYWxsYmFja1JlZihvblBsYWNlZCk7XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc1Bvc2l0aW9uZWQpIHtcbiAgICAgICAgaGFuZGxlUGxhY2VkPy4oKTtcbiAgICAgIH1cbiAgICB9LCBbaXNQb3NpdGlvbmVkLCBoYW5kbGVQbGFjZWRdKTtcblxuICAgIGNvbnN0IGFycm93WCA9IG1pZGRsZXdhcmVEYXRhLmFycm93Py54O1xuICAgIGNvbnN0IGFycm93WSA9IG1pZGRsZXdhcmVEYXRhLmFycm93Py55O1xuICAgIGNvbnN0IGNhbm5vdENlbnRlckFycm93ID0gbWlkZGxld2FyZURhdGEuYXJyb3c/LmNlbnRlck9mZnNldCAhPT0gMDtcblxuICAgIGNvbnN0IFtjb250ZW50WkluZGV4LCBzZXRDb250ZW50WkluZGV4XSA9IFJlYWN0LnVzZVN0YXRlPHN0cmluZz4oKTtcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGNvbnRlbnQpIHNldENvbnRlbnRaSW5kZXgod2luZG93LmdldENvbXB1dGVkU3R5bGUoY29udGVudCkuekluZGV4KTtcbiAgICB9LCBbY29udGVudF0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXtyZWZzLnNldEZsb2F0aW5nfVxuICAgICAgICBkYXRhLXJhZGl4LXBvcHBlci1jb250ZW50LXdyYXBwZXI9XCJcIlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIC4uLmZsb2F0aW5nU3R5bGVzLFxuICAgICAgICAgIHRyYW5zZm9ybTogaXNQb3NpdGlvbmVkID8gZmxvYXRpbmdTdHlsZXMudHJhbnNmb3JtIDogJ3RyYW5zbGF0ZSgwLCAtMjAwJSknLCAvLyBrZWVwIG9mZiB0aGUgcGFnZSB3aGVuIG1lYXN1cmluZ1xuICAgICAgICAgIG1pbldpZHRoOiAnbWF4LWNvbnRlbnQnLFxuICAgICAgICAgIHpJbmRleDogY29udGVudFpJbmRleCxcbiAgICAgICAgICBbJy0tcmFkaXgtcG9wcGVyLXRyYW5zZm9ybS1vcmlnaW4nIGFzIGFueV06IFtcbiAgICAgICAgICAgIG1pZGRsZXdhcmVEYXRhLnRyYW5zZm9ybU9yaWdpbj8ueCxcbiAgICAgICAgICAgIG1pZGRsZXdhcmVEYXRhLnRyYW5zZm9ybU9yaWdpbj8ueSxcbiAgICAgICAgICBdLmpvaW4oJyAnKSxcblxuICAgICAgICAgIC8vIGhpZGUgdGhlIGNvbnRlbnQgaWYgdXNpbmcgdGhlIGhpZGUgbWlkZGxld2FyZSBhbmQgc2hvdWxkIGJlIGhpZGRlblxuICAgICAgICAgIC8vIHNldCB2aXNpYmlsaXR5IHRvIGhpZGRlbiBhbmQgZGlzYWJsZSBwb2ludGVyIGV2ZW50cyBzbyB0aGUgVUkgYmVoYXZlc1xuICAgICAgICAgIC8vIGFzIGlmIHRoZSBQb3BwZXJDb250ZW50IGlzbid0IHRoZXJlIGF0IGFsbFxuICAgICAgICAgIC4uLihtaWRkbGV3YXJlRGF0YS5oaWRlPy5yZWZlcmVuY2VIaWRkZW4gJiYge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgICAgfSksXG4gICAgICAgIH19XG4gICAgICAgIC8vIEZsb2F0aW5nIFVJIGludGVyYWxseSBjYWxjdWxhdGVzIGxvZ2ljYWwgYWxpZ25tZW50IGJhc2VkIHRoZSBgZGlyYCBhdHRyaWJ1dGUgb25cbiAgICAgICAgLy8gdGhlIHJlZmVyZW5jZS9mbG9hdGluZyBub2RlLCB3ZSBtdXN0IGFkZCB0aGlzIGF0dHJpYnV0ZSBoZXJlIHRvIGVuc3VyZVxuICAgICAgICAvLyB0aGlzIGlzIGNhbGN1bGF0ZWQgd2hlbiBwb3J0YWxsZWQgYXMgd2VsbCBhcyBpbmxpbmUuXG4gICAgICAgIGRpcj17cHJvcHMuZGlyfVxuICAgICAgPlxuICAgICAgICA8UG9wcGVyQ29udGVudFByb3ZpZGVyXG4gICAgICAgICAgc2NvcGU9e19fc2NvcGVQb3BwZXJ9XG4gICAgICAgICAgcGxhY2VkU2lkZT17cGxhY2VkU2lkZX1cbiAgICAgICAgICBvbkFycm93Q2hhbmdlPXtzZXRBcnJvd31cbiAgICAgICAgICBhcnJvd1g9e2Fycm93WH1cbiAgICAgICAgICBhcnJvd1k9e2Fycm93WX1cbiAgICAgICAgICBzaG91bGRIaWRlQXJyb3c9e2Nhbm5vdENlbnRlckFycm93fVxuICAgICAgICA+XG4gICAgICAgICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgICAgICAgIGRhdGEtc2lkZT17cGxhY2VkU2lkZX1cbiAgICAgICAgICAgIGRhdGEtYWxpZ249e3BsYWNlZEFsaWdufVxuICAgICAgICAgICAgey4uLmNvbnRlbnRQcm9wc31cbiAgICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgLi4uY29udGVudFByb3BzLnN0eWxlLFxuICAgICAgICAgICAgICAvLyBpZiB0aGUgUG9wcGVyQ29udGVudCBoYXNuJ3QgYmVlbiBwbGFjZWQgeWV0IChub3QgYWxsIG1lYXN1cmVtZW50cyBkb25lKVxuICAgICAgICAgICAgICAvLyB3ZSBwcmV2ZW50IGFuaW1hdGlvbnMgc28gdGhhdCB1c2VycydzIGFuaW1hdGlvbiBkb24ndCBraWNrIGluIHRvbyBlYXJseSByZWZlcnJpbmcgd3Jvbmcgc2lkZXNcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiAhaXNQb3NpdGlvbmVkID8gJ25vbmUnIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1BvcHBlckNvbnRlbnRQcm92aWRlcj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbik7XG5cblBvcHBlckNvbnRlbnQuZGlzcGxheU5hbWUgPSBDT05URU5UX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcHBlckFycm93XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IEFSUk9XX05BTUUgPSAnUG9wcGVyQXJyb3cnO1xuXG5jb25zdCBPUFBPU0lURV9TSURFOiBSZWNvcmQ8U2lkZSwgU2lkZT4gPSB7XG4gIHRvcDogJ2JvdHRvbScsXG4gIHJpZ2h0OiAnbGVmdCcsXG4gIGJvdHRvbTogJ3RvcCcsXG4gIGxlZnQ6ICdyaWdodCcsXG59O1xuXG50eXBlIFBvcHBlckFycm93RWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIEFycm93UHJpbWl0aXZlLlJvb3Q+O1xudHlwZSBBcnJvd1Byb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBBcnJvd1ByaW1pdGl2ZS5Sb290PjtcbmludGVyZmFjZSBQb3BwZXJBcnJvd1Byb3BzIGV4dGVuZHMgQXJyb3dQcm9wcyB7fVxuXG5jb25zdCBQb3BwZXJBcnJvdyA9IFJlYWN0LmZvcndhcmRSZWY8UG9wcGVyQXJyb3dFbGVtZW50LCBQb3BwZXJBcnJvd1Byb3BzPihmdW5jdGlvbiBQb3BwZXJBcnJvdyhcbiAgcHJvcHM6IFNjb3BlZFByb3BzPFBvcHBlckFycm93UHJvcHM+LFxuICBmb3J3YXJkZWRSZWZcbikge1xuICBjb25zdCB7IF9fc2NvcGVQb3BwZXIsIC4uLmFycm93UHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBjb250ZW50Q29udGV4dCA9IHVzZUNvbnRlbnRDb250ZXh0KEFSUk9XX05BTUUsIF9fc2NvcGVQb3BwZXIpO1xuICBjb25zdCBiYXNlU2lkZSA9IE9QUE9TSVRFX1NJREVbY29udGVudENvbnRleHQucGxhY2VkU2lkZV07XG5cbiAgcmV0dXJuIChcbiAgICAvLyB3ZSBoYXZlIHRvIHVzZSBhbiBleHRyYSB3cmFwcGVyIGJlY2F1c2UgYFJlc2l6ZU9ic2VydmVyYCAodXNlZCBieSBgdXNlU2l6ZWApXG4gICAgLy8gZG9lc24ndCByZXBvcnQgc2l6ZSBhcyB3ZSdkIGV4cGVjdCBvbiBTVkcgZWxlbWVudHMuXG4gICAgLy8gaXQgcmVwb3J0cyB0aGVpciBib3VuZGluZyBib3ggd2hpY2ggaXMgZWZmZWN0aXZlbHkgdGhlIGxhcmdlc3QgcGF0aCBpbnNpZGUgdGhlIFNWRy5cbiAgICA8c3BhblxuICAgICAgcmVmPXtjb250ZW50Q29udGV4dC5vbkFycm93Q2hhbmdlfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIGxlZnQ6IGNvbnRlbnRDb250ZXh0LmFycm93WCxcbiAgICAgICAgdG9wOiBjb250ZW50Q29udGV4dC5hcnJvd1ksXG4gICAgICAgIFtiYXNlU2lkZV06IDAsXG4gICAgICAgIHRyYW5zZm9ybU9yaWdpbjoge1xuICAgICAgICAgIHRvcDogJycsXG4gICAgICAgICAgcmlnaHQ6ICcwIDAnLFxuICAgICAgICAgIGJvdHRvbTogJ2NlbnRlciAwJyxcbiAgICAgICAgICBsZWZ0OiAnMTAwJSAwJyxcbiAgICAgICAgfVtjb250ZW50Q29udGV4dC5wbGFjZWRTaWRlXSxcbiAgICAgICAgdHJhbnNmb3JtOiB7XG4gICAgICAgICAgdG9wOiAndHJhbnNsYXRlWSgxMDAlKScsXG4gICAgICAgICAgcmlnaHQ6ICd0cmFuc2xhdGVZKDUwJSkgcm90YXRlKDkwZGVnKSB0cmFuc2xhdGVYKC01MCUpJyxcbiAgICAgICAgICBib3R0b206IGByb3RhdGUoMTgwZGVnKWAsXG4gICAgICAgICAgbGVmdDogJ3RyYW5zbGF0ZVkoNTAlKSByb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGVYKDUwJSknLFxuICAgICAgICB9W2NvbnRlbnRDb250ZXh0LnBsYWNlZFNpZGVdLFxuICAgICAgICB2aXNpYmlsaXR5OiBjb250ZW50Q29udGV4dC5zaG91bGRIaWRlQXJyb3cgPyAnaGlkZGVuJyA6IHVuZGVmaW5lZCxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPEFycm93UHJpbWl0aXZlLlJvb3RcbiAgICAgICAgey4uLmFycm93UHJvcHN9XG4gICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIC4uLmFycm93UHJvcHMuc3R5bGUsXG4gICAgICAgICAgLy8gZW5zdXJlcyB0aGUgZWxlbWVudCBjYW4gYmUgbWVhc3VyZWQgY29ycmVjdGx5IChtb3N0bHkgZm9yIGlmIFNWRylcbiAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICA8L3NwYW4+XG4gICk7XG59KTtcblxuUG9wcGVyQXJyb3cuZGlzcGxheU5hbWUgPSBBUlJPV19OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmZ1bmN0aW9uIGlzTm90TnVsbDxUPih2YWx1ZTogVCB8IG51bGwpOiB2YWx1ZSBpcyBUIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsO1xufVxuXG5jb25zdCB0cmFuc2Zvcm1PcmlnaW4gPSAob3B0aW9uczogeyBhcnJvd1dpZHRoOiBudW1iZXI7IGFycm93SGVpZ2h0OiBudW1iZXIgfSk6IE1pZGRsZXdhcmUgPT4gKHtcbiAgbmFtZTogJ3RyYW5zZm9ybU9yaWdpbicsXG4gIG9wdGlvbnMsXG4gIGZuKGRhdGEpIHtcbiAgICBjb25zdCB7IHBsYWNlbWVudCwgcmVjdHMsIG1pZGRsZXdhcmVEYXRhIH0gPSBkYXRhO1xuXG4gICAgY29uc3QgY2Fubm90Q2VudGVyQXJyb3cgPSBtaWRkbGV3YXJlRGF0YS5hcnJvdz8uY2VudGVyT2Zmc2V0ICE9PSAwO1xuICAgIGNvbnN0IGlzQXJyb3dIaWRkZW4gPSBjYW5ub3RDZW50ZXJBcnJvdztcbiAgICBjb25zdCBhcnJvd1dpZHRoID0gaXNBcnJvd0hpZGRlbiA/IDAgOiBvcHRpb25zLmFycm93V2lkdGg7XG4gICAgY29uc3QgYXJyb3dIZWlnaHQgPSBpc0Fycm93SGlkZGVuID8gMCA6IG9wdGlvbnMuYXJyb3dIZWlnaHQ7XG5cbiAgICBjb25zdCBbcGxhY2VkU2lkZSwgcGxhY2VkQWxpZ25dID0gZ2V0U2lkZUFuZEFsaWduRnJvbVBsYWNlbWVudChwbGFjZW1lbnQpO1xuICAgIGNvbnN0IG5vQXJyb3dBbGlnbiA9IHsgc3RhcnQ6ICcwJScsIGNlbnRlcjogJzUwJScsIGVuZDogJzEwMCUnIH1bcGxhY2VkQWxpZ25dO1xuXG4gICAgY29uc3QgYXJyb3dYQ2VudGVyID0gKG1pZGRsZXdhcmVEYXRhLmFycm93Py54ID8/IDApICsgYXJyb3dXaWR0aCAvIDI7XG4gICAgY29uc3QgYXJyb3dZQ2VudGVyID0gKG1pZGRsZXdhcmVEYXRhLmFycm93Py55ID8/IDApICsgYXJyb3dIZWlnaHQgLyAyO1xuXG4gICAgbGV0IHggPSAnJztcbiAgICBsZXQgeSA9ICcnO1xuXG4gICAgaWYgKHBsYWNlZFNpZGUgPT09ICdib3R0b20nKSB7XG4gICAgICB4ID0gaXNBcnJvd0hpZGRlbiA/IG5vQXJyb3dBbGlnbiA6IGAke2Fycm93WENlbnRlcn1weGA7XG4gICAgICB5ID0gYCR7LWFycm93SGVpZ2h0fXB4YDtcbiAgICB9IGVsc2UgaWYgKHBsYWNlZFNpZGUgPT09ICd0b3AnKSB7XG4gICAgICB4ID0gaXNBcnJvd0hpZGRlbiA/IG5vQXJyb3dBbGlnbiA6IGAke2Fycm93WENlbnRlcn1weGA7XG4gICAgICB5ID0gYCR7cmVjdHMuZmxvYXRpbmcuaGVpZ2h0ICsgYXJyb3dIZWlnaHR9cHhgO1xuICAgIH0gZWxzZSBpZiAocGxhY2VkU2lkZSA9PT0gJ3JpZ2h0Jykge1xuICAgICAgeCA9IGAkey1hcnJvd0hlaWdodH1weGA7XG4gICAgICB5ID0gaXNBcnJvd0hpZGRlbiA/IG5vQXJyb3dBbGlnbiA6IGAke2Fycm93WUNlbnRlcn1weGA7XG4gICAgfSBlbHNlIGlmIChwbGFjZWRTaWRlID09PSAnbGVmdCcpIHtcbiAgICAgIHggPSBgJHtyZWN0cy5mbG9hdGluZy53aWR0aCArIGFycm93SGVpZ2h0fXB4YDtcbiAgICAgIHkgPSBpc0Fycm93SGlkZGVuID8gbm9BcnJvd0FsaWduIDogYCR7YXJyb3dZQ2VudGVyfXB4YDtcbiAgICB9XG4gICAgcmV0dXJuIHsgZGF0YTogeyB4LCB5IH0gfTtcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBnZXRTaWRlQW5kQWxpZ25Gcm9tUGxhY2VtZW50KHBsYWNlbWVudDogUGxhY2VtZW50KSB7XG4gIGNvbnN0IFtzaWRlLCBhbGlnbiA9ICdjZW50ZXInXSA9IHBsYWNlbWVudC5zcGxpdCgnLScpO1xuICByZXR1cm4gW3NpZGUgYXMgU2lkZSwgYWxpZ24gYXMgQWxpZ25dIGFzIGNvbnN0O1xufVxuXG5jb25zdCBSb290ID0gUG9wcGVyO1xuY29uc3QgQW5jaG9yID0gUG9wcGVyQW5jaG9yO1xuY29uc3QgQ29udGVudCA9IFBvcHBlckNvbnRlbnQ7XG5jb25zdCBBcnJvdyA9IFBvcHBlckFycm93O1xuXG5leHBvcnQge1xuICBjcmVhdGVQb3BwZXJTY29wZSxcbiAgLy9cbiAgUG9wcGVyLFxuICBQb3BwZXJBbmNob3IsXG4gIFBvcHBlckNvbnRlbnQsXG4gIFBvcHBlckFycm93LFxuICAvL1xuICBSb290LFxuICBBbmNob3IsXG4gIENvbnRlbnQsXG4gIEFycm93LFxuICAvL1xuICBTSURFX09QVElPTlMsXG4gIEFMSUdOX09QVElPTlMsXG59O1xuZXhwb3J0IHR5cGUgeyBQb3BwZXJQcm9wcywgUG9wcGVyQW5jaG9yUHJvcHMsIFBvcHBlckNvbnRlbnRQcm9wcywgUG9wcGVyQXJyb3dQcm9wcyB9O1xuIl0sIm5hbWVzIjpbIlBvcHBlckFycm93IiwiUm9vdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-popper/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-portal/dist/index.mjs":
/*!*******************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-portal/dist/index.mjs ***!
\*******************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Portal,Root auto */ var _s = $RefreshSig$();\n// packages/react/portal/src/portal.tsx\n\n\n\n\n\nvar PORTAL_NAME = \"Portal\";\nvar Portal = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n var _globalThis_document, _globalThis;\n _s();\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__.useLayoutEffect)({\n \"Portal.useLayoutEffect\": ()=>setMounted(true)\n }[\"Portal.useLayoutEffect\"], []);\n const container = containerProp || mounted && ((_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : (_globalThis_document = _globalThis.document) === null || _globalThis_document === void 0 ? void 0 : _globalThis_document.body);\n return container ? /*#__PURE__*/ react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal(/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...portalProps,\n ref: forwardedRef\n }), container) : null;\n}, \"FcnMiGdgWOI6sDTng8DolPv2NRo=\")), \"FcnMiGdgWOI6sDTng8DolPv2NRo=\");\n_c1 = Portal;\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Portal$React.forwardRef\");\n$RefreshReg$(_c1, \"Portal\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZHJvcGRvd24tbWVudS9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXBvcnRhbC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBdUI7QUFDRjtBQUNLO0FBQ007QUF1Qko7QUFqQjVCLElBQU0sY0FBYztBQVdwQixJQUFNLHVCQUFlLHlEQUF1QyxDQUFDLE9BQU87UUFJbkI7O0lBSC9DLE1BQU0sRUFBRSxXQUFXLGVBQWUsR0FBRyxZQUFZLElBQUk7SUFDckQsTUFBTSxDQUFDLFNBQVMsVUFBVSxJQUFVLDRDQUFTLEtBQUs7SUFDbEQsa0ZBQWU7a0NBQUMsSUFBTSxXQUFXLElBQUk7aUNBQUcsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sWUFBWSxpQkFBa0IseUhBQXVCLHNGQUFVO0lBQ3JFLE9BQU8sMEJBQ0gsbURBQVMsQ0FBYSx1RUFBQyxnRUFBUyxDQUFDLEtBQVY7UUFBZSxHQUFHO1FBQWEsS0FBSztJQUFBLENBQWMsR0FBSSxTQUFTLElBQ3RGO0FBQ04sQ0FBQzs7QUFFRCxPQUFPLGNBQWM7QUFJckIsSUFBTSxPQUFPIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vc3JjL3BvcnRhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdCc7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcnRhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBQT1JUQUxfTkFNRSA9ICdQb3J0YWwnO1xuXG50eXBlIFBvcnRhbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbnR5cGUgUHJpbWl0aXZlRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFBvcnRhbFByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgY29udGFpbmVyIHdoZXJlIHRoZSBwb3J0YWxlZCBjb250ZW50IHNob3VsZCBiZSBhcHBlbmRlZC5cbiAgICovXG4gIGNvbnRhaW5lcj86IEVsZW1lbnQgfCBEb2N1bWVudEZyYWdtZW50IHwgbnVsbDtcbn1cblxuY29uc3QgUG9ydGFsID0gUmVhY3QuZm9yd2FyZFJlZjxQb3J0YWxFbGVtZW50LCBQb3J0YWxQcm9wcz4oKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBjb250YWluZXI6IGNvbnRhaW5lclByb3AsIC4uLnBvcnRhbFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgW21vdW50ZWQsIHNldE1vdW50ZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4gc2V0TW91bnRlZCh0cnVlKSwgW10pO1xuICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJQcm9wIHx8IChtb3VudGVkICYmIGdsb2JhbFRoaXM/LmRvY3VtZW50Py5ib2R5KTtcbiAgcmV0dXJuIGNvbnRhaW5lclxuICAgID8gUmVhY3RET00uY3JlYXRlUG9ydGFsKDxQcmltaXRpdmUuZGl2IHsuLi5wb3J0YWxQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+LCBjb250YWluZXIpXG4gICAgOiBudWxsO1xufSk7XG5cblBvcnRhbC5kaXNwbGF5TmFtZSA9IFBPUlRBTF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFJvb3QgPSBQb3J0YWw7XG5cbmV4cG9ydCB7XG4gIFBvcnRhbCxcbiAgLy9cbiAgUm9vdCxcbn07XG5leHBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-portal/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive/dist/index.mjs":
/*!**********************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive/dist/index.mjs ***!
\**********************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitive: () => (/* binding */ Primitive),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ dispatchDiscreteCustomEvent: () => (/* binding */ dispatchDiscreteCustomEvent)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/primitive/src/primitive.tsx\n\n\n\n\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__.Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZHJvcGRvd24tbWVudS9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZS9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDK0I7QUFDTztBQUNNO0FBQ0o7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDZDQUFnQjtBQUMvQixZQUFZLDZCQUE2QjtBQUN6QywyQkFBMkIsc0RBQUk7QUFDL0I7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLHNEQUFHLFNBQVMsc0NBQXNDO0FBQzdFLEdBQUc7QUFDSCxrQ0FBa0MsS0FBSztBQUN2QyxXQUFXO0FBQ1gsQ0FBQyxJQUFJO0FBQ0w7QUFDQSxjQUFjLGdEQUFrQjtBQUNoQztBQUNBO0FBS0U7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRyb3Bkb3duLW1lbnUvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvcHJpbWl0aXZlL3NyYy9wcmltaXRpdmUudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCAqIGFzIFJlYWN0RE9NIGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IFNsb3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXNsb3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIE5PREVTID0gW1xuICBcImFcIixcbiAgXCJidXR0b25cIixcbiAgXCJkaXZcIixcbiAgXCJmb3JtXCIsXG4gIFwiaDJcIixcbiAgXCJoM1wiLFxuICBcImltZ1wiLFxuICBcImlucHV0XCIsXG4gIFwibGFiZWxcIixcbiAgXCJsaVwiLFxuICBcIm5hdlwiLFxuICBcIm9sXCIsXG4gIFwicFwiLFxuICBcInNwYW5cIixcbiAgXCJzdmdcIixcbiAgXCJ1bFwiXG5dO1xudmFyIFByaW1pdGl2ZSA9IE5PREVTLnJlZHVjZSgocHJpbWl0aXZlLCBub2RlKSA9PiB7XG4gIGNvbnN0IE5vZGUgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBhc0NoaWxkLCAuLi5wcmltaXRpdmVQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgQ29tcCA9IGFzQ2hpbGQgPyBTbG90IDogbm9kZTtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgd2luZG93W1N5bWJvbC5mb3IoXCJyYWRpeC11aVwiKV0gPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChDb21wLCB7IC4uLnByaW1pdGl2ZVByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KTtcbiAgfSk7XG4gIE5vZGUuZGlzcGxheU5hbWUgPSBgUHJpbWl0aXZlLiR7bm9kZX1gO1xuICByZXR1cm4geyAuLi5wcmltaXRpdmUsIFtub2RlXTogTm9kZSB9O1xufSwge30pO1xuZnVuY3Rpb24gZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50KHRhcmdldCwgZXZlbnQpIHtcbiAgaWYgKHRhcmdldCkgUmVhY3RET00uZmx1c2hTeW5jKCgpID0+IHRhcmdldC5kaXNwYXRjaEV2ZW50KGV2ZW50KSk7XG59XG52YXIgUm9vdCA9IFByaW1pdGl2ZTtcbmV4cG9ydCB7XG4gIFByaW1pdGl2ZSxcbiAgUm9vdCxcbiAgZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-roving-focus/dist/index.mjs":
/*!*************************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-roving-focus/dist/index.mjs ***!
\*************************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Item: () => (/* binding */ Item),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ RovingFocusGroup: () => (/* binding */ RovingFocusGroup),\n/* harmony export */ RovingFocusGroupItem: () => (/* binding */ RovingFocusGroupItem),\n/* harmony export */ createRovingFocusGroupScope: () => (/* binding */ createRovingFocusGroupScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-collection */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-collection/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-direction */ \"(app-pages-browser)/./node_modules/@radix-ui/react-direction/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Item,Root,RovingFocusGroup,RovingFocusGroupItem,createRovingFocusGroupScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$();\n// packages/react/roving-focus/src/roving-focus-group.tsx\n\n\n\n\n\n\n\n\n\n\n\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = (0,_radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_2__.createCollection)(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_3__.createContextScope)(GROUP_NAME, [\n createCollectionScope\n]);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = (props, forwardedRef)=>{\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Provider, {\n scope: props.__scopeRovingFocusGroup,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Slot, {\n scope: props.__scopeRovingFocusGroup,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(RovingFocusGroupImpl, {\n ...props,\n ref: forwardedRef\n })\n })\n });\n});\n_c1 = RovingFocusGroup;\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s((props, forwardedRef)=>{\n _s();\n const { __scopeRovingFocusGroup, orientation, loop = false, dir, currentTabStopId: currentTabStopIdProp, defaultCurrentTabStopId, onCurrentTabStopIdChange, onEntryFocus, preventScrollOnEntryFocus = false, ...groupProps } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs)(forwardedRef, ref);\n const direction = (0,_radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_5__.useDirection)(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_6__.useControllableState)({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const handleEntryFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_7__.useCallbackRef)(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"RovingFocusGroupImpl.useEffect\": ()=>{\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return ({\n \"RovingFocusGroupImpl.useEffect\": ()=>node.removeEventListener(ENTRY_FOCUS, handleEntryFocus)\n })[\"RovingFocusGroupImpl.useEffect\"];\n }\n }\n }[\"RovingFocusGroupImpl.useEffect\"], [\n handleEntryFocus\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(RovingFocusProvider, {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"RovingFocusGroupImpl.useCallback\": (tabStopId)=>setCurrentTabStopId(tabStopId)\n }[\"RovingFocusGroupImpl.useCallback\"], [\n setCurrentTabStopId\n ]),\n onItemShiftTab: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"RovingFocusGroupImpl.useCallback\": ()=>setIsTabbingBackOut(true)\n }[\"RovingFocusGroupImpl.useCallback\"], []),\n onFocusableItemAdd: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"RovingFocusGroupImpl.useCallback\": ()=>setFocusableItemsCount({\n \"RovingFocusGroupImpl.useCallback\": (prevCount)=>prevCount + 1\n }[\"RovingFocusGroupImpl.useCallback\"])\n }[\"RovingFocusGroupImpl.useCallback\"], []),\n onFocusableItemRemove: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"RovingFocusGroupImpl.useCallback\": ()=>setFocusableItemsCount({\n \"RovingFocusGroupImpl.useCallback\": (prevCount)=>prevCount - 1\n }[\"RovingFocusGroupImpl.useCallback\"])\n }[\"RovingFocusGroupImpl.useCallback\"], []),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_8__.Primitive.div, {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: {\n outline: \"none\",\n ...props.style\n },\n onMouseDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onMouseDown, ()=>{\n isClickFocusRef.current = true;\n }),\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onFocus, (event)=>{\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item)=>item.focusable);\n const activeItem = items.find((item)=>item.active);\n const currentItem = items.find((item)=>item.id === currentTabStopId);\n const candidateItems = [\n activeItem,\n currentItem,\n ...items\n ].filter(Boolean);\n const candidateNodes = candidateItems.map((item)=>item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onBlur, ()=>setIsTabbingBackOut(false))\n })\n });\n}, \"CAQSTQZSfY5J/CFBXXLeY0+5JRE=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs,\n _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_5__.useDirection,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_6__.useControllableState,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_7__.useCallbackRef,\n useCollection\n ];\n}));\n_c2 = RovingFocusGroupImpl;\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c3 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeRovingFocusGroup, focusable = true, active = false, tabStopId, ...itemProps } = props;\n const autoId = (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_10__.useId)();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"RovingFocusGroupItem.useEffect\": ()=>{\n if (focusable) {\n onFocusableItemAdd();\n return ({\n \"RovingFocusGroupItem.useEffect\": ()=>onFocusableItemRemove()\n })[\"RovingFocusGroupItem.useEffect\"];\n }\n }\n }[\"RovingFocusGroupItem.useEffect\"], [\n focusable,\n onFocusableItemAdd,\n onFocusableItemRemove\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.ItemSlot, {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_8__.Primitive.span, {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onMouseDown, (event)=>{\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onFocus, ()=>context.onItemFocus(id)),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onKeyDown, (event)=>{\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item)=>item.focusable);\n let candidateNodes = items.map((item)=>item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(()=>focusFirst(candidateNodes));\n }\n })\n })\n });\n}, \"ZggUg4qpA+kNlAlJi32+XZSW+iU=\", false, function() {\n return [\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_10__.useId,\n useRovingFocusContext,\n useCollection\n ];\n})), \"ZggUg4qpA+kNlAlJi32+XZSW+iU=\", false, function() {\n return [\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_10__.useId,\n useRovingFocusContext,\n useCollection\n ];\n});\n_c4 = RovingFocusGroupItem;\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\n \"ArrowLeft\",\n \"ArrowRight\"\n ].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\n \"ArrowUp\",\n \"ArrowDown\"\n ].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates) {\n let preventScroll = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates){\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({\n preventScroll\n });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index)=>array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4;\n$RefreshReg$(_c, \"RovingFocusGroup$React.forwardRef\");\n$RefreshReg$(_c1, \"RovingFocusGroup\");\n$RefreshReg$(_c2, \"RovingFocusGroupImpl\");\n$RefreshReg$(_c3, \"RovingFocusGroupItem$React.forwardRef\");\n$RefreshReg$(_c4, \"RovingFocusGroupItem\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZHJvcGRvd24tbWVudS9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXJvdmluZy1mb2N1cy9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdUI7QUFDYztBQUNKO0FBQ0Q7QUFDRztBQUNiO0FBQ0k7QUFDSztBQUNNO0FBQ1I7QUFnRW5CO0FBNURWLElBQU0sY0FBYztBQUNwQixJQUFNLGdCQUFnQjtJQUFFLFNBQVM7SUFBTyxZQUFZO0FBQUs7QUFNekQsSUFBTSxhQUFhO0FBR25CLElBQU0sQ0FBQyxZQUFZLGVBQWUscUJBQXFCLElBQUksNEVBQWdCLENBR3pFLFVBQVU7QUFHWixJQUFNLENBQUMsK0JBQStCLDJCQUEyQixJQUFJLDJFQUFrQixDQUNyRixZQUNBO0lBQUMscUJBQXFCO0NBQUE7QUErQnhCLElBQU0sQ0FBQyxxQkFBcUIscUJBQXFCLElBQy9DLDhCQUFrRCxVQUFVO0FBSzlELElBQU0saUNBQXlCLG1EQUM3QixDQUFDLE9BQTJDO0lBQzFDLE9BQ0UsdUVBQUMsV0FBVyxVQUFYO1FBQW9CLE9BQU8sTUFBTTtRQUNoQyxpRkFBQyxXQUFXLE1BQVg7WUFBZ0IsT0FBTyxNQUFNO1lBQzVCLGlGQUFDO2dCQUFzQixHQUFHO2dCQUFPLEtBQUs7WUFBQSxDQUFjO1FBQUEsQ0FDdEQ7SUFBQSxDQUNGO0FBRUo7O0FBR0YsaUJBQWlCLGNBQWM7QUFnQi9CLHlDQUFtQyxpREFHakMsQ0FBQyxPQUErQzs7SUFDaEQsTUFBTSxFQUNKLHlCQUNBLGFBQ0EsT0FBTyxPQUNQLEtBQ0Esa0JBQWtCLHNCQUNsQix5QkFDQSwwQkFDQSxjQUNBLDRCQUE0QixPQUM1QixHQUFHLFlBQ0wsR0FBSTtJQUNKLE1BQU0sTUFBWSwwQ0FBb0MsSUFBSTtJQUMxRCxNQUFNLGVBQWUsNkVBQWUsQ0FBQyxjQUFjLEdBQUc7SUFDdEQsTUFBTSxZ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RTtRQUFjLENBQUM7UUFDakMsSUFBSSxTQUFTLGtCQUFrQiwyQkFBNEI7SUFDN0Q7QUFDRjtBQU1BLFNBQVMsVUFBYSxPQUFZLFlBQW9CO0lBQ3BELE9BQU8sTUFBTSxJQUFJLENBQUMsR0FBRyxRQUFVLE9BQU8sYUFBYSxTQUFTLE1BQU0sTUFBTSxDQUFDO0FBQzNFO0FBRUEsSUFBTSxPQUFPO0FBQ2IsSUFBTSxPQUFPIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vc3JjL3JvdmluZy1mb2N1cy1ncm91cC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tICdAcmFkaXgtdWkvcHJpbWl0aXZlJztcbmltcG9ydCB7IGNyZWF0ZUNvbGxlY3Rpb24gfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29sbGVjdGlvbic7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWlkJztcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2tSZWYgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZic7XG5pbXBvcnQgeyB1c2VDb250cm9sbGFibGVTdGF0ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlJztcbmltcG9ydCB7IHVzZURpcmVjdGlvbiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1kaXJlY3Rpb24nO1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuXG5jb25zdCBFTlRSWV9GT0NVUyA9ICdyb3ZpbmdGb2N1c0dyb3VwLm9uRW50cnlGb2N1cyc7XG5jb25zdCBFVkVOVF9PUFRJT05TID0geyBidWJibGVzOiBmYWxzZSwgY2FuY2VsYWJsZTogdHJ1ZSB9O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBSb3ZpbmdGb2N1c0dyb3VwXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IEdST1VQX05BTUUgPSAnUm92aW5nRm9jdXNHcm91cCc7XG5cbnR5cGUgSXRlbURhdGEgPSB7IGlkOiBzdHJpbmc7IGZvY3VzYWJsZTogYm9vbGVhbjsgYWN0aXZlOiBib29sZWFuIH07XG5jb25zdCBbQ29sbGVjdGlvbiwgdXNlQ29sbGVjdGlvbiwgY3JlYXRlQ29sbGVjdGlvblNjb3BlXSA9IGNyZWF0ZUNvbGxlY3Rpb248XG4gIEhUTUxTcGFuRWxlbWVudCxcbiAgSXRlbURhdGFcbj4oR1JPVVBfTkFNRSk7XG5cbnR5cGUgU2NvcGVkUHJvcHM8UD4gPSBQICYgeyBfX3Njb3BlUm92aW5nRm9jdXNHcm91cD86IFNjb3BlIH07XG5jb25zdCBbY3JlYXRlUm92aW5nRm9jdXNHcm91cENvbnRleHQsIGNyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoXG4gIEdST1VQX05BTUUsXG4gIFtjcmVhdGVDb2xsZWN0aW9uU2NvcGVdXG4pO1xuXG50eXBlIE9yaWVudGF0aW9uID0gUmVhY3QuQXJpYUF0dHJpYnV0ZXNbJ2FyaWEtb3JpZW50YXRpb24nXTtcbnR5cGUgRGlyZWN0aW9uID0gJ2x0cicgfCAncnRsJztcblxuaW50ZXJmYWNlIFJvdmluZ0ZvY3VzR3JvdXBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBvcmllbnRhdGlvbiBvZiB0aGUgZ3JvdXAuXG4gICAqIE1haW5seSBzbyBhcnJvdyBuYXZpZ2F0aW9uIGlzIGRvbmUgYWNjb3JkaW5nbHkgKGxlZnQgJiByaWdodCB2cy4gdXAgJiBkb3duKVxuICAgKi9cbiAgb3JpZW50YXRpb24/OiBPcmllbnRhdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rpb24gb2YgbmF2aWdhdGlvbiBiZXR3ZWVuIGl0ZW1zLlxuICAgKi9cbiAgZGlyPzogRGlyZWN0aW9uO1xuICAvKipcbiAgICogV2hldGhlciBrZXlib2FyZCBuYXZpZ2F0aW9uIHNob3VsZCBsb29wIGFyb3VuZFxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICBsb29wPzogYm9vbGVhbjtcbn1cblxudHlwZSBSb3ZpbmdDb250ZXh0VmFsdWUgPSBSb3ZpbmdGb2N1c0dyb3VwT3B0aW9ucyAmIHtcbiAgY3VycmVudFRhYlN0b3BJZDogc3RyaW5nIHwgbnVsbDtcbiAgb25JdGVtRm9jdXModGFiU3RvcElkOiBzdHJpbmcpOiB2b2lkO1xuICBvbkl0ZW1TaGlmdFRhYigpOiB2b2lkO1xuICBvbkZvY3VzYWJsZUl0ZW1BZGQoKTogdm9pZDtcbiAgb25Gb2N1c2FibGVJdGVtUmVtb3ZlKCk6IHZvaWQ7XG59O1xuXG5jb25zdCBbUm92aW5nRm9jdXNQcm92aWRlciwgdXNlUm92aW5nRm9jdXNDb250ZXh0XSA9XG4gIGNyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBDb250ZXh0PFJvdmluZ0NvbnRleHRWYWx1ZT4oR1JPVVBfTkFNRSk7XG5cbnR5cGUgUm92aW5nRm9jdXNHcm91cEVsZW1lbnQgPSBSb3ZpbmdGb2N1c0dyb3VwSW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgUm92aW5nRm9jdXNHcm91cFByb3BzIGV4dGVuZHMgUm92aW5nRm9jdXNHcm91cEltcGxQcm9wcyB7fVxuXG5jb25zdCBSb3ZpbmdGb2N1c0dyb3VwID0gUmVhY3QuZm9yd2FyZFJlZjxSb3ZpbmdGb2N1c0dyb3VwRWxlbWVudCwgUm92aW5nRm9jdXNHcm91cFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxSb3ZpbmdGb2N1c0dyb3VwUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPENvbGxlY3Rpb24uUHJvdmlkZXIgc2NvcGU9e3Byb3BzLl9fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwfT5cbiAgICAgICAgPENvbGxlY3Rpb24uU2xvdCBzY29wZT17cHJvcHMuX19zY29wZVJvdmluZ0ZvY3VzR3JvdXB9PlxuICAgICAgICAgIDxSb3ZpbmdGb2N1c0dyb3VwSW1wbCB7Li4ucHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgICA8L0NvbGxlY3Rpb24uU2xvdD5cbiAgICAgIDwvQ29sbGVjdGlvbi5Qcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG5Sb3ZpbmdGb2N1c0dyb3VwLmRpc3BsYXlOYW1lID0gR1JPVVBfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIFJvdmluZ0ZvY3VzR3JvdXBJbXBsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBQcmltaXRpdmVEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgUm92aW5nRm9jdXNHcm91cEltcGxQcm9wc1xuICBleHRlbmRzIE9taXQ8UHJpbWl0aXZlRGl2UHJvcHMsICdkaXInPixcbiAgICBSb3ZpbmdGb2N1c0dyb3VwT3B0aW9ucyB7XG4gIGN1cnJlbnRUYWJTdG9wSWQ/OiBzdHJpbmcgfCBudWxsO1xuICBkZWZhdWx0Q3VycmVudFRhYlN0b3BJZD86IHN0cmluZztcbiAgb25DdXJyZW50VGFiU3RvcElkQ2hhbmdlPzogKHRhYlN0b3BJZDogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZDtcbiAgb25FbnRyeUZvY3VzPzogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcbiAgcHJldmVudFNjcm9sbE9uRW50cnlGb2N1cz86IGJvb2xlYW47XG59XG5cbmNvbnN0IFJvdmluZ0ZvY3VzR3JvdXBJbXBsID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUm92aW5nRm9jdXNHcm91cEltcGxFbGVtZW50LFxuICBSb3ZpbmdGb2N1c0dyb3VwSW1wbFByb3BzXG4+KChwcm9wczogU2NvcGVkUHJvcHM8Um92aW5nRm9jdXNHcm91cEltcGxQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7XG4gICAgX19zY29wZVJvdmluZ0ZvY3VzR3JvdXAsXG4gICAgb3JpZW50YXRpb24sXG4gICAgbG9vcCA9IGZhbHNlLFxuICAgIGRpcixcbiAgICBjdXJyZW50VGFiU3RvcElkOiBjdXJyZW50VGFiU3RvcElkUHJvcCxcbiAgICBkZWZhdWx0Q3VycmVudFRhYlN0b3BJZCxcbiAgICBvbkN1cnJlbnRUYWJTdG9wSWRDaGFuZ2UsXG4gICAgb25FbnRyeUZvY3VzLFxuICAgIHByZXZlbnRTY3JvbGxPbkVudHJ5Rm9jdXMgPSBmYWxzZSxcbiAgICAuLi5ncm91cFByb3BzXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPFJvdmluZ0ZvY3VzR3JvdXBJbXBsRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG4gIGNvbnN0IGRpcmVjdGlvbiA9IHVzZURpcmVjdGlvbihkaXIpO1xuICBjb25zdCBbY3VycmVudFRhYlN0b3BJZCA9IG51bGwsIHNldEN1cnJlbnRUYWJTdG9wSWRdID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgIHByb3A6IGN1cnJlbnRUYWJTdG9wSWRQcm9wLFxuICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0Q3VycmVudFRhYlN0b3BJZCxcbiAgICBvbkNoYW5nZTogb25DdXJyZW50VGFiU3RvcElkQ2hhbmdlLFxuICB9KTtcbiAgY29uc3QgW2lzVGFiYmluZ0JhY2tPdXQsIHNldElzVGFiYmluZ0JhY2tPdXRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBoYW5kbGVFbnRyeUZvY3VzID0gdXNlQ2FsbGJhY2tSZWYob25FbnRyeUZvY3VzKTtcbiAgY29uc3QgZ2V0SXRlbXMgPSB1c2VDb2xsZWN0aW9uKF9fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwKTtcbiAgY29uc3QgaXNDbGlja0ZvY3VzUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgW2ZvY3VzYWJsZUl0ZW1zQ291bnQsIHNldEZvY3VzYWJsZUl0ZW1zQ291bnRdID0gUmVhY3QudXNlU3RhdGUoMCk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBub2RlID0gcmVmLmN1cnJlbnQ7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihFTlRSWV9GT0NVUywgaGFuZGxlRW50cnlGb2N1cyk7XG4gICAgICByZXR1cm4gKCkgPT4gbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKEVOVFJZX0ZPQ1VTLCBoYW5kbGVFbnRyeUZvY3VzKTtcbiAgICB9XG4gIH0sIFtoYW5kbGVFbnRyeUZvY3VzXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Um92aW5nRm9jdXNQcm92aWRlclxuICAgICAgc2NvcGU9e19fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwfVxuICAgICAgb3JpZW50YXRpb249e29yaWVudGF0aW9ufVxuICAgICAgZGlyPXtkaXJlY3Rpb259XG4gICAgICBsb29wPXtsb29wfVxuICAgICAgY3VycmVudFRhYlN0b3BJZD17Y3VycmVudFRhYlN0b3BJZH1cbiAgICAgIG9uSXRlbUZvY3VzPXtSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgICAgKHRhYlN0b3BJZCkgPT4gc2V0Q3VycmVudFRhYlN0b3BJZCh0YWJTdG9wSWQpLFxuICAgICAgICBbc2V0Q3VycmVudFRhYlN0b3BJZF1cbiAgICAgICl9XG4gICAgICBvbkl0ZW1TaGlmdFRhYj17UmVhY3QudXNlQ2FsbGJhY2soKCkgPT4gc2V0SXNUYWJiaW5nQmFja091dCh0cnVlKSwgW10pfVxuICAgICAgb25Gb2N1c2FibGVJdGVtQWRkPXtSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgICAgKCkgPT4gc2V0Rm9jdXNhYmxlSXRlbXNDb3VudCgocHJldkNvdW50KSA9PiBwcmV2Q291bnQgKyAxKSxcbiAgICAgICAgW11cbiAgICAgICl9XG4gICAgICBvbkZvY3VzYWJsZUl0ZW1SZW1vdmU9e1JlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgICAoKSA9PiBzZXRGb2N1c2FibGVJdGVtc0NvdW50KChwcmV2Q291bnQpID0+IHByZXZDb3VudCAtIDEpLFxuICAgICAgICBbXVxuICAgICAgKX1cbiAgICA+XG4gICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICB0YWJJbmRleD17aXNUYWJiaW5nQmFja091dCB8fCBmb2N1c2FibGVJdGVtc0NvdW50ID09PSAwID8gLTEgOiAwfVxuICAgICAgICBkYXRhLW9yaWVudGF0aW9uPXtvcmllbnRhdGlvbn1cbiAgICAgICAgey4uLmdyb3VwUHJvcHN9XG4gICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICBzdHlsZT17eyBvdXRsaW5lOiAnbm9uZScsIC4uLnByb3BzLnN0eWxlIH19XG4gICAgICAgIG9uTW91c2VEb3duPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbk1vdXNlRG93biwgKCkgPT4ge1xuICAgICAgICAgIGlzQ2xpY2tGb2N1c1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgfSl9XG4gICAgICAgIG9uRm9jdXM9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRm9jdXMsIChldmVudCkgPT4ge1xuICAgICAgICAgIC8vIFdlIG5vcm1hbGx5IHdvdWxkbid0IG5lZWQgdGhpcyBjaGVjaywgYmVjYXVzZSB3ZSBhbHJlYWR5IGNoZWNrXG4gICAgICAgICAgLy8gdGhhdCB0aGUgZm9jdXMgaXMgb24gdGhlIGN1cnJlbnQgdGFyZ2V0IGFuZCBub3QgYnViYmxpbmcgdG8gaXQuXG4gICAgICAgICAgLy8gV2UgZG8gdGhpcyBiZWNhdXNlIFNhZmFyaSBkb2Vzbid0IGZvY3VzIGJ1dHRvbnMgd2hlbiBjbGlja2VkLCBhbmRcbiAgICAgICAgICAvLyBpbnN0ZWFkLCB0aGUgd3JhcHBlciB3aWxsIGdldCBmb2N1c2VkIGFuZCBub3QgdGhyb3VnaCBhIGJ1YmJsaW5nIGV2ZW50LlxuICAgICAgICAgIGNvbnN0IGlzS2V5Ym9hcmRGb2N1cyA9ICFpc0NsaWNrRm9jdXNSZWYuY3VycmVudDtcblxuICAgICAgICAgIGlmIChldmVudC50YXJnZXQgPT09IGV2ZW50LmN1cnJlbnRUYXJnZXQgJiYgaXNLZXlib2FyZEZvY3VzICYmICFpc1RhYmJpbmdCYWNrT3V0KSB7XG4gICAgICAgICAgICBjb25zdCBlbnRyeUZvY3VzRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoRU5UUllfRk9DVVMsIEVWRU5UX09QVElPTlMpO1xuICAgICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5kaXNwYXRjaEV2ZW50KGVudHJ5Rm9jdXNFdmVudCk7XG5cbiAgICAgICAgICAgIGlmICghZW50cnlGb2N1c0V2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSBnZXRJdGVtcygpLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5mb2N1c2FibGUpO1xuICAgICAgICAgICAgICBjb25zdCBhY3RpdmVJdGVtID0gaXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS5hY3RpdmUpO1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IGl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGN1cnJlbnRUYWJTdG9wSWQpO1xuICAgICAgICAgICAgICBjb25zdCBjYW5kaWRhdGVJdGVtcyA9IFthY3RpdmVJdGVtLCBjdXJyZW50SXRlbSwgLi4uaXRlbXNdLmZpbHRlcihcbiAgICAgICAgICAgICAgICBCb29sZWFuXG4gICAgICAgICAgICAgICkgYXMgdHlwZW9mIGl0ZW1zO1xuICAgICAgICAgICAgICBjb25zdCBjYW5kaWRhdGVOb2RlcyA9IGNhbmRpZGF0ZUl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5yZWYuY3VycmVudCEpO1xuICAgICAgICAgICAgICBmb2N1c0ZpcnN0KGNhbmRpZGF0ZU5vZGVzLCBwcmV2ZW50U2Nyb2xsT25FbnRyeUZvY3VzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpc0NsaWNrRm9jdXNSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9KX1cbiAgICAgICAgb25CbHVyPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkJsdXIsICgpID0+IHNldElzVGFiYmluZ0JhY2tPdXQoZmFsc2UpKX1cbiAgICAgIC8+XG4gICAgPC9Sb3ZpbmdGb2N1c1Byb3ZpZGVyPlxuICApO1xufSk7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFJvdmluZ0ZvY3VzR3JvdXBJdGVtXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IElURU1fTkFNRSA9ICdSb3ZpbmdGb2N1c0dyb3VwSXRlbSc7XG5cbnR5cGUgUm92aW5nRm9jdXNJdGVtRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5zcGFuPjtcbnR5cGUgUHJpbWl0aXZlU3BhblByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuc3Bhbj47XG5pbnRlcmZhY2UgUm92aW5nRm9jdXNJdGVtUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVTcGFuUHJvcHMge1xuICB0YWJTdG9wSWQ/OiBzdHJpbmc7XG4gIGZvY3VzYWJsZT86IGJvb2xlYW47XG4gIGFjdGl2ZT86IGJvb2xlYW47XG59XG5cbmNvbnN0IFJvdmluZ0ZvY3VzR3JvdXBJdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxSb3ZpbmdGb2N1c0l0ZW1FbGVtZW50LCBSb3ZpbmdGb2N1c0l0ZW1Qcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8Um92aW5nRm9jdXNJdGVtUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlUm92aW5nRm9jdXNHcm91cCxcbiAgICAgIGZvY3VzYWJsZSA9IHRydWUsXG4gICAgICBhY3RpdmUgPSBmYWxzZSxcbiAgICAgIHRhYlN0b3BJZCxcbiAgICAgIC4uLml0ZW1Qcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGlkID0gdGFiU3RvcElkIHx8IGF1dG9JZDtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlUm92aW5nRm9jdXNDb250ZXh0KElURU1fTkFNRSwgX19zY29wZVJvdmluZ0ZvY3VzR3JvdXApO1xuICAgIGNvbnN0IGlzQ3VycmVudFRhYlN0b3AgPSBjb250ZXh0LmN1cnJlbnRUYWJTdG9wSWQgPT09IGlkO1xuICAgIGNvbnN0IGdldEl0ZW1zID0gdXNlQ29sbGVjdGlvbihfX3Njb3BlUm92aW5nRm9jdXNHcm91cCk7XG5cbiAgICBjb25zdCB7IG9uRm9jdXNhYmxlSXRlbUFkZCwgb25Gb2N1c2FibGVJdGVtUmVtb3ZlIH0gPSBjb250ZXh0O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChmb2N1c2FibGUpIHtcbiAgICAgICAgb25Gb2N1c2FibGVJdGVtQWRkKCk7XG4gICAgICAgIHJldHVybiAoKSA9PiBvbkZvY3VzYWJsZUl0ZW1SZW1vdmUoKTtcbiAgICAgIH1cbiAgICB9LCBbZm9jdXNhYmxlLCBvbkZvY3VzYWJsZUl0ZW1BZGQsIG9uRm9jdXNhYmxlSXRlbVJlbW92ZV0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxDb2xsZWN0aW9uLkl0ZW1TbG90XG4gICAgICAgIHNjb3BlPXtfX3Njb3BlUm92aW5nRm9jdXNHcm91cH1cbiAgICAgICAgaWQ9e2lkfVxuICAgICAgICBmb2N1c2FibGU9e2ZvY3VzYWJsZX1cbiAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICA+XG4gICAgICAgIDxQcmltaXRpdmUuc3BhblxuICAgICAgICAgIHRhYkluZGV4PXtpc0N1cnJlbnRUYWJTdG9wID8gMCA6IC0xfVxuICAgICAgICAgIGRhdGEtb3JpZW50YXRpb249e2NvbnRleHQub3JpZW50YXRpb259XG4gICAgICAgICAgey4uLml0ZW1Qcm9wc31cbiAgICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgICBvbk1vdXNlRG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Nb3VzZURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgLy8gV2UgcHJldmVudCBmb2N1c2luZyBub24tZm9jdXNhYmxlIGl0ZW1zIG9uIGBtb3VzZWRvd25gLlxuICAgICAgICAgICAgLy8gRXZlbiB0aG91Z2ggdGhlIGl0ZW0gaGFzIHRhYkluZGV4PXstMX0sIHRoYXQgb25seSBtZWFucyB0YWtlIGl0IG91dCBvZiB0aGUgdGFiIG9yZGVyLlxuICAgICAgICAgICAgaWYgKCFmb2N1c2FibGUpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAvLyBTYWZhcmkgZG9lc24ndCBmb2N1cyBhIGJ1dHRvbiB3aGVuIGNsaWNrZWQgc28gd2UgcnVuIG91ciBsb2dpYyBvbiBtb3VzZWRvd24gYWxzb1xuICAgICAgICAgICAgZWxzZSBjb250ZXh0Lm9uSXRlbUZvY3VzKGlkKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBvbkZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkZvY3VzLCAoKSA9PiBjb250ZXh0Lm9uSXRlbUZvY3VzKGlkKSl9XG4gICAgICAgICAgb25LZXlEb3duPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicgJiYgZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5vbkl0ZW1TaGlmdFRhYigpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChldmVudC50YXJnZXQgIT09IGV2ZW50LmN1cnJlbnRUYXJnZXQpIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3QgZm9jdXNJbnRlbnQgPSBnZXRGb2N1c0ludGVudChldmVudCwgY29udGV4dC5vcmllbnRhdGlvbiwgY29udGV4dC5kaXIpO1xuXG4gICAgICAgICAgICBpZiAoZm9jdXNJbnRlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBpZiAoZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5zaGlmdEtleSkgcmV0dXJuO1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IGdldEl0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmZvY3VzYWJsZSk7XG4gICAgICAgICAgICAgIGxldCBjYW5kaWRhdGVOb2RlcyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5yZWYuY3VycmVudCEpO1xuXG4gICAgICAgICAgICAgIGlmIChmb2N1c0ludGVudCA9PT0gJ2xhc3QnKSBjYW5kaWRhdGVOb2Rlcy5yZXZlcnNlKCk7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGZvY3VzSW50ZW50ID09PSAncHJldicgfHwgZm9jdXNJbnRlbnQgPT09ICduZXh0Jykge1xuICAgICAgICAgICAgICAgIGlmIChmb2N1c0ludGVudCA9PT0gJ3ByZXYnKSBjYW5kaWRhdGVOb2Rlcy5yZXZlcnNlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY2FuZGlkYXRlTm9kZXMuaW5kZXhPZihldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBjYW5kaWRhdGVOb2RlcyA9IGNvbnRleHQubG9vcFxuICAgICAgICAgICAgICAgICAgPyB3cmFwQXJyYXkoY2FuZGlkYXRlTm9kZXMsIGN1cnJlbnRJbmRleCArIDEpXG4gICAgICAgICAgICAgICAgICA6IGNhbmRpZGF0ZU5vZGVzLnNsaWNlKGN1cnJlbnRJbmRleCArIDEpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAqIEltcGVyYXRpdmUgZm9jdXMgZHVyaW5nIGtleWRvd24gaXMgcmlza3kgc28gd2UgcHJldmVudCBSZWFjdCdzIGJhdGNoaW5nIHVwZGF0ZXNcbiAgICAgICAgICAgICAgICogdG8gYXZvaWQgcG90ZW50aWFsIGJ1Z3MuIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8yMDMzMlxuICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBmb2N1c0ZpcnN0KGNhbmRpZGF0ZU5vZGVzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSl9XG4gICAgICAgIC8+XG4gICAgICA8L0NvbGxlY3Rpb24uSXRlbVNsb3Q+XG4gICAgKTtcbiAgfVxuKTtcblxuUm92aW5nRm9jdXNHcm91cEl0ZW0uZGlzcGxheU5hbWUgPSBJVEVNX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gcHJldHRpZXItaWdub3JlXG5jb25zdCBNQVBfS0VZX1RPX0ZPQ1VTX0lOVEVOVDogUmVjb3JkPHN0cmluZywgRm9jdXNJbnRlbnQ+ID0ge1xuICBBcnJvd0xlZnQ6ICdwcmV2JywgQXJyb3dVcDogJ3ByZXYnLFxuICBBcnJvd1JpZ2h0OiAnbmV4dCcsIEFycm93RG93bjogJ25leHQnLFxuICBQYWdlVXA6ICdmaXJzdCcsIEhvbWU6ICdmaXJzdCcsXG4gIFBhZ2VEb3duOiAnbGFzdCcsIEVuZDogJ2xhc3QnLFxufTtcblxuZnVuY3Rpb24gZ2V0RGlyZWN0aW9uQXdhcmVLZXkoa2V5OiBzdHJpbmcsIGRpcj86IERpcmVjdGlvbikge1xuICBpZiAoZGlyICE9PSAncnRsJykgcmV0dXJuIGtleTtcbiAgcmV0dXJuIGtleSA9PT0gJ0Fycm93TGVmdCcgPyAnQXJyb3dSaWdodCcgOiBrZXkgPT09ICdBcnJvd1JpZ2h0JyA/ICdBcnJvd0xlZnQnIDoga2V5O1xufVxuXG50eXBlIEZvY3VzSW50ZW50ID0gJ2ZpcnN0JyB8ICdsYXN0JyB8ICdwcmV2JyB8ICduZXh0JztcblxuZnVuY3Rpb24gZ2V0Rm9jdXNJbnRlbnQoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQsIG9yaWVudGF0aW9uPzogT3JpZW50YXRpb24sIGRpcj86IERpcmVjdGlvbikge1xuICBjb25zdCBrZXkgPSBnZXREaXJlY3Rpb25Bd2FyZUtleShldmVudC5rZXksIGRpcik7XG4gIGlmIChvcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyAmJiBbJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0J10uaW5jbHVkZXMoa2V5KSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgaWYgKG9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcgJiYgWydBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKGtleSkpIHJldHVybiB1bmRlZmluZWQ7XG4gIHJldHVybiBNQVBfS0VZX1RPX0ZPQ1VTX0lOVEVOVFtrZXldO1xufVxuXG5mdW5jdGlvbiBmb2N1c0ZpcnN0KGNhbmRpZGF0ZXM6IEhUTUxFbGVtZW50W10sIHByZXZlbnRTY3JvbGwgPSBmYWxzZSkge1xuICBjb25zdCBQUkVWSU9VU0xZX0ZPQ1VTRURfRUxFTUVOVCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICAvLyBpZiBmb2N1cyBpcyBhbHJlYWR5IHdoZXJlIHdlIHdhbnQgdG8gZ28sIHdlIGRvbid0IHdhbnQgdG8ga2VlcCBnb2luZyB0aHJvdWdoIHRoZSBjYW5kaWRhdGVzXG4gICAgaWYgKGNhbmRpZGF0ZSA9PT0gUFJFVklPVVNMWV9GT0NVU0VEX0VMRU1FTlQpIHJldHVybjtcbiAgICBjYW5kaWRhdGUuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsIH0pO1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBQUkVWSU9VU0xZX0ZPQ1VTRURfRUxFTUVOVCkgcmV0dXJuO1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYW4gYXJyYXkgYXJvdW5kIGl0c2VsZiBhdCBhIGdpdmVuIHN0YXJ0IGluZGV4XG4gKiBFeGFtcGxlOiBgd3JhcEFycmF5KFsnYScsICdiJywgJ2MnLCAnZCddLCAyKSA9PT0gWydjJywgJ2QnLCAnYScsICdiJ11gXG4gKi9cbmZ1bmN0aW9uIHdyYXBBcnJheTxUPihhcnJheTogVFtdLCBzdGFydEluZGV4OiBudW1iZXIpIHtcbiAgcmV0dXJuIGFycmF5Lm1hcCgoXywgaW5kZXgpID0+IGFycmF5WyhzdGFydEluZGV4ICsgaW5kZXgpICUgYXJyYXkubGVuZ3RoXSk7XG59XG5cbmNvbnN0IFJvb3QgPSBSb3ZpbmdGb2N1c0dyb3VwO1xuY29uc3QgSXRlbSA9IFJvdmluZ0ZvY3VzR3JvdXBJdGVtO1xuXG5leHBvcnQge1xuICBjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwU2NvcGUsXG4gIC8vXG4gIFJvdmluZ0ZvY3VzR3JvdXAsXG4gIFJvdmluZ0ZvY3VzR3JvdXBJdGVtLFxuICAvL1xuICBSb290LFxuICBJdGVtLFxufTtcbmV4cG9ydCB0eXBlIHsgUm92aW5nRm9jdXNHcm91cFByb3BzLCBSb3ZpbmdGb2N1c0l0ZW1Qcm9wcyB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-roving-focus/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs":
/*!******************************************************************!*\
!*** ./node_modules/@radix-ui/react-focus-guards/dist/index.mjs ***!
\******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FocusGuards: () => (/* binding */ FocusGuards),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ useFocusGuards: () => (/* binding */ useFocusGuards)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ FocusGuards,Root,useFocusGuards auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$();\n// packages/react/focus-guards/src/FocusGuards.tsx\n\nvar count = 0;\nfunction FocusGuards(props) {\n _s();\n useFocusGuards();\n return props.children;\n}\n_s(FocusGuards, \"x7paK38h0ScOLuskCuHf4USVPMM=\", false, function() {\n return [\n useFocusGuards\n ];\n});\n_c = FocusGuards;\nfunction useFocusGuards() {\n _s1();\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"useFocusGuards.useEffect\": ()=>{\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n var _edgeGuards_;\n document.body.insertAdjacentElement(\"afterbegin\", (_edgeGuards_ = edgeGuards[0]) !== null && _edgeGuards_ !== void 0 ? _edgeGuards_ : createFocusGuard());\n var _edgeGuards_1;\n document.body.insertAdjacentElement(\"beforeend\", (_edgeGuards_1 = edgeGuards[1]) !== null && _edgeGuards_1 !== void 0 ? _edgeGuards_1 : createFocusGuard());\n count++;\n return ({\n \"useFocusGuards.useEffect\": ()=>{\n if (count === 1) {\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach({\n \"useFocusGuards.useEffect\": (node)=>node.remove()\n }[\"useFocusGuards.useEffect\"]);\n }\n count--;\n }\n })[\"useFocusGuards.useEffect\"];\n }\n }[\"useFocusGuards.useEffect\"], []);\n}\n_s1(useFocusGuards, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\nvar Root = FocusGuards;\n //# sourceMappingURL=index.mjs.map\nvar _c;\n$RefreshReg$(_c, \"FocusGuards\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZm9jdXMtZ3VhcmRzL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUF1QjtBQUd2QixJQUFJLFFBQVE7QUFFWixxQkFBcUIsT0FBWTs7SUFDL0I7SUFDQSxPQUFPLE1BQU07QUFDZjs7O1FBRkU7OztLQURPO0FBU1Q7O0lBQ1E7b0NBQVU7WUFDZCxNQUFNLGFBQWEsU0FBUyxpQkFBaUIsMEJBQTBCOztZQUN2RSxTQUFTLEtBQUssc0JBQXNCLGVBQWMsMEJBQVcsQ0FBQyx3REFBSyxpQkFBaUIsQ0FBQzs7WUFDckYsU0FBUyxLQUFLLHNCQUFzQixjQUFhLDJCQUFXLENBQUMsMERBQUssaUJBQWlCLENBQUM7WUFDcEY7WUFFQTs0Q0FBTztvQkFDTCxJQUFJLFVBQVUsR0FBRzt3QkFDZixTQUFTLGlCQUFpQiwwQkFBMEIsRUFBRTt3REFBUSxDQUFDLE9BQVMsS0FBSyxPQUFPLENBQUM7O29CQUN2RjtvQkFDQTtnQkFDRjs7UUFDRjttQ0FBRyxDQUFDLENBQUM7QUFDUDtJQWRTLGlCQUFpQjtBQWdCMUIsU0FBUyxtQkFBbUI7SUFDMUIsTUFBTSxVQUFVLFNBQVMsY0FBYyxNQUFNO0lBQzdDLFFBQVEsYUFBYSwwQkFBMEIsRUFBRTtJQUNqRCxRQUFRLFdBQVc7SUFDbkIsUUFBUSxNQUFNLFVBQVU7SUFDeEIsUUFBUSxNQUFNLFVBQVU7SUFDeEIsUUFBUSxNQUFNLFdBQVc7SUFDekIsUUFBUSxNQUFNLGdCQUFnQjtJQUM5QixPQUFPO0FBQ1Q7QUFFQSxJQUFNLE9BQU8iLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9zcmMvRm9jdXNHdWFyZHMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcblxuLyoqIE51bWJlciBvZiBjb21wb25lbnRzIHdoaWNoIGhhdmUgcmVxdWVzdGVkIGludGVyZXN0IHRvIGhhdmUgZm9jdXMgZ3VhcmRzICovXG5sZXQgY291bnQgPSAwO1xuXG5mdW5jdGlvbiBGb2N1c0d1YXJkcyhwcm9wczogYW55KSB7XG4gIHVzZUZvY3VzR3VhcmRzKCk7XG4gIHJldHVybiBwcm9wcy5jaGlsZHJlbjtcbn1cblxuLyoqXG4gKiBJbmplY3RzIGEgcGFpciBvZiBmb2N1cyBndWFyZHMgYXQgdGhlIGVkZ2VzIG9mIHRoZSB3aG9sZSBET00gdHJlZVxuICogdG8gZW5zdXJlIGBmb2N1c2luYCAmIGBmb2N1c291dGAgZXZlbnRzIGNhbiBiZSBjYXVnaHQgY29uc2lzdGVudGx5LlxuICovXG5mdW5jdGlvbiB1c2VGb2N1c0d1YXJkcygpIHtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlZGdlR3VhcmRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtcmFkaXgtZm9jdXMtZ3VhcmRdJyk7XG4gICAgZG9jdW1lbnQuYm9keS5pbnNlcnRBZGphY2VudEVsZW1lbnQoJ2FmdGVyYmVnaW4nLCBlZGdlR3VhcmRzWzBdID8/IGNyZWF0ZUZvY3VzR3VhcmQoKSk7XG4gICAgZG9jdW1lbnQuYm9keS5pbnNlcnRBZGphY2VudEVsZW1lbnQoJ2JlZm9yZWVuZCcsIGVkZ2VHdWFyZHNbMV0gPz8gY3JlYXRlRm9jdXNHdWFyZCgpKTtcbiAgICBjb3VudCsrO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChjb3VudCA9PT0gMSkge1xuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1yYWRpeC1mb2N1cy1ndWFyZF0nKS5mb3JFYWNoKChub2RlKSA9PiBub2RlLnJlbW92ZSgpKTtcbiAgICAgIH1cbiAgICAgIGNvdW50LS07XG4gICAgfTtcbiAgfSwgW10pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGb2N1c0d1YXJkKCkge1xuICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1yYWRpeC1mb2N1cy1ndWFyZCcsICcnKTtcbiAgZWxlbWVudC50YWJJbmRleCA9IDA7XG4gIGVsZW1lbnQuc3R5bGUub3V0bGluZSA9ICdub25lJztcbiAgZWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICBlbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgZWxlbWVudC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xuICByZXR1cm4gZWxlbWVudDtcbn1cblxuY29uc3QgUm9vdCA9IEZvY3VzR3VhcmRzO1xuXG5leHBvcnQge1xuICBGb2N1c0d1YXJkcyxcbiAgLy9cbiAgUm9vdCxcbiAgLy9cbiAgdXNlRm9jdXNHdWFyZHMsXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-focus-scope/dist/index.mjs":
/*!*****************************************************************!*\
!*** ./node_modules/@radix-ui/react-focus-scope/dist/index.mjs ***!
\*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FocusScope: () => (/* binding */ FocusScope),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ FocusScope,Root auto */ var _s = $RefreshSig$();\n// packages/react/focus-scope/src/FocusScope.tsx\n\n\n\n\n\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n _s();\n const { loop = false, trapped = false, onMountAutoFocus: onMountAutoFocusProp, onUnmountAutoFocus: onUnmountAutoFocusProp, ...scopeProps } = props;\n const [container, setContainer] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const onMountAutoFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef)(onMountAutoFocusProp);\n const onUnmountAutoFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef)(onUnmountAutoFocusProp);\n const lastFocusedElementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, {\n \"FocusScope.useComposedRefs[composedRefs]\": (node)=>setContainer(node)\n }[\"FocusScope.useComposedRefs[composedRefs]\"]);\n const focusScope = react__WEBPACK_IMPORTED_MODULE_0__.useRef({\n paused: false,\n pause () {\n this.paused = true;\n },\n resume () {\n this.paused = false;\n }\n }).current;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"FocusScope.useEffect\": ()=>{\n if (trapped) {\n let handleFocusIn2 = {\n \"FocusScope.useEffect.handleFocusIn2\": function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n }\n }[\"FocusScope.useEffect.handleFocusIn2\"], handleFocusOut2 = {\n \"FocusScope.useEffect.handleFocusOut2\": function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n }\n }[\"FocusScope.useEffect.handleFocusOut2\"], handleMutations2 = {\n \"FocusScope.useEffect.handleMutations2\": function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations){\n if (mutation.removedNodes.length > 0) focus(container);\n }\n }\n }[\"FocusScope.useEffect.handleMutations2\"];\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, {\n childList: true,\n subtree: true\n });\n return ({\n \"FocusScope.useEffect\": ()=>{\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n }\n })[\"FocusScope.useEffect\"];\n }\n }\n }[\"FocusScope.useEffect\"], [\n trapped,\n container,\n focusScope.paused\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"FocusScope.useEffect\": ()=>{\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), {\n select: true\n });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return ({\n \"FocusScope.useEffect\": ()=>{\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout({\n \"FocusScope.useEffect\": ()=>{\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {\n select: true\n });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }\n }[\"FocusScope.useEffect\"], 0);\n }\n })[\"FocusScope.useEffect\"];\n }\n }\n }[\"FocusScope.useEffect\"], [\n container,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope\n ]);\n const handleKeyDown = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"FocusScope.useCallback[handleKeyDown]\": (event)=>{\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, {\n select: true\n });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, {\n select: true\n });\n }\n }\n }\n }\n }[\"FocusScope.useCallback[handleKeyDown]\"], [\n loop,\n trapped,\n focusScope.paused\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n tabIndex: -1,\n ...scopeProps,\n ref: composedRefs,\n onKeyDown: handleKeyDown\n });\n}, \"l+MhPHbysTuaMVA0Nuk5lsharoc=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n})), \"l+MhPHbysTuaMVA0Nuk5lsharoc=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n});\n_c1 = FocusScope;\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates) {\n let { select = false } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates){\n focus(candidate, {\n select\n });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [\n first,\n last\n ];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node)=>{\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while(walker.nextNode())nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements){\n if (!isHidden(element, {\n upTo: container\n })) return element;\n }\n}\nfunction isHidden(node, param) {\n let { upTo } = param;\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while(node){\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element) {\n let { select = false } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({\n preventScroll: true\n });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select) element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add (focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope === null || activeFocusScope === void 0 ? void 0 : activeFocusScope.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove (focusScope) {\n var _stack_;\n stack = arrayRemove(stack, focusScope);\n (_stack_ = stack[0]) === null || _stack_ === void 0 ? void 0 : _stack_.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [\n ...array\n ];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item)=>item.tagName !== \"A\");\n}\nvar Root = FocusScope;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1;\n$RefreshReg$(_c, \"FocusScope$React.forwardRef\");\n$RefreshReg$(_c1, \"FocusScope\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtZm9jdXMtc2NvcGUvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQXVCO0FBQ1M7QUFDTjtBQUNLO0FBd00zQjtBQXRNSixJQUFNLHFCQUFxQjtBQUMzQixJQUFNLHVCQUF1QjtBQUM3QixJQUFNLGdCQUFnQjtJQUFFLFNBQVM7SUFBTyxZQUFZO0FBQUs7QUFRekQsSUFBTSxtQkFBbUI7QUFnQ3pCLElBQU0sOEJBQW1CLHNEQUErQyxDQUFDLE9BQU87O0lBQzlFLE1BQU0sRUFDSixPQUFPLE9BQ1AsVUFBVSxPQUNWLGtCQUFrQixzQkFDbEIsb0JBQW9CLHdCQUNwQixHQUFHLFlBQ0wsR0FBSTtJQUNKLE1BQU0sQ0FBQyxXQUFXLFlBQVksSUFBVSw0Q0FBNkIsSUFBSTtJQUN6RSxNQUFNLG1CQUFtQixnRkFBYyxDQUFDLG9CQUFvQjtJQUM1RCxNQUFNLHFCQUFxQixnRkFBYyxDQUFDLHNCQUFzQjtJQUNoRSxNQUFNLHdCQUE4QiwwQ0FBMkIsSUFBSTtJQUNuRSxNQUFNLGVBQWUsNkVBQWUsQ0FBQztvREFBYyxDQUFDLE9BQVMsYUFBYSxJQUFJLENBQUM7O0lBRS9FLE1BQU0sYUFBbUIsMENBQU87UUFDOUIsUUFBUTtRQUNSLFFBQVE7WUFDTixLQUFLLFNBQVM7UUFDaEI7UUFDQSxTQUFTO1lBQ1AsS0FBSyxTQUFTO1FBQ2hCO0lBQ0YsQ0FBQyxFQUFFO0lBR0c7Z0NBQVU7WUFDZCxJQUFJLFNBQVM7Z0JBQ1gsSUFBU0E7MkRBQVQsU0FBdUIsT0FBbUI7d0JBQ3hDLElBQUksV0FBVyxVQUFVLENBQUMsVUFBVzt3QkFDckMsTUFBTSxTQUFTLE1BQU07d0JBQ3JCLElBQUksVUFBVSxTQUFTLE1BQU0sR0FBRzs0QkFDOUIsc0JBQXNCLFVBQVU7d0JBQ2xDLE9BQU87NEJBQ0wsTUFBTSxzQkFBc0IsU0FBUztnQ0FBRSxRQUFROzRCQUFLLENBQUM7d0JB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Q2hDLElBQUksZUFBZSxrQkFBa0I7Z0JBQ25DLHFGQUFrQixNQUFNO1lBQzFCO1lBRUEsUUFBUSxZQUFZLE9BQU8sVUFBVTtZQUNyQyxNQUFNLFFBQVEsVUFBVTtRQUMxQjtRQUVBLFFBQU8sWUFBMkI7Z0JBRWhDO1lBREEsUUFBUSxZQUFZLE9BQU8sVUFBVTthQUNyQyxnQkFBTSxDQUFDLGVBQVAsc0NBQVUsT0FBTztRQUNuQjtJQUNGO0FBQ0Y7QUFFQSxTQUFTLFlBQWUsT0FBWSxNQUFTO0lBQzNDLE1BQU0sZUFBZSxDQUFDO1dBQUcsS0FBSztLQUFBO0lBQzlCLE1BQU0sUUFBUSxhQUFhLFFBQVEsSUFBSTtJQUN2QyxJQUFJLFVBQVUsSUFBSTtRQUNoQixhQUFhLE9BQU8sT0FBTyxDQUFDO0lBQzlCO0lBQ0EsT0FBTztBQUNUO0FBRUEsU0FBUyxZQUFZLE9BQXNCO0lBQ3pDLE9BQU8sTUFBTSxPQUFPLENBQUMsT0FBUyxLQUFLLFlBQVksR0FBRztBQUNwRDtBQUVBLElBQU0sT0FBTyIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL3NyYy9Gb2N1c1Njb3BlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2tSZWYgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZic7XG5cbmNvbnN0IEFVVE9GT0NVU19PTl9NT1VOVCA9ICdmb2N1c1Njb3BlLmF1dG9Gb2N1c09uTW91bnQnO1xuY29uc3QgQVVUT0ZPQ1VTX09OX1VOTU9VTlQgPSAnZm9jdXNTY29wZS5hdXRvRm9jdXNPblVubW91bnQnO1xuY29uc3QgRVZFTlRfT1BUSU9OUyA9IHsgYnViYmxlczogZmFsc2UsIGNhbmNlbGFibGU6IHRydWUgfTtcblxudHlwZSBGb2N1c2FibGVUYXJnZXQgPSBIVE1MRWxlbWVudCB8IHsgZm9jdXMoKTogdm9pZCB9O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBGb2N1c1Njb3BlXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IEZPQ1VTX1NDT1BFX05BTUUgPSAnRm9jdXNTY29wZSc7XG5cbnR5cGUgRm9jdXNTY29wZUVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbnR5cGUgUHJpbWl0aXZlRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIEZvY3VzU2NvcGVQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHtcbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCB0YWJiaW5nIGZyb20gbGFzdCBpdGVtIHdpbGwgZm9jdXMgZmlyc3QgdGFiYmFibGVcbiAgICogYW5kIHNoaWZ0K3RhYiBmcm9tIGZpcnN0IGl0ZW0gd2lsbCBmb2N1cyBsYXN0IHRhYmFiYmxlLlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICBsb29wPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIGZvY3VzIGNhbm5vdCBlc2NhcGUgdGhlIGZvY3VzIHNjb3BlIHZpYSBrZXlib2FyZCxcbiAgICogcG9pbnRlciwgb3IgYSBwcm9ncmFtbWF0aWMgZm9jdXMuXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHRyYXBwZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIGF1dG8tZm9jdXNpbmcgb24gbW91bnQuXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvbk1vdW50QXV0b0ZvY3VzPzogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiBhdXRvLWZvY3VzaW5nIG9uIHVubW91bnQuXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvblVubW91bnRBdXRvRm9jdXM/OiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xufVxuXG5jb25zdCBGb2N1c1Njb3BlID0gUmVhY3QuZm9yd2FyZFJlZjxGb2N1c1Njb3BlRWxlbWVudCwgRm9jdXNTY29wZVByb3BzPigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7XG4gICAgbG9vcCA9IGZhbHNlLFxuICAgIHRyYXBwZWQgPSBmYWxzZSxcbiAgICBvbk1vdW50QXV0b0ZvY3VzOiBvbk1vdW50QXV0b0ZvY3VzUHJvcCxcbiAgICBvblVubW91bnRBdXRvRm9jdXM6IG9uVW5tb3VudEF1dG9Gb2N1c1Byb3AsXG4gICAgLi4uc2NvcGVQcm9wc1xuICB9ID0gcHJvcHM7XG4gIGNvbnN0IFtjb250YWluZXIsIHNldENvbnRhaW5lcl0gPSBSZWFjdC51c2VTdGF0ZTxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBvbk1vdW50QXV0b0ZvY3VzID0gdXNlQ2FsbGJhY2tSZWYob25Nb3VudEF1dG9Gb2N1c1Byb3ApO1xuICBjb25zdCBvblVubW91bnRBdXRvRm9jdXMgPSB1c2VDYWxsYmFja1JlZihvblVubW91bnRBdXRvRm9jdXNQcm9wKTtcbiAgY29uc3QgbGFzdEZvY3VzZWRFbGVtZW50UmVmID0gUmVhY3QudXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIChub2RlKSA9PiBzZXRDb250YWluZXIobm9kZSkpO1xuXG4gIGNvbnN0IGZvY3VzU2NvcGUgPSBSZWFjdC51c2VSZWYoe1xuICAgIHBhdXNlZDogZmFsc2UsXG4gICAgcGF1c2UoKSB7XG4gICAgICB0aGlzLnBhdXNlZCA9IHRydWU7XG4gICAgfSxcbiAgICByZXN1bWUoKSB7XG4gICAgICB0aGlzLnBhdXNlZCA9IGZhbHNlO1xuICAgIH0sXG4gIH0pLmN1cnJlbnQ7XG5cbiAgLy8gVGFrZXMgY2FyZSBvZiB0cmFwcGluZyBmb2N1cyBpZiBmb2N1cyBpcyBtb3ZlZCBvdXRzaWRlIHByb2dyYW1tYXRpY2FsbHkgZm9yIGV4YW1wbGVcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHJhcHBlZCkge1xuICAgICAgZnVuY3Rpb24gaGFuZGxlRm9jdXNJbihldmVudDogRm9jdXNFdmVudCkge1xuICAgICAgICBpZiAoZm9jdXNTY29wZS5wYXVzZWQgfHwgIWNvbnRhaW5lcikgcmV0dXJuO1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgICBpZiAoY29udGFpbmVyLmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgICBsYXN0Rm9jdXNlZEVsZW1lbnRSZWYuY3VycmVudCA9IHRhcmdldDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb2N1cyhsYXN0Rm9jdXNlZEVsZW1lbnRSZWYuY3VycmVudCwgeyBzZWxlY3Q6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gaGFuZGxlRm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgaWYgKGZvY3VzU2NvcGUucGF1c2VkIHx8ICFjb250YWluZXIpIHJldHVybjtcbiAgICAgICAgY29uc3QgcmVsYXRlZFRhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgICAgIC8vIEEgYGZvY3Vzb3V0YCBldmVudCB3aXRoIGEgYG51bGxgIGByZWxhdGVkVGFyZ2V0YCB3aWxsIGhhcHBlbiBpbiBhdCBsZWFzdCB0d28gY2FzZXM6XG4gICAgICAgIC8vXG4gICAgICAgIC8vIDEuIFdoZW4gdGhlIHVzZXIgc3dpdGNoZXMgYXBwL3RhYnMvd2luZG93cy90aGUgYnJvd3NlciBpdHNlbGYgbG9zZXMgZm9jdXMuXG4gICAgICAgIC8vIDIuIEluIEdvb2dsZSBDaHJvbWUsIHdoZW4gdGhlIGZvY3VzZWQgZWxlbWVudCBpcyByZW1vdmVkIGZyb20gdGhlIERPTS5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gV2UgbGV0IHRoZSBicm93c2VyIGRvIGl0cyB0aGluZyBoZXJlIGJlY2F1c2U6XG4gICAgICAgIC8vXG4gICAgICAgIC8vIDEuIFRoZSBicm93c2VyIGFscmVhZHkga2VlcHMgYSBtZW1vcnkgb2Ygd2hhdCdzIGZvY3VzZWQgZm9yIHdoZW4gdGhlIHBhZ2UgZ2V0cyByZWZvY3VzZWQuXG4gICAgICAgIC8vIDIuIEluIEdvb2dsZSBDaHJvbWUsIGlmIHdlIHRyeSB0byBmb2N1cyB0aGUgZGVsZXRlZCBmb2N1c2VkIGVsZW1lbnQgKGFzIHBlciBiZWxvdyksIGl0XG4gICAgICAgIC8vICAgIHRocm93cyB0aGUgQ1BVIHRvIDEwMCUsIHNvIHdlIGF2b2lkIGRvaW5nIGFueXRoaW5nIGZvciB0aGlzIHJlYXNvbiBoZXJlIHRvby5cbiAgICAgICAgaWYgKHJlbGF0ZWRUYXJnZXQgPT09IG51bGwpIHJldHVybjtcblxuICAgICAgICAvLyBJZiB0aGUgZm9jdXMgaGFzIG1vdmVkIHRvIGFuIGFjdHVhbCBsZWdpdGltYXRlIGVsZW1lbnQgKGByZWxhdGVkVGFyZ2V0ICE9PSBudWxsYClcbiAgICAgICAgLy8gdGhhdCBpcyBvdXRzaWRlIHRoZSBjb250YWluZXIsIHdlIG1vdmUgZm9jdXMgdG8gdGhlIGxhc3QgdmFsaWQgZm9jdXNlZCBlbGVtZW50IGluc2lkZS5cbiAgICAgICAgaWYgKCFjb250YWluZXIuY29udGFpbnMocmVsYXRlZFRhcmdldCkpIHtcbiAgICAgICAgICBmb2N1cyhsYXN0Rm9jdXNlZEVsZW1lbnRSZWYuY3VycmVudCwgeyBzZWxlY3Q6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gV2hlbiB0aGUgZm9jdXNlZCBlbGVtZW50IGdldHMgcmVtb3ZlZCBmcm9tIHRoZSBET00sIGJyb3dzZXJzIG1vdmUgZm9jdXNcbiAgICAgIC8vIGJhY2sgdG8gdGhlIGRvY3VtZW50LmJvZHkuIEluIHRoaXMgY2FzZSwgd2UgbW92ZSBmb2N1cyB0byB0aGUgY29udGFpbmVyXG4gICAgICAvLyB0byBrZWVwIGZvY3VzIHRyYXBwZWQgY29ycmVjdGx5LlxuICAgICAgZnVuY3Rpb24gaGFuZGxlTXV0YXRpb25zKG11dGF0aW9uczogTXV0YXRpb25SZWNvcmRbXSkge1xuICAgICAgICBjb25zdCBmb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgICBpZiAoZm9jdXNlZEVsZW1lbnQgIT09IGRvY3VtZW50LmJvZHkpIHJldHVybjtcbiAgICAgICAgZm9yIChjb25zdCBtdXRhdGlvbiBvZiBtdXRhdGlvbnMpIHtcbiAgICAgICAgICBpZiAobXV0YXRpb24ucmVtb3ZlZE5vZGVzLmxlbmd0aCA+IDApIGZvY3VzKGNvbnRhaW5lcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIGhhbmRsZUZvY3VzSW4pO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCBoYW5kbGVGb2N1c091dCk7XG4gICAgICBjb25zdCBtdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoaGFuZGxlTXV0YXRpb25zKTtcbiAgICAgIGlmIChjb250YWluZXIpIG11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShjb250YWluZXIsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c2luJywgaGFuZGxlRm9jdXNJbik7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgaGFuZGxlRm9jdXNPdXQpO1xuICAgICAgICBtdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH07XG4gICAgfVxuICB9LCBbdHJhcHBlZCwgY29udGFpbmVyLCBmb2N1c1Njb3BlLnBhdXNlZF0pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgZm9jdXNTY29wZXNTdGFjay5hZGQoZm9jdXNTY29wZSk7XG4gICAgICBjb25zdCBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICAgIGNvbnN0IGhhc0ZvY3VzZWRDYW5kaWRhdGUgPSBjb250YWluZXIuY29udGFpbnMocHJldmlvdXNseUZvY3VzZWRFbGVtZW50KTtcblxuICAgICAgaWYgKCFoYXNGb2N1c2VkQ2FuZGlkYXRlKSB7XG4gICAgICAgIGNvbnN0IG1vdW50RXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoQVVUT0ZPQ1VTX09OX01PVU5ULCBFVkVOVF9PUFRJT05TKTtcbiAgICAgICAgY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoQVVUT0ZPQ1VTX09OX01PVU5ULCBvbk1vdW50QXV0b0ZvY3VzKTtcbiAgICAgICAgY29udGFpbmVyLmRpc3BhdGNoRXZlbnQobW91bnRFdmVudCk7XG4gICAgICAgIGlmICghbW91bnRFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgZm9jdXNGaXJzdChyZW1vdmVMaW5rcyhnZXRUYWJiYWJsZUNhbmRpZGF0ZXMoY29udGFpbmVyKSksIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGZvY3VzKGNvbnRhaW5lcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKEFVVE9GT0NVU19PTl9NT1VOVCwgb25Nb3VudEF1dG9Gb2N1cyk7XG5cbiAgICAgICAgLy8gV2UgaGl0IGEgcmVhY3QgYnVnIChmaXhlZCBpbiB2MTcpIHdpdGggZm9jdXNpbmcgaW4gdW5tb3VudC5cbiAgICAgICAgLy8gV2UgbmVlZCB0byBkZWxheSB0aGUgZm9jdXMgYSBsaXR0bGUgdG8gZ2V0IGFyb3VuZCBpdCBmb3Igbm93LlxuICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTc4OTRcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdW5tb3VudEV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KEFVVE9GT0NVU19PTl9VTk1PVU5ULCBFVkVOVF9PUFRJT05TKTtcbiAgICAgICAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihBVVRPRk9DVVNfT05fVU5NT1VOVCwgb25Vbm1vdW50QXV0b0ZvY3VzKTtcbiAgICAgICAgICBjb250YWluZXIuZGlzcGF0Y2hFdmVudCh1bm1vdW50RXZlbnQpO1xuICAgICAgICAgIGlmICghdW5tb3VudEV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgIGZvY3VzKHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA/PyBkb2N1bWVudC5ib2R5LCB7IHNlbGVjdDogdHJ1ZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gd2UgbmVlZCB0byByZW1vdmUgdGhlIGxpc3RlbmVyIGFmdGVyIHdlIGBkaXNwYXRjaEV2ZW50YFxuICAgICAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKEFVVE9GT0NVU19PTl9VTk1PVU5ULCBvblVubW91bnRBdXRvRm9jdXMpO1xuXG4gICAgICAgICAgZm9jdXNTY29wZXNTdGFjay5yZW1vdmUoZm9jdXNTY29wZSk7XG4gICAgICAgIH0sIDApO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtjb250YWluZXIsIG9uTW91bnRBdXRvRm9jdXMsIG9uVW5tb3VudEF1dG9Gb2N1cywgZm9jdXNTY29wZV0pO1xuXG4gIC8vIFRha2VzIGNhcmUgb2YgbG9vcGluZyBmb2N1cyAod2hlbiB0YWJiaW5nIHdoaWxzdCBhdCB0aGUgZWRnZXMpXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmICghbG9vcCAmJiAhdHJhcHBlZCkgcmV0dXJuO1xuICAgICAgaWYgKGZvY3VzU2NvcGUucGF1c2VkKSByZXR1cm47XG5cbiAgICAgIGNvbnN0IGlzVGFiS2V5ID0gZXZlbnQua2V5ID09PSAnVGFiJyAmJiAhZXZlbnQuYWx0S2V5ICYmICFldmVudC5jdHJsS2V5ICYmICFldmVudC5tZXRhS2V5O1xuICAgICAgY29uc3QgZm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgICAgaWYgKGlzVGFiS2V5ICYmIGZvY3VzZWRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IFtmaXJzdCwgbGFzdF0gPSBnZXRUYWJiYWJsZUVkZ2VzKGNvbnRhaW5lcik7XG4gICAgICAgIGNvbnN0IGhhc1RhYmJhYmxlRWxlbWVudHNJbnNpZGUgPSBmaXJzdCAmJiBsYXN0O1xuXG4gICAgICAgIC8vIHdlIGNhbiBvbmx5IHdyYXAgZm9jdXMgaWYgd2UgaGF2ZSB0YWJiYWJsZSBlZGdlc1xuICAgICAgICBpZiAoIWhhc1RhYmJhYmxlRWxlbWVudHNJbnNpZGUpIHtcbiAgICAgICAgICBpZiAoZm9jdXNlZEVsZW1lbnQgPT09IGNvbnRhaW5lcikgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIWV2ZW50LnNoaWZ0S2V5ICYmIGZvY3VzZWRFbGVtZW50ID09PSBsYXN0KSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKGxvb3ApIGZvY3VzKGZpcnN0LCB7IHNlbGVjdDogdHJ1ZSB9KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnNoaWZ0S2V5ICYmIGZvY3VzZWRFbGVtZW50ID09PSBmaXJzdCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChsb29wKSBmb2N1cyhsYXN0LCB7IHNlbGVjdDogdHJ1ZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtsb29wLCB0cmFwcGVkLCBmb2N1c1Njb3BlLnBhdXNlZF1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxQcmltaXRpdmUuZGl2IHRhYkluZGV4PXstMX0gey4uLnNjb3BlUHJvcHN9IHJlZj17Y29tcG9zZWRSZWZzfSBvbktleURvd249e2hhbmRsZUtleURvd259IC8+XG4gICk7XG59KTtcblxuRm9jdXNTY29wZS5kaXNwbGF5TmFtZSA9IEZPQ1VTX1NDT1BFX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFV0aWxzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qKlxuICogQXR0ZW1wdHMgZm9jdXNpbmcgdGhlIGZpcnN0IGVsZW1lbnQgaW4gYSBsaXN0IG9mIGNhbmRpZGF0ZXMuXG4gKiBTdG9wcyB3aGVuIGZvY3VzIGhhcyBhY3R1YWxseSBtb3ZlZC5cbiAqL1xuZnVuY3Rpb24gZm9jdXNGaXJzdChjYW5kaWRhdGVzOiBIVE1MRWxlbWVudFtdLCB7IHNlbGVjdCA9IGZhbHNlIH0gPSB7fSkge1xuICBjb25zdCBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBjYW5kaWRhdGVzKSB7XG4gICAgZm9jdXMoY2FuZGlkYXRlLCB7IHNlbGVjdCB9KTtcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gcHJldmlvdXNseUZvY3VzZWRFbGVtZW50KSByZXR1cm47XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaXJzdCBhbmQgbGFzdCB0YWJiYWJsZSBlbGVtZW50cyBpbnNpZGUgYSBjb250YWluZXIuXG4gKi9cbmZ1bmN0aW9uIGdldFRhYmJhYmxlRWRnZXMoY29udGFpbmVyOiBIVE1MRWxlbWVudCkge1xuICBjb25zdCBjYW5kaWRhdGVzID0gZ2V0VGFiYmFibGVDYW5kaWRhdGVzKGNvbnRhaW5lcik7XG4gIGNvbnN0IGZpcnN0ID0gZmluZFZpc2libGUoY2FuZGlkYXRlcywgY29udGFpbmVyKTtcbiAgY29uc3QgbGFzdCA9IGZpbmRWaXNpYmxlKGNhbmRpZGF0ZXMucmV2ZXJzZSgpLCBjb250YWluZXIpO1xuICByZXR1cm4gW2ZpcnN0LCBsYXN0XSBhcyBjb25zdDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgbGlzdCBvZiBwb3RlbnRpYWwgdGFiYmFibGUgY2FuZGlkYXRlcy5cbiAqXG4gKiBOT1RFOiBUaGlzIGlzIG9ubHkgYSBjbG9zZSBhcHByb3hpbWF0aW9uLiBGb3IgZXhhbXBsZSBpdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IGNhc2VzIGxpa2Ugd2hlblxuICogZWxlbWVudHMgYXJlIG5vdCB2aXNpYmxlLiBUaGlzIGNhbm5vdCBiZSB3b3JrZWQgb3V0IGVhc2lseSBieSBqdXN0IHJlYWRpbmcgYSBwcm9wZXJ0eSwgYnV0IHJhdGhlclxuICogbmVjZXNzaXRhdGUgcnVudGltZSBrbm93bGVkZ2UgKGNvbXB1dGVkIHN0eWxlcywgZXRjKS4gV2UgZGVhbCB3aXRoIHRoZXNlIGNhc2VzIHNlcGFyYXRlbHkuXG4gKlxuICogU2VlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVHJlZVdhbGtlclxuICogQ3JlZGl0OiBodHRwczovL2dpdGh1Yi5jb20vZGlzY29yZC9mb2N1cy1sYXllcnMvYmxvYi9tYXN0ZXIvc3JjL3V0aWwvd3JhcEZvY3VzLnRzeCNMMVxuICovXG5mdW5jdGlvbiBnZXRUYWJiYWJsZUNhbmRpZGF0ZXMoY29udGFpbmVyOiBIVE1MRWxlbWVudCkge1xuICBjb25zdCBub2RlczogSFRNTEVsZW1lbnRbXSA9IFtdO1xuICBjb25zdCB3YWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGNvbnRhaW5lciwgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsIHtcbiAgICBhY2NlcHROb2RlOiAobm9kZTogYW55KSA9PiB7XG4gICAgICBjb25zdCBpc0hpZGRlbklucHV0ID0gbm9kZS50YWdOYW1lID09PSAnSU5QVVQnICYmIG5vZGUudHlwZSA9PT0gJ2hpZGRlbic7XG4gICAgICBpZiAobm9kZS5kaXNhYmxlZCB8fCBub2RlLmhpZGRlbiB8fCBpc0hpZGRlbklucHV0KSByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfU0tJUDtcbiAgICAgIC8vIGAudGFiSW5kZXhgIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgYHRhYmluZGV4YCBhdHRyaWJ1dGUuIEl0IHdvcmtzIG9uIHRoZVxuICAgICAgLy8gcnVudGltZSdzIHVuZGVyc3RhbmRpbmcgb2YgdGFiYmFiaWxpdHksIHNvIHRoaXMgYXV0b21hdGljYWxseSBhY2NvdW50c1xuICAgICAgLy8gZm9yIGFueSBraW5kIG9mIGVsZW1lbnQgdGhhdCBjb3VsZCBiZSB0YWJiZWQgdG8uXG4gICAgICByZXR1cm4gbm9kZS50YWJJbmRleCA+PSAwID8gTm9kZUZpbHRlci5GSUxURVJfQUNDRVBUIDogTm9kZUZpbHRlci5GSUxURVJfU0tJUDtcbiAgICB9LFxuICB9KTtcbiAgd2hpbGUgKHdhbGtlci5uZXh0Tm9kZSgpKSBub2Rlcy5wdXNoKHdhbGtlci5jdXJyZW50Tm9kZSBhcyBIVE1MRWxlbWVudCk7XG4gIC8vIHdlIGRvIG5vdCB0YWtlIGludG8gYWNjb3VudCB0aGUgb3JkZXIgb2Ygbm9kZXMgd2l0aCBwb3NpdGl2ZSBgdGFiSW5kZXhgIGFzIGl0XG4gIC8vIGhpbmRlcnMgYWNjZXNzaWJpbGl0eSB0byBoYXZlIHRhYiBvcmRlciBkaWZmZXJlbnQgZnJvbSB2aXN1YWwgb3JkZXIuXG4gIHJldHVybiBub2Rlcztcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaXJzdCB2aXNpYmxlIGVsZW1lbnQgaW4gYSBsaXN0LlxuICogTk9URTogT25seSBjaGVja3MgdmlzaWJpbGl0eSB1cCB0byB0aGUgYGNvbnRhaW5lcmAuXG4gKi9cbmZ1bmN0aW9uIGZpbmRWaXNpYmxlKGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdLCBjb250YWluZXI6IEhUTUxFbGVtZW50KSB7XG4gIGZvciAoY29uc3QgZWxlbWVudCBvZiBlbGVtZW50cykge1xuICAgIC8vIHdlIHN0b3AgY2hlY2tpbmcgaWYgaXQncyBoaWRkZW4gYXQgdGhlIGBjb250YWluZXJgIGxldmVsIChleGNsdWRpbmcpXG4gICAgaWYgKCFpc0hpZGRlbihlbGVtZW50LCB7IHVwVG86IGNvbnRhaW5lciB9KSkgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNIaWRkZW4obm9kZTogSFRNTEVsZW1lbnQsIHsgdXBUbyB9OiB7IHVwVG8/OiBIVE1MRWxlbWVudCB9KSB7XG4gIGlmIChnZXRDb21wdXRlZFN0eWxlKG5vZGUpLnZpc2liaWxpdHkgPT09ICdoaWRkZW4nKSByZXR1cm4gdHJ1ZTtcbiAgd2hpbGUgKG5vZGUpIHtcbiAgICAvLyB3ZSBzdG9wIGF0IGB1cFRvYCAoZXhjbHVkaW5nIGl0KVxuICAgIGlmICh1cFRvICE9PSB1bmRlZmluZWQgJiYgbm9kZSA9PT0gdXBUbykgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKG5vZGUpLmRpc3BsYXkgPT09ICdub25lJykgcmV0dXJuIHRydWU7XG4gICAgbm9kZSA9IG5vZGUucGFyZW50RWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGlzU2VsZWN0YWJsZUlucHV0KGVsZW1lbnQ6IGFueSk6IGVsZW1lbnQgaXMgRm9jdXNhYmxlVGFyZ2V0ICYgeyBzZWxlY3Q6ICgpID0+IHZvaWQgfSB7XG4gIHJldHVybiBlbGVtZW50IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCAmJiAnc2VsZWN0JyBpbiBlbGVtZW50O1xufVxuXG5mdW5jdGlvbiBmb2N1cyhlbGVtZW50PzogRm9jdXNhYmxlVGFyZ2V0IHwgbnVsbCwgeyBzZWxlY3QgPSBmYWxzZSB9ID0ge30pIHtcbiAgLy8gb25seSBmb2N1cyBpZiB0aGF0IGVsZW1lbnQgaXMgZm9jdXNhYmxlXG4gIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuZm9jdXMpIHtcbiAgICBjb25zdCBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgIC8vIE5PVEU6IHdlIHByZXZlbnQgc2Nyb2xsaW5nIG9uIGZvY3VzLCB0byBtaW5pbWl6ZSBqYXJyaW5nIHRyYW5zaXRpb25zIGZvciB1c2Vyc1xuICAgIGVsZW1lbnQuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIC8vIG9ubHkgc2VsZWN0IGlmIGl0cyBub3QgdGhlIHNhbWUgZWxlbWVudCwgaXQgc3VwcG9ydHMgc2VsZWN0aW9uIGFuZCB3ZSBuZWVkIHRvIHNlbGVjdFxuICAgIGlmIChlbGVtZW50ICE9PSBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgJiYgaXNTZWxlY3RhYmxlSW5wdXQoZWxlbWVudCkgJiYgc2VsZWN0KVxuICAgICAgZWxlbWVudC5zZWxlY3QoKTtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBGb2N1c1Njb3BlIHN0YWNrXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnR5cGUgRm9jdXNTY29wZUFQSSA9IHsgcGF1c2VkOiBib29sZWFuOyBwYXVzZSgpOiB2b2lkOyByZXN1bWUoKTogdm9pZCB9O1xuY29uc3QgZm9jdXNTY29wZXNTdGFjayA9IGNyZWF0ZUZvY3VzU2NvcGVzU3RhY2soKTtcblxuZnVuY3Rpb24gY3JlYXRlRm9jdXNTY29wZXNTdGFjaygpIHtcbiAgLyoqIEEgc3RhY2sgb2YgZm9jdXMgc2NvcGVzLCB3aXRoIHRoZSBhY3RpdmUgb25lIGF0IHRoZSB0b3AgKi9cbiAgbGV0IHN0YWNrOiBGb2N1c1Njb3BlQVBJW10gPSBbXTtcblxuICByZXR1cm4ge1xuICAgIGFkZChmb2N1c1Njb3BlOiBGb2N1c1Njb3BlQVBJKSB7XG4gICAgICAvLyBwYXVzZSB0aGUgY3VycmVudGx5IGFjdGl2ZSBmb2N1cyBzY29wZSAoYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2spXG4gICAgICBjb25zdCBhY3RpdmVGb2N1c1Njb3BlID0gc3RhY2tbMF07XG4gICAgICBpZiAoZm9jdXNTY29wZSAhPT0gYWN0aXZlRm9jdXNTY29wZSkge1xuICAgICAgICBhY3RpdmVGb2N1c1Njb3BlPy5wYXVzZSgpO1xuICAgICAgfVxuICAgICAgLy8gcmVtb3ZlIGluIGNhc2UgaXQgYWxyZWFkeSBleGlzdHMgKGJlY2F1c2Ugd2UnbGwgcmUtYWRkIGl0IGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrKVxuICAgICAgc3RhY2sgPSBhcnJheVJlbW92ZShzdGFjaywgZm9jdXNTY29wZSk7XG4gICAgICBzdGFjay51bnNoaWZ0KGZvY3VzU2NvcGUpO1xuICAgIH0sXG5cbiAgICByZW1vdmUoZm9jdXNTY29wZTogRm9jdXNTY29wZUFQSSkge1xuICAgICAgc3RhY2sgPSBhcnJheVJlbW92ZShzdGFjaywgZm9jdXNTY29wZSk7XG4gICAgICBzdGFja1swXT8ucmVzdW1lKCk7XG4gICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYXJyYXlSZW1vdmU8VD4oYXJyYXk6IFRbXSwgaXRlbTogVCkge1xuICBjb25zdCB1cGRhdGVkQXJyYXkgPSBbLi4uYXJyYXldO1xuICBjb25zdCBpbmRleCA9IHVwZGF0ZWRBcnJheS5pbmRleE9mKGl0ZW0pO1xuICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgdXBkYXRlZEFycmF5LnNwbGljZShpbmRleCwgMSk7XG4gIH1cbiAgcmV0dXJuIHVwZGF0ZWRBcnJheTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlTGlua3MoaXRlbXM6IEhUTUxFbGVtZW50W10pIHtcbiAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS50YWdOYW1lICE9PSAnQScpO1xufVxuXG5jb25zdCBSb290ID0gRm9jdXNTY29wZTtcblxuZXhwb3J0IHtcbiAgRm9jdXNTY29wZSxcbiAgLy9cbiAgUm9vdCxcbn07XG5leHBvcnQgdHlwZSB7IEZvY3VzU2NvcGVQcm9wcyB9O1xuIl0sIm5hbWVzIjpbImhhbmRsZUZvY3VzSW4iLCJoYW5kbGVGb2N1c091dCIsImhhbmRsZU11dGF0aW9ucyIsImNvbnRhaW5lciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-focus-scope/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs":
/*!********************************************************!*\
!*** ./node_modules/@radix-ui/react-id/dist/index.mjs ***!
\********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("var react__WEBPACK_IMPORTED_MODULE_0___namespace_cache;\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useId: () => (/* binding */ useId)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n// packages/react/id/src/id.tsx\n\n\nvar useReactId = /*#__PURE__*/ (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(react__WEBPACK_IMPORTED_MODULE_0__, 2)))[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = react__WEBPACK_IMPORTED_MODULE_0__.useState(useReactId());\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtaWQvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQytCO0FBQ3FDO0FBQ3BFLGlCQUFpQix5TEFBSztBQUN0QjtBQUNBO0FBQ0Esc0JBQXNCLDJDQUFjO0FBQ3BDLEVBQUUsa0ZBQWU7QUFDakI7QUFDQSxHQUFHO0FBQ0gsMkNBQTJDLEdBQUc7QUFDOUM7QUFHRTtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtaWQvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvaWQvc3JjL2lkLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0XCI7XG52YXIgdXNlUmVhY3RJZCA9IFJlYWN0W1widXNlSWRcIi50b1N0cmluZygpXSB8fCAoKCkgPT4gdm9pZCAwKTtcbnZhciBjb3VudCA9IDA7XG5mdW5jdGlvbiB1c2VJZChkZXRlcm1pbmlzdGljSWQpIHtcbiAgY29uc3QgW2lkLCBzZXRJZF0gPSBSZWFjdC51c2VTdGF0ZSh1c2VSZWFjdElkKCkpO1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZGV0ZXJtaW5pc3RpY0lkKSBzZXRJZCgocmVhY3RJZCkgPT4gcmVhY3RJZCA/PyBTdHJpbmcoY291bnQrKykpO1xuICB9LCBbZGV0ZXJtaW5pc3RpY0lkXSk7XG4gIHJldHVybiBkZXRlcm1pbmlzdGljSWQgfHwgKGlkID8gYHJhZGl4LSR7aWR9YCA6IFwiXCIpO1xufVxuZXhwb3J0IHtcbiAgdXNlSWRcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-label/dist/index.mjs":
/*!***********************************************************!*\
!*** ./node_modules/@radix-ui/react-label/dist/index.mjs ***!
\***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Label: () => (/* binding */ Label),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Label,Root auto */ // packages/react/label/src/label.tsx\n\n\n\nvar NAME = \"Label\";\nvar Label = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = (props, forwardedRef)=>{\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.label, {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event)=>{\n var _props_onMouseDown;\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n (_props_onMouseDown = props.onMouseDown) === null || _props_onMouseDown === void 0 ? void 0 : _props_onMouseDown.call(props, event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n });\n});\n_c1 = Label;\nLabel.displayName = NAME;\nvar Root = Label;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Label$React.forwardRef\");\n$RefreshReg$(_c1, \"Label\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtbGFiZWwvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQXVCO0FBQ0c7QUFjdEI7QUFSSixJQUFNLE9BQU87QUFNYixJQUFNLHNCQUFjLG1EQUFxQyxDQUFDLE9BQU87SUFDL0QsT0FDRSx1RUFBQyxnRUFBUyxDQUFDLE9BQVY7UUFDRSxHQUFHO1FBQ0osS0FBSztRQUNMLGFBQWEsQ0FBQztnQkFLWjtZQUhBLE1BQU0sU0FBUyxNQUFNO1lBQ3JCLElBQUksT0FBTyxRQUFRLGlDQUFpQyxFQUFHO2FBRXZELDJCQUFNLHlCQUFOLHdFQUFvQixLQUFLO1lBRXpCLElBQUksQ0FBQyxNQUFNLG9CQUFvQixNQUFNLFNBQVMsRUFBRyxPQUFNLGVBQWU7UUFDeEU7SUFBQTtBQUdOLENBQUM7O0FBRUQsTUFBTSxjQUFjO0FBSXBCLElBQU0sT0FBTyIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL3NyYy9sYWJlbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIExhYmVsXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IE5BTUUgPSAnTGFiZWwnO1xuXG50eXBlIExhYmVsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5sYWJlbD47XG50eXBlIFByaW1pdGl2ZUxhYmVsUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5sYWJlbD47XG5pbnRlcmZhY2UgTGFiZWxQcm9wcyBleHRlbmRzIFByaW1pdGl2ZUxhYmVsUHJvcHMge31cblxuY29uc3QgTGFiZWwgPSBSZWFjdC5mb3J3YXJkUmVmPExhYmVsRWxlbWVudCwgTGFiZWxQcm9wcz4oKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8UHJpbWl0aXZlLmxhYmVsXG4gICAgICB7Li4ucHJvcHN9XG4gICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgIG9uTW91c2VEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgLy8gb25seSBwcmV2ZW50IHRleHQgc2VsZWN0aW9uIGlmIGNsaWNraW5nIGluc2lkZSB0aGUgbGFiZWwgaXRzZWxmXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKHRhcmdldC5jbG9zZXN0KCdidXR0b24sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhJykpIHJldHVybjtcblxuICAgICAgICBwcm9wcy5vbk1vdXNlRG93bj8uKGV2ZW50KTtcbiAgICAgICAgLy8gcHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGVuIGRvdWJsZSBjbGlja2luZyBsYWJlbFxuICAgICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgJiYgZXZlbnQuZGV0YWlsID4gMSkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH19XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5MYWJlbC5kaXNwbGF5TmFtZSA9IE5BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgUm9vdCA9IExhYmVsO1xuXG5leHBvcnQge1xuICBMYWJlbCxcbiAgLy9cbiAgUm9vdCxcbn07XG5leHBvcnQgdHlwZSB7IExhYmVsUHJvcHMgfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-label/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.mjs":
/*!**************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.mjs ***!
\**************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitive: () => (/* binding */ Primitive),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ dispatchDiscreteCustomEvent: () => (/* binding */ dispatchDiscreteCustomEvent)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/primitive/src/primitive.tsx\n\n\n\n\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__.Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtbGFiZWwvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQytCO0FBQ087QUFDTTtBQUNKO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSw2Q0FBZ0I7QUFDL0IsWUFBWSw2QkFBNkI7QUFDekMsMkJBQTJCLHNEQUFJO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixzREFBRyxTQUFTLHNDQUFzQztBQUM3RSxHQUFHO0FBQ0gsa0NBQWtDLEtBQUs7QUFDdkMsV0FBVztBQUNYLENBQUMsSUFBSTtBQUNMO0FBQ0EsY0FBYyxnREFBa0I7QUFDaEM7QUFDQTtBQUtFO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1sYWJlbC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZS9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9wcmltaXRpdmUvc3JjL3ByaW1pdGl2ZS50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgU2xvdCB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtc2xvdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgTk9ERVMgPSBbXG4gIFwiYVwiLFxuICBcImJ1dHRvblwiLFxuICBcImRpdlwiLFxuICBcImZvcm1cIixcbiAgXCJoMlwiLFxuICBcImgzXCIsXG4gIFwiaW1nXCIsXG4gIFwiaW5wdXRcIixcbiAgXCJsYWJlbFwiLFxuICBcImxpXCIsXG4gIFwibmF2XCIsXG4gIFwib2xcIixcbiAgXCJwXCIsXG4gIFwic3BhblwiLFxuICBcInN2Z1wiLFxuICBcInVsXCJcbl07XG52YXIgUHJpbWl0aXZlID0gTk9ERVMucmVkdWNlKChwcmltaXRpdmUsIG5vZGUpID0+IHtcbiAgY29uc3QgTm9kZSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IGFzQ2hpbGQsIC4uLnByaW1pdGl2ZVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBDb21wID0gYXNDaGlsZCA/IFNsb3QgOiBub2RlO1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICB3aW5kb3dbU3ltYm9sLmZvcihcInJhZGl4LXVpXCIpXSA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KENvbXAsIHsgLi4ucHJpbWl0aXZlUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xuICB9KTtcbiAgTm9kZS5kaXNwbGF5TmFtZSA9IGBQcmltaXRpdmUuJHtub2RlfWA7XG4gIHJldHVybiB7IC4uLnByaW1pdGl2ZSwgW25vZGVdOiBOb2RlIH07XG59LCB7fSk7XG5mdW5jdGlvbiBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQodGFyZ2V0LCBldmVudCkge1xuICBpZiAodGFyZ2V0KSBSZWFjdERPTS5mbHVzaFN5bmMoKCkgPT4gdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpKTtcbn1cbnZhciBSb290ID0gUHJpbWl0aXZlO1xuZXhwb3J0IHtcbiAgUHJpbWl0aXZlLFxuICBSb290LFxuICBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnRcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-popper/dist/index.mjs":
/*!************************************************************!*\
!*** ./node_modules/@radix-ui/react-popper/dist/index.mjs ***!
\************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ALIGN_OPTIONS: () => (/* binding */ ALIGN_OPTIONS),\n/* harmony export */ Anchor: () => (/* binding */ Anchor),\n/* harmony export */ Arrow: () => (/* binding */ Arrow),\n/* harmony export */ Content: () => (/* binding */ Content),\n/* harmony export */ Popper: () => (/* binding */ Popper),\n/* harmony export */ PopperAnchor: () => (/* binding */ PopperAnchor),\n/* harmony export */ PopperArrow: () => (/* binding */ PopperArrow),\n/* harmony export */ PopperContent: () => (/* binding */ PopperContent),\n/* harmony export */ Root: () => (/* binding */ Root2),\n/* harmony export */ SIDE_OPTIONS: () => (/* binding */ SIDE_OPTIONS),\n/* harmony export */ createPopperScope: () => (/* binding */ createPopperScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @floating-ui/react-dom */ \"(app-pages-browser)/./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs\");\n/* harmony import */ var _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @floating-ui/react-dom */ \"(app-pages-browser)/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\");\n/* harmony import */ var _radix_ui_react_arrow__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-arrow */ \"(app-pages-browser)/./node_modules/@radix-ui/react-arrow/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-use-size */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-size/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ ALIGN_OPTIONS,Anchor,Arrow,Content,Popper,PopperAnchor,PopperArrow,PopperContent,Root,SIDE_OPTIONS,createPopperScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n// packages/react/popper/src/Popper.tsx\n\n\n\n\n\n\n\n\n\n\nvar SIDE_OPTIONS = [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n];\nvar ALIGN_OPTIONS = [\n \"start\",\n \"center\",\n \"end\"\n];\nvar POPPER_NAME = \"Popper\";\nvar [createPopperContext, createPopperScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(POPPER_NAME);\nvar [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\nvar Popper = (props)=>{\n _s();\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PopperProvider, {\n scope: __scopePopper,\n anchor,\n onAnchorChange: setAnchor,\n children\n });\n};\n_s(Popper, \"wxYvbWVl4wPDiI7jlInCOrjrm3Y=\");\n_c = Popper;\nPopper.displayName = POPPER_NAME;\nvar ANCHOR_NAME = \"PopperAnchor\";\nvar PopperAnchor = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c1 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopePopper, virtualRef, ...anchorProps } = props;\n const context = usePopperContext(ANCHOR_NAME, __scopePopper);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"PopperAnchor.useEffect\": ()=>{\n context.onAnchorChange((virtualRef === null || virtualRef === void 0 ? void 0 : virtualRef.current) || ref.current);\n }\n }[\"PopperAnchor.useEffect\"]);\n return virtualRef ? null : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...anchorProps,\n ref: composedRefs\n });\n}, \"aNTYZQIUknAyxpmCTV83WEqvsAs=\", false, function() {\n return [\n usePopperContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n})), \"aNTYZQIUknAyxpmCTV83WEqvsAs=\", false, function() {\n return [\n usePopperContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n});\n_c2 = PopperAnchor;\nPopperAnchor.displayName = ANCHOR_NAME;\nvar CONTENT_NAME = \"PopperContent\";\nvar [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);\nvar PopperContent = /*#__PURE__*/ _s2(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c3 = _s2((props, forwardedRef)=>{\n var _middlewareData_arrow, _middlewareData_arrow1, _middlewareData_arrow2, _middlewareData_transformOrigin, _middlewareData_transformOrigin1, _middlewareData_hide;\n _s2();\n const { __scopePopper, side = \"bottom\", sideOffset = 0, align = \"center\", alignOffset = 0, arrowPadding = 0, avoidCollisions = true, collisionBoundary = [], collisionPadding: collisionPaddingProp = 0, sticky = \"partial\", hideWhenDetached = false, updatePositionStrategy = \"optimized\", onPlaced, ...contentProps } = props;\n const context = usePopperContext(CONTENT_NAME, __scopePopper);\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, {\n \"PopperContent.useComposedRefs[composedRefs]\": (node)=>setContent(node)\n }[\"PopperContent.useComposedRefs[composedRefs]\"]);\n const [arrow, setArrow] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const arrowSize = (0,_radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__.useSize)(arrow);\n var _arrowSize_width;\n const arrowWidth = (_arrowSize_width = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.width) !== null && _arrowSize_width !== void 0 ? _arrowSize_width : 0;\n var _arrowSize_height;\n const arrowHeight = (_arrowSize_height = arrowSize === null || arrowSize === void 0 ? void 0 : arrowSize.height) !== null && _arrowSize_height !== void 0 ? _arrowSize_height : 0;\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...collisionPaddingProp\n };\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [\n collisionBoundary\n ];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: hasExplicitBoundaries\n };\n const { refs, floatingStyles, placement, isPositioned, middlewareData } = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.useFloating)({\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: \"fixed\",\n placement: desiredPlacement,\n whileElementsMounted: {\n \"PopperContent.useFloating\": function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n const cleanup = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__.autoUpdate)(...args, {\n animationFrame: updatePositionStrategy === \"always\"\n });\n return cleanup;\n }\n }[\"PopperContent.useFloating\"],\n elements: {\n reference: context.anchor\n },\n middleware: [\n (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.offset)({\n mainAxis: sideOffset + arrowHeight,\n alignmentAxis: alignOffset\n }),\n avoidCollisions && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.shift)({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === \"partial\" ? (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.limitShift)() : void 0,\n ...detectOverflowOptions\n }),\n avoidCollisions && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.flip)({\n ...detectOverflowOptions\n }),\n (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.size)({\n ...detectOverflowOptions,\n apply: {\n \"PopperContent.useFloating\": (param)=>{\n let { elements, rects, availableWidth, availableHeight } = param;\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n const contentStyle = elements.floating.style;\n contentStyle.setProperty(\"--radix-popper-available-width\", \"\".concat(availableWidth, \"px\"));\n contentStyle.setProperty(\"--radix-popper-available-height\", \"\".concat(availableHeight, \"px\"));\n contentStyle.setProperty(\"--radix-popper-anchor-width\", \"\".concat(anchorWidth, \"px\"));\n contentStyle.setProperty(\"--radix-popper-anchor-height\", \"\".concat(anchorHeight, \"px\"));\n }\n }[\"PopperContent.useFloating\"]\n }),\n arrow && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.arrow)({\n element: arrow,\n padding: arrowPadding\n }),\n transformOrigin({\n arrowWidth,\n arrowHeight\n }),\n hideWhenDetached && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.hide)({\n strategy: \"referenceHidden\",\n ...detectOverflowOptions\n })\n ]\n });\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const handlePlaced = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onPlaced);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__.useLayoutEffect)({\n \"PopperContent.useLayoutEffect\": ()=>{\n if (isPositioned) {\n handlePlaced === null || handlePlaced === void 0 ? void 0 : handlePlaced();\n }\n }\n }[\"PopperContent.useLayoutEffect\"], [\n isPositioned,\n handlePlaced\n ]);\n const arrowX = (_middlewareData_arrow = middlewareData.arrow) === null || _middlewareData_arrow === void 0 ? void 0 : _middlewareData_arrow.x;\n const arrowY = (_middlewareData_arrow1 = middlewareData.arrow) === null || _middlewareData_arrow1 === void 0 ? void 0 : _middlewareData_arrow1.y;\n const cannotCenterArrow = ((_middlewareData_arrow2 = middlewareData.arrow) === null || _middlewareData_arrow2 === void 0 ? void 0 : _middlewareData_arrow2.centerOffset) !== 0;\n const [contentZIndex, setContentZIndex] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__.useLayoutEffect)({\n \"PopperContent.useLayoutEffect\": ()=>{\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }\n }[\"PopperContent.useLayoutEffect\"], [\n content\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"div\", {\n ref: refs.setFloating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : \"translate(0, -200%)\",\n // keep off the page when measuring\n minWidth: \"max-content\",\n zIndex: contentZIndex,\n [\"--radix-popper-transform-origin\"]: [\n (_middlewareData_transformOrigin = middlewareData.transformOrigin) === null || _middlewareData_transformOrigin === void 0 ? void 0 : _middlewareData_transformOrigin.x,\n (_middlewareData_transformOrigin1 = middlewareData.transformOrigin) === null || _middlewareData_transformOrigin1 === void 0 ? void 0 : _middlewareData_transformOrigin1.y\n ].join(\" \"),\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...((_middlewareData_hide = middlewareData.hide) === null || _middlewareData_hide === void 0 ? void 0 : _middlewareData_hide.referenceHidden) && {\n visibility: \"hidden\",\n pointerEvents: \"none\"\n }\n },\n dir: props.dir,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PopperContentProvider, {\n scope: __scopePopper,\n placedSide,\n onArrowChange: setArrow,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n \"data-side\": placedSide,\n \"data-align\": placedAlign,\n ...contentProps,\n ref: composedRefs,\n style: {\n ...contentProps.style,\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? \"none\" : void 0\n }\n })\n })\n });\n}, \"A1/Pj+1UFz1xA3voq7zud2LMtfs=\", false, function() {\n return [\n usePopperContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__.useSize,\n _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.useFloating,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef\n ];\n})), \"A1/Pj+1UFz1xA3voq7zud2LMtfs=\", false, function() {\n return [\n usePopperContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__.useSize,\n _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.useFloating,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef\n ];\n});\n_c4 = PopperContent;\nPopperContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"PopperArrow\";\nvar OPPOSITE_SIDE = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nvar PopperArrow = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c5 = _s3(function PopperArrow2(props, forwardedRef) {\n _s3();\n const { __scopePopper, ...arrowProps } = props;\n const contentContext = useContentContext(ARROW_NAME, __scopePopper);\n const baseSide = OPPOSITE_SIDE[contentContext.placedSide];\n return(// we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)\n // doesn't report size as we'd expect on SVG elements.\n // it reports their bounding box which is effectively the largest path inside the SVG.\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"span\", {\n ref: contentContext.onArrowChange,\n style: {\n position: \"absolute\",\n left: contentContext.arrowX,\n top: contentContext.arrowY,\n [baseSide]: 0,\n transformOrigin: {\n top: \"\",\n right: \"0 0\",\n bottom: \"center 0\",\n left: \"100% 0\"\n }[contentContext.placedSide],\n transform: {\n top: \"translateY(100%)\",\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n bottom: \"rotate(180deg)\",\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\n }[contentContext.placedSide],\n visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\n },\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_arrow__WEBPACK_IMPORTED_MODULE_10__.Root, {\n ...arrowProps,\n ref: forwardedRef,\n style: {\n ...arrowProps.style,\n // ensures the element can be measured correctly (mostly for if SVG)\n display: \"block\"\n }\n })\n }));\n}, \"VtYBvsFWU0YFzmBU5dyx7SVFyFY=\", false, function() {\n return [\n useContentContext\n ];\n})), \"VtYBvsFWU0YFzmBU5dyx7SVFyFY=\", false, function() {\n return [\n useContentContext\n ];\n});\n_c6 = PopperArrow;\nPopperArrow.displayName = ARROW_NAME;\nfunction isNotNull(value) {\n return value !== null;\n}\nvar transformOrigin = (options)=>({\n name: \"transformOrigin\",\n options,\n fn (data) {\n var _middlewareData_arrow, _middlewareData_arrow1, _middlewareData_arrow2;\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = ((_middlewareData_arrow = middlewareData.arrow) === null || _middlewareData_arrow === void 0 ? void 0 : _middlewareData_arrow.centerOffset) !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = {\n start: \"0%\",\n center: \"50%\",\n end: \"100%\"\n }[placedAlign];\n var _middlewareData_arrow_x;\n const arrowXCenter = ((_middlewareData_arrow_x = (_middlewareData_arrow1 = middlewareData.arrow) === null || _middlewareData_arrow1 === void 0 ? void 0 : _middlewareData_arrow1.x) !== null && _middlewareData_arrow_x !== void 0 ? _middlewareData_arrow_x : 0) + arrowWidth / 2;\n var _middlewareData_arrow_y;\n const arrowYCenter = ((_middlewareData_arrow_y = (_middlewareData_arrow2 = middlewareData.arrow) === null || _middlewareData_arrow2 === void 0 ? void 0 : _middlewareData_arrow2.y) !== null && _middlewareData_arrow_y !== void 0 ? _middlewareData_arrow_y : 0) + arrowHeight / 2;\n let x = \"\";\n let y = \"\";\n if (placedSide === \"bottom\") {\n x = isArrowHidden ? noArrowAlign : \"\".concat(arrowXCenter, \"px\");\n y = \"\".concat(-arrowHeight, \"px\");\n } else if (placedSide === \"top\") {\n x = isArrowHidden ? noArrowAlign : \"\".concat(arrowXCenter, \"px\");\n y = \"\".concat(rects.floating.height + arrowHeight, \"px\");\n } else if (placedSide === \"right\") {\n x = \"\".concat(-arrowHeight, \"px\");\n y = isArrowHidden ? noArrowAlign : \"\".concat(arrowYCenter, \"px\");\n } else if (placedSide === \"left\") {\n x = \"\".concat(rects.floating.width + arrowHeight, \"px\");\n y = isArrowHidden ? noArrowAlign : \"\".concat(arrowYCenter, \"px\");\n }\n return {\n data: {\n x,\n y\n }\n };\n }\n });\nfunction getSideAndAlignFromPlacement(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [\n side,\n align\n ];\n}\nvar Root2 = Popper;\nvar Anchor = PopperAnchor;\nvar Content = PopperContent;\nvar Arrow = PopperArrow;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6;\n$RefreshReg$(_c, \"Popper\");\n$RefreshReg$(_c1, \"PopperAnchor$React.forwardRef\");\n$RefreshReg$(_c2, \"PopperAnchor\");\n$RefreshReg$(_c3, \"PopperContent$React.forwardRef\");\n$RefreshReg$(_c4, \"PopperContent\");\n$RefreshReg$(_c5, \"PopperArrow$React.forwardRef\");\n$RefreshReg$(_c6, \"PopperArrow\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcG9wcGVyL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQVdoQjtBQUN5QjtBQUNBO0FBQ0c7QUFDVDtBQUNLO0FBQ0M7QUFDUjtBQWtDcEI7QUE1QkosSUFBTSxlQUFlO0lBQUM7SUFBTztJQUFTO0lBQVUsTUFBTTtDQUFBO0FBQ3RELElBQU0sZ0JBQWdCO0lBQUM7SUFBUztJQUFVLEtBQUs7Q0FBQTtBQVMvQyxJQUFNLGNBQWM7QUFHcEIsSUFBTSxDQUFDLHFCQUFxQixpQkFBaUIsSUFBSSwyRUFBa0IsQ0FBQyxXQUFXO0FBTS9FLElBQU0sQ0FBQyxnQkFBZ0IsZ0JBQWdCLElBQUksb0JBQXdDLFdBQVc7QUFLOUYsYUFBc0MsQ0FBQzs7SUFDckMsTUFBTSxFQUFFLGVBQWUsU0FBUyxJQUFJO0lBQ3BDLE1BQU0sQ0FBQyxRQUFRLFNBQVMsSUFBVSw0Q0FBNEIsSUFBSTtJQUNsRSxPQUNFLHVFQUFDO1FBQWUsT0FBTztRQUFlO1FBQWdCLGdCQUFnQjtRQUNuRTtJQUFBLENBQ0g7QUFFSjs7S0FSTTtBQVVOLE9BQU8sY0FBYztBQU1yQixJQUFNLGNBQWM7QUFRcEIsSUFBTSxpQ0FBcUIsd0RBQ3pCLENBQUMsT0FBdUM7O0lBQ3RDLE1BQU0sRUFBRSxlQUFlLFlBQVksR0FBRyxZQUFZLElBQUk7SUFDdEQsTUFBTSxVQUFVLGlCQUFpQixhQUFhLGFBQWE7SUFDM0QsTUFBTSxNQUFZLDBDQUE0QixJQUFJO0lBQ2xELE1BQU0sZUFBZSw2RUFBZSxDQUFDLGNBQWMsR0FBRztJQUVoRDtrQ0FBVTtZQUlkLFFBQVEsZUFBZSxvRUFBWSxZQUFXLElBQUksT0FBTztRQUMzRCxDQUFDOztJQUVELE9BQU8sYUFBYSxPQUFPLHVFQUFDLGdFQUFTLENBQUMsS0FBVjtRQUFlLEdBQUc7UUFBYSxLQUFLO0lBQUEsQ0FBYztBQUNo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R0FBRztJQUNwRCxPQUFPO1FBQUM7UUFBYyxLQUFjO0tBQUE7QUFDdEM7QUFFQSxJQUFNQyxRQUFPO0FBQ2IsSUFBTSxTQUFTO0FBQ2YsSUFBTSxVQUFVO0FBQ2hCLElBQU0sUUFBUSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL3NyYy9Qb3BwZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIHVzZUZsb2F0aW5nLFxuICBhdXRvVXBkYXRlLFxuICBvZmZzZXQsXG4gIHNoaWZ0LFxuICBsaW1pdFNoaWZ0LFxuICBoaWRlLFxuICBhcnJvdyBhcyBmbG9hdGluZ1VJYXJyb3csXG4gIGZsaXAsXG4gIHNpemUsXG59IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdC1kb20nO1xuaW1wb3J0ICogYXMgQXJyb3dQcmltaXRpdmUgZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWFycm93JztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmJztcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdCc7XG5pbXBvcnQgeyB1c2VTaXplIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1zaXplJztcblxuaW1wb3J0IHR5cGUgeyBQbGFjZW1lbnQsIE1pZGRsZXdhcmUgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QtZG9tJztcbmltcG9ydCB0eXBlIHsgU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IE1lYXN1cmFibGUgfSBmcm9tICdAcmFkaXgtdWkvcmVjdCc7XG5cbmNvbnN0IFNJREVfT1BUSU9OUyA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J10gYXMgY29uc3Q7XG5jb25zdCBBTElHTl9PUFRJT05TID0gWydzdGFydCcsICdjZW50ZXInLCAnZW5kJ10gYXMgY29uc3Q7XG5cbnR5cGUgU2lkZSA9ICh0eXBlb2YgU0lERV9PUFRJT05TKVtudW1iZXJdO1xudHlwZSBBbGlnbiA9ICh0eXBlb2YgQUxJR05fT1BUSU9OUylbbnVtYmVyXTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogUG9wcGVyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFBPUFBFUl9OQU1FID0gJ1BvcHBlcic7XG5cbnR5cGUgU2NvcGVkUHJvcHM8UD4gPSBQICYgeyBfX3Njb3BlUG9wcGVyPzogU2NvcGUgfTtcbmNvbnN0IFtjcmVhdGVQb3BwZXJDb250ZXh0LCBjcmVhdGVQb3BwZXJTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoUE9QUEVSX05BTUUpO1xuXG50eXBlIFBvcHBlckNvbnRleHRWYWx1ZSA9IHtcbiAgYW5jaG9yOiBNZWFzdXJhYmxlIHwgbnVsbDtcbiAgb25BbmNob3JDaGFuZ2UoYW5jaG9yOiBNZWFzdXJhYmxlIHwgbnVsbCk6IHZvaWQ7XG59O1xuY29uc3QgW1BvcHBlclByb3ZpZGVyLCB1c2VQb3BwZXJDb250ZXh0XSA9IGNyZWF0ZVBvcHBlckNvbnRleHQ8UG9wcGVyQ29udGV4dFZhbHVlPihQT1BQRVJfTkFNRSk7XG5cbmludGVyZmFjZSBQb3BwZXJQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xufVxuY29uc3QgUG9wcGVyOiBSZWFjdC5GQzxQb3BwZXJQcm9wcz4gPSAocHJvcHM6IFNjb3BlZFByb3BzPFBvcHBlclByb3BzPikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVQb3BwZXIsIGNoaWxkcmVuIH0gPSBwcm9wcztcbiAgY29uc3QgW2FuY2hvciwgc2V0QW5jaG9yXSA9IFJlYWN0LnVzZVN0YXRlPE1lYXN1cmFibGUgfCBudWxsPihudWxsKTtcbiAgcmV0dXJuIChcbiAgICA8UG9wcGVyUHJvdmlkZXIgc2NvcGU9e19fc2NvcGVQb3BwZXJ9IGFuY2hvcj17YW5jaG9yfSBvbkFuY2hvckNoYW5nZT17c2V0QW5jaG9yfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1BvcHBlclByb3ZpZGVyPlxuICApO1xufTtcblxuUG9wcGVyLmRpc3BsYXlOYW1lID0gUE9QUEVSX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcHBlckFuY2hvclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBBTkNIT1JfTkFNRSA9ICdQb3BwZXJBbmNob3InO1xuXG50eXBlIFBvcHBlckFuY2hvckVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbnR5cGUgUHJpbWl0aXZlRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFBvcHBlckFuY2hvclByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICB2aXJ0dWFsUmVmPzogUmVhY3QuUmVmT2JqZWN0PE1lYXN1cmFibGU+O1xufVxuXG5jb25zdCBQb3BwZXJBbmNob3IgPSBSZWFjdC5mb3J3YXJkUmVmPFBvcHBlckFuY2hvckVsZW1lbnQsIFBvcHBlckFuY2hvclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxQb3BwZXJBbmNob3JQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVBvcHBlciwgdmlydHVhbFJlZiwgLi4uYW5jaG9yUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VQb3BwZXJDb250ZXh0KEFOQ0hPUl9OQU1FLCBfX3Njb3BlUG9wcGVyKTtcbiAgICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWY8UG9wcGVyQW5jaG9yRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgcmVmKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAvLyBDb25zdW1lciBjYW4gYW5jaG9yIHRoZSBwb3BwZXIgdG8gc29tZXRoaW5nIHRoYXQgaXNuJ3RcbiAgICAgIC8vIGEgRE9NIG5vZGUgZS5nLiBwb2ludGVyIHBvc2l0aW9uLCBzbyB3ZSBvdmVycmlkZSB0aGVcbiAgICAgIC8vIGBhbmNob3JSZWZgIHdpdGggdGhlaXIgdmlydHVhbCByZWYgaW4gdGhpcyBjYXNlLlxuICAgICAgY29udGV4dC5vbkFuY2hvckNoYW5nZSh2aXJ0dWFsUmVmPy5jdXJyZW50IHx8IHJlZi5jdXJyZW50KTtcbiAgICB9KTtcblxuICAgIHJldHVybiB2aXJ0dWFsUmVmID8gbnVsbCA6IDxQcmltaXRpdmUuZGl2IHsuLi5hbmNob3JQcm9wc30gcmVmPXtjb21wb3NlZFJlZnN9IC8+O1xuICB9XG4pO1xuXG5Qb3BwZXJBbmNob3IuZGlzcGxheU5hbWUgPSBBTkNIT1JfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogUG9wcGVyQ29udGVudFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDT05URU5UX05BTUUgPSAnUG9wcGVyQ29udGVudCc7XG5cbnR5cGUgUG9wcGVyQ29udGVudENvbnRleHRWYWx1ZSA9IHtcbiAgcGxhY2VkU2lkZTogU2lkZTtcbiAgb25BcnJvd0NoYW5nZShhcnJvdzogSFRNTFNwYW5FbGVtZW50IHwgbnVsbCk6IHZvaWQ7XG4gIGFycm93WD86IG51bWJlcjtcbiAgYXJyb3dZPzogbnVtYmVyO1xuICBzaG91bGRIaWRlQXJyb3c6IGJvb2xlYW47XG59O1xuXG5jb25zdCBbUG9wcGVyQ29udGVudFByb3ZpZGVyLCB1c2VDb250ZW50Q29udGV4dF0gPVxuICBjcmVhdGVQb3BwZXJDb250ZXh0PFBvcHBlckNvbnRlbnRDb250ZXh0VmFsdWU+KENPTlRFTlRfTkFNRSk7XG5cbnR5cGUgQm91bmRhcnkgPSBFbGVtZW50IHwgbnVsbDtcblxudHlwZSBQb3BwZXJDb250ZW50RWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFBvcHBlckNvbnRlbnRQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHtcbiAgc2lkZT86IFNpZGU7XG4gIHNpZGVPZmZzZXQ/OiBudW1iZXI7XG4gIGFsaWduPzogQWxpZ247XG4gIGFsaWduT2Zmc2V0PzogbnVtYmVyO1xuICBhcnJvd1BhZGRpbmc/OiBudW1iZXI7XG4gIGF2b2lkQ29sbGlzaW9ucz86IGJvb2xlYW47XG4gIGNvbGxpc2lvbkJvdW5kYXJ5PzogQm91bmRhcnkgfCBCb3VuZGFyeVtdO1xuICBjb2xsaXNpb25QYWRkaW5nPzogbnVtYmVyIHwgUGFydGlhbDxSZWNvcmQ8U2lkZSwgbnVtYmVyPj47XG4gIHN0aWNreT86ICdwYXJ0aWFsJyB8ICdhbHdheXMnO1xuICBoaWRlV2hlbkRldGFjaGVkPzogYm9vbGVhbjtcbiAgdXBkYXRlUG9zaXRpb25TdHJhdGVneT86ICdvcHRpbWl6ZWQnIHwgJ2Fsd2F5cyc7XG4gIG9uUGxhY2VkPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgUG9wcGVyQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8UG9wcGVyQ29udGVudEVsZW1lbnQsIFBvcHBlckNvbnRlbnRQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8UG9wcGVyQ29udGVudFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgX19zY29wZVBvcHBlcixcbiAgICAgIHNpZGUgPSAnYm90dG9tJyxcbiAgICAgIHNpZGVPZmZzZXQgPSAwLFxuICAgICAgYWxpZ24gPSAnY2VudGVyJyxcbiAgICAgIGFsaWduT2Zmc2V0ID0gMCxcbiAgICAgIGFycm93UGFkZGluZyA9IDAsXG4gICAgICBhdm9pZENvbGxpc2lvbnMgPSB0cnVlLFxuICAgICAgY29sbGlzaW9uQm91bmRhcnkgPSBbXSxcbiAgICAgIGNvbGxpc2lvblBhZGRpbmc6IGNvbGxpc2lvblBhZGRpbmdQcm9wID0gMCxcbiAgICAgIHN0aWNreSA9ICdwYXJ0aWFsJyxcbiAgICAgIGhpZGVXaGVuRGV0YWNoZWQgPSBmYWxzZSxcbiAgICAgIHVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kgPSAnb3B0aW1pemVkJyxcbiAgICAgIG9uUGxhY2VkLFxuICAgICAgLi4uY29udGVudFByb3BzXG4gICAgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHVzZVBvcHBlckNvbnRleHQoQ09OVEVOVF9OQU1FLCBfX3Njb3BlUG9wcGVyKTtcblxuICAgIGNvbnN0IFtjb250ZW50LCBzZXRDb250ZW50XSA9IFJlYWN0LnVzZVN0YXRlPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldENvbnRlbnQobm9kZSkpO1xuXG4gICAgY29uc3QgW2Fycm93LCBzZXRBcnJvd10gPSBSZWFjdC51c2VTdGF0ZTxIVE1MU3BhbkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBhcnJvd1NpemUgPSB1c2VTaXplKGFycm93KTtcbiAgICBjb25zdCBhcnJvd1dpZHRoID0gYXJyb3dTaXplPy53aWR0aCA/PyAwO1xuICAgIGNvbnN0IGFycm93SGVpZ2h0ID0gYXJyb3dTaXplPy5oZWlnaHQgPz8gMDtcblxuICAgIGNvbnN0IGRlc2lyZWRQbGFjZW1lbnQgPSAoc2lkZSArIChhbGlnbiAhPT0gJ2NlbnRlcicgPyAnLScgKyBhbGlnbiA6ICcnKSkgYXMgUGxhY2VtZW50O1xuXG4gICAgY29uc3QgY29sbGlzaW9uUGFkZGluZyA9XG4gICAgICB0eXBlb2YgY29sbGlzaW9uUGFkZGluZ1Byb3AgPT09ICdudW1iZXInXG4gICAgICAgID8gY29sbGlzaW9uUGFkZGluZ1Byb3BcbiAgICAgICAgOiB7IHRvcDogMCwgcmlnaHQ6IDAsIGJvdHRvbTogMCwgbGVmdDogMCwgLi4uY29sbGlzaW9uUGFkZGluZ1Byb3AgfTtcblxuICAgIGNvbnN0IGJvdW5kYXJ5ID0gQXJyYXkuaXNBcnJheShjb2xsaXNpb25Cb3VuZGFyeSkgPyBjb2xsaXNpb25Cb3VuZGFyeSA6IFtjb2xsaXNpb25Cb3VuZGFyeV07XG4gICAgY29uc3QgaGFzRXhwbGljaXRCb3VuZGFyaWVzID0gYm91bmRhcnkubGVuZ3RoID4gMDtcblxuICAgIGNvbnN0IGRldGVjdE92ZXJmbG93T3B0aW9ucyA9IHtcbiAgICAgIHBhZGRpbmc6IGNvbGxpc2lvblBhZGRpbmcsXG4gICAgICBib3VuZGFyeTogYm91bmRhcnkuZmlsdGVyKGlzTm90TnVsbCksXG4gICAgICAvLyB3aXRoIGBzdHJhdGVneTogJ2ZpeGVkJ2AsIHRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIGdldCBpdCB0byByZXNwZWN0IGJvdW5kYXJpZXNcbiAgICAgIGFsdEJvdW5kYXJ5OiBoYXNFeHBsaWNpdEJvdW5kYXJpZXMsXG4gICAgfTtcblxuICAgIGNvbnN0IHsgcmVmcywgZmxvYXRpbmdTdHlsZXMsIHBsYWNlbWVudCwgaXNQb3NpdGlvbmVkLCBtaWRkbGV3YXJlRGF0YSB9ID0gdXNlRmxvYXRpbmcoe1xuICAgICAgLy8gZGVmYXVsdCB0byBgZml4ZWRgIHN0cmF0ZWd5IHNvIHVzZXJzIGRvbid0IGhhdmUgdG8gcGljayBhbmQgd2UgYWxzbyBhdm9pZCBmb2N1cyBzY3JvbGwgaXNzdWVzXG4gICAgICBzdHJhdGVneTogJ2ZpeGVkJyxcbiAgICAgIHBsYWNlbWVudDogZGVzaXJlZFBsYWNlbWVudCxcbiAgICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiAoLi4uYXJncykgPT4ge1xuICAgICAgICBjb25zdCBjbGVhbnVwID0gYXV0b1VwZGF0ZSguLi5hcmdzLCB7XG4gICAgICAgICAgYW5pbWF0aW9uRnJhbWU6IHVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kgPT09ICdhbHdheXMnLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNsZWFudXA7XG4gICAgICB9LFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgcmVmZXJlbmNlOiBjb250ZXh0LmFuY2hvcixcbiAgICAgIH0sXG4gICAgICBtaWRkbGV3YXJlOiBbXG4gICAgICAgIG9mZnNldCh7IG1haW5BeGlzOiBzaWRlT2Zmc2V0ICsgYXJyb3dIZWlnaHQsIGFsaWdubWVudEF4aXM6IGFsaWduT2Zmc2V0IH0pLFxuICAgICAgICBhdm9pZENvbGxpc2lvbnMgJiZcbiAgICAgICAgICBzaGlmdCh7XG4gICAgICAgICAgICBtYWluQXhpczogdHJ1ZSxcbiAgICAgICAgICAgIGNyb3NzQXhpczogZmFsc2UsXG4gICAgICAgICAgICBsaW1pdGVyOiBzdGlja3kgPT09ICdwYXJ0aWFsJyA/IGxpbWl0U2hpZnQoKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgYXZvaWRDb2xsaXNpb25zICYmIGZsaXAoeyAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnMgfSksXG4gICAgICAgIHNpemUoe1xuICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICBhcHBseTogKHsgZWxlbWVudHMsIHJlY3RzLCBhdmFpbGFibGVXaWR0aCwgYXZhaWxhYmxlSGVpZ2h0IH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgd2lkdGg6IGFuY2hvcldpZHRoLCBoZWlnaHQ6IGFuY2hvckhlaWdodCB9ID0gcmVjdHMucmVmZXJlbmNlO1xuICAgICAgICAgICAgY29uc3QgY29udGVudFN0eWxlID0gZWxlbWVudHMuZmxvYXRpbmcuc3R5bGU7XG4gICAgICAgICAgICBjb250ZW50U3R5bGUuc2V0UHJvcGVydHkoJy0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS13aWR0aCcsIGAke2F2YWlsYWJsZVdpZHRofXB4YCk7XG4gICAgICAgICAgICBjb250ZW50U3R5bGUuc2V0UHJvcGVydHkoJy0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS1oZWlnaHQnLCBgJHthdmFpbGFibGVIZWlnaHR9cHhgKTtcbiAgICAgICAgICAgIGNvbnRlbnRTdHlsZS5zZXRQcm9wZXJ0eSgnLS1yYWRpeC1wb3BwZXItYW5jaG9yLXdpZHRoJywgYCR7YW5jaG9yV2lkdGh9cHhgKTtcbiAgICAgICAgICAgIGNvbnRlbnRTdHlsZS5zZXRQcm9wZXJ0eSgnLS1yYWRpeC1wb3BwZXItYW5jaG9yLWhlaWdodCcsIGAke2FuY2hvckhlaWdodH1weGApO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBhcnJvdyAmJiBmbG9hdGluZ1VJYXJyb3coeyBlbGVtZW50OiBhcnJvdywgcGFkZGluZzogYXJyb3dQYWRkaW5nIH0pLFxuICAgICAgICB0cmFuc2Zvcm1PcmlnaW4oeyBhcnJvd1dpZHRoLCBhcnJvd0hlaWdodCB9KSxcbiAgICAgICAgaGlkZVdoZW5EZXRhY2hlZCAmJiBoaWRlKHsgc3RyYXRlZ3k6ICdyZWZlcmVuY2VIaWRkZW4nLCAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnMgfSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgW3BsYWNlZFNpZGUsIHBsYWNlZEFsaWduXSA9IGdldFNpZGVBbmRBbGlnbkZyb21QbGFjZW1lbnQocGxhY2VtZW50KTtcblxuICAgIGNvbnN0IGhhbmRsZVBsYWNlZCA9IHVzZUNhbGxiYWNrUmVmKG9uUGxhY2VkKTtcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGlzUG9zaXRpb25lZCkge1xuICAgICAgICBoYW5kbGVQbGFjZWQ/LigpO1xuICAgICAgfVxuICAgIH0sIFtpc1Bvc2l0aW9uZWQsIGhhbmRsZVBsYWNlZF0pO1xuXG4gICAgY29uc3QgYXJyb3dYID0gbWlkZGxld2FyZURhdGEuYXJyb3c/Lng7XG4gICAgY29uc3QgYXJyb3dZID0gbWlkZGxld2FyZURhdGEuYXJyb3c/Lnk7XG4gICAgY29uc3QgY2Fubm90Q2VudGVyQXJyb3cgPSBtaWRkbGV3YXJlRGF0YS5hcnJvdz8uY2VudGVyT2Zmc2V0ICE9PSAwO1xuXG4gICAgY29uc3QgW2NvbnRlbnRaSW5kZXgsIHNldENvbnRlbnRaSW5kZXhdID0gUmVhY3QudXNlU3RhdGU8c3RyaW5nPigpO1xuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoY29udGVudCkgc2V0Q29udGVudFpJbmRleCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjb250ZW50KS56SW5kZXgpO1xuICAgIH0sIFtjb250ZW50XSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdlxuICAgICAgICByZWY9e3JlZnMuc2V0RmxvYXRpbmd9XG4gICAgICAgIGRhdGEtcmFkaXgtcG9wcGVyLWNvbnRlbnQtd3JhcHBlcj1cIlwiXG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgLi4uZmxvYXRpbmdTdHlsZXMsXG4gICAgICAgICAgdHJhbnNmb3JtOiBpc1Bvc2l0aW9uZWQgPyBmbG9hdGluZ1N0eWxlcy50cmFuc2Zvcm0gOiAndHJhbnNsYXRlKDAsIC0yMDAlKScsIC8vIGtlZXAgb2ZmIHRoZSBwYWdlIHdoZW4gbWVhc3VyaW5nXG4gICAgICAgICAgbWluV2lkdGg6ICdtYXgtY29udGVudCcsXG4gICAgICAgICAgekluZGV4OiBjb250ZW50WkluZGV4LFxuICAgICAgICAgIFsnLS1yYWRpeC1wb3BwZXItdHJhbnNmb3JtLW9yaWdpbicgYXMgYW55XTogW1xuICAgICAgICAgICAgbWlkZGxld2FyZURhdGEudHJhbnNmb3JtT3JpZ2luPy54LFxuICAgICAgICAgICAgbWlkZGxld2FyZURhdGEudHJhbnNmb3JtT3JpZ2luPy55LFxuICAgICAgICAgIF0uam9pbignICcpLFxuXG4gICAgICAgICAgLy8gaGlkZSB0aGUgY29udGVudCBpZiB1c2luZyB0aGUgaGlkZSBtaWRkbGV3YXJlIGFuZCBzaG91bGQgYmUgaGlkZGVuXG4gICAgICAgICAgLy8gc2V0IHZpc2liaWxpdHkgdG8gaGlkZGVuIGFuZCBkaXNhYmxlIHBvaW50ZXIgZXZlbnRzIHNvIHRoZSBVSSBiZWhhdmVzXG4gICAgICAgICAgLy8gYXMgaWYgdGhlIFBvcHBlckNvbnRlbnQgaXNuJ3QgdGhlcmUgYXQgYWxsXG4gICAgICAgICAgLi4uKG1pZGRsZXdhcmVEYXRhLmhpZGU/LnJlZmVyZW5jZUhpZGRlbiAmJiB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJyxcbiAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfX1cbiAgICAgICAgLy8gRmxvYXRpbmcgVUkgaW50ZXJhbGx5IGNhbGN1bGF0ZXMgbG9naWNhbCBhbGlnbm1lbnQgYmFzZWQgdGhlIGBkaXJgIGF0dHJpYnV0ZSBvblxuICAgICAgICAvLyB0aGUgcmVmZXJlbmNlL2Zsb2F0aW5nIG5vZGUsIHdlIG11c3QgYWRkIHRoaXMgYXR0cmlidXRlIGhlcmUgdG8gZW5zdXJlXG4gICAgICAgIC8vIHRoaXMgaXMgY2FsY3VsYXRlZCB3aGVuIHBvcnRhbGxlZCBhcyB3ZWxsIGFzIGlubGluZS5cbiAgICAgICAgZGlyPXtwcm9wcy5kaXJ9XG4gICAgICA+XG4gICAgICAgIDxQb3BwZXJDb250ZW50UHJvdmlkZXJcbiAgICAgICAgICBzY29wZT17X19zY29wZVBvcHBlcn1cbiAgICAgICAgICBwbGFjZWRTaWRlPXtwbGFjZWRTaWRlfVxuICAgICAgICAgIG9uQXJyb3dDaGFuZ2U9e3NldEFycm93fVxuICAgICAgICAgIGFycm93WD17YXJyb3dYfVxuICAgICAgICAgIGFycm93WT17YXJyb3dZfVxuICAgICAgICAgIHNob3VsZEhpZGVBcnJvdz17Y2Fubm90Q2VudGVyQXJyb3d9XG4gICAgICAgID5cbiAgICAgICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICAgICAgZGF0YS1zaWRlPXtwbGFjZWRTaWRlfVxuICAgICAgICAgICAgZGF0YS1hbGlnbj17cGxhY2VkQWxpZ259XG4gICAgICAgICAgICB7Li4uY29udGVudFByb3BzfVxuICAgICAgICAgICAgcmVmPXtjb21wb3NlZFJlZnN9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAuLi5jb250ZW50UHJvcHMuc3R5bGUsXG4gICAgICAgICAgICAgIC8vIGlmIHRoZSBQb3BwZXJDb250ZW50IGhhc24ndCBiZWVuIHBsYWNlZCB5ZXQgKG5vdCBhbGwgbWVhc3VyZW1lbnRzIGRvbmUpXG4gICAgICAgICAgICAgIC8vIHdlIHByZXZlbnQgYW5pbWF0aW9ucyBzbyB0aGF0IHVzZXJzJ3MgYW5pbWF0aW9uIGRvbid0IGtpY2sgaW4gdG9vIGVhcmx5IHJlZmVycmluZyB3cm9uZyBzaWRlc1xuICAgICAgICAgICAgICBhbmltYXRpb246ICFpc1Bvc2l0aW9uZWQgPyAnbm9uZScgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvUG9wcGVyQ29udGVudFByb3ZpZGVyPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuKTtcblxuUG9wcGVyQ29udGVudC5kaXNwbGF5TmFtZSA9IENPTlRFTlRfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogUG9wcGVyQXJyb3dcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQVJST1dfTkFNRSA9ICdQb3BwZXJBcnJvdyc7XG5cbmNvbnN0IE9QUE9TSVRFX1NJREU6IFJlY29yZDxTaWRlLCBTaWRlPiA9IHtcbiAgdG9wOiAnYm90dG9tJyxcbiAgcmlnaHQ6ICdsZWZ0JyxcbiAgYm90dG9tOiAndG9wJyxcbiAgbGVmdDogJ3JpZ2h0Jyxcbn07XG5cbnR5cGUgUG9wcGVyQXJyb3dFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgQXJyb3dQcmltaXRpdmUuUm9vdD47XG50eXBlIEFycm93UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEFycm93UHJpbWl0aXZlLlJvb3Q+O1xuaW50ZXJmYWNlIFBvcHBlckFycm93UHJvcHMgZXh0ZW5kcyBBcnJvd1Byb3BzIHt9XG5cbmNvbnN0IFBvcHBlckFycm93ID0gUmVhY3QuZm9yd2FyZFJlZjxQb3BwZXJBcnJvd0VsZW1lbnQsIFBvcHBlckFycm93UHJvcHM+KGZ1bmN0aW9uIFBvcHBlckFycm93KFxuICBwcm9wczogU2NvcGVkUHJvcHM8UG9wcGVyQXJyb3dQcm9wcz4sXG4gIGZvcndhcmRlZFJlZlxuKSB7XG4gIGNvbnN0IHsgX19zY29wZVBvcHBlciwgLi4uYXJyb3dQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlQ29udGVudENvbnRleHQoQVJST1dfTkFNRSwgX19zY29wZVBvcHBlcik7XG4gIGNvbnN0IGJhc2VTaWRlID0gT1BQT1NJVEVfU0lERVtjb250ZW50Q29udGV4dC5wbGFjZWRTaWRlXTtcblxuICByZXR1cm4gKFxuICAgIC8vIHdlIGhhdmUgdG8gdXNlIGFuIGV4dHJhIHdyYXBwZXIgYmVjYXVzZSBgUmVzaXplT2JzZXJ2ZXJgICh1c2VkIGJ5IGB1c2VTaXplYClcbiAgICAvLyBkb2Vzbid0IHJlcG9ydCBzaXplIGFzIHdlJ2QgZXhwZWN0IG9uIFNWRyBlbGVtZW50cy5cbiAgICAvLyBpdCByZXBvcnRzIHRoZWlyIGJvdW5kaW5nIGJveCB3aGljaCBpcyBlZmZlY3RpdmVseSB0aGUgbGFyZ2VzdCBwYXRoIGluc2lkZSB0aGUgU1ZHLlxuICAgIDxzcGFuXG4gICAgICByZWY9e2NvbnRlbnRDb250ZXh0Lm9uQXJyb3dDaGFuZ2V9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgbGVmdDogY29udGVudENvbnRleHQuYXJyb3dYLFxuICAgICAgICB0b3A6IGNvbnRlbnRDb250ZXh0LmFycm93WSxcbiAgICAgICAgW2Jhc2VTaWRlXTogMCxcbiAgICAgICAgdHJhbnNmb3JtT3JpZ2luOiB7XG4gICAgICAgICAgdG9wOiAnJyxcbiAgICAgICAgICByaWdodDogJzAgMCcsXG4gICAgICAgICAgYm90dG9tOiAnY2VudGVyIDAnLFxuICAgICAgICAgIGxlZnQ6ICcxMDAlIDAnLFxuICAgICAgICB9W2NvbnRlbnRDb250ZXh0LnBsYWNlZFNpZGVdLFxuICAgICAgICB0cmFuc2Zvcm06IHtcbiAgICAgICAgICB0b3A6ICd0cmFuc2xhdGVZKDEwMCUpJyxcbiAgICAgICAgICByaWdodDogJ3RyYW5zbGF0ZVkoNTAlKSByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZVgoLTUwJSknLFxuICAgICAgICAgIGJvdHRvbTogYHJvdGF0ZSgxODBkZWcpYCxcbiAgICAgICAgICBsZWZ0OiAndHJhbnNsYXRlWSg1MCUpIHJvdGF0ZSgtOTBkZWcpIHRyYW5zbGF0ZVgoNTAlKScsXG4gICAgICAgIH1bY29udGVudENvbnRleHQucGxhY2VkU2lkZV0sXG4gICAgICAgIHZpc2liaWxpdHk6IGNvbnRlbnRDb250ZXh0LnNob3VsZEhpZGVBcnJvdyA/ICdoaWRkZW4nIDogdW5kZWZpbmVkLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8QXJyb3dQcmltaXRpdmUuUm9vdFxuICAgICAgICB7Li4uYXJyb3dQcm9wc31cbiAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgLi4uYXJyb3dQcm9wcy5zdHlsZSxcbiAgICAgICAgICAvLyBlbnN1cmVzIHRoZSBlbGVtZW50IGNhbiBiZSBtZWFzdXJlZCBjb3JyZWN0bHkgKG1vc3RseSBmb3IgaWYgU1ZHKVxuICAgICAgICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgIDwvc3Bhbj5cbiAgKTtcbn0pO1xuXG5Qb3BwZXJBcnJvdy5kaXNwbGF5TmFtZSA9IEFSUk9XX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuZnVuY3Rpb24gaXNOb3ROdWxsPFQ+KHZhbHVlOiBUIHwgbnVsbCk6IHZhbHVlIGlzIFQge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGw7XG59XG5cbmNvbnN0IHRyYW5zZm9ybU9yaWdpbiA9IChvcHRpb25zOiB7IGFycm93V2lkdGg6IG51bWJlcjsgYXJyb3dIZWlnaHQ6IG51bWJlciB9KTogTWlkZGxld2FyZSA9PiAoe1xuICBuYW1lOiAndHJhbnNmb3JtT3JpZ2luJyxcbiAgb3B0aW9ucyxcbiAgZm4oZGF0YSkge1xuICAgIGNvbnN0IHsgcGxhY2VtZW50LCByZWN0cywgbWlkZGxld2FyZURhdGEgfSA9IGRhdGE7XG5cbiAgICBjb25zdCBjYW5ub3RDZW50ZXJBcnJvdyA9IG1pZGRsZXdhcmVEYXRhLmFycm93Py5jZW50ZXJPZmZzZXQgIT09IDA7XG4gICAgY29uc3QgaXNBcnJvd0hpZGRlbiA9IGNhbm5vdENlbnRlckFycm93O1xuICAgIGNvbnN0IGFycm93V2lkdGggPSBpc0Fycm93SGlkZGVuID8gMCA6IG9wdGlvbnMuYXJyb3dXaWR0aDtcbiAgICBjb25zdCBhcnJvd0hlaWdodCA9IGlzQXJyb3dIaWRkZW4gPyAwIDogb3B0aW9ucy5hcnJvd0hlaWdodDtcblxuICAgIGNvbnN0IFtwbGFjZWRTaWRlLCBwbGFjZWRBbGlnbl0gPSBnZXRTaWRlQW5kQWxpZ25Gcm9tUGxhY2VtZW50KHBsYWNlbWVudCk7XG4gICAgY29uc3Qgbm9BcnJvd0FsaWduID0geyBzdGFydDogJzAlJywgY2VudGVyOiAnNTAlJywgZW5kOiAnMTAwJScgfVtwbGFjZWRBbGlnbl07XG5cbiAgICBjb25zdCBhcnJvd1hDZW50ZXIgPSAobWlkZGxld2FyZURhdGEuYXJyb3c/LnggPz8gMCkgKyBhcnJvd1dpZHRoIC8gMjtcbiAgICBjb25zdCBhcnJvd1lDZW50ZXIgPSAobWlkZGxld2FyZURhdGEuYXJyb3c/LnkgPz8gMCkgKyBhcnJvd0hlaWdodCAvIDI7XG5cbiAgICBsZXQgeCA9ICcnO1xuICAgIGxldCB5ID0gJyc7XG5cbiAgICBpZiAocGxhY2VkU2lkZSA9PT0gJ2JvdHRvbScpIHtcbiAgICAgIHggPSBpc0Fycm93SGlkZGVuID8gbm9BcnJvd0FsaWduIDogYCR7YXJyb3dYQ2VudGVyfXB4YDtcbiAgICAgIHkgPSBgJHstYXJyb3dIZWlnaHR9cHhgO1xuICAgIH0gZWxzZSBpZiAocGxhY2VkU2lkZSA9PT0gJ3RvcCcpIHtcbiAgICAgIHggPSBpc0Fycm93SGlkZGVuID8gbm9BcnJvd0FsaWduIDogYCR7YXJyb3dYQ2VudGVyfXB4YDtcbiAgICAgIHkgPSBgJHtyZWN0cy5mbG9hdGluZy5oZWlnaHQgKyBhcnJvd0hlaWdodH1weGA7XG4gICAgfSBlbHNlIGlmIChwbGFjZWRTaWRlID09PSAncmlnaHQnKSB7XG4gICAgICB4ID0gYCR7LWFycm93SGVpZ2h0fXB4YDtcbiAgICAgIHkgPSBpc0Fycm93SGlkZGVuID8gbm9BcnJvd0FsaWduIDogYCR7YXJyb3dZQ2VudGVyfXB4YDtcbiAgICB9IGVsc2UgaWYgKHBsYWNlZFNpZGUgPT09ICdsZWZ0Jykge1xuICAgICAgeCA9IGAke3JlY3RzLmZsb2F0aW5nLndpZHRoICsgYXJyb3dIZWlnaHR9cHhgO1xuICAgICAgeSA9IGlzQXJyb3dIaWRkZW4gPyBub0Fycm93QWxpZ24gOiBgJHthcnJvd1lDZW50ZXJ9cHhgO1xuICAgIH1cbiAgICByZXR1cm4geyBkYXRhOiB7IHgsIHkgfSB9O1xuICB9LFxufSk7XG5cbmZ1bmN0aW9uIGdldFNpZGVBbmRBbGlnbkZyb21QbGFjZW1lbnQocGxhY2VtZW50OiBQbGFjZW1lbnQpIHtcbiAgY29uc3QgW3NpZGUsIGFsaWduID0gJ2NlbnRlciddID0gcGxhY2VtZW50LnNwbGl0KCctJyk7XG4gIHJldHVybiBbc2lkZSBhcyBTaWRlLCBhbGlnbiBhcyBBbGlnbl0gYXMgY29uc3Q7XG59XG5cbmNvbnN0IFJvb3QgPSBQb3BwZXI7XG5jb25zdCBBbmNob3IgPSBQb3BwZXJBbmNob3I7XG5jb25zdCBDb250ZW50ID0gUG9wcGVyQ29udGVudDtcbmNvbnN0IEFycm93ID0gUG9wcGVyQXJyb3c7XG5cbmV4cG9ydCB7XG4gIGNyZWF0ZVBvcHBlclNjb3BlLFxuICAvL1xuICBQb3BwZXIsXG4gIFBvcHBlckFuY2hvcixcbiAgUG9wcGVyQ29udGVudCxcbiAgUG9wcGVyQXJyb3csXG4gIC8vXG4gIFJvb3QsXG4gIEFuY2hvcixcbiAgQ29udGVudCxcbiAgQXJyb3csXG4gIC8vXG4gIFNJREVfT1BUSU9OUyxcbiAgQUxJR05fT1BUSU9OUyxcbn07XG5leHBvcnQgdHlwZSB7IFBvcHBlclByb3BzLCBQb3BwZXJBbmNob3JQcm9wcywgUG9wcGVyQ29udGVudFByb3BzLCBQb3BwZXJBcnJvd1Byb3BzIH07XG4iXSwibmFtZXMiOlsiUG9wcGVyQXJyb3ciLCJSb290Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-popper/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-portal/dist/index.mjs":
/*!************************************************************!*\
!*** ./node_modules/@radix-ui/react-portal/dist/index.mjs ***!
\************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Portal,Root auto */ var _s = $RefreshSig$();\n// packages/react/portal/src/Portal.tsx\n\n\n\n\n\nvar PORTAL_NAME = \"Portal\";\nvar Portal = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n var _globalThis_document, _globalThis;\n _s();\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__.useLayoutEffect)({\n \"Portal.useLayoutEffect\": ()=>setMounted(true)\n }[\"Portal.useLayoutEffect\"], []);\n const container = containerProp || mounted && ((_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : (_globalThis_document = _globalThis.document) === null || _globalThis_document === void 0 ? void 0 : _globalThis_document.body);\n return container ? /*#__PURE__*/ react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal(/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...portalProps,\n ref: forwardedRef\n }), container) : null;\n}, \"FcnMiGdgWOI6sDTng8DolPv2NRo=\")), \"FcnMiGdgWOI6sDTng8DolPv2NRo=\");\n_c1 = Portal;\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Portal$React.forwardRef\");\n$RefreshReg$(_c1, \"Portal\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcG9ydGFsL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNGO0FBQ0s7QUFDTTtBQXVCSjtBQWpCNUIsSUFBTSxjQUFjO0FBV3BCLElBQU0sdUJBQWUseURBQXVDLENBQUMsT0FBTztRQUluQjs7SUFIL0MsTUFBTSxFQUFFLFdBQVcsZUFBZSxHQUFHLFlBQVksSUFBSTtJQUNyRCxNQUFNLENBQUMsU0FBUyxVQUFVLElBQVUsNENBQVMsS0FBSztJQUNsRCxrRkFBZTtrQ0FBQyxJQUFNLFdBQVcsSUFBSTtpQ0FBRyxDQUFDLENBQUM7SUFDMUMsTUFBTSxZQUFZLGlCQUFrQix5SEFBdUIsc0ZBQVU7SUFDckUsT0FBTywwQkFDSCxtREFBUyxDQUFhLHVFQUFDLGdFQUFTLENBQUMsS0FBVjtRQUFlLEdBQUc7UUFBYSxLQUFLO0lBQUEsQ0FBYyxHQUFJLFNBQVMsSUFDdEY7QUFDTixDQUFDOztBQUVELE9BQU8sY0FBYztBQUlyQixJQUFNLE9BQU8iLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9zcmMvUG9ydGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0JztcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogUG9ydGFsXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFBPUlRBTF9OQU1FID0gJ1BvcnRhbCc7XG5cbnR5cGUgUG9ydGFsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBQcmltaXRpdmVEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgUG9ydGFsUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVEaXZQcm9wcyB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBjb250YWluZXIgd2hlcmUgdGhlIHBvcnRhbGVkIGNvbnRlbnQgc2hvdWxkIGJlIGFwcGVuZGVkLlxuICAgKi9cbiAgY29udGFpbmVyPzogRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQgfCBudWxsO1xufVxuXG5jb25zdCBQb3J0YWwgPSBSZWFjdC5mb3J3YXJkUmVmPFBvcnRhbEVsZW1lbnQsIFBvcnRhbFByb3BzPigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IGNvbnRhaW5lcjogY29udGFpbmVyUHJvcCwgLi4ucG9ydGFsUHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBbbW91bnRlZCwgc2V0TW91bnRlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiBzZXRNb3VudGVkKHRydWUpLCBbXSk7XG4gIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lclByb3AgfHwgKG1vdW50ZWQgJiYgZ2xvYmFsVGhpcz8uZG9jdW1lbnQ/LmJvZHkpO1xuICByZXR1cm4gY29udGFpbmVyXG4gICAgPyBSZWFjdERPTS5jcmVhdGVQb3J0YWwoPFByaW1pdGl2ZS5kaXYgey4uLnBvcnRhbFByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz4sIGNvbnRhaW5lcilcbiAgICA6IG51bGw7XG59KTtcblxuUG9ydGFsLmRpc3BsYXlOYW1lID0gUE9SVEFMX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgUm9vdCA9IFBvcnRhbDtcblxuZXhwb3J0IHtcbiAgUG9ydGFsLFxuICAvL1xuICBSb290LFxufTtcbmV4cG9ydCB0eXBlIHsgUG9ydGFsUHJvcHMgfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-portal/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs":
/*!**************************************************************!*\
!*** ./node_modules/@radix-ui/react-presence/dist/index.mjs ***!
\**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Presence: () => (/* binding */ Presence)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* __next_internal_client_entry_do_not_use__ Presence auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$();\n// packages/react/presence/src/Presence.tsx\n\n\n\n// packages/react/presence/src/useStateMachine.tsx\n\nfunction useStateMachine(initialState, machine) {\n _s();\n return react__WEBPACK_IMPORTED_MODULE_0__.useReducer({\n \"useStateMachine.useReducer\": (state, event)=>{\n const nextState = machine[state][event];\n return nextState !== null && nextState !== void 0 ? nextState : state;\n }\n }[\"useStateMachine.useReducer\"], initialState);\n}\n_s(useStateMachine, \"skVOqNGrFQuDFh+lpttAJ2AZFeA=\");\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props)=>{\n _s1();\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({\n present: presence.isPresent\n }) : react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children);\n const ref = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_1__.useComposedRefs)(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(child, {\n ref\n }) : null;\n};\n_s1(Presence, \"uNryTcoDvJa4CrInYRt27opyun0=\", false, function() {\n return [\n usePresence,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_1__.useComposedRefs\n ];\n});\n_c = Presence;\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n _s2();\n const [node, setNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n const stylesRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef({});\n const prevPresentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(present);\n const prevAnimationNameRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"usePresence.useEffect\": ()=>{\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }\n }[\"usePresence.useEffect\"], [\n state\n ]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_2__.useLayoutEffect)({\n \"usePresence.useLayoutEffect\": ()=>{\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || (styles === null || styles === void 0 ? void 0 : styles.display) === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }\n }[\"usePresence.useLayoutEffect\"], [\n present,\n send\n ]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_2__.useLayoutEffect)({\n \"usePresence.useLayoutEffect\": ()=>{\n if (node) {\n let timeoutId;\n var _node_ownerDocument_defaultView;\n const ownerWindow = (_node_ownerDocument_defaultView = node.ownerDocument.defaultView) !== null && _node_ownerDocument_defaultView !== void 0 ? _node_ownerDocument_defaultView : window;\n const handleAnimationEnd = {\n \"usePresence.useLayoutEffect.handleAnimationEnd\": (event)=>{\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout({\n \"usePresence.useLayoutEffect.handleAnimationEnd\": ()=>{\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n }\n }[\"usePresence.useLayoutEffect.handleAnimationEnd\"]);\n }\n }\n }\n }[\"usePresence.useLayoutEffect.handleAnimationEnd\"];\n const handleAnimationStart = {\n \"usePresence.useLayoutEffect.handleAnimationStart\": (event)=>{\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n }\n }[\"usePresence.useLayoutEffect.handleAnimationStart\"];\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return ({\n \"usePresence.useLayoutEffect\": ()=>{\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n }\n })[\"usePresence.useLayoutEffect\"];\n } else {\n send(\"ANIMATION_END\");\n }\n }\n }[\"usePresence.useLayoutEffect\"], [\n node,\n send\n ]);\n return {\n isPresent: [\n \"mounted\",\n \"unmountSuspended\"\n ].includes(state),\n ref: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"usePresence.useCallback\": (node2)=>{\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }\n }[\"usePresence.useCallback\"], [])\n };\n}\n_s2(usePresence, \"ncCWxmFAyU87e4PnaTkbrqgR834=\", false, function() {\n return [\n useStateMachine\n ];\n});\nfunction getAnimationName(styles) {\n return (styles === null || styles === void 0 ? void 0 : styles.animationName) || \"none\";\n}\nfunction getElementRef(element) {\n var _Object_getOwnPropertyDescriptor, _Object_getOwnPropertyDescriptor1;\n let getter = (_Object_getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor(element.props, \"ref\")) === null || _Object_getOwnPropertyDescriptor === void 0 ? void 0 : _Object_getOwnPropertyDescriptor.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = (_Object_getOwnPropertyDescriptor1 = Object.getOwnPropertyDescriptor(element, \"ref\")) === null || _Object_getOwnPropertyDescriptor1 === void 0 ? void 0 : _Object_getOwnPropertyDescriptor1.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\n //# sourceMappingURL=index.mjs.map\nvar _c;\n$RefreshReg$(_c, \"Presence\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2UvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQXVCO0FBQ1M7QUFDQTs7QUNGVDtBQVdoQix5QkFDTCxjQUNBLFNBQ0E7O0lBQ0EsT0FBYTtzQ0FBVyxDQUFDLE9BQXdCO1lBQy9DLE1BQU0sWUFBYSxRQUFRLEtBQUssRUFBVSxLQUFLO1lBQy9DLG9EQUFPLFlBQWE7UUFDdEI7cUNBQUcsWUFBWTtBQUNqQjtHQVJnQjs7QUREaEIsZUFBMEMsQ0FBQzs7SUFDekMsTUFBTSxFQUFFLFNBQVMsU0FBUyxJQUFJO0lBQzlCLE1BQU0sdUJBQXVCLE9BQU87SUFFcEMsTUFBTSxRQUNKLE9BQU8sYUFBYSxhQUNoQixTQUFTO1FBQUUsU0FBUyxTQUFTO0lBQVUsQ0FBQyxJQUNsQyw0Q0FBUyxLQUFLLFFBQVE7SUFHbEMsTUFBTSxNQUFNLDZFQUFlLENBQUMsU0FBUyxLQUFLLGNBQWMsS0FBSyxDQUFDO0lBQzlELE1BQU0sYUFBYSxPQUFPLGFBQWE7SUFDdkMsT0FBTyxjQUFjLFNBQVMsMEJBQWtCLGdEQUFhLE9BQU87UUFBRTtJQUFJLENBQUMsSUFBSTtBQUNqRjs7O1FBWG1CO1FBUUwseUVBQWU7OztLQVZ2QjtBQWVOLFNBQVMsY0FBYztBQU12QixxQkFBcUIsU0FBa0I7O0lBQ3JDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sSUFBVSw0Q0FBc0I7SUFDcEQsTUFBTSxZQUFrQiwwQ0FBNEIsQ0FBQyxDQUFRO0lBQzdELE1BQU0saUJBQXVCLDBDQUFPLE9BQU87SUFDM0MsTUFBTSx1QkFBNkIsMENBQWUsTUFBTTtJQUN4RCxNQUFNLGVBQWUsVUFBVSxZQUFZO0lBQzNDLE1BQU0sQ0FBQyxPQUFPLElBQUksb0JBQW9CLGNBQWM7UUFDbEQsU0FBUztZQUNQLFNBQVM7WUFDVCxlQUFlO1FBQ2pCO1FBQ0Esa0JBQWtCO1lBQ2hCLE9BQU87WUFDUCxlQUFlO1FB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Qix5QkFBeUIsU0FBUyxLQUFLLHlHQUFHO0lBQzFELFVBQVUsVUFBVSxvQkFBb0IsVUFBVSxPQUFPO0lBQ3pELElBQUksU0FBUztRQUNYLE9BQU8sUUFBUSxNQUFNO0lBQ3ZCO0lBR0EsT0FBTyxRQUFRLE1BQU0sT0FBUSxRQUFnQjtBQUMvQyIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL3NyYy9QcmVzZW5jZS50c3giLCIvaG9tZS9hbG1hL25leHRnZW4vc3JjL3VzZVN0YXRlTWFjaGluZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWxheW91dC1lZmZlY3QnO1xuaW1wb3J0IHsgdXNlU3RhdGVNYWNoaW5lIH0gZnJvbSAnLi91c2VTdGF0ZU1hY2hpbmUnO1xuXG5pbnRlcmZhY2UgUHJlc2VuY2VQcm9wcyB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQgfCAoKHByb3BzOiB7IHByZXNlbnQ6IGJvb2xlYW4gfSkgPT4gUmVhY3QuUmVhY3RFbGVtZW50KTtcbiAgcHJlc2VudDogYm9vbGVhbjtcbn1cblxuY29uc3QgUHJlc2VuY2U6IFJlYWN0LkZDPFByZXNlbmNlUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgcHJlc2VudCwgY2hpbGRyZW4gfSA9IHByb3BzO1xuICBjb25zdCBwcmVzZW5jZSA9IHVzZVByZXNlbmNlKHByZXNlbnQpO1xuXG4gIGNvbnN0IGNoaWxkID0gKFxuICAgIHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyBjaGlsZHJlbih7IHByZXNlbnQ6IHByZXNlbmNlLmlzUHJlc2VudCB9KVxuICAgICAgOiBSZWFjdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKVxuICApIGFzIFJlYWN0LlJlYWN0RWxlbWVudDx7IHJlZj86IFJlYWN0LlJlZjxIVE1MRWxlbWVudD4gfT47XG5cbiAgY29uc3QgcmVmID0gdXNlQ29tcG9zZWRSZWZzKHByZXNlbmNlLnJlZiwgZ2V0RWxlbWVudFJlZihjaGlsZCkpO1xuICBjb25zdCBmb3JjZU1vdW50ID0gdHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nO1xuICByZXR1cm4gZm9yY2VNb3VudCB8fCBwcmVzZW5jZS5pc1ByZXNlbnQgPyBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHsgcmVmIH0pIDogbnVsbDtcbn07XG5cblByZXNlbmNlLmRpc3BsYXlOYW1lID0gJ1ByZXNlbmNlJztcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogdXNlUHJlc2VuY2VcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuZnVuY3Rpb24gdXNlUHJlc2VuY2UocHJlc2VudDogYm9vbGVhbikge1xuICBjb25zdCBbbm9kZSwgc2V0Tm9kZV0gPSBSZWFjdC51c2VTdGF0ZTxIVE1MRWxlbWVudD4oKTtcbiAgY29uc3Qgc3R5bGVzUmVmID0gUmVhY3QudXNlUmVmPENTU1N0eWxlRGVjbGFyYXRpb24+KHt9IGFzIGFueSk7XG4gIGNvbnN0IHByZXZQcmVzZW50UmVmID0gUmVhY3QudXNlUmVmKHByZXNlbnQpO1xuICBjb25zdCBwcmV2QW5pbWF0aW9uTmFtZVJlZiA9IFJlYWN0LnVzZVJlZjxzdHJpbmc+KCdub25lJyk7XG4gIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHByZXNlbnQgPyAnbW91bnRlZCcgOiAndW5tb3VudGVkJztcbiAgY29uc3QgW3N0YXRlLCBzZW5kXSA9IHVzZVN0YXRlTWFjaGluZShpbml0aWFsU3RhdGUsIHtcbiAgICBtb3VudGVkOiB7XG4gICAgICBVTk1PVU5UOiAndW5tb3VudGVkJyxcbiAgICAgIEFOSU1BVElPTl9PVVQ6ICd1bm1vdW50U3VzcGVuZGVkJyxcbiAgICB9LFxuICAgIHVubW91bnRTdXNwZW5kZWQ6IHtcbiAgICAgIE1PVU5UOiAnbW91bnRlZCcsXG4gICAgICBBTklNQVRJT05fRU5EOiAndW5tb3VudGVkJyxcbiAgICB9LFxuICAgIHVubW91bnRlZDoge1xuICAgICAgTU9VTlQ6ICdtb3VudGVkJyxcbiAgICB9LFxuICB9KTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRBbmltYXRpb25OYW1lID0gZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXNSZWYuY3VycmVudCk7XG4gICAgcHJldkFuaW1hdGlvbk5hbWVSZWYuY3VycmVudCA9IHN0YXRlID09PSAnbW91bnRlZCcgPyBjdXJyZW50QW5pbWF0aW9uTmFtZSA6ICdub25lJztcbiAgfSwgW3N0YXRlXSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBzdHlsZXMgPSBzdHlsZXNSZWYuY3VycmVudDtcbiAgICBjb25zdCB3YXNQcmVzZW50ID0gcHJldlByZXNlbnRSZWYuY3VycmVudDtcbiAgICBjb25zdCBoYXNQcmVzZW50Q2hhbmdlZCA9IHdhc1ByZXNlbnQgIT09IHByZXNlbnQ7XG5cbiAgICBpZiAoaGFzUHJlc2VudENoYW5nZWQpIHtcbiAgICAgIGNvbnN0IHByZXZBbmltYXRpb25OYW1lID0gcHJldkFuaW1hdGlvbk5hbWVSZWYuY3VycmVudDtcbiAgICAgIGNvbnN0IGN1cnJlbnRBbmltYXRpb25OYW1lID0gZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXMpO1xuXG4gICAgICBpZiAocHJlc2VudCkge1xuICAgICAgICBzZW5kKCdNT1VOVCcpO1xuICAgICAgfSBlbHNlIGlmIChjdXJyZW50QW5pbWF0aW9uTmFtZSA9PT0gJ25vbmUnIHx8IHN0eWxlcz8uZGlzcGxheSA9PT0gJ25vbmUnKSB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGV4aXQgYW5pbWF0aW9uIG9yIHRoZSBlbGVtZW50IGlzIGhpZGRlbiwgYW5pbWF0aW9ucyB3b24ndCBydW5cbiAgICAgICAgLy8gc28gd2UgdW5tb3VudCBpbnN0YW50bHlcbiAgICAgICAgc2VuZCgnVU5NT1VOVCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFdoZW4gYHByZXNlbnRgIGNoYW5nZXMgdG8gYGZhbHNlYCwgd2UgY2hlY2sgY2hhbmdlcyB0byBhbmltYXRpb24tbmFtZSB0b1xuICAgICAgICAgKiBkZXRlcm1pbmUgd2hldGhlciBhbiBhbmltYXRpb24gaGFzIHN0YXJ0ZWQuIFdlIGNob3NlIHRoaXMgYXBwcm9hY2ggKHJlYWRpbmdcbiAgICAgICAgICogY29tcHV0ZWQgc3R5bGVzKSBiZWNhdXNlIHRoZXJlIGlzIG5vIGBhbmltYXRpb25ydW5gIGV2ZW50IGFuZCBgYW5pbWF0aW9uc3RhcnRgXG4gICAgICAgICAqIGZpcmVzIGFmdGVyIGBhbmltYXRpb24tZGVsYXlgIGhhcyBleHBpcmVkIHdoaWNoIHdvdWxkIGJlIHRvbyBsYXRlLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgaXNBbmltYXRpbmcgPSBwcmV2QW5pbWF0aW9uTmFtZSAhPT0gY3VycmVudEFuaW1hdGlvbk5hbWU7XG5cbiAgICAgICAgaWYgKHdhc1ByZXNlbnQgJiYgaXNBbmltYXRpbmcpIHtcbiAgICAgICAgICBzZW5kKCdBTklNQVRJT05fT1VUJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VuZCgnVU5NT1VOVCcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHByZXZQcmVzZW50UmVmLmN1cnJlbnQgPSBwcmVzZW50O1xuICAgIH1cbiAgfSwgW3ByZXNlbnQsIHNlbmRdKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChub2RlKSB7XG4gICAgICBsZXQgdGltZW91dElkOiBudW1iZXI7XG4gICAgICBjb25zdCBvd25lcldpbmRvdyA9IG5vZGUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyA/PyB3aW5kb3c7XG4gICAgICAvKipcbiAgICAgICAqIFRyaWdnZXJpbmcgYW4gQU5JTUFUSU9OX09VVCBkdXJpbmcgYW4gQU5JTUFUSU9OX0lOIHdpbGwgZmlyZSBhbiBgYW5pbWF0aW9uY2FuY2VsYFxuICAgICAgICogZXZlbnQgZm9yIEFOSU1BVElPTl9JTiBhZnRlciB3ZSBoYXZlIGVudGVyZWQgYHVubW91bnRTdXNwZW5kZWRgIHN0YXRlLiBTbywgd2VcbiAgICAgICAqIG1ha2Ugc3VyZSB3ZSBvbmx5IHRyaWdnZXIgQU5JTUFUSU9OX0VORCBmb3IgdGhlIGN1cnJlbnRseSBhY3RpdmUgYW5pbWF0aW9uLlxuICAgICAgICovXG4gICAgICBjb25zdCBoYW5kbGVBbmltYXRpb25FbmQgPSAoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBbmltYXRpb25OYW1lID0gZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXNSZWYuY3VycmVudCk7XG4gICAgICAgIGNvbnN0IGlzQ3VycmVudEFuaW1hdGlvbiA9IGN1cnJlbnRBbmltYXRpb25OYW1lLmluY2x1ZGVzKGV2ZW50LmFuaW1hdGlvbk5hbWUpO1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSBub2RlICYmIGlzQ3VycmVudEFuaW1hdGlvbikge1xuICAgICAgICAgIC8vIFdpdGggUmVhY3QgMTggY29uY3VycmVuY3kgdGhpcyB1cGRhdGUgaXMgYXBwbGllZCBhIGZyYW1lIGFmdGVyIHRoZVxuICAgICAgICAgIC8vIGFuaW1hdGlvbiBlbmRzLCBjcmVhdGluZyBhIGZsYXNoIG9mIHZpc2libGUgY29udGVudC4gQnkgc2V0dGluZyB0aGVcbiAgICAgICAgICAvLyBhbmltYXRpb24gZmlsbCBtb2RlIHRvIFwiZm9yd2FyZHNcIiwgd2UgZm9yY2UgdGhlIG5vZGUgdG8ga2VlcCB0aGVcbiAgICAgICAgICAvLyBzdHlsZXMgb2YgdGhlIGxhc3Qga2V5ZnJhbWUsIHJlbW92aW5nIHRoZSBmbGFzaC5cbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vIFByZXZpb3VzbHkgd2UgZmx1c2hlZCB0aGUgdXBkYXRlIHZpYSBSZWFjdERvbS5mbHVzaFN5bmMsIGJ1dCB3aXRoXG4gICAgICAgICAgLy8gZXhpdCBhbmltYXRpb25zIHRoaXMgcmVzdWx0ZWQgaW4gdGhlIG5vZGUgYmVpbmcgcmVtb3ZlZCBmcm9tIHRoZVxuICAgICAgICAgIC8vIERPTSBiZWZvcmUgdGhlIHN5bnRoZXRpYyBhbmltYXRpb25FbmQgZXZlbnQgd2FzIGRpc3BhdGNoZWQsIG1lYW5pbmdcbiAgICAgICAgICAvLyB1c2VyLXByb3ZpZGVkIGV2ZW50IGhhbmRsZXJzIHdvdWxkIG5vdCBiZSBjYWxsZWQuXG4gICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JhZGl4LXVpL3ByaW1pdGl2ZXMvcHVsbC8xODQ5XG4gICAgICAgICAgc2VuZCgnQU5JTUFUSU9OX0VORCcpO1xuICAgICAgICAgIGlmICghcHJldlByZXNlbnRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEZpbGxNb2RlID0gbm9kZS5zdHlsZS5hbmltYXRpb25GaWxsTW9kZTtcbiAgICAgICAgICAgIG5vZGUuc3R5bGUuYW5pbWF0aW9uRmlsbE1vZGUgPSAnZm9yd2FyZHMnO1xuICAgICAgICAgICAgLy8gUmVzZXQgdGhlIHN0eWxlIGFmdGVyIHRoZSBub2RlIGhhZCB0aW1lIHRvIHVubW91bnQgKGZvciBjYXNlc1xuICAgICAgICAgICAgLy8gd2hlcmUgdGhlIGNvbXBvbmVudCBjaG9vc2VzIG5vdCB0byB1bm1vdW50KS4gRG9pbmcgdGhpcyBhbnlcbiAgICAgICAgICAgIC8vIHNvb25lciB0aGFuIGBzZXRUaW1lb3V0YCAoZS5nLiB3aXRoIGByZXF1ZXN0QW5pbWF0aW9uRnJhbWVgKVxuICAgICAgICAgICAgLy8gc3RpbGwgY2F1c2VzIGEgZmxhc2guXG4gICAgICAgICAgICB0aW1lb3V0SWQgPSBvd25lcldpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKG5vZGUuc3R5bGUuYW5pbWF0aW9uRmlsbE1vZGUgPT09ICdmb3J3YXJkcycpIHtcbiAgICAgICAgICAgICAgICBub2RlLnN0eWxlLmFuaW1hdGlvbkZpbGxNb2RlID0gY3VycmVudEZpbGxNb2RlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBjb25zdCBoYW5kbGVBbmltYXRpb25TdGFydCA9IChldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gbm9kZSkge1xuICAgICAgICAgIC8vIGlmIGFuaW1hdGlvbiBvY2N1cnJlZCwgc3RvcmUgaXRzIG5hbWUgYXMgdGhlIHByZXZpb3VzIGFuaW1hdGlvbi5cbiAgICAgICAgICBwcmV2QW5pbWF0aW9uTmFtZVJlZi5jdXJyZW50ID0gZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXNSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbnN0YXJ0JywgaGFuZGxlQW5pbWF0aW9uU3RhcnQpO1xuICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdhbmltYXRpb25jYW5jZWwnLCBoYW5kbGVBbmltYXRpb25FbmQpO1xuICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCBoYW5kbGVBbmltYXRpb25FbmQpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgb3duZXJXaW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uc3RhcnQnLCBoYW5kbGVBbmltYXRpb25TdGFydCk7XG4gICAgICAgIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uY2FuY2VsJywgaGFuZGxlQW5pbWF0aW9uRW5kKTtcbiAgICAgICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCBoYW5kbGVBbmltYXRpb25FbmQpO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVHJhbnNpdGlvbiB0byB0aGUgdW5tb3VudGVkIHN0YXRlIGlmIHRoZSBub2RlIGlzIHJlbW92ZWQgcHJlbWF0dXJlbHkuXG4gICAgICAvLyBXZSBhdm9pZCBkb2luZyBzbyBkdXJpbmcgY2xlYW51cCBhcyB0aGUgbm9kZSBtYXkgY2hhbmdlIGJ1dCBzdGlsbCBleGlzdC5cbiAgICAgIHNlbmQoJ0FOSU1BVElPTl9FTkQnKTtcbiAgICB9XG4gIH0sIFtub2RlLCBzZW5kXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBpc1ByZXNlbnQ6IFsnbW91bnRlZCcsICd1bm1vdW50U3VzcGVuZGVkJ10uaW5jbHVkZXMoc3RhdGUpLFxuICAgIHJlZjogUmVhY3QudXNlQ2FsbGJhY2soKG5vZGU6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICBpZiAobm9kZSkgc3R5bGVzUmVmLmN1cnJlbnQgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICAgICAgc2V0Tm9kZShub2RlKTtcbiAgICB9LCBbXSksXG4gIH07XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuZnVuY3Rpb24gZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXM/OiBDU1NTdHlsZURlY2xhcmF0aW9uKSB7XG4gIHJldHVybiBzdHlsZXM/LmFuaW1hdGlvbk5hbWUgfHwgJ25vbmUnO1xufVxuXG4vLyBCZWZvcmUgUmVhY3QgMTkgYWNjZXNzaW5nIGBlbGVtZW50LnByb3BzLnJlZmAgd2lsbCB0aHJvdyBhIHdhcm5pbmcgYW5kIHN1Z2dlc3QgdXNpbmcgYGVsZW1lbnQucmVmYFxuLy8gQWZ0ZXIgUmVhY3QgMTkgYWNjZXNzaW5nIGBlbGVtZW50LnJlZmAgZG9lcyB0aGUgb3Bwb3NpdGUuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8yODM0OFxuLy9cbi8vIEFjY2VzcyB0aGUgcmVmIHVzaW5nIHRoZSBtZXRob2QgdGhhdCBkb2Vzbid0IHlpZWxkIGEgd2FybmluZy5cbmZ1bmN0aW9uIGdldEVsZW1lbnRSZWYoZWxlbWVudDogUmVhY3QuUmVhY3RFbGVtZW50PHsgcmVmPzogUmVhY3QuUmVmPHVua25vd24+IH0+KSB7XG4gIC8vIFJlYWN0IDw9MTggaW4gREVWXG4gIGxldCBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQucHJvcHMsICdyZWYnKT8uZ2V0O1xuICBsZXQgbWF5V2FybiA9IGdldHRlciAmJiAnaXNSZWFjdFdhcm5pbmcnIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gIGlmIChtYXlXYXJuKSB7XG4gICAgcmV0dXJuIChlbGVtZW50IGFzIGFueSkucmVmO1xuICB9XG5cbiAgLy8gUmVhY3QgMTkgaW4gREVWXG4gIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudCwgJ3JlZicpPy5nZXQ7XG4gIG1heVdhcm4gPSBnZXR0ZXIgJiYgJ2lzUmVhY3RXYXJuaW5nJyBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICBpZiAobWF5V2Fybikge1xuICAgIHJldHVybiBlbGVtZW50LnByb3BzLnJlZjtcbiAgfVxuXG4gIC8vIE5vdCBERVZcbiAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmIHx8IChlbGVtZW50IGFzIGFueSkucmVmO1xufVxuXG5leHBvcnQgeyBQcmVzZW5jZSB9O1xuZXhwb3J0IHR5cGUgeyBQcmVzZW5jZVByb3BzIH07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbnR5cGUgTWFjaGluZTxTPiA9IHsgW2s6IHN0cmluZ106IHsgW2s6IHN0cmluZ106IFMgfSB9O1xudHlwZSBNYWNoaW5lU3RhdGU8VD4gPSBrZXlvZiBUO1xudHlwZSBNYWNoaW5lRXZlbnQ8VD4gPSBrZXlvZiBVbmlvblRvSW50ZXJzZWN0aW9uPFRba2V5b2YgVF0+O1xuXG4vLyDwn6SvIGh0dHBzOi8vZmV0dGJsb2cuZXUvdHlwZXNjcmlwdC11bmlvbi10by1pbnRlcnNlY3Rpb24vXG50eXBlIFVuaW9uVG9JbnRlcnNlY3Rpb248VD4gPSAoVCBleHRlbmRzIGFueSA/ICh4OiBUKSA9PiBhbnkgOiBuZXZlcikgZXh0ZW5kcyAoeDogaW5mZXIgUikgPT4gYW55XG4gID8gUlxuICA6IG5ldmVyO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlU3RhdGVNYWNoaW5lPE0+KFxuICBpbml0aWFsU3RhdGU6IE1hY2hpbmVTdGF0ZTxNPixcbiAgbWFjaGluZTogTSAmIE1hY2hpbmU8TWFjaGluZVN0YXRlPE0+PlxuKSB7XG4gIHJldHVybiBSZWFjdC51c2VSZWR1Y2VyKChzdGF0ZTogTWFjaGluZVN0YXRlPE0+LCBldmVudDogTWFjaGluZUV2ZW50PE0+KTogTWFjaGluZVN0YXRlPE0+ID0+IHtcbiAgICBjb25zdCBuZXh0U3RhdGUgPSAobWFjaGluZVtzdGF0ZV0gYXMgYW55KVtldmVudF07XG4gICAgcmV0dXJuIG5leHRTdGF0ZSA/PyBzdGF0ZTtcbiAgfSwgaW5pdGlhbFN0YXRlKTtcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIm5vZGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs":
/*!***************************************************************!*\
!*** ./node_modules/@radix-ui/react-primitive/dist/index.mjs ***!
\***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitive: () => (/* binding */ Primitive),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ dispatchDiscreteCustomEvent: () => (/* binding */ dispatchDiscreteCustomEvent)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/primitive/src/Primitive.tsx\n\n\n\n\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__.Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUNPO0FBQ007QUFDSjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsNkNBQWdCO0FBQy9CLFlBQVksNkJBQTZCO0FBQ3pDLDJCQUEyQixzREFBSTtBQUMvQjtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsc0RBQUcsU0FBUyxzQ0FBc0M7QUFDN0UsR0FBRztBQUNILGtDQUFrQyxLQUFLO0FBQ3ZDLFdBQVc7QUFDWCxDQUFDLElBQUk7QUFDTDtBQUNBLGNBQWMsZ0RBQWtCO0FBQ2hDO0FBQ0E7QUFLRTtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3ByaW1pdGl2ZS9zcmMvUHJpbWl0aXZlLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyBTbG90IH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1zbG90XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBOT0RFUyA9IFtcbiAgXCJhXCIsXG4gIFwiYnV0dG9uXCIsXG4gIFwiZGl2XCIsXG4gIFwiZm9ybVwiLFxuICBcImgyXCIsXG4gIFwiaDNcIixcbiAgXCJpbWdcIixcbiAgXCJpbnB1dFwiLFxuICBcImxhYmVsXCIsXG4gIFwibGlcIixcbiAgXCJuYXZcIixcbiAgXCJvbFwiLFxuICBcInBcIixcbiAgXCJzcGFuXCIsXG4gIFwic3ZnXCIsXG4gIFwidWxcIlxuXTtcbnZhciBQcmltaXRpdmUgPSBOT0RFUy5yZWR1Y2UoKHByaW1pdGl2ZSwgbm9kZSkgPT4ge1xuICBjb25zdCBOb2RlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgYXNDaGlsZCwgLi4ucHJpbWl0aXZlUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IENvbXAgPSBhc0NoaWxkID8gU2xvdCA6IG5vZGU7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHdpbmRvd1tTeW1ib2wuZm9yKFwicmFkaXgtdWlcIildID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goQ29tcCwgeyAuLi5wcmltaXRpdmVQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XG4gIH0pO1xuICBOb2RlLmRpc3BsYXlOYW1lID0gYFByaW1pdGl2ZS4ke25vZGV9YDtcbiAgcmV0dXJuIHsgLi4ucHJpbWl0aXZlLCBbbm9kZV06IE5vZGUgfTtcbn0sIHt9KTtcbmZ1bmN0aW9uIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCh0YXJnZXQsIGV2ZW50KSB7XG4gIGlmICh0YXJnZXQpIFJlYWN0RE9NLmZsdXNoU3luYygoKSA9PiB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCkpO1xufVxudmFyIFJvb3QgPSBQcmltaXRpdmU7XG5leHBvcnQge1xuICBQcmltaXRpdmUsXG4gIFJvb3QsXG4gIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.mjs":
/*!*************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.mjs ***!
\*************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Slot: () => (/* binding */ Slot),\n/* harmony export */ Slottable: () => (/* binding */ Slottable)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/slot/src/Slot.tsx\n\n\n\nvar Slot = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (react__WEBPACK_IMPORTED_MODULE_0__.Children.count(newElement) > 1) return react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null);\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.composeRefs)(forwardedRef, childrenRef) : childrenRef\n });\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) > 1 ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children });\n};\nfunction isSlottable(child) {\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2xvdC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUM0QjtBQUNUO0FBQ2xELFdBQVcsNkNBQWdCO0FBQzNCLFVBQVUseUJBQXlCO0FBQ25DLHdCQUF3QiwyQ0FBYztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSwyQ0FBYywrQkFBK0IsMkNBQWM7QUFDdkUsZUFBZSxpREFBb0I7QUFDbkMsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsMkJBQTJCLHNEQUFHLGNBQWMsMkNBQTJDLGlEQUFvQixlQUFlLCtDQUFrQiwwQ0FBMEM7QUFDdEw7QUFDQSx5QkFBeUIsc0RBQUcsY0FBYywyQ0FBMkM7QUFDckYsQ0FBQztBQUNEO0FBQ0EsZ0JBQWdCLDZDQUFnQjtBQUNoQyxVQUFVLHlCQUF5QjtBQUNuQyxNQUFNLGlEQUFvQjtBQUMxQjtBQUNBLFdBQVcsK0NBQWtCO0FBQzdCO0FBQ0E7QUFDQSwwQkFBMEIseUVBQVc7QUFDckMsS0FBSztBQUNMO0FBQ0EsU0FBUywyQ0FBYyx1QkFBdUIsMkNBQWM7QUFDNUQsQ0FBQztBQUNEO0FBQ0EsbUJBQW1CLFVBQVU7QUFDN0IseUJBQXlCLHNEQUFHLENBQUMsdURBQVEsSUFBSSxVQUFVO0FBQ25EO0FBQ0E7QUFDQSxTQUFTLGlEQUFvQjtBQUM3QjtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0NBQWtDO0FBQ2xDLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0U7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZS9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3Qvc2xvdC9zcmMvU2xvdC50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcG9zZVJlZnMgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xuaW1wb3J0IHsgRnJhZ21lbnQsIGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIFNsb3QgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgY2hpbGRyZW4sIC4uLnNsb3RQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNoaWxkcmVuQXJyYXkgPSBSZWFjdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKTtcbiAgY29uc3Qgc2xvdHRhYmxlID0gY2hpbGRyZW5BcnJheS5maW5kKGlzU2xvdHRhYmxlKTtcbiAgaWYgKHNsb3R0YWJsZSkge1xuICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBzbG90dGFibGUucHJvcHMuY2hpbGRyZW47XG4gICAgY29uc3QgbmV3Q2hpbGRyZW4gPSBjaGlsZHJlbkFycmF5Lm1hcCgoY2hpbGQpID0+IHtcbiAgICAgIGlmIChjaGlsZCA9PT0gc2xvdHRhYmxlKSB7XG4gICAgICAgIGlmIChSZWFjdC5DaGlsZHJlbi5jb3VudChuZXdFbGVtZW50KSA+IDEpIHJldHVybiBSZWFjdC5DaGlsZHJlbi5vbmx5KG51bGwpO1xuICAgICAgICByZXR1cm4gUmVhY3QuaXNWYWxpZEVsZW1lbnQobmV3RWxlbWVudCkgPyBuZXdFbGVtZW50LnByb3BzLmNoaWxkcmVuIDogbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTbG90Q2xvbmUsIHsgLi4uc2xvdFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiwgY2hpbGRyZW46IFJlYWN0LmlzVmFsaWRFbGVtZW50KG5ld0VsZW1lbnQpID8gUmVhY3QuY2xvbmVFbGVtZW50KG5ld0VsZW1lbnQsIHZvaWQgMCwgbmV3Q2hpbGRyZW4pIDogbnVsbCB9KTtcbiAgfVxuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChTbG90Q2xvbmUsIHsgLi4uc2xvdFByb3BzLCByZWY6IGZvcndhcmRlZFJlZiwgY2hpbGRyZW4gfSk7XG59KTtcblNsb3QuZGlzcGxheU5hbWUgPSBcIlNsb3RcIjtcbnZhciBTbG90Q2xvbmUgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgY2hpbGRyZW4sIC4uLnNsb3RQcm9wcyB9ID0gcHJvcHM7XG4gIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICBjb25zdCBjaGlsZHJlblJlZiA9IGdldEVsZW1lbnRSZWYoY2hpbGRyZW4pO1xuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHtcbiAgICAgIC4uLm1lcmdlUHJvcHMoc2xvdFByb3BzLCBjaGlsZHJlbi5wcm9wcyksXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZWY6IGZvcndhcmRlZFJlZiA/IGNvbXBvc2VSZWZzKGZvcndhcmRlZFJlZiwgY2hpbGRyZW5SZWYpIDogY2hpbGRyZW5SZWZcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gUmVhY3QuQ2hpbGRyZW4uY291bnQoY2hpbGRyZW4pID4gMSA/IFJlYWN0LkNoaWxkcmVuLm9ubHkobnVsbCkgOiBudWxsO1xufSk7XG5TbG90Q2xvbmUuZGlzcGxheU5hbWUgPSBcIlNsb3RDbG9uZVwiO1xudmFyIFNsb3R0YWJsZSA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goRnJhZ21lbnQsIHsgY2hpbGRyZW4gfSk7XG59O1xuZnVuY3Rpb24gaXNTbG90dGFibGUoY2hpbGQpIHtcbiAgcmV0dXJuIFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSAmJiBjaGlsZC50eXBlID09PSBTbG90dGFibGU7XG59XG5mdW5jdGlvbiBtZXJnZVByb3BzKHNsb3RQcm9wcywgY2hpbGRQcm9wcykge1xuICBjb25zdCBvdmVycmlkZVByb3BzID0geyAuLi5jaGlsZFByb3BzIH07XG4gIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gY2hpbGRQcm9wcykge1xuICAgIGNvbnN0IHNsb3RQcm9wVmFsdWUgPSBzbG90UHJvcHNbcHJvcE5hbWVdO1xuICAgIGNvbnN0IGNoaWxkUHJvcFZhbHVlID0gY2hpbGRQcm9wc1twcm9wTmFtZV07XG4gICAgY29uc3QgaXNIYW5kbGVyID0gL15vbltBLVpdLy50ZXN0KHByb3BOYW1lKTtcbiAgICBpZiAoaXNIYW5kbGVyKSB7XG4gICAgICBpZiAoc2xvdFByb3BWYWx1ZSAmJiBjaGlsZFByb3BWYWx1ZSkge1xuICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgY2hpbGRQcm9wVmFsdWUoLi4uYXJncyk7XG4gICAgICAgICAgc2xvdFByb3BWYWx1ZSguLi5hcmdzKTtcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAoc2xvdFByb3BWYWx1ZSkge1xuICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IHNsb3RQcm9wVmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wTmFtZSA9PT0gXCJzdHlsZVwiKSB7XG4gICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IHsgLi4uc2xvdFByb3BWYWx1ZSwgLi4uY2hpbGRQcm9wVmFsdWUgfTtcbiAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcImNsYXNzTmFtZVwiKSB7XG4gICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IFtzbG90UHJvcFZhbHVlLCBjaGlsZFByb3BWYWx1ZV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpO1xuICAgIH1cbiAgfVxuICByZXR1cm4geyAuLi5zbG90UHJvcHMsIC4uLm92ZXJyaWRlUHJvcHMgfTtcbn1cbmZ1bmN0aW9uIGdldEVsZW1lbnRSZWYoZWxlbWVudCkge1xuICBsZXQgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LnByb3BzLCBcInJlZlwiKT8uZ2V0O1xuICBsZXQgbWF5V2FybiA9IGdldHRlciAmJiBcImlzUmVhY3RXYXJuaW5nXCIgaW4gZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZztcbiAgaWYgKG1heVdhcm4pIHtcbiAgICByZXR1cm4gZWxlbWVudC5yZWY7XG4gIH1cbiAgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LCBcInJlZlwiKT8uZ2V0O1xuICBtYXlXYXJuID0gZ2V0dGVyICYmIFwiaXNSZWFjdFdhcm5pbmdcIiBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICBpZiAobWF5V2Fybikge1xuICAgIHJldHVybiBlbGVtZW50LnByb3BzLnJlZjtcbiAgfVxuICByZXR1cm4gZWxlbWVudC5wcm9wcy5yZWYgfHwgZWxlbWVudC5yZWY7XG59XG52YXIgUm9vdCA9IFNsb3Q7XG5leHBvcnQge1xuICBSb290LFxuICBTbG90LFxuICBTbG90dGFibGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-roving-focus/dist/index.mjs":
/*!******************************************************************!*\
!*** ./node_modules/@radix-ui/react-roving-focus/dist/index.mjs ***!
\******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Item: () => (/* binding */ Item),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ RovingFocusGroup: () => (/* binding */ RovingFocusGroup),\n/* harmony export */ RovingFocusGroupItem: () => (/* binding */ RovingFocusGroupItem),\n/* harmony export */ createRovingFocusGroupScope: () => (/* binding */ createRovingFocusGroupScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-collection */ \"(app-pages-browser)/./node_modules/@radix-ui/react-collection/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-direction */ \"(app-pages-browser)/./node_modules/@radix-ui/react-direction/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Item,Root,RovingFocusGroup,RovingFocusGroupItem,createRovingFocusGroupScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$();\n// packages/react/roving-focus/src/RovingFocusGroup.tsx\n\n\n\n\n\n\n\n\n\n\n\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = (0,_radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_2__.createCollection)(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_3__.createContextScope)(GROUP_NAME, [\n createCollectionScope\n]);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = (props, forwardedRef)=>{\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Provider, {\n scope: props.__scopeRovingFocusGroup,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Slot, {\n scope: props.__scopeRovingFocusGroup,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(RovingFocusGroupImpl, {\n ...props,\n ref: forwardedRef\n })\n })\n });\n});\n_c1 = RovingFocusGroup;\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s((props, forwardedRef)=>{\n _s();\n const { __scopeRovingFocusGroup, orientation, loop = false, dir, currentTabStopId: currentTabStopIdProp, defaultCurrentTabStopId, onCurrentTabStopIdChange, onEntryFocus, preventScrollOnEntryFocus = false, ...groupProps } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs)(forwardedRef, ref);\n const direction = (0,_radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_5__.useDirection)(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_6__.useControllableState)({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const handleEntryFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_7__.useCallbackRef)(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"RovingFocusGroupImpl.useEffect\": ()=>{\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return ({\n \"RovingFocusGroupImpl.useEffect\": ()=>node.removeEventListener(ENTRY_FOCUS, handleEntryFocus)\n })[\"RovingFocusGroupImpl.useEffect\"];\n }\n }\n }[\"RovingFocusGroupImpl.useEffect\"], [\n handleEntryFocus\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(RovingFocusProvider, {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"RovingFocusGroupImpl.useCallback\": (tabStopId)=>setCurrentTabStopId(tabStopId)\n }[\"RovingFocusGroupImpl.useCallback\"], [\n setCurrentTabStopId\n ]),\n onItemShiftTab: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"RovingFocusGroupImpl.useCallback\": ()=>setIsTabbingBackOut(true)\n }[\"RovingFocusGroupImpl.useCallback\"], []),\n onFocusableItemAdd: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"RovingFocusGroupImpl.useCallback\": ()=>setFocusableItemsCount({\n \"RovingFocusGroupImpl.useCallback\": (prevCount)=>prevCount + 1\n }[\"RovingFocusGroupImpl.useCallback\"])\n }[\"RovingFocusGroupImpl.useCallback\"], []),\n onFocusableItemRemove: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"RovingFocusGroupImpl.useCallback\": ()=>setFocusableItemsCount({\n \"RovingFocusGroupImpl.useCallback\": (prevCount)=>prevCount - 1\n }[\"RovingFocusGroupImpl.useCallback\"])\n }[\"RovingFocusGroupImpl.useCallback\"], []),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_8__.Primitive.div, {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: {\n outline: \"none\",\n ...props.style\n },\n onMouseDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onMouseDown, ()=>{\n isClickFocusRef.current = true;\n }),\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onFocus, (event)=>{\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item)=>item.focusable);\n const activeItem = items.find((item)=>item.active);\n const currentItem = items.find((item)=>item.id === currentTabStopId);\n const candidateItems = [\n activeItem,\n currentItem,\n ...items\n ].filter(Boolean);\n const candidateNodes = candidateItems.map((item)=>item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onBlur, ()=>setIsTabbingBackOut(false))\n })\n });\n}, \"CAQSTQZSfY5J/CFBXXLeY0+5JRE=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs,\n _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_5__.useDirection,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_6__.useControllableState,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_7__.useCallbackRef,\n useCollection\n ];\n}));\n_c2 = RovingFocusGroupImpl;\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c3 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeRovingFocusGroup, focusable = true, active = false, tabStopId, ...itemProps } = props;\n const autoId = (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_10__.useId)();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"RovingFocusGroupItem.useEffect\": ()=>{\n if (focusable) {\n onFocusableItemAdd();\n return ({\n \"RovingFocusGroupItem.useEffect\": ()=>onFocusableItemRemove()\n })[\"RovingFocusGroupItem.useEffect\"];\n }\n }\n }[\"RovingFocusGroupItem.useEffect\"], [\n focusable,\n onFocusableItemAdd,\n onFocusableItemRemove\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.ItemSlot, {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_8__.Primitive.span, {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onMouseDown, (event)=>{\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onFocus, ()=>context.onItemFocus(id)),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onKeyDown, (event)=>{\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item)=>item.focusable);\n let candidateNodes = items.map((item)=>item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(()=>focusFirst(candidateNodes));\n }\n })\n })\n });\n}, \"ZggUg4qpA+kNlAlJi32+XZSW+iU=\", false, function() {\n return [\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_10__.useId,\n useRovingFocusContext,\n useCollection\n ];\n})), \"ZggUg4qpA+kNlAlJi32+XZSW+iU=\", false, function() {\n return [\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_10__.useId,\n useRovingFocusContext,\n useCollection\n ];\n});\n_c4 = RovingFocusGroupItem;\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\n \"ArrowLeft\",\n \"ArrowRight\"\n ].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\n \"ArrowUp\",\n \"ArrowDown\"\n ].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates) {\n let preventScroll = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates){\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({\n preventScroll\n });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index)=>array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4;\n$RefreshReg$(_c, \"RovingFocusGroup$React.forwardRef\");\n$RefreshReg$(_c1, \"RovingFocusGroup\");\n$RefreshReg$(_c2, \"RovingFocusGroupImpl\");\n$RefreshReg$(_c3, \"RovingFocusGroupItem$React.forwardRef\");\n$RefreshReg$(_c4, \"RovingFocusGroupItem\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtcm92aW5nLWZvY3VzL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ0o7QUFDRDtBQUNHO0FBQ2I7QUFDSTtBQUNLO0FBQ007QUFDUjtBQWdFbkI7QUE1RFYsSUFBTSxjQUFjO0FBQ3BCLElBQU0sZ0JBQWdCO0lBQUUsU0FBUztJQUFPLFlBQVk7QUFBSztBQU16RCxJQUFNLGFBQWE7QUFHbkIsSUFBTSxDQUFDLFlBQVksZUFBZSxxQkFBcUIsSUFBSSw0RUFBZ0IsQ0FHekUsVUFBVTtBQUdaLElBQU0sQ0FBQywrQkFBK0IsMkJBQTJCLElBQUksMkVBQWtCLENBQ3JGLFlBQ0E7SUFBQyxxQkFBcUI7Q0FBQTtBQStCeEIsSUFBTSxDQUFDLHFCQUFxQixxQkFBcUIsSUFDL0MsOEJBQWtELFVBQVU7QUFLOUQsSUFBTSxpQ0FBeUIsbURBQzdCLENBQUMsT0FBMkM7SUFDMUMsT0FDRSx1RUFBQyxXQUFXLFVBQVg7UUFBb0IsT0FBTyxNQUFNO1FBQ2hDLGlGQUFDLFdBQVcsTUFBWDtZQUFnQixPQUFPLE1BQU07WUFDNUIsaUZBQUM7Z0JBQXNCLEdBQUc7Z0JBQU8sS0FBSztZQUFBLENBQWM7UUFBQSxDQUN0RDtJQUFBLENBQ0Y7QUFFSjs7QUFHRixpQkFBaUIsY0FBYztBQWdCL0IseUNBQW1DLGlEQUdqQyxDQUFDLE9BQStDOztJQUNoRCxNQUFNLEVBQ0oseUJBQ0EsYUFDQSxPQUFPLE9BQ1AsS0FDQSxrQkFBa0Isc0JBQ2xCLHlCQUNBLDBCQUNBLGNBQ0EsNEJBQTRCLE9BQzVCLEdBQUcsWUFDTCxHQUFJO0lBQ0osTUFBTSxNQUFZLDBDQUFvQyxJQUFJO0lBQzFELE1BQU0sZUFBZSw2RUFBZSxDQUFDLGNBQWMsR0FBRztJQUN0RCxNQUFNLFlBQVksdUVBQVksQ0FBQyxHQUFHO0lBQ2xDLE1BQU0sQ0FBQyxtQkFBbUIs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QUM3RDtBQUNGO0FBTUEsU0FBUyxVQUFhLE9BQVksWUFBb0I7SUFDcEQsT0FBTyxNQUFNLElBQUksQ0FBQyxHQUFHLFFBQVUsT0FBTyxhQUFhLFNBQVMsTUFBTSxNQUFNLENBQUM7QUFDM0U7QUFFQSxJQUFNLE9BQU87QUFDYixJQUFNLE9BQU8iLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9zcmMvUm92aW5nRm9jdXNHcm91cC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tICdAcmFkaXgtdWkvcHJpbWl0aXZlJztcbmltcG9ydCB7IGNyZWF0ZUNvbGxlY3Rpb24gfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29sbGVjdGlvbic7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWlkJztcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2tSZWYgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZic7XG5pbXBvcnQgeyB1c2VDb250cm9sbGFibGVTdGF0ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlJztcbmltcG9ydCB7IHVzZURpcmVjdGlvbiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1kaXJlY3Rpb24nO1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuXG5jb25zdCBFTlRSWV9GT0NVUyA9ICdyb3ZpbmdGb2N1c0dyb3VwLm9uRW50cnlGb2N1cyc7XG5jb25zdCBFVkVOVF9PUFRJT05TID0geyBidWJibGVzOiBmYWxzZSwgY2FuY2VsYWJsZTogdHJ1ZSB9O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBSb3ZpbmdGb2N1c0dyb3VwXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IEdST1VQX05BTUUgPSAnUm92aW5nRm9jdXNHcm91cCc7XG5cbnR5cGUgSXRlbURhdGEgPSB7IGlkOiBzdHJpbmc7IGZvY3VzYWJsZTogYm9vbGVhbjsgYWN0aXZlOiBib29sZWFuIH07XG5jb25zdCBbQ29sbGVjdGlvbiwgdXNlQ29sbGVjdGlvbiwgY3JlYXRlQ29sbGVjdGlvblNjb3BlXSA9IGNyZWF0ZUNvbGxlY3Rpb248XG4gIEhUTUxTcGFuRWxlbWVudCxcbiAgSXRlbURhdGFcbj4oR1JPVVBfTkFNRSk7XG5cbnR5cGUgU2NvcGVkUHJvcHM8UD4gPSBQICYgeyBfX3Njb3BlUm92aW5nRm9jdXNHcm91cD86IFNjb3BlIH07XG5jb25zdCBbY3JlYXRlUm92aW5nRm9jdXNHcm91cENvbnRleHQsIGNyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoXG4gIEdST1VQX05BTUUsXG4gIFtjcmVhdGVDb2xsZWN0aW9uU2NvcGVdXG4pO1xuXG50eXBlIE9yaWVudGF0aW9uID0gUmVhY3QuQXJpYUF0dHJpYnV0ZXNbJ2FyaWEtb3JpZW50YXRpb24nXTtcbnR5cGUgRGlyZWN0aW9uID0gJ2x0cicgfCAncnRsJztcblxuaW50ZXJmYWNlIFJvdmluZ0ZvY3VzR3JvdXBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBvcmllbnRhdGlvbiBvZiB0aGUgZ3JvdXAuXG4gICAqIE1haW5seSBzbyBhcnJvdyBuYXZpZ2F0aW9uIGlzIGRvbmUgYWNjb3JkaW5nbHkgKGxlZnQgJiByaWdodCB2cy4gdXAgJiBkb3duKVxuICAgKi9cbiAgb3JpZW50YXRpb24/OiBPcmllbnRhdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rpb24gb2YgbmF2aWdhdGlvbiBiZXR3ZWVuIGl0ZW1zLlxuICAgKi9cbiAgZGlyPzogRGlyZWN0aW9uO1xuICAvKipcbiAgICogV2hldGhlciBrZXlib2FyZCBuYXZpZ2F0aW9uIHNob3VsZCBsb29wIGFyb3VuZFxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICBsb29wPzogYm9vbGVhbjtcbn1cblxudHlwZSBSb3ZpbmdDb250ZXh0VmFsdWUgPSBSb3ZpbmdGb2N1c0dyb3VwT3B0aW9ucyAmIHtcbiAgY3VycmVudFRhYlN0b3BJZDogc3RyaW5nIHwgbnVsbDtcbiAgb25JdGVtRm9jdXModGFiU3RvcElkOiBzdHJpbmcpOiB2b2lkO1xuICBvbkl0ZW1TaGlmdFRhYigpOiB2b2lkO1xuICBvbkZvY3VzYWJsZUl0ZW1BZGQoKTogdm9pZDtcbiAgb25Gb2N1c2FibGVJdGVtUmVtb3ZlKCk6IHZvaWQ7XG59O1xuXG5jb25zdCBbUm92aW5nRm9jdXNQcm92aWRlciwgdXNlUm92aW5nRm9jdXNDb250ZXh0XSA9XG4gIGNyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBDb250ZXh0PFJvdmluZ0NvbnRleHRWYWx1ZT4oR1JPVVBfTkFNRSk7XG5cbnR5cGUgUm92aW5nRm9jdXNHcm91cEVsZW1lbnQgPSBSb3ZpbmdGb2N1c0dyb3VwSW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgUm92aW5nRm9jdXNHcm91cFByb3BzIGV4dGVuZHMgUm92aW5nRm9jdXNHcm91cEltcGxQcm9wcyB7fVxuXG5jb25zdCBSb3ZpbmdGb2N1c0dyb3VwID0gUmVhY3QuZm9yd2FyZFJlZjxSb3ZpbmdGb2N1c0dyb3VwRWxlbWVudCwgUm92aW5nRm9jdXNHcm91cFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxSb3ZpbmdGb2N1c0dyb3VwUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPENvbGxlY3Rpb24uUHJvdmlkZXIgc2NvcGU9e3Byb3BzLl9fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwfT5cbiAgICAgICAgPENvbGxlY3Rpb24uU2xvdCBzY29wZT17cHJvcHMuX19zY29wZVJvdmluZ0ZvY3VzR3JvdXB9PlxuICAgICAgICAgIDxSb3ZpbmdGb2N1c0dyb3VwSW1wbCB7Li4ucHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgICA8L0NvbGxlY3Rpb24uU2xvdD5cbiAgICAgIDwvQ29sbGVjdGlvbi5Qcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG5Sb3ZpbmdGb2N1c0dyb3VwLmRpc3BsYXlOYW1lID0gR1JPVVBfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIFJvdmluZ0ZvY3VzR3JvdXBJbXBsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBQcmltaXRpdmVEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgUm92aW5nRm9jdXNHcm91cEltcGxQcm9wc1xuICBleHRlbmRzIE9taXQ8UHJpbWl0aXZlRGl2UHJvcHMsICdkaXInPixcbiAgICBSb3ZpbmdGb2N1c0dyb3VwT3B0aW9ucyB7XG4gIGN1cnJlbnRUYWJTdG9wSWQ/OiBzdHJpbmcgfCBudWxsO1xuICBkZWZhdWx0Q3VycmVudFRhYlN0b3BJZD86IHN0cmluZztcbiAgb25DdXJyZW50VGFiU3RvcElkQ2hhbmdlPzogKHRhYlN0b3BJZDogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZDtcbiAgb25FbnRyeUZvY3VzPzogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcbiAgcHJldmVudFNjcm9sbE9uRW50cnlGb2N1cz86IGJvb2xlYW47XG59XG5cbmNvbnN0IFJvdmluZ0ZvY3VzR3JvdXBJbXBsID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUm92aW5nRm9jdXNHcm91cEltcGxFbGVtZW50LFxuICBSb3ZpbmdGb2N1c0dyb3VwSW1wbFByb3BzXG4+KChwcm9wczogU2NvcGVkUHJvcHM8Um92aW5nRm9jdXNHcm91cEltcGxQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7XG4gICAgX19zY29wZVJvdmluZ0ZvY3VzR3JvdXAsXG4gICAgb3JpZW50YXRpb24sXG4gICAgbG9vcCA9IGZhbHNlLFxuICAgIGRpcixcbiAgICBjdXJyZW50VGFiU3RvcElkOiBjdXJyZW50VGFiU3RvcElkUHJvcCxcbiAgICBkZWZhdWx0Q3VycmVudFRhYlN0b3BJZCxcbiAgICBvbkN1cnJlbnRUYWJTdG9wSWRDaGFuZ2UsXG4gICAgb25FbnRyeUZvY3VzLFxuICAgIHByZXZlbnRTY3JvbGxPbkVudHJ5Rm9jdXMgPSBmYWxzZSxcbiAgICAuLi5ncm91cFByb3BzXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPFJvdmluZ0ZvY3VzR3JvdXBJbXBsRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG4gIGNvbnN0IGRpcmVjdGlvbiA9IHVzZURpcmVjdGlvbihkaXIpO1xuICBjb25zdCBbY3VycmVudFRhYlN0b3BJZCA9IG51bGwsIHNldEN1cnJlbnRUYWJTdG9wSWRdID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgIHByb3A6IGN1cnJlbnRUYWJTdG9wSWRQcm9wLFxuICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0Q3VycmVudFRhYlN0b3BJZCxcbiAgICBvbkNoYW5nZTogb25DdXJyZW50VGFiU3RvcElkQ2hhbmdlLFxuICB9KTtcbiAgY29uc3QgW2lzVGFiYmluZ0JhY2tPdXQsIHNldElzVGFiYmluZ0JhY2tPdXRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBoYW5kbGVFbnRyeUZvY3VzID0gdXNlQ2FsbGJhY2tSZWYob25FbnRyeUZvY3VzKTtcbiAgY29uc3QgZ2V0SXRlbXMgPSB1c2VDb2xsZWN0aW9uKF9fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwKTtcbiAgY29uc3QgaXNDbGlja0ZvY3VzUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgW2ZvY3VzYWJsZUl0ZW1zQ291bnQsIHNldEZvY3VzYWJsZUl0ZW1zQ291bnRdID0gUmVhY3QudXNlU3RhdGUoMCk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBub2RlID0gcmVmLmN1cnJlbnQ7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihFTlRSWV9GT0NVUywgaGFuZGxlRW50cnlGb2N1cyk7XG4gICAgICByZXR1cm4gKCkgPT4gbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKEVOVFJZX0ZPQ1VTLCBoYW5kbGVFbnRyeUZvY3VzKTtcbiAgICB9XG4gIH0sIFtoYW5kbGVFbnRyeUZvY3VzXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Um92aW5nRm9jdXNQcm92aWRlclxuICAgICAgc2NvcGU9e19fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwfVxuICAgICAgb3JpZW50YXRpb249e29yaWVudGF0aW9ufVxuICAgICAgZGlyPXtkaXJlY3Rpb259XG4gICAgICBsb29wPXtsb29wfVxuICAgICAgY3VycmVudFRhYlN0b3BJZD17Y3VycmVudFRhYlN0b3BJZH1cbiAgICAgIG9uSXRlbUZvY3VzPXtSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgICAgKHRhYlN0b3BJZCkgPT4gc2V0Q3VycmVudFRhYlN0b3BJZCh0YWJTdG9wSWQpLFxuICAgICAgICBbc2V0Q3VycmVudFRhYlN0b3BJZF1cbiAgICAgICl9XG4gICAgICBvbkl0ZW1TaGlmdFRhYj17UmVhY3QudXNlQ2FsbGJhY2soKCkgPT4gc2V0SXNUYWJiaW5nQmFja091dCh0cnVlKSwgW10pfVxuICAgICAgb25Gb2N1c2FibGVJdGVtQWRkPXtSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgICAgKCkgPT4gc2V0Rm9jdXNhYmxlSXRlbXNDb3VudCgocHJldkNvdW50KSA9PiBwcmV2Q291bnQgKyAxKSxcbiAgICAgICAgW11cbiAgICAgICl9XG4gICAgICBvbkZvY3VzYWJsZUl0ZW1SZW1vdmU9e1JlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgICAoKSA9PiBzZXRGb2N1c2FibGVJdGVtc0NvdW50KChwcmV2Q291bnQpID0+IHByZXZDb3VudCAtIDEpLFxuICAgICAgICBbXVxuICAgICAgKX1cbiAgICA+XG4gICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICB0YWJJbmRleD17aXNUYWJiaW5nQmFja091dCB8fCBmb2N1c2FibGVJdGVtc0NvdW50ID09PSAwID8gLTEgOiAwfVxuICAgICAgICBkYXRhLW9yaWVudGF0aW9uPXtvcmllbnRhdGlvbn1cbiAgICAgICAgey4uLmdyb3VwUHJvcHN9XG4gICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICBzdHlsZT17eyBvdXRsaW5lOiAnbm9uZScsIC4uLnByb3BzLnN0eWxlIH19XG4gICAgICAgIG9uTW91c2VEb3duPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbk1vdXNlRG93biwgKCkgPT4ge1xuICAgICAgICAgIGlzQ2xpY2tGb2N1c1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgfSl9XG4gICAgICAgIG9uRm9jdXM9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRm9jdXMsIChldmVudCkgPT4ge1xuICAgICAgICAgIC8vIFdlIG5vcm1hbGx5IHdvdWxkbid0IG5lZWQgdGhpcyBjaGVjaywgYmVjYXVzZSB3ZSBhbHJlYWR5IGNoZWNrXG4gICAgICAgICAgLy8gdGhhdCB0aGUgZm9jdXMgaXMgb24gdGhlIGN1cnJlbnQgdGFyZ2V0IGFuZCBub3QgYnViYmxpbmcgdG8gaXQuXG4gICAgICAgICAgLy8gV2UgZG8gdGhpcyBiZWNhdXNlIFNhZmFyaSBkb2Vzbid0IGZvY3VzIGJ1dHRvbnMgd2hlbiBjbGlja2VkLCBhbmRcbiAgICAgICAgICAvLyBpbnN0ZWFkLCB0aGUgd3JhcHBlciB3aWxsIGdldCBmb2N1c2VkIGFuZCBub3QgdGhyb3VnaCBhIGJ1YmJsaW5nIGV2ZW50LlxuICAgICAgICAgIGNvbnN0IGlzS2V5Ym9hcmRGb2N1cyA9ICFpc0NsaWNrRm9jdXNSZWYuY3VycmVudDtcblxuICAgICAgICAgIGlmIChldmVudC50YXJnZXQgPT09IGV2ZW50LmN1cnJlbnRUYXJnZXQgJiYgaXNLZXlib2FyZEZvY3VzICYmICFpc1RhYmJpbmdCYWNrT3V0KSB7XG4gICAgICAgICAgICBjb25zdCBlbnRyeUZvY3VzRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoRU5UUllfRk9DVVMsIEVWRU5UX09QVElPTlMpO1xuICAgICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5kaXNwYXRjaEV2ZW50KGVudHJ5Rm9jdXNFdmVudCk7XG5cbiAgICAgICAgICAgIGlmICghZW50cnlGb2N1c0V2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSBnZXRJdGVtcygpLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5mb2N1c2FibGUpO1xuICAgICAgICAgICAgICBjb25zdCBhY3RpdmVJdGVtID0gaXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS5hY3RpdmUpO1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IGl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGN1cnJlbnRUYWJTdG9wSWQpO1xuICAgICAgICAgICAgICBjb25zdCBjYW5kaWRhdGVJdGVtcyA9IFthY3RpdmVJdGVtLCBjdXJyZW50SXRlbSwgLi4uaXRlbXNdLmZpbHRlcihcbiAgICAgICAgICAgICAgICBCb29sZWFuXG4gICAgICAgICAgICAgICkgYXMgdHlwZW9mIGl0ZW1zO1xuICAgICAgICAgICAgICBjb25zdCBjYW5kaWRhdGVOb2RlcyA9IGNhbmRpZGF0ZUl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5yZWYuY3VycmVudCEpO1xuICAgICAgICAgICAgICBmb2N1c0ZpcnN0KGNhbmRpZGF0ZU5vZGVzLCBwcmV2ZW50U2Nyb2xsT25FbnRyeUZvY3VzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpc0NsaWNrRm9jdXNSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9KX1cbiAgICAgICAgb25CbHVyPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkJsdXIsICgpID0+IHNldElzVGFiYmluZ0JhY2tPdXQoZmFsc2UpKX1cbiAgICAgIC8+XG4gICAgPC9Sb3ZpbmdGb2N1c1Byb3ZpZGVyPlxuICApO1xufSk7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFJvdmluZ0ZvY3VzR3JvdXBJdGVtXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IElURU1fTkFNRSA9ICdSb3ZpbmdGb2N1c0dyb3VwSXRlbSc7XG5cbnR5cGUgUm92aW5nRm9jdXNJdGVtRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5zcGFuPjtcbnR5cGUgUHJpbWl0aXZlU3BhblByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuc3Bhbj47XG5pbnRlcmZhY2UgUm92aW5nRm9jdXNJdGVtUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVTcGFuUHJvcHMge1xuICB0YWJTdG9wSWQ/OiBzdHJpbmc7XG4gIGZvY3VzYWJsZT86IGJvb2xlYW47XG4gIGFjdGl2ZT86IGJvb2xlYW47XG59XG5cbmNvbnN0IFJvdmluZ0ZvY3VzR3JvdXBJdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxSb3ZpbmdGb2N1c0l0ZW1FbGVtZW50LCBSb3ZpbmdGb2N1c0l0ZW1Qcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8Um92aW5nRm9jdXNJdGVtUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlUm92aW5nRm9jdXNHcm91cCxcbiAgICAgIGZvY3VzYWJsZSA9IHRydWUsXG4gICAgICBhY3RpdmUgPSBmYWxzZSxcbiAgICAgIHRhYlN0b3BJZCxcbiAgICAgIC4uLml0ZW1Qcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGlkID0gdGFiU3RvcElkIHx8IGF1dG9JZDtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlUm92aW5nRm9jdXNDb250ZXh0KElURU1fTkFNRSwgX19zY29wZVJvdmluZ0ZvY3VzR3JvdXApO1xuICAgIGNvbnN0IGlzQ3VycmVudFRhYlN0b3AgPSBjb250ZXh0LmN1cnJlbnRUYWJTdG9wSWQgPT09IGlkO1xuICAgIGNvbnN0IGdldEl0ZW1zID0gdXNlQ29sbGVjdGlvbihfX3Njb3BlUm92aW5nRm9jdXNHcm91cCk7XG5cbiAgICBjb25zdCB7IG9uRm9jdXNhYmxlSXRlbUFkZCwgb25Gb2N1c2FibGVJdGVtUmVtb3ZlIH0gPSBjb250ZXh0O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChmb2N1c2FibGUpIHtcbiAgICAgICAgb25Gb2N1c2FibGVJdGVtQWRkKCk7XG4gICAgICAgIHJldHVybiAoKSA9PiBvbkZvY3VzYWJsZUl0ZW1SZW1vdmUoKTtcbiAgICAgIH1cbiAgICB9LCBbZm9jdXNhYmxlLCBvbkZvY3VzYWJsZUl0ZW1BZGQsIG9uRm9jdXNhYmxlSXRlbVJlbW92ZV0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxDb2xsZWN0aW9uLkl0ZW1TbG90XG4gICAgICAgIHNjb3BlPXtfX3Njb3BlUm92aW5nRm9jdXNHcm91cH1cbiAgICAgICAgaWQ9e2lkfVxuICAgICAgICBmb2N1c2FibGU9e2ZvY3VzYWJsZX1cbiAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICA+XG4gICAgICAgIDxQcmltaXRpdmUuc3BhblxuICAgICAgICAgIHRhYkluZGV4PXtpc0N1cnJlbnRUYWJTdG9wID8gMCA6IC0xfVxuICAgICAgICAgIGRhdGEtb3JpZW50YXRpb249e2NvbnRleHQub3JpZW50YXRpb259XG4gICAgICAgICAgey4uLml0ZW1Qcm9wc31cbiAgICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgICBvbk1vdXNlRG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Nb3VzZURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgLy8gV2UgcHJldmVudCBmb2N1c2luZyBub24tZm9jdXNhYmxlIGl0ZW1zIG9uIGBtb3VzZWRvd25gLlxuICAgICAgICAgICAgLy8gRXZlbiB0aG91Z2ggdGhlIGl0ZW0gaGFzIHRhYkluZGV4PXstMX0sIHRoYXQgb25seSBtZWFucyB0YWtlIGl0IG91dCBvZiB0aGUgdGFiIG9yZGVyLlxuICAgICAgICAgICAgaWYgKCFmb2N1c2FibGUpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAvLyBTYWZhcmkgZG9lc24ndCBmb2N1cyBhIGJ1dHRvbiB3aGVuIGNsaWNrZWQgc28gd2UgcnVuIG91ciBsb2dpYyBvbiBtb3VzZWRvd24gYWxzb1xuICAgICAgICAgICAgZWxzZSBjb250ZXh0Lm9uSXRlbUZvY3VzKGlkKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBvbkZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkZvY3VzLCAoKSA9PiBjb250ZXh0Lm9uSXRlbUZvY3VzKGlkKSl9XG4gICAgICAgICAgb25LZXlEb3duPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicgJiYgZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5vbkl0ZW1TaGlmdFRhYigpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChldmVudC50YXJnZXQgIT09IGV2ZW50LmN1cnJlbnRUYXJnZXQpIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3QgZm9jdXNJbnRlbnQgPSBnZXRGb2N1c0ludGVudChldmVudCwgY29udGV4dC5vcmllbnRhdGlvbiwgY29udGV4dC5kaXIpO1xuXG4gICAgICAgICAgICBpZiAoZm9jdXNJbnRlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBpZiAoZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5zaGlmdEtleSkgcmV0dXJuO1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IGdldEl0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmZvY3VzYWJsZSk7XG4gICAgICAgICAgICAgIGxldCBjYW5kaWRhdGVOb2RlcyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5yZWYuY3VycmVudCEpO1xuXG4gICAgICAgICAgICAgIGlmIChmb2N1c0ludGVudCA9PT0gJ2xhc3QnKSBjYW5kaWRhdGVOb2Rlcy5yZXZlcnNlKCk7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGZvY3VzSW50ZW50ID09PSAncHJldicgfHwgZm9jdXNJbnRlbnQgPT09ICduZXh0Jykge1xuICAgICAgICAgICAgICAgIGlmIChmb2N1c0ludGVudCA9PT0gJ3ByZXYnKSBjYW5kaWRhdGVOb2Rlcy5yZXZlcnNlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY2FuZGlkYXRlTm9kZXMuaW5kZXhPZihldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBjYW5kaWRhdGVOb2RlcyA9IGNvbnRleHQubG9vcFxuICAgICAgICAgICAgICAgICAgPyB3cmFwQXJyYXkoY2FuZGlkYXRlTm9kZXMsIGN1cnJlbnRJbmRleCArIDEpXG4gICAgICAgICAgICAgICAgICA6IGNhbmRpZGF0ZU5vZGVzLnNsaWNlKGN1cnJlbnRJbmRleCArIDEpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAqIEltcGVyYXRpdmUgZm9jdXMgZHVyaW5nIGtleWRvd24gaXMgcmlza3kgc28gd2UgcHJldmVudCBSZWFjdCdzIGJhdGNoaW5nIHVwZGF0ZXNcbiAgICAgICAgICAgICAgICogdG8gYXZvaWQgcG90ZW50aWFsIGJ1Z3MuIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8yMDMzMlxuICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBmb2N1c0ZpcnN0KGNhbmRpZGF0ZU5vZGVzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSl9XG4gICAgICAgIC8+XG4gICAgICA8L0NvbGxlY3Rpb24uSXRlbVNsb3Q+XG4gICAgKTtcbiAgfVxuKTtcblxuUm92aW5nRm9jdXNHcm91cEl0ZW0uZGlzcGxheU5hbWUgPSBJVEVNX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gcHJldHRpZXItaWdub3JlXG5jb25zdCBNQVBfS0VZX1RPX0ZPQ1VTX0lOVEVOVDogUmVjb3JkPHN0cmluZywgRm9jdXNJbnRlbnQ+ID0ge1xuICBBcnJvd0xlZnQ6ICdwcmV2JywgQXJyb3dVcDogJ3ByZXYnLFxuICBBcnJvd1JpZ2h0OiAnbmV4dCcsIEFycm93RG93bjogJ25leHQnLFxuICBQYWdlVXA6ICdmaXJzdCcsIEhvbWU6ICdmaXJzdCcsXG4gIFBhZ2VEb3duOiAnbGFzdCcsIEVuZDogJ2xhc3QnLFxufTtcblxuZnVuY3Rpb24gZ2V0RGlyZWN0aW9uQXdhcmVLZXkoa2V5OiBzdHJpbmcsIGRpcj86IERpcmVjdGlvbikge1xuICBpZiAoZGlyICE9PSAncnRsJykgcmV0dXJuIGtleTtcbiAgcmV0dXJuIGtleSA9PT0gJ0Fycm93TGVmdCcgPyAnQXJyb3dSaWdodCcgOiBrZXkgPT09ICdBcnJvd1JpZ2h0JyA/ICdBcnJvd0xlZnQnIDoga2V5O1xufVxuXG50eXBlIEZvY3VzSW50ZW50ID0gJ2ZpcnN0JyB8ICdsYXN0JyB8ICdwcmV2JyB8ICduZXh0JztcblxuZnVuY3Rpb24gZ2V0Rm9jdXNJbnRlbnQoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQsIG9yaWVudGF0aW9uPzogT3JpZW50YXRpb24sIGRpcj86IERpcmVjdGlvbikge1xuICBjb25zdCBrZXkgPSBnZXREaXJlY3Rpb25Bd2FyZUtleShldmVudC5rZXksIGRpcik7XG4gIGlmIChvcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyAmJiBbJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0J10uaW5jbHVkZXMoa2V5KSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgaWYgKG9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcgJiYgWydBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKGtleSkpIHJldHVybiB1bmRlZmluZWQ7XG4gIHJldHVybiBNQVBfS0VZX1RPX0ZPQ1VTX0lOVEVOVFtrZXldO1xufVxuXG5mdW5jdGlvbiBmb2N1c0ZpcnN0KGNhbmRpZGF0ZXM6IEhUTUxFbGVtZW50W10sIHByZXZlbnRTY3JvbGwgPSBmYWxzZSkge1xuICBjb25zdCBQUkVWSU9VU0xZX0ZPQ1VTRURfRUxFTUVOVCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICAvLyBpZiBmb2N1cyBpcyBhbHJlYWR5IHdoZXJlIHdlIHdhbnQgdG8gZ28sIHdlIGRvbid0IHdhbnQgdG8ga2VlcCBnb2luZyB0aHJvdWdoIHRoZSBjYW5kaWRhdGVzXG4gICAgaWYgKGNhbmRpZGF0ZSA9PT0gUFJFVklPVVNMWV9GT0NVU0VEX0VMRU1FTlQpIHJldHVybjtcbiAgICBjYW5kaWRhdGUuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsIH0pO1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBQUkVWSU9VU0xZX0ZPQ1VTRURfRUxFTUVOVCkgcmV0dXJuO1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYW4gYXJyYXkgYXJvdW5kIGl0c2VsZiBhdCBhIGdpdmVuIHN0YXJ0IGluZGV4XG4gKiBFeGFtcGxlOiBgd3JhcEFycmF5KFsnYScsICdiJywgJ2MnLCAnZCddLCAyKSA9PT0gWydjJywgJ2QnLCAnYScsICdiJ11gXG4gKi9cbmZ1bmN0aW9uIHdyYXBBcnJheTxUPihhcnJheTogVFtdLCBzdGFydEluZGV4OiBudW1iZXIpIHtcbiAgcmV0dXJuIGFycmF5Lm1hcCgoXywgaW5kZXgpID0+IGFycmF5WyhzdGFydEluZGV4ICsgaW5kZXgpICUgYXJyYXkubGVuZ3RoXSk7XG59XG5cbmNvbnN0IFJvb3QgPSBSb3ZpbmdGb2N1c0dyb3VwO1xuY29uc3QgSXRlbSA9IFJvdmluZ0ZvY3VzR3JvdXBJdGVtO1xuXG5leHBvcnQge1xuICBjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwU2NvcGUsXG4gIC8vXG4gIFJvdmluZ0ZvY3VzR3JvdXAsXG4gIFJvdmluZ0ZvY3VzR3JvdXBJdGVtLFxuICAvL1xuICBSb290LFxuICBJdGVtLFxufTtcbmV4cG9ydCB0eXBlIHsgUm92aW5nRm9jdXNHcm91cFByb3BzLCBSb3ZpbmdGb2N1c0l0ZW1Qcm9wcyB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-roving-focus/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-scroll-area/dist/index.mjs":
/*!*****************************************************************!*\
!*** ./node_modules/@radix-ui/react-scroll-area/dist/index.mjs ***!
\*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Corner: () => (/* binding */ Corner),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ ScrollArea: () => (/* binding */ ScrollArea),\n/* harmony export */ ScrollAreaCorner: () => (/* binding */ ScrollAreaCorner),\n/* harmony export */ ScrollAreaScrollbar: () => (/* binding */ ScrollAreaScrollbar),\n/* harmony export */ ScrollAreaThumb: () => (/* binding */ ScrollAreaThumb),\n/* harmony export */ ScrollAreaViewport: () => (/* binding */ ScrollAreaViewport),\n/* harmony export */ Scrollbar: () => (/* binding */ Scrollbar),\n/* harmony export */ Thumb: () => (/* binding */ Thumb),\n/* harmony export */ Viewport: () => (/* binding */ Viewport),\n/* harmony export */ createScrollAreaScope: () => (/* binding */ createScrollAreaScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-direction */ \"(app-pages-browser)/./node_modules/@radix-ui/react-direction/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var _radix_ui_number__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/number */ \"(app-pages-browser)/./node_modules/@radix-ui/number/dist/index.mjs\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Corner,Root,ScrollArea,ScrollAreaCorner,ScrollAreaScrollbar,ScrollAreaThumb,ScrollAreaViewport,Scrollbar,Thumb,Viewport,createScrollAreaScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$(), _s7 = $RefreshSig$(), _s8 = $RefreshSig$(), _s9 = $RefreshSig$(), _s10 = $RefreshSig$(), _s11 = $RefreshSig$(), _s12 = $RefreshSig$(), _s13 = $RefreshSig$(), _s14 = $RefreshSig$(), _s15 = $RefreshSig$(), _s16 = $RefreshSig$();\n// packages/react/scroll-area/src/scroll-area.tsx\n\n\n\n\n\n\n\n\n\n\n// packages/react/scroll-area/src/use-state-machine.ts\n\nfunction useStateMachine(initialState, machine) {\n _s();\n return react__WEBPACK_IMPORTED_MODULE_0__.useReducer({\n \"useStateMachine.useReducer\": (state, event)=>{\n const nextState = machine[state][event];\n return nextState !== null && nextState !== void 0 ? nextState : state;\n }\n }[\"useStateMachine.useReducer\"], initialState);\n}\n_s(useStateMachine, \"skVOqNGrFQuDFh+lpttAJ2AZFeA=\");\n// packages/react/scroll-area/src/scroll-area.tsx\n\nvar SCROLL_AREA_NAME = \"ScrollArea\";\nvar [createScrollAreaContext, createScrollAreaScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(SCROLL_AREA_NAME);\nvar [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);\nvar ScrollArea = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeScrollArea, type = \"hover\", dir, scrollHideDelay = 600, ...scrollAreaProps } = props;\n const [scrollArea, setScrollArea] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [viewport, setViewport] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [scrollbarX, setScrollbarX] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [scrollbarY, setScrollbarY] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [cornerWidth, setCornerWidth] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0);\n const [cornerHeight, setCornerHeight] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, {\n \"ScrollArea.useComposedRefs[composedRefs]\": (node)=>setScrollArea(node)\n }[\"ScrollArea.useComposedRefs[composedRefs]\"]);\n const direction = (0,_radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_4__.useDirection)(dir);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaProvider, {\n scope: __scopeScrollArea,\n type,\n dir: direction,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.div, {\n dir: direction,\n ...scrollAreaProps,\n ref: composedRefs,\n style: {\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n [\"--radix-scroll-area-corner-width\"]: cornerWidth + \"px\",\n [\"--radix-scroll-area-corner-height\"]: cornerHeight + \"px\",\n ...props.style\n }\n })\n });\n}, \"05Ruyd+KVjVqRyLvo9TqB+FhiPE=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_4__.useDirection\n ];\n})), \"05Ruyd+KVjVqRyLvo9TqB+FhiPE=\", false, function() {\n return [\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_4__.useDirection\n ];\n});\n_c1 = ScrollArea;\nScrollArea.displayName = SCROLL_AREA_NAME;\nvar VIEWPORT_NAME = \"ScrollAreaViewport\";\nvar ScrollAreaViewport = /*#__PURE__*/ _s2(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c2 = _s2((props, forwardedRef)=>{\n _s2();\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref, context.onViewportChange);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: \"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}\"\n },\n nonce\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.div, {\n \"data-radix-scroll-area-viewport\": \"\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */ overflowX: context.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: context.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...props.style\n },\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"div\", {\n ref: context.onContentChange,\n style: {\n minWidth: \"100%\",\n display: \"table\"\n },\n children\n })\n })\n ]\n });\n}, \"QJDvjtN21Lm1MiN/J0fr6IVZH/U=\", false, function() {\n return [\n useScrollAreaContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n})), \"QJDvjtN21Lm1MiN/J0fr6IVZH/U=\", false, function() {\n return [\n useScrollAreaContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n});\n_c3 = ScrollAreaViewport;\nScrollAreaViewport.displayName = VIEWPORT_NAME;\nvar SCROLLBAR_NAME = \"ScrollAreaScrollbar\";\nvar ScrollAreaScrollbar = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c4 = _s3((props, forwardedRef)=>{\n _s3();\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === \"horizontal\";\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaScrollbar.useEffect\": ()=>{\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return ({\n \"ScrollAreaScrollbar.useEffect\": ()=>{\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n }\n })[\"ScrollAreaScrollbar.useEffect\"];\n }\n }[\"ScrollAreaScrollbar.useEffect\"], [\n isHorizontal,\n onScrollbarXEnabledChange,\n onScrollbarYEnabledChange\n ]);\n return context.type === \"hover\" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarHover, {\n ...scrollbarProps,\n ref: forwardedRef,\n forceMount\n }) : context.type === \"scroll\" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarScroll, {\n ...scrollbarProps,\n ref: forwardedRef,\n forceMount\n }) : context.type === \"auto\" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarAuto, {\n ...scrollbarProps,\n ref: forwardedRef,\n forceMount\n }) : context.type === \"always\" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarVisible, {\n ...scrollbarProps,\n ref: forwardedRef\n }) : null;\n}, \"ElaxBlXBgCRSqup4Y+nPaKERxHs=\", false, function() {\n return [\n useScrollAreaContext\n ];\n})), \"ElaxBlXBgCRSqup4Y+nPaKERxHs=\", false, function() {\n return [\n useScrollAreaContext\n ];\n});\n_c5 = ScrollAreaScrollbar;\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\nvar ScrollAreaScrollbarHover = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s4((props, forwardedRef)=>{\n _s4();\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaScrollbarHover.useEffect\": ()=>{\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = {\n \"ScrollAreaScrollbarHover.useEffect.handlePointerEnter\": ()=>{\n window.clearTimeout(hideTimer);\n setVisible(true);\n }\n }[\"ScrollAreaScrollbarHover.useEffect.handlePointerEnter\"];\n const handlePointerLeave = {\n \"ScrollAreaScrollbarHover.useEffect.handlePointerLeave\": ()=>{\n hideTimer = window.setTimeout({\n \"ScrollAreaScrollbarHover.useEffect.handlePointerLeave\": ()=>setVisible(false)\n }[\"ScrollAreaScrollbarHover.useEffect.handlePointerLeave\"], context.scrollHideDelay);\n }\n }[\"ScrollAreaScrollbarHover.useEffect.handlePointerLeave\"];\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n return ({\n \"ScrollAreaScrollbarHover.useEffect\": ()=>{\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n }\n })[\"ScrollAreaScrollbarHover.useEffect\"];\n }\n }\n }[\"ScrollAreaScrollbarHover.useEffect\"], [\n context.scrollArea,\n context.scrollHideDelay\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_6__.Presence, {\n present: forceMount || visible,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarAuto, {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n })\n });\n}, \"gfF2MbracCyGmZmEc/gD3TfGPf8=\", false, function() {\n return [\n useScrollAreaContext\n ];\n}));\n_c6 = ScrollAreaScrollbarHover;\nvar ScrollAreaScrollbarScroll = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s5((props, forwardedRef)=>{\n _s5();\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === \"horizontal\";\n const debounceScrollEnd = useDebounceCallback({\n \"ScrollAreaScrollbarScroll.useDebounceCallback[debounceScrollEnd]\": ()=>send(\"SCROLL_END\")\n }[\"ScrollAreaScrollbarScroll.useDebounceCallback[debounceScrollEnd]\"], 100);\n const [state, send] = useStateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\"\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\"\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\"\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\"\n }\n });\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaScrollbarScroll.useEffect\": ()=>{\n if (state === \"idle\") {\n const hideTimer = window.setTimeout({\n \"ScrollAreaScrollbarScroll.useEffect.hideTimer\": ()=>send(\"HIDE\")\n }[\"ScrollAreaScrollbarScroll.useEffect.hideTimer\"], context.scrollHideDelay);\n return ({\n \"ScrollAreaScrollbarScroll.useEffect\": ()=>window.clearTimeout(hideTimer)\n })[\"ScrollAreaScrollbarScroll.useEffect\"];\n }\n }\n }[\"ScrollAreaScrollbarScroll.useEffect\"], [\n state,\n context.scrollHideDelay,\n send\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaScrollbarScroll.useEffect\": ()=>{\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = {\n \"ScrollAreaScrollbarScroll.useEffect.handleScroll\": ()=>{\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n }\n }[\"ScrollAreaScrollbarScroll.useEffect.handleScroll\"];\n viewport.addEventListener(\"scroll\", handleScroll);\n return ({\n \"ScrollAreaScrollbarScroll.useEffect\": ()=>viewport.removeEventListener(\"scroll\", handleScroll)\n })[\"ScrollAreaScrollbarScroll.useEffect\"];\n }\n }\n }[\"ScrollAreaScrollbarScroll.useEffect\"], [\n context.viewport,\n isHorizontal,\n send,\n debounceScrollEnd\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_6__.Presence, {\n present: forceMount || state !== \"hidden\",\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarVisible, {\n \"data-state\": state === \"hidden\" ? \"hidden\" : \"visible\",\n ...scrollbarProps,\n ref: forwardedRef,\n onPointerEnter: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerEnter, ()=>send(\"POINTER_ENTER\")),\n onPointerLeave: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerLeave, ()=>send(\"POINTER_LEAVE\"))\n })\n });\n}, \"yVEA36XrGNc1A200CnLBdTLOtN4=\", false, function() {\n return [\n useScrollAreaContext,\n useDebounceCallback,\n useStateMachine\n ];\n}));\n_c7 = ScrollAreaScrollbarScroll;\nvar ScrollAreaScrollbarAuto = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s6((props, forwardedRef)=>{\n _s6();\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebounceCallback({\n \"ScrollAreaScrollbarAuto.useDebounceCallback[handleResize]\": ()=>{\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }\n }[\"ScrollAreaScrollbarAuto.useDebounceCallback[handleResize]\"], 10);\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_6__.Presence, {\n present: forceMount || visible,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarVisible, {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n })\n });\n}, \"+UkQTpAB2k/p/r2Qgr6Cj1xxgfE=\", false, function() {\n return [\n useScrollAreaContext,\n useDebounceCallback,\n useResizeObserver,\n useResizeObserver\n ];\n}));\n_c8 = ScrollAreaScrollbarAuto;\nvar ScrollAreaScrollbarVisible = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s7((props, forwardedRef)=>{\n _s7();\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const pointerOffsetRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n const [sizes, setSizes] = react__WEBPACK_IMPORTED_MODULE_0__.useState({\n content: 0,\n viewport: 0,\n scrollbar: {\n size: 0,\n paddingStart: 0,\n paddingEnd: 0\n }\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n const commonProps = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb)=>thumbRef.current = thumb,\n onThumbPointerUp: ()=>pointerOffsetRef.current = 0,\n onThumbPointerDown: (pointerPos)=>pointerOffsetRef.current = pointerPos\n };\n function getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n if (orientation === \"horizontal\") {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarX, {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: ()=>{\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = \"translate3d(\".concat(offset, \"px, 0, 0)\");\n }\n },\n onWheelScroll: (scrollPos)=>{\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n },\n onDragScroll: (pointerPos)=>{\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }\n });\n }\n if (orientation === \"vertical\") {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarY, {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: ()=>{\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = \"translate3d(0, \".concat(offset, \"px, 0)\");\n }\n },\n onWheelScroll: (scrollPos)=>{\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n },\n onDragScroll: (pointerPos)=>{\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n });\n }\n return null;\n}, \"Wd7YQJPkFaDORidn1lbBkAJJGis=\", false, function() {\n return [\n useScrollAreaContext\n ];\n}));\n_c9 = ScrollAreaScrollbarVisible;\nvar ScrollAreaScrollbarX = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s8((props, forwardedRef)=>{\n _s8();\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composeRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref, context.onScrollbarXChange);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaScrollbarX.useEffect\": ()=>{\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }\n }[\"ScrollAreaScrollbarX.useEffect\"], [\n ref\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarImpl, {\n \"data-orientation\": \"horizontal\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n bottom: 0,\n left: context.dir === \"rtl\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n right: context.dir === \"ltr\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n [\"--radix-scroll-area-thumb-width\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos)=>props.onThumbPointerDown(pointerPos.x),\n onDragScroll: (pointerPos)=>props.onDragScroll(pointerPos.x),\n onWheelScroll: (event, maxScrollPos)=>{\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: ()=>{\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight)\n }\n });\n }\n }\n });\n}, \"niSywvla1yTEJaUKF3mXxe2aACc=\", false, function() {\n return [\n useScrollAreaContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n}));\n_c10 = ScrollAreaScrollbarX;\nvar ScrollAreaScrollbarY = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s9((props, forwardedRef)=>{\n _s9();\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composeRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref, context.onScrollbarYChange);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaScrollbarY.useEffect\": ()=>{\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }\n }[\"ScrollAreaScrollbarY.useEffect\"], [\n ref\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarImpl, {\n \"data-orientation\": \"vertical\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n top: 0,\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: \"var(--radix-scroll-area-corner-height)\",\n [\"--radix-scroll-area-thumb-height\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos)=>props.onThumbPointerDown(pointerPos.y),\n onDragScroll: (pointerPos)=>props.onDragScroll(pointerPos.y),\n onWheelScroll: (event, maxScrollPos)=>{\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: ()=>{\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom)\n }\n });\n }\n }\n });\n}, \"niSywvla1yTEJaUKF3mXxe2aACc=\", false, function() {\n return [\n useScrollAreaContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs\n ];\n}));\n_c11 = ScrollAreaScrollbarY;\nvar [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);\nvar ScrollAreaScrollbarImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s10((props, forwardedRef)=>{\n _s10();\n const { __scopeScrollArea, sizes, hasThumb, onThumbChange, onThumbPointerUp, onThumbPointerDown, onThumbPositionChange, onDragScroll, onWheelScroll, onResize, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const composeRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, {\n \"ScrollAreaScrollbarImpl.useComposedRefs[composeRefs]\": (node)=>setScrollbar(node)\n }[\"ScrollAreaScrollbarImpl.useComposedRefs[composeRefs]\"]);\n const rectRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const prevWebkitUserSelectRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"\");\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onWheelScroll);\n const handleThumbPositionChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n function handleDragScroll(event) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({\n x,\n y\n });\n }\n }\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaScrollbarImpl.useEffect\": ()=>{\n const handleWheel = {\n \"ScrollAreaScrollbarImpl.useEffect.handleWheel\": (event)=>{\n const element = event.target;\n const isScrollbarWheel = scrollbar === null || scrollbar === void 0 ? void 0 : scrollbar.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n }\n }[\"ScrollAreaScrollbarImpl.useEffect.handleWheel\"];\n document.addEventListener(\"wheel\", handleWheel, {\n passive: false\n });\n return ({\n \"ScrollAreaScrollbarImpl.useEffect\": ()=>document.removeEventListener(\"wheel\", handleWheel, {\n passive: false\n })\n })[\"ScrollAreaScrollbarImpl.useEffect\"];\n }\n }[\"ScrollAreaScrollbarImpl.useEffect\"], [\n viewport,\n scrollbar,\n maxScrollPos,\n handleWheelScroll\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(handleThumbPositionChange, [\n sizes,\n handleThumbPositionChange\n ]);\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollbarProvider, {\n scope: __scopeScrollArea,\n scrollbar,\n hasThumb,\n onThumbChange: (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onThumbChange),\n onThumbPointerUp: (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onThumbPointerDown),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.div, {\n ...scrollbarProps,\n ref: composeRefs,\n style: {\n position: \"absolute\",\n ...scrollbarProps.style\n },\n onPointerDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerDown, (event)=>{\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar.getBoundingClientRect();\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (context.viewport) context.viewport.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n }),\n onPointerMove: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerMove, handleDragScroll),\n onPointerUp: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerUp, (event)=>{\n const element = event.target;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = \"\";\n rectRef.current = null;\n })\n })\n });\n}, \"M/srFQWNmuOPpxuB8Z41v/5HpJg=\", false, function() {\n return [\n useScrollAreaContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef,\n useDebounceCallback,\n useResizeObserver,\n useResizeObserver,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef,\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef\n ];\n}));\n_c12 = ScrollAreaScrollbarImpl;\nvar THUMB_NAME = \"ScrollAreaThumb\";\nvar ScrollAreaThumb = /*#__PURE__*/ _s11(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c13 = _s11((props, forwardedRef)=>{\n _s11();\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_6__.Presence, {\n present: forceMount || scrollbarContext.hasThumb,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaThumbImpl, {\n ref: forwardedRef,\n ...thumbProps\n })\n });\n}, \"s6DmoIaTLdkuRlSQD2uCGrj+q/c=\", false, function() {\n return [\n useScrollbarContext\n ];\n})), \"s6DmoIaTLdkuRlSQD2uCGrj+q/c=\", false, function() {\n return [\n useScrollbarContext\n ];\n});\n_c14 = ScrollAreaThumb;\nvar ScrollAreaThumbImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s12((props, forwardedRef)=>{\n _s12();\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, {\n \"ScrollAreaThumbImpl.useComposedRefs[composedRef]\": (node)=>scrollbarContext.onThumbChange(node)\n }[\"ScrollAreaThumbImpl.useComposedRefs[composedRef]\"]);\n const removeUnlinkedScrollListenerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(void 0);\n const debounceScrollEnd = useDebounceCallback({\n \"ScrollAreaThumbImpl.useDebounceCallback[debounceScrollEnd]\": ()=>{\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = void 0;\n }\n }\n }[\"ScrollAreaThumbImpl.useDebounceCallback[debounceScrollEnd]\"], 100);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaThumbImpl.useEffect\": ()=>{\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n const handleScroll = {\n \"ScrollAreaThumbImpl.useEffect.handleScroll\": ()=>{\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n }\n }[\"ScrollAreaThumbImpl.useEffect.handleScroll\"];\n onThumbPositionChange();\n viewport.addEventListener(\"scroll\", handleScroll);\n return ({\n \"ScrollAreaThumbImpl.useEffect\": ()=>viewport.removeEventListener(\"scroll\", handleScroll)\n })[\"ScrollAreaThumbImpl.useEffect\"];\n }\n }\n }[\"ScrollAreaThumbImpl.useEffect\"], [\n scrollAreaContext.viewport,\n debounceScrollEnd,\n onThumbPositionChange\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.div, {\n \"data-state\": scrollbarContext.hasThumb ? \"visible\" : \"hidden\",\n ...thumbProps,\n ref: composedRef,\n style: {\n width: \"var(--radix-scroll-area-thumb-width)\",\n height: \"var(--radix-scroll-area-thumb-height)\",\n ...style\n },\n onPointerDownCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerDownCapture, (event)=>{\n const thumb = event.target;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({\n x,\n y\n });\n }),\n onPointerUp: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n });\n}, \"Q7ygzvKop+l5vwjxQaIJ0OJSHPw=\", false, function() {\n return [\n useScrollAreaContext,\n useScrollbarContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs,\n useDebounceCallback\n ];\n}));\n_c15 = ScrollAreaThumbImpl;\nScrollAreaThumb.displayName = THUMB_NAME;\nvar CORNER_NAME = \"ScrollAreaCorner\";\nvar ScrollAreaCorner = /*#__PURE__*/ _s13(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c16 = _s13((props, forwardedRef)=>{\n _s13();\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaCornerImpl, {\n ...props,\n ref: forwardedRef\n }) : null;\n}, \"6oF7LR91xweil/RUwsJOHeHGHpM=\", false, function() {\n return [\n useScrollAreaContext\n ];\n})), \"6oF7LR91xweil/RUwsJOHeHGHpM=\", false, function() {\n return [\n useScrollAreaContext\n ];\n});\n_c17 = ScrollAreaCorner;\nScrollAreaCorner.displayName = CORNER_NAME;\nvar ScrollAreaCornerImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s14((props, forwardedRef)=>{\n _s14();\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0);\n const [height, setHeight] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0);\n const hasSize = Boolean(width && height);\n useResizeObserver(context.scrollbarX, {\n \"ScrollAreaCornerImpl.useResizeObserver\": ()=>{\n var _context_scrollbarX;\n const height2 = ((_context_scrollbarX = context.scrollbarX) === null || _context_scrollbarX === void 0 ? void 0 : _context_scrollbarX.offsetHeight) || 0;\n context.onCornerHeightChange(height2);\n setHeight(height2);\n }\n }[\"ScrollAreaCornerImpl.useResizeObserver\"]);\n useResizeObserver(context.scrollbarY, {\n \"ScrollAreaCornerImpl.useResizeObserver\": ()=>{\n var _context_scrollbarY;\n const width2 = ((_context_scrollbarY = context.scrollbarY) === null || _context_scrollbarY === void 0 ? void 0 : _context_scrollbarY.offsetWidth) || 0;\n context.onCornerWidthChange(width2);\n setWidth(width2);\n }\n }[\"ScrollAreaCornerImpl.useResizeObserver\"]);\n return hasSize ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.div, {\n ...cornerProps,\n ref: forwardedRef,\n style: {\n width,\n height,\n position: \"absolute\",\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: 0,\n ...props.style\n }\n }) : null;\n}, \"VPucvwShgdNHWGLOUHD+VLuHeLc=\", false, function() {\n return [\n useScrollAreaContext,\n useResizeObserver,\n useResizeObserver\n ];\n}));\n_c18 = ScrollAreaCornerImpl;\nfunction toInt(value) {\n return value ? parseInt(value, 10) : 0;\n}\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\nfunction getThumbSize(sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\nfunction getScrollPositionFromPointer(pointerPos, pointerOffset, sizes) {\n let dir = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : \"ltr\";\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === \"ltr\" ? [\n 0,\n maxScrollPos\n ] : [\n maxScrollPos * -1,\n 0\n ];\n const interpolate = linearScale([\n minPointerPos,\n maxPointerPos\n ], scrollRange);\n return interpolate(pointerPos);\n}\nfunction getThumbOffsetFromScroll(scrollPos, sizes) {\n let dir = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : \"ltr\";\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === \"ltr\" ? [\n 0,\n maxScrollPos\n ] : [\n maxScrollPos * -1,\n 0\n ];\n const scrollWithoutMomentum = (0,_radix_ui_number__WEBPACK_IMPORTED_MODULE_9__.clamp)(scrollPos, scrollClampRange);\n const interpolate = linearScale([\n 0,\n maxScrollPos\n ], [\n 0,\n maxThumbPos\n ]);\n return interpolate(scrollWithoutMomentum);\n}\nfunction linearScale(input, output) {\n return (value)=>{\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\nvar addUnlinkedScrollListener = function(node) {\n let handler = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : ()=>{};\n let prevPosition = {\n left: node.scrollLeft,\n top: node.scrollTop\n };\n let rAF = 0;\n (function loop() {\n const position = {\n left: node.scrollLeft,\n top: node.scrollTop\n };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return ()=>window.cancelAnimationFrame(rAF);\n};\nfunction useDebounceCallback(callback, delay) {\n _s15();\n const handleCallback = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(callback);\n const debounceTimerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"useDebounceCallback.useEffect\": ()=>({\n \"useDebounceCallback.useEffect\": ()=>window.clearTimeout(debounceTimerRef.current)\n })[\"useDebounceCallback.useEffect\"]\n }[\"useDebounceCallback.useEffect\"], []);\n return react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"useDebounceCallback.useCallback\": ()=>{\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }\n }[\"useDebounceCallback.useCallback\"], [\n handleCallback,\n delay\n ]);\n}\n_s15(useDebounceCallback, \"y9yjvzcSqsK0X+bsDW4f7EiNh+8=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef\n ];\n});\nfunction useResizeObserver(element, onResize) {\n _s16();\n const handleResize = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onResize);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_10__.useLayoutEffect)({\n \"useResizeObserver.useLayoutEffect\": ()=>{\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver({\n \"useResizeObserver.useLayoutEffect\": ()=>{\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n }\n }[\"useResizeObserver.useLayoutEffect\"]);\n resizeObserver.observe(element);\n return ({\n \"useResizeObserver.useLayoutEffect\": ()=>{\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n }\n })[\"useResizeObserver.useLayoutEffect\"];\n }\n }\n }[\"useResizeObserver.useLayoutEffect\"], [\n element,\n handleResize\n ]);\n}\n_s16(useResizeObserver, \"/Ap8uEYN0y92xlnU4jqBFTKYw/I=\", false, function() {\n return [\n _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef\n ];\n});\nvar Root = ScrollArea;\nvar Viewport = ScrollAreaViewport;\nvar Scrollbar = ScrollAreaScrollbar;\nvar Thumb = ScrollAreaThumb;\nvar Corner = ScrollAreaCorner;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11, _c12, _c13, _c14, _c15, _c16, _c17, _c18;\n$RefreshReg$(_c, \"ScrollArea$React2.forwardRef\");\n$RefreshReg$(_c1, \"ScrollArea\");\n$RefreshReg$(_c2, \"ScrollAreaViewport$React2.forwardRef\");\n$RefreshReg$(_c3, \"ScrollAreaViewport\");\n$RefreshReg$(_c4, \"ScrollAreaScrollbar$React2.forwardRef\");\n$RefreshReg$(_c5, \"ScrollAreaScrollbar\");\n$RefreshReg$(_c6, \"ScrollAreaScrollbarHover\");\n$RefreshReg$(_c7, \"ScrollAreaScrollbarScroll\");\n$RefreshReg$(_c8, \"ScrollAreaScrollbarAuto\");\n$RefreshReg$(_c9, \"ScrollAreaScrollbarVisible\");\n$RefreshReg$(_c10, \"ScrollAreaScrollbarX\");\n$RefreshReg$(_c11, \"ScrollAreaScrollbarY\");\n$RefreshReg$(_c12, \"ScrollAreaScrollbarImpl\");\n$RefreshReg$(_c13, \"ScrollAreaThumb$React2.forwardRef\");\n$RefreshReg$(_c14, \"ScrollAreaThumb\");\n$RefreshReg$(_c15, \"ScrollAreaThumbImpl\");\n$RefreshReg$(_c16, \"ScrollAreaCorner$React2.forwardRef\");\n$RefreshReg$(_c17, \"ScrollAreaCorner\");\n$RefreshReg$(_c18, \"ScrollAreaCornerImpl\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2Nyb2xsLWFyZWEvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXVCO0FBQ0c7QUFDRDtBQUNVO0FBQ0g7QUFDRDtBQUNGO0FBQ0c7QUFDVjtBQUNlOztBQ1hkO0FBV2hCLHlCQUNMLGNBQ0EsU0FDQTs7SUFDQSxPQUFhO3NDQUFXLENBQUMsT0FBd0I7WUFDL0MsTUFBTSxZQUFhLFFBQVEsS0FBSyxFQUFVLEtBQUs7WUFDL0Msb0RBQU8sWUFBYTtRQUN0QjtxQ0FBRyxZQUFZO0FBQ2pCO0dBUmdCOztBRG9HUjtBQWhGUixJQUFNLG1CQUFtQjtBQUd6QixJQUFNLENBQUMseUJBQXlCLHFCQUFxQixJQUFJLDJFQUFrQixDQUFDLGdCQUFnQjtBQXVCNUYsSUFBTSxDQUFDLG9CQUFvQixvQkFBb0IsSUFDN0Msd0JBQWdELGdCQUFnQjtBQVVsRSxJQUFNLCtCQUFtQix1REFDdkIsQ0FBQyxPQUFxQzs7SUFDcEMsTUFBTSxFQUNKLG1CQUNBLE9BQU8sU0FDUCxLQUNBLGtCQUFrQixLQUNsQixHQUFHLGlCQUNMLEdBQUk7SUFDSixNQUFNLENBQUMsWUFBWSxhQUFhLElBQVUsNENBQW1DLElBQUk7SUFDakYsTUFBTSxDQUFDLFVBQVUsV0FBVyxJQUFVLDRDQUEyQyxJQUFJO0lBQ3JGLE1BQU0sQ0FBQyxTQUFTLFVBQVUsSUFBVSw0Q0FBZ0MsSUFBSTtJQUN4RSxNQUFNLENBQUMsWUFBWSxhQUFhLElBQVUsNENBQTRDLElBQUk7SUFDMUYsTUFBTSxDQUFDLFlBQVksYUFBYSxJQUFVLDRDQUE0QyxJQUFJO0lBQzFGLE1BQU0sQ0FBQyxhQUFhLGNBQWMsSUFBVSw0Q0FBUyxDQUFDO0lBQ3RELE1BQU0sQ0FBQyxjQUFjLGVBQWUsSUFBVSw0Q0FBUyxDQUFDO0lBQ3hELE1BQU0sQ0FBQyxtQkFBbUIsb0JBQW9CLElBQVUsNENBQVMs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QUFXO0FBQ2pCLElBQU0sWUFBWTtBQUNsQixJQUFNLFFBQVE7QUFDZCxJQUFNLFNBQVMiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9zcmMvc2Nyb2xsLWFyZWEudHN4IiwiL2hvbWUvYWxtYS9uZXh0Z2VuL3NyYy91c2Utc3RhdGUtbWFjaGluZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSB0eXBlcz1cInJlc2l6ZS1vYnNlcnZlci1icm93c2VyXCIgLz5cblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5pbXBvcnQgeyBQcmVzZW5jZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmVzZW5jZSc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1jYWxsYmFjay1yZWYnO1xuaW1wb3J0IHsgdXNlRGlyZWN0aW9uIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWRpcmVjdGlvbic7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWxheW91dC1lZmZlY3QnO1xuaW1wb3J0IHsgY2xhbXAgfSBmcm9tICdAcmFkaXgtdWkvbnVtYmVyJztcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSAnQHJhZGl4LXVpL3ByaW1pdGl2ZSc7XG5pbXBvcnQgeyB1c2VTdGF0ZU1hY2hpbmUgfSBmcm9tICcuL3VzZS1zdGF0ZS1tYWNoaW5lJztcblxuaW1wb3J0IHR5cGUgeyBTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcblxudHlwZSBEaXJlY3Rpb24gPSAnbHRyJyB8ICdydGwnO1xudHlwZSBTaXplcyA9IHtcbiAgY29udGVudDogbnVtYmVyO1xuICB2aWV3cG9ydDogbnVtYmVyO1xuICBzY3JvbGxiYXI6IHtcbiAgICBzaXplOiBudW1iZXI7XG4gICAgcGFkZGluZ1N0YXJ0OiBudW1iZXI7XG4gICAgcGFkZGluZ0VuZDogbnVtYmVyO1xuICB9O1xufTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2Nyb2xsQXJlYVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBTQ1JPTExfQVJFQV9OQU1FID0gJ1Njcm9sbEFyZWEnO1xuXG50eXBlIFNjb3BlZFByb3BzPFA+ID0gUCAmIHsgX19zY29wZVNjcm9sbEFyZWE/OiBTY29wZSB9O1xuY29uc3QgW2NyZWF0ZVNjcm9sbEFyZWFDb250ZXh0LCBjcmVhdGVTY3JvbGxBcmVhU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFNDUk9MTF9BUkVBX05BTUUpO1xuXG50eXBlIFNjcm9sbEFyZWFDb250ZXh0VmFsdWUgPSB7XG4gIHR5cGU6ICdhdXRvJyB8ICdhbHdheXMnIHwgJ3Njcm9sbCcgfCAnaG92ZXInO1xuICBkaXI6IERpcmVjdGlvbjtcbiAgc2Nyb2xsSGlkZURlbGF5OiBudW1iZXI7XG4gIHNjcm9sbEFyZWE6IFNjcm9sbEFyZWFFbGVtZW50IHwgbnVsbDtcbiAgdmlld3BvcnQ6IFNjcm9sbEFyZWFWaWV3cG9ydEVsZW1lbnQgfCBudWxsO1xuICBvblZpZXdwb3J0Q2hhbmdlKHZpZXdwb3J0OiBTY3JvbGxBcmVhVmlld3BvcnRFbGVtZW50IHwgbnVsbCk6IHZvaWQ7XG4gIGNvbnRlbnQ6IEhUTUxEaXZFbGVtZW50IHwgbnVsbDtcbiAgb25Db250ZW50Q2hhbmdlKGNvbnRlbnQ6IEhUTUxEaXZFbGVtZW50KTogdm9pZDtcbiAgc2Nyb2xsYmFyWDogU2Nyb2xsQXJlYVNjcm9sbGJhckVsZW1lbnQgfCBudWxsO1xuICBvblNjcm9sbGJhclhDaGFuZ2Uoc2Nyb2xsYmFyOiBTY3JvbGxBcmVhU2Nyb2xsYmFyRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuICBzY3JvbGxiYXJYRW5hYmxlZDogYm9vbGVhbjtcbiAgb25TY3JvbGxiYXJYRW5hYmxlZENoYW5nZShyZW5kZXJlZDogYm9vbGVhbik6IHZvaWQ7XG4gIHNjcm9sbGJhclk6IFNjcm9sbEFyZWFTY3JvbGxiYXJFbGVtZW50IHwgbnVsbDtcbiAgb25TY3JvbGxiYXJZQ2hhbmdlKHNjcm9sbGJhcjogU2Nyb2xsQXJlYVNjcm9sbGJhckVsZW1lbnQgfCBudWxsKTogdm9pZDtcbiAgc2Nyb2xsYmFyWUVuYWJsZWQ6IGJvb2xlYW47XG4gIG9uU2Nyb2xsYmFyWUVuYWJsZWRDaGFuZ2UocmVuZGVyZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICBvbkNvcm5lcldpZHRoQ2hhbmdlKHdpZHRoOiBudW1iZXIpOiB2b2lkO1xuICBvbkNvcm5lckhlaWdodENoYW5nZShoZWlnaHQ6IG51bWJlcik6IHZvaWQ7XG59O1xuXG5jb25zdCBbU2Nyb2xsQXJlYVByb3ZpZGVyLCB1c2VTY3JvbGxBcmVhQ29udGV4dF0gPVxuICBjcmVhdGVTY3JvbGxBcmVhQ29udGV4dDxTY3JvbGxBcmVhQ29udGV4dFZhbHVlPihTQ1JPTExfQVJFQV9OQU1FKTtcblxudHlwZSBTY3JvbGxBcmVhRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBQcmltaXRpdmVEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgU2Nyb2xsQXJlYVByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICB0eXBlPzogU2Nyb2xsQXJlYUNvbnRleHRWYWx1ZVsndHlwZSddO1xuICBkaXI/OiBTY3JvbGxBcmVhQ29udGV4dFZhbHVlWydkaXInXTtcbiAgc2Nyb2xsSGlkZURlbGF5PzogbnVtYmVyO1xufVxuXG5jb25zdCBTY3JvbGxBcmVhID0gUmVhY3QuZm9yd2FyZFJlZjxTY3JvbGxBcmVhRWxlbWVudCwgU2Nyb2xsQXJlYVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxTY3JvbGxBcmVhUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlU2Nyb2xsQXJlYSxcbiAgICAgIHR5cGUgPSAnaG92ZXInLFxuICAgICAgZGlyLFxuICAgICAgc2Nyb2xsSGlkZURlbGF5ID0gNjAwLFxuICAgICAgLi4uc2Nyb2xsQXJlYVByb3BzXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtzY3JvbGxBcmVhLCBzZXRTY3JvbGxBcmVhXSA9IFJlYWN0LnVzZVN0YXRlPFNjcm9sbEFyZWFFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgW3ZpZXdwb3J0LCBzZXRWaWV3cG9ydF0gPSBSZWFjdC51c2VTdGF0ZTxTY3JvbGxBcmVhVmlld3BvcnRFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgW2NvbnRlbnQsIHNldENvbnRlbnRdID0gUmVhY3QudXNlU3RhdGU8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBbc2Nyb2xsYmFyWCwgc2V0U2Nyb2xsYmFyWF0gPSBSZWFjdC51c2VTdGF0ZTxTY3JvbGxBcmVhU2Nyb2xsYmFyRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFtzY3JvbGxiYXJZLCBzZXRTY3JvbGxiYXJZXSA9IFJlYWN0LnVzZVN0YXRlPFNjcm9sbEFyZWFTY3JvbGxiYXJFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgW2Nvcm5lcldpZHRoLCBzZXRDb3JuZXJXaWR0aF0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbY29ybmVySGVpZ2h0LCBzZXRDb3JuZXJIZWlnaHRdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW3Njcm9sbGJhclhFbmFibGVkLCBzZXRTY3JvbGxiYXJYRW5hYmxlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3Njcm9sbGJhcllFbmFibGVkLCBzZXRTY3JvbGxiYXJZRW5hYmxlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldFNjcm9sbEFyZWEobm9kZSkpO1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHVzZURpcmVjdGlvbihkaXIpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTY3JvbGxBcmVhUHJvdmlkZXJcbiAgICAgICAgc2NvcGU9e19fc2NvcGVTY3JvbGxBcmVhfVxuICAgICAgICB0eXBlPXt0eXBlfVxuICAgICAgICBkaXI9e2RpcmVjdGlvbn1cbiAgICAgICAgc2Nyb2xsSGlkZURlbGF5PXtzY3JvbGxIaWRlRGVsYXl9XG4gICAgICAgIHNjcm9sbEFyZWE9e3Njcm9sbEFyZWF9XG4gICAgICAgIHZpZXdwb3J0PXt2aWV3cG9ydH1cbiAgICAgICAgb25WaWV3cG9ydENoYW5nZT17c2V0Vmlld3BvcnR9XG4gICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XG4gICAgICAgIG9uQ29udGVudENoYW5nZT17c2V0Q29udGVudH1cbiAgICAgICAgc2Nyb2xsYmFyWD17c2Nyb2xsYmFyWH1cbiAgICAgICAgb25TY3JvbGxiYXJYQ2hhbmdlPXtzZXRTY3JvbGxiYXJYfVxuICAgICAgICBzY3JvbGxiYXJYRW5hYmxlZD17c2Nyb2xsYmFyWEVuYWJsZWR9XG4gICAgICAgIG9uU2Nyb2xsYmFyWEVuYWJsZWRDaGFuZ2U9e3NldFNjcm9sbGJhclhFbmFibGVkfVxuICAgICAgICBzY3JvbGxiYXJZPXtzY3JvbGxiYXJZfVxuICAgICAgICBvblNjcm9sbGJhcllDaGFuZ2U9e3NldFNjcm9sbGJhcll9XG4gICAgICAgIHNjcm9sbGJhcllFbmFibGVkPXtzY3JvbGxiYXJZRW5hYmxlZH1cbiAgICAgICAgb25TY3JvbGxiYXJZRW5hYmxlZENoYW5nZT17c2V0U2Nyb2xsYmFyWUVuYWJsZWR9XG4gICAgICAgIG9uQ29ybmVyV2lkdGhDaGFuZ2U9e3NldENvcm5lcldpZHRofVxuICAgICAgICBvbkNvcm5lckhlaWdodENoYW5nZT17c2V0Q29ybmVySGVpZ2h0fVxuICAgICAgPlxuICAgICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICAgIGRpcj17ZGlyZWN0aW9ufVxuICAgICAgICAgIHsuLi5zY3JvbGxBcmVhUHJvcHN9XG4gICAgICAgICAgcmVmPXtjb21wb3NlZFJlZnN9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICAgICAgLy8gUGFzcyBjb3JuZXIgc2l6ZXMgYXMgQ1NTIHZhcnMgdG8gcmVkdWNlIHJlLXJlbmRlcnMgb2YgY29udGV4dCBjb25zdW1lcnNcbiAgICAgICAgICAgIFsnLS1yYWRpeC1zY3JvbGwtYXJlYS1jb3JuZXItd2lkdGgnIGFzIGFueV06IGNvcm5lcldpZHRoICsgJ3B4JyxcbiAgICAgICAgICAgIFsnLS1yYWRpeC1zY3JvbGwtYXJlYS1jb3JuZXItaGVpZ2h0JyBhcyBhbnldOiBjb3JuZXJIZWlnaHQgKyAncHgnLFxuICAgICAgICAgICAgLi4ucHJvcHMuc3R5bGUsXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvU2Nyb2xsQXJlYVByb3ZpZGVyPlxuICAgICk7XG4gIH1cbik7XG5cblNjcm9sbEFyZWEuZGlzcGxheU5hbWUgPSBTQ1JPTExfQVJFQV9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTY3JvbGxBcmVhVmlld3BvcnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgVklFV1BPUlRfTkFNRSA9ICdTY3JvbGxBcmVhVmlld3BvcnQnO1xuXG50eXBlIFNjcm9sbEFyZWFWaWV3cG9ydEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBTY3JvbGxBcmVhVmlld3BvcnRQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHtcbiAgbm9uY2U/OiBzdHJpbmc7XG59XG5cbmNvbnN0IFNjcm9sbEFyZWFWaWV3cG9ydCA9IFJlYWN0LmZvcndhcmRSZWY8U2Nyb2xsQXJlYVZpZXdwb3J0RWxlbWVudCwgU2Nyb2xsQXJlYVZpZXdwb3J0UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNjcm9sbEFyZWFWaWV3cG9ydFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlU2Nyb2xsQXJlYSwgY2hpbGRyZW4sIG5vbmNlLCAuLi52aWV3cG9ydFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlU2Nyb2xsQXJlYUNvbnRleHQoVklFV1BPUlRfTkFNRSwgX19zY29wZVNjcm9sbEFyZWEpO1xuICAgIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZjxTY3JvbGxBcmVhVmlld3BvcnRFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYsIGNvbnRleHQub25WaWV3cG9ydENoYW5nZSk7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHsvKiBIaWRlIHNjcm9sbGJhcnMgY3Jvc3MtYnJvd3NlciBhbmQgZW5hYmxlIG1vbWVudHVtIHNjcm9sbCBmb3IgdG91Y2ggZGV2aWNlcyAqL31cbiAgICAgICAgPHN0eWxlXG4gICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgIF9faHRtbDogYFtkYXRhLXJhZGl4LXNjcm9sbC1hcmVhLXZpZXdwb3J0XXtzY3JvbGxiYXItd2lkdGg6bm9uZTstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDt9W2RhdGEtcmFkaXgtc2Nyb2xsLWFyZWEtdmlld3BvcnRdOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9YCxcbiAgICAgICAgICB9fVxuICAgICAgICAgIG5vbmNlPXtub25jZX1cbiAgICAgICAgLz5cbiAgICAgICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgICAgICBkYXRhLXJhZGl4LXNjcm9sbC1hcmVhLXZpZXdwb3J0PVwiXCJcbiAgICAgICAgICB7Li4udmlld3BvcnRQcm9wc31cbiAgICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBXZSBkb24ndCBzdXBwb3J0IGB2aXNpYmxlYCBiZWNhdXNlIHRoZSBpbnRlbnRpb24gaXMgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgc2Nyb2xsYmFyXG4gICAgICAgICAgICAgKiBpZiB0aGlzIGNvbXBvbmVudCBpcyB1c2VkIGFuZCBgdmlzaWJsZWAgd2lsbCBiZWhhdmUgbGlrZSBgYXV0b2AgaW4gdGhhdCBjYXNlXG4gICAgICAgICAgICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1Mvb3ZlcmZsb3cjZGVzY3JpcHRpb25cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBXZSBkb24ndCBoYW5kbGUgYGF1dG9gIGJlY2F1c2UgdGhlIGludGVudGlvbiBpcyBmb3IgdGhlIG5hdGl2ZSBpbXBsZW1lbnRhdGlvblxuICAgICAgICAgICAgICogdG8gYmUgaGlkZGVuIGlmIHVzaW5nIHRoaXMgY29tcG9uZW50LiBXZSBqdXN0IHdhbnQgdG8gZW5zdXJlIHRoZSBub2RlIGlzIHNjcm9sbGFibGVcbiAgICAgICAgICAgICAqIHNvIGNvdWxkIGhhdmUgdXNlZCBlaXRoZXIgYHNjcm9sbGAgb3IgYGF1dG9gIGhlcmUuIFdlIHBpY2tlZCBgc2Nyb2xsYCB0byBwcmV2ZW50XG4gICAgICAgICAgICAgKiB0aGUgYnJvd3NlciBmcm9tIGhhdmluZyB0byB3b3JrIG91dCB3aGV0aGVyIHRvIHJlbmRlciBuYXRpdmUgc2Nyb2xsYmFycyBvciBub3QsXG4gICAgICAgICAgICAgKiB3ZSB0ZWxsIGl0IHRvIHdpdGggdGhlIGludGVudGlvbiBvZiBoaWRpbmcgdGhlbSBpbiBDU1MuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIG92ZXJmbG93WDogY29udGV4dC5zY3JvbGxiYXJYRW5hYmxlZCA/ICdzY3JvbGwnIDogJ2hpZGRlbicsXG4gICAgICAgICAgICBvdmVyZmxvd1k6IGNvbnRleHQuc2Nyb2xsYmFyWUVuYWJsZWQgPyAnc2Nyb2xsJyA6ICdoaWRkZW4nLFxuICAgICAgICAgICAgLi4ucHJvcHMuc3R5bGUsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHsvKipcbiAgICAgICAgICAgKiBgZGlzcGxheTogdGFibGVgIGVuc3VyZXMgb3VyIGNvbnRlbnQgZGl2IHdpbGwgbWF0Y2ggdGhlIHNpemUgb2YgaXRzIGNoaWxkcmVuIGluIGJvdGhcbiAgICAgICAgICAgKiBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBheGlzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaWYgc2Nyb2xsIHdpZHRoL2hlaWdodCBjaGFuZ2VkIGFuZFxuICAgICAgICAgICAqIHJlY2FsY3VsYXRlIHRodW1iIHNpemVzLiBUaGlzIGRvZXNuJ3QgYWNjb3VudCBmb3IgY2hpbGRyZW4gd2l0aCAqcGVyY2VudGFnZSpcbiAgICAgICAgICAgKiB3aWR0aHMgdGhhdCBjaGFuZ2UuIFdlJ2xsIHdhaXQgdG8gc2VlIHdoYXQgdXNlLWNhc2VzIGNvbnN1bWVycyBjb21lIHVwIHdpdGggdGhlcmVcbiAgICAgICAgICAgKiBiZWZvcmUgdHJ5aW5nIHRvIHJlc29sdmUgaXQuXG4gICAgICAgICAgICovfVxuICAgICAgICAgIDxkaXYgcmVmPXtjb250ZXh0Lm9uQ29udGVudENoYW5nZX0gc3R5bGU9e3sgbWluV2lkdGg6ICcxMDAlJywgZGlzcGxheTogJ3RhYmxlJyB9fT5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9QcmltaXRpdmUuZGl2PlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcblxuU2Nyb2xsQXJlYVZpZXdwb3J0LmRpc3BsYXlOYW1lID0gVklFV1BPUlRfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2Nyb2xsQXJlYVNjcm9sbGJhclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBTQ1JPTExCQVJfTkFNRSA9ICdTY3JvbGxBcmVhU2Nyb2xsYmFyJztcblxudHlwZSBTY3JvbGxBcmVhU2Nyb2xsYmFyRWxlbWVudCA9IFNjcm9sbEFyZWFTY3JvbGxiYXJWaXNpYmxlRWxlbWVudDtcbmludGVyZmFjZSBTY3JvbGxBcmVhU2Nyb2xsYmFyUHJvcHMgZXh0ZW5kcyBTY3JvbGxBcmVhU2Nyb2xsYmFyVmlzaWJsZVByb3BzIHtcbiAgZm9yY2VNb3VudD86IHRydWU7XG59XG5cbmNvbnN0IFNjcm9sbEFyZWFTY3JvbGxiYXIgPSBSZWFjdC5mb3J3YXJkUmVmPFNjcm9sbEFyZWFTY3JvbGxiYXJFbGVtZW50LCBTY3JvbGxBcmVhU2Nyb2xsYmFyUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNjcm9sbEFyZWFTY3JvbGxiYXJQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgZm9yY2VNb3VudCwgLi4uc2Nyb2xsYmFyUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VTY3JvbGxBcmVhQ29udGV4dChTQ1JPTExCQVJfTkFNRSwgcHJvcHMuX19zY29wZVNjcm9sbEFyZWEpO1xuICAgIGNvbnN0IHsgb25TY3JvbGxiYXJYRW5hYmxlZENoYW5nZSwgb25TY3JvbGxiYXJZRW5hYmxlZENoYW5nZSB9ID0gY29udGV4dDtcbiAgICBjb25zdCBpc0hvcml6b250YWwgPSBwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlzSG9yaXpvbnRhbCA/IG9uU2Nyb2xsYmFyWEVuYWJsZWRDaGFuZ2UodHJ1ZSkgOiBvblNjcm9sbGJhcllFbmFibGVkQ2hhbmdlKHRydWUpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaXNIb3Jpem9udGFsID8gb25TY3JvbGxiYXJYRW5hYmxlZENoYW5nZShmYWxzZSkgOiBvblNjcm9sbGJhcllFbmFibGVkQ2hhbmdlKGZhbHNlKTtcbiAgICAgIH07XG4gICAgfSwgW2lzSG9yaXpvbnRhbCwgb25TY3JvbGxiYXJYRW5hYmxlZENoYW5nZSwgb25TY3JvbGxiYXJZRW5hYmxlZENoYW5nZV0pO1xuXG4gICAgcmV0dXJuIGNvbnRleHQudHlwZSA9PT0gJ2hvdmVyJyA/IChcbiAgICAgIDxTY3JvbGxBcmVhU2Nyb2xsYmFySG92ZXIgey4uLnNjcm9sbGJhclByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gZm9yY2VNb3VudD17Zm9yY2VNb3VudH0gLz5cbiAgICApIDogY29udGV4dC50eXBlID09PSAnc2Nyb2xsJyA/IChcbiAgICAgIDxTY3JvbGxBcmVhU2Nyb2xsYmFyU2Nyb2xsIHsuLi5zY3JvbGxiYXJQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IGZvcmNlTW91bnQ9e2ZvcmNlTW91bnR9IC8+XG4gICAgKSA6IGNvbnRleHQudHlwZSA9PT0gJ2F1dG8nID8gKFxuICAgICAgPFNjcm9sbEFyZWFTY3JvbGxiYXJBdXRvIHsuLi5zY3JvbGxiYXJQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IGZvcmNlTW91bnQ9e2ZvcmNlTW91bnR9IC8+XG4gICAgKSA6IGNvbnRleHQudHlwZSA9PT0gJ2Fsd2F5cycgPyAoXG4gICAgICA8U2Nyb2xsQXJlYVNjcm9sbGJhclZpc2libGUgey4uLnNjcm9sbGJhclByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz5cbiAgICApIDogbnVsbDtcbiAgfVxuKTtcblxuU2Nyb2xsQXJlYVNjcm9sbGJhci5kaXNwbGF5TmFtZSA9IFNDUk9MTEJBUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnR5cGUgU2Nyb2xsQXJlYVNjcm9sbGJhckhvdmVyRWxlbWVudCA9IFNjcm9sbEFyZWFTY3JvbGxiYXJBdXRvRWxlbWVudDtcbmludGVyZmFjZSBTY3JvbGxBcmVhU2Nyb2xsYmFySG92ZXJQcm9wcyBleHRlbmRzIFNjcm9sbEFyZWFTY3JvbGxiYXJBdXRvUHJvcHMge1xuICBmb3JjZU1vdW50PzogdHJ1ZTtcbn1cblxuY29uc3QgU2Nyb2xsQXJlYVNjcm9sbGJhckhvdmVyID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgU2Nyb2xsQXJlYVNjcm9sbGJhckhvdmVyRWxlbWVudCxcbiAgU2Nyb2xsQXJlYVNjcm9sbGJhckhvdmVyUHJvcHNcbj4oKHByb3BzOiBTY29wZWRQcm9wczxTY3JvbGxBcmVhU2Nyb2xsYmFySG92ZXJQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IGZvcmNlTW91bnQsIC4uLnNjcm9sbGJhclByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgY29udGV4dCA9IHVzZVNjcm9sbEFyZWFDb250ZXh0KFNDUk9MTEJBUl9OQU1FLCBwcm9wcy5fX3Njb3BlU2Nyb2xsQXJlYSk7XG4gIGNvbnN0IFt2aXNpYmxlLCBzZXRWaXNpYmxlXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNjcm9sbEFyZWEgPSBjb250ZXh0LnNjcm9sbEFyZWE7XG4gICAgbGV0IGhpZGVUaW1lciA9IDA7XG4gICAgaWYgKHNjcm9sbEFyZWEpIHtcbiAgICAgIGNvbnN0IGhhbmRsZVBvaW50ZXJFbnRlciA9ICgpID0+IHtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dChoaWRlVGltZXIpO1xuICAgICAgICBzZXRWaXNpYmxlKHRydWUpO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGhhbmRsZVBvaW50ZXJMZWF2ZSA9ICgpID0+IHtcbiAgICAgICAgaGlkZVRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gc2V0VmlzaWJsZShmYWxzZSksIGNvbnRleHQuc2Nyb2xsSGlkZURlbGF5KTtcbiAgICAgIH07XG4gICAgICBzY3JvbGxBcmVhLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJlbnRlcicsIGhhbmRsZVBvaW50ZXJFbnRlcik7XG4gICAgICBzY3JvbGxBcmVhLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJsZWF2ZScsIGhhbmRsZVBvaW50ZXJMZWF2ZSk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KGhpZGVUaW1lcik7XG4gICAgICAgIHNjcm9sbEFyZWEucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmVudGVyJywgaGFuZGxlUG9pbnRlckVudGVyKTtcbiAgICAgICAgc2Nyb2xsQXJlYS5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVybGVhdmUnLCBoYW5kbGVQb2ludGVyTGVhdmUpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtjb250ZXh0LnNjcm9sbEFyZWEsIGNvbnRleHQuc2Nyb2xsSGlkZURlbGF5XSk7XG5cbiAgcmV0dXJuIChcbiAgICA8UHJlc2VuY2UgcHJlc2VudD17Zm9yY2VNb3VudCB8fCB2aXNpYmxlfT5cbiAgICAgIDxTY3JvbGxBcmVhU2Nyb2xsYmFyQXV0b1xuICAgICAgICBkYXRhLXN0YXRlPXt2aXNpYmxlID8gJ3Zpc2libGUnIDogJ2hpZGRlbid9XG4gICAgICAgIHsuLi5zY3JvbGxiYXJQcm9wc31cbiAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAvPlxuICAgIDwvUHJlc2VuY2U+XG4gICk7XG59KTtcblxudHlwZSBTY3JvbGxBcmVhU2Nyb2xsYmFyU2Nyb2xsRWxlbWVudCA9IFNjcm9sbEFyZWFTY3JvbGxiYXJWaXNpYmxlRWxlbWVudDtcbmludGVyZmFjZSBTY3JvbGxBcmVhU2Nyb2xsYmFyU2Nyb2xsUHJvcHMgZXh0ZW5kcyBTY3JvbGxBcmVhU2Nyb2xsYmFyVmlzaWJsZVByb3BzIHtcbiAgZm9yY2VNb3VudD86IHRydWU7XG59XG5cbmNvbnN0IFNjcm9sbEFyZWFTY3JvbGxiYXJTY3JvbGwgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBTY3JvbGxBcmVhU2Nyb2xsYmFyU2Nyb2xsRWxlbWVudCxcbiAgU2Nyb2xsQXJlYVNjcm9sbGJhclNjcm9sbFByb3BzXG4+KChwcm9wczogU2NvcGVkUHJvcHM8U2Nyb2xsQXJlYVNjcm9sbGJhclNjcm9sbFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgZm9yY2VNb3VudCwgLi4uc2Nyb2xsYmFyUHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBjb250ZXh0ID0gdXNlU2Nyb2xsQXJlYUNvbnRleHQoU0NST0xMQkFSX05BTUUsIHByb3BzLl9fc2NvcGVTY3JvbGxBcmVhKTtcbiAgY29uc3QgaXNIb3Jpem9udGFsID0gcHJvcHMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJztcbiAgY29uc3QgZGVib3VuY2VTY3JvbGxFbmQgPSB1c2VEZWJvdW5jZUNhbGxiYWNrKCgpID0+IHNlbmQoJ1NDUk9MTF9FTkQnKSwgMTAwKTtcbiAgY29uc3QgW3N0YXRlLCBzZW5kXSA9IHVzZVN0YXRlTWFjaGluZSgnaGlkZGVuJywge1xuICAgIGhpZGRlbjoge1xuICAgICAgU0NST0xMOiAnc2Nyb2xsaW5nJyxcbiAgICB9LFxuICAgIHNjcm9sbGluZzoge1xuICAgICAgU0NST0xMX0VORDogJ2lkbGUnLFxuICAgICAgUE9JTlRFUl9FTlRFUjogJ2ludGVyYWN0aW5nJyxcbiAgICB9LFxuICAgIGludGVyYWN0aW5nOiB7XG4gICAgICBTQ1JPTEw6ICdpbnRlcmFjdGluZycsXG4gICAgICBQT0lOVEVSX0xFQVZFOiAnaWRsZScsXG4gICAgfSxcbiAgICBpZGxlOiB7XG4gICAgICBISURFOiAnaGlkZGVuJyxcbiAgICAgIFNDUk9MTDogJ3Njcm9sbGluZycsXG4gICAgICBQT0lOVEVSX0VOVEVSOiAnaW50ZXJhY3RpbmcnLFxuICAgIH0sXG4gIH0pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHN0YXRlID09PSAnaWRsZScpIHtcbiAgICAgIGNvbnN0IGhpZGVUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHNlbmQoJ0hJREUnKSwgY29udGV4dC5zY3JvbGxIaWRlRGVsYXkpO1xuICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5jbGVhclRpbWVvdXQoaGlkZVRpbWVyKTtcbiAgICB9XG4gIH0sIFtzdGF0ZSwgY29udGV4dC5zY3JvbGxIaWRlRGVsYXksIHNlbmRdKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHZpZXdwb3J0ID0gY29udGV4dC52aWV3cG9ydDtcbiAgICBjb25zdCBzY3JvbGxEaXJlY3Rpb24gPSBpc0hvcml6b250YWwgPyAnc2Nyb2xsTGVmdCcgOiAnc2Nyb2xsVG9wJztcblxuICAgIGlmICh2aWV3cG9ydCkge1xuICAgICAgbGV0IHByZXZTY3JvbGxQb3MgPSB2aWV3cG9ydFtzY3JvbGxEaXJlY3Rpb25dO1xuICAgICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBzY3JvbGxQb3MgPSB2aWV3cG9ydFtzY3JvbGxEaXJlY3Rpb25dO1xuICAgICAgICBjb25zdCBoYXNTY3JvbGxJbkRpcmVjdGlvbkNoYW5nZWQgPSBwcmV2U2Nyb2xsUG9zICE9PSBzY3JvbGxQb3M7XG4gICAgICAgIGlmIChoYXNTY3JvbGxJbkRpcmVjdGlvbkNoYW5nZWQpIHtcbiAgICAgICAgICBzZW5kKCdTQ1JPTEwnKTtcbiAgICAgICAgICBkZWJvdW5jZVNjcm9sbEVuZCgpO1xuICAgICAgICB9XG4gICAgICAgIHByZXZTY3JvbGxQb3MgPSBzY3JvbGxQb3M7XG4gICAgICB9O1xuICAgICAgdmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICAgIHJldHVybiAoKSA9PiB2aWV3cG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xuICAgIH1cbiAgfSwgW2NvbnRleHQudmlld3BvcnQsIGlzSG9yaXpvbnRhbCwgc2VuZCwgZGVib3VuY2VTY3JvbGxFbmRdKTtcblxuICByZXR1cm4gKFxuICAgIDxQcmVzZW5jZSBwcmVzZW50PXtmb3JjZU1vdW50IHx8IHN0YXRlICE9PSAnaGlkZGVuJ30+XG4gICAgICA8U2Nyb2xsQXJlYVNjcm9sbGJhclZpc2libGVcbiAgICAgICAgZGF0YS1zdGF0ZT17c3RhdGUgPT09ICdoaWRkZW4nID8gJ2hpZGRlbicgOiAndmlzaWJsZSd9XG4gICAgICAgIHsuLi5zY3JvbGxiYXJQcm9wc31cbiAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgIG9uUG9pbnRlckVudGVyPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJFbnRlciwgKCkgPT4gc2VuZCgnUE9JTlRFUl9FTlRFUicpKX1cbiAgICAgICAgb25Qb2ludGVyTGVhdmU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlckxlYXZlLCAoKSA9PiBzZW5kKCdQT0lOVEVSX0xFQVZFJykpfVxuICAgICAgLz5cbiAgICA8L1ByZXNlbmNlPlxuICApO1xufSk7XG5cbnR5cGUgU2Nyb2xsQXJlYVNjcm9sbGJhckF1dG9FbGVtZW50ID0gU2Nyb2xsQXJlYVNjcm9sbGJhclZpc2libGVFbGVtZW50O1xuaW50ZXJmYWNlIFNjcm9sbEFyZWFTY3JvbGxiYXJBdXRvUHJvcHMgZXh0ZW5kcyBTY3JvbGxBcmVhU2Nyb2xsYmFyVmlzaWJsZVByb3BzIHtcbiAgZm9yY2VNb3VudD86IHRydWU7XG59XG5cbmNvbnN0IFNjcm9sbEFyZWFTY3JvbGxiYXJBdXRvID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgU2Nyb2xsQXJlYVNjcm9sbGJhckF1dG9FbGVtZW50LFxuICBTY3JvbGxBcmVhU2Nyb2xsYmFyQXV0b1Byb3BzXG4+KChwcm9wczogU2NvcGVkUHJvcHM8U2Nyb2xsQXJlYVNjcm9sbGJhckF1dG9Qcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlU2Nyb2xsQXJlYUNvbnRleHQoU0NST0xMQkFSX05BTUUsIHByb3BzLl9fc2NvcGVTY3JvbGxBcmVhKTtcbiAgY29uc3QgeyBmb3JjZU1vdW50LCAuLi5zY3JvbGxiYXJQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IFt2aXNpYmxlLCBzZXRWaXNpYmxlXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgaXNIb3Jpem9udGFsID0gcHJvcHMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJztcbiAgY29uc3QgaGFuZGxlUmVzaXplID0gdXNlRGVib3VuY2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGNvbnRleHQudmlld3BvcnQpIHtcbiAgICAgIGNvbnN0IGlzT3ZlcmZsb3dYID0gY29udGV4dC52aWV3cG9ydC5vZmZzZXRXaWR0aCA8IGNvbnRleHQudmlld3BvcnQuc2Nyb2xsV2lkdGg7XG4gICAgICBjb25zdCBpc092ZXJmbG93WSA9IGNvbnRleHQudmlld3BvcnQub2Zmc2V0SGVpZ2h0IDwgY29udGV4dC52aWV3cG9ydC5zY3JvbGxIZWlnaHQ7XG4gICAgICBzZXRWaXNpYmxlKGlzSG9yaXpvbnRhbCA/IGlzT3ZlcmZsb3dYIDogaXNPdmVyZmxvd1kpO1xuICAgIH1cbiAgfSwgMTApO1xuXG4gIHVzZVJlc2l6ZU9ic2VydmVyKGNvbnRleHQudmlld3BvcnQsIGhhbmRsZVJlc2l6ZSk7XG4gIHVzZVJlc2l6ZU9ic2VydmVyKGNvbnRleHQuY29udGVudCwgaGFuZGxlUmVzaXplKTtcblxuICByZXR1cm4gKFxuICAgIDxQcmVzZW5jZSBwcmVzZW50PXtmb3JjZU1vdW50IHx8IHZpc2libGV9PlxuICAgICAgPFNjcm9sbEFyZWFTY3JvbGxiYXJWaXNpYmxlXG4gICAgICAgIGRhdGEtc3RhdGU9e3Zpc2libGUgPyAndmlzaWJsZScgOiAnaGlkZGVuJ31cbiAgICAgICAgey4uLnNjcm9sbGJhclByb3BzfVxuICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgIC8+XG4gICAgPC9QcmVzZW5jZT5cbiAgKTtcbn0pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnR5cGUgU2Nyb2xsQXJlYVNjcm9sbGJhclZpc2libGVFbGVtZW50ID0gU2Nyb2xsQXJlYVNjcm9sbGJhckF4aXNFbGVtZW50O1xuaW50ZXJmYWNlIFNjcm9sbEFyZWFTY3JvbGxiYXJWaXNpYmxlUHJvcHNcbiAgZXh0ZW5kcyBPbWl0PFNjcm9sbEFyZWFTY3JvbGxiYXJBeGlzUHJvcHMsIGtleW9mIFNjcm9sbEFyZWFTY3JvbGxiYXJBeGlzUHJpdmF0ZVByb3BzPiB7XG4gIG9yaWVudGF0aW9uPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJztcbn1cblxuY29uc3QgU2Nyb2xsQXJlYVNjcm9sbGJhclZpc2libGUgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBTY3JvbGxBcmVhU2Nyb2xsYmFyVmlzaWJsZUVsZW1lbnQsXG4gIFNjcm9sbEFyZWFTY3JvbGxiYXJWaXNpYmxlUHJvcHNcbj4oKHByb3BzOiBTY29wZWRQcm9wczxTY3JvbGxBcmVhU2Nyb2xsYmFyVmlzaWJsZVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgb3JpZW50YXRpb24gPSAndmVydGljYWwnLCAuLi5zY3JvbGxiYXJQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VTY3JvbGxBcmVhQ29udGV4dChTQ1JPTExCQVJfTkFNRSwgcHJvcHMuX19zY29wZVNjcm9sbEFyZWEpO1xuICBjb25zdCB0aHVtYlJlZiA9IFJlYWN0LnVzZVJlZjxTY3JvbGxBcmVhVGh1bWJFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHBvaW50ZXJPZmZzZXRSZWYgPSBSZWFjdC51c2VSZWYoMCk7XG4gIGNvbnN0IFtzaXplcywgc2V0U2l6ZXNdID0gUmVhY3QudXNlU3RhdGU8U2l6ZXM+KHtcbiAgICBjb250ZW50OiAwLFxuICAgIHZpZXdwb3J0OiAwLFxuICAgIHNjcm9sbGJhcjogeyBzaXplOiAwLCBwYWRkaW5nU3RhcnQ6IDAsIHBhZGRpbmdFbmQ6IDAgfSxcbiAgfSk7XG4gIGNvbnN0IHRodW1iUmF0aW8gPSBnZXRUaHVtYlJhdGlvKHNpemVzLnZpZXdwb3J0LCBzaXplcy5jb250ZW50KTtcblxuICB0eXBlIFVuY29tbW9uUHJvcHMgPSAnb25UaHVtYlBvc2l0aW9uQ2hhbmdlJyB8ICdvbkRyYWdTY3JvbGwnIHwgJ29uV2hlZWxTY3JvbGwnO1xuICBjb25zdCBjb21tb25Qcm9wczogT21pdDxTY3JvbGxBcmVhU2Nyb2xsYmFyQXhpc1ByaXZhdGVQcm9wcywgVW5jb21tb25Qcm9wcz4gPSB7XG4gICAgLi4uc2Nyb2xsYmFyUHJvcHMsXG4gICAgc2l6ZXMsXG4gICAgb25TaXplc0NoYW5nZTogc2V0U2l6ZXMsXG4gICAgaGFzVGh1bWI6IEJvb2xlYW4odGh1bWJSYXRpbyA+IDAgJiYgdGh1bWJSYXRpbyA8IDEpLFxuICAgIG9uVGh1bWJDaGFuZ2U6ICh0aHVtYikgPT4gKHRodW1iUmVmLmN1cnJlbnQgPSB0aHVtYiksXG4gICAgb25UaHVtYlBvaW50ZXJVcDogKCkgPT4gKHBvaW50ZXJPZmZzZXRSZWYuY3VycmVudCA9IDApLFxuICAgIG9uVGh1bWJQb2ludGVyRG93bjogKHBvaW50ZXJQb3MpID0+IChwb2ludGVyT2Zmc2V0UmVmLmN1cnJlbnQgPSBwb2ludGVyUG9zKSxcbiAgfTtcblxuICBmdW5jdGlvbiBnZXRTY3JvbGxQb3NpdGlvbihwb2ludGVyUG9zOiBudW1iZXIsIGRpcj86IERpcmVjdGlvbikge1xuICAgIHJldHVybiBnZXRTY3JvbGxQb3NpdGlvbkZyb21Qb2ludGVyKHBvaW50ZXJQb3MsIHBvaW50ZXJPZmZzZXRSZWYuY3VycmVudCwgc2l6ZXMsIGRpcik7XG4gIH1cblxuICBpZiAob3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJykge1xuICAgIHJldHVybiAoXG4gICAgICA8U2Nyb2xsQXJlYVNjcm9sbGJhclhcbiAgICAgICAgey4uLmNvbW1vblByb3BzfVxuICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgb25UaHVtYlBvc2l0aW9uQ2hhbmdlPXsoKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbnRleHQudmlld3BvcnQgJiYgdGh1bWJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsUG9zID0gY29udGV4dC52aWV3cG9ydC5zY3JvbGxMZWZ0O1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gZ2V0VGh1bWJPZmZzZXRGcm9tU2Nyb2xsKHNjcm9sbFBvcywgc2l6ZXMsIGNvbnRleHQuZGlyKTtcbiAgICAgICAgICAgIHRodW1iUmVmLmN1cnJlbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7b2Zmc2V0fXB4LCAwLCAwKWA7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICBvbldoZWVsU2Nyb2xsPXsoc2Nyb2xsUG9zKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbnRleHQudmlld3BvcnQpIGNvbnRleHQudmlld3BvcnQuc2Nyb2xsTGVmdCA9IHNjcm9sbFBvcztcbiAgICAgICAgfX1cbiAgICAgICAgb25EcmFnU2Nyb2xsPXsocG9pbnRlclBvcykgPT4ge1xuICAgICAgICAgIGlmIChjb250ZXh0LnZpZXdwb3J0KSB7XG4gICAgICAgICAgICBjb250ZXh0LnZpZXdwb3J0LnNjcm9sbExlZnQgPSBnZXRTY3JvbGxQb3NpdGlvbihwb2ludGVyUG9zLCBjb250ZXh0LmRpcik7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICApO1xuICB9XG5cbiAgaWYgKG9yaWVudGF0aW9uID09PSAndmVydGljYWwnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTY3JvbGxBcmVhU2Nyb2xsYmFyWVxuICAgICAgICB7Li4uY29tbW9uUHJvcHN9XG4gICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICBvblRodW1iUG9zaXRpb25DaGFuZ2U9eygpID0+IHtcbiAgICAgICAgICBpZiAoY29udGV4dC52aWV3cG9ydCAmJiB0aHVtYlJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBzY3JvbGxQb3MgPSBjb250ZXh0LnZpZXdwb3J0LnNjcm9sbFRvcDtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IGdldFRodW1iT2Zmc2V0RnJvbVNjcm9sbChzY3JvbGxQb3MsIHNpemVzKTtcbiAgICAgICAgICAgIHRodW1iUmVmLmN1cnJlbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKDAsICR7b2Zmc2V0fXB4LCAwKWA7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICBvbldoZWVsU2Nyb2xsPXsoc2Nyb2xsUG9zKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbnRleHQudmlld3BvcnQpIGNvbnRleHQudmlld3BvcnQuc2Nyb2xsVG9wID0gc2Nyb2xsUG9zO1xuICAgICAgICB9fVxuICAgICAgICBvbkRyYWdTY3JvbGw9eyhwb2ludGVyUG9zKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbnRleHQudmlld3BvcnQpIGNvbnRleHQudmlld3BvcnQuc2Nyb2xsVG9wID0gZ2V0U2Nyb2xsUG9zaXRpb24ocG9pbnRlclBvcyk7XG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn0pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnR5cGUgU2Nyb2xsQXJlYVNjcm9sbGJhckF4aXNQcml2YXRlUHJvcHMgPSB7XG4gIGhhc1RodW1iOiBib29sZWFuO1xuICBzaXplczogU2l6ZXM7XG4gIG9uU2l6ZXNDaGFuZ2Uoc2l6ZXM6IFNpemVzKTogdm9pZDtcbiAgb25UaHVtYkNoYW5nZSh0aHVtYjogU2Nyb2xsQXJlYVRodW1iRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuICBvblRodW1iUG9pbnRlckRvd24ocG9pbnRlclBvczogbnVtYmVyKTogdm9pZDtcbiAgb25UaHVtYlBvaW50ZXJVcCgpOiB2b2lkO1xuICBvblRodW1iUG9zaXRpb25DaGFuZ2UoKTogdm9pZDtcbiAgb25XaGVlbFNjcm9sbChzY3JvbGxQb3M6IG51bWJlcik6IHZvaWQ7XG4gIG9uRHJhZ1Njcm9sbChwb2ludGVyUG9zOiBudW1iZXIpOiB2b2lkO1xufTtcblxudHlwZSBTY3JvbGxBcmVhU2Nyb2xsYmFyQXhpc0VsZW1lbnQgPSBTY3JvbGxBcmVhU2Nyb2xsYmFySW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgU2Nyb2xsQXJlYVNjcm9sbGJhckF4aXNQcm9wc1xuICBleHRlbmRzIE9taXQ8U2Nyb2xsQXJlYVNjcm9sbGJhckltcGxQcm9wcywga2V5b2YgU2Nyb2xsQXJlYVNjcm9sbGJhckltcGxQcml2YXRlUHJvcHM+LFxuICAgIFNjcm9sbEFyZWFTY3JvbGxiYXJBeGlzUHJpdmF0ZVByb3BzIHt9XG5cbmNvbnN0IFNjcm9sbEFyZWFTY3JvbGxiYXJYID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgU2Nyb2xsQXJlYVNjcm9sbGJhckF4aXNFbGVtZW50LFxuICBTY3JvbGxBcmVhU2Nyb2xsYmFyQXhpc1Byb3BzXG4+KChwcm9wczogU2NvcGVkUHJvcHM8U2Nyb2xsQXJlYVNjcm9sbGJhckF4aXNQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IHNpemVzLCBvblNpemVzQ2hhbmdlLCAuLi5zY3JvbGxiYXJQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VTY3JvbGxBcmVhQ29udGV4dChTQ1JPTExCQVJfTkFNRSwgcHJvcHMuX19zY29wZVNjcm9sbEFyZWEpO1xuICBjb25zdCBbY29tcHV0ZWRTdHlsZSwgc2V0Q29tcHV0ZWRTdHlsZV0gPSBSZWFjdC51c2VTdGF0ZTxDU1NTdHlsZURlY2xhcmF0aW9uPigpO1xuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWY8U2Nyb2xsQXJlYVNjcm9sbGJhckF4aXNFbGVtZW50PihudWxsKTtcbiAgY29uc3QgY29tcG9zZVJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYsIGNvbnRleHQub25TY3JvbGxiYXJYQ2hhbmdlKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZWYuY3VycmVudCkgc2V0Q29tcHV0ZWRTdHlsZShnZXRDb21wdXRlZFN0eWxlKHJlZi5jdXJyZW50KSk7XG4gIH0sIFtyZWZdKTtcblxuICByZXR1cm4gKFxuICAgIDxTY3JvbGxBcmVhU2Nyb2xsYmFySW1wbFxuICAgICAgZGF0YS1vcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxuICAgICAgey4uLnNjcm9sbGJhclByb3BzfVxuICAgICAgcmVmPXtjb21wb3NlUmVmc31cbiAgICAgIHNpemVzPXtzaXplc31cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgbGVmdDogY29udGV4dC5kaXIgPT09ICdydGwnID8gJ3ZhcigtLXJhZGl4LXNjcm9sbC1hcmVhLWNvcm5lci13aWR0aCknIDogMCxcbiAgICAgICAgcmlnaHQ6IGNvbnRleHQuZGlyID09PSAnbHRyJyA/ICd2YXIoLS1yYWRpeC1zY3JvbGwtYXJlYS1jb3JuZXItd2lkdGgpJyA6IDAsXG4gICAgICAgIFsnLS1yYWRpeC1zY3JvbGwtYXJlYS10aHVtYi13aWR0aCcgYXMgYW55XTogZ2V0VGh1bWJTaXplKHNpemVzKSArICdweCcsXG4gICAgICAgIC4uLnByb3BzLnN0eWxlLFxuICAgICAgfX1cbiAgICAgIG9uVGh1bWJQb2ludGVyRG93bj17KHBvaW50ZXJQb3MpID0+IHByb3BzLm9uVGh1bWJQb2ludGVyRG93bihwb2ludGVyUG9zLngpfVxuICAgICAgb25EcmFnU2Nyb2xsPXsocG9pbnRlclBvcykgPT4gcHJvcHMub25EcmFnU2Nyb2xsKHBvaW50ZXJQb3MueCl9XG4gICAgICBvbldoZWVsU2Nyb2xsPXsoZXZlbnQsIG1heFNjcm9sbFBvcykgPT4ge1xuICAgICAgICBpZiAoY29udGV4dC52aWV3cG9ydCkge1xuICAgICAgICAgIGNvbnN0IHNjcm9sbFBvcyA9IGNvbnRleHQudmlld3BvcnQuc2Nyb2xsTGVmdCArIGV2ZW50LmRlbHRhWDtcbiAgICAgICAgICBwcm9wcy5vbldoZWVsU2Nyb2xsKHNjcm9sbFBvcyk7XG4gICAgICAgICAgLy8gcHJldmVudCB3aW5kb3cgc2Nyb2xsIHdoZW4gd2hlZWxpbmcgb24gc2Nyb2xsYmFyXG4gICAgICAgICAgaWYgKGlzU2Nyb2xsaW5nV2l0aGluU2Nyb2xsYmFyQm91bmRzKHNjcm9sbFBvcywgbWF4U2Nyb2xsUG9zKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH19XG4gICAgICBvblJlc2l6ZT17KCkgPT4ge1xuICAgICAgICBpZiAocmVmLmN1cnJlbnQgJiYgY29udGV4dC52aWV3cG9ydCAmJiBjb21wdXRlZFN0eWxlKSB7XG4gICAgICAgICAgb25TaXplc0NoYW5nZSh7XG4gICAgICAgICAgICBjb250ZW50OiBjb250ZXh0LnZpZXdwb3J0LnNjcm9sbFdpZHRoLFxuICAgICAgICAgICAgdmlld3BvcnQ6IGNvbnRleHQudmlld3BvcnQub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICBzY3JvbGxiYXI6IHtcbiAgICAgICAgICAgICAgc2l6ZTogcmVmLmN1cnJlbnQuY2xpZW50V2lkdGgsXG4gICAgICAgICAgICAgIHBhZGRpbmdTdGFydDogdG9JbnQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nTGVmdCksXG4gICAgICAgICAgICAgIHBhZGRpbmdFbmQ6IHRvSW50KGNvbXB1dGVkU3R5bGUucGFkZGluZ1JpZ2h0KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH19XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5jb25zdCBTY3JvbGxBcmVhU2Nyb2xsYmFyWSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFNjcm9sbEFyZWFTY3JvbGxiYXJBeGlzRWxlbWVudCxcbiAgU2Nyb2xsQXJlYVNjcm9sbGJhckF4aXNQcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPFNjcm9sbEFyZWFTY3JvbGxiYXJBeGlzUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBzaXplcywgb25TaXplc0NoYW5nZSwgLi4uc2Nyb2xsYmFyUHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBjb250ZXh0ID0gdXNlU2Nyb2xsQXJlYUNvbnRleHQoU0NST0xMQkFSX05BTUUsIHByb3BzLl9fc2NvcGVTY3JvbGxBcmVhKTtcbiAgY29uc3QgW2NvbXB1dGVkU3R5bGUsIHNldENvbXB1dGVkU3R5bGVdID0gUmVhY3QudXNlU3RhdGU8Q1NTU3R5bGVEZWNsYXJhdGlvbj4oKTtcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPFNjcm9sbEFyZWFTY3JvbGxiYXJBeGlzRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGNvbXBvc2VSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgcmVmLCBjb250ZXh0Lm9uU2Nyb2xsYmFyWUNoYW5nZSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVmLmN1cnJlbnQpIHNldENvbXB1dGVkU3R5bGUoZ2V0Q29tcHV0ZWRTdHlsZShyZWYuY3VycmVudCkpO1xuICB9LCBbcmVmXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U2Nyb2xsQXJlYVNjcm9sbGJhckltcGxcbiAgICAgIGRhdGEtb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXG4gICAgICB7Li4uc2Nyb2xsYmFyUHJvcHN9XG4gICAgICByZWY9e2NvbXBvc2VSZWZzfVxuICAgICAgc2l6ZXM9e3NpemVzfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgdG9wOiAwLFxuICAgICAgICByaWdodDogY29udGV4dC5kaXIgPT09ICdsdHInID8gMCA6IHVuZGVmaW5lZCxcbiAgICAgICAgbGVmdDogY29udGV4dC5kaXIgPT09ICdydGwnID8gMCA6IHVuZGVmaW5lZCxcbiAgICAgICAgYm90dG9tOiAndmFyKC0tcmFkaXgtc2Nyb2xsLWFyZWEtY29ybmVyLWhlaWdodCknLFxuICAgICAgICBbJy0tcmFkaXgtc2Nyb2xsLWFyZWEtdGh1bWItaGVpZ2h0JyBhcyBhbnldOiBnZXRUaHVtYlNpemUoc2l6ZXMpICsgJ3B4JyxcbiAgICAgICAgLi4ucHJvcHMuc3R5bGUsXG4gICAgICB9fVxuICAgICAgb25UaHVtYlBvaW50ZXJEb3duPXsocG9pbnRlclBvcykgPT4gcHJvcHMub25UaHVtYlBvaW50ZXJEb3duKHBvaW50ZXJQb3MueSl9XG4gICAgICBvbkRyYWdTY3JvbGw9eyhwb2ludGVyUG9zKSA9PiBwcm9wcy5vbkRyYWdTY3JvbGwocG9pbnRlclBvcy55KX1cbiAgICAgIG9uV2hlZWxTY3JvbGw9eyhldmVudCwgbWF4U2Nyb2xsUG9zKSA9PiB7XG4gICAgICAgIGlmIChjb250ZXh0LnZpZXdwb3J0KSB7XG4gICAgICAgICAgY29uc3Qgc2Nyb2xsUG9zID0gY29udGV4dC52aWV3cG9ydC5zY3JvbGxUb3AgKyBldmVudC5kZWx0YVk7XG4gICAgICAgICAgcHJvcHMub25XaGVlbFNjcm9sbChzY3JvbGxQb3MpO1xuICAgICAgICAgIC8vIHByZXZlbnQgd2luZG93IHNjcm9sbCB3aGVuIHdoZWVsaW5nIG9uIHNjcm9sbGJhclxuICAgICAgICAgIGlmIChpc1Njcm9sbGluZ1dpdGhpblNjcm9sbGJhckJvdW5kcyhzY3JvbGxQb3MsIG1heFNjcm9sbFBvcykpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9fVxuICAgICAgb25SZXNpemU9eygpID0+IHtcbiAgICAgICAgaWYgKHJlZi5jdXJyZW50ICYmIGNvbnRleHQudmlld3BvcnQgJiYgY29tcHV0ZWRTdHlsZSkge1xuICAgICAgICAgIG9uU2l6ZXNDaGFuZ2Uoe1xuICAgICAgICAgICAgY29udGVudDogY29udGV4dC52aWV3cG9ydC5zY3JvbGxIZWlnaHQsXG4gICAgICAgICAgICB2aWV3cG9ydDogY29udGV4dC52aWV3cG9ydC5vZmZzZXRIZWlnaHQsXG4gICAgICAgICAgICBzY3JvbGxiYXI6IHtcbiAgICAgICAgICAgICAgc2l6ZTogcmVmLmN1cnJlbnQuY2xpZW50SGVpZ2h0LFxuICAgICAgICAgICAgICBwYWRkaW5nU3RhcnQ6IHRvSW50KGNvbXB1dGVkU3R5bGUucGFkZGluZ1RvcCksXG4gICAgICAgICAgICAgIHBhZGRpbmdFbmQ6IHRvSW50KGNvbXB1dGVkU3R5bGUucGFkZGluZ0JvdHRvbSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59KTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIFNjcm9sbGJhckNvbnRleHQgPSB7XG4gIGhhc1RodW1iOiBib29sZWFuO1xuICBzY3JvbGxiYXI6IFNjcm9sbEFyZWFTY3JvbGxiYXJFbGVtZW50IHwgbnVsbDtcbiAgb25UaHVtYkNoYW5nZSh0aHVtYjogU2Nyb2xsQXJlYVRodW1iRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuICBvblRodW1iUG9pbnRlclVwKCk6IHZvaWQ7XG4gIG9uVGh1bWJQb2ludGVyRG93bihwb2ludGVyUG9zOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0pOiB2b2lkO1xuICBvblRodW1iUG9zaXRpb25DaGFuZ2UoKTogdm9pZDtcbn07XG5cbmNvbnN0IFtTY3JvbGxiYXJQcm92aWRlciwgdXNlU2Nyb2xsYmFyQ29udGV4dF0gPVxuICBjcmVhdGVTY3JvbGxBcmVhQ29udGV4dDxTY3JvbGxiYXJDb250ZXh0PihTQ1JPTExCQVJfTkFNRSk7XG5cbnR5cGUgU2Nyb2xsQXJlYVNjcm9sbGJhckltcGxFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG50eXBlIFNjcm9sbEFyZWFTY3JvbGxiYXJJbXBsUHJpdmF0ZVByb3BzID0ge1xuICBzaXplczogU2l6ZXM7XG4gIGhhc1RodW1iOiBib29sZWFuO1xuICBvblRodW1iQ2hhbmdlOiBTY3JvbGxiYXJDb250ZXh0WydvblRodW1iQ2hhbmdlJ107XG4gIG9uVGh1bWJQb2ludGVyVXA6IFNjcm9sbGJhckNvbnRleHRbJ29uVGh1bWJQb2ludGVyVXAnXTtcbiAgb25UaHVtYlBvaW50ZXJEb3duOiBTY3JvbGxiYXJDb250ZXh0WydvblRodW1iUG9pbnRlckRvd24nXTtcbiAgb25UaHVtYlBvc2l0aW9uQ2hhbmdlOiBTY3JvbGxiYXJDb250ZXh0WydvblRodW1iUG9zaXRpb25DaGFuZ2UnXTtcbiAgb25XaGVlbFNjcm9sbChldmVudDogV2hlZWxFdmVudCwgbWF4U2Nyb2xsUG9zOiBudW1iZXIpOiB2b2lkO1xuICBvbkRyYWdTY3JvbGwocG9pbnRlclBvczogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9KTogdm9pZDtcbiAgb25SZXNpemUoKTogdm9pZDtcbn07XG5pbnRlcmZhY2UgU2Nyb2xsQXJlYVNjcm9sbGJhckltcGxQcm9wc1xuICBleHRlbmRzIE9taXQ8UHJpbWl0aXZlRGl2UHJvcHMsIGtleW9mIFNjcm9sbEFyZWFTY3JvbGxiYXJJbXBsUHJpdmF0ZVByb3BzPixcbiAgICBTY3JvbGxBcmVhU2Nyb2xsYmFySW1wbFByaXZhdGVQcm9wcyB7fVxuXG5jb25zdCBTY3JvbGxBcmVhU2Nyb2xsYmFySW1wbCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFNjcm9sbEFyZWFTY3JvbGxiYXJJbXBsRWxlbWVudCxcbiAgU2Nyb2xsQXJlYVNjcm9sbGJhckltcGxQcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPFNjcm9sbEFyZWFTY3JvbGxiYXJJbXBsUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3Qge1xuICAgIF9fc2NvcGVTY3JvbGxBcmVhLFxuICAgIHNpemVzLFxuICAgIGhhc1RodW1iLFxuICAgIG9uVGh1bWJDaGFuZ2UsXG4gICAgb25UaHVtYlBvaW50ZXJVcCxcbiAgICBvblRodW1iUG9pbnRlckRvd24sXG4gICAgb25UaHVtYlBvc2l0aW9uQ2hhbmdlLFxuICAgIG9uRHJhZ1Njcm9sbCxcbiAgICBvbldoZWVsU2Nyb2xsLFxuICAgIG9uUmVzaXplLFxuICAgIC4uLnNjcm9sbGJhclByb3BzXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgY29udGV4dCA9IHVzZVNjcm9sbEFyZWFDb250ZXh0KFNDUk9MTEJBUl9OQU1FLCBfX3Njb3BlU2Nyb2xsQXJlYSk7XG4gIGNvbnN0IFtzY3JvbGxiYXIsIHNldFNjcm9sbGJhcl0gPSBSZWFjdC51c2VTdGF0ZTxTY3JvbGxBcmVhU2Nyb2xsYmFyRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBjb21wb3NlUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIChub2RlKSA9PiBzZXRTY3JvbGxiYXIobm9kZSkpO1xuICBjb25zdCByZWN0UmVmID0gUmVhY3QudXNlUmVmPERPTVJlY3QgfCBudWxsPihudWxsKTtcbiAgY29uc3QgcHJldldlYmtpdFVzZXJTZWxlY3RSZWYgPSBSZWFjdC51c2VSZWY8c3RyaW5nPignJyk7XG4gIGNvbnN0IHZpZXdwb3J0ID0gY29udGV4dC52aWV3cG9ydDtcbiAgY29uc3QgbWF4U2Nyb2xsUG9zID0gc2l6ZXMuY29udGVudCAtIHNpemVzLnZpZXdwb3J0O1xuICBjb25zdCBoYW5kbGVXaGVlbFNjcm9sbCA9IHVzZUNhbGxiYWNrUmVmKG9uV2hlZWxTY3JvbGwpO1xuICBjb25zdCBoYW5kbGVUaHVtYlBvc2l0aW9uQ2hhbmdlID0gdXNlQ2FsbGJhY2tSZWYob25UaHVtYlBvc2l0aW9uQ2hhbmdlKTtcbiAgY29uc3QgaGFuZGxlUmVzaXplID0gdXNlRGVib3VuY2VDYWxsYmFjayhvblJlc2l6ZSwgMTApO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZURyYWdTY3JvbGwoZXZlbnQ6IFJlYWN0LlBvaW50ZXJFdmVudDxIVE1MRWxlbWVudD4pIHtcbiAgICBpZiAocmVjdFJlZi5jdXJyZW50KSB7XG4gICAgICBjb25zdCB4ID0gZXZlbnQuY2xpZW50WCAtIHJlY3RSZWYuY3VycmVudC5sZWZ0O1xuICAgICAgY29uc3QgeSA9IGV2ZW50LmNsaWVudFkgLSByZWN0UmVmLmN1cnJlbnQudG9wO1xuICAgICAgb25EcmFnU2Nyb2xsKHsgeCwgeSB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2UgYmluZCB3aGVlbCBldmVudCBpbXBlcmF0aXZlbHkgc28gd2UgY2FuIHN3aXRjaCBvZmYgcGFzc2l2ZVxuICAgKiBtb2RlIGZvciBkb2N1bWVudCB3aGVlbCBldmVudCB0byBhbGxvdyBpdCB0byBiZSBwcmV2ZW50ZWRcbiAgICovXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlV2hlZWwgPSAoZXZlbnQ6IFdoZWVsRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBpc1Njcm9sbGJhcldoZWVsID0gc2Nyb2xsYmFyPy5jb250YWlucyhlbGVtZW50KTtcbiAgICAgIGlmIChpc1Njcm9sbGJhcldoZWVsKSBoYW5kbGVXaGVlbFNjcm9sbChldmVudCwgbWF4U2Nyb2xsUG9zKTtcbiAgICB9O1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgaGFuZGxlV2hlZWwsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3doZWVsJywgaGFuZGxlV2hlZWwsIHsgcGFzc2l2ZTogZmFsc2UgfSBhcyBhbnkpO1xuICB9LCBbdmlld3BvcnQsIHNjcm9sbGJhciwgbWF4U2Nyb2xsUG9zLCBoYW5kbGVXaGVlbFNjcm9sbF0pO1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGh1bWIgcG9zaXRpb24gb24gc2l6ZXMgY2hhbmdlXG4gICAqL1xuICBSZWFjdC51c2VFZmZlY3QoaGFuZGxlVGh1bWJQb3NpdGlvbkNoYW5nZSwgW3NpemVzLCBoYW5kbGVUaHVtYlBvc2l0aW9uQ2hhbmdlXSk7XG5cbiAgdXNlUmVzaXplT2JzZXJ2ZXIoc2Nyb2xsYmFyLCBoYW5kbGVSZXNpemUpO1xuICB1c2VSZXNpemVPYnNlcnZlcihjb250ZXh0LmNvbnRlbnQsIGhhbmRsZVJlc2l6ZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U2Nyb2xsYmFyUHJvdmlkZXJcbiAgICAgIHNjb3BlPXtfX3Njb3BlU2Nyb2xsQXJlYX1cbiAgICAgIHNjcm9sbGJhcj17c2Nyb2xsYmFyfVxuICAgICAgaGFzVGh1bWI9e2hhc1RodW1ifVxuICAgICAgb25UaHVtYkNoYW5nZT17dXNlQ2FsbGJhY2tSZWYob25UaHVtYkNoYW5nZSl9XG4gICAgICBvblRodW1iUG9pbnRlclVwPXt1c2VDYWxsYmFja1JlZihvblRodW1iUG9pbnRlclVwKX1cbiAgICAgIG9uVGh1bWJQb3NpdGlvbkNoYW5nZT17aGFuZGxlVGh1bWJQb3NpdGlvbkNoYW5nZX1cbiAgICAgIG9uVGh1bWJQb2ludGVyRG93bj17dXNlQ2FsbGJhY2tSZWYob25UaHVtYlBvaW50ZXJEb3duKX1cbiAgICA+XG4gICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICB7Li4uc2Nyb2xsYmFyUHJvcHN9XG4gICAgICAgIHJlZj17Y29tcG9zZVJlZnN9XG4gICAgICAgIHN0eWxlPXt7IHBvc2l0aW9uOiAnYWJzb2x1dGUnLCAuLi5zY3JvbGxiYXJQcm9wcy5zdHlsZSB9fVxuICAgICAgICBvblBvaW50ZXJEb3duPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJEb3duLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBtYWluUG9pbnRlciA9IDA7XG4gICAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiA9PT0gbWFpblBvaW50ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICBlbGVtZW50LnNldFBvaW50ZXJDYXB0dXJlKGV2ZW50LnBvaW50ZXJJZCk7XG4gICAgICAgICAgICByZWN0UmVmLmN1cnJlbnQgPSBzY3JvbGxiYXIhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgLy8gcG9pbnRlciBjYXB0dXJlIGRvZXNuJ3QgcHJldmVudCB0ZXh0IHNlbGVjdGlvbiBpbiBTYWZhcmlcbiAgICAgICAgICAgIC8vIHNvIHdlIHJlbW92ZSB0ZXh0IHNlbGVjdGlvbiBtYW51YWxseSB3aGVuIHNjcm9sbGluZ1xuICAgICAgICAgICAgcHJldldlYmtpdFVzZXJTZWxlY3RSZWYuY3VycmVudCA9IGRvY3VtZW50LmJvZHkuc3R5bGUud2Via2l0VXNlclNlbGVjdDtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2Via2l0VXNlclNlbGVjdCA9ICdub25lJztcbiAgICAgICAgICAgIGlmIChjb250ZXh0LnZpZXdwb3J0KSBjb250ZXh0LnZpZXdwb3J0LnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gJ2F1dG8nO1xuICAgICAgICAgICAgaGFuZGxlRHJhZ1Njcm9sbChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KX1cbiAgICAgICAgb25Qb2ludGVyTW92ZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Qb2ludGVyTW92ZSwgaGFuZGxlRHJhZ1Njcm9sbCl9XG4gICAgICAgIG9uUG9pbnRlclVwPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJVcCwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICBpZiAoZWxlbWVudC5oYXNQb2ludGVyQ2FwdHVyZShldmVudC5wb2ludGVySWQpKSB7XG4gICAgICAgICAgICBlbGVtZW50LnJlbGVhc2VQb2ludGVyQ2FwdHVyZShldmVudC5wb2ludGVySWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndlYmtpdFVzZXJTZWxlY3QgPSBwcmV2V2Via2l0VXNlclNlbGVjdFJlZi5jdXJyZW50O1xuICAgICAgICAgIGlmIChjb250ZXh0LnZpZXdwb3J0KSBjb250ZXh0LnZpZXdwb3J0LnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gJyc7XG4gICAgICAgICAgcmVjdFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgfSl9XG4gICAgICAvPlxuICAgIDwvU2Nyb2xsYmFyUHJvdmlkZXI+XG4gICk7XG59KTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2Nyb2xsQXJlYVRodW1iXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFRIVU1CX05BTUUgPSAnU2Nyb2xsQXJlYVRodW1iJztcblxudHlwZSBTY3JvbGxBcmVhVGh1bWJFbGVtZW50ID0gU2Nyb2xsQXJlYVRodW1iSW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgU2Nyb2xsQXJlYVRodW1iUHJvcHMgZXh0ZW5kcyBTY3JvbGxBcmVhVGh1bWJJbXBsUHJvcHMge1xuICAvKipcbiAgICogVXNlZCB0byBmb3JjZSBtb3VudGluZyB3aGVuIG1vcmUgY29udHJvbCBpcyBuZWVkZWQuIFVzZWZ1bCB3aGVuXG4gICAqIGNvbnRyb2xsaW5nIGFuaW1hdGlvbiB3aXRoIFJlYWN0IGFuaW1hdGlvbiBsaWJyYXJpZXMuXG4gICAqL1xuICBmb3JjZU1vdW50PzogdHJ1ZTtcbn1cblxuY29uc3QgU2Nyb2xsQXJlYVRodW1iID0gUmVhY3QuZm9yd2FyZFJlZjxTY3JvbGxBcmVhVGh1bWJFbGVtZW50LCBTY3JvbGxBcmVhVGh1bWJQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8U2Nyb2xsQXJlYVRodW1iUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IGZvcmNlTW91bnQsIC4uLnRodW1iUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IHNjcm9sbGJhckNvbnRleHQgPSB1c2VTY3JvbGxiYXJDb250ZXh0KFRIVU1CX05BTUUsIHByb3BzLl9fc2NvcGVTY3JvbGxBcmVhKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXNlbmNlIHByZXNlbnQ9e2ZvcmNlTW91bnQgfHwgc2Nyb2xsYmFyQ29udGV4dC5oYXNUaHVtYn0+XG4gICAgICAgIDxTY3JvbGxBcmVhVGh1bWJJbXBsIHJlZj17Zm9yd2FyZGVkUmVmfSB7Li4udGh1bWJQcm9wc30gLz5cbiAgICAgIDwvUHJlc2VuY2U+XG4gICAgKTtcbiAgfVxuKTtcblxudHlwZSBTY3JvbGxBcmVhVGh1bWJJbXBsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFNjcm9sbEFyZWFUaHVtYkltcGxQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHt9XG5cbmNvbnN0IFNjcm9sbEFyZWFUaHVtYkltcGwgPSBSZWFjdC5mb3J3YXJkUmVmPFNjcm9sbEFyZWFUaHVtYkltcGxFbGVtZW50LCBTY3JvbGxBcmVhVGh1bWJJbXBsUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNjcm9sbEFyZWFUaHVtYkltcGxQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVNjcm9sbEFyZWEsIHN0eWxlLCAuLi50aHVtYlByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBzY3JvbGxBcmVhQ29udGV4dCA9IHVzZVNjcm9sbEFyZWFDb250ZXh0KFRIVU1CX05BTUUsIF9fc2NvcGVTY3JvbGxBcmVhKTtcbiAgICBjb25zdCBzY3JvbGxiYXJDb250ZXh0ID0gdXNlU2Nyb2xsYmFyQ29udGV4dChUSFVNQl9OQU1FLCBfX3Njb3BlU2Nyb2xsQXJlYSk7XG4gICAgY29uc3QgeyBvblRodW1iUG9zaXRpb25DaGFuZ2UgfSA9IHNjcm9sbGJhckNvbnRleHQ7XG4gICAgY29uc3QgY29tcG9zZWRSZWYgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCAobm9kZSkgPT5cbiAgICAgIHNjcm9sbGJhckNvbnRleHQub25UaHVtYkNoYW5nZShub2RlKVxuICAgICk7XG4gICAgY29uc3QgcmVtb3ZlVW5saW5rZWRTY3JvbGxMaXN0ZW5lclJlZiA9IFJlYWN0LnVzZVJlZjwoKSA9PiB2b2lkPih1bmRlZmluZWQpO1xuICAgIGNvbnN0IGRlYm91bmNlU2Nyb2xsRW5kID0gdXNlRGVib3VuY2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAocmVtb3ZlVW5saW5rZWRTY3JvbGxMaXN0ZW5lclJlZi5jdXJyZW50KSB7XG4gICAgICAgIHJlbW92ZVVubGlua2VkU2Nyb2xsTGlzdGVuZXJSZWYuY3VycmVudCgpO1xuICAgICAgICByZW1vdmVVbmxpbmtlZFNjcm9sbExpc3RlbmVyUmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSwgMTAwKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB2aWV3cG9ydCA9IHNjcm9sbEFyZWFDb250ZXh0LnZpZXdwb3J0O1xuICAgICAgaWYgKHZpZXdwb3J0KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXZSBvbmx5IGJpbmQgdG8gbmF0aXZlIHNjcm9sbCBldmVudCBzbyB3ZSBrbm93IHdoZW4gc2Nyb2xsIHN0YXJ0cyBhbmQgZW5kcy5cbiAgICAgICAgICogV2hlbiBzY3JvbGwgc3RhcnRzIHdlIHN0YXJ0IGEgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGxvb3AgdGhhdCBjaGVja3MgZm9yXG4gICAgICAgICAqIGNoYW5nZXMgdG8gc2Nyb2xsIHBvc2l0aW9uLiBUaGF0IHJBRiBsb29wIHRyaWdnZXJzIG91ciB0aHVtYiBwb3NpdGlvbiBjaGFuZ2VcbiAgICAgICAgICogd2hlbiByZWxldmFudCB0byBhdm9pZCBzY3JvbGwtbGlua2VkIGVmZmVjdHMuIFdlIGNhbmNlbCB0aGUgbG9vcCB3aGVuIHNjcm9sbCBlbmRzLlxuICAgICAgICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL01vemlsbGEvUGVyZm9ybWFuY2UvU2Nyb2xsLWxpbmtlZF9lZmZlY3RzXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgICAgZGVib3VuY2VTY3JvbGxFbmQoKTtcbiAgICAgICAgICBpZiAoIXJlbW92ZVVubGlua2VkU2Nyb2xsTGlzdGVuZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3QgbGlzdGVuZXIgPSBhZGRVbmxpbmtlZFNjcm9sbExpc3RlbmVyKHZpZXdwb3J0LCBvblRodW1iUG9zaXRpb25DaGFuZ2UpO1xuICAgICAgICAgICAgcmVtb3ZlVW5saW5rZWRTY3JvbGxMaXN0ZW5lclJlZi5jdXJyZW50ID0gbGlzdGVuZXI7XG4gICAgICAgICAgICBvblRodW1iUG9zaXRpb25DaGFuZ2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIG9uVGh1bWJQb3NpdGlvbkNoYW5nZSgpO1xuICAgICAgICB2aWV3cG9ydC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xuICAgICAgICByZXR1cm4gKCkgPT4gdmlld3BvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICAgIH1cbiAgICB9LCBbc2Nyb2xsQXJlYUNvbnRleHQudmlld3BvcnQsIGRlYm91bmNlU2Nyb2xsRW5kLCBvblRodW1iUG9zaXRpb25DaGFuZ2VdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICBkYXRhLXN0YXRlPXtzY3JvbGxiYXJDb250ZXh0Lmhhc1RodW1iID8gJ3Zpc2libGUnIDogJ2hpZGRlbid9XG4gICAgICAgIHsuLi50aHVtYlByb3BzfVxuICAgICAgICByZWY9e2NvbXBvc2VkUmVmfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIHdpZHRoOiAndmFyKC0tcmFkaXgtc2Nyb2xsLWFyZWEtdGh1bWItd2lkdGgpJyxcbiAgICAgICAgICBoZWlnaHQ6ICd2YXIoLS1yYWRpeC1zY3JvbGwtYXJlYS10aHVtYi1oZWlnaHQpJyxcbiAgICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgfX1cbiAgICAgICAgb25Qb2ludGVyRG93bkNhcHR1cmU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlckRvd25DYXB0dXJlLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCB0aHVtYiA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICBjb25zdCB0aHVtYlJlY3QgPSB0aHVtYi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICBjb25zdCB4ID0gZXZlbnQuY2xpZW50WCAtIHRodW1iUmVjdC5sZWZ0O1xuICAgICAgICAgIGNvbnN0IHkgPSBldmVudC5jbGllbnRZIC0gdGh1bWJSZWN0LnRvcDtcbiAgICAgICAgICBzY3JvbGxiYXJDb250ZXh0Lm9uVGh1bWJQb2ludGVyRG93bih7IHgsIHkgfSk7XG4gICAgICAgIH0pfVxuICAgICAgICBvblBvaW50ZXJVcD17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Qb2ludGVyVXAsIHNjcm9sbGJhckNvbnRleHQub25UaHVtYlBvaW50ZXJVcCl9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbik7XG5cblNjcm9sbEFyZWFUaHVtYi5kaXNwbGF5TmFtZSA9IFRIVU1CX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNjcm9sbEFyZWFDb3JuZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQ09STkVSX05BTUUgPSAnU2Nyb2xsQXJlYUNvcm5lcic7XG5cbnR5cGUgU2Nyb2xsQXJlYUNvcm5lckVsZW1lbnQgPSBTY3JvbGxBcmVhQ29ybmVySW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgU2Nyb2xsQXJlYUNvcm5lclByb3BzIGV4dGVuZHMgU2Nyb2xsQXJlYUNvcm5lckltcGxQcm9wcyB7fVxuXG5jb25zdCBTY3JvbGxBcmVhQ29ybmVyID0gUmVhY3QuZm9yd2FyZFJlZjxTY3JvbGxBcmVhQ29ybmVyRWxlbWVudCwgU2Nyb2xsQXJlYUNvcm5lclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxTY3JvbGxBcmVhQ29ybmVyUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlU2Nyb2xsQXJlYUNvbnRleHQoQ09STkVSX05BTUUsIHByb3BzLl9fc2NvcGVTY3JvbGxBcmVhKTtcbiAgICBjb25zdCBoYXNCb3RoU2Nyb2xsYmFyc1Zpc2libGUgPSBCb29sZWFuKGNvbnRleHQuc2Nyb2xsYmFyWCAmJiBjb250ZXh0LnNjcm9sbGJhclkpO1xuICAgIGNvbnN0IGhhc0Nvcm5lciA9IGNvbnRleHQudHlwZSAhPT0gJ3Njcm9sbCcgJiYgaGFzQm90aFNjcm9sbGJhcnNWaXNpYmxlO1xuICAgIHJldHVybiBoYXNDb3JuZXIgPyA8U2Nyb2xsQXJlYUNvcm5lckltcGwgey4uLnByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz4gOiBudWxsO1xuICB9XG4pO1xuXG5TY3JvbGxBcmVhQ29ybmVyLmRpc3BsYXlOYW1lID0gQ09STkVSX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxudHlwZSBTY3JvbGxBcmVhQ29ybmVySW1wbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBTY3JvbGxBcmVhQ29ybmVySW1wbFByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge31cblxuY29uc3QgU2Nyb2xsQXJlYUNvcm5lckltcGwgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBTY3JvbGxBcmVhQ29ybmVySW1wbEVsZW1lbnQsXG4gIFNjcm9sbEFyZWFDb3JuZXJJbXBsUHJvcHNcbj4oKHByb3BzOiBTY29wZWRQcm9wczxTY3JvbGxBcmVhQ29ybmVySW1wbFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZVNjcm9sbEFyZWEsIC4uLmNvcm5lclByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgY29udGV4dCA9IHVzZVNjcm9sbEFyZWFDb250ZXh0KENPUk5FUl9OQU1FLCBfX3Njb3BlU2Nyb2xsQXJlYSk7XG4gIGNvbnN0IFt3aWR0aCwgc2V0V2lkdGhdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gIGNvbnN0IFtoZWlnaHQsIHNldEhlaWdodF0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgY29uc3QgaGFzU2l6ZSA9IEJvb2xlYW4od2lkdGggJiYgaGVpZ2h0KTtcblxuICB1c2VSZXNpemVPYnNlcnZlcihjb250ZXh0LnNjcm9sbGJhclgsICgpID0+IHtcbiAgICBjb25zdCBoZWlnaHQgPSBjb250ZXh0LnNjcm9sbGJhclg/Lm9mZnNldEhlaWdodCB8fCAwO1xuICAgIGNvbnRleHQub25Db3JuZXJIZWlnaHRDaGFuZ2UoaGVpZ2h0KTtcbiAgICBzZXRIZWlnaHQoaGVpZ2h0KTtcbiAgfSk7XG5cbiAgdXNlUmVzaXplT2JzZXJ2ZXIoY29udGV4dC5zY3JvbGxiYXJZLCAoKSA9PiB7XG4gICAgY29uc3Qgd2lkdGggPSBjb250ZXh0LnNjcm9sbGJhclk/Lm9mZnNldFdpZHRoIHx8IDA7XG4gICAgY29udGV4dC5vbkNvcm5lcldpZHRoQ2hhbmdlKHdpZHRoKTtcbiAgICBzZXRXaWR0aCh3aWR0aCk7XG4gIH0pO1xuXG4gIHJldHVybiBoYXNTaXplID8gKFxuICAgIDxQcmltaXRpdmUuZGl2XG4gICAgICB7Li4uY29ybmVyUHJvcHN9XG4gICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICByaWdodDogY29udGV4dC5kaXIgPT09ICdsdHInID8gMCA6IHVuZGVmaW5lZCxcbiAgICAgICAgbGVmdDogY29udGV4dC5kaXIgPT09ICdydGwnID8gMCA6IHVuZGVmaW5lZCxcbiAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICAuLi5wcm9wcy5zdHlsZSxcbiAgICAgIH19XG4gICAgLz5cbiAgKSA6IG51bGw7XG59KTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5mdW5jdGlvbiB0b0ludCh2YWx1ZT86IHN0cmluZykge1xuICByZXR1cm4gdmFsdWUgPyBwYXJzZUludCh2YWx1ZSwgMTApIDogMDtcbn1cblxuZnVuY3Rpb24gZ2V0VGh1bWJSYXRpbyh2aWV3cG9ydFNpemU6IG51bWJlciwgY29udGVudFNpemU6IG51bWJlcikge1xuICBjb25zdCByYXRpbyA9IHZpZXdwb3J0U2l6ZSAvIGNvbnRlbnRTaXplO1xuICByZXR1cm4gaXNOYU4ocmF0aW8pID8gMCA6IHJhdGlvO1xufVxuXG5mdW5jdGlvbiBnZXRUaHVtYlNpemUoc2l6ZXM6IFNpemVzKSB7XG4gIGNvbnN0IHJhdGlvID0gZ2V0VGh1bWJSYXRpbyhzaXplcy52aWV3cG9ydCwgc2l6ZXMuY29udGVudCk7XG4gIGNvbnN0IHNjcm9sbGJhclBhZGRpbmcgPSBzaXplcy5zY3JvbGxiYXIucGFkZGluZ1N0YXJ0ICsgc2l6ZXMuc2Nyb2xsYmFyLnBhZGRpbmdFbmQ7XG4gIGNvbnN0IHRodW1iU2l6ZSA9IChzaXplcy5zY3JvbGxiYXIuc2l6ZSAtIHNjcm9sbGJhclBhZGRpbmcpICogcmF0aW87XG4gIC8vIG1pbmltdW0gb2YgMTggbWF0Y2hlcyBtYWNPUyBtaW5pbXVtXG4gIHJldHVybiBNYXRoLm1heCh0aHVtYlNpemUsIDE4KTtcbn1cblxuZnVuY3Rpb24gZ2V0U2Nyb2xsUG9zaXRpb25Gcm9tUG9pbnRlcihcbiAgcG9pbnRlclBvczogbnVtYmVyLFxuICBwb2ludGVyT2Zmc2V0OiBudW1iZXIsXG4gIHNpemVzOiBTaXplcyxcbiAgZGlyOiBEaXJlY3Rpb24gPSAnbHRyJ1xuKSB7XG4gIGNvbnN0IHRodW1iU2l6ZVB4ID0gZ2V0VGh1bWJTaXplKHNpemVzKTtcbiAgY29uc3QgdGh1bWJDZW50ZXIgPSB0aHVtYlNpemVQeCAvIDI7XG4gIGNvbnN0IG9mZnNldCA9IHBvaW50ZXJPZmZzZXQgfHwgdGh1bWJDZW50ZXI7XG4gIGNvbnN0IHRodW1iT2Zmc2V0RnJvbUVuZCA9IHRodW1iU2l6ZVB4IC0gb2Zmc2V0O1xuICBjb25zdCBtaW5Qb2ludGVyUG9zID0gc2l6ZXMuc2Nyb2xsYmFyLnBhZGRpbmdTdGFydCArIG9mZnNldDtcbiAgY29uc3QgbWF4UG9pbnRlclBvcyA9IHNpemVzLnNjcm9sbGJhci5zaXplIC0gc2l6ZXMuc2Nyb2xsYmFyLnBhZGRpbmdFbmQgLSB0aHVtYk9mZnNldEZyb21FbmQ7XG4gIGNvbnN0IG1heFNjcm9sbFBvcyA9IHNpemVzLmNvbnRlbnQgLSBzaXplcy52aWV3cG9ydDtcbiAgY29uc3Qgc2Nyb2xsUmFuZ2UgPSBkaXIgPT09ICdsdHInID8gWzAsIG1heFNjcm9sbFBvc10gOiBbbWF4U2Nyb2xsUG9zICogLTEsIDBdO1xuICBjb25zdCBpbnRlcnBvbGF0ZSA9IGxpbmVhclNjYWxlKFttaW5Qb2ludGVyUG9zLCBtYXhQb2ludGVyUG9zXSwgc2Nyb2xsUmFuZ2UgYXMgW251bWJlciwgbnVtYmVyXSk7XG4gIHJldHVybiBpbnRlcnBvbGF0ZShwb2ludGVyUG9zKTtcbn1cblxuZnVuY3Rpb24gZ2V0VGh1bWJPZmZzZXRGcm9tU2Nyb2xsKHNjcm9sbFBvczogbnVtYmVyLCBzaXplczogU2l6ZXMsIGRpcjogRGlyZWN0aW9uID0gJ2x0cicpIHtcbiAgY29uc3QgdGh1bWJTaXplUHggPSBnZXRUaHVtYlNpemUoc2l6ZXMpO1xuICBjb25zdCBzY3JvbGxiYXJQYWRkaW5nID0gc2l6ZXMuc2Nyb2xsYmFyLnBhZGRpbmdTdGFydCArIHNpemVzLnNjcm9sbGJhci5wYWRkaW5nRW5kO1xuICBjb25zdCBzY3JvbGxiYXIgPSBzaXplcy5zY3JvbGxiYXIuc2l6ZSAtIHNjcm9sbGJhclBhZGRpbmc7XG4gIGNvbnN0IG1heFNjcm9sbFBvcyA9IHNpemVzLmNvbnRlbnQgLSBzaXplcy52aWV3cG9ydDtcbiAgY29uc3QgbWF4VGh1bWJQb3MgPSBzY3JvbGxiYXIgLSB0aHVtYlNpemVQeDtcbiAgY29uc3Qgc2Nyb2xsQ2xhbXBSYW5nZSA9IGRpciA9PT0gJ2x0cicgPyBbMCwgbWF4U2Nyb2xsUG9zXSA6IFttYXhTY3JvbGxQb3MgKiAtMSwgMF07XG4gIGNvbnN0IHNjcm9sbFdpdGhvdXRNb21lbnR1bSA9IGNsYW1wKHNjcm9sbFBvcywgc2Nyb2xsQ2xhbXBSYW5nZSBhcyBbbnVtYmVyLCBudW1iZXJdKTtcbiAgY29uc3QgaW50ZXJwb2xhdGUgPSBsaW5lYXJTY2FsZShbMCwgbWF4U2Nyb2xsUG9zXSwgWzAsIG1heFRodW1iUG9zXSk7XG4gIHJldHVybiBpbnRlcnBvbGF0ZShzY3JvbGxXaXRob3V0TW9tZW50dW0pO1xufVxuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdG1jdy11cC1mb3ItYWRvcHRpb24vc2ltcGxlLWxpbmVhci1zY2FsZS9ibG9iL21hc3Rlci9pbmRleC5qc1xuZnVuY3Rpb24gbGluZWFyU2NhbGUoaW5wdXQ6IHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl0sIG91dHB1dDogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSkge1xuICByZXR1cm4gKHZhbHVlOiBudW1iZXIpID0+IHtcbiAgICBpZiAoaW5wdXRbMF0gPT09IGlucHV0WzFdIHx8IG91dHB1dFswXSA9PT0gb3V0cHV0WzFdKSByZXR1cm4gb3V0cHV0WzBdO1xuICAgIGNvbnN0IHJhdGlvID0gKG91dHB1dFsxXSAtIG91dHB1dFswXSkgLyAoaW5wdXRbMV0gLSBpbnB1dFswXSk7XG4gICAgcmV0dXJuIG91dHB1dFswXSArIHJhdGlvICogKHZhbHVlIC0gaW5wdXRbMF0pO1xuICB9O1xufVxuXG5mdW5jdGlvbiBpc1Njcm9sbGluZ1dpdGhpblNjcm9sbGJhckJvdW5kcyhzY3JvbGxQb3M6IG51bWJlciwgbWF4U2Nyb2xsUG9zOiBudW1iZXIpIHtcbiAgcmV0dXJuIHNjcm9sbFBvcyA+IDAgJiYgc2Nyb2xsUG9zIDwgbWF4U2Nyb2xsUG9zO1xufVxuXG4vLyBDdXN0b20gc2Nyb2xsIGhhbmRsZXIgdG8gYXZvaWQgc2Nyb2xsLWxpbmtlZCBlZmZlY3RzXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL01vemlsbGEvUGVyZm9ybWFuY2UvU2Nyb2xsLWxpbmtlZF9lZmZlY3RzXG5jb25zdCBhZGRVbmxpbmtlZFNjcm9sbExpc3RlbmVyID0gKG5vZGU6IEhUTUxFbGVtZW50LCBoYW5kbGVyID0gKCkgPT4ge30pID0+IHtcbiAgbGV0IHByZXZQb3NpdGlvbiA9IHsgbGVmdDogbm9kZS5zY3JvbGxMZWZ0LCB0b3A6IG5vZGUuc2Nyb2xsVG9wIH07XG4gIGxldCByQUYgPSAwO1xuICAoZnVuY3Rpb24gbG9vcCgpIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHsgbGVmdDogbm9kZS5zY3JvbGxMZWZ0LCB0b3A6IG5vZGUuc2Nyb2xsVG9wIH07XG4gICAgY29uc3QgaXNIb3Jpem9udGFsU2Nyb2xsID0gcHJldlBvc2l0aW9uLmxlZnQgIT09IHBvc2l0aW9uLmxlZnQ7XG4gICAgY29uc3QgaXNWZXJ0aWNhbFNjcm9sbCA9IHByZXZQb3NpdGlvbi50b3AgIT09IHBvc2l0aW9uLnRvcDtcbiAgICBpZiAoaXNIb3Jpem9udGFsU2Nyb2xsIHx8IGlzVmVydGljYWxTY3JvbGwpIGhhbmRsZXIoKTtcbiAgICBwcmV2UG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICByQUYgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGxvb3ApO1xuICB9KSgpO1xuICByZXR1cm4gKCkgPT4gd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHJBRik7XG59O1xuXG5mdW5jdGlvbiB1c2VEZWJvdW5jZUNhbGxiYWNrKGNhbGxiYWNrOiAoKSA9PiB2b2lkLCBkZWxheTogbnVtYmVyKSB7XG4gIGNvbnN0IGhhbmRsZUNhbGxiYWNrID0gdXNlQ2FsbGJhY2tSZWYoY2FsbGJhY2spO1xuICBjb25zdCBkZWJvdW5jZVRpbWVyUmVmID0gUmVhY3QudXNlUmVmKDApO1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4gKCkgPT4gd2luZG93LmNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyUmVmLmN1cnJlbnQpLCBbXSk7XG4gIHJldHVybiBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgd2luZG93LmNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyUmVmLmN1cnJlbnQpO1xuICAgIGRlYm91bmNlVGltZXJSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KGhhbmRsZUNhbGxiYWNrLCBkZWxheSk7XG4gIH0sIFtoYW5kbGVDYWxsYmFjaywgZGVsYXldKTtcbn1cblxuZnVuY3Rpb24gdXNlUmVzaXplT2JzZXJ2ZXIoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsLCBvblJlc2l6ZTogKCkgPT4gdm9pZCkge1xuICBjb25zdCBoYW5kbGVSZXNpemUgPSB1c2VDYWxsYmFja1JlZihvblJlc2l6ZSk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHJBRiA9IDA7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIC8qKlxuICAgICAgICogUmVzaXplIE9ic2VydmVyIHdpbGwgdGhyb3cgYW4gb2Z0ZW4gYmVuaWduIGVycm9yIHRoYXQgc2F5cyBgUmVzaXplT2JzZXJ2ZXIgbG9vcFxuICAgICAgICogY29tcGxldGVkIHdpdGggdW5kZWxpdmVyZWQgbm90aWZpY2F0aW9uc2AuIFRoaXMgbWVhbnMgdGhhdCBSZXNpemVPYnNlcnZlciB3YXMgbm90XG4gICAgICAgKiBhYmxlIHRvIGRlbGl2ZXIgYWxsIG9ic2VydmF0aW9ucyB3aXRoaW4gYSBzaW5nbGUgYW5pbWF0aW9uIGZyYW1lLCBzbyB3ZSB1c2VcbiAgICAgICAqIGByZXF1ZXN0QW5pbWF0aW9uRnJhbWVgIHRvIGVuc3VyZSB3ZSBkb24ndCBkZWxpdmVyIHVubmVjZXNzYXJ5IG9ic2VydmF0aW9ucy5cbiAgICAgICAqIEZ1cnRoZXIgcmVhZGluZzogaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvcmVzaXplLW9ic2VydmVyL2lzc3Vlcy8zOFxuICAgICAgICovXG4gICAgICBjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJBRik7XG4gICAgICAgIHJBRiA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaGFuZGxlUmVzaXplKTtcbiAgICAgIH0pO1xuICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShyQUYpO1xuICAgICAgICByZXNpemVPYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgICB9O1xuICAgIH1cbiAgfSwgW2VsZW1lbnQsIGhhbmRsZVJlc2l6ZV0pO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFJvb3QgPSBTY3JvbGxBcmVhO1xuY29uc3QgVmlld3BvcnQgPSBTY3JvbGxBcmVhVmlld3BvcnQ7XG5jb25zdCBTY3JvbGxiYXIgPSBTY3JvbGxBcmVhU2Nyb2xsYmFyO1xuY29uc3QgVGh1bWIgPSBTY3JvbGxBcmVhVGh1bWI7XG5jb25zdCBDb3JuZXIgPSBTY3JvbGxBcmVhQ29ybmVyO1xuXG5leHBvcnQge1xuICBjcmVhdGVTY3JvbGxBcmVhU2NvcGUsXG4gIC8vXG4gIFNjcm9sbEFyZWEsXG4gIFNjcm9sbEFyZWFWaWV3cG9ydCxcbiAgU2Nyb2xsQXJlYVNjcm9sbGJhcixcbiAgU2Nyb2xsQXJlYVRodW1iLFxuICBTY3JvbGxBcmVhQ29ybmVyLFxuICAvL1xuICBSb290LFxuICBWaWV3cG9ydCxcbiAgU2Nyb2xsYmFyLFxuICBUaHVtYixcbiAgQ29ybmVyLFxufTtcbmV4cG9ydCB0eXBlIHtcbiAgU2Nyb2xsQXJlYVByb3BzLFxuICBTY3JvbGxBcmVhVmlld3BvcnRQcm9wcyxcbiAgU2Nyb2xsQXJlYVNjcm9sbGJhclByb3BzLFxuICBTY3JvbGxBcmVhVGh1bWJQcm9wcyxcbiAgU2Nyb2xsQXJlYUNvcm5lclByb3BzLFxufTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcblxudHlwZSBNYWNoaW5lPFM+ID0geyBbazogc3RyaW5nXTogeyBbazogc3RyaW5nXTogUyB9IH07XG50eXBlIE1hY2hpbmVTdGF0ZTxUPiA9IGtleW9mIFQ7XG50eXBlIE1hY2hpbmVFdmVudDxUPiA9IGtleW9mIFVuaW9uVG9JbnRlcnNlY3Rpb248VFtrZXlvZiBUXT47XG5cbi8vIPCfpK8gaHR0cHM6Ly9mZXR0YmxvZy5ldS90eXBlc2NyaXB0LXVuaW9uLXRvLWludGVyc2VjdGlvbi9cbnR5cGUgVW5pb25Ub0ludGVyc2VjdGlvbjxUPiA9IChUIGV4dGVuZHMgYW55ID8gKHg6IFQpID0+IGFueSA6IG5ldmVyKSBleHRlbmRzICh4OiBpbmZlciBSKSA9PiBhbnlcbiAgPyBSXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTdGF0ZU1hY2hpbmU8TT4oXG4gIGluaXRpYWxTdGF0ZTogTWFjaGluZVN0YXRlPE0+LFxuICBtYWNoaW5lOiBNICYgTWFjaGluZTxNYWNoaW5lU3RhdGU8TT4+XG4pIHtcbiAgcmV0dXJuIFJlYWN0LnVzZVJlZHVjZXIoKHN0YXRlOiBNYWNoaW5lU3RhdGU8TT4sIGV2ZW50OiBNYWNoaW5lRXZlbnQ8TT4pOiBNYWNoaW5lU3RhdGU8TT4gPT4ge1xuICAgIGNvbnN0IG5leHRTdGF0ZSA9IChtYWNoaW5lW3N0YXRlXSBhcyBhbnkpW2V2ZW50XTtcbiAgICByZXR1cm4gbmV4dFN0YXRlID8/IHN0YXRlO1xuICB9LCBpbml0aWFsU3RhdGUpO1xufVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiaGVpZ2h0Iiwid2lkdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-scroll-area/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-primitive/dist/index.mjs":
/*!********************************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-primitive/dist/index.mjs ***!
\********************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitive: () => (/* binding */ Primitive),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ dispatchDiscreteCustomEvent: () => (/* binding */ dispatchDiscreteCustomEvent)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/primitive/src/primitive.tsx\n\n\n\n\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__.Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2Nyb2xsLWFyZWEvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQytCO0FBQ087QUFDTTtBQUNKO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSw2Q0FBZ0I7QUFDL0IsWUFBWSw2QkFBNkI7QUFDekMsMkJBQTJCLHNEQUFJO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixzREFBRyxTQUFTLHNDQUFzQztBQUM3RSxHQUFHO0FBQ0gsa0NBQWtDLEtBQUs7QUFDdkMsV0FBVztBQUNYLENBQUMsSUFBSTtBQUNMO0FBQ0EsY0FBYyxnREFBa0I7QUFDaEM7QUFDQTtBQUtFO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1zY3JvbGwtYXJlYS9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZS9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9wcmltaXRpdmUvc3JjL3ByaW1pdGl2ZS50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgU2xvdCB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3Qtc2xvdFwiO1xuaW1wb3J0IHsganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgTk9ERVMgPSBbXG4gIFwiYVwiLFxuICBcImJ1dHRvblwiLFxuICBcImRpdlwiLFxuICBcImZvcm1cIixcbiAgXCJoMlwiLFxuICBcImgzXCIsXG4gIFwiaW1nXCIsXG4gIFwiaW5wdXRcIixcbiAgXCJsYWJlbFwiLFxuICBcImxpXCIsXG4gIFwibmF2XCIsXG4gIFwib2xcIixcbiAgXCJwXCIsXG4gIFwic3BhblwiLFxuICBcInN2Z1wiLFxuICBcInVsXCJcbl07XG52YXIgUHJpbWl0aXZlID0gTk9ERVMucmVkdWNlKChwcmltaXRpdmUsIG5vZGUpID0+IHtcbiAgY29uc3QgTm9kZSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IGFzQ2hpbGQsIC4uLnByaW1pdGl2ZVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBDb21wID0gYXNDaGlsZCA/IFNsb3QgOiBub2RlO1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICB3aW5kb3dbU3ltYm9sLmZvcihcInJhZGl4LXVpXCIpXSA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KENvbXAsIHsgLi4ucHJpbWl0aXZlUHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmIH0pO1xuICB9KTtcbiAgTm9kZS5kaXNwbGF5TmFtZSA9IGBQcmltaXRpdmUuJHtub2RlfWA7XG4gIHJldHVybiB7IC4uLnByaW1pdGl2ZSwgW25vZGVdOiBOb2RlIH07XG59LCB7fSk7XG5mdW5jdGlvbiBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQodGFyZ2V0LCBldmVudCkge1xuICBpZiAodGFyZ2V0KSBSZWFjdERPTS5mbHVzaFN5bmMoKCkgPT4gdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpKTtcbn1cbnZhciBSb290ID0gUHJpbWl0aXZlO1xuZXhwb3J0IHtcbiAgUHJpbWl0aXZlLFxuICBSb290LFxuICBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnRcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-primitive/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs":
/*!**********************************************************!*\
!*** ./node_modules/@radix-ui/react-slot/dist/index.mjs ***!
\**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Slot: () => (/* binding */ Slot),\n/* harmony export */ Slottable: () => (/* binding */ Slottable)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/slot/src/slot.tsx\n\n\n\nvar Slot = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (react__WEBPACK_IMPORTED_MODULE_0__.Children.count(newElement) > 1) return react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null);\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== react__WEBPACK_IMPORTED_MODULE_0__.Fragment) {\n props2.ref = forwardedRef ? (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.composeRefs)(forwardedRef, childrenRef) : childrenRef;\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, props2);\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) > 1 ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children });\n};\nfunction isSlottable(child) {\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2xvdC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUMrQjtBQUM0QjtBQUNJO0FBQy9ELFdBQVcsNkNBQWdCO0FBQzNCLFVBQVUseUJBQXlCO0FBQ25DLHdCQUF3QiwyQ0FBYztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSwyQ0FBYywrQkFBK0IsMkNBQWM7QUFDdkUsZUFBZSxpREFBb0I7QUFDbkMsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsMkJBQTJCLHNEQUFHLGNBQWMsMkNBQTJDLGlEQUFvQixlQUFlLCtDQUFrQiwwQ0FBMEM7QUFDdEw7QUFDQSx5QkFBeUIsc0RBQUcsY0FBYywyQ0FBMkM7QUFDckYsQ0FBQztBQUNEO0FBQ0EsZ0JBQWdCLDZDQUFnQjtBQUNoQyxVQUFVLHlCQUF5QjtBQUNuQyxNQUFNLGlEQUFvQjtBQUMxQjtBQUNBO0FBQ0EsMEJBQTBCLDJDQUFjO0FBQ3hDLGtDQUFrQyx5RUFBVztBQUM3QztBQUNBLFdBQVcsK0NBQWtCO0FBQzdCO0FBQ0EsU0FBUywyQ0FBYyx1QkFBdUIsMkNBQWM7QUFDNUQsQ0FBQztBQUNEO0FBQ0EsbUJBQW1CLFVBQVU7QUFDN0IseUJBQXlCLHNEQUFHLENBQUMsdURBQVMsSUFBSSxVQUFVO0FBQ3BEO0FBQ0E7QUFDQSxTQUFTLGlEQUFvQjtBQUM3QjtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0NBQWtDO0FBQ2xDLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0U7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3Qvc2xvdC9zcmMvc2xvdC50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcG9zZVJlZnMgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmc1wiO1xuaW1wb3J0IHsgRnJhZ21lbnQgYXMgRnJhZ21lbnQyLCBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBTbG90ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCAuLi5zbG90UHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBjaGlsZHJlbkFycmF5ID0gUmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbik7XG4gIGNvbnN0IHNsb3R0YWJsZSA9IGNoaWxkcmVuQXJyYXkuZmluZChpc1Nsb3R0YWJsZSk7XG4gIGlmIChzbG90dGFibGUpIHtcbiAgICBjb25zdCBuZXdFbGVtZW50ID0gc2xvdHRhYmxlLnByb3BzLmNoaWxkcmVuO1xuICAgIGNvbnN0IG5ld0NoaWxkcmVuID0gY2hpbGRyZW5BcnJheS5tYXAoKGNoaWxkKSA9PiB7XG4gICAgICBpZiAoY2hpbGQgPT09IHNsb3R0YWJsZSkge1xuICAgICAgICBpZiAoUmVhY3QuQ2hpbGRyZW4uY291bnQobmV3RWxlbWVudCkgPiAxKSByZXR1cm4gUmVhY3QuQ2hpbGRyZW4ub25seShudWxsKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmlzVmFsaWRFbGVtZW50KG5ld0VsZW1lbnQpID8gbmV3RWxlbWVudC5wcm9wcy5jaGlsZHJlbiA6IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goU2xvdENsb25lLCB7IC4uLnNsb3RQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYsIGNoaWxkcmVuOiBSZWFjdC5pc1ZhbGlkRWxlbWVudChuZXdFbGVtZW50KSA/IFJlYWN0LmNsb25lRWxlbWVudChuZXdFbGVtZW50LCB2b2lkIDAsIG5ld0NoaWxkcmVuKSA6IG51bGwgfSk7XG4gIH1cbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goU2xvdENsb25lLCB7IC4uLnNsb3RQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYsIGNoaWxkcmVuIH0pO1xufSk7XG5TbG90LmRpc3BsYXlOYW1lID0gXCJTbG90XCI7XG52YXIgU2xvdENsb25lID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCAuLi5zbG90UHJvcHMgfSA9IHByb3BzO1xuICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pKSB7XG4gICAgY29uc3QgY2hpbGRyZW5SZWYgPSBnZXRFbGVtZW50UmVmKGNoaWxkcmVuKTtcbiAgICBjb25zdCBwcm9wczIgPSBtZXJnZVByb3BzKHNsb3RQcm9wcywgY2hpbGRyZW4ucHJvcHMpO1xuICAgIGlmIChjaGlsZHJlbi50eXBlICE9PSBSZWFjdC5GcmFnbWVudCkge1xuICAgICAgcHJvcHMyLnJlZiA9IGZvcndhcmRlZFJlZiA/IGNvbXBvc2VSZWZzKGZvcndhcmRlZFJlZiwgY2hpbGRyZW5SZWYpIDogY2hpbGRyZW5SZWY7XG4gICAgfVxuICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHByb3BzMik7XG4gIH1cbiAgcmV0dXJuIFJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDEgPyBSZWFjdC5DaGlsZHJlbi5vbmx5KG51bGwpIDogbnVsbDtcbn0pO1xuU2xvdENsb25lLmRpc3BsYXlOYW1lID0gXCJTbG90Q2xvbmVcIjtcbnZhciBTbG90dGFibGUgPSAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KEZyYWdtZW50MiwgeyBjaGlsZHJlbiB9KTtcbn07XG5mdW5jdGlvbiBpc1Nsb3R0YWJsZShjaGlsZCkge1xuICByZXR1cm4gUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpICYmIGNoaWxkLnR5cGUgPT09IFNsb3R0YWJsZTtcbn1cbmZ1bmN0aW9uIG1lcmdlUHJvcHMoc2xvdFByb3BzLCBjaGlsZFByb3BzKSB7XG4gIGNvbnN0IG92ZXJyaWRlUHJvcHMgPSB7IC4uLmNoaWxkUHJvcHMgfTtcbiAgZm9yIChjb25zdCBwcm9wTmFtZSBpbiBjaGlsZFByb3BzKSB7XG4gICAgY29uc3Qgc2xvdFByb3BWYWx1ZSA9IHNsb3RQcm9wc1twcm9wTmFtZV07XG4gICAgY29uc3QgY2hpbGRQcm9wVmFsdWUgPSBjaGlsZFByb3BzW3Byb3BOYW1lXTtcbiAgICBjb25zdCBpc0hhbmRsZXIgPSAvXm9uW0EtWl0vLnRlc3QocHJvcE5hbWUpO1xuICAgIGlmIChpc0hhbmRsZXIpIHtcbiAgICAgIGlmIChzbG90UHJvcFZhbHVlICYmIGNoaWxkUHJvcFZhbHVlKSB7XG4gICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICBjaGlsZFByb3BWYWx1ZSguLi5hcmdzKTtcbiAgICAgICAgICBzbG90UHJvcFZhbHVlKC4uLmFyZ3MpO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChzbG90UHJvcFZhbHVlKSB7XG4gICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gc2xvdFByb3BWYWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcInN0eWxlXCIpIHtcbiAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0geyAuLi5zbG90UHJvcFZhbHVlLCAuLi5jaGlsZFByb3BWYWx1ZSB9O1xuICAgIH0gZWxzZSBpZiAocHJvcE5hbWUgPT09IFwiY2xhc3NOYW1lXCIpIHtcbiAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gW3Nsb3RQcm9wVmFsdWUsIGNoaWxkUHJvcFZhbHVlXS5maWx0ZXIoQm9vbGVhbikuam9pbihcIiBcIik7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IC4uLnNsb3RQcm9wcywgLi4ub3ZlcnJpZGVQcm9wcyB9O1xufVxuZnVuY3Rpb24gZ2V0RWxlbWVudFJlZihlbGVtZW50KSB7XG4gIGxldCBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQucHJvcHMsIFwicmVmXCIpPy5nZXQ7XG4gIGxldCBtYXlXYXJuID0gZ2V0dGVyICYmIFwiaXNSZWFjdFdhcm5pbmdcIiBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICBpZiAobWF5V2Fybikge1xuICAgIHJldHVybiBlbGVtZW50LnJlZjtcbiAgfVxuICBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQsIFwicmVmXCIpPy5nZXQ7XG4gIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gIGlmIChtYXlXYXJuKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmO1xuICB9XG4gIHJldHVybiBlbGVtZW50LnByb3BzLnJlZiB8fCBlbGVtZW50LnJlZjtcbn1cbnZhciBSb290ID0gU2xvdDtcbmV4cG9ydCB7XG4gIFJvb3QsXG4gIFNsb3QsXG4gIFNsb3R0YWJsZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-slot/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-tabs/dist/index.mjs":
/*!**********************************************************!*\
!*** ./node_modules/@radix-ui/react-tabs/dist/index.mjs ***!
\**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Content: () => (/* binding */ Content),\n/* harmony export */ List: () => (/* binding */ List),\n/* harmony export */ Root: () => (/* binding */ Root2),\n/* harmony export */ Tabs: () => (/* binding */ Tabs),\n/* harmony export */ TabsContent: () => (/* binding */ TabsContent),\n/* harmony export */ TabsList: () => (/* binding */ TabsList),\n/* harmony export */ TabsTrigger: () => (/* binding */ TabsTrigger),\n/* harmony export */ Trigger: () => (/* binding */ Trigger),\n/* harmony export */ createTabsScope: () => (/* binding */ createTabsScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-roving-focus */ \"(app-pages-browser)/./node_modules/@radix-ui/react-roving-focus/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-direction */ \"(app-pages-browser)/./node_modules/@radix-ui/react-direction/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Content,List,Root,Tabs,TabsContent,TabsList,TabsTrigger,Trigger,createTabsScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n// packages/react/tabs/src/Tabs.tsx\n\n\n\n\n\n\n\n\n\n\n\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(TABS_NAME, [\n _radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_3__.createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = (0,_radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_3__.createRovingFocusGroupScope)();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = /*#__PURE__*/ _s(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c = _s((props, forwardedRef)=>{\n _s();\n const { __scopeTabs, value: valueProp, onValueChange, defaultValue, orientation = \"horizontal\", dir, activationMode = \"automatic\", ...tabsProps } = props;\n const direction = (0,_radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_4__.useDirection)(dir);\n const [value, setValue] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_5__.useControllableState)({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TabsProvider, {\n scope: __scopeTabs,\n baseId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_6__.useId)(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__.Primitive.div, {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n })\n });\n}, \"nid3mV2mzccqbzWgysIQbRheKGE=\", false, function() {\n return [\n _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_4__.useDirection,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_5__.useControllableState,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_6__.useId\n ];\n})), \"nid3mV2mzccqbzWgysIQbRheKGE=\", false, function() {\n return [\n _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_4__.useDirection,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_5__.useControllableState,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_6__.useId\n ];\n});\n_c1 = Tabs;\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = /*#__PURE__*/ _s1(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c2 = _s1((props, forwardedRef)=>{\n _s1();\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_3__.Root, {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__.Primitive.div, {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n })\n });\n}, \"cfHyu4or5otFl074mR2f59Tyt4o=\", false, function() {\n return [\n useTabsContext,\n useRovingFocusGroupScope\n ];\n})), \"cfHyu4or5otFl074mR2f59Tyt4o=\", false, function() {\n return [\n useTabsContext,\n useRovingFocusGroupScope\n ];\n});\n_c3 = TabsList;\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = /*#__PURE__*/ _s2(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c4 = _s2((props, forwardedRef)=>{\n _s2();\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_3__.Item, {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__.Primitive.button, {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onMouseDown, (event)=>{\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onKeyDown, (event)=>{\n if ([\n \" \",\n \"Enter\"\n ].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onFocus, ()=>{\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n })\n });\n}, \"cfHyu4or5otFl074mR2f59Tyt4o=\", false, function() {\n return [\n useTabsContext,\n useRovingFocusGroupScope\n ];\n})), \"cfHyu4or5otFl074mR2f59Tyt4o=\", false, function() {\n return [\n useTabsContext,\n useRovingFocusGroupScope\n ];\n});\n_c5 = TabsTrigger;\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = /*#__PURE__*/ _s3(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c6 = _s3((props, forwardedRef)=>{\n _s3();\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(isSelected);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"TabsContent.useEffect\": ()=>{\n const rAF = requestAnimationFrame({\n \"TabsContent.useEffect.rAF\": ()=>isMountAnimationPreventedRef.current = false\n }[\"TabsContent.useEffect.rAF\"]);\n return ({\n \"TabsContent.useEffect\": ()=>cancelAnimationFrame(rAF)\n })[\"TabsContent.useEffect\"];\n }\n }[\"TabsContent.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_9__.Presence, {\n present: forceMount || isSelected,\n children: (param)=>{\n let { present } = param;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__.Primitive.div, {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n });\n }\n });\n}, \"5pMsgA+tqKL6NmsG701SW7bTmuc=\", false, function() {\n return [\n useTabsContext\n ];\n})), \"5pMsgA+tqKL6NmsG701SW7bTmuc=\", false, function() {\n return [\n useTabsContext\n ];\n});\n_c7 = TabsContent;\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return \"\".concat(baseId, \"-trigger-\").concat(value);\n}\nfunction makeContentId(baseId, value) {\n return \"\".concat(baseId, \"-content-\").concat(value);\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7;\n$RefreshReg$(_c, \"Tabs$React.forwardRef\");\n$RefreshReg$(_c1, \"Tabs\");\n$RefreshReg$(_c2, \"TabsList$React.forwardRef\");\n$RefreshReg$(_c3, \"TabsList\");\n$RefreshReg$(_c4, \"TabsTrigger$React.forwardRef\");\n$RefreshReg$(_c5, \"TabsTrigger\");\n$RefreshReg$(_c6, \"TabsContent$React.forwardRef\");\n$RefreshReg$(_c7, \"TabsContent\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdGFicy9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdUI7QUFDYztBQUNGO0FBQ1M7QUFDbkI7QUFDQztBQUNRO0FBQ0w7QUFDUTtBQUNmO0FBbUZkO0FBM0VSLElBQU0sWUFBWTtBQUdsQixJQUFNLENBQUMsbUJBQW1CLGVBQWUsSUFBSSwyRUFBa0IsQ0FBQyxXQUFXO0lBQ3pFLHFGQUEyQjtDQUM1QjtBQUNELElBQU0sMkJBQTJCLHlGQUEyQixDQUFDO0FBVzdELElBQU0sQ0FBQyxjQUFjLGNBQWMsSUFBSSxrQkFBb0MsU0FBUztBQTZCcEYsSUFBTSx3QkFBYSxzREFDakIsQ0FBQyxPQUErQjs7SUFDOUIsTUFBTSxFQUNKLGFBQ0EsT0FBTyxXQUNQLGVBQ0EsY0FDQSxjQUFjLGNBQ2QsS0FDQSxpQkFBaUIsYUFDakIsR0FBRyxXQUNMLEdBQUk7SUFDSixNQUFNLFlBQVksdUVBQVksQ0FBQyxHQUFHO0lBQ2xDLE1BQU0sQ0FBQyxPQUFPLFFBQVEsaUdBQXlCO1FBQzdDLE1BQU07UUFDTixVQUFVO1FBQ1YsYUFBYTtJQUNmLENBQUM7SUFFRCxPQUNFLHVFQUFDO1FBQ0MsT0FBTztRQUNQO1FBQ0E7UUFDQSxlQUFlO1FBQ2Y7UUFDQSxLQUFLO1FBQ0w7UUFFQSxpRkFBQyxnRUFBUyxDQUFDLEtBQVY7WUFDQyxLQUFLO1lBQ0wsb0JBQWtCO1lBQ2pCLEdBQUc7WUFDSixLQUFLO1FBQUE7SUFDUDtBQUdOOzs7Ozs7OztRQXpCb0IsbUVBQVk7UUFDSix3RkFBb0I7UUFTbEMscURBQUs7Ozs7QUFrQnJCLEtBQUssY0FBYztBQU1uQixJQUFNLGdCQUFnQjtBQU90QixJQUFNLDZCQUFpQix3REFDckIsQ0FBQyxPQUFtQzs7SUFDbEMsTUFBTSxFQUFFLGFBQWEsT0FBTyxNQUFNLEdBQUcsVUFBVSxJQUFJO0lBQ25ELE1BQU0seUJB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TTtvQkFDVCxtQkFBbUIsNkJBQTZCLFVBQVUsT0FBTztnQkFDbkU7Z0JBRUMscUJBQVc7WUFBQTs7SUFDZCxDQUVKO0FBRUo7Ozs7OztRQWxDa0I7Ozs7QUFxQ3BCLFlBQVksY0FBYztBQUkxQixTQUFTLGNBQWMsUUFBZ0IsT0FBZTtJQUNwRCxPQUFPLFVBQUcsTUFBTSxlQUFpQixPQUFMLEtBQUs7QUFDbkM7QUFFQSxTQUFTLGNBQWMsUUFBZ0IsT0FBZTtJQUNwRCxPQUFPLFVBQUcsTUFBTSxlQUFpQixPQUFMLEtBQUs7QUFDbkM7QUFFQSxJQUFNQSxRQUFPO0FBQ2IsSUFBTSxPQUFPO0FBQ2IsSUFBTSxVQUFVO0FBQ2hCLElBQU0sVUFBVSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL3NyYy9UYWJzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByYWRpeC11aS9wcmltaXRpdmUnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuaW1wb3J0IHsgY3JlYXRlUm92aW5nRm9jdXNHcm91cFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXJvdmluZy1mb2N1cyc7XG5pbXBvcnQgeyBQcmVzZW5jZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmVzZW5jZSc7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcbmltcG9ydCAqIGFzIFJvdmluZ0ZvY3VzR3JvdXAgZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXJvdmluZy1mb2N1cyc7XG5pbXBvcnQgeyB1c2VEaXJlY3Rpb24gfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZGlyZWN0aW9uJztcbmltcG9ydCB7IHVzZUNvbnRyb2xsYWJsZVN0YXRlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1jb250cm9sbGFibGUtc3RhdGUnO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtaWQnO1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUYWJzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFRBQlNfTkFNRSA9ICdUYWJzJztcblxudHlwZSBTY29wZWRQcm9wczxQPiA9IFAgJiB7IF9fc2NvcGVUYWJzPzogU2NvcGUgfTtcbmNvbnN0IFtjcmVhdGVUYWJzQ29udGV4dCwgY3JlYXRlVGFic1Njb3BlXSA9IGNyZWF0ZUNvbnRleHRTY29wZShUQUJTX05BTUUsIFtcbiAgY3JlYXRlUm92aW5nRm9jdXNHcm91cFNjb3BlLFxuXSk7XG5jb25zdCB1c2VSb3ZpbmdGb2N1c0dyb3VwU2NvcGUgPSBjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwU2NvcGUoKTtcblxudHlwZSBUYWJzQ29udGV4dFZhbHVlID0ge1xuICBiYXNlSWQ6IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIG9uVmFsdWVDaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICBvcmllbnRhdGlvbj86IFRhYnNQcm9wc1snb3JpZW50YXRpb24nXTtcbiAgZGlyPzogVGFic1Byb3BzWydkaXInXTtcbiAgYWN0aXZhdGlvbk1vZGU/OiBUYWJzUHJvcHNbJ2FjdGl2YXRpb25Nb2RlJ107XG59O1xuXG5jb25zdCBbVGFic1Byb3ZpZGVyLCB1c2VUYWJzQ29udGV4dF0gPSBjcmVhdGVUYWJzQ29udGV4dDxUYWJzQ29udGV4dFZhbHVlPihUQUJTX05BTUUpO1xuXG50eXBlIFRhYnNFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG50eXBlIFJvdmluZ0ZvY3VzR3JvdXBQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUm92aW5nRm9jdXNHcm91cC5Sb290PjtcbnR5cGUgUHJpbWl0aXZlRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFRhYnNQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHtcbiAgLyoqIFRoZSB2YWx1ZSBmb3IgdGhlIHNlbGVjdGVkIHRhYiwgaWYgY29udHJvbGxlZCAqL1xuICB2YWx1ZT86IHN0cmluZztcbiAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgdGFiIHRvIHNlbGVjdCBieSBkZWZhdWx0LCBpZiB1bmNvbnRyb2xsZWQgKi9cbiAgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuICAvKiogQSBmdW5jdGlvbiBjYWxsZWQgd2hlbiBhIG5ldyB0YWIgaXMgc2VsZWN0ZWQgKi9cbiAgb25WYWx1ZUNoYW5nZT86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICAvKipcbiAgICogVGhlIG9yaWVudGF0aW9uIHRoZSB0YWJzIGFyZSBsYXllZCBvdXQuXG4gICAqIE1haW5seSBzbyBhcnJvdyBuYXZpZ2F0aW9uIGlzIGRvbmUgYWNjb3JkaW5nbHkgKGxlZnQgJiByaWdodCB2cy4gdXAgJiBkb3duKVxuICAgKiBAZGVmYXVsdFZhbHVlIGhvcml6b250YWxcbiAgICovXG4gIG9yaWVudGF0aW9uPzogUm92aW5nRm9jdXNHcm91cFByb3BzWydvcmllbnRhdGlvbiddO1xuICAvKipcbiAgICogVGhlIGRpcmVjdGlvbiBvZiBuYXZpZ2F0aW9uIGJldHdlZW4gdG9vbGJhciBpdGVtcy5cbiAgICovXG4gIGRpcj86IFJvdmluZ0ZvY3VzR3JvdXBQcm9wc1snZGlyJ107XG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgdGFiIGlzIGFjdGl2YXRlZCBhdXRvbWF0aWNhbGx5IG9yIG1hbnVhbGx5LlxuICAgKiBAZGVmYXVsdFZhbHVlIGF1dG9tYXRpY1xuICAgKiAqL1xuICBhY3RpdmF0aW9uTW9kZT86ICdhdXRvbWF0aWMnIHwgJ21hbnVhbCc7XG59XG5cbmNvbnN0IFRhYnMgPSBSZWFjdC5mb3J3YXJkUmVmPFRhYnNFbGVtZW50LCBUYWJzUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFRhYnNQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIF9fc2NvcGVUYWJzLFxuICAgICAgdmFsdWU6IHZhbHVlUHJvcCxcbiAgICAgIG9uVmFsdWVDaGFuZ2UsXG4gICAgICBkZWZhdWx0VmFsdWUsXG4gICAgICBvcmllbnRhdGlvbiA9ICdob3Jpem9udGFsJyxcbiAgICAgIGRpcixcbiAgICAgIGFjdGl2YXRpb25Nb2RlID0gJ2F1dG9tYXRpYycsXG4gICAgICAuLi50YWJzUHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGlyZWN0aW9uID0gdXNlRGlyZWN0aW9uKGRpcik7XG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgICBwcm9wOiB2YWx1ZVByb3AsXG4gICAgICBvbkNoYW5nZTogb25WYWx1ZUNoYW5nZSxcbiAgICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0VmFsdWUsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFRhYnNQcm92aWRlclxuICAgICAgICBzY29wZT17X19zY29wZVRhYnN9XG4gICAgICAgIGJhc2VJZD17dXNlSWQoKX1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICBvblZhbHVlQ2hhbmdlPXtzZXRWYWx1ZX1cbiAgICAgICAgb3JpZW50YXRpb249e29yaWVudGF0aW9ufVxuICAgICAgICBkaXI9e2RpcmVjdGlvbn1cbiAgICAgICAgYWN0aXZhdGlvbk1vZGU9e2FjdGl2YXRpb25Nb2RlfVxuICAgICAgPlxuICAgICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICAgIGRpcj17ZGlyZWN0aW9ufVxuICAgICAgICAgIGRhdGEtb3JpZW50YXRpb249e29yaWVudGF0aW9ufVxuICAgICAgICAgIHsuLi50YWJzUHJvcHN9XG4gICAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgIC8+XG4gICAgICA8L1RhYnNQcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG5UYWJzLmRpc3BsYXlOYW1lID0gVEFCU19OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUYWJzTGlzdFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBUQUJfTElTVF9OQU1FID0gJ1RhYnNMaXN0JztcblxudHlwZSBUYWJzTGlzdEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBUYWJzTGlzdFByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICBsb29wPzogUm92aW5nRm9jdXNHcm91cFByb3BzWydsb29wJ107XG59XG5cbmNvbnN0IFRhYnNMaXN0ID0gUmVhY3QuZm9yd2FyZFJlZjxUYWJzTGlzdEVsZW1lbnQsIFRhYnNMaXN0UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFRhYnNMaXN0UHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVUYWJzLCBsb29wID0gdHJ1ZSwgLi4ubGlzdFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlVGFic0NvbnRleHQoVEFCX0xJU1RfTkFNRSwgX19zY29wZVRhYnMpO1xuICAgIGNvbnN0IHJvdmluZ0ZvY3VzR3JvdXBTY29wZSA9IHVzZVJvdmluZ0ZvY3VzR3JvdXBTY29wZShfX3Njb3BlVGFicyk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxSb3ZpbmdGb2N1c0dyb3VwLlJvb3RcbiAgICAgICAgYXNDaGlsZFxuICAgICAgICB7Li4ucm92aW5nRm9jdXNHcm91cFNjb3BlfVxuICAgICAgICBvcmllbnRhdGlvbj17Y29udGV4dC5vcmllbnRhdGlvbn1cbiAgICAgICAgZGlyPXtjb250ZXh0LmRpcn1cbiAgICAgICAgbG9vcD17bG9vcH1cbiAgICAgID5cbiAgICAgICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgICAgICByb2xlPVwidGFibGlzdFwiXG4gICAgICAgICAgYXJpYS1vcmllbnRhdGlvbj17Y29udGV4dC5vcmllbnRhdGlvbn1cbiAgICAgICAgICB7Li4ubGlzdFByb3BzfVxuICAgICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICAvPlxuICAgICAgPC9Sb3ZpbmdGb2N1c0dyb3VwLlJvb3Q+XG4gICAgKTtcbiAgfVxuKTtcblxuVGFic0xpc3QuZGlzcGxheU5hbWUgPSBUQUJfTElTVF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUYWJzVHJpZ2dlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBUUklHR0VSX05BTUUgPSAnVGFic1RyaWdnZXInO1xuXG50eXBlIFRhYnNUcmlnZ2VyRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5idXR0b24+O1xudHlwZSBQcmltaXRpdmVCdXR0b25Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmJ1dHRvbj47XG5pbnRlcmZhY2UgVGFic1RyaWdnZXJQcm9wcyBleHRlbmRzIFByaW1pdGl2ZUJ1dHRvblByb3BzIHtcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuY29uc3QgVGFic1RyaWdnZXIgPSBSZWFjdC5mb3J3YXJkUmVmPFRhYnNUcmlnZ2VyRWxlbWVudCwgVGFic1RyaWdnZXJQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8VGFic1RyaWdnZXJQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVRhYnMsIHZhbHVlLCBkaXNhYmxlZCA9IGZhbHNlLCAuLi50cmlnZ2VyUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VUYWJzQ29udGV4dChUUklHR0VSX05BTUUsIF9fc2NvcGVUYWJzKTtcbiAgICBjb25zdCByb3ZpbmdGb2N1c0dyb3VwU2NvcGUgPSB1c2VSb3ZpbmdGb2N1c0dyb3VwU2NvcGUoX19zY29wZVRhYnMpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IG1ha2VUcmlnZ2VySWQoY29udGV4dC5iYXNlSWQsIHZhbHVlKTtcbiAgICBjb25zdCBjb250ZW50SWQgPSBtYWtlQ29udGVudElkKGNvbnRleHQuYmFzZUlkLCB2YWx1ZSk7XG4gICAgY29uc3QgaXNTZWxlY3RlZCA9IHZhbHVlID09PSBjb250ZXh0LnZhbHVlO1xuICAgIHJldHVybiAoXG4gICAgICA8Um92aW5nRm9jdXNHcm91cC5JdGVtXG4gICAgICAgIGFzQ2hpbGRcbiAgICAgICAgey4uLnJvdmluZ0ZvY3VzR3JvdXBTY29wZX1cbiAgICAgICAgZm9jdXNhYmxlPXshZGlzYWJsZWR9XG4gICAgICAgIGFjdGl2ZT17aXNTZWxlY3RlZH1cbiAgICAgID5cbiAgICAgICAgPFByaW1pdGl2ZS5idXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtpc1NlbGVjdGVkfVxuICAgICAgICAgIGFyaWEtY29udHJvbHM9e2NvbnRlbnRJZH1cbiAgICAgICAgICBkYXRhLXN0YXRlPXtpc1NlbGVjdGVkID8gJ2FjdGl2ZScgOiAnaW5hY3RpdmUnfVxuICAgICAgICAgIGRhdGEtZGlzYWJsZWQ9e2Rpc2FibGVkID8gJycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGlkPXt0cmlnZ2VySWR9XG4gICAgICAgICAgey4uLnRyaWdnZXJQcm9wc31cbiAgICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgICBvbk1vdXNlRG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Nb3VzZURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgLy8gb25seSBjYWxsIGhhbmRsZXIgaWYgaXQncyB0aGUgbGVmdCBidXR0b24gKG1vdXNlZG93biBnZXRzIHRyaWdnZXJlZCBieSBhbGwgbW91c2UgYnV0dG9ucylcbiAgICAgICAgICAgIC8vIGJ1dCBub3Qgd2hlbiB0aGUgY29udHJvbCBrZXkgaXMgcHJlc3NlZCAoYXZvaWRpbmcgTWFjT1MgcmlnaHQgY2xpY2spXG4gICAgICAgICAgICBpZiAoIWRpc2FibGVkICYmIGV2ZW50LmJ1dHRvbiA9PT0gMCAmJiBldmVudC5jdHJsS2V5ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICBjb250ZXh0Lm9uVmFsdWVDaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gcHJldmVudCBmb2N1cyB0byBhdm9pZCBhY2NpZGVudGFsIGFjdGl2YXRpb25cbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KX1cbiAgICAgICAgICBvbktleURvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoWycgJywgJ0VudGVyJ10uaW5jbHVkZXMoZXZlbnQua2V5KSkgY29udGV4dC5vblZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBvbkZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkZvY3VzLCAoKSA9PiB7XG4gICAgICAgICAgICAvLyBoYW5kbGUgXCJhdXRvbWF0aWNcIiBhY3RpdmF0aW9uIGlmIG5lY2Vzc2FyeVxuICAgICAgICAgICAgLy8gaWUuIGFjdGl2YXRlIHRhYiBmb2xsb3dpbmcgZm9jdXNcbiAgICAgICAgICAgIGNvbnN0IGlzQXV0b21hdGljQWN0aXZhdGlvbiA9IGNvbnRleHQuYWN0aXZhdGlvbk1vZGUgIT09ICdtYW51YWwnO1xuICAgICAgICAgICAgaWYgKCFpc1NlbGVjdGVkICYmICFkaXNhYmxlZCAmJiBpc0F1dG9tYXRpY0FjdGl2YXRpb24pIHtcbiAgICAgICAgICAgICAgY29udGV4dC5vblZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KX1cbiAgICAgICAgLz5cbiAgICAgIDwvUm92aW5nRm9jdXNHcm91cC5JdGVtPlxuICAgICk7XG4gIH1cbik7XG5cblRhYnNUcmlnZ2VyLmRpc3BsYXlOYW1lID0gVFJJR0dFUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUYWJzQ29udGVudFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDT05URU5UX05BTUUgPSAnVGFic0NvbnRlbnQnO1xuXG50eXBlIFRhYnNDb250ZW50RWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFRhYnNDb250ZW50UHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVEaXZQcm9wcyB7XG4gIHZhbHVlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZm9yY2UgbW91bnRpbmcgd2hlbiBtb3JlIGNvbnRyb2wgaXMgbmVlZGVkLiBVc2VmdWwgd2hlblxuICAgKiBjb250cm9sbGluZyBhbmltYXRpb24gd2l0aCBSZWFjdCBhbmltYXRpb24gbGlicmFyaWVzLlxuICAgKi9cbiAgZm9yY2VNb3VudD86IHRydWU7XG59XG5cbmNvbnN0IFRhYnNDb250ZW50ID0gUmVhY3QuZm9yd2FyZFJlZjxUYWJzQ29udGVudEVsZW1lbnQsIFRhYnNDb250ZW50UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFRhYnNDb250ZW50UHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVUYWJzLCB2YWx1ZSwgZm9yY2VNb3VudCwgY2hpbGRyZW4sIC4uLmNvbnRlbnRQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVRhYnNDb250ZXh0KENPTlRFTlRfTkFNRSwgX19zY29wZVRhYnMpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IG1ha2VUcmlnZ2VySWQoY29udGV4dC5iYXNlSWQsIHZhbHVlKTtcbiAgICBjb25zdCBjb250ZW50SWQgPSBtYWtlQ29udGVudElkKGNvbnRleHQuYmFzZUlkLCB2YWx1ZSk7XG4gICAgY29uc3QgaXNTZWxlY3RlZCA9IHZhbHVlID09PSBjb250ZXh0LnZhbHVlO1xuICAgIGNvbnN0IGlzTW91bnRBbmltYXRpb25QcmV2ZW50ZWRSZWYgPSBSZWFjdC51c2VSZWYoaXNTZWxlY3RlZCk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgckFGID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IChpc01vdW50QW5pbWF0aW9uUHJldmVudGVkUmVmLmN1cnJlbnQgPSBmYWxzZSkpO1xuICAgICAgcmV0dXJuICgpID0+IGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJBRik7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmVzZW5jZSBwcmVzZW50PXtmb3JjZU1vdW50IHx8IGlzU2VsZWN0ZWR9PlxuICAgICAgICB7KHsgcHJlc2VudCB9KSA9PiAoXG4gICAgICAgICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgICAgICAgIGRhdGEtc3RhdGU9e2lzU2VsZWN0ZWQgPyAnYWN0aXZlJyA6ICdpbmFjdGl2ZSd9XG4gICAgICAgICAgICBkYXRhLW9yaWVudGF0aW9uPXtjb250ZXh0Lm9yaWVudGF0aW9ufVxuICAgICAgICAgICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT17dHJpZ2dlcklkfVxuICAgICAgICAgICAgaGlkZGVuPXshcHJlc2VudH1cbiAgICAgICAgICAgIGlkPXtjb250ZW50SWR9XG4gICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgIHsuLi5jb250ZW50UHJvcHN9XG4gICAgICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIC4uLnByb3BzLnN0eWxlLFxuICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbjogaXNNb3VudEFuaW1hdGlvblByZXZlbnRlZFJlZi5jdXJyZW50ID8gJzBzJyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3ByZXNlbnQgJiYgY2hpbGRyZW59XG4gICAgICAgICAgPC9QcmltaXRpdmUuZGl2PlxuICAgICAgICApfVxuICAgICAgPC9QcmVzZW5jZT5cbiAgICApO1xuICB9XG4pO1xuXG5UYWJzQ29udGVudC5kaXNwbGF5TmFtZSA9IENPTlRFTlRfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5mdW5jdGlvbiBtYWtlVHJpZ2dlcklkKGJhc2VJZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gIHJldHVybiBgJHtiYXNlSWR9LXRyaWdnZXItJHt2YWx1ZX1gO1xufVxuXG5mdW5jdGlvbiBtYWtlQ29udGVudElkKGJhc2VJZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gIHJldHVybiBgJHtiYXNlSWR9LWNvbnRlbnQtJHt2YWx1ZX1gO1xufVxuXG5jb25zdCBSb290ID0gVGFicztcbmNvbnN0IExpc3QgPSBUYWJzTGlzdDtcbmNvbnN0IFRyaWdnZXIgPSBUYWJzVHJpZ2dlcjtcbmNvbnN0IENvbnRlbnQgPSBUYWJzQ29udGVudDtcblxuZXhwb3J0IHtcbiAgY3JlYXRlVGFic1Njb3BlLFxuICAvL1xuICBUYWJzLFxuICBUYWJzTGlzdCxcbiAgVGFic1RyaWdnZXIsXG4gIFRhYnNDb250ZW50LFxuICAvL1xuICBSb290LFxuICBMaXN0LFxuICBUcmlnZ2VyLFxuICBDb250ZW50LFxufTtcbmV4cG9ydCB0eXBlIHsgVGFic1Byb3BzLCBUYWJzTGlzdFByb3BzLCBUYWJzVHJpZ2dlclByb3BzLCBUYWJzQ29udGVudFByb3BzIH07XG4iXSwibmFtZXMiOlsiUm9vdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-tabs/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-tooltip/dist/index.mjs":
/*!*************************************************************!*\
!*** ./node_modules/@radix-ui/react-tooltip/dist/index.mjs ***!
\*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Arrow: () => (/* binding */ Arrow2),\n/* harmony export */ Content: () => (/* binding */ Content2),\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ Provider: () => (/* binding */ Provider),\n/* harmony export */ Root: () => (/* binding */ Root3),\n/* harmony export */ Tooltip: () => (/* binding */ Tooltip),\n/* harmony export */ TooltipArrow: () => (/* binding */ TooltipArrow),\n/* harmony export */ TooltipContent: () => (/* binding */ TooltipContent),\n/* harmony export */ TooltipPortal: () => (/* binding */ TooltipPortal),\n/* harmony export */ TooltipProvider: () => (/* binding */ TooltipProvider),\n/* harmony export */ TooltipTrigger: () => (/* binding */ TooltipTrigger),\n/* harmony export */ Trigger: () => (/* binding */ Trigger),\n/* harmony export */ createTooltipScope: () => (/* binding */ createTooltipScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(app-pages-browser)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @radix-ui/react-dismissable-layer */ \"(app-pages-browser)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-id */ \"(app-pages-browser)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-popper */ \"(app-pages-browser)/./node_modules/@radix-ui/react-popper/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-portal */ \"(app-pages-browser)/./node_modules/@radix-ui/react-portal/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(app-pages-browser)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(app-pages-browser)/./node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_visually_hidden__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @radix-ui/react-visually-hidden */ \"(app-pages-browser)/./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Arrow,Content,Portal,Provider,Root,Tooltip,TooltipArrow,TooltipContent,TooltipPortal,TooltipProvider,TooltipTrigger,Trigger,createTooltipScope auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$(), _s7 = $RefreshSig$();\n// packages/react/tooltip/src/Tooltip.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar [createTooltipContext, createTooltipScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(\"Tooltip\", [\n _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.createPopperScope\n]);\nvar usePopperScope = (0,_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.createPopperScope)();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props)=>{\n _s();\n const { __scopeTooltip, delayDuration = DEFAULT_DELAY_DURATION, skipDelayDuration = 300, disableHoverableContent = false, children } = props;\n const [isOpenDelayed, setIsOpenDelayed] = react__WEBPACK_IMPORTED_MODULE_0__.useState(true);\n const isPointerInTransitRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const skipDelayTimerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"TooltipProvider.useEffect\": ()=>{\n const skipDelayTimer = skipDelayTimerRef.current;\n return ({\n \"TooltipProvider.useEffect\": ()=>window.clearTimeout(skipDelayTimer)\n })[\"TooltipProvider.useEffect\"];\n }\n }[\"TooltipProvider.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TooltipProviderContextProvider, {\n scope: __scopeTooltip,\n isOpenDelayed,\n delayDuration,\n onOpen: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"TooltipProvider.useCallback\": ()=>{\n window.clearTimeout(skipDelayTimerRef.current);\n setIsOpenDelayed(false);\n }\n }[\"TooltipProvider.useCallback\"], []),\n onClose: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"TooltipProvider.useCallback\": ()=>{\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout({\n \"TooltipProvider.useCallback\": ()=>setIsOpenDelayed(true)\n }[\"TooltipProvider.useCallback\"], skipDelayDuration);\n }\n }[\"TooltipProvider.useCallback\"], [\n skipDelayDuration\n ]),\n isPointerInTransitRef,\n onPointerInTransitChange: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"TooltipProvider.useCallback\": (inTransit)=>{\n isPointerInTransitRef.current = inTransit;\n }\n }[\"TooltipProvider.useCallback\"], []),\n disableHoverableContent,\n children\n });\n};\n_s(TooltipProvider, \"7CC5C5/6eLGaHqZaMJKZGYCw0s8=\");\n_c = TooltipProvider;\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props)=>{\n _s1();\n const { __scopeTooltip, children, open: openProp, defaultOpen = false, onOpenChange, disableHoverableContent: disableHoverableContentProp, delayDuration: delayDurationProp } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const contentId = (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)();\n const openTimerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n const disableHoverableContent = disableHoverableContentProp !== null && disableHoverableContentProp !== void 0 ? disableHoverableContentProp : providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp !== null && delayDurationProp !== void 0 ? delayDurationProp : providerContext.delayDuration;\n const wasOpenDelayedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_5__.useControllableState)({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: {\n \"Tooltip.useControllableState\": (open2)=>{\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(open2);\n }\n }[\"Tooltip.useControllableState\"]\n });\n const stateAttribute = react__WEBPACK_IMPORTED_MODULE_0__.useMemo({\n \"Tooltip.useMemo[stateAttribute]\": ()=>{\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }\n }[\"Tooltip.useMemo[stateAttribute]\"], [\n open\n ]);\n const handleOpen = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Tooltip.useCallback[handleOpen]\": ()=>{\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }\n }[\"Tooltip.useCallback[handleOpen]\"], [\n setOpen\n ]);\n const handleClose = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Tooltip.useCallback[handleClose]\": ()=>{\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }\n }[\"Tooltip.useCallback[handleClose]\"], [\n setOpen\n ]);\n const handleDelayedOpen = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Tooltip.useCallback[handleDelayedOpen]\": ()=>{\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout({\n \"Tooltip.useCallback[handleDelayedOpen]\": ()=>{\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }\n }[\"Tooltip.useCallback[handleDelayedOpen]\"], delayDuration);\n }\n }[\"Tooltip.useCallback[handleDelayedOpen]\"], [\n delayDuration,\n setOpen\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"Tooltip.useEffect\": ()=>{\n return ({\n \"Tooltip.useEffect\": ()=>{\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }\n })[\"Tooltip.useEffect\"];\n }\n }[\"Tooltip.useEffect\"], []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ...popperScope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TooltipContextProvider, {\n scope: __scopeTooltip,\n contentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Tooltip.useCallback\": ()=>{\n if (providerContext.isOpenDelayed) handleDelayedOpen();\n else handleOpen();\n }\n }[\"Tooltip.useCallback\"], [\n providerContext.isOpenDelayed,\n handleDelayedOpen,\n handleOpen\n ]),\n onTriggerLeave: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"Tooltip.useCallback\": ()=>{\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }\n }[\"Tooltip.useCallback\"], [\n handleClose,\n disableHoverableContent\n ]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n })\n });\n};\n_s1(Tooltip, \"fAtXQJdpHqucxKED0AjgEVlojd0=\", false, function() {\n return [\n useTooltipProviderContext,\n usePopperScope,\n _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId,\n _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_5__.useControllableState\n ];\n});\n_c1 = Tooltip;\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = /*#__PURE__*/ _s2(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c2 = _s2((props, forwardedRef)=>{\n _s2();\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__.useComposedRefs)(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const hasPointerMoveOpenedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const handlePointerUp = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"TooltipTrigger.useCallback[handlePointerUp]\": ()=>isPointerDownRef.current = false\n }[\"TooltipTrigger.useCallback[handlePointerUp]\"], []);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"TooltipTrigger.useEffect\": ()=>{\n return ({\n \"TooltipTrigger.useEffect\": ()=>document.removeEventListener(\"pointerup\", handlePointerUp)\n })[\"TooltipTrigger.useEffect\"];\n }\n }[\"TooltipTrigger.useEffect\"], [\n handlePointerUp\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.Anchor, {\n asChild: true,\n ...popperScope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__.Primitive.button, {\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onPointerMove, (event)=>{\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onPointerLeave, ()=>{\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onPointerDown, ()=>{\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, {\n once: true\n });\n }),\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onFocus, ()=>{\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onBlur, context.onClose),\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onClick, context.onClose)\n })\n });\n}, \"Z/k0w2G2HHwGfA8LYHc6RNJM0dc=\", false, function() {\n return [\n useTooltipContext,\n useTooltipProviderContext,\n usePopperScope,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__.useComposedRefs\n ];\n})), \"Z/k0w2G2HHwGfA8LYHc6RNJM0dc=\", false, function() {\n return [\n useTooltipContext,\n useTooltipProviderContext,\n usePopperScope,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__.useComposedRefs\n ];\n});\n_c3 = TooltipTrigger;\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = (props)=>{\n _s3();\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PortalProvider, {\n scope: __scopeTooltip,\n forceMount,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_9__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_10__.Portal, {\n asChild: true,\n container,\n children\n })\n })\n });\n};\n_s3(TooltipPortal, \"xB1jeapIst5f8c7+wNiLkfdUmBA=\", false, function() {\n return [\n useTooltipContext\n ];\n});\n_c4 = TooltipPortal;\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = /*#__PURE__*/ _s4(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c5 = _s4((props, forwardedRef)=>{\n _s4();\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_9__.Presence, {\n present: forceMount || context.open,\n children: context.disableHoverableContent ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TooltipContentImpl, {\n side,\n ...contentProps,\n ref: forwardedRef\n }) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TooltipContentHoverable, {\n side,\n ...contentProps,\n ref: forwardedRef\n })\n });\n}, \"Z69swUFObjAgmys2CDvyqDb1Nbw=\", false, function() {\n return [\n usePortalContext,\n useTooltipContext\n ];\n})), \"Z69swUFObjAgmys2CDvyqDb1Nbw=\", false, function() {\n return [\n usePortalContext,\n useTooltipContext\n ];\n});\n_c6 = TooltipContent;\nvar TooltipContentHoverable = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s5((props, forwardedRef)=>{\n _s5();\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__.useComposedRefs)(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"TooltipContentHoverable.useCallback[handleRemoveGraceArea]\": ()=>{\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }\n }[\"TooltipContentHoverable.useCallback[handleRemoveGraceArea]\"], [\n onPointerInTransitChange\n ]);\n const handleCreateGraceArea = react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"TooltipContentHoverable.useCallback[handleCreateGraceArea]\": (event, hoverTarget)=>{\n const currentTarget = event.currentTarget;\n const exitPoint = {\n x: event.clientX,\n y: event.clientY\n };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([\n ...paddedExitPoints,\n ...hoverTargetPoints\n ]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n }\n }[\"TooltipContentHoverable.useCallback[handleCreateGraceArea]\"], [\n onPointerInTransitChange\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"TooltipContentHoverable.useEffect\": ()=>{\n return ({\n \"TooltipContentHoverable.useEffect\": ()=>handleRemoveGraceArea()\n })[\"TooltipContentHoverable.useEffect\"];\n }\n }[\"TooltipContentHoverable.useEffect\"], [\n handleRemoveGraceArea\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"TooltipContentHoverable.useEffect\": ()=>{\n if (trigger && content) {\n const handleTriggerLeave = {\n \"TooltipContentHoverable.useEffect.handleTriggerLeave\": (event)=>handleCreateGraceArea(event, content)\n }[\"TooltipContentHoverable.useEffect.handleTriggerLeave\"];\n const handleContentLeave = {\n \"TooltipContentHoverable.useEffect.handleContentLeave\": (event)=>handleCreateGraceArea(event, trigger)\n }[\"TooltipContentHoverable.useEffect.handleContentLeave\"];\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return ({\n \"TooltipContentHoverable.useEffect\": ()=>{\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n }\n })[\"TooltipContentHoverable.useEffect\"];\n }\n }\n }[\"TooltipContentHoverable.useEffect\"], [\n trigger,\n content,\n handleCreateGraceArea,\n handleRemoveGraceArea\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"TooltipContentHoverable.useEffect\": ()=>{\n if (pointerGraceArea) {\n const handleTrackPointerGrace = {\n \"TooltipContentHoverable.useEffect.handleTrackPointerGrace\": (event)=>{\n const target = event.target;\n const pointerPosition = {\n x: event.clientX,\n y: event.clientY\n };\n const hasEnteredTarget = (trigger === null || trigger === void 0 ? void 0 : trigger.contains(target)) || (content === null || content === void 0 ? void 0 : content.contains(target));\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n }\n }[\"TooltipContentHoverable.useEffect.handleTrackPointerGrace\"];\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return ({\n \"TooltipContentHoverable.useEffect\": ()=>document.removeEventListener(\"pointermove\", handleTrackPointerGrace)\n })[\"TooltipContentHoverable.useEffect\"];\n }\n }\n }[\"TooltipContentHoverable.useEffect\"], [\n trigger,\n content,\n pointerGraceArea,\n onClose,\n handleRemoveGraceArea\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TooltipContentImpl, {\n ...props,\n ref: composedRefs\n });\n}, \"gHff4ZZbXA0WT6udB7OmagibGvA=\", false, function() {\n return [\n useTooltipContext,\n useTooltipProviderContext,\n _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_6__.useComposedRefs\n ];\n}));\n_c7 = TooltipContentHoverable;\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, {\n isInside: false\n});\nvar TooltipContentImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_s6((props, forwardedRef)=>{\n _s6();\n const { __scopeTooltip, children, \"aria-label\": ariaLabel, onEscapeKeyDown, onPointerDownOutside, ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"TooltipContentImpl.useEffect\": ()=>{\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return ({\n \"TooltipContentImpl.useEffect\": ()=>document.removeEventListener(TOOLTIP_OPEN, onClose)\n })[\"TooltipContentImpl.useEffect\"];\n }\n }[\"TooltipContentImpl.useEffect\"], [\n onClose\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"TooltipContentImpl.useEffect\": ()=>{\n if (context.trigger) {\n const handleScroll = {\n \"TooltipContentImpl.useEffect.handleScroll\": (event)=>{\n const target = event.target;\n if (target === null || target === void 0 ? void 0 : target.contains(context.trigger)) onClose();\n }\n }[\"TooltipContentImpl.useEffect.handleScroll\"];\n window.addEventListener(\"scroll\", handleScroll, {\n capture: true\n });\n return ({\n \"TooltipContentImpl.useEffect\": ()=>window.removeEventListener(\"scroll\", handleScroll, {\n capture: true\n })\n })[\"TooltipContentImpl.useEffect\"];\n }\n }\n }[\"TooltipContentImpl.useEffect\"], [\n context.trigger,\n onClose\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_11__.DismissableLayer, {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event)=>event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.Content, {\n \"data-state\": context.stateAttribute,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_12__.Slottable, {\n children\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(VisuallyHiddenContentContextProvider, {\n scope: __scopeTooltip,\n isInside: true,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_visually_hidden__WEBPACK_IMPORTED_MODULE_13__.Root, {\n id: context.contentId,\n role: \"tooltip\",\n children: ariaLabel || children\n })\n })\n ]\n })\n });\n}, \"i9WYRDazLRQfWd3Hvi+XZwDDx40=\", false, function() {\n return [\n useTooltipContext,\n usePopperScope\n ];\n}));\n_c8 = TooltipContentImpl;\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = /*#__PURE__*/ _s7(react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(_c9 = _s7((props, forwardedRef)=>{\n _s7();\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(ARROW_NAME, __scopeTooltip);\n return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_3__.Arrow, {\n ...popperScope,\n ...arrowProps,\n ref: forwardedRef\n });\n}, \"PhtHwCUYJI5ZCq3IiyAmXd8x79Y=\", false, function() {\n return [\n usePopperScope,\n useVisuallyHiddenContentContext\n ];\n})), \"PhtHwCUYJI5ZCq3IiyAmXd8x79Y=\", false, function() {\n return [\n usePopperScope,\n useVisuallyHiddenContentContext\n ];\n});\n_c10 = TooltipArrow;\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch(Math.min(top, bottom, right, left)){\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide) {\n let padding = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 5;\n const paddedExitPoints = [];\n switch(exitSide){\n case \"top\":\n paddedExitPoints.push({\n x: exitPoint.x - padding,\n y: exitPoint.y + padding\n }, {\n x: exitPoint.x + padding,\n y: exitPoint.y + padding\n });\n break;\n case \"bottom\":\n paddedExitPoints.push({\n x: exitPoint.x - padding,\n y: exitPoint.y - padding\n }, {\n x: exitPoint.x + padding,\n y: exitPoint.y - padding\n });\n break;\n case \"left\":\n paddedExitPoints.push({\n x: exitPoint.x + padding,\n y: exitPoint.y - padding\n }, {\n x: exitPoint.x + padding,\n y: exitPoint.y + padding\n });\n break;\n case \"right\":\n paddedExitPoints.push({\n x: exitPoint.x - padding,\n y: exitPoint.y - padding\n }, {\n x: exitPoint.x - padding,\n y: exitPoint.y + padding\n });\n break;\n }\n return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n {\n x: left,\n y: top\n },\n {\n x: right,\n y: top\n },\n {\n x: right,\n y: bottom\n },\n {\n x: left,\n y: bottom\n }\n ];\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for(let i = 0, j = polygon.length - 1; i < polygon.length; j = i++){\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b)=>{\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for(let i = 0; i < points.length; i++){\n const p = points[i];\n while(upperHull.length >= 2){\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for(let i = points.length - 1; i >= 0; i--){\n const p = points[i];\n while(lowerHull.length >= 2){\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\n //# sourceMappingURL=index.mjs.map\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10;\n$RefreshReg$(_c, \"TooltipProvider\");\n$RefreshReg$(_c1, \"Tooltip\");\n$RefreshReg$(_c2, \"TooltipTrigger$React.forwardRef\");\n$RefreshReg$(_c3, \"TooltipTrigger\");\n$RefreshReg$(_c4, \"TooltipPortal\");\n$RefreshReg$(_c5, \"TooltipContent$React.forwardRef\");\n$RefreshReg$(_c6, \"TooltipContent\");\n$RefreshReg$(_c7, \"TooltipContentHoverable\");\n$RefreshReg$(_c8, \"TooltipContentImpl\");\n$RefreshReg$(_c9, \"TooltipArrow$React.forwardRef\");\n$RefreshReg$(_c10, \"TooltipArrow\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdG9vbHRpcC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ0w7QUFDRztBQUNGO0FBQ1g7QUFDVztBQUNDO0FBQ1E7QUFDakI7QUFDQztBQUNBO0FBQ1c7QUFDSTtBQXNFckM7QUFqRUosSUFBTSxDQUFDLHNCQUFzQixrQkFBa0IsSUFBSSwyRUFBa0IsQ0FBQyxXQUFXO0lBQy9FLHFFQUFpQjtDQUNsQjtBQUNELElBQU0saUJBQWlCLHlFQUFpQixDQUFDO0FBTXpDLElBQU0sZ0JBQWdCO0FBQ3RCLElBQU0seUJBQXlCO0FBQy9CLElBQU0sZUFBZTtBQVlyQixJQUFNLENBQUMsZ0NBQWdDLHlCQUF5QixJQUM5RCxxQkFBa0QsYUFBYTtBQXFCakUsc0JBQXdELENBQ3REOztJQUVBLE1BQU0sRUFDSixnQkFDQSxnQkFBZ0Isd0JBQ2hCLG9CQUFvQixLQUNwQiwwQkFBMEIsT0FDMUIsVUFDRixHQUFJO0lBQ0osTUFBTSxDQUFDLGVBQWUsZ0JBQWdCLElBQVUsNENBQVMsSUFBSTtJQUM3RCxNQUFNLHdCQUE4QiwwQ0FBTyxLQUFLO0lBQ2hELE1BQU0sb0JBQTBCLDBDQUFPLENBQUM7SUFFbEM7cUNBQVU7WUFDZCxNQUFNLGlCQUFpQixrQkFBa0I7WUFDekM7NkNBQU8sSUFBTSxPQUFPLGFBQWEsY0FBYzs7UUFDakQ7b0NBQUcsQ0FBQyxDQUFDO0lBRUwsT0FDRSx1RUFBQztRQUNDLE9BQU87UUFDUDtRQUNBO1FBQ0EsUUFBYzsyQ0FBWTtnQkFDeEIsT0FBTyxhQUFhLGtCQUFrQixPQUFPO2dCQUM3QyxpQkFBaUIsS0FBSztZQUN4QjswQ0FBRyxDQUFDLENBQUM7UUFDTCxTQUFlOzJDQUFZO2dCQUN6QixPQUFPLGFBQWEsa0JBQWtCLE9BQU87Z0JBQzdDLGtCQUFrQixVQUFVLE9BQU87bURBQ2pD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WUFDeEMsS0FBSyxFQUFFLElBQUksR0FBRSxLQUFNLEVBQUUsSUFBSSxHQUFFLE1BQU8sRUFBRSxJQUFJLEdBQUUsS0FBTSxFQUFFLElBQUksR0FBRSxFQUFJLFdBQVUsSUFBSTtpQkFDckU7UUFDUDtRQUNBLFVBQVUsS0FBSyxDQUFDO0lBQ2xCO0lBQ0EsVUFBVSxJQUFJO0lBRWQsTUFBTSxZQUFzQixDQUFDO0lBQzdCLFFBQVMsSUFBSSxPQUFPLFNBQVMsR0FBRyxLQUFLLEdBQUcsSUFBSztRQUMzQyxNQUFNLElBQUksT0FBTyxDQUFDO1FBQ2xCLE1BQU8sVUFBVSxVQUFVLEVBQUc7WUFDNUIsTUFBTSxJQUFJLFVBQVUsVUFBVSxTQUFTLENBQUM7WUFDeEMsTUFBTSxJQUFJLFVBQVUsVUFBVSxTQUFTLENBQUM7WUFDeEMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxHQUFFLE1BQU8sRUFBRSxJQUFJLEdBQUUsSUFBTSxHQUFFLElBQUksR0FBRSxFQUFJLFdBQVUsSUFBSTtpQkFDckU7UUFDUDtRQUNBLFVBQVUsS0FBSyxDQUFDO0lBQ2xCO0lBQ0EsVUFBVSxJQUFJO0lBRWQsSUFDRSxVQUFVLFdBQVcsS0FDckIsVUFBVSxXQUFXLEtBQ3JCLFVBQVUsQ0FBQyxFQUFFLE1BQU0sVUFBVSxDQUFDLEVBQUUsS0FDaEMsVUFBVSxDQUFDLEVBQUUsTUFBTSxVQUFVLENBQUMsRUFBRSxHQUNoQztRQUNBLE9BQU87SUFDVCxPQUFPO1FBQ0wsT0FBTyxVQUFVLE9BQU8sU0FBUztJQUNuQztBQUNGO0FBRUEsSUFBTSxXQUFXO0FBQ2pCLElBQU1DLFFBQU87QUFDYixJQUFNLFVBQVU7QUFDaEIsSUFBTSxTQUFTO0FBQ2YsSUFBTUMsV0FBVTtBQUNoQixJQUFNQyxTQUFRIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vc3JjL1Rvb2x0aXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSAnQHJhZGl4LXVpL3ByaW1pdGl2ZSc7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcbmltcG9ydCB7IERpc21pc3NhYmxlTGF5ZXIgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZGlzbWlzc2FibGUtbGF5ZXInO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtaWQnO1xuaW1wb3J0ICogYXMgUG9wcGVyUHJpbWl0aXZlIGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wb3BwZXInO1xuaW1wb3J0IHsgY3JlYXRlUG9wcGVyU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcG9wcGVyJztcbmltcG9ydCB7IFBvcnRhbCBhcyBQb3J0YWxQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcG9ydGFsJztcbmltcG9ydCB7IFByZXNlbmNlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByZXNlbmNlJztcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuaW1wb3J0IHsgU2xvdHRhYmxlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXNsb3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxhYmxlU3RhdGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZSc7XG5pbXBvcnQgKiBhcyBWaXN1YWxseUhpZGRlblByaW1pdGl2ZSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdmlzdWFsbHktaGlkZGVuJztcblxuaW1wb3J0IHR5cGUgeyBTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcblxudHlwZSBTY29wZWRQcm9wczxQID0ge30+ID0gUCAmIHsgX19zY29wZVRvb2x0aXA/OiBTY29wZSB9O1xuY29uc3QgW2NyZWF0ZVRvb2x0aXBDb250ZXh0LCBjcmVhdGVUb29sdGlwU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKCdUb29sdGlwJywgW1xuICBjcmVhdGVQb3BwZXJTY29wZSxcbl0pO1xuY29uc3QgdXNlUG9wcGVyU2NvcGUgPSBjcmVhdGVQb3BwZXJTY29wZSgpO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUb29sdGlwUHJvdmlkZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgUFJPVklERVJfTkFNRSA9ICdUb29sdGlwUHJvdmlkZXInO1xuY29uc3QgREVGQVVMVF9ERUxBWV9EVVJBVElPTiA9IDcwMDtcbmNvbnN0IFRPT0xUSVBfT1BFTiA9ICd0b29sdGlwLm9wZW4nO1xuXG50eXBlIFRvb2x0aXBQcm92aWRlckNvbnRleHRWYWx1ZSA9IHtcbiAgaXNPcGVuRGVsYXllZDogYm9vbGVhbjtcbiAgZGVsYXlEdXJhdGlvbjogbnVtYmVyO1xuICBvbk9wZW4oKTogdm9pZDtcbiAgb25DbG9zZSgpOiB2b2lkO1xuICBvblBvaW50ZXJJblRyYW5zaXRDaGFuZ2UoaW5UcmFuc2l0OiBib29sZWFuKTogdm9pZDtcbiAgaXNQb2ludGVySW5UcmFuc2l0UmVmOiBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PGJvb2xlYW4+O1xuICBkaXNhYmxlSG92ZXJhYmxlQ29udGVudDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IFtUb29sdGlwUHJvdmlkZXJDb250ZXh0UHJvdmlkZXIsIHVzZVRvb2x0aXBQcm92aWRlckNvbnRleHRdID1cbiAgY3JlYXRlVG9vbHRpcENvbnRleHQ8VG9vbHRpcFByb3ZpZGVyQ29udGV4dFZhbHVlPihQUk9WSURFUl9OQU1FKTtcblxuaW50ZXJmYWNlIFRvb2x0aXBQcm92aWRlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIFRoZSBkdXJhdGlvbiBmcm9tIHdoZW4gdGhlIHBvaW50ZXIgZW50ZXJzIHRoZSB0cmlnZ2VyIHVudGlsIHRoZSB0b29sdGlwIGdldHMgb3BlbmVkLlxuICAgKiBAZGVmYXVsdFZhbHVlIDcwMFxuICAgKi9cbiAgZGVsYXlEdXJhdGlvbj86IG51bWJlcjtcbiAgLyoqXG4gICAqIEhvdyBtdWNoIHRpbWUgYSB1c2VyIGhhcyB0byBlbnRlciBhbm90aGVyIHRyaWdnZXIgd2l0aG91dCBpbmN1cnJpbmcgYSBkZWxheSBhZ2Fpbi5cbiAgICogQGRlZmF1bHRWYWx1ZSAzMDBcbiAgICovXG4gIHNraXBEZWxheUR1cmF0aW9uPzogbnVtYmVyO1xuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIHRyeWluZyB0byBob3ZlciB0aGUgY29udGVudCB3aWxsIHJlc3VsdCBpbiB0aGUgdG9vbHRpcCBjbG9zaW5nIGFzIHRoZSBwb2ludGVyIGxlYXZlcyB0aGUgdHJpZ2dlci5cbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgZGlzYWJsZUhvdmVyYWJsZUNvbnRlbnQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBUb29sdGlwUHJvdmlkZXI6IFJlYWN0LkZDPFRvb2x0aXBQcm92aWRlclByb3BzPiA9IChcbiAgcHJvcHM6IFNjb3BlZFByb3BzPFRvb2x0aXBQcm92aWRlclByb3BzPlxuKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfX3Njb3BlVG9vbHRpcCxcbiAgICBkZWxheUR1cmF0aW9uID0gREVGQVVMVF9ERUxBWV9EVVJBVElPTixcbiAgICBza2lwRGVsYXlEdXJhdGlvbiA9IDMwMCxcbiAgICBkaXNhYmxlSG92ZXJhYmxlQ29udGVudCA9IGZhbHNlLFxuICAgIGNoaWxkcmVuLFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IFtpc09wZW5EZWxheWVkLCBzZXRJc09wZW5EZWxheWVkXSA9IFJlYWN0LnVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBpc1BvaW50ZXJJblRyYW5zaXRSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCBza2lwRGVsYXlUaW1lclJlZiA9IFJlYWN0LnVzZVJlZigwKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNraXBEZWxheVRpbWVyID0gc2tpcERlbGF5VGltZXJSZWYuY3VycmVudDtcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LmNsZWFyVGltZW91dChza2lwRGVsYXlUaW1lcik7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxUb29sdGlwUHJvdmlkZXJDb250ZXh0UHJvdmlkZXJcbiAgICAgIHNjb3BlPXtfX3Njb3BlVG9vbHRpcH1cbiAgICAgIGlzT3BlbkRlbGF5ZWQ9e2lzT3BlbkRlbGF5ZWR9XG4gICAgICBkZWxheUR1cmF0aW9uPXtkZWxheUR1cmF0aW9ufVxuICAgICAgb25PcGVuPXtSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQoc2tpcERlbGF5VGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgIHNldElzT3BlbkRlbGF5ZWQoZmFsc2UpO1xuICAgICAgfSwgW10pfVxuICAgICAgb25DbG9zZT17UmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHNraXBEZWxheVRpbWVyUmVmLmN1cnJlbnQpO1xuICAgICAgICBza2lwRGVsYXlUaW1lclJlZi5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoXG4gICAgICAgICAgKCkgPT4gc2V0SXNPcGVuRGVsYXllZCh0cnVlKSxcbiAgICAgICAgICBza2lwRGVsYXlEdXJhdGlvblxuICAgICAgICApO1xuICAgICAgfSwgW3NraXBEZWxheUR1cmF0aW9uXSl9XG4gICAgICBpc1BvaW50ZXJJblRyYW5zaXRSZWY9e2lzUG9pbnRlckluVHJhbnNpdFJlZn1cbiAgICAgIG9uUG9pbnRlckluVHJhbnNpdENoYW5nZT17UmVhY3QudXNlQ2FsbGJhY2soKGluVHJhbnNpdDogYm9vbGVhbikgPT4ge1xuICAgICAgICBpc1BvaW50ZXJJblRyYW5zaXRSZWYuY3VycmVudCA9IGluVHJhbnNpdDtcbiAgICAgIH0sIFtdKX1cbiAgICAgIGRpc2FibGVIb3ZlcmFibGVDb250ZW50PXtkaXNhYmxlSG92ZXJhYmxlQ29udGVudH1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Ub29sdGlwUHJvdmlkZXJDb250ZXh0UHJvdmlkZXI+XG4gICk7XG59O1xuXG5Ub29sdGlwUHJvdmlkZXIuZGlzcGxheU5hbWUgPSBQUk9WSURFUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUb29sdGlwXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFRPT0xUSVBfTkFNRSA9ICdUb29sdGlwJztcblxudHlwZSBUb29sdGlwQ29udGV4dFZhbHVlID0ge1xuICBjb250ZW50SWQ6IHN0cmluZztcbiAgb3BlbjogYm9vbGVhbjtcbiAgc3RhdGVBdHRyaWJ1dGU6ICdjbG9zZWQnIHwgJ2RlbGF5ZWQtb3BlbicgfCAnaW5zdGFudC1vcGVuJztcbiAgdHJpZ2dlcjogVG9vbHRpcFRyaWdnZXJFbGVtZW50IHwgbnVsbDtcbiAgb25UcmlnZ2VyQ2hhbmdlKHRyaWdnZXI6IFRvb2x0aXBUcmlnZ2VyRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuICBvblRyaWdnZXJFbnRlcigpOiB2b2lkO1xuICBvblRyaWdnZXJMZWF2ZSgpOiB2b2lkO1xuICBvbk9wZW4oKTogdm9pZDtcbiAgb25DbG9zZSgpOiB2b2lkO1xuICBkaXNhYmxlSG92ZXJhYmxlQ29udGVudDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IFtUb29sdGlwQ29udGV4dFByb3ZpZGVyLCB1c2VUb29sdGlwQ29udGV4dF0gPVxuICBjcmVhdGVUb29sdGlwQ29udGV4dDxUb29sdGlwQ29udGV4dFZhbHVlPihUT09MVElQX05BTUUpO1xuXG5pbnRlcmZhY2UgVG9vbHRpcFByb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIG9wZW4/OiBib29sZWFuO1xuICBkZWZhdWx0T3Blbj86IGJvb2xlYW47XG4gIG9uT3BlbkNoYW5nZT86IChvcGVuOiBib29sZWFuKSA9PiB2b2lkO1xuICAvKipcbiAgICogVGhlIGR1cmF0aW9uIGZyb20gd2hlbiB0aGUgcG9pbnRlciBlbnRlcnMgdGhlIHRyaWdnZXIgdW50aWwgdGhlIHRvb2x0aXAgZ2V0cyBvcGVuZWQuIFRoaXMgd2lsbFxuICAgKiBvdmVycmlkZSB0aGUgcHJvcCB3aXRoIHRoZSBzYW1lIG5hbWUgcGFzc2VkIHRvIFByb3ZpZGVyLlxuICAgKiBAZGVmYXVsdFZhbHVlIDcwMFxuICAgKi9cbiAgZGVsYXlEdXJhdGlvbj86IG51bWJlcjtcbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCB0cnlpbmcgdG8gaG92ZXIgdGhlIGNvbnRlbnQgd2lsbCByZXN1bHQgaW4gdGhlIHRvb2x0aXAgY2xvc2luZyBhcyB0aGUgcG9pbnRlciBsZWF2ZXMgdGhlIHRyaWdnZXIuXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIGRpc2FibGVIb3ZlcmFibGVDb250ZW50PzogYm9vbGVhbjtcbn1cblxuY29uc3QgVG9vbHRpcDogUmVhY3QuRkM8VG9vbHRpcFByb3BzPiA9IChwcm9wczogU2NvcGVkUHJvcHM8VG9vbHRpcFByb3BzPikgPT4ge1xuICBjb25zdCB7XG4gICAgX19zY29wZVRvb2x0aXAsXG4gICAgY2hpbGRyZW4sXG4gICAgb3Blbjogb3BlblByb3AsXG4gICAgZGVmYXVsdE9wZW4gPSBmYWxzZSxcbiAgICBvbk9wZW5DaGFuZ2UsXG4gICAgZGlzYWJsZUhvdmVyYWJsZUNvbnRlbnQ6IGRpc2FibGVIb3ZlcmFibGVDb250ZW50UHJvcCxcbiAgICBkZWxheUR1cmF0aW9uOiBkZWxheUR1cmF0aW9uUHJvcCxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBwcm92aWRlckNvbnRleHQgPSB1c2VUb29sdGlwUHJvdmlkZXJDb250ZXh0KFRPT0xUSVBfTkFNRSwgcHJvcHMuX19zY29wZVRvb2x0aXApO1xuICBjb25zdCBwb3BwZXJTY29wZSA9IHVzZVBvcHBlclNjb3BlKF9fc2NvcGVUb29sdGlwKTtcbiAgY29uc3QgW3RyaWdnZXIsIHNldFRyaWdnZXJdID0gUmVhY3QudXNlU3RhdGU8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgY29udGVudElkID0gdXNlSWQoKTtcbiAgY29uc3Qgb3BlblRpbWVyUmVmID0gUmVhY3QudXNlUmVmKDApO1xuICBjb25zdCBkaXNhYmxlSG92ZXJhYmxlQ29udGVudCA9XG4gICAgZGlzYWJsZUhvdmVyYWJsZUNvbnRlbnRQcm9wID8/IHByb3ZpZGVyQ29udGV4dC5kaXNhYmxlSG92ZXJhYmxlQ29udGVudDtcbiAgY29uc3QgZGVsYXlEdXJhdGlvbiA9IGRlbGF5RHVyYXRpb25Qcm9wID8/IHByb3ZpZGVyQ29udGV4dC5kZWxheUR1cmF0aW9uO1xuICBjb25zdCB3YXNPcGVuRGVsYXllZFJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IFtvcGVuID0gZmFsc2UsIHNldE9wZW5dID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgIHByb3A6IG9wZW5Qcm9wLFxuICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0T3BlbixcbiAgICBvbkNoYW5nZTogKG9wZW4pID0+IHtcbiAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgIHByb3ZpZGVyQ29udGV4dC5vbk9wZW4oKTtcblxuICAgICAgICAvLyBhcyBgb25DaGFuZ2VgIGlzIGNhbGxlZCB3aXRoaW4gYSBsaWZlY3ljbGUgbWV0aG9kIHdlXG4gICAgICAgIC8vIGF2b2lkIGRpc3BhdGNoaW5nIHZpYSBgZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50YC5cbiAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoVE9PTFRJUF9PUEVOKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm92aWRlckNvbnRleHQub25DbG9zZSgpO1xuICAgICAgfVxuICAgICAgb25PcGVuQ2hhbmdlPy4ob3Blbik7XG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IHN0YXRlQXR0cmlidXRlID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIG9wZW4gPyAod2FzT3BlbkRlbGF5ZWRSZWYuY3VycmVudCA/ICdkZWxheWVkLW9wZW4nIDogJ2luc3RhbnQtb3BlbicpIDogJ2Nsb3NlZCc7XG4gIH0sIFtvcGVuXSk7XG5cbiAgY29uc3QgaGFuZGxlT3BlbiA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KG9wZW5UaW1lclJlZi5jdXJyZW50KTtcbiAgICBvcGVuVGltZXJSZWYuY3VycmVudCA9IDA7XG4gICAgd2FzT3BlbkRlbGF5ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIHNldE9wZW4odHJ1ZSk7XG4gIH0sIFtzZXRPcGVuXSk7XG5cbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgd2luZG93LmNsZWFyVGltZW91dChvcGVuVGltZXJSZWYuY3VycmVudCk7XG4gICAgb3BlblRpbWVyUmVmLmN1cnJlbnQgPSAwO1xuICAgIHNldE9wZW4oZmFsc2UpO1xuICB9LCBbc2V0T3Blbl0pO1xuXG4gIGNvbnN0IGhhbmRsZURlbGF5ZWRPcGVuID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQob3BlblRpbWVyUmVmLmN1cnJlbnQpO1xuICAgIG9wZW5UaW1lclJlZi5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgd2FzT3BlbkRlbGF5ZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICBzZXRPcGVuKHRydWUpO1xuICAgICAgb3BlblRpbWVyUmVmLmN1cnJlbnQgPSAwO1xuICAgIH0sIGRlbGF5RHVyYXRpb24pO1xuICB9LCBbZGVsYXlEdXJhdGlvbiwgc2V0T3Blbl0pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChvcGVuVGltZXJSZWYuY3VycmVudCkge1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KG9wZW5UaW1lclJlZi5jdXJyZW50KTtcbiAgICAgICAgb3BlblRpbWVyUmVmLmN1cnJlbnQgPSAwO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxQb3BwZXJQcmltaXRpdmUuUm9vdCB7Li4ucG9wcGVyU2NvcGV9PlxuICAgICAgPFRvb2x0aXBDb250ZXh0UHJvdmlkZXJcbiAgICAgICAgc2NvcGU9e19fc2NvcGVUb29sdGlwfVxuICAgICAgICBjb250ZW50SWQ9e2NvbnRlbnRJZH1cbiAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgc3RhdGVBdHRyaWJ1dGU9e3N0YXRlQXR0cmlidXRlfVxuICAgICAgICB0cmlnZ2VyPXt0cmlnZ2VyfVxuICAgICAgICBvblRyaWdnZXJDaGFuZ2U9e3NldFRyaWdnZXJ9XG4gICAgICAgIG9uVHJpZ2dlckVudGVyPXtSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgICAgaWYgKHByb3ZpZGVyQ29udGV4dC5pc09wZW5EZWxheWVkKSBoYW5kbGVEZWxheWVkT3BlbigpO1xuICAgICAgICAgIGVsc2UgaGFuZGxlT3BlbigpO1xuICAgICAgICB9LCBbcHJvdmlkZXJDb250ZXh0LmlzT3BlbkRlbGF5ZWQsIGhhbmRsZURlbGF5ZWRPcGVuLCBoYW5kbGVPcGVuXSl9XG4gICAgICAgIG9uVHJpZ2dlckxlYXZlPXtSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgICAgaWYgKGRpc2FibGVIb3ZlcmFibGVDb250ZW50KSB7XG4gICAgICAgICAgICBoYW5kbGVDbG9zZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBDbGVhciB0aGUgdGltZXIgaW4gY2FzZSB0aGUgcG9pbnRlciBsZWF2ZXMgdGhlIHRyaWdnZXIgYmVmb3JlIHRoZSB0b29sdGlwIGlzIG9wZW5lZC5cbiAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQob3BlblRpbWVyUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgb3BlblRpbWVyUmVmLmN1cnJlbnQgPSAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgW2hhbmRsZUNsb3NlLCBkaXNhYmxlSG92ZXJhYmxlQ29udGVudF0pfVxuICAgICAgICBvbk9wZW49e2hhbmRsZU9wZW59XG4gICAgICAgIG9uQ2xvc2U9e2hhbmRsZUNsb3NlfVxuICAgICAgICBkaXNhYmxlSG92ZXJhYmxlQ29udGVudD17ZGlzYWJsZUhvdmVyYWJsZUNvbnRlbnR9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvVG9vbHRpcENvbnRleHRQcm92aWRlcj5cbiAgICA8L1BvcHBlclByaW1pdGl2ZS5Sb290PlxuICApO1xufTtcblxuVG9vbHRpcC5kaXNwbGF5TmFtZSA9IFRPT0xUSVBfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVG9vbHRpcFRyaWdnZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgVFJJR0dFUl9OQU1FID0gJ1Rvb2x0aXBUcmlnZ2VyJztcblxudHlwZSBUb29sdGlwVHJpZ2dlckVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuYnV0dG9uPjtcbnR5cGUgUHJpbWl0aXZlQnV0dG9uUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5idXR0b24+O1xuaW50ZXJmYWNlIFRvb2x0aXBUcmlnZ2VyUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVCdXR0b25Qcm9wcyB7fVxuXG5jb25zdCBUb29sdGlwVHJpZ2dlciA9IFJlYWN0LmZvcndhcmRSZWY8VG9vbHRpcFRyaWdnZXJFbGVtZW50LCBUb29sdGlwVHJpZ2dlclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxUb29sdGlwVHJpZ2dlclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlVG9vbHRpcCwgLi4udHJpZ2dlclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlVG9vbHRpcENvbnRleHQoVFJJR0dFUl9OQU1FLCBfX3Njb3BlVG9vbHRpcCk7XG4gICAgY29uc3QgcHJvdmlkZXJDb250ZXh0ID0gdXNlVG9vbHRpcFByb3ZpZGVyQ29udGV4dChUUklHR0VSX05BTUUsIF9fc2NvcGVUb29sdGlwKTtcbiAgICBjb25zdCBwb3BwZXJTY29wZSA9IHVzZVBvcHBlclNjb3BlKF9fc2NvcGVUb29sdGlwKTtcbiAgICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWY8VG9vbHRpcFRyaWdnZXJFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYsIGNvbnRleHQub25UcmlnZ2VyQ2hhbmdlKTtcbiAgICBjb25zdCBpc1BvaW50ZXJEb3duUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBoYXNQb2ludGVyTW92ZU9wZW5lZFJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgaGFuZGxlUG9pbnRlclVwID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4gKGlzUG9pbnRlckRvd25SZWYuY3VycmVudCA9IGZhbHNlKSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCBoYW5kbGVQb2ludGVyVXApO1xuICAgIH0sIFtoYW5kbGVQb2ludGVyVXBdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UG9wcGVyUHJpbWl0aXZlLkFuY2hvciBhc0NoaWxkIHsuLi5wb3BwZXJTY29wZX0+XG4gICAgICAgIDxQcmltaXRpdmUuYnV0dG9uXG4gICAgICAgICAgLy8gV2UgcHVycG9zZWZ1bGx5IGF2b2lkIGFkZGluZyBgdHlwZT1idXR0b25gIGhlcmUgYmVjYXVzZSB0b29sdGlwIHRyaWdnZXJzIGFyZSBhbHNvXG4gICAgICAgICAgLy8gY29tbW9ubHkgYW5jaG9ycyBhbmQgdGhlIGFuY2hvciBgdHlwZWAgYXR0cmlidXRlIHNpZ25pZmllcyBNSU1FIHR5cGUuXG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17Y29udGV4dC5vcGVuID8gY29udGV4dC5jb250ZW50SWQgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1zdGF0ZT17Y29udGV4dC5zdGF0ZUF0dHJpYnV0ZX1cbiAgICAgICAgICB7Li4udHJpZ2dlclByb3BzfVxuICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgIG9uUG9pbnRlck1vdmU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlck1vdmUsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LnBvaW50ZXJUeXBlID09PSAndG91Y2gnKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICFoYXNQb2ludGVyTW92ZU9wZW5lZFJlZi5jdXJyZW50ICYmXG4gICAgICAgICAgICAgICFwcm92aWRlckNvbnRleHQuaXNQb2ludGVySW5UcmFuc2l0UmVmLmN1cnJlbnRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjb250ZXh0Lm9uVHJpZ2dlckVudGVyKCk7XG4gICAgICAgICAgICAgIGhhc1BvaW50ZXJNb3ZlT3BlbmVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pfVxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJMZWF2ZSwgKCkgPT4ge1xuICAgICAgICAgICAgY29udGV4dC5vblRyaWdnZXJMZWF2ZSgpO1xuICAgICAgICAgICAgaGFzUG9pbnRlck1vdmVPcGVuZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgIH0pfVxuICAgICAgICAgIG9uUG9pbnRlckRvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlckRvd24sICgpID0+IHtcbiAgICAgICAgICAgIGlzUG9pbnRlckRvd25SZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCBoYW5kbGVQb2ludGVyVXAsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBvbkZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkZvY3VzLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzUG9pbnRlckRvd25SZWYuY3VycmVudCkgY29udGV4dC5vbk9wZW4oKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBvbkJsdXI9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQmx1ciwgY29udGV4dC5vbkNsb3NlKX1cbiAgICAgICAgICBvbkNsaWNrPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkNsaWNrLCBjb250ZXh0Lm9uQ2xvc2UpfVxuICAgICAgICAvPlxuICAgICAgPC9Qb3BwZXJQcmltaXRpdmUuQW5jaG9yPlxuICAgICk7XG4gIH1cbik7XG5cblRvb2x0aXBUcmlnZ2VyLmRpc3BsYXlOYW1lID0gVFJJR0dFUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUb29sdGlwUG9ydGFsXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFBPUlRBTF9OQU1FID0gJ1Rvb2x0aXBQb3J0YWwnO1xuXG50eXBlIFBvcnRhbENvbnRleHRWYWx1ZSA9IHsgZm9yY2VNb3VudD86IHRydWUgfTtcbmNvbnN0IFtQb3J0YWxQcm92aWRlciwgdXNlUG9ydGFsQ29udGV4dF0gPSBjcmVhdGVUb29sdGlwQ29udGV4dDxQb3J0YWxDb250ZXh0VmFsdWU+KFBPUlRBTF9OQU1FLCB7XG4gIGZvcmNlTW91bnQ6IHVuZGVmaW5lZCxcbn0pO1xuXG50eXBlIFBvcnRhbFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQb3J0YWxQcmltaXRpdmU+O1xuaW50ZXJmYWNlIFRvb2x0aXBQb3J0YWxQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogU3BlY2lmeSBhIGNvbnRhaW5lciBlbGVtZW50IHRvIHBvcnRhbCB0aGUgY29udGVudCBpbnRvLlxuICAgKi9cbiAgY29udGFpbmVyPzogUG9ydGFsUHJvcHNbJ2NvbnRhaW5lciddO1xuICAvKipcbiAgICogVXNlZCB0byBmb3JjZSBtb3VudGluZyB3aGVuIG1vcmUgY29udHJvbCBpcyBuZWVkZWQuIFVzZWZ1bCB3aGVuXG4gICAqIGNvbnRyb2xsaW5nIGFuaW1hdGlvbiB3aXRoIFJlYWN0IGFuaW1hdGlvbiBsaWJyYXJpZXMuXG4gICAqL1xuICBmb3JjZU1vdW50PzogdHJ1ZTtcbn1cblxuY29uc3QgVG9vbHRpcFBvcnRhbDogUmVhY3QuRkM8VG9vbHRpcFBvcnRhbFByb3BzPiA9IChwcm9wczogU2NvcGVkUHJvcHM8VG9vbHRpcFBvcnRhbFByb3BzPikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVUb29sdGlwLCBmb3JjZU1vdW50LCBjaGlsZHJlbiwgY29udGFpbmVyIH0gPSBwcm9wcztcbiAgY29uc3QgY29udGV4dCA9IHVzZVRvb2x0aXBDb250ZXh0KFBPUlRBTF9OQU1FLCBfX3Njb3BlVG9vbHRpcCk7XG4gIHJldHVybiAoXG4gICAgPFBvcnRhbFByb3ZpZGVyIHNjb3BlPXtfX3Njb3BlVG9vbHRpcH0gZm9yY2VNb3VudD17Zm9yY2VNb3VudH0+XG4gICAgICA8UHJlc2VuY2UgcHJlc2VudD17Zm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW59PlxuICAgICAgICA8UG9ydGFsUHJpbWl0aXZlIGFzQ2hpbGQgY29udGFpbmVyPXtjb250YWluZXJ9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9Qb3J0YWxQcmltaXRpdmU+XG4gICAgICA8L1ByZXNlbmNlPlxuICAgIDwvUG9ydGFsUHJvdmlkZXI+XG4gICk7XG59O1xuXG5Ub29sdGlwUG9ydGFsLmRpc3BsYXlOYW1lID0gUE9SVEFMX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFRvb2x0aXBDb250ZW50XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IENPTlRFTlRfTkFNRSA9ICdUb29sdGlwQ29udGVudCc7XG5cbnR5cGUgVG9vbHRpcENvbnRlbnRFbGVtZW50ID0gVG9vbHRpcENvbnRlbnRJbXBsRWxlbWVudDtcbmludGVyZmFjZSBUb29sdGlwQ29udGVudFByb3BzIGV4dGVuZHMgVG9vbHRpcENvbnRlbnRJbXBsUHJvcHMge1xuICAvKipcbiAgICogVXNlZCB0byBmb3JjZSBtb3VudGluZyB3aGVuIG1vcmUgY29udHJvbCBpcyBuZWVkZWQuIFVzZWZ1bCB3aGVuXG4gICAqIGNvbnRyb2xsaW5nIGFuaW1hdGlvbiB3aXRoIFJlYWN0IGFuaW1hdGlvbiBsaWJyYXJpZXMuXG4gICAqL1xuICBmb3JjZU1vdW50PzogdHJ1ZTtcbn1cblxuY29uc3QgVG9vbHRpcENvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFRvb2x0aXBDb250ZW50RWxlbWVudCwgVG9vbHRpcENvbnRlbnRQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8VG9vbHRpcENvbnRlbnRQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHBvcnRhbENvbnRleHQgPSB1c2VQb3J0YWxDb250ZXh0KENPTlRFTlRfTkFNRSwgcHJvcHMuX19zY29wZVRvb2x0aXApO1xuICAgIGNvbnN0IHsgZm9yY2VNb3VudCA9IHBvcnRhbENvbnRleHQuZm9yY2VNb3VudCwgc2lkZSA9ICd0b3AnLCAuLi5jb250ZW50UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VUb29sdGlwQ29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVUb29sdGlwKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UHJlc2VuY2UgcHJlc2VudD17Zm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW59PlxuICAgICAgICB7Y29udGV4dC5kaXNhYmxlSG92ZXJhYmxlQ29udGVudCA/IChcbiAgICAgICAgICA8VG9vbHRpcENvbnRlbnRJbXBsIHNpZGU9e3NpZGV9IHsuLi5jb250ZW50UHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxUb29sdGlwQ29udGVudEhvdmVyYWJsZSBzaWRlPXtzaWRlfSB7Li4uY29udGVudFByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz5cbiAgICAgICAgKX1cbiAgICAgIDwvUHJlc2VuY2U+XG4gICAgKTtcbiAgfVxuKTtcblxudHlwZSBQb2ludCA9IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcbnR5cGUgUG9seWdvbiA9IFBvaW50W107XG5cbnR5cGUgVG9vbHRpcENvbnRlbnRIb3ZlcmFibGVFbGVtZW50ID0gVG9vbHRpcENvbnRlbnRJbXBsRWxlbWVudDtcbmludGVyZmFjZSBUb29sdGlwQ29udGVudEhvdmVyYWJsZVByb3BzIGV4dGVuZHMgVG9vbHRpcENvbnRlbnRJbXBsUHJvcHMge31cblxuY29uc3QgVG9vbHRpcENvbnRlbnRIb3ZlcmFibGUgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBUb29sdGlwQ29udGVudEhvdmVyYWJsZUVsZW1lbnQsXG4gIFRvb2x0aXBDb250ZW50SG92ZXJhYmxlUHJvcHNcbj4oKHByb3BzOiBTY29wZWRQcm9wczxUb29sdGlwQ29udGVudEhvdmVyYWJsZVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VUb29sdGlwQ29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVUb29sdGlwKTtcbiAgY29uc3QgcHJvdmlkZXJDb250ZXh0ID0gdXNlVG9vbHRpcFByb3ZpZGVyQ29udGV4dChDT05URU5UX05BTUUsIHByb3BzLl9fc2NvcGVUb29sdGlwKTtcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPFRvb2x0aXBDb250ZW50SG92ZXJhYmxlRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG4gIGNvbnN0IFtwb2ludGVyR3JhY2VBcmVhLCBzZXRQb2ludGVyR3JhY2VBcmVhXSA9IFJlYWN0LnVzZVN0YXRlPFBvbHlnb24gfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHRyaWdnZXIsIG9uQ2xvc2UgfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGNvbnRlbnQgPSByZWYuY3VycmVudDtcblxuICBjb25zdCB7IG9uUG9pbnRlckluVHJhbnNpdENoYW5nZSB9ID0gcHJvdmlkZXJDb250ZXh0O1xuXG4gIGNvbnN0IGhhbmRsZVJlbW92ZUdyYWNlQXJlYSA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRQb2ludGVyR3JhY2VBcmVhKG51bGwpO1xuICAgIG9uUG9pbnRlckluVHJhbnNpdENoYW5nZShmYWxzZSk7XG4gIH0sIFtvblBvaW50ZXJJblRyYW5zaXRDaGFuZ2VdKTtcblxuICBjb25zdCBoYW5kbGVDcmVhdGVHcmFjZUFyZWEgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFBvaW50ZXJFdmVudCwgaG92ZXJUYXJnZXQ6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50VGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IGV4aXRQb2ludCA9IHsgeDogZXZlbnQuY2xpZW50WCwgeTogZXZlbnQuY2xpZW50WSB9O1xuICAgICAgY29uc3QgZXhpdFNpZGUgPSBnZXRFeGl0U2lkZUZyb21SZWN0KGV4aXRQb2ludCwgY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7XG4gICAgICBjb25zdCBwYWRkZWRFeGl0UG9pbnRzID0gZ2V0UGFkZGVkRXhpdFBvaW50cyhleGl0UG9pbnQsIGV4aXRTaWRlKTtcbiAgICAgIGNvbnN0IGhvdmVyVGFyZ2V0UG9pbnRzID0gZ2V0UG9pbnRzRnJvbVJlY3QoaG92ZXJUYXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuICAgICAgY29uc3QgZ3JhY2VBcmVhID0gZ2V0SHVsbChbLi4ucGFkZGVkRXhpdFBvaW50cywgLi4uaG92ZXJUYXJnZXRQb2ludHNdKTtcbiAgICAgIHNldFBvaW50ZXJHcmFjZUFyZWEoZ3JhY2VBcmVhKTtcbiAgICAgIG9uUG9pbnRlckluVHJhbnNpdENoYW5nZSh0cnVlKTtcbiAgICB9LFxuICAgIFtvblBvaW50ZXJJblRyYW5zaXRDaGFuZ2VdXG4gICk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4gaGFuZGxlUmVtb3ZlR3JhY2VBcmVhKCk7XG4gIH0sIFtoYW5kbGVSZW1vdmVHcmFjZUFyZWFdKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0cmlnZ2VyICYmIGNvbnRlbnQpIHtcbiAgICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJMZWF2ZSA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiBoYW5kbGVDcmVhdGVHcmFjZUFyZWEoZXZlbnQsIGNvbnRlbnQpO1xuICAgICAgY29uc3QgaGFuZGxlQ29udGVudExlYXZlID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IGhhbmRsZUNyZWF0ZUdyYWNlQXJlYShldmVudCwgdHJpZ2dlcik7XG5cbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmxlYXZlJywgaGFuZGxlVHJpZ2dlckxlYXZlKTtcbiAgICAgIGNvbnRlbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmxlYXZlJywgaGFuZGxlQ29udGVudExlYXZlKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHRyaWdnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmxlYXZlJywgaGFuZGxlVHJpZ2dlckxlYXZlKTtcbiAgICAgICAgY29udGVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVybGVhdmUnLCBoYW5kbGVDb250ZW50TGVhdmUpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFt0cmlnZ2VyLCBjb250ZW50LCBoYW5kbGVDcmVhdGVHcmFjZUFyZWEsIGhhbmRsZVJlbW92ZUdyYWNlQXJlYV0pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHBvaW50ZXJHcmFjZUFyZWEpIHtcbiAgICAgIGNvbnN0IGhhbmRsZVRyYWNrUG9pbnRlckdyYWNlID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBwb2ludGVyUG9zaXRpb24gPSB7IHg6IGV2ZW50LmNsaWVudFgsIHk6IGV2ZW50LmNsaWVudFkgfTtcbiAgICAgICAgY29uc3QgaGFzRW50ZXJlZFRhcmdldCA9IHRyaWdnZXI/LmNvbnRhaW5zKHRhcmdldCkgfHwgY29udGVudD8uY29udGFpbnModGFyZ2V0KTtcbiAgICAgICAgY29uc3QgaXNQb2ludGVyT3V0c2lkZUdyYWNlQXJlYSA9ICFpc1BvaW50SW5Qb2x5Z29uKHBvaW50ZXJQb3NpdGlvbiwgcG9pbnRlckdyYWNlQXJlYSk7XG5cbiAgICAgICAgaWYgKGhhc0VudGVyZWRUYXJnZXQpIHtcbiAgICAgICAgICBoYW5kbGVSZW1vdmVHcmFjZUFyZWEoKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc1BvaW50ZXJPdXRzaWRlR3JhY2VBcmVhKSB7XG4gICAgICAgICAgaGFuZGxlUmVtb3ZlR3JhY2VBcmVhKCk7XG4gICAgICAgICAgb25DbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCBoYW5kbGVUcmFja1BvaW50ZXJHcmFjZSk7XG4gICAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCBoYW5kbGVUcmFja1BvaW50ZXJHcmFjZSk7XG4gICAgfVxuICB9LCBbdHJpZ2dlciwgY29udGVudCwgcG9pbnRlckdyYWNlQXJlYSwgb25DbG9zZSwgaGFuZGxlUmVtb3ZlR3JhY2VBcmVhXSk7XG5cbiAgcmV0dXJuIDxUb29sdGlwQ29udGVudEltcGwgey4uLnByb3BzfSByZWY9e2NvbXBvc2VkUmVmc30gLz47XG59KTtcblxuY29uc3QgW1Zpc3VhbGx5SGlkZGVuQ29udGVudENvbnRleHRQcm92aWRlciwgdXNlVmlzdWFsbHlIaWRkZW5Db250ZW50Q29udGV4dF0gPVxuICBjcmVhdGVUb29sdGlwQ29udGV4dChUT09MVElQX05BTUUsIHsgaXNJbnNpZGU6IGZhbHNlIH0pO1xuXG50eXBlIFRvb2x0aXBDb250ZW50SW1wbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQb3BwZXJQcmltaXRpdmUuQ29udGVudD47XG50eXBlIERpc21pc3NhYmxlTGF5ZXJQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlzbWlzc2FibGVMYXllcj47XG50eXBlIFBvcHBlckNvbnRlbnRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUG9wcGVyUHJpbWl0aXZlLkNvbnRlbnQ+O1xuaW50ZXJmYWNlIFRvb2x0aXBDb250ZW50SW1wbFByb3BzIGV4dGVuZHMgT21pdDxQb3BwZXJDb250ZW50UHJvcHMsICdvblBsYWNlZCc+IHtcbiAgLyoqXG4gICAqIEEgbW9yZSBkZXNjcmlwdGl2ZSBsYWJlbCBmb3IgYWNjZXNzaWJpbGl0eSBwdXJwb3NlXG4gICAqL1xuICAnYXJpYS1sYWJlbCc/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIGVzY2FwZSBrZXkgaXMgZG93bi5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uRXNjYXBlS2V5RG93bj86IERpc21pc3NhYmxlTGF5ZXJQcm9wc1snb25Fc2NhcGVLZXlEb3duJ107XG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBhIGBwb2ludGVyZG93bmAgZXZlbnQgaGFwcGVucyBvdXRzaWRlIG9mIHRoZSBgVG9vbHRpcGAuXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvblBvaW50ZXJEb3duT3V0c2lkZT86IERpc21pc3NhYmxlTGF5ZXJQcm9wc1snb25Qb2ludGVyRG93bk91dHNpZGUnXTtcbn1cblxuY29uc3QgVG9vbHRpcENvbnRlbnRJbXBsID0gUmVhY3QuZm9yd2FyZFJlZjxUb29sdGlwQ29udGVudEltcGxFbGVtZW50LCBUb29sdGlwQ29udGVudEltcGxQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8VG9vbHRpcENvbnRlbnRJbXBsUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlVG9vbHRpcCxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsXG4gICAgICBvbkVzY2FwZUtleURvd24sXG4gICAgICBvblBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgIC4uLmNvbnRlbnRQcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlVG9vbHRpcENvbnRleHQoQ09OVEVOVF9OQU1FLCBfX3Njb3BlVG9vbHRpcCk7XG4gICAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlVG9vbHRpcCk7XG4gICAgY29uc3QgeyBvbkNsb3NlIH0gPSBjb250ZXh0O1xuXG4gICAgLy8gQ2xvc2UgdGhpcyB0b29sdGlwIGlmIGFub3RoZXIgb25lIG9wZW5zXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoVE9PTFRJUF9PUEVOLCBvbkNsb3NlKTtcbiAgICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFRPT0xUSVBfT1BFTiwgb25DbG9zZSk7XG4gICAgfSwgW29uQ2xvc2VdKTtcblxuICAgIC8vIENsb3NlIHRoZSB0b29sdGlwIGlmIHRoZSB0cmlnZ2VyIGlzIHNjcm9sbGVkXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChjb250ZXh0LnRyaWdnZXIpIHtcbiAgICAgICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICBpZiAodGFyZ2V0Py5jb250YWlucyhjb250ZXh0LnRyaWdnZXIpKSBvbkNsb3NlKCk7XG4gICAgICAgIH07XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwsIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwsIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICB9LCBbY29udGV4dC50cmlnZ2VyLCBvbkNsb3NlXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERpc21pc3NhYmxlTGF5ZXJcbiAgICAgICAgYXNDaGlsZFxuICAgICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHM9e2ZhbHNlfVxuICAgICAgICBvbkVzY2FwZUtleURvd249e29uRXNjYXBlS2V5RG93bn1cbiAgICAgICAgb25Qb2ludGVyRG93bk91dHNpZGU9e29uUG9pbnRlckRvd25PdXRzaWRlfVxuICAgICAgICBvbkZvY3VzT3V0c2lkZT17KGV2ZW50KSA9PiBldmVudC5wcmV2ZW50RGVmYXVsdCgpfVxuICAgICAgICBvbkRpc21pc3M9e29uQ2xvc2V9XG4gICAgICA+XG4gICAgICAgIDxQb3BwZXJQcmltaXRpdmUuQ29udGVudFxuICAgICAgICAgIGRhdGEtc3RhdGU9e2NvbnRleHQuc3RhdGVBdHRyaWJ1dGV9XG4gICAgICAgICAgey4uLnBvcHBlclNjb3BlfVxuICAgICAgICAgIHsuLi5jb250ZW50UHJvcHN9XG4gICAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIC4uLmNvbnRlbnRQcm9wcy5zdHlsZSxcbiAgICAgICAgICAgIC8vIHJlLW5hbWVzcGFjZSBleHBvc2VkIGNvbnRlbnQgY3VzdG9tIHByb3BlcnRpZXNcbiAgICAgICAgICAgIC4uLntcbiAgICAgICAgICAgICAgJy0tcmFkaXgtdG9vbHRpcC1jb250ZW50LXRyYW5zZm9ybS1vcmlnaW4nOiAndmFyKC0tcmFkaXgtcG9wcGVyLXRyYW5zZm9ybS1vcmlnaW4pJyxcbiAgICAgICAgICAgICAgJy0tcmFkaXgtdG9vbHRpcC1jb250ZW50LWF2YWlsYWJsZS13aWR0aCc6ICd2YXIoLS1yYWRpeC1wb3BwZXItYXZhaWxhYmxlLXdpZHRoKScsXG4gICAgICAgICAgICAgICctLXJhZGl4LXRvb2x0aXAtY29udGVudC1hdmFpbGFibGUtaGVpZ2h0JzogJ3ZhcigtLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtaGVpZ2h0KScsXG4gICAgICAgICAgICAgICctLXJhZGl4LXRvb2x0aXAtdHJpZ2dlci13aWR0aCc6ICd2YXIoLS1yYWRpeC1wb3BwZXItYW5jaG9yLXdpZHRoKScsXG4gICAgICAgICAgICAgICctLXJhZGl4LXRvb2x0aXAtdHJpZ2dlci1oZWlnaHQnOiAndmFyKC0tcmFkaXgtcG9wcGVyLWFuY2hvci1oZWlnaHQpJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTbG90dGFibGU+e2NoaWxkcmVufTwvU2xvdHRhYmxlPlxuICAgICAgICAgIDxWaXN1YWxseUhpZGRlbkNvbnRlbnRDb250ZXh0UHJvdmlkZXIgc2NvcGU9e19fc2NvcGVUb29sdGlwfSBpc0luc2lkZT17dHJ1ZX0+XG4gICAgICAgICAgICA8VmlzdWFsbHlIaWRkZW5QcmltaXRpdmUuUm9vdCBpZD17Y29udGV4dC5jb250ZW50SWR9IHJvbGU9XCJ0b29sdGlwXCI+XG4gICAgICAgICAgICAgIHthcmlhTGFiZWwgfHwgY2hpbGRyZW59XG4gICAgICAgICAgICA8L1Zpc3VhbGx5SGlkZGVuUHJpbWl0aXZlLlJvb3Q+XG4gICAgICAgICAgPC9WaXN1YWxseUhpZGRlbkNvbnRlbnRDb250ZXh0UHJvdmlkZXI+XG4gICAgICAgIDwvUG9wcGVyUHJpbWl0aXZlLkNvbnRlbnQ+XG4gICAgICA8L0Rpc21pc3NhYmxlTGF5ZXI+XG4gICAgKTtcbiAgfVxuKTtcblxuVG9vbHRpcENvbnRlbnQuZGlzcGxheU5hbWUgPSBDT05URU5UX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFRvb2x0aXBBcnJvd1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBBUlJPV19OQU1FID0gJ1Rvb2x0aXBBcnJvdyc7XG5cbnR5cGUgVG9vbHRpcEFycm93RWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFBvcHBlclByaW1pdGl2ZS5BcnJvdz47XG50eXBlIFBvcHBlckFycm93UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFBvcHBlclByaW1pdGl2ZS5BcnJvdz47XG5pbnRlcmZhY2UgVG9vbHRpcEFycm93UHJvcHMgZXh0ZW5kcyBQb3BwZXJBcnJvd1Byb3BzIHt9XG5cbmNvbnN0IFRvb2x0aXBBcnJvdyA9IFJlYWN0LmZvcndhcmRSZWY8VG9vbHRpcEFycm93RWxlbWVudCwgVG9vbHRpcEFycm93UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFRvb2x0aXBBcnJvd1Byb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlVG9vbHRpcCwgLi4uYXJyb3dQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlVG9vbHRpcCk7XG4gICAgY29uc3QgdmlzdWFsbHlIaWRkZW5Db250ZW50Q29udGV4dCA9IHVzZVZpc3VhbGx5SGlkZGVuQ29udGVudENvbnRleHQoXG4gICAgICBBUlJPV19OQU1FLFxuICAgICAgX19zY29wZVRvb2x0aXBcbiAgICApO1xuICAgIC8vIGlmIHRoZSBhcnJvdyBpcyBpbnNpZGUgdGhlIGBWaXN1YWxseUhpZGRlbmAsIHdlIGRvbid0IHdhbnQgdG8gcmVuZGVyIGl0IGFsbCB0b1xuICAgIC8vIHByZXZlbnQgaXNzdWVzIGluIHBvc2l0aW9uaW5nIHRoZSBhcnJvdyBkdWUgdG8gdGhlIGR1cGxpY2F0ZVxuICAgIHJldHVybiB2aXN1YWxseUhpZGRlbkNvbnRlbnRDb250ZXh0LmlzSW5zaWRlID8gbnVsbCA6IChcbiAgICAgIDxQb3BwZXJQcmltaXRpdmUuQXJyb3cgey4uLnBvcHBlclNjb3BlfSB7Li4uYXJyb3dQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+XG4gICAgKTtcbiAgfVxuKTtcblxuVG9vbHRpcEFycm93LmRpc3BsYXlOYW1lID0gQVJST1dfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIFNpZGUgPSBOb25OdWxsYWJsZTxUb29sdGlwQ29udGVudFByb3BzWydzaWRlJ10+O1xuXG5mdW5jdGlvbiBnZXRFeGl0U2lkZUZyb21SZWN0KHBvaW50OiBQb2ludCwgcmVjdDogRE9NUmVjdCk6IFNpZGUge1xuICBjb25zdCB0b3AgPSBNYXRoLmFicyhyZWN0LnRvcCAtIHBvaW50LnkpO1xuICBjb25zdCBib3R0b20gPSBNYXRoLmFicyhyZWN0LmJvdHRvbSAtIHBvaW50LnkpO1xuICBjb25zdCByaWdodCA9IE1hdGguYWJzKHJlY3QucmlnaHQgLSBwb2ludC54KTtcbiAgY29uc3QgbGVmdCA9IE1hdGguYWJzKHJlY3QubGVmdCAtIHBvaW50LngpO1xuXG4gIHN3aXRjaCAoTWF0aC5taW4odG9wLCBib3R0b20sIHJpZ2h0LCBsZWZ0KSkge1xuICAgIGNhc2UgbGVmdDpcbiAgICAgIHJldHVybiAnbGVmdCc7XG4gICAgY2FzZSByaWdodDpcbiAgICAgIHJldHVybiAncmlnaHQnO1xuICAgIGNhc2UgdG9wOlxuICAgICAgcmV0dXJuICd0b3AnO1xuICAgIGNhc2UgYm90dG9tOlxuICAgICAgcmV0dXJuICdib3R0b20nO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VucmVhY2hhYmxlJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UGFkZGVkRXhpdFBvaW50cyhleGl0UG9pbnQ6IFBvaW50LCBleGl0U2lkZTogU2lkZSwgcGFkZGluZyA9IDUpIHtcbiAgY29uc3QgcGFkZGVkRXhpdFBvaW50czogUG9pbnRbXSA9IFtdO1xuICBzd2l0Y2ggKGV4aXRTaWRlKSB7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIHBhZGRlZEV4aXRQb2ludHMucHVzaChcbiAgICAgICAgeyB4OiBleGl0UG9pbnQueCAtIHBhZGRpbmcsIHk6IGV4aXRQb2ludC55ICsgcGFkZGluZyB9LFxuICAgICAgICB7IHg6IGV4aXRQb2ludC54ICsgcGFkZGluZywgeTogZXhpdFBvaW50LnkgKyBwYWRkaW5nIH1cbiAgICAgICk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdib3R0b20nOlxuICAgICAgcGFkZGVkRXhpdFBvaW50cy5wdXNoKFxuICAgICAgICB7IHg6IGV4aXRQb2ludC54IC0gcGFkZGluZywgeTogZXhpdFBvaW50LnkgLSBwYWRkaW5nIH0sXG4gICAgICAgIHsgeDogZXhpdFBvaW50LnggKyBwYWRkaW5nLCB5OiBleGl0UG9pbnQueSAtIHBhZGRpbmcgfVxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgcGFkZGVkRXhpdFBvaW50cy5wdXNoKFxuICAgICAgICB7IHg6IGV4aXRQb2ludC54ICsgcGFkZGluZywgeTogZXhpdFBvaW50LnkgLSBwYWRkaW5nIH0sXG4gICAgICAgIHsgeDogZXhpdFBvaW50LnggKyBwYWRkaW5nLCB5OiBleGl0UG9pbnQueSArIHBhZGRpbmcgfVxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIHBhZGRlZEV4aXRQb2ludHMucHVzaChcbiAgICAgICAgeyB4OiBleGl0UG9pbnQueCAtIHBhZGRpbmcsIHk6IGV4aXRQb2ludC55IC0gcGFkZGluZyB9LFxuICAgICAgICB7IHg6IGV4aXRQb2ludC54IC0gcGFkZGluZywgeTogZXhpdFBvaW50LnkgKyBwYWRkaW5nIH1cbiAgICAgICk7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gcGFkZGVkRXhpdFBvaW50cztcbn1cblxuZnVuY3Rpb24gZ2V0UG9pbnRzRnJvbVJlY3QocmVjdDogRE9NUmVjdCkge1xuICBjb25zdCB7IHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCB9ID0gcmVjdDtcbiAgcmV0dXJuIFtcbiAgICB7IHg6IGxlZnQsIHk6IHRvcCB9LFxuICAgIHsgeDogcmlnaHQsIHk6IHRvcCB9LFxuICAgIHsgeDogcmlnaHQsIHk6IGJvdHRvbSB9LFxuICAgIHsgeDogbGVmdCwgeTogYm90dG9tIH0sXG4gIF07XG59XG5cbi8vIERldGVybWluZSBpZiBhIHBvaW50IGlzIGluc2lkZSBvZiBhIHBvbHlnb24uXG4vLyBCYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vc3Vic3RhY2svcG9pbnQtaW4tcG9seWdvblxuZnVuY3Rpb24gaXNQb2ludEluUG9seWdvbihwb2ludDogUG9pbnQsIHBvbHlnb246IFBvbHlnb24pIHtcbiAgY29uc3QgeyB4LCB5IH0gPSBwb2ludDtcbiAgbGV0IGluc2lkZSA9IGZhbHNlO1xuICBmb3IgKGxldCBpID0gMCwgaiA9IHBvbHlnb24ubGVuZ3RoIC0gMTsgaSA8IHBvbHlnb24ubGVuZ3RoOyBqID0gaSsrKSB7XG4gICAgY29uc3QgeGkgPSBwb2x5Z29uW2ldLng7XG4gICAgY29uc3QgeWkgPSBwb2x5Z29uW2ldLnk7XG4gICAgY29uc3QgeGogPSBwb2x5Z29uW2pdLng7XG4gICAgY29uc3QgeWogPSBwb2x5Z29uW2pdLnk7XG5cbiAgICAvLyBwcmV0dGllci1pZ25vcmVcbiAgICBjb25zdCBpbnRlcnNlY3QgPSAoKHlpID4geSkgIT09ICh5aiA+IHkpKSAmJiAoeCA8ICh4aiAtIHhpKSAqICh5IC0geWkpIC8gKHlqIC0geWkpICsgeGkpO1xuICAgIGlmIChpbnRlcnNlY3QpIGluc2lkZSA9ICFpbnNpZGU7XG4gIH1cblxuICByZXR1cm4gaW5zaWRlO1xufVxuXG4vLyBSZXR1cm5zIGEgbmV3IGFycmF5IG9mIHBvaW50cyByZXByZXNlbnRpbmcgdGhlIGNvbnZleCBodWxsIG9mIHRoZSBnaXZlbiBzZXQgb2YgcG9pbnRzLlxuLy8gaHR0cHM6Ly93d3cubmF5dWtpLmlvL3BhZ2UvY29udmV4LWh1bGwtYWxnb3JpdGhtXG5mdW5jdGlvbiBnZXRIdWxsPFAgZXh0ZW5kcyBQb2ludD4ocG9pbnRzOiBSZWFkb25seTxBcnJheTxQPj4pOiBBcnJheTxQPiB7XG4gIGNvbnN0IG5ld1BvaW50czogQXJyYXk8UD4gPSBwb2ludHMuc2xpY2UoKTtcbiAgbmV3UG9pbnRzLnNvcnQoKGE6IFBvaW50LCBiOiBQb2ludCkgPT4ge1xuICAgIGlmIChhLnggPCBiLngpIHJldHVybiAtMTtcbiAgICBlbHNlIGlmIChhLnggPiBiLngpIHJldHVybiArMTtcbiAgICBlbHNlIGlmIChhLnkgPCBiLnkpIHJldHVybiAtMTtcbiAgICBlbHNlIGlmIChhLnkgPiBiLnkpIHJldHVybiArMTtcbiAgICBlbHNlIHJldHVybiAwO1xuICB9KTtcbiAgcmV0dXJuIGdldEh1bGxQcmVzb3J0ZWQobmV3UG9pbnRzKTtcbn1cblxuLy8gUmV0dXJucyB0aGUgY29udmV4IGh1bGwsIGFzc3VtaW5nIHRoYXQgZWFjaCBwb2ludHNbaV0gPD0gcG9pbnRzW2kgKyAxXS4gUnVucyBpbiBPKG4pIHRpbWUuXG5mdW5jdGlvbiBnZXRIdWxsUHJlc29ydGVkPFAgZXh0ZW5kcyBQb2ludD4ocG9pbnRzOiBSZWFkb25seTxBcnJheTxQPj4pOiBBcnJheTxQPiB7XG4gIGlmIChwb2ludHMubGVuZ3RoIDw9IDEpIHJldHVybiBwb2ludHMuc2xpY2UoKTtcblxuICBjb25zdCB1cHBlckh1bGw6IEFycmF5PFA+ID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgcCA9IHBvaW50c1tpXTtcbiAgICB3aGlsZSAodXBwZXJIdWxsLmxlbmd0aCA+PSAyKSB7XG4gICAgICBjb25zdCBxID0gdXBwZXJIdWxsW3VwcGVySHVsbC5sZW5ndGggLSAxXTtcbiAgICAgIGNvbnN0IHIgPSB1cHBlckh1bGxbdXBwZXJIdWxsLmxlbmd0aCAtIDJdO1xuICAgICAgaWYgKChxLnggLSByLngpICogKHAueSAtIHIueSkgPj0gKHEueSAtIHIueSkgKiAocC54IC0gci54KSkgdXBwZXJIdWxsLnBvcCgpO1xuICAgICAgZWxzZSBicmVhaztcbiAgICB9XG4gICAgdXBwZXJIdWxsLnB1c2gocCk7XG4gIH1cbiAgdXBwZXJIdWxsLnBvcCgpO1xuXG4gIGNvbnN0IGxvd2VySHVsbDogQXJyYXk8UD4gPSBbXTtcbiAgZm9yIChsZXQgaSA9IHBvaW50cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIGNvbnN0IHAgPSBwb2ludHNbaV07XG4gICAgd2hpbGUgKGxvd2VySHVsbC5sZW5ndGggPj0gMikge1xuICAgICAgY29uc3QgcSA9IGxvd2VySHVsbFtsb3dlckh1bGwubGVuZ3RoIC0gMV07XG4gICAgICBjb25zdCByID0gbG93ZXJIdWxsW2xvd2VySHVsbC5sZW5ndGggLSAyXTtcbiAgICAgIGlmICgocS54IC0gci54KSAqIChwLnkgLSByLnkpID49IChxLnkgLSByLnkpICogKHAueCAtIHIueCkpIGxvd2VySHVsbC5wb3AoKTtcbiAgICAgIGVsc2UgYnJlYWs7XG4gICAgfVxuICAgIGxvd2VySHVsbC5wdXNoKHApO1xuICB9XG4gIGxvd2VySHVsbC5wb3AoKTtcblxuICBpZiAoXG4gICAgdXBwZXJIdWxsLmxlbmd0aCA9PT0gMSAmJlxuICAgIGxvd2VySHVsbC5sZW5ndGggPT09IDEgJiZcbiAgICB1cHBlckh1bGxbMF0ueCA9PT0gbG93ZXJIdWxsWzBdLnggJiZcbiAgICB1cHBlckh1bGxbMF0ueSA9PT0gbG93ZXJIdWxsWzBdLnlcbiAgKSB7XG4gICAgcmV0dXJuIHVwcGVySHVsbDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdXBwZXJIdWxsLmNvbmNhdChsb3dlckh1bGwpO1xuICB9XG59XG5cbmNvbnN0IFByb3ZpZGVyID0gVG9vbHRpcFByb3ZpZGVyO1xuY29uc3QgUm9vdCA9IFRvb2x0aXA7XG5jb25zdCBUcmlnZ2VyID0gVG9vbHRpcFRyaWdnZXI7XG5jb25zdCBQb3J0YWwgPSBUb29sdGlwUG9ydGFsO1xuY29uc3QgQ29udGVudCA9IFRvb2x0aXBDb250ZW50O1xuY29uc3QgQXJyb3cgPSBUb29sdGlwQXJyb3c7XG5cbmV4cG9ydCB7XG4gIGNyZWF0ZVRvb2x0aXBTY29wZSxcbiAgLy9cbiAgVG9vbHRpcFByb3ZpZGVyLFxuICBUb29sdGlwLFxuICBUb29sdGlwVHJpZ2dlcixcbiAgVG9vbHRpcFBvcnRhbCxcbiAgVG9vbHRpcENvbnRlbnQsXG4gIFRvb2x0aXBBcnJvdyxcbiAgLy9cbiAgUHJvdmlkZXIsXG4gIFJvb3QsXG4gIFRyaWdnZXIsXG4gIFBvcnRhbCxcbiAgQ29udGVudCxcbiAgQXJyb3csXG59O1xuZXhwb3J0IHR5cGUge1xuICBUb29sdGlwUHJvdmlkZXJQcm9wcyxcbiAgVG9vbHRpcFByb3BzLFxuICBUb29sdGlwVHJpZ2dlclByb3BzLFxuICBUb29sdGlwUG9ydGFsUHJvcHMsXG4gIFRvb2x0aXBDb250ZW50UHJvcHMsXG4gIFRvb2x0aXBBcnJvd1Byb3BzLFxufTtcbiJdLCJuYW1lcyI6WyJvcGVuIiwiUm9vdCIsIkNvbnRlbnQiLCJBcnJvdyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-tooltip/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot/dist/index.mjs":
/*!***********************************************************************************************!*\
!*** ./node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot/dist/index.mjs ***!
\***********************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Slot: () => (/* binding */ Slot),\n/* harmony export */ Slottable: () => (/* binding */ Slottable)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(app-pages-browser)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/slot/src/Slot.tsx\n\n\n\nvar Slot = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (react__WEBPACK_IMPORTED_MODULE_0__.Children.count(newElement) > 1) return react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null);\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.composeRefs)(forwardedRef, childrenRef) : childrenRef\n });\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) > 1 ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children });\n};\nfunction isSlottable(child) {\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdG9vbHRpcC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDK0I7QUFDNEI7QUFDVDtBQUNsRCxXQUFXLDZDQUFnQjtBQUMzQixVQUFVLHlCQUF5QjtBQUNuQyx3QkFBd0IsMkNBQWM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksMkNBQWMsK0JBQStCLDJDQUFjO0FBQ3ZFLGVBQWUsaURBQW9CO0FBQ25DLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMLDJCQUEyQixzREFBRyxjQUFjLDJDQUEyQyxpREFBb0IsZUFBZSwrQ0FBa0IsMENBQTBDO0FBQ3RMO0FBQ0EseUJBQXlCLHNEQUFHLGNBQWMsMkNBQTJDO0FBQ3JGLENBQUM7QUFDRDtBQUNBLGdCQUFnQiw2Q0FBZ0I7QUFDaEMsVUFBVSx5QkFBeUI7QUFDbkMsTUFBTSxpREFBb0I7QUFDMUI7QUFDQSxXQUFXLCtDQUFrQjtBQUM3QjtBQUNBO0FBQ0EsMEJBQTBCLHlFQUFXO0FBQ3JDLEtBQUs7QUFDTDtBQUNBLFNBQVMsMkNBQWMsdUJBQXVCLDJDQUFjO0FBQzVELENBQUM7QUFDRDtBQUNBLG1CQUFtQixVQUFVO0FBQzdCLHlCQUF5QixzREFBRyxDQUFDLHVEQUFRLElBQUksVUFBVTtBQUNuRDtBQUNBO0FBQ0EsU0FBUyxpREFBb0I7QUFDN0I7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTtBQUNOLGtDQUFrQztBQUNsQyxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtFO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC10b29sdGlwL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3Qtc2xvdC9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9zbG90L3NyYy9TbG90LnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjb21wb3NlUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XG5pbXBvcnQgeyBGcmFnbWVudCwganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgU2xvdCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgLi4uc2xvdFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgY2hpbGRyZW5BcnJheSA9IFJlYWN0LkNoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pO1xuICBjb25zdCBzbG90dGFibGUgPSBjaGlsZHJlbkFycmF5LmZpbmQoaXNTbG90dGFibGUpO1xuICBpZiAoc2xvdHRhYmxlKSB7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHNsb3R0YWJsZS5wcm9wcy5jaGlsZHJlbjtcbiAgICBjb25zdCBuZXdDaGlsZHJlbiA9IGNoaWxkcmVuQXJyYXkubWFwKChjaGlsZCkgPT4ge1xuICAgICAgaWYgKGNoaWxkID09PSBzbG90dGFibGUpIHtcbiAgICAgICAgaWYgKFJlYWN0LkNoaWxkcmVuLmNvdW50KG5ld0VsZW1lbnQpID4gMSkgcmV0dXJuIFJlYWN0LkNoaWxkcmVuLm9ubHkobnVsbCk7XG4gICAgICAgIHJldHVybiBSZWFjdC5pc1ZhbGlkRWxlbWVudChuZXdFbGVtZW50KSA/IG5ld0VsZW1lbnQucHJvcHMuY2hpbGRyZW4gOiBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFNsb3RDbG9uZSwgeyAuLi5zbG90UHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmLCBjaGlsZHJlbjogUmVhY3QuaXNWYWxpZEVsZW1lbnQobmV3RWxlbWVudCkgPyBSZWFjdC5jbG9uZUVsZW1lbnQobmV3RWxlbWVudCwgdm9pZCAwLCBuZXdDaGlsZHJlbikgOiBudWxsIH0pO1xuICB9XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFNsb3RDbG9uZSwgeyAuLi5zbG90UHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmLCBjaGlsZHJlbiB9KTtcbn0pO1xuU2xvdC5kaXNwbGF5TmFtZSA9IFwiU2xvdFwiO1xudmFyIFNsb3RDbG9uZSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgLi4uc2xvdFByb3BzIH0gPSBwcm9wcztcbiAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSkge1xuICAgIGNvbnN0IGNoaWxkcmVuUmVmID0gZ2V0RWxlbWVudFJlZihjaGlsZHJlbik7XG4gICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZHJlbiwge1xuICAgICAgLi4ubWVyZ2VQcm9wcyhzbG90UHJvcHMsIGNoaWxkcmVuLnByb3BzKSxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJlZjogZm9yd2FyZGVkUmVmID8gY29tcG9zZVJlZnMoZm9yd2FyZGVkUmVmLCBjaGlsZHJlblJlZikgOiBjaGlsZHJlblJlZlxuICAgIH0pO1xuICB9XG4gIHJldHVybiBSZWFjdC5DaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAxID8gUmVhY3QuQ2hpbGRyZW4ub25seShudWxsKSA6IG51bGw7XG59KTtcblNsb3RDbG9uZS5kaXNwbGF5TmFtZSA9IFwiU2xvdENsb25lXCI7XG52YXIgU2xvdHRhYmxlID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChGcmFnbWVudCwgeyBjaGlsZHJlbiB9KTtcbn07XG5mdW5jdGlvbiBpc1Nsb3R0YWJsZShjaGlsZCkge1xuICByZXR1cm4gUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpICYmIGNoaWxkLnR5cGUgPT09IFNsb3R0YWJsZTtcbn1cbmZ1bmN0aW9uIG1lcmdlUHJvcHMoc2xvdFByb3BzLCBjaGlsZFByb3BzKSB7XG4gIGNvbnN0IG92ZXJyaWRlUHJvcHMgPSB7IC4uLmNoaWxkUHJvcHMgfTtcbiAgZm9yIChjb25zdCBwcm9wTmFtZSBpbiBjaGlsZFByb3BzKSB7XG4gICAgY29uc3Qgc2xvdFByb3BWYWx1ZSA9IHNsb3RQcm9wc1twcm9wTmFtZV07XG4gICAgY29uc3QgY2hpbGRQcm9wVmFsdWUgPSBjaGlsZFByb3BzW3Byb3BOYW1lXTtcbiAgICBjb25zdCBpc0hhbmRsZXIgPSAvXm9uW0EtWl0vLnRlc3QocHJvcE5hbWUpO1xuICAgIGlmIChpc0hhbmRsZXIpIHtcbiAgICAgIGlmIChzbG90UHJvcFZhbHVlICYmIGNoaWxkUHJvcFZhbHVlKSB7XG4gICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICBjaGlsZFByb3BWYWx1ZSguLi5hcmdzKTtcbiAgICAgICAgICBzbG90UHJvcFZhbHVlKC4uLmFyZ3MpO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChzbG90UHJvcFZhbHVlKSB7XG4gICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gc2xvdFByb3BWYWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcInN0eWxlXCIpIHtcbiAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0geyAuLi5zbG90UHJvcFZhbHVlLCAuLi5jaGlsZFByb3BWYWx1ZSB9O1xuICAgIH0gZWxzZSBpZiAocHJvcE5hbWUgPT09IFwiY2xhc3NOYW1lXCIpIHtcbiAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gW3Nsb3RQcm9wVmFsdWUsIGNoaWxkUHJvcFZhbHVlXS5maWx0ZXIoQm9vbGVhbikuam9pbihcIiBcIik7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IC4uLnNsb3RQcm9wcywgLi4ub3ZlcnJpZGVQcm9wcyB9O1xufVxuZnVuY3Rpb24gZ2V0RWxlbWVudFJlZihlbGVtZW50KSB7XG4gIGxldCBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQucHJvcHMsIFwicmVmXCIpPy5nZXQ7XG4gIGxldCBtYXlXYXJuID0gZ2V0dGVyICYmIFwiaXNSZWFjdFdhcm5pbmdcIiBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICBpZiAobWF5V2Fybikge1xuICAgIHJldHVybiBlbGVtZW50LnJlZjtcbiAgfVxuICBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQsIFwicmVmXCIpPy5nZXQ7XG4gIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gIGlmIChtYXlXYXJuKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmO1xuICB9XG4gIHJldHVybiBlbGVtZW50LnByb3BzLnJlZiB8fCBlbGVtZW50LnJlZjtcbn1cbnZhciBSb290ID0gU2xvdDtcbmV4cG9ydCB7XG4gIFJvb3QsXG4gIFNsb3QsXG4gIFNsb3R0YWJsZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs":
/*!**********************************************************************!*\
!*** ./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs ***!
\**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCallbackRef: () => (/* binding */ useCallbackRef)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n// packages/react/use-callback-ref/src/useCallbackRef.tsx\n\nfunction useCallbackRef(callback) {\n const callbackRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(callback);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n callbackRef.current = callback;\n });\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZi9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQytCO0FBQy9CO0FBQ0Esc0JBQXNCLHlDQUFZO0FBQ2xDLEVBQUUsNENBQWU7QUFDakI7QUFDQSxHQUFHO0FBQ0gsU0FBUywwQ0FBYTtBQUN0QjtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3VzZS1jYWxsYmFjay1yZWYvc3JjL3VzZUNhbGxiYWNrUmVmLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiB1c2VDYWxsYmFja1JlZihjYWxsYmFjaykge1xuICBjb25zdCBjYWxsYmFja1JlZiA9IFJlYWN0LnVzZVJlZihjYWxsYmFjayk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY2FsbGJhY2tSZWYuY3VycmVudCA9IGNhbGxiYWNrO1xuICB9KTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gKC4uLmFyZ3MpID0+IGNhbGxiYWNrUmVmLmN1cnJlbnQ/LiguLi5hcmdzKSwgW10pO1xufVxuZXhwb3J0IHtcbiAgdXNlQ2FsbGJhY2tSZWZcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs":
/*!****************************************************************************!*\
!*** ./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs ***!
\****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useControllableState: () => (/* binding */ useControllableState)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n// packages/react/use-controllable-state/src/useControllableState.tsx\n\n\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onChange);\n const setValue = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = react__WEBPACK_IMPORTED_MODULE_0__.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(value);\n const handleChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onChange);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZS9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUMrQjtBQUNtQztBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHlFQUF5RSx1QkFBdUI7QUFDaEc7QUFDQTtBQUNBLHVCQUF1QixnRkFBYztBQUNyQyxtQkFBbUIsOENBQWlCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCw0QkFBNEIsMkNBQWM7QUFDMUM7QUFDQSx1QkFBdUIseUNBQVk7QUFDbkMsdUJBQXVCLGdGQUFjO0FBQ3JDLEVBQUUsNENBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3VzZS1jb250cm9sbGFibGUtc3RhdGUvc3JjL3VzZUNvbnRyb2xsYWJsZVN0YXRlLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZlwiO1xuZnVuY3Rpb24gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICBwcm9wLFxuICBkZWZhdWx0UHJvcCxcbiAgb25DaGFuZ2UgPSAoKSA9PiB7XG4gIH1cbn0pIHtcbiAgY29uc3QgW3VuY29udHJvbGxlZFByb3AsIHNldFVuY29udHJvbGxlZFByb3BdID0gdXNlVW5jb250cm9sbGVkU3RhdGUoeyBkZWZhdWx0UHJvcCwgb25DaGFuZ2UgfSk7XG4gIGNvbnN0IGlzQ29udHJvbGxlZCA9IHByb3AgIT09IHZvaWQgMDtcbiAgY29uc3QgdmFsdWUgPSBpc0NvbnRyb2xsZWQgPyBwcm9wIDogdW5jb250cm9sbGVkUHJvcDtcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2tSZWYob25DaGFuZ2UpO1xuICBjb25zdCBzZXRWYWx1ZSA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgIChuZXh0VmFsdWUpID0+IHtcbiAgICAgIGlmIChpc0NvbnRyb2xsZWQpIHtcbiAgICAgICAgY29uc3Qgc2V0dGVyID0gbmV4dFZhbHVlO1xuICAgICAgICBjb25zdCB2YWx1ZTIgPSB0eXBlb2YgbmV4dFZhbHVlID09PSBcImZ1bmN0aW9uXCIgPyBzZXR0ZXIocHJvcCkgOiBuZXh0VmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZTIgIT09IHByb3ApIGhhbmRsZUNoYW5nZSh2YWx1ZTIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0VW5jb250cm9sbGVkUHJvcChuZXh0VmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2lzQ29udHJvbGxlZCwgcHJvcCwgc2V0VW5jb250cm9sbGVkUHJvcCwgaGFuZGxlQ2hhbmdlXVxuICApO1xuICByZXR1cm4gW3ZhbHVlLCBzZXRWYWx1ZV07XG59XG5mdW5jdGlvbiB1c2VVbmNvbnRyb2xsZWRTdGF0ZSh7XG4gIGRlZmF1bHRQcm9wLFxuICBvbkNoYW5nZVxufSkge1xuICBjb25zdCB1bmNvbnRyb2xsZWRTdGF0ZSA9IFJlYWN0LnVzZVN0YXRlKGRlZmF1bHRQcm9wKTtcbiAgY29uc3QgW3ZhbHVlXSA9IHVuY29udHJvbGxlZFN0YXRlO1xuICBjb25zdCBwcmV2VmFsdWVSZWYgPSBSZWFjdC51c2VSZWYodmFsdWUpO1xuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFja1JlZihvbkNoYW5nZSk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHByZXZWYWx1ZVJlZi5jdXJyZW50ICE9PSB2YWx1ZSkge1xuICAgICAgaGFuZGxlQ2hhbmdlKHZhbHVlKTtcbiAgICAgIHByZXZWYWx1ZVJlZi5jdXJyZW50ID0gdmFsdWU7XG4gICAgfVxuICB9LCBbdmFsdWUsIHByZXZWYWx1ZVJlZiwgaGFuZGxlQ2hhbmdlXSk7XG4gIHJldHVybiB1bmNvbnRyb2xsZWRTdGF0ZTtcbn1cbmV4cG9ydCB7XG4gIHVzZUNvbnRyb2xsYWJsZVN0YXRlXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs":
/*!************************************************************************!*\
!*** ./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs ***!
\************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useEscapeKeydown: () => (/* binding */ useEscapeKeydown)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx\n\n\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onEscapeKeyDownProp);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWVzY2FwZS1rZXlkb3duL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQytCO0FBQ21DO0FBQ2xFO0FBQ0EsMEJBQTBCLGdGQUFjO0FBQ3hDLEVBQUUsNENBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtEQUErRCxlQUFlO0FBQzlFLCtFQUErRSxlQUFlO0FBQzlGLEdBQUc7QUFDSDtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtZXNjYXBlLWtleWRvd24vZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvdXNlLWVzY2FwZS1rZXlkb3duL3NyYy91c2VFc2NhcGVLZXlkb3duLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZlwiO1xuZnVuY3Rpb24gdXNlRXNjYXBlS2V5ZG93bihvbkVzY2FwZUtleURvd25Qcm9wLCBvd25lckRvY3VtZW50ID0gZ2xvYmFsVGhpcz8uZG9jdW1lbnQpIHtcbiAgY29uc3Qgb25Fc2NhcGVLZXlEb3duID0gdXNlQ2FsbGJhY2tSZWYob25Fc2NhcGVLZXlEb3duUHJvcCk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFc2NhcGVcIikge1xuICAgICAgICBvbkVzY2FwZUtleURvd24oZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG4gICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVLZXlEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgcmV0dXJuICgpID0+IG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgaGFuZGxlS2V5RG93biwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICB9LCBbb25Fc2NhcGVLZXlEb3duLCBvd25lckRvY3VtZW50XSk7XG59XG5leHBvcnQge1xuICB1c2VFc2NhcGVLZXlkb3duXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs":
/*!***********************************************************************!*\
!*** ./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs ***!
\***********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useLayoutEffect: () => (/* binding */ useLayoutEffect2)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n// packages/react/use-layout-effect/src/useLayoutEffect.tsx\n\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : () => {\n};\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWxheW91dC1lZmZlY3QvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUMrQjtBQUMvQix1REFBdUQsa0RBQXFCO0FBQzVFO0FBR0U7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0L2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3VzZS1sYXlvdXQtZWZmZWN0L3NyYy91c2VMYXlvdXRFZmZlY3QudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbnZhciB1c2VMYXlvdXRFZmZlY3QyID0gQm9vbGVhbihnbG9iYWxUaGlzPy5kb2N1bWVudCkgPyBSZWFjdC51c2VMYXlvdXRFZmZlY3QgOiAoKSA9PiB7XG59O1xuZXhwb3J0IHtcbiAgdXNlTGF5b3V0RWZmZWN0MiBhcyB1c2VMYXlvdXRFZmZlY3Rcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-previous/dist/index.mjs":
/*!******************************************************************!*\
!*** ./node_modules/@radix-ui/react-use-previous/dist/index.mjs ***!
\******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ usePrevious: () => (/* binding */ usePrevious)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n// packages/react/use-previous/src/usePrevious.tsx\n\nfunction usePrevious(value) {\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef({ value, previous: value });\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLXByZXZpb3VzL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDK0I7QUFDL0I7QUFDQSxjQUFjLHlDQUFZLEdBQUcsd0JBQXdCO0FBQ3JELFNBQVMsMENBQWE7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtcHJldmlvdXMvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvdXNlLXByZXZpb3VzL3NyYy91c2VQcmV2aW91cy50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gdXNlUHJldmlvdXModmFsdWUpIHtcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmKHsgdmFsdWUsIHByZXZpb3VzOiB2YWx1ZSB9KTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChyZWYuY3VycmVudC52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHJlZi5jdXJyZW50LnByZXZpb3VzID0gcmVmLmN1cnJlbnQudmFsdWU7XG4gICAgICByZWYuY3VycmVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gcmVmLmN1cnJlbnQucHJldmlvdXM7XG4gIH0sIFt2YWx1ZV0pO1xufVxuZXhwb3J0IHtcbiAgdXNlUHJldmlvdXNcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-previous/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-use-size/dist/index.mjs":
/*!**************************************************************!*\
!*** ./node_modules/@radix-ui/react-use-size/dist/index.mjs ***!
\**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSize: () => (/* binding */ useSize)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(app-pages-browser)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n// packages/react/use-size/src/useSize.tsx\n\n\nfunction useSize(element) {\n const [size, setSize] = react__WEBPACK_IMPORTED_MODULE_0__.useState(void 0);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLXNpemUvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDK0I7QUFDcUM7QUFDcEU7QUFDQSwwQkFBMEIsMkNBQWM7QUFDeEMsRUFBRSxrRkFBZTtBQUNqQjtBQUNBLGdCQUFnQiwwREFBMEQ7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixlQUFlO0FBQ2pDLE9BQU87QUFDUCx3Q0FBd0MsbUJBQW1CO0FBQzNEO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2Utc2l6ZS9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC91c2Utc2l6ZS9zcmMvdXNlU2l6ZS50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdFwiO1xuZnVuY3Rpb24gdXNlU2l6ZShlbGVtZW50KSB7XG4gIGNvbnN0IFtzaXplLCBzZXRTaXplXSA9IFJlYWN0LnVzZVN0YXRlKHZvaWQgMCk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHNldFNpemUoeyB3aWR0aDogZWxlbWVudC5vZmZzZXRXaWR0aCwgaGVpZ2h0OiBlbGVtZW50Lm9mZnNldEhlaWdodCB9KTtcbiAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShlbnRyaWVzKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWVudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcbiAgICAgICAgbGV0IHdpZHRoO1xuICAgICAgICBsZXQgaGVpZ2h0O1xuICAgICAgICBpZiAoXCJib3JkZXJCb3hTaXplXCIgaW4gZW50cnkpIHtcbiAgICAgICAgICBjb25zdCBib3JkZXJTaXplRW50cnkgPSBlbnRyeVtcImJvcmRlckJveFNpemVcIl07XG4gICAgICAgICAgY29uc3QgYm9yZGVyU2l6ZSA9IEFycmF5LmlzQXJyYXkoYm9yZGVyU2l6ZUVudHJ5KSA/IGJvcmRlclNpemVFbnRyeVswXSA6IGJvcmRlclNpemVFbnRyeTtcbiAgICAgICAgICB3aWR0aCA9IGJvcmRlclNpemVbXCJpbmxpbmVTaXplXCJdO1xuICAgICAgICAgIGhlaWdodCA9IGJvcmRlclNpemVbXCJibG9ja1NpemVcIl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgIGhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIHNldFNpemUoeyB3aWR0aCwgaGVpZ2h0IH0pO1xuICAgICAgfSk7XG4gICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQsIHsgYm94OiBcImJvcmRlci1ib3hcIiB9KTtcbiAgICAgIHJldHVybiAoKSA9PiByZXNpemVPYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFNpemUodm9pZCAwKTtcbiAgICB9XG4gIH0sIFtlbGVtZW50XSk7XG4gIHJldHVybiBzaXplO1xufVxuZXhwb3J0IHtcbiAgdXNlU2l6ZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-use-size/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs":
/*!*********************************************************************!*\
!*** ./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs ***!
\*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ VisuallyHidden: () => (/* binding */ VisuallyHidden)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(app-pages-browser)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n// packages/react/visually-hidden/src/VisuallyHidden.tsx\n\n\n\nvar NAME = \"VisuallyHidden\";\nvar VisuallyHidden = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.span,\n {\n ...props,\n ref: forwardedRef,\n style: {\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n ...props.style\n }\n }\n );\n }\n);\nVisuallyHidden.displayName = NAME;\nvar Root = VisuallyHidden;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdmlzdWFsbHktaGlkZGVuL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDK0I7QUFDdUI7QUFDZDtBQUN4QztBQUNBLHFCQUFxQiw2Q0FBZ0I7QUFDckM7QUFDQSwyQkFBMkIsc0RBQUc7QUFDOUIsTUFBTSxnRUFBUztBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJRTtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdmlzdWFsbHktaGlkZGVuL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3Zpc3VhbGx5LWhpZGRlbi9zcmMvVmlzdWFsbHlIaWRkZW4udHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBOQU1FID0gXCJWaXN1YWxseUhpZGRlblwiO1xudmFyIFZpc3VhbGx5SGlkZGVuID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChcbiAgICAgIFByaW1pdGl2ZS5zcGFuLFxuICAgICAge1xuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL3Njc3MvbWl4aW5zL192aXN1YWxseS1oaWRkZW4uc2Nzc1xuICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAgIHdpZHRoOiAxLFxuICAgICAgICAgIGhlaWdodDogMSxcbiAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgIG1hcmdpbjogLTEsXG4gICAgICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgY2xpcDogXCJyZWN0KDAsIDAsIDAsIDApXCIsXG4gICAgICAgICAgd2hpdGVTcGFjZTogXCJub3dyYXBcIixcbiAgICAgICAgICB3b3JkV3JhcDogXCJub3JtYWxcIixcbiAgICAgICAgICAuLi5wcm9wcy5zdHlsZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuKTtcblZpc3VhbGx5SGlkZGVuLmRpc3BsYXlOYW1lID0gTkFNRTtcbnZhciBSb290ID0gVmlzdWFsbHlIaWRkZW47XG5leHBvcnQge1xuICBSb290LFxuICBWaXN1YWxseUhpZGRlblxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/aria-hidden/dist/es2015/index.js":
/*!*******************************************************!*\
!*** ./node_modules/aria-hidden/dist/es2015/index.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hideOthers: () => (/* binding */ hideOthers),\n/* harmony export */ inertOthers: () => (/* binding */ inertOthers),\n/* harmony export */ supportsInert: () => (/* binding */ supportsInert),\n/* harmony export */ suppressOthers: () => (/* binding */ suppressOthers)\n/* harmony export */ });\nvar getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nvar hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nvar inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nvar supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nvar suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9hcmlhLWhpZGRlbi9kaXN0L2VzMjAxNS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCwrQkFBK0Isb0JBQW9CO0FBQ25EO0FBQ0E7QUFDQTtBQUNBLFdBQVcscUJBQXFCO0FBQ2hDO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixZQUFZLE1BQU07QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxxQkFBcUI7QUFDaEM7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxNQUFNO0FBQ2xCO0FBQ087QUFDUCxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxxQkFBcUI7QUFDaEM7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxNQUFNO0FBQ2xCO0FBQ087QUFDUCxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxxQkFBcUI7QUFDaEM7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxNQUFNO0FBQ2xCO0FBQ087QUFDUCxpQ0FBaUM7QUFDakM7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvYXJpYS1oaWRkZW4vZGlzdC9lczIwMTUvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGdldERlZmF1bHRQYXJlbnQgPSBmdW5jdGlvbiAob3JpZ2luYWxUYXJnZXQpIHtcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFyIHNhbXBsZVRhcmdldCA9IEFycmF5LmlzQXJyYXkob3JpZ2luYWxUYXJnZXQpID8gb3JpZ2luYWxUYXJnZXRbMF0gOiBvcmlnaW5hbFRhcmdldDtcbiAgICByZXR1cm4gc2FtcGxlVGFyZ2V0Lm93bmVyRG9jdW1lbnQuYm9keTtcbn07XG52YXIgY291bnRlck1hcCA9IG5ldyBXZWFrTWFwKCk7XG52YXIgdW5jb250cm9sbGVkTm9kZXMgPSBuZXcgV2Vha01hcCgpO1xudmFyIG1hcmtlck1hcCA9IHt9O1xudmFyIGxvY2tDb3VudCA9IDA7XG52YXIgdW53cmFwSG9zdCA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUgJiYgKG5vZGUuaG9zdCB8fCB1bndyYXBIb3N0KG5vZGUucGFyZW50Tm9kZSkpO1xufTtcbnZhciBjb3JyZWN0VGFyZ2V0cyA9IGZ1bmN0aW9uIChwYXJlbnQsIHRhcmdldHMpIHtcbiAgICByZXR1cm4gdGFyZ2V0c1xuICAgICAgICAubWFwKGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICAgICAgaWYgKHBhcmVudC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgICAgICB9XG4gICAgICAgIHZhciBjb3JyZWN0ZWRUYXJnZXQgPSB1bndyYXBIb3N0KHRhcmdldCk7XG4gICAgICAgIGlmIChjb3JyZWN0ZWRUYXJnZXQgJiYgcGFyZW50LmNvbnRhaW5zKGNvcnJlY3RlZFRhcmdldCkpIHtcbiAgICAgICAgICAgIHJldHVybiBjb3JyZWN0ZWRUYXJnZXQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5lcnJvcignYXJpYS1oaWRkZW4nLCB0YXJnZXQsICdpbiBub3QgY29udGFpbmVkIGluc2lkZScsIHBhcmVudCwgJy4gRG9pbmcgbm90aGluZycpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9KVxuICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uICh4KSB7IHJldHVybiBCb29sZWFuKHgpOyB9KTtcbn07XG4vKipcbiAqIE1hcmtzIGV2ZXJ5dGhpbmcgZXhjZXB0IGdpdmVuIG5vZGUob3Igbm9kZXMpIGFzIGFyaWEtaGlkZGVuXG4gKiBAcGFyYW0ge0VsZW1lbnQgfCBFbGVtZW50W119IG9yaWdpbmFsVGFyZ2V0IC0gZWxlbWVudHMgdG8ga2VlcCBvbiB0aGUgcGFnZVxuICogQHBhcmFtIFtwYXJlbnROb2RlXSAtIHRvcCBlbGVtZW50LCBkZWZhdWx0cyB0byBkb2N1bWVudC5ib2R5XG4gKiBAcGFyYW0ge1N0cmluZ30gW21hcmtlck5hbWVdIC0gYSBzcGVjaWFsIGF0dHJpYnV0ZSB0byBtYXJrIGV2ZXJ5IG5vZGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBbY29udHJvbEF0dHJpYnV0ZV0gLSBodG1sIEF0dHJpYnV0ZSB0byBjb250cm9sXG4gKiBAcmV0dXJuIHtVbmRvfSB1bmRvIGNvbW1hbmRcbiAqL1xudmFyIGFwcGx5QXR0cmlidXRlVG9PdGhlcnMgPSBmdW5jdGlvbiAob3JpZ2luYWxUYXJnZXQsIHBhcmVudE5vZGUsIG1hcmtlck5hbWUsIGNvbnRyb2xBdHRyaWJ1dGUpIHtcbiAgICB2YXIgdGFyZ2V0cyA9IGNvcnJlY3RUYXJnZXRzKHBhcmVudE5vZGUsIEFycmF5LmlzQXJyYXkob3JpZ2luYWxUYXJnZXQpID8gb3JpZ2luYWxUYXJnZXQgOiBbb3JpZ2luYWxUYXJnZXRdKTtcbiAgICBpZiAoIW1hcmtlck1hcFttYXJrZXJOYW1lXSkge1xuICAgICAgICBtYXJrZXJNYXBbbWFya2VyTmFtZV0gPSBuZXcgV2Vha01hcCgpO1xuICAgIH1cbiAgICB2YXIgbWFya2VyQ291bnRlciA9IG1hcmtlck1hcFttYXJrZXJOYW1lXTtcbiAgICB2YXIgaGlkZGVuTm9kZXMgPSBbXTtcbiAgICB2YXIgZWxlbWVudHNUb0tlZXAgPSBuZXcgU2V0KCk7XG4gICAgdmFyIGVsZW1lbnRzVG9TdG9wID0gbmV3IFNldCh0YXJnZXRzKTtcbiAgICB2YXIga2VlcCA9IGZ1bmN0aW9uIChlbCkge1xuICAgICAgICBpZiAoIWVsIHx8IGVsZW1lbnRzVG9LZWVwLmhhcyhlbCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBlbGVtZW50c1RvS2VlcC5hZGQoZWwpO1xuICAgICAgICBrZWVwKGVsLnBhcmVudE5vZGUpO1xuICAgIH07XG4gICAgdGFyZ2V0cy5mb3JFYWNoKGtlZXApO1xuICAgIHZhciBkZWVwID0gZnVuY3Rpb24gKHBhcmVudCkge1xuICAgICAgICBpZiAoIXBhcmVudCB8fCBlbGVtZW50c1RvU3RvcC5oYXMocGFyZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwocGFyZW50LmNoaWxkcmVuLCBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRzVG9LZWVwLmhhcyhub2RlKSkge1xuICAgICAgICAgICAgICAgIGRlZXAobm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgYXR0ciA9IG5vZGUuZ2V0QXR0cmlidXRlKGNvbnRyb2xBdHRyaWJ1dGUpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgYWxyZWFkeUhpZGRlbiA9IGF0dHIgIT09IG51bGwgJiYgYXR0ciAhPT0gJ2ZhbHNlJztcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvdW50ZXJWYWx1ZSA9IChjb3VudGVyTWFwLmdldChub2RlKSB8fCAwKSArIDE7XG4gICAgICAgICAgICAgICAgICAgIHZhciBtYXJrZXJWYWx1ZSA9IChtYXJrZXJDb3VudGVyLmdldChub2RlKSB8fCAwKSArIDE7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJNYXAuc2V0KG5vZGUsIGNvdW50ZXJWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmtlckNvdW50ZXIuc2V0KG5vZGUsIG1hcmtlclZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgaGlkZGVuTm9kZXMucHVzaChub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ZXJWYWx1ZSA9PT0gMSAmJiBhbHJlYWR5SGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmNvbnRyb2xsZWROb2Rlcy5zZXQobm9kZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1hcmtlclZhbHVlID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShtYXJrZXJOYW1lLCAndHJ1ZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghYWxyZWFkeUhpZGRlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoY29udHJvbEF0dHJpYnV0ZSwgJ3RydWUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdhcmlhLWhpZGRlbjogY2Fubm90IG9wZXJhdGUgb24gJywgbm9kZSwgZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGRlZXAocGFyZW50Tm9kZSk7XG4gICAgZWxlbWVudHNUb0tlZXAuY2xlYXIoKTtcbiAgICBsb2NrQ291bnQrKztcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICBoaWRkZW5Ob2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgICAgICB2YXIgY291bnRlclZhbHVlID0gY291bnRlck1hcC5nZXQobm9kZSkgLSAxO1xuICAgICAgICAgICAgdmFyIG1hcmtlclZhbHVlID0gbWFya2VyQ291bnRlci5nZXQobm9kZSkgLSAxO1xuICAgICAgICAgICAgY291bnRlck1hcC5zZXQobm9kZSwgY291bnRlclZhbHVlKTtcbiAgICAgICAgICAgIG1hcmtlckNvdW50ZXIuc2V0KG5vZGUsIG1hcmtlclZhbHVlKTtcbiAgICAgICAgICAgIGlmICghY291bnRlclZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF1bmNvbnRyb2xsZWROb2Rlcy5oYXMobm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoY29udHJvbEF0dHJpYnV0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHVuY29udHJvbGxlZE5vZGVzLmRlbGV0ZShub2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbWFya2VyVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShtYXJrZXJOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGxvY2tDb3VudC0tO1xuICAgICAgICBpZiAoIWxvY2tDb3VudCkge1xuICAgICAgICAgICAgLy8gY2xlYXJcbiAgICAgICAgICAgIGNvdW50ZXJNYXAgPSBuZXcgV2Vha01hcCgpO1xuICAgICAgICAgICAgY291bnRlck1hcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICAgICAgICB1bmNvbnRyb2xsZWROb2RlcyA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICAgICAgICBtYXJrZXJNYXAgPSB7fTtcbiAgICAgICAgfVxuICAgIH07XG59O1xuLyoqXG4gKiBNYXJrcyBldmVyeXRoaW5nIGV4Y2VwdCBnaXZlbiBub2RlKG9yIG5vZGVzKSBhcyBhcmlhLWhpZGRlblxuICogQHBhcmFtIHtFbGVtZW50IHwgRWxlbWVudFtdfSBvcmlnaW5hbFRhcmdldCAtIGVsZW1lbnRzIHRvIGtlZXAgb24gdGhlIHBhZ2VcbiAqIEBwYXJhbSBbcGFyZW50Tm9kZV0gLSB0b3AgZWxlbWVudCwgZGVmYXVsdHMgdG8gZG9jdW1lbnQuYm9keVxuICogQHBhcmFtIHtTdHJpbmd9IFttYXJrZXJOYW1lXSAtIGEgc3BlY2lhbCBhdHRyaWJ1dGUgdG8gbWFyayBldmVyeSBub2RlXG4gKiBAcmV0dXJuIHtVbmRvfSB1bmRvIGNvbW1hbmRcbiAqL1xuZXhwb3J0IHZhciBoaWRlT3RoZXJzID0gZnVuY3Rpb24gKG9yaWdpbmFsVGFyZ2V0LCBwYXJlbnROb2RlLCBtYXJrZXJOYW1lKSB7XG4gICAgaWYgKG1hcmtlck5hbWUgPT09IHZvaWQgMCkgeyBtYXJrZXJOYW1lID0gJ2RhdGEtYXJpYS1oaWRkZW4nOyB9XG4gICAgdmFyIHRhcmdldHMgPSBBcnJheS5mcm9tKEFycmF5LmlzQXJyYXkob3JpZ2luYWxUYXJnZXQpID8gb3JpZ2luYWxUYXJnZXQgOiBbb3JpZ2luYWxUYXJnZXRdKTtcbiAgICB2YXIgYWN0aXZlUGFyZW50Tm9kZSA9IHBhcmVudE5vZGUgfHwgZ2V0RGVmYXVsdFBhcmVudChvcmlnaW5hbFRhcmdldCk7XG4gICAgaWYgKCFhY3RpdmVQYXJlbnROb2RlKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7IHJldHVybiBudWxsOyB9O1xuICAgIH1cbiAgICAvLyB3ZSBzaG91bGQgbm90IGhpZGUgYXJpYUxpdmUgZWxlbWVudHMgLSBodHRwczovL2dpdGh1Yi5jb20vdGhlS2FzaGV5L2FyaWEtaGlkZGVuL2lzc3Vlcy8xMFxuICAgIHRhcmdldHMucHVzaC5hcHBseSh0YXJnZXRzLCBBcnJheS5mcm9tKGFjdGl2ZVBhcmVudE5vZGUucXVlcnlTZWxlY3RvckFsbCgnW2FyaWEtbGl2ZV0nKSkpO1xuICAgIHJldHVybiBhcHBseUF0dHJpYnV0ZVRvT3RoZXJzKHRhcmdldHMsIGFjdGl2ZVBhcmVudE5vZGUsIG1hcmtlck5hbWUsICdhcmlhLWhpZGRlbicpO1xufTtcbi8qKlxuICogTWFya3MgZXZlcnl0aGluZyBleGNlcHQgZ2l2ZW4gbm9kZShvciBub2RlcykgYXMgaW5lcnRcbiAqIEBwYXJhbSB7RWxlbWVudCB8IEVsZW1lbnRbXX0gb3JpZ2luYWxUYXJnZXQgLSBlbGVtZW50cyB0byBrZWVwIG9uIHRoZSBwYWdlXG4gKiBAcGFyYW0gW3BhcmVudE5vZGVdIC0gdG9wIGVsZW1lbnQsIGRlZmF1bHRzIHRvIGRvY3VtZW50LmJvZHlcbiAqIEBwYXJhbSB7U3RyaW5nfSBbbWFya2VyTmFtZV0gLSBhIHNwZWNpYWwgYXR0cmlidXRlIHRvIG1hcmsgZXZlcnkgbm9kZVxuICogQHJldHVybiB7VW5kb30gdW5kbyBjb21tYW5kXG4gKi9cbmV4cG9ydCB2YXIgaW5lcnRPdGhlcnMgPSBmdW5jdGlvbiAob3JpZ2luYWxUYXJnZXQsIHBhcmVudE5vZGUsIG1hcmtlck5hbWUpIHtcbiAgICBpZiAobWFya2VyTmFtZSA9PT0gdm9pZCAwKSB7IG1hcmtlck5hbWUgPSAnZGF0YS1pbmVydC1lZCc7IH1cbiAgICB2YXIgYWN0aXZlUGFyZW50Tm9kZSA9IHBhcmVudE5vZGUgfHwgZ2V0RGVmYXVsdFBhcmVudChvcmlnaW5hbFRhcmdldCk7XG4gICAgaWYgKCFhY3RpdmVQYXJlbnROb2RlKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7IHJldHVybiBudWxsOyB9O1xuICAgIH1cbiAgICByZXR1cm4gYXBwbHlBdHRyaWJ1dGVUb090aGVycyhvcmlnaW5hbFRhcmdldCwgYWN0aXZlUGFyZW50Tm9kZSwgbWFya2VyTmFtZSwgJ2luZXJ0Jyk7XG59O1xuLyoqXG4gKiBAcmV0dXJucyBpZiBjdXJyZW50IGJyb3dzZXIgc3VwcG9ydHMgaW5lcnRcbiAqL1xuZXhwb3J0IHZhciBzdXBwb3J0c0luZXJ0ID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0eXBlb2YgSFRNTEVsZW1lbnQgIT09ICd1bmRlZmluZWQnICYmIEhUTUxFbGVtZW50LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgnaW5lcnQnKTtcbn07XG4vKipcbiAqIEF1dG9tYXRpYyBmdW5jdGlvbiB0byBcInN1cHByZXNzXCIgRE9NIGVsZW1lbnRzIC0gX2hpZGVfIG9yIF9pbmVydF8gaW4gdGhlIGJlc3QgcG9zc2libGUgd2F5XG4gKiBAcGFyYW0ge0VsZW1lbnQgfCBFbGVtZW50W119IG9yaWdpbmFsVGFyZ2V0IC0gZWxlbWVudHMgdG8ga2VlcCBvbiB0aGUgcGFnZVxuICogQHBhcmFtIFtwYXJlbnROb2RlXSAtIHRvcCBlbGVtZW50LCBkZWZhdWx0cyB0byBkb2N1bWVudC5ib2R5XG4gKiBAcGFyYW0ge1N0cmluZ30gW21hcmtlck5hbWVdIC0gYSBzcGVjaWFsIGF0dHJpYnV0ZSB0byBtYXJrIGV2ZXJ5IG5vZGVcbiAqIEByZXR1cm4ge1VuZG99IHVuZG8gY29tbWFuZFxuICovXG5leHBvcnQgdmFyIHN1cHByZXNzT3RoZXJzID0gZnVuY3Rpb24gKG9yaWdpbmFsVGFyZ2V0LCBwYXJlbnROb2RlLCBtYXJrZXJOYW1lKSB7XG4gICAgaWYgKG1hcmtlck5hbWUgPT09IHZvaWQgMCkgeyBtYXJrZXJOYW1lID0gJ2RhdGEtc3VwcHJlc3NlZCc7IH1cbiAgICByZXR1cm4gKHN1cHBvcnRzSW5lcnQoKSA/IGluZXJ0T3RoZXJzIDogaGlkZU90aGVycykob3JpZ2luYWxUYXJnZXQsIHBhcmVudE5vZGUsIG1hcmtlck5hbWUpO1xufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/aria-hidden/dist/es2015/index.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs":
/*!**************************************************************!*\
!*** ./node_modules/class-variance-authority/dist/index.mjs ***!
\**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cva: () => (/* binding */ cva),\n/* harmony export */ cx: () => (/* binding */ cx)\n/* harmony export */ });\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clsx */ \"(app-pages-browser)/./node_modules/clsx/dist/clsx.mjs\");\n/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ \nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nconst cx = clsx__WEBPACK_IMPORTED_MODULE_0__.clsx;\nconst cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbGFzcy12YXJpYW5jZS1hdXRob3JpdHkvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBZ0M7QUFDaEMsK0RBQStELE1BQU07QUFDOUQsV0FBVyxzQ0FBSTtBQUNmO0FBQ1A7QUFDQTtBQUNBLGdCQUFnQiw0QkFBNEI7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxJQUFJO0FBQ2I7QUFDQSxrQkFBa0Isb0VBQW9FO0FBQ3RGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5L2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMjIgSm9lIEJlbGwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wXG4gKiAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZVxuICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVRcbiAqIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlXG4gKiBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlclxuICogdGhlIExpY2Vuc2UuXG4gKi8gaW1wb3J0IHsgY2xzeCB9IGZyb20gXCJjbHN4XCI7XG5jb25zdCBmYWxzeVRvU3RyaW5nID0gKHZhbHVlKT0+dHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIiA/IGAke3ZhbHVlfWAgOiB2YWx1ZSA9PT0gMCA/IFwiMFwiIDogdmFsdWU7XG5leHBvcnQgY29uc3QgY3ggPSBjbHN4O1xuZXhwb3J0IGNvbnN0IGN2YSA9IChiYXNlLCBjb25maWcpPT4ocHJvcHMpPT57XG4gICAgICAgIHZhciBfY29uZmlnX2NvbXBvdW5kVmFyaWFudHM7XG4gICAgICAgIGlmICgoY29uZmlnID09PSBudWxsIHx8IGNvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29uZmlnLnZhcmlhbnRzKSA9PSBudWxsKSByZXR1cm4gY3goYmFzZSwgcHJvcHMgPT09IG51bGwgfHwgcHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByb3BzLmNsYXNzLCBwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHMuY2xhc3NOYW1lKTtcbiAgICAgICAgY29uc3QgeyB2YXJpYW50cywgZGVmYXVsdFZhcmlhbnRzIH0gPSBjb25maWc7XG4gICAgICAgIGNvbnN0IGdldFZhcmlhbnRDbGFzc05hbWVzID0gT2JqZWN0LmtleXModmFyaWFudHMpLm1hcCgodmFyaWFudCk9PntcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnRQcm9wID0gcHJvcHMgPT09IG51bGwgfHwgcHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByb3BzW3ZhcmlhbnRdO1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFZhcmlhbnRQcm9wID0gZGVmYXVsdFZhcmlhbnRzID09PSBudWxsIHx8IGRlZmF1bHRWYXJpYW50cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVmYXVsdFZhcmlhbnRzW3ZhcmlhbnRdO1xuICAgICAgICAgICAgaWYgKHZhcmlhbnRQcm9wID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnRLZXkgPSBmYWxzeVRvU3RyaW5nKHZhcmlhbnRQcm9wKSB8fCBmYWxzeVRvU3RyaW5nKGRlZmF1bHRWYXJpYW50UHJvcCk7XG4gICAgICAgICAgICByZXR1cm4gdmFyaWFudHNbdmFyaWFudF1bdmFyaWFudEtleV07XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBwcm9wc1dpdGhvdXRVbmRlZmluZWQgPSBwcm9wcyAmJiBPYmplY3QuZW50cmllcyhwcm9wcykucmVkdWNlKChhY2MsIHBhcmFtKT0+e1xuICAgICAgICAgICAgbGV0IFtrZXksIHZhbHVlXSA9IHBhcmFtO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWNjW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KTtcbiAgICAgICAgY29uc3QgZ2V0Q29tcG91bmRWYXJpYW50Q2xhc3NOYW1lcyA9IGNvbmZpZyA9PT0gbnVsbCB8fCBjb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IChfY29uZmlnX2NvbXBvdW5kVmFyaWFudHMgPSBjb25maWcuY29tcG91bmRWYXJpYW50cykgPT09IG51bGwgfHwgX2NvbmZpZ19jb21wb3VuZFZhcmlhbnRzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfY29uZmlnX2NvbXBvdW5kVmFyaWFudHMucmVkdWNlKChhY2MsIHBhcmFtKT0+e1xuICAgICAgICAgICAgbGV0IHsgY2xhc3M6IGN2Q2xhc3MsIGNsYXNzTmFtZTogY3ZDbGFzc05hbWUsIC4uLmNvbXBvdW5kVmFyaWFudE9wdGlvbnMgfSA9IHBhcmFtO1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGNvbXBvdW5kVmFyaWFudE9wdGlvbnMpLmV2ZXJ5KChwYXJhbSk9PntcbiAgICAgICAgICAgICAgICBsZXQgW2tleSwgdmFsdWVdID0gcGFyYW07XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUuaW5jbHVkZXMoe1xuICAgICAgICAgICAgICAgICAgICAuLi5kZWZhdWx0VmFyaWFudHMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnByb3BzV2l0aG91dFVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1ba2V5XSkgOiAoe1xuICAgICAgICAgICAgICAgICAgICAuLi5kZWZhdWx0VmFyaWFudHMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnByb3BzV2l0aG91dFVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH0pW2tleV0gPT09IHZhbHVlO1xuICAgICAgICAgICAgfSkgPyBbXG4gICAgICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgICAgIGN2Q2xhc3MsXG4gICAgICAgICAgICAgICAgY3ZDbGFzc05hbWVcbiAgICAgICAgICAgIF0gOiBhY2M7XG4gICAgICAgIH0sIFtdKTtcbiAgICAgICAgcmV0dXJuIGN4KGJhc2UsIGdldFZhcmlhbnRDbGFzc05hbWVzLCBnZXRDb21wb3VuZFZhcmlhbnRDbGFzc05hbWVzLCBwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHMuY2xhc3MsIHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wcy5jbGFzc05hbWUpO1xuICAgIH07XG5cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/class-variance-authority/dist/index.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/clsx/dist/clsx.mjs":
/*!*****************************************!*\
!*** ./node_modules/clsx/dist/clsx.mjs ***!
\*****************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clsx: () => (/* binding */ clsx),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (clsx);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxjQUFjLGFBQWEsK0NBQStDLGdEQUFnRCxlQUFlLFFBQVEsSUFBSSwwQ0FBMEMseUNBQXlDLFNBQWdCLGdCQUFnQix3Q0FBd0MsSUFBSSxtREFBbUQsU0FBUyxpRUFBZSxJQUFJIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9jbHN4L2Rpc3QvY2xzeC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gcihlKXt2YXIgdCxmLG49XCJcIjtpZihcInN0cmluZ1wiPT10eXBlb2YgZXx8XCJudW1iZXJcIj09dHlwZW9mIGUpbis9ZTtlbHNlIGlmKFwib2JqZWN0XCI9PXR5cGVvZiBlKWlmKEFycmF5LmlzQXJyYXkoZSkpe3ZhciBvPWUubGVuZ3RoO2Zvcih0PTA7dDxvO3QrKyllW3RdJiYoZj1yKGVbdF0pKSYmKG4mJihuKz1cIiBcIiksbis9Zil9ZWxzZSBmb3IoZiBpbiBlKWVbZl0mJihuJiYobis9XCIgXCIpLG4rPWYpO3JldHVybiBufWV4cG9ydCBmdW5jdGlvbiBjbHN4KCl7Zm9yKHZhciBlLHQsZj0wLG49XCJcIixvPWFyZ3VtZW50cy5sZW5ndGg7ZjxvO2YrKykoZT1hcmd1bWVudHNbZl0pJiYodD1yKGUpKSYmKG4mJihuKz1cIiBcIiksbis9dCk7cmV0dXJuIG59ZXhwb3J0IGRlZmF1bHQgY2xzeDsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/clsx/dist/clsx.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/dompurify/dist/purify.cjs.js":
/*!***************************************************!*\
!*** ./node_modules/dompurify/dist/purify.cjs.js ***!
\***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("/*! @license DOMPurify 3.2.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.5/LICENSE */\n\n\n\nconst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n} = Object;\nlet {\n freeze,\n seal,\n create\n} = Object; // eslint-disable-line import/no-mutable-exports\nlet {\n apply,\n construct\n} = typeof Reflect !== 'undefined' && Reflect;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\nif (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\nvar EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n});\n\n/* eslint-disable @typescript-eslint/indent */\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.2.5';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\\w!]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nmodule.exports = purify;\n//# sourceMappingURL=purify.cjs.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9kb21wdXJpZnkvZGlzdC9wdXJpZnkuY2pzLmpzIiwibWFwcGluZ3MiOiJBQUFBOztBQUVhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsVUFBVTtBQUNaO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyRkFBMkYsYUFBYTtBQUN4RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixzQkFBc0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNB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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQyxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLFFBQVE7QUFDUjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsUUFBUTtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDO0FBQzFDLG9GQUFvRiw2REFBNkQ7QUFDako7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxVEFBcVQ7QUFDclQ7QUFDQTtBQUNBO0FBQ0EsTUFBTSx3Q0FBd0Msb0ZBQW9GLG9LQUFvSyxpSEFBaUg7QUFDdlo7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL2RvbXB1cmlmeS9kaXN0L3B1cmlmeS5janMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyohIEBsaWNlbnNlIERPTVB1cmlmeSAzLjIuNSB8IChjKSBDdXJlNTMgYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyB8IFJlbGVhc2VkIHVuZGVyIHRoZSBBcGFjaGUgbGljZW5zZSAyLjAgYW5kIE1vemlsbGEgUHVibGljIExpY2Vuc2UgMi4wIHwgZ2l0aHViLmNvbS9jdXJlNTMvRE9NUHVyaWZ5L2Jsb2IvMy4yLjUvTElDRU5TRSAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmNvbnN0IHtcbiAgZW50cmllcyxcbiAgc2V0UHJvdG90eXBlT2YsXG4gIGlzRnJvemVuLFxuICBnZXRQcm90b3R5cGVPZixcbiAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yXG59ID0gT2JqZWN0O1xubGV0IHtcbiAgZnJlZXplLFxuICBzZWFsLFxuICBjcmVhdGVcbn0gPSBPYmplY3Q7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgaW1wb3J0L25vLW11dGFibGUtZXhwb3J0c1xubGV0IHtcbiAgYXBwbHksXG4gIGNvbnN0cnVjdFxufSA9IHR5cGVvZiBSZWZsZWN0ICE9PSAndW5kZWZpbmVkJyAmJiBSZWZsZWN0O1xuaWYgKCFmcmVlemUpIHtcbiAgZnJlZXplID0gZnVuY3Rpb24gZnJlZXplKHgpIHtcbiAgICByZXR1cm4geDtcbiAgfTtcbn1cbmlmICghc2VhbCkge1xuICBzZWFsID0gZnVuY3Rpb24gc2VhbCh4KSB7XG4gICAgcmV0dXJuIHg7XG4gIH07XG59XG5pZiAoIWFwcGx5KSB7XG4gIGFwcGx5ID0gZnVuY3Rpb24gYXBwbHkoZnVuLCB0aGlzVmFsdWUsIGFyZ3MpIHtcbiAgICByZXR1cm4gZnVuLmFwcGx5KHRoaXNWYWx1ZSwgYXJncyk7XG4gIH07XG59XG5pZiAoIWNvbnN0cnVjdCkge1xuICBjb25zdHJ1Y3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3QoRnVuYywgYXJncykge1xuICAgIHJldHVybiBuZXcgRnVuYyguLi5hcmdzKTtcbiAgfTtcbn1cbmNvbnN0IGFycmF5Rm9yRWFjaCA9IHVuYXBwbHkoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpO1xuY29uc3QgYXJyYXlMYXN0SW5kZXhPZiA9IHVuYXBwbHkoQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKTtcbmNvbnN0IGFycmF5UG9wID0gdW5hcHBseShBcnJheS5wcm90b3R5cGUucG9wKTtcbmNvbnN0IGFycmF5UHVzaCA9IHVuYXBwbHkoQXJyYXkucHJvdG90eXBlLnB1c2gpO1xuY29uc3QgYXJyYXlTcGxpY2UgPSB1bmFwcGx5KEFycmF5LnByb3RvdHlwZS5zcGxpY2UpO1xuY29uc3Qgc3RyaW5nVG9Mb3dlckNhc2UgPSB1bmFwcGx5KFN0cmluZy5wcm90b3R5cGUudG9Mb3dlckNhc2UpO1xuY29uc3Qgc3RyaW5nVG9TdHJpbmcgPSB1bmFwcGx5KFN0cmluZy5wcm90b3R5cGUudG9TdHJpbmcpO1xuY29uc3Qgc3RyaW5nTWF0Y2ggPSB1bmFwcGx5KFN0cmluZy5wcm90b3R5cGUubWF0Y2gpO1xuY29uc3Qgc3RyaW5nUmVwbGFjZSA9IHVuYXBwbHkoU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlKTtcbmNvbnN0IHN0cmluZ0luZGV4T2YgPSB1bmFwcGx5KFN0cmluZy5wcm90b3R5cGUuaW5kZXhPZik7XG5jb25zdCBzdHJpbmdUcmltID0gdW5hcHBseShTdHJpbmcucHJvdG90eXBlLnRyaW0pO1xuY29uc3Qgb2JqZWN0SGFzT3duUHJvcGVydHkgPSB1bmFwcGx5KE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpO1xuY29uc3QgcmVnRXhwVGVzdCA9IHVuYXBwbHkoUmVnRXhwLnByb3RvdHlwZS50ZXN0KTtcbmNvbnN0IHR5cGVFcnJvckNyZWF0ZSA9IHVuY29uc3RydWN0KFR5cGVFcnJvcik7XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgZnVuY3Rpb24gdGhhdCBjYWxscyB0aGUgZ2l2ZW4gZnVuY3Rpb24gd2l0aCBhIHNwZWNpZmllZCB0aGlzQXJnIGFuZCBhcmd1bWVudHMuXG4gKlxuICogQHBhcmFtIGZ1bmMgLSBUaGUgZnVuY3Rpb24gdG8gYmUgd3JhcHBlZCBhbmQgY2FsbGVkLlxuICogQHJldHVybnMgQSBuZXcgZnVuY3Rpb24gdGhhdCBjYWxscyB0aGUgZ2l2ZW4gZnVuY3Rpb24gd2l0aCBhIHNwZWNpZmllZCB0aGlzQXJnIGFuZCBhcmd1bWVudHMuXG4gKi9cbmZ1bmN0aW9uIHVuYXBwbHkoZnVuYykge1xuICByZXR1cm4gZnVuY3Rpb24gKHRoaXNBcmcpIHtcbiAgICBpZiAodGhpc0FyZyBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgdGhpc0FyZy5sYXN0SW5kZXggPSAwO1xuICAgIH1cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIGFwcGx5KGZ1bmMsIHRoaXNBcmcsIGFyZ3MpO1xuICB9O1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGZ1bmN0aW9uIHRoYXQgY29uc3RydWN0cyBhbiBpbnN0YW5jZSBvZiB0aGUgZ2l2ZW4gY29uc3RydWN0b3IgZnVuY3Rpb24gd2l0aCB0aGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBmdW5jIC0gVGhlIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIHRvIGJlIHdyYXBwZWQgYW5kIGNhbGxlZC5cbiAqIEByZXR1cm5zIEEgbmV3IGZ1bmN0aW9uIHRoYXQgY29uc3RydWN0cyBhbiBpbnN0YW5jZSBvZiB0aGUgZ2l2ZW4gY29uc3RydWN0b3IgZnVuY3Rpb24gd2l0aCB0aGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICovXG5mdW5jdGlvbiB1bmNvbnN0cnVjdChmdW5jKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICBhcmdzW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgfVxuICAgIHJldHVybiBjb25zdHJ1Y3QoZnVuYywgYXJncyk7XG4gIH07XG59XG4vKipcbiAqIEFkZCBwcm9wZXJ0aWVzIHRvIGEgbG9va3VwIHRhYmxlXG4gKlxuICogQHBhcmFtIHNldCAtIFRoZSBzZXQgdG8gd2hpY2ggZWxlbWVudHMgd2lsbCBiZSBhZGRlZC5cbiAqIEBwYXJhbSBhcnJheSAtIFRoZSBhcnJheSBjb250YWluaW5nIGVsZW1lbnRzIHRvIGJlIGFkZGVkIHRvIHRoZSBzZXQuXG4gKiBAcGFyYW0gdHJhbnNmb3JtQ2FzZUZ1bmMgLSBBbiBvcHRpb25hbCBmdW5jdGlvbiB0byB0cmFuc2Zvcm0gdGhlIGNhc2Ugb2YgZWFjaCBlbGVtZW50IGJlZm9yZSBhZGRpbmcgdG8gdGhlIHNldC5cbiAqIEByZXR1cm5zIFRoZSBtb2RpZmllZCBzZXQgd2l0aCBhZGRlZCBlbGVtZW50cy5cbiAqL1xuZnVuY3Rpb24gYWRkVG9TZXQoc2V0LCBhcnJheSkge1xuICBsZXQgdHJhbnNmb3JtQ2FzZUZ1bmMgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IHN0cmluZ1RvTG93ZXJDYXNlO1xuICBpZiAoc2V0UHJvdG90eXBlT2YpIHtcbiAgICAvLyBNYWtlICdpbicgYW5kIHRydXRoeSBjaGVja3MgbGlrZSBCb29sZWFuKHNldC5jb25zdHJ1Y3RvcilcbiAgICAvLyBpbmRlcGVuZGVudCBvZiBhbnkgcHJvcGVydGllcyBkZWZpbmVkIG9uIE9iamVjdC5wcm90b3R5cGUuXG4gICAgLy8gUHJldmVudCBwcm90b3R5cGUgc2V0dGVycyBmcm9tIGludGVyY2VwdGluZyBzZXQgYXMgYSB0aGlzIHZhbHVlLlxuICAgIHNldFByb3RvdHlwZU9mKHNldCwgbnVsbCk7XG4gIH1cbiAgbGV0IGwgPSBhcnJheS5sZW5ndGg7XG4gIHdoaWxlIChsLS0pIHtcbiAgICBsZXQgZWxlbWVudCA9IGFycmF5W2xdO1xuICAgIGlmICh0eXBlb2YgZWxlbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGxjRWxlbWVudCA9IHRyYW5zZm9ybUNhc2VGdW5jKGVsZW1lbnQpO1xuICAgICAgaWYgKGxjRWxlbWVudCAhPT0gZWxlbWVudCkge1xuICAgICAgICAvLyBDb25maWcgcHJlc2V0cyAoZS5nLiB0YWdzLmpzLCBhdHRycy5qcykgYXJlIGltbXV0YWJsZS5cbiAgICAgICAgaWYgKCFpc0Zyb3plbihhcnJheSkpIHtcbiAgICAgICAgICBhcnJheVtsXSA9IGxjRWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBlbGVtZW50ID0gbGNFbGVtZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBzZXRbZWxlbWVudF0gPSB0cnVlO1xuICB9XG4gIHJldHVybiBzZXQ7XG59XG4vKipcbiAqIENsZWFuIHVwIGFuIGFycmF5IHRvIGhhcmRlbiBhZ2FpbnN0IENTUFBcbiAqXG4gKiBAcGFyYW0gYXJyYXkgLSBUaGUgYXJyYXkgdG8gYmUgY2xlYW5lZC5cbiAqIEByZXR1cm5zIFRoZSBjbGVhbmVkIHZlcnNpb24gb2YgdGhlIGFycmF5XG4gKi9cbmZ1bmN0aW9uIGNsZWFuQXJyYXkoYXJyYXkpIHtcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgIGNvbnN0IGlzUHJvcGVydHlFeGlzdCA9IG9iamVjdEhhc093blByb3BlcnR5KGFycmF5LCBpbmRleCk7XG4gICAgaWYgKCFpc1Byb3BlcnR5RXhpc3QpIHtcbiAgICAgIGFycmF5W2luZGV4XSA9IG51bGw7XG4gICAgfVxuICB9XG4gIHJldHVybiBhcnJheTtcbn1cbi8qKlxuICogU2hhbGxvdyBjbG9uZSBhbiBvYmplY3RcbiAqXG4gKiBAcGFyYW0gb2JqZWN0IC0gVGhlIG9iamVjdCB0byBiZSBjbG9uZWQuXG4gKiBAcmV0dXJucyBBIG5ldyBvYmplY3QgdGhhdCBjb3BpZXMgdGhlIG9yaWdpbmFsLlxuICovXG5mdW5jdGlvbiBjbG9uZShvYmplY3QpIHtcbiAgY29uc3QgbmV3T2JqZWN0ID0gY3JlYXRlKG51bGwpO1xuICBmb3IgKGNvbnN0IFtwcm9wZXJ0eSwgdmFsdWVdIG9mIGVudHJpZXMob2JqZWN0KSkge1xuICAgIGNvbnN0IGlzUHJvcGVydHlFeGlzdCA9IG9iamVjdEhhc093blByb3BlcnR5KG9iamVjdCwgcHJvcGVydHkpO1xuICAgIGlmIChpc1Byb3BlcnR5RXhpc3QpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBuZXdPYmplY3RbcHJvcGVydHldID0gY2xlYW5BcnJheSh2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUuY29uc3RydWN0b3IgPT09IE9iamVjdCkge1xuICAgICAgICBuZXdPYmplY3RbcHJvcGVydHldID0gY2xvbmUodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3T2JqZWN0W3Byb3BlcnR5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbmV3T2JqZWN0O1xufVxuLyoqXG4gKiBUaGlzIG1ldGhvZCBhdXRvbWF0aWNhbGx5IGNoZWNrcyBpZiB0aGUgcHJvcCBpcyBmdW5jdGlvbiBvciBnZXR0ZXIgYW5kIGJlaGF2ZXMgYWNjb3JkaW5nbHkuXG4gKlxuICogQHBhcmFtIG9iamVjdCAtIFRoZSBvYmplY3QgdG8gbG9vayB1cCB0aGUgZ2V0dGVyIGZ1bmN0aW9uIGluIGl0cyBwcm90b3R5cGUgY2hhaW4uXG4gKiBAcGFyYW0gcHJvcCAtIFRoZSBwcm9wZXJ0eSBuYW1lIGZvciB3aGljaCB0byBmaW5kIHRoZSBnZXR0ZXIgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBUaGUgZ2V0dGVyIGZ1bmN0aW9uIGZvdW5kIGluIHRoZSBwcm90b3R5cGUgY2hhaW4gb3IgYSBmYWxsYmFjayBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gbG9va3VwR2V0dGVyKG9iamVjdCwgcHJvcCkge1xuICB3aGlsZSAob2JqZWN0ICE9PSBudWxsKSB7XG4gICAgY29uc3QgZGVzYyA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHByb3ApO1xuICAgIGlmIChkZXNjKSB7XG4gICAgICBpZiAoZGVzYy5nZXQpIHtcbiAgICAgICAgcmV0dXJuIHVuYXBwbHkoZGVzYy5nZXQpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBkZXNjLnZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB1bmFwcGx5KGRlc2MudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBvYmplY3QgPSBnZXRQcm90b3R5cGVPZihvYmplY3QpO1xuICB9XG4gIGZ1bmN0aW9uIGZhbGxiYWNrVmFsdWUoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIGZhbGxiYWNrVmFsdWU7XG59XG5cbmNvbnN0IGh0bWwkMSA9IGZyZWV6ZShbJ2EnLCAnYWJicicsICdhY3JvbnltJywgJ2FkZHJlc3MnLCAnYXJlYScsICdhcnRpY2xlJywgJ2FzaWRlJywgJ2F1ZGlvJywgJ2InLCAnYmRpJywgJ2JkbycsICdiaWcnLCAnYmxpbmsnLCAnYmxvY2txdW90ZScsICdib2R5JywgJ2JyJywgJ2J1dHRvbicsICdjYW52YXMnLCAnY2FwdGlvbicsICdjZW50ZXInLCAnY2l0ZScsICdjb2RlJywgJ2NvbCcsICdjb2xncm91cCcsICdjb250ZW50JywgJ2RhdGEnLCAnZGF0YWxpc3QnLCAnZGQnLCAnZGVjb3JhdG9yJywgJ2RlbCcsICdkZXRhaWxzJywgJ2RmbicsICdkaWFsb2cnLCAnZGlyJywgJ2RpdicsICdkbCcsICdkdCcsICdlbGVtZW50JywgJ2VtJywgJ2ZpZWxkc2V0JywgJ2ZpZ2NhcHRpb24nLCAnZmlndXJlJywgJ2ZvbnQnLCAnZm9vdGVyJywgJ2Zvcm0nLCAnaDEnLCAnaDInLCAnaDMnLCAnaDQnLCAnaDUnLCAnaDYnLCAnaGVhZCcsICdoZWFkZXInLCAnaGdyb3VwJywgJ2hyJywgJ2h0bWwnLCAnaScsICdpbWcnLCAnaW5wdXQnLCAnaW5zJywgJ2tiZCcsICdsYWJlbCcsICdsZWdlbmQnLCAnbGknLCAnbWFpbicsICdtYXAnLCAnbWFyaycsICdtYXJxdWVlJywgJ21lbnUnLCAnbWVudWl0ZW0nLCAnbWV0ZXInLCAnbmF2JywgJ25vYnInLCAnb2wnLCAnb3B0Z3JvdXAnLCAnb3B0aW9uJywgJ291dHB1dCcsICdwJywgJ3BpY3R1cmUnLCAncHJlJywgJ3Byb2dyZXNzJywgJ3EnLCAncnAnLCAncnQnLCAncnVieScsICdzJywgJ3NhbXAnLCAnc2VjdGlvbicsICdzZWxlY3QnLCAnc2hhZG93JywgJ3NtYWxsJywgJ3NvdXJjZScsICdzcGFjZXInLCAnc3BhbicsICdzdHJpa2UnLCAnc3Ryb25nJywgJ3N0eWxlJywgJ3N1YicsICdzdW1tYXJ5JywgJ3N1cCcsICd0YWJsZScsICd0Ym9keScsICd0ZCcsICd0ZW1wbGF0ZScsICd0ZXh0YXJlYScsICd0Zm9vdCcsICd0aCcsICd0aGVhZCcsICd0aW1lJywgJ3RyJywgJ3RyYWNrJywgJ3R0JywgJ3UnLCAndWwnLCAndmFyJywgJ3ZpZGVvJywgJ3diciddKTtcbmNvbnN0IHN2ZyQxID0gZnJlZXplKFsnc3ZnJywgJ2EnLCAnYWx0Z2x5cGgnLCAnYWx0Z2x5cGhkZWYnLCAnYWx0Z2x5cGhpdGVtJywgJ2FuaW1hdGVjb2xvcicsICdhbmltYXRlbW90aW9uJywgJ2FuaW1hdGV0cmFuc2Zvcm0nLCAnY2lyY2xlJywgJ2NsaXBwYXRoJywgJ2RlZnMnLCAnZGVzYycsICdlbGxpcHNlJywgJ2ZpbHRlcicsICdmb250JywgJ2cnLCAnZ2x5cGgnLCAnZ2x5cGhyZWYnLCAnaGtlcm4nLCAnaW1hZ2UnLCAnbGluZScsICdsaW5lYXJncmFkaWVudCcsICdtYXJrZXInLCAnbWFzaycsICdtZXRhZGF0YScsICdtcGF0aCcsICdwYXRoJywgJ3BhdHRlcm4nLCAncG9seWdvbicsICdwb2x5bGluZScsICdyYWRpYWxncmFkaWVudCcsICdyZWN0JywgJ3N0b3AnLCAnc3R5bGUnLCAnc3dpdGNoJywgJ3N5bWJvbCcsICd0ZXh0JywgJ3RleHRwYXRoJywgJ3RpdGxlJywgJ3RyZWYnLCAndHNwYW4nLCAndmlldycsICd2a2VybiddKTtcbmNvbnN0IHN2Z0ZpbHRlcnMgPSBmcmVlemUoWydmZUJsZW5kJywgJ2ZlQ29sb3JNYXRyaXgnLCAnZmVDb21wb25lbnRUcmFuc2ZlcicsICdmZUNvbXBvc2l0ZScsICdmZUNvbnZvbHZlTWF0cml4JywgJ2ZlRGlmZnVzZUxpZ2h0aW5nJywgJ2ZlRGlzcGxhY2VtZW50TWFwJywgJ2ZlRGlzdGFudExpZ2h0JywgJ2ZlRHJvcFNoYWRvdycsICdmZUZsb29kJywgJ2ZlRnVuY0EnLCAnZmVGdW5jQicsICdmZUZ1bmNHJywgJ2ZlRnVuY1InLCAnZmVHYXVzc2lhbkJsdXInLCAnZmVJbWFnZScsICdmZU1lcmdlJywgJ2ZlTWVyZ2VOb2RlJywgJ2ZlTW9ycGhvbG9neScsICdmZU9mZnNldCcsICdmZVBvaW50TGlnaHQnLCAnZmVTcGVjdWxhckxpZ2h0aW5nJywgJ2ZlU3BvdExpZ2h0JywgJ2ZlVGlsZScsICdmZVR1cmJ1bGVuY2UnXSk7XG4vLyBMaXN0IG9mIFNWRyBlbGVtZW50cyB0aGF0IGFyZSBkaXNhbGxvd2VkIGJ5IGRlZmF1bHQuXG4vLyBXZSBzdGlsbCBuZWVkIHRvIGtub3cgdGhlbSBzbyB0aGF0IHdlIGNhbiBkbyBuYW1lc3BhY2Vcbi8vIGNoZWNrcyBwcm9wZXJseSBpbiBjYXNlIG9uZSB3YW50cyB0byBhZGQgdGhlbSB0b1xuLy8gYWxsb3ctbGlzdC5cbmNvbnN0IHN2Z0Rpc2FsbG93ZWQgPSBmcmVlemUoWydhbmltYXRlJywgJ2NvbG9yLXByb2ZpbGUnLCAnY3Vyc29yJywgJ2Rpc2NhcmQnLCAnZm9udC1mYWNlJywgJ2ZvbnQtZmFjZS1mb3JtYXQnLCAnZm9udC1mYWNlLW5hbWUnLCAnZm9udC1mYWNlLXNyYycsICdmb250LWZhY2UtdXJpJywgJ2ZvcmVpZ25vYmplY3QnLCAnaGF0Y2gnLCAnaGF0Y2hwYXRoJywgJ21lc2gnLCAnbWVzaGdyYWRpZW50JywgJ21lc2hwYXRjaCcsICdtZXNocm93JywgJ21pc3NpbmctZ2x5cGgnLCAnc2NyaXB0JywgJ3NldCcsICdzb2xpZGNvbG9yJywgJ3Vua25vd24nLCAndXNlJ10pO1xuY29uc3QgbWF0aE1sJDEgPSBmcmVlemUoWydtYXRoJywgJ21lbmNsb3NlJywgJ21lcnJvcicsICdtZmVuY2VkJywgJ21mcmFjJywgJ21nbHlwaCcsICdtaScsICdtbGFiZWxlZHRyJywgJ21tdWx0aXNjcmlwdHMnLCAnbW4nLCAnbW8nLCAnbW92ZXInLCAnbXBhZGRlZCcsICdtcGhhbnRvbScsICdtcm9vdCcsICdtcm93JywgJ21zJywgJ21zcGFjZScsICdtc3FydCcsICdtc3R5bGUnLCAnbXN1YicsICdtc3VwJywgJ21zdWJzdXAnLCAnbXRhYmxlJywgJ210ZCcsICdtdGV4dCcsICdtdHInLCAnbXVuZGVyJywgJ211bmRlcm92ZXInLCAnbXByZXNjcmlwdHMnXSk7XG4vLyBTaW1pbGFybHkgdG8gU1ZHLCB3ZSB3YW50IHRvIGtub3cgYWxsIE1hdGhNTCBlbGVtZW50cyxcbi8vIGV2ZW4gdGhvc2UgdGhhdCB3ZSBkaXNhbGxvdyBieSBkZWZhdWx0LlxuY29uc3QgbWF0aE1sRGlzYWxsb3dlZCA9IGZyZWV6ZShbJ21hY3Rpb24nLCAnbWFsaWduZ3JvdXAnLCAnbWFsaWdubWFyaycsICdtbG9uZ2RpdicsICdtc2NhcnJpZXMnLCAnbXNjYXJyeScsICdtc2dyb3VwJywgJ21zdGFjaycsICdtc2xpbmUnLCAnbXNyb3cnLCAnc2VtYW50aWNzJywgJ2Fubm90YXRpb24nLCAnYW5ub3RhdGlvbi14bWwnLCAnbXByZXNjcmlwdHMnLCAnbm9uZSddKTtcbmNvbnN0IHRleHQgPSBmcmVlemUoWycjdGV4dCddKTtcblxuY29uc3QgaHRtbCA9IGZyZWV6ZShbJ2FjY2VwdCcsICdhY3Rpb24nLCAnYWxpZ24nLCAnYWx0JywgJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvcGljdHVyZWlucGljdHVyZScsICdhdXRvcGxheScsICdiYWNrZ3JvdW5kJywgJ2JnY29sb3InLCAnYm9yZGVyJywgJ2NhcHR1cmUnLCAnY2VsbHBhZGRpbmcnLCAnY2VsbHNwYWNpbmcnLCAnY2hlY2tlZCcsICdjaXRlJywgJ2NsYXNzJywgJ2NsZWFyJywgJ2NvbG9yJywgJ2NvbHMnLCAnY29sc3BhbicsICdjb250cm9scycsICdjb250cm9sc2xpc3QnLCAnY29vcmRzJywgJ2Nyb3Nzb3JpZ2luJywgJ2RhdGV0aW1lJywgJ2RlY29kaW5nJywgJ2RlZmF1bHQnLCAnZGlyJywgJ2Rpc2FibGVkJywgJ2Rpc2FibGVwaWN0dXJlaW5waWN0dXJlJywgJ2Rpc2FibGVyZW1vdGVwbGF5YmFjaycsICdkb3dubG9hZCcsICdkcmFnZ2FibGUnLCAnZW5jdHlwZScsICdlbnRlcmtleWhpbnQnLCAnZmFjZScsICdmb3InLCAnaGVhZGVycycsICdoZWlnaHQnLCAnaGlkZGVuJywgJ2hpZ2gnLCAnaHJlZicsICdocmVmbGFuZycsICdpZCcsICdpbnB1dG1vZGUnLCAnaW50ZWdyaXR5JywgJ2lzbWFwJywgJ2tpbmQnLCAnbGFiZWwnLCAnbGFuZycsICdsaXN0JywgJ2xvYWRpbmcnLCAnbG9vcCcsICdsb3cnLCAnbWF4JywgJ21heGxlbmd0aCcsICdtZWRpYScsICdtZXRob2QnLCAnbWluJywgJ21pbmxlbmd0aCcsICdtdWx0aXBsZScsICdtdXRlZCcsICduYW1lJywgJ25vbmNlJywgJ25vc2hhZGUnLCAnbm92YWxpZGF0ZScsICdub3dyYXAnLCAnb3BlbicsICdvcHRpbXVtJywgJ3BhdHRlcm4nLCAncGxhY2Vob2xkZXInLCAncGxheXNpbmxpbmUnLCAncG9wb3ZlcicsICdwb3BvdmVydGFyZ2V0JywgJ3BvcG92ZXJ0YXJnZXRhY3Rpb24nLCAncG9zdGVyJywgJ3ByZWxvYWQnLCAncHViZGF0ZScsICdyYWRpb2dyb3VwJywgJ3JlYWRvbmx5JywgJ3JlbCcsICdyZXF1aXJlZCcsICdyZXYnLCAncmV2ZXJzZWQnLCAncm9sZScsICdyb3dzJywgJ3Jvd3NwYW4nLCAnc3BlbGxjaGVjaycsICdzY29wZScsICdzZWxlY3RlZCcsICdzaGFwZScsICdzaXplJywgJ3NpemVzJywgJ3NwYW4nLCAnc3JjbGFuZycsICdzdGFydCcsICdzcmMnLCAnc3Jjc2V0JywgJ3N0ZXAnLCAnc3R5bGUnLCAnc3VtbWFyeScsICd0YWJpbmRleCcsICd0aXRsZScsICd0cmFuc2xhdGUnLCAndHlwZScsICd1c2VtYXAnLCAndmFsaWduJywgJ3ZhbHVlJywgJ3dpZHRoJywgJ3dyYXAnLCAneG1sbnMnLCAnc2xvdCddKTtcbmNvbnN0IHN2ZyA9IGZyZWV6ZShbJ2FjY2VudC1oZWlnaHQnLCAnYWNjdW11bGF0ZScsICdhZGRpdGl2ZScsICdhbGlnbm1lbnQtYmFzZWxpbmUnLCAnYW1wbGl0dWRlJywgJ2FzY2VudCcsICdhdHRyaWJ1dGVuYW1lJywgJ2F0dHJpYnV0ZXR5cGUnLCAnYXppbXV0aCcsICdiYXNlZnJlcXVlbmN5JywgJ2Jhc2VsaW5lLXNoaWZ0JywgJ2JlZ2luJywgJ2JpYXMnLCAnYnknLCAnY2xhc3MnLCAnY2xpcCcsICdjbGlwcGF0aHVuaXRzJywgJ2NsaXAtcGF0aCcsICdjbGlwLXJ1bGUnLCAnY29sb3InLCAnY29sb3ItaW50ZXJwb2xhdGlvbicsICdjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMnLCAnY29sb3ItcHJvZmlsZScsICdjb2xvci1yZW5kZXJpbmcnLCAnY3gnLCAnY3knLCAnZCcsICdkeCcsICdkeScsICdkaWZmdXNlY29uc3RhbnQnLCAnZGlyZWN0aW9uJywgJ2Rpc3BsYXknLCAnZGl2aXNvcicsICdkdXInLCAnZWRnZW1vZGUnLCAnZWxldmF0aW9uJywgJ2VuZCcsICdleHBvbmVudCcsICdmaWxsJywgJ2ZpbGwtb3BhY2l0eScsICdmaWxsLXJ1bGUnLCAnZmlsdGVyJywgJ2ZpbHRlcnVuaXRzJywgJ2Zsb29kLWNvbG9yJywgJ2Zsb29kLW9wYWNpdHknLCAnZm9udC1mYW1pbHknLCAnZm9udC1zaXplJywgJ2ZvbnQtc2l6ZS1hZGp1c3QnLCAnZm9udC1zdHJldGNoJywgJ2ZvbnQtc3R5bGUnLCAnZm9udC12YXJpYW50JywgJ2ZvbnQtd2VpZ2h0JywgJ2Z4JywgJ2Z5JywgJ2cxJywgJ2cyJywgJ2dseXBoLW5hbWUnLCAnZ2x5cGhyZWYnLCAnZ3JhZGllbnR1bml0cycsICdncmFkaWVudHRyYW5zZm9ybScsICdoZWlnaHQnLCAnaHJlZicsICdpZCcsICdpbWFnZS1yZW5kZXJpbmcnLCAnaW4nLCAnaW4yJywgJ2ludGVyY2VwdCcsICdrJywgJ2sxJywgJ2syJywgJ2szJywgJ2s0JywgJ2tlcm5pbmcnLCAna2V5cG9pbnRzJywgJ2tleXNwbGluZXMnLCAna2V5dGltZXMnLCAnbGFuZycsICdsZW5ndGhhZGp1c3QnLCAnbGV0dGVyLXNwYWNpbmcnLCAna2VybmVsbWF0cml4JywgJ2tlcm5lbHVuaXRsZW5ndGgnLCAnbGlnaHRpbmctY29sb3InLCAnbG9jYWwnLCAnbWFya2VyLWVuZCcsICdtYXJrZXItbWlkJywgJ21hcmtlci1zdGFydCcsICdtYXJrZXJoZWlnaHQnLCAnbWFya2VydW5pdHMnLCAnbWFya2Vyd2lkdGgnLCAnbWFza2NvbnRlbnR1bml0cycsICdtYXNrdW5pdHMnLCAnbWF4JywgJ21hc2snLCAnbWVkaWEnLCAnbWV0aG9kJywgJ21vZGUnLCAnbWluJywgJ25hbWUnLCAnbnVtb2N0YXZlcycsICdvZmZzZXQnLCAnb3BlcmF0b3InLCAnb3BhY2l0eScsICdvcmRlcicsICdvcmllbnQnLCAnb3JpZW50YXRpb24nLCAnb3JpZ2luJywgJ292ZXJmbG93JywgJ3BhaW50LW9yZGVyJywgJ3BhdGgnLCAncGF0aGxlbmd0aCcsICdwYXR0ZXJuY29udGVudHVuaXRzJywgJ3BhdHRlcm50cmFuc2Zvcm0nLCAncGF0dGVybnVuaXRzJywgJ3BvaW50cycsICdwcmVzZXJ2ZWFscGhhJywgJ3ByZXNlcnZlYXNwZWN0cmF0aW8nLCAncHJpbWl0aXZldW5pdHMnLCAncicsICdyeCcsICdyeScsICdyYWRpdXMnLCAncmVmeCcsICdyZWZ5JywgJ3JlcGVhdGNvdW50JywgJ3JlcGVhdGR1cicsICdyZXN0YXJ0JywgJ3Jlc3VsdCcsICdyb3RhdGUnLCAnc2NhbGUnLCAnc2VlZCcsICdzaGFwZS1yZW5kZXJpbmcnLCAnc2xvcGUnLCAnc3BlY3VsYXJjb25zdGFudCcsICdzcGVjdWxhcmV4cG9uZW50JywgJ3NwcmVhZG1ldGhvZCcsICdzdGFydG9mZnNldCcsICdzdGRkZXZpYXRpb24nLCAnc3RpdGNodGlsZXMnLCAnc3RvcC1jb2xvcicsICdzdG9wLW9wYWNpdHknLCAnc3Ryb2tlLWRhc2hhcnJheScsICdzdHJva2UtZGFzaG9mZnNldCcsICdzdHJva2UtbGluZWNhcCcsICdzdHJva2UtbGluZWpvaW4nLCAnc3Ryb2tlLW1pdGVybGltaXQnLCAnc3Ryb2tlLW9wYWNpdHknLCAnc3Ryb2tlJywgJ3N0cm9rZS13aWR0aCcsICdzdHlsZScsICdzdXJmYWNlc2NhbGUnLCAnc3lzdGVtbGFuZ3VhZ2UnLCAndGFiaW5kZXgnLCAndGFibGV2YWx1ZXMnLCAndGFyZ2V0eCcsICd0YXJnZXR5JywgJ3RyYW5zZm9ybScsICd0cmFuc2Zvcm0tb3JpZ2luJywgJ3RleHQtYW5jaG9yJywgJ3RleHQtZGVjb3JhdGlvbicsICd0ZXh0LXJlbmRlcmluZycsICd0ZXh0bGVuZ3RoJywgJ3R5cGUnLCAndTEnLCAndTInLCAndW5pY29kZScsICd2YWx1ZXMnLCAndmlld2JveCcsICd2aXNpYmlsaXR5JywgJ3ZlcnNpb24nLCAndmVydC1hZHYteScsICd2ZXJ0LW9yaWdpbi14JywgJ3ZlcnQtb3JpZ2luLXknLCAnd2lkdGgnLCAnd29yZC1zcGFjaW5nJywgJ3dyYXAnLCAnd3JpdGluZy1tb2RlJywgJ3hjaGFubmVsc2VsZWN0b3InLCAneWNoYW5uZWxzZWxlY3RvcicsICd4JywgJ3gxJywgJ3gyJywgJ3htbG5zJywgJ3knLCAneTEnLCAneTInLCAneicsICd6b29tYW5kcGFuJ10pO1xuY29uc3QgbWF0aE1sID0gZnJlZXplKFsnYWNjZW50JywgJ2FjY2VudHVuZGVyJywgJ2FsaWduJywgJ2JldmVsbGVkJywgJ2Nsb3NlJywgJ2NvbHVtbnNhbGlnbicsICdjb2x1bW5saW5lcycsICdjb2x1bW5zcGFuJywgJ2Rlbm9tYWxpZ24nLCAnZGVwdGgnLCAnZGlyJywgJ2Rpc3BsYXknLCAnZGlzcGxheXN0eWxlJywgJ2VuY29kaW5nJywgJ2ZlbmNlJywgJ2ZyYW1lJywgJ2hlaWdodCcsICdocmVmJywgJ2lkJywgJ2xhcmdlb3AnLCAnbGVuZ3RoJywgJ2xpbmV0aGlja25lc3MnLCAnbHNwYWNlJywgJ2xxdW90ZScsICdtYXRoYmFja2dyb3VuZCcsICdtYXRoY29sb3InLCAnbWF0aHNpemUnLCAnbWF0aHZhcmlhbnQnLCAnbWF4c2l6ZScsICdtaW5zaXplJywgJ21vdmFibGVsaW1pdHMnLCAnbm90YXRpb24nLCAnbnVtYWxpZ24nLCAnb3BlbicsICdyb3dhbGlnbicsICdyb3dsaW5lcycsICdyb3dzcGFjaW5nJywgJ3Jvd3NwYW4nLCAncnNwYWNlJywgJ3JxdW90ZScsICdzY3JpcHRsZXZlbCcsICdzY3JpcHRtaW5zaXplJywgJ3NjcmlwdHNpemVtdWx0aXBsaWVyJywgJ3NlbGVjdGlvbicsICdzZXBhcmF0b3InLCAnc2VwYXJhdG9ycycsICdzdHJldGNoeScsICdzdWJzY3JpcHRzaGlmdCcsICdzdXBzY3JpcHRzaGlmdCcsICdzeW1tZXRyaWMnLCAndm9mZnNldCcsICd3aWR0aCcsICd4bWxucyddKTtcbmNvbnN0IHhtbCA9IGZyZWV6ZShbJ3hsaW5rOmhyZWYnLCAneG1sOmlkJywgJ3hsaW5rOnRpdGxlJywgJ3htbDpzcGFjZScsICd4bWxuczp4bGluayddKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vYmV0dGVyLXJlZ2V4XG5jb25zdCBNVVNUQUNIRV9FWFBSID0gc2VhbCgvXFx7XFx7W1xcd1xcV10qfFtcXHdcXFddKlxcfVxcfS9nbSk7IC8vIFNwZWNpZnkgdGVtcGxhdGUgZGV0ZWN0aW9uIHJlZ2V4IGZvciBTQUZFX0ZPUl9URU1QTEFURVMgbW9kZVxuY29uc3QgRVJCX0VYUFIgPSBzZWFsKC88JVtcXHdcXFddKnxbXFx3XFxXXSolPi9nbSk7XG5jb25zdCBUTVBMSVRfRVhQUiA9IHNlYWwoL1xcJFxce1tcXHdcXFddKi9nbSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgdW5pY29ybi9iZXR0ZXItcmVnZXhcbmNvbnN0IERBVEFfQVRUUiA9IHNlYWwoL15kYXRhLVtcXC1cXHcuXFx1MDBCNy1cXHVGRkZGXSskLyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcbmNvbnN0IEFSSUFfQVRUUiA9IHNlYWwoL15hcmlhLVtcXC1cXHddKyQvKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuY29uc3QgSVNfQUxMT1dFRF9VUkkgPSBzZWFsKC9eKD86KD86KD86ZnxodCl0cHM/fG1haWx0b3x0ZWx8Y2FsbHRvfHNtc3xjaWR8eG1wcCk6fFteYS16XXxbYS16Ky5cXC1dKyg/OlteYS16Ky5cXC06XXwkKSkvaSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG4pO1xuY29uc3QgSVNfU0NSSVBUX09SX0RBVEEgPSBzZWFsKC9eKD86XFx3K3NjcmlwdHxkYXRhKTovaSk7XG5jb25zdCBBVFRSX1dISVRFU1BBQ0UgPSBzZWFsKC9bXFx1MDAwMC1cXHUwMDIwXFx1MDBBMFxcdTE2ODBcXHUxODBFXFx1MjAwMC1cXHUyMDI5XFx1MjA1RlxcdTMwMDBdL2cgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb250cm9sLXJlZ2V4XG4pO1xuY29uc3QgRE9DVFlQRV9OQU1FID0gc2VhbCgvXmh0bWwkL2kpO1xuY29uc3QgQ1VTVE9NX0VMRU1FTlQgPSBzZWFsKC9eW2Etel1bLlxcd10qKC1bLlxcd10rKSskL2kpO1xuXG52YXIgRVhQUkVTU0lPTlMgPSAvKiNfX1BVUkVfXyovT2JqZWN0LmZyZWV6ZSh7XG4gIF9fcHJvdG9fXzogbnVsbCxcbiAgQVJJQV9BVFRSOiBBUklBX0FUVFIsXG4gIEFUVFJfV0hJVEVTUEFDRTogQVRUUl9XSElURVNQQUNFLFxuICBDVVNUT01fRUxFTUVOVDogQ1VTVE9NX0VMRU1FTlQsXG4gIERBVEFfQVRUUjogREFUQV9BVFRSLFxuICBET0NUWVBFX05BTUU6IERPQ1RZUEVfTkFNRSxcbiAgRVJCX0VYUFI6IEVSQl9FWFBSLFxuICBJU19BTExPV0VEX1VSSTogSVNfQUxMT1dFRF9VUkksXG4gIElTX1NDUklQVF9PUl9EQVRBOiBJU19TQ1JJUFRfT1JfREFUQSxcbiAgTVVTVEFDSEVfRVhQUjogTVVTVEFDSEVfRVhQUixcbiAgVE1QTElUX0VYUFI6IFRNUExJVF9FWFBSXG59KTtcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL05vZGUvbm9kZVR5cGVcbmNvbnN0IE5PREVfVFlQRSA9IHtcbiAgZWxlbWVudDogMSxcbiAgYXR0cmlidXRlOiAyLFxuICB0ZXh0OiAzLFxuICBjZGF0YVNlY3Rpb246IDQsXG4gIGVudGl0eVJlZmVyZW5jZTogNSxcbiAgLy8gRGVwcmVjYXRlZFxuICBlbnRpdHlOb2RlOiA2LFxuICAvLyBEZXByZWNhdGVkXG4gIHByb2dyZXNzaW5nSW5zdHJ1Y3Rpb246IDcsXG4gIGNvbW1lbnQ6IDgsXG4gIGRvY3VtZW50OiA5LFxuICBkb2N1bWVudFR5cGU6IDEwLFxuICBkb2N1bWVudEZyYWdtZW50OiAxMSxcbiAgbm90YXRpb246IDEyIC8vIERlcHJlY2F0ZWRcbn07XG5jb25zdCBnZXRHbG9iYWwgPSBmdW5jdGlvbiBnZXRHbG9iYWwoKSB7XG4gIHJldHVybiB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/IG51bGwgOiB3aW5kb3c7XG59O1xuLyoqXG4gKiBDcmVhdGVzIGEgbm8tb3AgcG9saWN5IGZvciBpbnRlcm5hbCB1c2Ugb25seS5cbiAqIERvbid0IGV4cG9ydCB0aGlzIGZ1bmN0aW9uIG91dHNpZGUgdGhpcyBtb2R1bGUhXG4gKiBAcGFyYW0gdHJ1c3RlZFR5cGVzIFRoZSBwb2xpY3kgZmFjdG9yeS5cbiAqIEBwYXJhbSBwdXJpZnlIb3N0RWxlbWVudCBUaGUgU2NyaXB0IGVsZW1lbnQgdXNlZCB0byBsb2FkIERPTVB1cmlmeSAodG8gZGV0ZXJtaW5lIHBvbGljeSBuYW1lIHN1ZmZpeCkuXG4gKiBAcmV0dXJuIFRoZSBwb2xpY3kgY3JlYXRlZCAob3IgbnVsbCwgaWYgVHJ1c3RlZCBUeXBlc1xuICogYXJlIG5vdCBzdXBwb3J0ZWQgb3IgY3JlYXRpbmcgdGhlIHBvbGljeSBmYWlsZWQpLlxuICovXG5jb25zdCBfY3JlYXRlVHJ1c3RlZFR5cGVzUG9saWN5ID0gZnVuY3Rpb24gX2NyZWF0ZVRydXN0ZWRUeXBlc1BvbGljeSh0cnVzdGVkVHlwZXMsIHB1cmlmeUhvc3RFbGVtZW50KSB7XG4gIGlmICh0eXBlb2YgdHJ1c3RlZFR5cGVzICE9PSAnb2JqZWN0JyB8fCB0eXBlb2YgdHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8vIEFsbG93IHRoZSBjYWxsZXJzIHRvIGNvbnRyb2wgdGhlIHVuaXF1ZSBwb2xpY3kgbmFtZVxuICAvLyBieSBhZGRpbmcgYSBkYXRhLXR0LXBvbGljeS1zdWZmaXggdG8gdGhlIHNjcmlwdCBlbGVtZW50IHdpdGggdGhlIERPTVB1cmlmeS5cbiAgLy8gUG9saWN5IGNyZWF0aW9uIHdpdGggZHVwbGljYXRlIG5hbWVzIHRocm93cyBpbiBUcnVzdGVkIFR5cGVzLlxuICBsZXQgc3VmZml4ID0gbnVsbDtcbiAgY29uc3QgQVRUUl9OQU1FID0gJ2RhdGEtdHQtcG9saWN5LXN1ZmZpeCc7XG4gIGlmIChwdXJpZnlIb3N0RWxlbWVudCAmJiBwdXJpZnlIb3N0RWxlbWVudC5oYXNBdHRyaWJ1dGUoQVRUUl9OQU1FKSkge1xuICAgIHN1ZmZpeCA9IHB1cmlmeUhvc3RFbGVtZW50LmdldEF0dHJpYnV0ZShBVFRSX05BTUUpO1xuICB9XG4gIGNvbnN0IHBvbGljeU5hbWUgPSAnZG9tcHVyaWZ5JyArIChzdWZmaXggPyAnIycgKyBzdWZmaXggOiAnJyk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3kocG9saWN5TmFtZSwge1xuICAgICAgY3JlYXRlSFRNTChodG1sKSB7XG4gICAgICAgIHJldHVybiBodG1sO1xuICAgICAgfSxcbiAgICAgIGNyZWF0ZVNjcmlwdFVSTChzY3JpcHRVcmwpIHtcbiAgICAgICAgcmV0dXJuIHNjcmlwdFVybDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSBjYXRjaCAoXykge1xuICAgIC8vIFBvbGljeSBjcmVhdGlvbiBmYWlsZWQgKG1vc3QgbGlrZWx5IGFub3RoZXIgRE9NUHVyaWZ5IHNjcmlwdCBoYXNcbiAgICAvLyBhbHJlYWR5IHJ1bikuIFNraXAgY3JlYXRpbmcgdGhlIHBvbGljeSwgYXMgdGhpcyB3aWxsIG9ubHkgY2F1c2UgZXJyb3JzXG4gICAgLy8gaWYgVFQgYXJlIGVuZm9yY2VkLlxuICAgIGNvbnNvbGUud2FybignVHJ1c3RlZFR5cGVzIHBvbGljeSAnICsgcG9saWN5TmFtZSArICcgY291bGQgbm90IGJlIGNyZWF0ZWQuJyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn07XG5jb25zdCBfY3JlYXRlSG9va3NNYXAgPSBmdW5jdGlvbiBfY3JlYXRlSG9va3NNYXAoKSB7XG4gIHJldHVybiB7XG4gICAgYWZ0ZXJTYW5pdGl6ZUF0dHJpYnV0ZXM6IFtdLFxuICAgIGFmdGVyU2FuaXRpemVFbGVtZW50czogW10sXG4gICAgYWZ0ZXJTYW5pdGl6ZVNoYWRvd0RPTTogW10sXG4gICAgYmVmb3JlU2FuaXRpemVBdHRyaWJ1dGVzOiBbXSxcbiAgICBiZWZvcmVTYW5pdGl6ZUVsZW1lbnRzOiBbXSxcbiAgICBiZWZvcmVTYW5pdGl6ZVNoYWRvd0RPTTogW10sXG4gICAgdXBvblNhbml0aXplQXR0cmlidXRlOiBbXSxcbiAgICB1cG9uU2FuaXRpemVFbGVtZW50OiBbXSxcbiAgICB1cG9uU2FuaXRpemVTaGFkb3dOb2RlOiBbXVxuICB9O1xufTtcbmZ1bmN0aW9uIGNyZWF0ZURPTVB1cmlmeSgpIHtcbiAgbGV0IHdpbmRvdyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogZ2V0R2xvYmFsKCk7XG4gIGNvbnN0IERPTVB1cmlmeSA9IHJvb3QgPT4gY3JlYXRlRE9NUHVyaWZ5KHJvb3QpO1xuICBET01QdXJpZnkudmVyc2lvbiA9ICczLjIuNSc7XG4gIERPTVB1cmlmeS5yZW1vdmVkID0gW107XG4gIGlmICghd2luZG93IHx8ICF3aW5kb3cuZG9jdW1lbnQgfHwgd2luZG93LmRvY3VtZW50Lm5vZGVUeXBlICE9PSBOT0RFX1RZUEUuZG9jdW1lbnQgfHwgIXdpbmRvdy5FbGVtZW50KSB7XG4gICAgLy8gTm90IHJ1bm5pbmcgaW4gYSBicm93c2VyLCBwcm92aWRlIGEgZmFjdG9yeSBmdW5jdGlvblxuICAgIC8vIHNvIHRoYXQgeW91IGNhbiBwYXNzIHlvdXIgb3duIFdpbmRvd1xuICAgIERPTVB1cmlmeS5pc1N1cHBvcnRlZCA9IGZhbHNlO1xuICAgIHJldHVybiBET01QdXJpZnk7XG4gIH1cbiAgbGV0IHtcbiAgICBkb2N1bWVudFxuICB9ID0gd2luZG93O1xuICBjb25zdCBvcmlnaW5hbERvY3VtZW50ID0gZG9jdW1lbnQ7XG4gIGNvbnN0IGN1cnJlbnRTY3JpcHQgPSBvcmlnaW5hbERvY3VtZW50LmN1cnJlbnRTY3JpcHQ7XG4gIGNvbnN0IHtcbiAgICBEb2N1bWVudEZyYWdtZW50LFxuICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQsXG4gICAgTm9kZSxcbiAgICBFbGVtZW50LFxuICAgIE5vZGVGaWx0ZXIsXG4gICAgTmFtZWROb2RlTWFwID0gd2luZG93Lk5hbWVkTm9kZU1hcCB8fCB3aW5kb3cuTW96TmFtZWRBdHRyTWFwLFxuICAgIEhUTUxGb3JtRWxlbWVudCxcbiAgICBET01QYXJzZXIsXG4gICAgdHJ1c3RlZFR5cGVzXG4gIH0gPSB3aW5kb3c7XG4gIGNvbnN0IEVsZW1lbnRQcm90b3R5cGUgPSBFbGVtZW50LnByb3RvdHlwZTtcbiAgY29uc3QgY2xvbmVOb2RlID0gbG9va3VwR2V0dGVyKEVsZW1lbnRQcm90b3R5cGUsICdjbG9uZU5vZGUnKTtcbiAgY29uc3QgcmVtb3ZlID0gbG9va3VwR2V0dGVyKEVsZW1lbnRQcm90b3R5cGUsICdyZW1vdmUnKTtcbiAgY29uc3QgZ2V0TmV4dFNpYmxpbmcgPSBsb29rdXBHZXR0ZXIoRWxlbWVudFByb3RvdHlwZSwgJ25leHRTaWJsaW5nJyk7XG4gIGNvbnN0IGdldENoaWxkTm9kZXMgPSBsb29rdXBHZXR0ZXIoRWxlbWVudFByb3RvdHlwZSwgJ2NoaWxkTm9kZXMnKTtcbiAgY29uc3QgZ2V0UGFyZW50Tm9kZSA9IGxvb2t1cEdldHRlcihFbGVtZW50UHJvdG90eXBlLCAncGFyZW50Tm9kZScpO1xuICAvLyBBcyBwZXIgaXNzdWUgIzQ3LCB0aGUgd2ViLWNvbXBvbmVudHMgcmVnaXN0cnkgaXMgaW5oZXJpdGVkIGJ5IGFcbiAgLy8gbmV3IGRvY3VtZW50IGNyZWF0ZWQgdmlhIGNyZWF0ZUhUTUxEb2N1bWVudC4gQXMgcGVyIHRoZSBzcGVjXG4gIC8vIChodHRwOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMvY3VzdG9tLyNjcmVhdGluZy1hbmQtcGFzc2luZy1yZWdpc3RyaWVzKVxuICAvLyBhIG5ldyBlbXB0eSByZWdpc3RyeSBpcyB1c2VkIHdoZW4gY3JlYXRpbmcgYSB0ZW1wbGF0ZSBjb250ZW50cyBvd25lclxuICAvLyBkb2N1bWVudCwgc28gd2UgdXNlIHRoYXQgYXMgb3VyIHBhcmVudCBkb2N1bWVudCB0byBlbnN1cmUgbm90aGluZ1xuICAvLyBpcyBpbmhlcml0ZWQuXG4gIGlmICh0eXBlb2YgSFRNTFRlbXBsYXRlRWxlbWVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTtcbiAgICBpZiAodGVtcGxhdGUuY29udGVudCAmJiB0ZW1wbGF0ZS5jb250ZW50Lm93bmVyRG9jdW1lbnQpIHtcbiAgICAgIGRvY3VtZW50ID0gdGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50O1xuICAgIH1cbiAgfVxuICBsZXQgdHJ1c3RlZFR5cGVzUG9saWN5O1xuICBsZXQgZW1wdHlIVE1MID0gJyc7XG4gIGNvbnN0IHtcbiAgICBpbXBsZW1lbnRhdGlvbixcbiAgICBjcmVhdGVOb2RlSXRlcmF0b3IsXG4gICAgY3JlYXRlRG9jdW1lbnRGcmFnbWVudCxcbiAgICBnZXRFbGVtZW50c0J5VGFnTmFtZVxuICB9ID0gZG9jdW1lbnQ7XG4gIGNvbnN0IHtcbiAgICBpbXBvcnROb2RlXG4gIH0gPSBvcmlnaW5hbERvY3VtZW50O1xuICBsZXQgaG9va3MgPSBfY3JlYXRlSG9va3NNYXAoKTtcbiAgLyoqXG4gICAqIEV4cG9zZSB3aGV0aGVyIHRoaXMgYnJvd3NlciBzdXBwb3J0cyBydW5uaW5nIHRoZSBmdWxsIERPTVB1cmlmeS5cbiAgICovXG4gIERPTVB1cmlmeS5pc1N1cHBvcnRlZCA9IHR5cGVvZiBlbnRyaWVzID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBnZXRQYXJlbnROb2RlID09PSAnZnVuY3Rpb24nICYmIGltcGxlbWVudGF0aW9uICYmIGltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCAhPT0gdW5kZWZpbmVkO1xuICBjb25zdCB7XG4gICAgTVVTVEFDSEVfRVhQUixcbiAgICBFUkJfRVhQUixcbiAgICBUTVBMSVRfRVhQUixcbiAgICBEQVRBX0FUVFIsXG4gICAgQVJJQV9BVFRSLFxuICAgIElTX1NDUklQVF9PUl9EQVRBLFxuICAgIEFUVFJfV0hJVEVTUEFDRSxcbiAgICBDVVNUT01fRUxFTUVOVFxuICB9ID0gRVhQUkVTU0lPTlM7XG4gIGxldCB7XG4gICAgSVNfQUxMT1dFRF9VUkk6IElTX0FMTE9XRURfVVJJJDFcbiAgfSA9IEVYUFJFU1NJT05TO1xuICAvKipcbiAgICogV2UgY29uc2lkZXIgdGhlIGVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzIGJlbG93IHRvIGJlIHNhZmUuIElkZWFsbHlcbiAgICogZG9uJ3QgYWRkIGFueSBuZXcgb25lcyBidXQgZmVlbCBmcmVlIHRvIHJlbW92ZSB1bndhbnRlZCBvbmVzLlxuICAgKi9cbiAgLyogYWxsb3dlZCBlbGVtZW50IG5hbWVzICovXG4gIGxldCBBTExPV0VEX1RBR1MgPSBudWxsO1xuICBjb25zdCBERUZBVUxUX0FMTE9XRURfVEFHUyA9IGFkZFRvU2V0KHt9LCBbLi4uaHRtbCQxLCAuLi5zdmckMSwgLi4uc3ZnRmlsdGVycywgLi4ubWF0aE1sJDEsIC4uLnRleHRdKTtcbiAgLyogQWxsb3dlZCBhdHRyaWJ1dGUgbmFtZXMgKi9cbiAgbGV0IEFMTE9XRURfQVRUUiA9IG51bGw7XG4gIGNvbnN0IERFRkFVTFRfQUxMT1dFRF9BVFRSID0gYWRkVG9TZXQoe30sIFsuLi5odG1sLCAuLi5zdmcsIC4uLm1hdGhNbCwgLi4ueG1sXSk7XG4gIC8qXG4gICAqIENvbmZpZ3VyZSBob3cgRE9NUHVyaWZ5IHNob3VsZCBoYW5kbGUgY3VzdG9tIGVsZW1lbnRzIGFuZCB0aGVpciBhdHRyaWJ1dGVzIGFzIHdlbGwgYXMgY3VzdG9taXplZCBidWlsdC1pbiBlbGVtZW50cy5cbiAgICogQHByb3BlcnR5IHtSZWdFeHB8RnVuY3Rpb258bnVsbH0gdGFnTmFtZUNoZWNrIG9uZSBvZiBbbnVsbCwgcmVnZXhQYXR0ZXJuLCBwcmVkaWNhdGVdLiBEZWZhdWx0OiBgbnVsbGAgKGRpc2FsbG93IGFueSBjdXN0b20gZWxlbWVudHMpXG4gICAqIEBwcm9wZXJ0eSB7UmVnRXhwfEZ1bmN0aW9ufG51bGx9IGF0dHJpYnV0ZU5hbWVDaGVjayBvbmUgb2YgW251bGwsIHJlZ2V4UGF0dGVybiwgcHJlZGljYXRlXS4gRGVmYXVsdDogYG51bGxgIChkaXNhbGxvdyBhbnkgYXR0cmlidXRlcyBub3Qgb24gdGhlIGFsbG93IGxpc3QpXG4gICAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzIGFsbG93IGN1c3RvbSBlbGVtZW50cyBkZXJpdmVkIGZyb20gYnVpbHQtaW5zIGlmIHRoZXkgcGFzcyBDVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2suIERlZmF1bHQ6IGBmYWxzZWAuXG4gICAqL1xuICBsZXQgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcgPSBPYmplY3Quc2VhbChjcmVhdGUobnVsbCwge1xuICAgIHRhZ05hbWVDaGVjazoge1xuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBudWxsXG4gICAgfSxcbiAgICBhdHRyaWJ1dGVOYW1lQ2hlY2s6IHtcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICB2YWx1ZTogbnVsbFxuICAgIH0sXG4gICAgYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzOiB7XG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IGZhbHNlXG4gICAgfVxuICB9KSk7XG4gIC8qIEV4cGxpY2l0bHkgZm9yYmlkZGVuIHRhZ3MgKG92ZXJyaWRlcyBBTExPV0VEX1RBR1MvQUREX1RBR1MpICovXG4gIGxldCBGT1JCSURfVEFHUyA9IG51bGw7XG4gIC8qIEV4cGxpY2l0bHkgZm9yYmlkZGVuIGF0dHJpYnV0ZXMgKG92ZXJyaWRlcyBBTExPV0VEX0FUVFIvQUREX0FUVFIpICovXG4gIGxldCBGT1JCSURfQVRUUiA9IG51bGw7XG4gIC8qIERlY2lkZSBpZiBBUklBIGF0dHJpYnV0ZXMgYXJlIG9rYXkgKi9cbiAgbGV0IEFMTE9XX0FSSUFfQVRUUiA9IHRydWU7XG4gIC8qIERlY2lkZSBpZiBjdXN0b20gZGF0YSBhdHRyaWJ1dGVzIGFyZSBva2F5ICovXG4gIGxldCBBTExPV19EQVRBX0FUVFIgPSB0cnVlO1xuICAvKiBEZWNpZGUgaWYgdW5rbm93biBwcm90b2NvbHMgYXJlIG9rYXkgKi9cbiAgbGV0IEFMTE9XX1VOS05PV05fUFJPVE9DT0xTID0gZmFsc2U7XG4gIC8qIERlY2lkZSBpZiBzZWxmLWNsb3NpbmcgdGFncyBpbiBhdHRyaWJ1dGVzIGFyZSBhbGxvd2VkLlxuICAgKiBVc3VhbGx5IHJlbW92ZWQgZHVlIHRvIGEgbVhTUyBpc3N1ZSBpbiBqUXVlcnkgMy4wICovXG4gIGxldCBBTExPV19TRUxGX0NMT1NFX0lOX0FUVFIgPSB0cnVlO1xuICAvKiBPdXRwdXQgc2hvdWxkIGJlIHNhZmUgZm9yIGNvbW1vbiB0ZW1wbGF0ZSBlbmdpbmVzLlxuICAgKiBUaGlzIG1lYW5zLCBET01QdXJpZnkgcmVtb3ZlcyBkYXRhIGF0dHJpYnV0ZXMsIG11c3RhY2hlcyBhbmQgRVJCXG4gICAqL1xuICBsZXQgU0FGRV9GT1JfVEVNUExBVEVTID0gZmFsc2U7XG4gIC8qIE91dHB1dCBzaG91bGQgYmUgc2FmZSBldmVuIGZvciBYTUwgdXNlZCB3aXRoaW4gSFRNTCBhbmQgYWxpa2UuXG4gICAqIFRoaXMgbWVhbnMsIERPTVB1cmlmeSByZW1vdmVzIGNvbW1lbnRzIHdoZW4gY29udGFpbmluZyByaXNreSBjb250ZW50LlxuICAgKi9cbiAgbGV0IFNBRkVfRk9SX1hNTCA9IHRydWU7XG4gIC8qIERlY2lkZSBpZiBkb2N1bWVudCB3aXRoIDxodG1sPi4uLiBzaG91bGQgYmUgcmV0dXJuZWQgKi9cbiAgbGV0IFdIT0xFX0RPQ1VNRU5UID0gZmFsc2U7XG4gIC8qIFRyYWNrIHdoZXRoZXIgY29uZmlnIGlzIGFscmVhZHkgc2V0IG9uIHRoaXMgaW5zdGFuY2Ugb2YgRE9NUHVyaWZ5LiAqL1xuICBsZXQgU0VUX0NPTkZJRyA9IGZhbHNlO1xuICAvKiBEZWNpZGUgaWYgYWxsIGVsZW1lbnRzIChlLmcuIHN0eWxlLCBzY3JpcHQpIG11c3QgYmUgY2hpbGRyZW4gb2ZcbiAgICogZG9jdW1lbnQuYm9keS4gQnkgZGVmYXVsdCwgYnJvd3NlcnMgbWlnaHQgbW92ZSB0aGVtIHRvIGRvY3VtZW50LmhlYWQgKi9cbiAgbGV0IEZPUkNFX0JPRFkgPSBmYWxzZTtcbiAgLyogRGVjaWRlIGlmIGEgRE9NIGBIVE1MQm9keUVsZW1lbnRgIHNob3VsZCBiZSByZXR1cm5lZCwgaW5zdGVhZCBvZiBhIGh0bWxcbiAgICogc3RyaW5nIChvciBhIFRydXN0ZWRIVE1MIG9iamVjdCBpZiBUcnVzdGVkIFR5cGVzIGFyZSBzdXBwb3J0ZWQpLlxuICAgKiBJZiBgV0hPTEVfRE9DVU1FTlRgIGlzIGVuYWJsZWQgYSBgSFRNTEh0bWxFbGVtZW50YCB3aWxsIGJlIHJldHVybmVkIGluc3RlYWRcbiAgICovXG4gIGxldCBSRVRVUk5fRE9NID0gZmFsc2U7XG4gIC8qIERlY2lkZSBpZiBhIERPTSBgRG9jdW1lbnRGcmFnbWVudGAgc2hvdWxkIGJlIHJldHVybmVkLCBpbnN0ZWFkIG9mIGEgaHRtbFxuICAgKiBzdHJpbmcgIChvciBhIFRydXN0ZWRIVE1MIG9iamVjdCBpZiBUcnVzdGVkIFR5cGVzIGFyZSBzdXBwb3J0ZWQpICovXG4gIGxldCBSRVRVUk5fRE9NX0ZSQUdNRU5UID0gZmFsc2U7XG4gIC8qIFRyeSB0byByZXR1cm4gYSBUcnVzdGVkIFR5cGUgb2JqZWN0IGluc3RlYWQgb2YgYSBzdHJpbmcsIHJldHVybiBhIHN0cmluZyBpblxuICAgKiBjYXNlIFRydXN0ZWQgVHlwZXMgYXJlIG5vdCBzdXBwb3J0ZWQgICovXG4gIGxldCBSRVRVUk5fVFJVU1RFRF9UWVBFID0gZmFsc2U7XG4gIC8qIE91dHB1dCBzaG91bGQgYmUgZnJlZSBmcm9tIERPTSBjbG9iYmVyaW5nIGF0dGFja3M/XG4gICAqIFRoaXMgc2FuaXRpemVzIG1hcmt1cHMgbmFtZWQgd2l0aCBjb2xsaWRpbmcsIGNsb2JiZXJhYmxlIGJ1aWx0LWluIERPTSBBUElzLlxuICAgKi9cbiAgbGV0IFNBTklUSVpFX0RPTSA9IHRydWU7XG4gIC8qIEFjaGlldmUgZnVsbCBET00gQ2xvYmJlcmluZyBwcm90ZWN0aW9uIGJ5IGlzb2xhdGluZyB0aGUgbmFtZXNwYWNlIG9mIG5hbWVkXG4gICAqIHByb3BlcnRpZXMgYW5kIEpTIHZhcmlhYmxlcywgbWl0aWdhdGluZyBhdHRhY2tzIHRoYXQgYWJ1c2UgdGhlIEhUTUwvRE9NIHNwZWMgcnVsZXMuXG4gICAqXG4gICAqIEhUTUwvRE9NIHNwZWMgcnVsZXMgdGhhdCBlbmFibGUgRE9NIENsb2JiZXJpbmc6XG4gICAqICAgLSBOYW1lZCBBY2Nlc3Mgb24gV2luZG93ICjCpzcuMy4zKVxuICAgKiAgIC0gRE9NIFRyZWUgQWNjZXNzb3JzICjCpzMuMS41KVxuICAgKiAgIC0gRm9ybSBFbGVtZW50IFBhcmVudC1DaGlsZCBSZWxhdGlvbnMgKMKnNC4xMC4zKVxuICAgKiAgIC0gSWZyYW1lIHNyY2RvYyAvIE5lc3RlZCBXaW5kb3dQcm94aWVzICjCpzQuOC41KVxuICAgKiAgIC0gSFRNTENvbGxlY3Rpb24gKMKnNC4yLjEwLjIpXG4gICAqXG4gICAqIE5hbWVzcGFjZSBpc29sYXRpb24gaXMgaW1wbGVtZW50ZWQgYnkgcHJlZml4aW5nIGBpZGAgYW5kIGBuYW1lYCBhdHRyaWJ1dGVzXG4gICAqIHdpdGggYSBjb25zdGFudCBzdHJpbmcsIGkuZS4sIGB1c2VyLWNvbnRlbnQtYFxuICAgKi9cbiAgbGV0IFNBTklUSVpFX05BTUVEX1BST1BTID0gZmFsc2U7XG4gIGNvbnN0IFNBTklUSVpFX05BTUVEX1BST1BTX1BSRUZJWCA9ICd1c2VyLWNvbnRlbnQtJztcbiAgLyogS2VlcCBlbGVtZW50IGNvbnRlbnQgd2hlbiByZW1vdmluZyBlbGVtZW50PyAqL1xuICBsZXQgS0VFUF9DT05URU5UID0gdHJ1ZTtcbiAgLyogSWYgYSBgTm9kZWAgaXMgcGFzc2VkIHRvIHNhbml0aXplKCksIHRoZW4gcGVyZm9ybXMgc2FuaXRpemF0aW9uIGluLXBsYWNlIGluc3RlYWRcbiAgICogb2YgaW1wb3J0aW5nIGl0IGludG8gYSBuZXcgRG9jdW1lbnQgYW5kIHJldHVybmluZyBhIHNhbml0aXplZCBjb3B5ICovXG4gIGxldCBJTl9QTEFDRSA9IGZhbHNlO1xuICAvKiBBbGxvdyB1c2FnZSBvZiBwcm9maWxlcyBsaWtlIGh0bWwsIHN2ZyBhbmQgbWF0aE1sICovXG4gIGxldCBVU0VfUFJPRklMRVMgPSB7fTtcbiAgLyogVGFncyB0byBpZ25vcmUgY29udGVudCBvZiB3aGVuIEtFRVBfQ09OVEVOVCBpcyB0cnVlICovXG4gIGxldCBGT1JCSURfQ09OVEVOVFMgPSBudWxsO1xuICBjb25zdCBERUZBVUxUX0ZPUkJJRF9DT05URU5UUyA9IGFkZFRvU2V0KHt9LCBbJ2Fubm90YXRpb24teG1sJywgJ2F1ZGlvJywgJ2NvbGdyb3VwJywgJ2Rlc2MnLCAnZm9yZWlnbm9iamVjdCcsICdoZWFkJywgJ2lmcmFtZScsICdtYXRoJywgJ21pJywgJ21uJywgJ21vJywgJ21zJywgJ210ZXh0JywgJ25vZW1iZWQnLCAnbm9mcmFtZXMnLCAnbm9zY3JpcHQnLCAncGxhaW50ZXh0JywgJ3NjcmlwdCcsICdzdHlsZScsICdzdmcnLCAndGVtcGxhdGUnLCAndGhlYWQnLCAndGl0bGUnLCAndmlkZW8nLCAneG1wJ10pO1xuICAvKiBUYWdzIHRoYXQgYXJlIHNhZmUgZm9yIGRhdGE6IFVSSXMgKi9cbiAgbGV0IERBVEFfVVJJX1RBR1MgPSBudWxsO1xuICBjb25zdCBERUZBVUxUX0RBVEFfVVJJX1RBR1MgPSBhZGRUb1NldCh7fSwgWydhdWRpbycsICd2aWRlbycsICdpbWcnLCAnc291cmNlJywgJ2ltYWdlJywgJ3RyYWNrJ10pO1xuICAvKiBBdHRyaWJ1dGVzIHNhZmUgZm9yIHZhbHVlcyBsaWtlIFwiamF2YXNjcmlwdDpcIiAqL1xuICBsZXQgVVJJX1NBRkVfQVRUUklCVVRFUyA9IG51bGw7XG4gIGNvbnN0IERFRkFVTFRfVVJJX1NBRkVfQVRUUklCVVRFUyA9IGFkZFRvU2V0KHt9LCBbJ2FsdCcsICdjbGFzcycsICdmb3InLCAnaWQnLCAnbGFiZWwnLCAnbmFtZScsICdwYXR0ZXJuJywgJ3BsYWNlaG9sZGVyJywgJ3JvbGUnLCAnc3VtbWFyeScsICd0aXRsZScsICd2YWx1ZScsICdzdHlsZScsICd4bWxucyddKTtcbiAgY29uc3QgTUFUSE1MX05BTUVTUEFDRSA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MJztcbiAgY29uc3QgU1ZHX05BTUVTUEFDRSA9ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7XG4gIGNvbnN0IEhUTUxfTkFNRVNQQUNFID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnO1xuICAvKiBEb2N1bWVudCBuYW1lc3BhY2UgKi9cbiAgbGV0IE5BTUVTUEFDRSA9IEhUTUxfTkFNRVNQQUNFO1xuICBsZXQgSVNfRU1QVFlfSU5QVVQgPSBmYWxzZTtcbiAgLyogQWxsb3dlZCBYSFRNTCtYTUwgbmFtZXNwYWNlcyAqL1xuICBsZXQgQUxMT1dFRF9OQU1FU1BBQ0VTID0gbnVsbDtcbiAgY29uc3QgREVGQVVMVF9BTExPV0VEX05BTUVTUEFDRVMgPSBhZGRUb1NldCh7fSwgW01BVEhNTF9OQU1FU1BBQ0UsIFNWR19OQU1FU1BBQ0UsIEhUTUxfTkFNRVNQQUNFXSwgc3RyaW5nVG9TdHJpbmcpO1xuICBsZXQgTUFUSE1MX1RFWFRfSU5URUdSQVRJT05fUE9JTlRTID0gYWRkVG9TZXQoe30sIFsnbWknLCAnbW8nLCAnbW4nLCAnbXMnLCAnbXRleHQnXSk7XG4gIGxldCBIVE1MX0lOVEVHUkFUSU9OX1BPSU5UUyA9IGFkZFRvU2V0KHt9LCBbJ2Fubm90YXRpb24teG1sJ10pO1xuICAvLyBDZXJ0YWluIGVsZW1lbnRzIGFyZSBhbGxvd2VkIGluIGJvdGggU1ZHIGFuZCBIVE1MXG4gIC8vIG5hbWVzcGFjZS4gV2UgbmVlZCB0byBzcGVjaWZ5IHRoZW0gZXhwbGljaXRseVxuICAvLyBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGVycm9uZW91c2x5IGRlbGV0ZWQgZnJvbVxuICAvLyBIVE1MIG5hbWVzcGFjZS5cbiAgY29uc3QgQ09NTU9OX1NWR19BTkRfSFRNTF9FTEVNRU5UUyA9IGFkZFRvU2V0KHt9LCBbJ3RpdGxlJywgJ3N0eWxlJywgJ2ZvbnQnLCAnYScsICdzY3JpcHQnXSk7XG4gIC8qIFBhcnNpbmcgb2Ygc3RyaWN0IFhIVE1MIGRvY3VtZW50cyAqL1xuICBsZXQgUEFSU0VSX01FRElBX1RZUEUgPSBudWxsO1xuICBjb25zdCBTVVBQT1JURURfUEFSU0VSX01FRElBX1RZUEVTID0gWydhcHBsaWNhdGlvbi94aHRtbCt4bWwnLCAndGV4dC9odG1sJ107XG4gIGNvbnN0IERFRkFVTFRfUEFSU0VSX01FRElBX1RZUEUgPSAndGV4dC9odG1sJztcbiAgbGV0IHRyYW5zZm9ybUNhc2VGdW5jID0gbnVsbDtcbiAgLyogS2VlcCBhIHJlZmVyZW5jZSB0byBjb25maWcgdG8gcGFzcyB0byBob29rcyAqL1xuICBsZXQgQ09ORklHID0gbnVsbDtcbiAgLyogSWRlYWxseSwgZG8gbm90IHRvdWNoIGFueXRoaW5nIGJlbG93IHRoaXMgbGluZSAqL1xuICAvKiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICovXG4gIGNvbnN0IGZvcm1FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpO1xuICBjb25zdCBpc1JlZ2V4T3JGdW5jdGlvbiA9IGZ1bmN0aW9uIGlzUmVnZXhPckZ1bmN0aW9uKHRlc3RWYWx1ZSkge1xuICAgIHJldHVybiB0ZXN0VmFsdWUgaW5zdGFuY2VvZiBSZWdFeHAgfHwgdGVzdFZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb247XG4gIH07XG4gIC8qKlxuICAgKiBfcGFyc2VDb25maWdcbiAgICpcbiAgICogQHBhcmFtIGNmZyBvcHRpb25hbCBjb25maWcgbGl0ZXJhbFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgY29uc3QgX3BhcnNlQ29uZmlnID0gZnVuY3Rpb24gX3BhcnNlQ29uZmlnKCkge1xuICAgIGxldCBjZmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgIGlmIChDT05GSUcgJiYgQ09ORklHID09PSBjZmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLyogU2hpZWxkIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZyb20gdGFtcGVyaW5nICovXG4gICAgaWYgKCFjZmcgfHwgdHlwZW9mIGNmZyAhPT0gJ29iamVjdCcpIHtcbiAgICAgIGNmZyA9IHt9O1xuICAgIH1cbiAgICAvKiBTaGllbGQgY29uZmlndXJhdGlvbiBvYmplY3QgZnJvbSBwcm90b3R5cGUgcG9sbHV0aW9uICovXG4gICAgY2ZnID0gY2xvbmUoY2ZnKTtcbiAgICBQQVJTRVJfTUVESUFfVFlQRSA9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vcHJlZmVyLWluY2x1ZGVzXG4gICAgU1VQUE9SVEVEX1BBUlNFUl9NRURJQV9UWVBFUy5pbmRleE9mKGNmZy5QQVJTRVJfTUVESUFfVFlQRSkgPT09IC0xID8gREVGQVVMVF9QQVJTRVJfTUVESUFfVFlQRSA6IGNmZy5QQVJTRVJfTUVESUFfVFlQRTtcbiAgICAvLyBIVE1MIHRhZ3MgYW5kIGF0dHJpYnV0ZXMgYXJlIG5vdCBjYXNlLXNlbnNpdGl2ZSwgY29udmVydGluZyB0byBsb3dlcmNhc2UuIEtlZXBpbmcgWEhUTUwgYXMgaXMuXG4gICAgdHJhbnNmb3JtQ2FzZUZ1bmMgPSBQQVJTRVJfTUVESUFfVFlQRSA9PT0gJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcgPyBzdHJpbmdUb1N0cmluZyA6IHN0cmluZ1RvTG93ZXJDYXNlO1xuICAgIC8qIFNldCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgKi9cbiAgICBBTExPV0VEX1RBR1MgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdBTExPV0VEX1RBR1MnKSA/IGFkZFRvU2V0KHt9LCBjZmcuQUxMT1dFRF9UQUdTLCB0cmFuc2Zvcm1DYXNlRnVuYykgOiBERUZBVUxUX0FMTE9XRURfVEFHUztcbiAgICBBTExPV0VEX0FUVFIgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdBTExPV0VEX0FUVFInKSA/IGFkZFRvU2V0KHt9LCBjZmcuQUxMT1dFRF9BVFRSLCB0cmFuc2Zvcm1DYXNlRnVuYykgOiBERUZBVUxUX0FMTE9XRURfQVRUUjtcbiAgICBBTExPV0VEX05BTUVTUEFDRVMgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdBTExPV0VEX05BTUVTUEFDRVMnKSA/IGFkZFRvU2V0KHt9LCBjZmcuQUxMT1dFRF9OQU1FU1BBQ0VTLCBzdHJpbmdUb1N0cmluZykgOiBERUZBVUxUX0FMTE9XRURfTkFNRVNQQUNFUztcbiAgICBVUklfU0FGRV9BVFRSSUJVVEVTID0gb2JqZWN0SGFzT3duUHJvcGVydHkoY2ZnLCAnQUREX1VSSV9TQUZFX0FUVFInKSA/IGFkZFRvU2V0KGNsb25lKERFRkFVTFRfVVJJX1NBRkVfQVRUUklCVVRFUyksIGNmZy5BRERfVVJJX1NBRkVfQVRUUiwgdHJhbnNmb3JtQ2FzZUZ1bmMpIDogREVGQVVMVF9VUklfU0FGRV9BVFRSSUJVVEVTO1xuICAgIERBVEFfVVJJX1RBR1MgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdBRERfREFUQV9VUklfVEFHUycpID8gYWRkVG9TZXQoY2xvbmUoREVGQVVMVF9EQVRBX1VSSV9UQUdTKSwgY2ZnLkFERF9EQVRBX1VSSV9UQUdTLCB0cmFuc2Zvcm1DYXNlRnVuYykgOiBERUZBVUxUX0RBVEFfVVJJX1RBR1M7XG4gICAgRk9SQklEX0NPTlRFTlRTID0gb2JqZWN0SGFzT3duUHJvcGVydHkoY2ZnLCAnRk9SQklEX0NPTlRFTlRTJykgPyBhZGRUb1NldCh7fSwgY2ZnLkZPUkJJRF9DT05URU5UUywgdHJhbnNmb3JtQ2FzZUZ1bmMpIDogREVGQVVMVF9GT1JCSURfQ09OVEVOVFM7XG4gICAgRk9SQklEX1RBR1MgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdGT1JCSURfVEFHUycpID8gYWRkVG9TZXQoe30sIGNmZy5GT1JCSURfVEFHUywgdHJhbnNmb3JtQ2FzZUZ1bmMpIDoge307XG4gICAgRk9SQklEX0FUVFIgPSBvYmplY3RIYXNPd25Qcm9wZXJ0eShjZmcsICdGT1JCSURfQVRUUicpID8gYWRkVG9TZXQoe30sIGNmZy5GT1JCSURfQVRUUiwgdHJhbnNmb3JtQ2FzZUZ1bmMpIDoge307XG4gICAgVVNFX1BST0ZJTEVTID0gb2JqZWN0SGFzT3duUHJvcGVydHkoY2ZnLCAnVVNFX1BST0ZJTEVTJykgPyBjZmcuVVNFX1BST0ZJTEVTIDogZmFsc2U7XG4gICAgQUxMT1dfQVJJQV9BVFRSID0gY2ZnLkFMTE9XX0FSSUFfQVRUUiAhPT0gZmFsc2U7IC8vIERlZmF1bHQgdHJ1ZVxuICAgIEFMTE9XX0RBVEFfQVRUUiA9IGNmZy5BTExPV19EQVRBX0FUVFIgIT09IGZhbHNlOyAvLyBEZWZhdWx0IHRydWVcbiAgICBBTExPV19VTktOT1dOX1BST1RPQ09MUyA9IGNmZy5BTExPV19VTktOT1dOX1BST1RPQ09MUyB8fCBmYWxzZTsgLy8gRGVmYXVsdCBmYWxzZVxuICAgIEFMTE9XX1NFTEZfQ0xPU0VfSU5fQVRUUiA9IGNmZy5BTExPV19TRUxGX0NMT1NFX0lOX0FUVFIgIT09IGZhbHNlOyAvLyBEZWZhdWx0IHRydWVcbiAgICBTQUZFX0ZPUl9URU1QTEFURVMgPSBjZmcuU0FGRV9GT1JfVEVNUExBVEVTIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgU0FGRV9GT1JfWE1MID0gY2ZnLlNBRkVfRk9SX1hNTCAhPT0gZmFsc2U7IC8vIERlZmF1bHQgdHJ1ZVxuICAgIFdIT0xFX0RPQ1VNRU5UID0gY2ZnLldIT0xFX0RPQ1VNRU5UIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgUkVUVVJOX0RPTSA9IGNmZy5SRVRVUk5fRE9NIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgUkVUVVJOX0RPTV9GUkFHTUVOVCA9IGNmZy5SRVRVUk5fRE9NX0ZSQUdNRU5UIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgUkVUVVJOX1RSVVNURURfVFlQRSA9IGNmZy5SRVRVUk5fVFJVU1RFRF9UWVBFIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgRk9SQ0VfQk9EWSA9IGNmZy5GT1JDRV9CT0RZIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgU0FOSVRJWkVfRE9NID0gY2ZnLlNBTklUSVpFX0RPTSAhPT0gZmFsc2U7IC8vIERlZmF1bHQgdHJ1ZVxuICAgIFNBTklUSVpFX05BTUVEX1BST1BTID0gY2ZnLlNBTklUSVpFX05BTUVEX1BST1BTIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgS0VFUF9DT05URU5UID0gY2ZnLktFRVBfQ09OVEVOVCAhPT0gZmFsc2U7IC8vIERlZmF1bHQgdHJ1ZVxuICAgIElOX1BMQUNFID0gY2ZnLklOX1BMQUNFIHx8IGZhbHNlOyAvLyBEZWZhdWx0IGZhbHNlXG4gICAgSVNfQUxMT1dFRF9VUkkkMSA9IGNmZy5BTExPV0VEX1VSSV9SRUdFWFAgfHwgSVNfQUxMT1dFRF9VUkk7XG4gICAgTkFNRVNQQUNFID0gY2ZnLk5BTUVTUEFDRSB8fCBIVE1MX05BTUVTUEFDRTtcbiAgICBNQVRITUxfVEVYVF9JTlRFR1JBVElPTl9QT0lOVFMgPSBjZmcuTUFUSE1MX1RFWFRfSU5URUdSQVRJT05fUE9JTlRTIHx8IE1BVEhNTF9URVhUX0lOVEVHUkFUSU9OX1BPSU5UUztcbiAgICBIVE1MX0lOVEVHUkFUSU9OX1BPSU5UUyA9IGNmZy5IVE1MX0lOVEVHUkFUSU9OX1BPSU5UUyB8fCBIVE1MX0lOVEVHUkFUSU9OX1BPSU5UUztcbiAgICBDVVNUT01fRUxFTUVOVF9IQU5ETElORyA9IGNmZy5DVVNUT01fRUxFTUVOVF9IQU5ETElORyB8fCB7fTtcbiAgICBpZiAoY2ZnLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HICYmIGlzUmVnZXhPckZ1bmN0aW9uKGNmZy5DVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2spKSB7XG4gICAgICBDVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2sgPSBjZmcuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrO1xuICAgIH1cbiAgICBpZiAoY2ZnLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HICYmIGlzUmVnZXhPckZ1bmN0aW9uKGNmZy5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2spKSB7XG4gICAgICBDVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2sgPSBjZmcuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYXR0cmlidXRlTmFtZUNoZWNrO1xuICAgIH1cbiAgICBpZiAoY2ZnLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HICYmIHR5cGVvZiBjZmcuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzID09PSAnYm9vbGVhbicpIHtcbiAgICAgIENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cyA9IGNmZy5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5hbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHM7XG4gICAgfVxuICAgIGlmIChTQUZFX0ZPUl9URU1QTEFURVMpIHtcbiAgICAgIEFMTE9XX0RBVEFfQVRUUiA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoUkVUVVJOX0RPTV9GUkFHTUVOVCkge1xuICAgICAgUkVUVVJOX0RPTSA9IHRydWU7XG4gICAgfVxuICAgIC8qIFBhcnNlIHByb2ZpbGUgaW5mbyAqL1xuICAgIGlmIChVU0VfUFJPRklMRVMpIHtcbiAgICAgIEFMTE9XRURfVEFHUyA9IGFkZFRvU2V0KHt9LCB0ZXh0KTtcbiAgICAgIEFMTE9XRURfQVRUUiA9IFtdO1xuICAgICAgaWYgKFVTRV9QUk9GSUxFUy5odG1sID09PSB0cnVlKSB7XG4gICAgICAgIGFkZFRvU2V0KEFMTE9XRURfVEFHUywgaHRtbCQxKTtcbiAgICAgICAgYWRkVG9TZXQoQUxMT1dFRF9BVFRSLCBodG1sKTtcbiAgICAgIH1cbiAgICAgIGlmIChVU0VfUFJPRklMRVMuc3ZnID09PSB0cnVlKSB7XG4gICAgICAgIGFkZFRvU2V0KEFMTE9XRURfVEFHUywgc3ZnJDEpO1xuICAgICAgICBhZGRUb1NldChBTExPV0VEX0FUVFIsIHN2Zyk7XG4gICAgICAgIGFkZFRvU2V0KEFMTE9XRURfQVRUUiwgeG1sKTtcbiAgICAgIH1cbiAgICAgIGlmIChVU0VfUFJPRklMRVMuc3ZnRmlsdGVycyA9PT0gdHJ1ZSkge1xuICAgICAgICBhZGRUb1NldChBTExPV0VEX1RBR1MsIHN2Z0ZpbHRlcnMpO1xuICAgICAgICBhZGRUb1NldChBTExPV0VEX0FUVFIsIHN2Zyk7XG4gICAgICAgIGFkZFRvU2V0KEFMTE9XRURfQVRUUiwgeG1sKTtcbiAgICAgIH1cbiAgICAgIGlmIChVU0VfUFJPRklMRVMubWF0aE1sID09PSB0cnVlKSB7XG4gICAgICAgIGFkZFRvU2V0KEFMTE9XRURfVEFHUywgbWF0aE1sJDEpO1xuICAgICAgICBhZGRUb1NldChBTExPV0VEX0FUVFIsIG1hdGhNbCk7XG4gICAgICAgIGFkZFRvU2V0KEFMTE9XRURfQVRUUiwgeG1sKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLyogTWVyZ2UgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzICovXG4gICAgaWYgKGNmZy5BRERfVEFHUykge1xuICAgICAgaWYgKEFMTE9XRURfVEFHUyA9PT0gREVGQVVMVF9BTExPV0VEX1RBR1MpIHtcbiAgICAgICAgQUxMT1dFRF9UQUdTID0gY2xvbmUoQUxMT1dFRF9UQUdTKTtcbiAgICAgIH1cbiAgICAgIGFkZFRvU2V0KEFMTE9XRURfVEFHUywgY2ZnLkFERF9UQUdTLCB0cmFuc2Zvcm1DYXNlRnVuYyk7XG4gICAgfVxuICAgIGlmIChjZmcuQUREX0FUVFIpIHtcbiAgICAgIGlmIChBTExPV0VEX0FUVFIgPT09IERFRkFVTFRfQUxMT1dFRF9BVFRSKSB7XG4gICAgICAgIEFMTE9XRURfQVRUUiA9IGNsb25lKEFMTE9XRURfQVRUUik7XG4gICAgICB9XG4gICAgICBhZGRUb1NldChBTExPV0VEX0FUVFIsIGNmZy5BRERfQVRUUiwgdHJhbnNmb3JtQ2FzZUZ1bmMpO1xuICAgIH1cbiAgICBpZiAoY2ZnLkFERF9VUklfU0FGRV9BVFRSKSB7XG4gICAgICBhZGRUb1NldChVUklfU0FGRV9BVFRSSUJVVEVTLCBjZmcuQUREX1VSSV9TQUZFX0FUVFIsIHRyYW5zZm9ybUNhc2VGdW5jKTtcbiAgICB9XG4gICAgaWYgKGNmZy5GT1JCSURfQ09OVEVOVFMpIHtcbiAgICAgIGlmIChGT1JCSURfQ09OVEVOVFMgPT09IERFRkFVTFRfRk9SQklEX0NPTlRFTlRTKSB7XG4gICAgICAgIEZPUkJJRF9DT05URU5UUyA9IGNsb25lKEZPUkJJRF9DT05URU5UUyk7XG4gICAgICB9XG4gICAgICBhZGRUb1NldChGT1JCSURfQ09OVEVOVFMsIGNmZy5GT1JCSURfQ09OVEVOVFMsIHRyYW5zZm9ybUNhc2VGdW5jKTtcbiAgICB9XG4gICAgLyogQWRkICN0ZXh0IGluIGNhc2UgS0VFUF9DT05URU5UIGlzIHNldCB0byB0cnVlICovXG4gICAgaWYgKEtFRVBfQ09OVEVOVCkge1xuICAgICAgQUxMT1dFRF9UQUdTWycjdGV4dCddID0gdHJ1ZTtcbiAgICB9XG4gICAgLyogQWRkIGh0bWwsIGhlYWQgYW5kIGJvZHkgdG8gQUxMT1dFRF9UQUdTIGluIGNhc2UgV0hPTEVfRE9DVU1FTlQgaXMgdHJ1ZSAqL1xuICAgIGlmIChXSE9MRV9ET0NVTUVOVCkge1xuICAgICAgYWRkVG9TZXQoQUxMT1dFRF9UQUdTLCBbJ2h0bWwnLCAnaGVhZCcsICdib2R5J10pO1xuICAgIH1cbiAgICAvKiBBZGQgdGJvZHkgdG8gQUxMT1dFRF9UQUdTIGluIGNhc2UgdGFibGVzIGFyZSBwZXJtaXR0ZWQsIHNlZSAjMjg2LCAjMzY1ICovXG4gICAgaWYgKEFMTE9XRURfVEFHUy50YWJsZSkge1xuICAgICAgYWRkVG9TZXQoQUxMT1dFRF9UQUdTLCBbJ3Rib2R5J10pO1xuICAgICAgZGVsZXRlIEZPUkJJRF9UQUdTLnRib2R5O1xuICAgIH1cbiAgICBpZiAoY2ZnLlRSVVNURURfVFlQRVNfUE9MSUNZKSB7XG4gICAgICBpZiAodHlwZW9mIGNmZy5UUlVTVEVEX1RZUEVTX1BPTElDWS5jcmVhdGVIVE1MICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IHR5cGVFcnJvckNyZWF0ZSgnVFJVU1RFRF9UWVBFU19QT0xJQ1kgY29uZmlndXJhdGlvbiBvcHRpb24gbXVzdCBwcm92aWRlIGEgXCJjcmVhdGVIVE1MXCIgaG9vay4nKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgY2ZnLlRSVVNURURfVFlQRVNfUE9MSUNZLmNyZWF0ZVNjcmlwdFVSTCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyB0eXBlRXJyb3JDcmVhdGUoJ1RSVVNURURfVFlQRVNfUE9MSUNZIGNvbmZpZ3VyYXRpb24gb3B0aW9uIG11c3QgcHJvdmlkZSBhIFwiY3JlYXRlU2NyaXB0VVJMXCIgaG9vay4nKTtcbiAgICAgIH1cbiAgICAgIC8vIE92ZXJ3cml0ZSBleGlzdGluZyBUcnVzdGVkVHlwZXMgcG9saWN5LlxuICAgICAgdHJ1c3RlZFR5cGVzUG9saWN5ID0gY2ZnLlRSVVNURURfVFlQRVNfUE9MSUNZO1xuICAgICAgLy8gU2lnbiBsb2NhbCB2YXJpYWJsZXMgcmVxdWlyZWQgYnkgYHNhbml0aXplYC5cbiAgICAgIGVtcHR5SFRNTCA9IHRydXN0ZWRUeXBlc1BvbGljeS5jcmVhdGVIVE1MKCcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVW5pbml0aWFsaXplZCBwb2xpY3ksIGF0dGVtcHQgdG8gaW5pdGlhbGl6ZSB0aGUgaW50ZXJuYWwgZG9tcHVyaWZ5IHBvbGljeS5cbiAgICAgIGlmICh0cnVzdGVkVHlwZXNQb2xpY3kgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0cnVzdGVkVHlwZXNQb2xpY3kgPSBfY3JlYXRlVHJ1c3RlZFR5cGVzUG9saWN5KHRydXN0ZWRUeXBlcywgY3VycmVudFNjcmlwdCk7XG4gICAgICB9XG4gICAgICAvLyBJZiBjcmVhdGluZyB0aGUgaW50ZXJuYWwgcG9saWN5IHN1Y2NlZWRlZCBzaWduIGludGVybmFsIHZhcmlhYmxlcy5cbiAgICAgIGlmICh0cnVzdGVkVHlwZXNQb2xpY3kgIT09IG51bGwgJiYgdHlwZW9mIGVtcHR5SFRNTCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZW1wdHlIVE1MID0gdHJ1c3RlZFR5cGVzUG9saWN5LmNyZWF0ZUhUTUwoJycpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBQcmV2ZW50IGZ1cnRoZXIgbWFuaXB1bGF0aW9uIG9mIGNvbmZpZ3VyYXRpb24uXG4gICAgLy8gTm90IGF2YWlsYWJsZSBpbiBJRTgsIFNhZmFyaSA1LCBldGMuXG4gICAgaWYgKGZyZWV6ZSkge1xuICAgICAgZnJlZXplKGNmZyk7XG4gICAgfVxuICAgIENPTkZJRyA9IGNmZztcbiAgfTtcbiAgLyogS2VlcCB0cmFjayBvZiBhbGwgcG9zc2libGUgU1ZHIGFuZCBNYXRoTUwgdGFnc1xuICAgKiBzbyB0aGF0IHdlIGNhbiBwZXJmb3JtIHRoZSBuYW1lc3BhY2UgY2hlY2tzXG4gICAqIGNvcnJlY3RseS4gKi9cbiAgY29uc3QgQUxMX1NWR19UQUdTID0gYWRkVG9TZXQoe30sIFsuLi5zdmckMSwgLi4uc3ZnRmlsdGVycywgLi4uc3ZnRGlzYWxsb3dlZF0pO1xuICBjb25zdCBBTExfTUFUSE1MX1RBR1MgPSBhZGRUb1NldCh7fSwgWy4uLm1hdGhNbCQxLCAuLi5tYXRoTWxEaXNhbGxvd2VkXSk7XG4gIC8qKlxuICAgKiBAcGFyYW0gZWxlbWVudCBhIERPTSBlbGVtZW50IHdob3NlIG5hbWVzcGFjZSBpcyBiZWluZyBjaGVja2VkXG4gICAqIEByZXR1cm5zIFJldHVybiBmYWxzZSBpZiB0aGUgZWxlbWVudCBoYXMgYVxuICAgKiAgbmFtZXNwYWNlIHRoYXQgYSBzcGVjLWNvbXBsaWFudCBwYXJzZXIgd291bGQgbmV2ZXJcbiAgICogIHJldHVybi4gUmV0dXJuIHRydWUgb3RoZXJ3aXNlLlxuICAgKi9cbiAgY29uc3QgX2NoZWNrVmFsaWROYW1lc3BhY2UgPSBmdW5jdGlvbiBfY2hlY2tWYWxpZE5hbWVzcGFjZShlbGVtZW50KSB7XG4gICAgbGV0IHBhcmVudCA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XG4gICAgLy8gSW4gSlNET00sIGlmIHdlJ3JlIGluc2lkZSBzaGFkb3cgRE9NLCB0aGVuIHBhcmVudE5vZGVcbiAgICAvLyBjYW4gYmUgbnVsbC4gV2UganVzdCBzaW11bGF0ZSBwYXJlbnQgaW4gdGhpcyBjYXNlLlxuICAgIGlmICghcGFyZW50IHx8ICFwYXJlbnQudGFnTmFtZSkge1xuICAgICAgcGFyZW50ID0ge1xuICAgICAgICBuYW1lc3BhY2VVUkk6IE5BTUVTUEFDRSxcbiAgICAgICAgdGFnTmFtZTogJ3RlbXBsYXRlJ1xuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgdGFnTmFtZSA9IHN0cmluZ1RvTG93ZXJDYXNlKGVsZW1lbnQudGFnTmFtZSk7XG4gICAgY29uc3QgcGFyZW50VGFnTmFtZSA9IHN0cmluZ1RvTG93ZXJDYXNlKHBhcmVudC50YWdOYW1lKTtcbiAgICBpZiAoIUFMTE9XRURfTkFNRVNQQUNFU1tlbGVtZW50Lm5hbWVzcGFjZVVSSV0pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQubmFtZXNwYWNlVVJJID09PSBTVkdfTkFNRVNQQUNFKSB7XG4gICAgICAvLyBUaGUgb25seSB3YXkgdG8gc3dpdGNoIGZyb20gSFRNTCBuYW1lc3BhY2UgdG8gU1ZHXG4gICAgICAvLyBpcyB2aWEgPHN2Zz4uIElmIGl0IGhhcHBlbnMgdmlhIGFueSBvdGhlciB0YWcsIHRoZW5cbiAgICAgIC8vIGl0IHNob3VsZCBiZSBraWxsZWQuXG4gICAgICBpZiAocGFyZW50Lm5hbWVzcGFjZVVSSSA9PT0gSFRNTF9OQU1FU1BBQ0UpIHtcbiAgICAgICAgcmV0dXJuIHRhZ05hbWUgPT09ICdzdmcnO1xuICAgICAgfVxuICAgICAgLy8gVGhlIG9ubHkgd2F5IHRvIHN3aXRjaCBmcm9tIE1hdGhNTCB0byBTVkcgaXMgdmlhYFxuICAgICAgLy8gc3ZnIGlmIHBhcmVudCBpcyBlaXRoZXIgPGFubm90YXRpb24teG1sPiBvciBNYXRoTUxcbiAgICAgIC8vIHRleHQgaW50ZWdyYXRpb24gcG9pbnRzLlxuICAgICAgaWYgKHBhcmVudC5uYW1lc3BhY2VVUkkgPT09IE1BVEhNTF9OQU1FU1BBQ0UpIHtcbiAgICAgICAgcmV0dXJuIHRhZ05hbWUgPT09ICdzdmcnICYmIChwYXJlbnRUYWdOYW1lID09PSAnYW5ub3RhdGlvbi14bWwnIHx8IE1BVEhNTF9URVhUX0lOVEVHUkFUSU9OX1BPSU5UU1twYXJlbnRUYWdOYW1lXSk7XG4gICAgICB9XG4gICAgICAvLyBXZSBvbmx5IGFsbG93IGVsZW1lbnRzIHRoYXQgYXJlIGRlZmluZWQgaW4gU1ZHXG4gICAgICAvLyBzcGVjLiBBbGwgb3RoZXJzIGFyZSBkaXNhbGxvd2VkIGluIFNWRyBuYW1lc3BhY2UuXG4gICAgICByZXR1cm4gQm9vbGVhbihBTExfU1ZHX1RBR1NbdGFnTmFtZV0pO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudC5uYW1lc3BhY2VVUkkgPT09IE1BVEhNTF9OQU1FU1BBQ0UpIHtcbiAgICAgIC8vIFRoZSBvbmx5IHdheSB0byBzd2l0Y2ggZnJvbSBIVE1MIG5hbWVzcGFjZSB0byBNYXRoTUxcbiAgICAgIC8vIGlzIHZpYSA8bWF0aD4uIElmIGl0IGhhcHBlbnMgdmlhIGFueSBvdGhlciB0YWcsIHRoZW5cbiAgICAgIC8vIGl0IHNob3VsZCBiZSBraWxsZWQuXG4gICAgICBpZiAocGFyZW50Lm5hbWVzcGFjZVVSSSA9PT0gSFRNTF9OQU1FU1BBQ0UpIHtcbiAgICAgICAgcmV0dXJuIHRhZ05hbWUgPT09ICdtYXRoJztcbiAgICAgIH1cbiAgICAgIC8vIFRoZSBvbmx5IHdheSB0byBzd2l0Y2ggZnJvbSBTVkcgdG8gTWF0aE1MIGlzIHZpYVxuICAgICAgLy8gPG1hdGg+IGFuZCBIVE1MIGludGVncmF0aW9uIHBvaW50c1xuICAgICAgaWYgKHBhcmVudC5uYW1lc3BhY2VVUkkgPT09IFNWR19OQU1FU1BBQ0UpIHtcbiAgICAgICAgcmV0dXJuIHRhZ05hbWUgPT09ICdtYXRoJyAmJiBIVE1MX0lOVEVHUkFUSU9OX1BPSU5UU1twYXJlbnRUYWdOYW1lXTtcbiAgICAgIH1cbiAgICAgIC8vIFdlIG9ubHkgYWxsb3cgZWxlbWVudHMgdGhhdCBhcmUgZGVmaW5lZCBpbiBNYXRoTUxcbiAgICAgIC8vIHNwZWMuIEFsbCBvdGhlcnMgYXJlIGRpc2FsbG93ZWQgaW4gTWF0aE1MIG5hbWVzcGFjZS5cbiAgICAgIHJldHVybiBCb29sZWFuKEFMTF9NQVRITUxfVEFHU1t0YWdOYW1lXSk7XG4gICAgfVxuICAgIGlmIChlbGVtZW50Lm5hbWVzcGFjZVVSSSA9PT0gSFRNTF9OQU1FU1BBQ0UpIHtcbiAgICAgIC8vIFRoZSBvbmx5IHdheSB0byBzd2l0Y2ggZnJvbSBTVkcgdG8gSFRNTCBpcyB2aWFcbiAgICAgIC8vIEhUTUwgaW50ZWdyYXRpb24gcG9pbnRzLCBhbmQgZnJvbSBNYXRoTUwgdG8gSFRNTFxuICAgICAgLy8gaXMgdmlhIE1hdGhNTCB0ZXh0IGludGVncmF0aW9uIHBvaW50c1xuICAgICAgaWYgKHBhcmVudC5uYW1lc3BhY2VVUkkgPT09IFNWR19OQU1FU1BBQ0UgJiYgIUhUTUxfSU5URUdSQVRJT05fUE9JTlRTW3BhcmVudFRhZ05hbWVdKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChwYXJlbnQubmFtZXNwYWNlVVJJID09PSBNQVRITUxfTkFNRVNQQUNFICYmICFNQVRITUxfVEVYVF9JTlRFR1JBVElPTl9QT0lOVFNbcGFyZW50VGFnTmFtZV0pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgLy8gV2UgZGlzYWxsb3cgdGFncyB0aGF0IGFyZSBzcGVjaWZpYyBmb3IgTWF0aE1MXG4gICAgICAvLyBvciBTVkcgYW5kIHNob3VsZCBuZXZlciBhcHBlYXIgaW4gSFRNTCBuYW1lc3BhY2VcbiAgICAgIHJldHVybiAhQUxMX01BVEhNTF9UQUdTW3RhZ05hbWVdICYmIChDT01NT05fU1ZHX0FORF9IVE1MX0VMRU1FTlRTW3RhZ05hbWVdIHx8ICFBTExfU1ZHX1RBR1NbdGFnTmFtZV0pO1xuICAgIH1cbiAgICAvLyBGb3IgWEhUTUwgYW5kIFhNTCBkb2N1bWVudHMgdGhhdCBzdXBwb3J0IGN1c3RvbSBuYW1lc3BhY2VzXG4gICAgaWYgKFBBUlNFUl9NRURJQV9UWVBFID09PSAnYXBwbGljYXRpb24veGh0bWwreG1sJyAmJiBBTExPV0VEX05BTUVTUEFDRVNbZWxlbWVudC5uYW1lc3BhY2VVUkldKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gVGhlIGNvZGUgc2hvdWxkIG5ldmVyIHJlYWNoIHRoaXMgcGxhY2UgKHRoaXMgbWVhbnNcbiAgICAvLyB0aGF0IHRoZSBlbGVtZW50IHNvbWVob3cgZ290IG5hbWVzcGFjZSB0aGF0IGlzIG5vdFxuICAgIC8vIEhUTUwsIFNWRywgTWF0aE1MIG9yIGFsbG93ZWQgdmlhIEFMTE9XRURfTkFNRVNQQUNFUykuXG4gICAgLy8gUmV0dXJuIGZhbHNlIGp1c3QgaW4gY2FzZS5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG4gIC8qKlxuICAgKiBfZm9yY2VSZW1vdmVcbiAgICpcbiAgICogQHBhcmFtIG5vZGUgYSBET00gbm9kZVxuICAgKi9cbiAgY29uc3QgX2ZvcmNlUmVtb3ZlID0gZnVuY3Rpb24gX2ZvcmNlUmVtb3ZlKG5vZGUpIHtcbiAgICBhcnJheVB1c2goRE9NUHVyaWZ5LnJlbW92ZWQsIHtcbiAgICAgIGVsZW1lbnQ6IG5vZGVcbiAgICB9KTtcbiAgICB0cnkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vcHJlZmVyLWRvbS1ub2RlLXJlbW92ZVxuICAgICAgZ2V0UGFyZW50Tm9kZShub2RlKS5yZW1vdmVDaGlsZChub2RlKTtcbiAgICB9IGNhdGNoIChfKSB7XG4gICAgICByZW1vdmUobm9kZSk7XG4gICAgfVxuICB9O1xuICAvKipcbiAgICogX3JlbW92ZUF0dHJpYnV0ZVxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBhbiBBdHRyaWJ1dGUgbmFtZVxuICAgKiBAcGFyYW0gZWxlbWVudCBhIERPTSBub2RlXG4gICAqL1xuICBjb25zdCBfcmVtb3ZlQXR0cmlidXRlID0gZnVuY3Rpb24gX3JlbW92ZUF0dHJpYnV0ZShuYW1lLCBlbGVtZW50KSB7XG4gICAgdHJ5IHtcbiAgICAgIGFycmF5UHVzaChET01QdXJpZnkucmVtb3ZlZCwge1xuICAgICAgICBhdHRyaWJ1dGU6IGVsZW1lbnQuZ2V0QXR0cmlidXRlTm9kZShuYW1lKSxcbiAgICAgICAgZnJvbTogZWxlbWVudFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoXykge1xuICAgICAgYXJyYXlQdXNoKERPTVB1cmlmeS5yZW1vdmVkLCB7XG4gICAgICAgIGF0dHJpYnV0ZTogbnVsbCxcbiAgICAgICAgZnJvbTogZWxlbWVudFxuICAgICAgfSk7XG4gICAgfVxuICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgIC8vIFdlIHZvaWQgYXR0cmlidXRlIHZhbHVlcyBmb3IgdW5yZW1vdmFibGUgXCJpc1wiIGF0dHJpYnV0ZXNcbiAgICBpZiAobmFtZSA9PT0gJ2lzJykge1xuICAgICAgaWYgKFJFVFVSTl9ET00gfHwgUkVUVVJOX0RPTV9GUkFHTUVOVCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIF9mb3JjZVJlbW92ZShlbGVtZW50KTtcbiAgICAgICAgfSBjYXRjaCAoXykge31cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgJycpO1xuICAgICAgICB9IGNhdGNoIChfKSB7fVxuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgLyoqXG4gICAqIF9pbml0RG9jdW1lbnRcbiAgICpcbiAgICogQHBhcmFtIGRpcnR5IC0gYSBzdHJpbmcgb2YgZGlydHkgbWFya3VwXG4gICAqIEByZXR1cm4gYSBET00sIGZpbGxlZCB3aXRoIHRoZSBkaXJ0eSBtYXJrdXBcbiAgICovXG4gIGNvbnN0IF9pbml0RG9jdW1lbnQgPSBmdW5jdGlvbiBfaW5pdERvY3VtZW50KGRpcnR5KSB7XG4gICAgLyogQ3JlYXRlIGEgSFRNTCBkb2N1bWVudCAqL1xuICAgIGxldCBkb2MgPSBudWxsO1xuICAgIGxldCBsZWFkaW5nV2hpdGVzcGFjZSA9IG51bGw7XG4gICAgaWYgKEZPUkNFX0JPRFkpIHtcbiAgICAgIGRpcnR5ID0gJzxyZW1vdmU+PC9yZW1vdmU+JyArIGRpcnR5O1xuICAgIH0gZWxzZSB7XG4gICAgICAvKiBJZiBGT1JDRV9CT0RZIGlzbid0IHVzZWQsIGxlYWRpbmcgd2hpdGVzcGFjZSBuZWVkcyB0byBiZSBwcmVzZXJ2ZWQgbWFudWFsbHkgKi9cbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBzdHJpbmdNYXRjaChkaXJ0eSwgL15bXFxyXFxuXFx0IF0rLyk7XG4gICAgICBsZWFkaW5nV2hpdGVzcGFjZSA9IG1hdGNoZXMgJiYgbWF0Y2hlc1swXTtcbiAgICB9XG4gICAgaWYgKFBBUlNFUl9NRURJQV9UWVBFID09PSAnYXBwbGljYXRpb24veGh0bWwreG1sJyAmJiBOQU1FU1BBQ0UgPT09IEhUTUxfTkFNRVNQQUNFKSB7XG4gICAgICAvLyBSb290IG9mIFhIVE1MIGRvYyBtdXN0IGNvbnRhaW4geG1sbnMgZGVjbGFyYXRpb24gKHNlZSBodHRwczovL3d3dy53My5vcmcvVFIveGh0bWwxL25vcm1hdGl2ZS5odG1sI3N0cmljdClcbiAgICAgIGRpcnR5ID0gJzxodG1sIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiPjxoZWFkPjwvaGVhZD48Ym9keT4nICsgZGlydHkgKyAnPC9ib2R5PjwvaHRtbD4nO1xuICAgIH1cbiAgICBjb25zdCBkaXJ0eVBheWxvYWQgPSB0cnVzdGVkVHlwZXNQb2xpY3kgPyB0cnVzdGVkVHlwZXNQb2xpY3kuY3JlYXRlSFRNTChkaXJ0eSkgOiBkaXJ0eTtcbiAgICAvKlxuICAgICAqIFVzZSB0aGUgRE9NUGFyc2VyIEFQSSBieSBkZWZhdWx0LCBmYWxsYmFjayBsYXRlciBpZiBuZWVkcyBiZVxuICAgICAqIERPTVBhcnNlciBub3Qgd29yayBmb3Igc3ZnIHdoZW4gaGFzIG11bHRpcGxlIHJvb3QgZWxlbWVudC5cbiAgICAgKi9cbiAgICBpZiAoTkFNRVNQQUNFID09PSBIVE1MX05BTUVTUEFDRSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhkaXJ0eVBheWxvYWQsIFBBUlNFUl9NRURJQV9UWVBFKTtcbiAgICAgIH0gY2F0Y2ggKF8pIHt9XG4gICAgfVxuICAgIC8qIFVzZSBjcmVhdGVIVE1MRG9jdW1lbnQgaW4gY2FzZSBET01QYXJzZXIgaXMgbm90IGF2YWlsYWJsZSAqL1xuICAgIGlmICghZG9jIHx8ICFkb2MuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICBkb2MgPSBpbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChOQU1FU1BBQ0UsICd0ZW1wbGF0ZScsIG51bGwpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5pbm5lckhUTUwgPSBJU19FTVBUWV9JTlBVVCA/IGVtcHR5SFRNTCA6IGRpcnR5UGF5bG9hZDtcbiAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgLy8gU3ludGF4IGVycm9yIGlmIGRpcnR5UGF5bG9hZCBpcyBpbnZhbGlkIHhtbFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBib2R5ID0gZG9jLmJvZHkgfHwgZG9jLmRvY3VtZW50RWxlbWVudDtcbiAgICBpZiAoZGlydHkgJiYgbGVhZGluZ1doaXRlc3BhY2UpIHtcbiAgICAgIGJvZHkuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGxlYWRpbmdXaGl0ZXNwYWNlKSwgYm9keS5jaGlsZE5vZGVzWzBdIHx8IG51bGwpO1xuICAgIH1cbiAgICAvKiBXb3JrIG9uIHdob2xlIGRvY3VtZW50IG9yIGp1c3QgaXRzIGJvZHkgKi9cbiAgICBpZiAoTkFNRVNQQUNFID09PSBIVE1MX05BTUVTUEFDRSkge1xuICAgICAgcmV0dXJuIGdldEVsZW1lbnRzQnlUYWdOYW1lLmNhbGwoZG9jLCBXSE9MRV9ET0NVTUVOVCA/ICdodG1sJyA6ICdib2R5JylbMF07XG4gICAgfVxuICAgIHJldHVybiBXSE9MRV9ET0NVTUVOVCA/IGRvYy5kb2N1bWVudEVsZW1lbnQgOiBib2R5O1xuICB9O1xuICAvKipcbiAgICogQ3JlYXRlcyBhIE5vZGVJdGVyYXRvciBvYmplY3QgdGhhdCB5b3UgY2FuIHVzZSB0byB0cmF2ZXJzZSBmaWx0ZXJlZCBsaXN0cyBvZiBub2RlcyBvciBlbGVtZW50cyBpbiBhIGRvY3VtZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcm9vdCBUaGUgcm9vdCBlbGVtZW50IG9yIG5vZGUgdG8gc3RhcnQgdHJhdmVyc2luZyBvbi5cbiAgICogQHJldHVybiBUaGUgY3JlYXRlZCBOb2RlSXRlcmF0b3JcbiAgICovXG4gIGNvbnN0IF9jcmVhdGVOb2RlSXRlcmF0b3IgPSBmdW5jdGlvbiBfY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QpIHtcbiAgICByZXR1cm4gY3JlYXRlTm9kZUl0ZXJhdG9yLmNhbGwocm9vdC5vd25lckRvY3VtZW50IHx8IHJvb3QsIHJvb3QsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcbiAgICBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCB8IE5vZGVGaWx0ZXIuU0hPV19DT01NRU5UIHwgTm9kZUZpbHRlci5TSE9XX1RFWFQgfCBOb2RlRmlsdGVyLlNIT1dfUFJPQ0VTU0lOR19JTlNUUlVDVElPTiB8IE5vZGVGaWx0ZXIuU0hPV19DREFUQV9TRUNUSU9OLCBudWxsKTtcbiAgfTtcbiAgLyoqXG4gICAqIF9pc0Nsb2JiZXJlZFxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudCBlbGVtZW50IHRvIGNoZWNrIGZvciBjbG9iYmVyaW5nIGF0dGFja3NcbiAgICogQHJldHVybiB0cnVlIGlmIGNsb2JiZXJlZCwgZmFsc2UgaWYgc2FmZVxuICAgKi9cbiAgY29uc3QgX2lzQ2xvYmJlcmVkID0gZnVuY3Rpb24gX2lzQ2xvYmJlcmVkKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxGb3JtRWxlbWVudCAmJiAodHlwZW9mIGVsZW1lbnQubm9kZU5hbWUgIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBlbGVtZW50LnRleHRDb250ZW50ICE9PSAnc3RyaW5nJyB8fCB0eXBlb2YgZWxlbWVudC5yZW1vdmVDaGlsZCAhPT0gJ2Z1bmN0aW9uJyB8fCAhKGVsZW1lbnQuYXR0cmlidXRlcyBpbnN0YW5jZW9mIE5hbWVkTm9kZU1hcCkgfHwgdHlwZW9mIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlICE9PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBlbGVtZW50LnNldEF0dHJpYnV0ZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgZWxlbWVudC5uYW1lc3BhY2VVUkkgIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBlbGVtZW50Lmluc2VydEJlZm9yZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgZWxlbWVudC5oYXNDaGlsZE5vZGVzICE9PSAnZnVuY3Rpb24nKTtcbiAgfTtcbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBET00gbm9kZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIG9iamVjdCB0byBjaGVjayB3aGV0aGVyIGl0J3MgYSBET00gbm9kZVxuICAgKiBAcmV0dXJuIHRydWUgaXMgb2JqZWN0IGlzIGEgRE9NIG5vZGVcbiAgICovXG4gIGNvbnN0IF9pc05vZGUgPSBmdW5jdGlvbiBfaXNOb2RlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBOb2RlID09PSAnZnVuY3Rpb24nICYmIHZhbHVlIGluc3RhbmNlb2YgTm9kZTtcbiAgfTtcbiAgZnVuY3Rpb24gX2V4ZWN1dGVIb29rcyhob29rcywgY3VycmVudE5vZGUsIGRhdGEpIHtcbiAgICBhcnJheUZvckVhY2goaG9va3MsIGhvb2sgPT4ge1xuICAgICAgaG9vay5jYWxsKERPTVB1cmlmeSwgY3VycmVudE5vZGUsIGRhdGEsIENPTkZJRyk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIF9zYW5pdGl6ZUVsZW1lbnRzXG4gICAqXG4gICAqIEBwcm90ZWN0IG5vZGVOYW1lXG4gICAqIEBwcm90ZWN0IHRleHRDb250ZW50XG4gICAqIEBwcm90ZWN0IHJlbW92ZUNoaWxkXG4gICAqIEBwYXJhbSBjdXJyZW50Tm9kZSB0byBjaGVjayBmb3IgcGVybWlzc2lvbiB0byBleGlzdFxuICAgKiBAcmV0dXJuIHRydWUgaWYgbm9kZSB3YXMga2lsbGVkLCBmYWxzZSBpZiBsZWZ0IGFsaXZlXG4gICAqL1xuICBjb25zdCBfc2FuaXRpemVFbGVtZW50cyA9IGZ1bmN0aW9uIF9zYW5pdGl6ZUVsZW1lbnRzKGN1cnJlbnROb2RlKSB7XG4gICAgbGV0IGNvbnRlbnQgPSBudWxsO1xuICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICBfZXhlY3V0ZUhvb2tzKGhvb2tzLmJlZm9yZVNhbml0aXplRWxlbWVudHMsIGN1cnJlbnROb2RlLCBudWxsKTtcbiAgICAvKiBDaGVjayBpZiBlbGVtZW50IGlzIGNsb2JiZXJlZCBvciBjYW4gY2xvYmJlciAqL1xuICAgIGlmIChfaXNDbG9iYmVyZWQoY3VycmVudE5vZGUpKSB7XG4gICAgICBfZm9yY2VSZW1vdmUoY3VycmVudE5vZGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8qIE5vdyBsZXQncyBjaGVjayB0aGUgZWxlbWVudCdzIHR5cGUgYW5kIG5hbWUgKi9cbiAgICBjb25zdCB0YWdOYW1lID0gdHJhbnNmb3JtQ2FzZUZ1bmMoY3VycmVudE5vZGUubm9kZU5hbWUpO1xuICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICBfZXhlY3V0ZUhvb2tzKGhvb2tzLnVwb25TYW5pdGl6ZUVsZW1lbnQsIGN1cnJlbnROb2RlLCB7XG4gICAgICB0YWdOYW1lLFxuICAgICAgYWxsb3dlZFRhZ3M6IEFMTE9XRURfVEFHU1xuICAgIH0pO1xuICAgIC8qIERldGVjdCBtWFNTIGF0dGVtcHRzIGFidXNpbmcgbmFtZXNwYWNlIGNvbmZ1c2lvbiAqL1xuICAgIGlmIChjdXJyZW50Tm9kZS5oYXNDaGlsZE5vZGVzKCkgJiYgIV9pc05vZGUoY3VycmVudE5vZGUuZmlyc3RFbGVtZW50Q2hpbGQpICYmIHJlZ0V4cFRlc3QoLzxbL1xcdyFdL2csIGN1cnJlbnROb2RlLmlubmVySFRNTCkgJiYgcmVnRXhwVGVzdCgvPFsvXFx3IV0vZywgY3VycmVudE5vZGUudGV4dENvbnRlbnQpKSB7XG4gICAgICBfZm9yY2VSZW1vdmUoY3VycmVudE5vZGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8qIFJlbW92ZSBhbnkgb2NjdXJyZW5jZSBvZiBwcm9jZXNzaW5nIGluc3RydWN0aW9ucyAqL1xuICAgIGlmIChjdXJyZW50Tm9kZS5ub2RlVHlwZSA9PT0gTk9ERV9UWVBFLnByb2dyZXNzaW5nSW5zdHJ1Y3Rpb24pIHtcbiAgICAgIF9mb3JjZVJlbW92ZShjdXJyZW50Tm9kZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLyogUmVtb3ZlIGFueSBraW5kIG9mIHBvc3NpYmx5IGhhcm1mdWwgY29tbWVudHMgKi9cbiAgICBpZiAoU0FGRV9GT1JfWE1MICYmIGN1cnJlbnROb2RlLm5vZGVUeXBlID09PSBOT0RFX1RZUEUuY29tbWVudCAmJiByZWdFeHBUZXN0KC88Wy9cXHddL2csIGN1cnJlbnROb2RlLmRhdGEpKSB7XG4gICAgICBfZm9yY2VSZW1vdmUoY3VycmVudE5vZGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8qIFJlbW92ZSBlbGVtZW50IGlmIGFueXRoaW5nIGZvcmJpZHMgaXRzIHByZXNlbmNlICovXG4gICAgaWYgKCFBTExPV0VEX1RBR1NbdGFnTmFtZV0gfHwgRk9SQklEX1RBR1NbdGFnTmFtZV0pIHtcbiAgICAgIC8qIENoZWNrIGlmIHdlIGhhdmUgYSBjdXN0b20gZWxlbWVudCB0byBoYW5kbGUgKi9cbiAgICAgIGlmICghRk9SQklEX1RBR1NbdGFnTmFtZV0gJiYgX2lzQmFzaWNDdXN0b21FbGVtZW50KHRhZ05hbWUpKSB7XG4gICAgICAgIGlmIChDVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAgJiYgcmVnRXhwVGVzdChDVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2ssIHRhZ05hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChDVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBGdW5jdGlvbiAmJiBDVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2sodGFnTmFtZSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8qIEtlZXAgY29udGVudCBleGNlcHQgZm9yIGJhZC1saXN0ZWQgZWxlbWVudHMgKi9cbiAgICAgIGlmIChLRUVQX0NPTlRFTlQgJiYgIUZPUkJJRF9DT05URU5UU1t0YWdOYW1lXSkge1xuICAgICAgICBjb25zdCBwYXJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShjdXJyZW50Tm9kZSkgfHwgY3VycmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICAgICAgY29uc3QgY2hpbGROb2RlcyA9IGdldENoaWxkTm9kZXMoY3VycmVudE5vZGUpIHx8IGN1cnJlbnROb2RlLmNoaWxkTm9kZXM7XG4gICAgICAgIGlmIChjaGlsZE5vZGVzICYmIHBhcmVudE5vZGUpIHtcbiAgICAgICAgICBjb25zdCBjaGlsZENvdW50ID0gY2hpbGROb2Rlcy5sZW5ndGg7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IGNoaWxkQ291bnQgLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRDbG9uZSA9IGNsb25lTm9kZShjaGlsZE5vZGVzW2ldLCB0cnVlKTtcbiAgICAgICAgICAgIGNoaWxkQ2xvbmUuX19yZW1vdmFsQ291bnQgPSAoY3VycmVudE5vZGUuX19yZW1vdmFsQ291bnQgfHwgMCkgKyAxO1xuICAgICAgICAgICAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoY2hpbGRDbG9uZSwgZ2V0TmV4dFNpYmxpbmcoY3VycmVudE5vZGUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIF9mb3JjZVJlbW92ZShjdXJyZW50Tm9kZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLyogQ2hlY2sgd2hldGhlciBlbGVtZW50IGhhcyBhIHZhbGlkIG5hbWVzcGFjZSAqL1xuICAgIGlmIChjdXJyZW50Tm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgIV9jaGVja1ZhbGlkTmFtZXNwYWNlKGN1cnJlbnROb2RlKSkge1xuICAgICAgX2ZvcmNlUmVtb3ZlKGN1cnJlbnROb2RlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvKiBNYWtlIHN1cmUgdGhhdCBvbGRlciBicm93c2VycyBkb24ndCBnZXQgZmFsbGJhY2stdGFnIG1YU1MgKi9cbiAgICBpZiAoKHRhZ05hbWUgPT09ICdub3NjcmlwdCcgfHwgdGFnTmFtZSA9PT0gJ25vZW1iZWQnIHx8IHRhZ05hbWUgPT09ICdub2ZyYW1lcycpICYmIHJlZ0V4cFRlc3QoLzxcXC9ubyhzY3JpcHR8ZW1iZWR8ZnJhbWVzKS9pLCBjdXJyZW50Tm9kZS5pbm5lckhUTUwpKSB7XG4gICAgICBfZm9yY2VSZW1vdmUoY3VycmVudE5vZGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8qIFNhbml0aXplIGVsZW1lbnQgY29udGVudCB0byBiZSB0ZW1wbGF0ZS1zYWZlICovXG4gICAgaWYgKFNBRkVfRk9SX1RFTVBMQVRFUyAmJiBjdXJyZW50Tm9kZS5ub2RlVHlwZSA9PT0gTk9ERV9UWVBFLnRleHQpIHtcbiAgICAgIC8qIEdldCB0aGUgZWxlbWVudCdzIHRleHQgY29udGVudCAqL1xuICAgICAgY29udGVudCA9IGN1cnJlbnROb2RlLnRleHRDb250ZW50O1xuICAgICAgYXJyYXlGb3JFYWNoKFtNVVNUQUNIRV9FWFBSLCBFUkJfRVhQUiwgVE1QTElUX0VYUFJdLCBleHByID0+IHtcbiAgICAgICAgY29udGVudCA9IHN0cmluZ1JlcGxhY2UoY29udGVudCwgZXhwciwgJyAnKTtcbiAgICAgIH0pO1xuICAgICAgaWYgKGN1cnJlbnROb2RlLnRleHRDb250ZW50ICE9PSBjb250ZW50KSB7XG4gICAgICAgIGFycmF5UHVzaChET01QdXJpZnkucmVtb3ZlZCwge1xuICAgICAgICAgIGVsZW1lbnQ6IGN1cnJlbnROb2RlLmNsb25lTm9kZSgpXG4gICAgICAgIH0pO1xuICAgICAgICBjdXJyZW50Tm9kZS50ZXh0Q29udGVudCA9IGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICBfZXhlY3V0ZUhvb2tzKGhvb2tzLmFmdGVyU2FuaXRpemVFbGVtZW50cywgY3VycmVudE5vZGUsIG51bGwpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcbiAgLyoqXG4gICAqIF9pc1ZhbGlkQXR0cmlidXRlXG4gICAqXG4gICAqIEBwYXJhbSBsY1RhZyBMb3dlcmNhc2UgdGFnIG5hbWUgb2YgY29udGFpbmluZyBlbGVtZW50LlxuICAgKiBAcGFyYW0gbGNOYW1lIExvd2VyY2FzZSBhdHRyaWJ1dGUgbmFtZS5cbiAgICogQHBhcmFtIHZhbHVlIEF0dHJpYnV0ZSB2YWx1ZS5cbiAgICogQHJldHVybiBSZXR1cm5zIHRydWUgaWYgYHZhbHVlYCBpcyB2YWxpZCwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgY29uc3QgX2lzVmFsaWRBdHRyaWJ1dGUgPSBmdW5jdGlvbiBfaXNWYWxpZEF0dHJpYnV0ZShsY1RhZywgbGNOYW1lLCB2YWx1ZSkge1xuICAgIC8qIE1ha2Ugc3VyZSBhdHRyaWJ1dGUgY2Fubm90IGNsb2JiZXIgKi9cbiAgICBpZiAoU0FOSVRJWkVfRE9NICYmIChsY05hbWUgPT09ICdpZCcgfHwgbGNOYW1lID09PSAnbmFtZScpICYmICh2YWx1ZSBpbiBkb2N1bWVudCB8fCB2YWx1ZSBpbiBmb3JtRWxlbWVudCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLyogQWxsb3cgdmFsaWQgZGF0YS0qIGF0dHJpYnV0ZXM6IEF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgYWZ0ZXIgXCItXCJcbiAgICAgICAgKGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2RvbS5odG1sI2VtYmVkZGluZy1jdXN0b20tbm9uLXZpc2libGUtZGF0YS13aXRoLXRoZS1kYXRhLSotYXR0cmlidXRlcylcbiAgICAgICAgWE1MLWNvbXBhdGlibGUgKGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2luZnJhc3RydWN0dXJlLmh0bWwjeG1sLWNvbXBhdGlibGUgYW5kIGh0dHA6Ly93d3cudzMub3JnL1RSL3htbC8jZDBlODA0KVxuICAgICAgICBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIHRoZSB2YWx1ZTsgaXQncyBhbHdheXMgVVJJIHNhZmUuICovXG4gICAgaWYgKEFMTE9XX0RBVEFfQVRUUiAmJiAhRk9SQklEX0FUVFJbbGNOYW1lXSAmJiByZWdFeHBUZXN0KERBVEFfQVRUUiwgbGNOYW1lKSkgOyBlbHNlIGlmIChBTExPV19BUklBX0FUVFIgJiYgcmVnRXhwVGVzdChBUklBX0FUVFIsIGxjTmFtZSkpIDsgZWxzZSBpZiAoIUFMTE9XRURfQVRUUltsY05hbWVdIHx8IEZPUkJJRF9BVFRSW2xjTmFtZV0pIHtcbiAgICAgIGlmIChcbiAgICAgIC8vIEZpcnN0IGNvbmRpdGlvbiBkb2VzIGEgdmVyeSBiYXNpYyBjaGVjayBpZiBhKSBpdCdzIGJhc2ljYWxseSBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IHRhZ25hbWUgQU5EXG4gICAgICAvLyBiKSBpZiB0aGUgdGFnTmFtZSBwYXNzZXMgd2hhdGV2ZXIgdGhlIHVzZXIgaGFzIGNvbmZpZ3VyZWQgZm9yIENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLnRhZ05hbWVDaGVja1xuICAgICAgLy8gYW5kIGMpIGlmIHRoZSBhdHRyaWJ1dGUgbmFtZSBwYXNzZXMgd2hhdGV2ZXIgdGhlIHVzZXIgaGFzIGNvbmZpZ3VyZWQgZm9yIENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmF0dHJpYnV0ZU5hbWVDaGVja1xuICAgICAgX2lzQmFzaWNDdXN0b21FbGVtZW50KGxjVGFnKSAmJiAoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwICYmIHJlZ0V4cFRlc3QoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrLCBsY1RhZykgfHwgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24gJiYgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrKGxjVGFnKSkgJiYgKENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmF0dHJpYnV0ZU5hbWVDaGVjayBpbnN0YW5jZW9mIFJlZ0V4cCAmJiByZWdFeHBUZXN0KENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmF0dHJpYnV0ZU5hbWVDaGVjaywgbGNOYW1lKSB8fCBDVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2sgaW5zdGFuY2VvZiBGdW5jdGlvbiAmJiBDVVNUT01fRUxFTUVOVF9IQU5ETElORy5hdHRyaWJ1dGVOYW1lQ2hlY2sobGNOYW1lKSkgfHxcbiAgICAgIC8vIEFsdGVybmF0aXZlLCBzZWNvbmQgY29uZGl0aW9uIGNoZWNrcyBpZiBpdCdzIGFuIGBpc2AtYXR0cmlidXRlLCBBTkRcbiAgICAgIC8vIHRoZSB2YWx1ZSBwYXNzZXMgd2hhdGV2ZXIgdGhlIHVzZXIgaGFzIGNvbmZpZ3VyZWQgZm9yIENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLnRhZ05hbWVDaGVja1xuICAgICAgbGNOYW1lID09PSAnaXMnICYmIENVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cyAmJiAoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwICYmIHJlZ0V4cFRlc3QoQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrLCB2YWx1ZSkgfHwgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24gJiYgQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrKHZhbHVlKSkpIDsgZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8qIENoZWNrIHZhbHVlIGlzIHNhZmUuIEZpcnN0LCBpcyBhdHRyIGluZXJ0PyBJZiBzbywgaXMgc2FmZSAqL1xuICAgIH0gZWxzZSBpZiAoVVJJX1NBRkVfQVRUUklCVVRFU1tsY05hbWVdKSA7IGVsc2UgaWYgKHJlZ0V4cFRlc3QoSVNfQUxMT1dFRF9VUkkkMSwgc3RyaW5nUmVwbGFjZSh2YWx1ZSwgQVRUUl9XSElURVNQQUNFLCAnJykpKSA7IGVsc2UgaWYgKChsY05hbWUgPT09ICdzcmMnIHx8IGxjTmFtZSA9PT0gJ3hsaW5rOmhyZWYnIHx8IGxjTmFtZSA9PT0gJ2hyZWYnKSAmJiBsY1RhZyAhPT0gJ3NjcmlwdCcgJiYgc3RyaW5nSW5kZXhPZih2YWx1ZSwgJ2RhdGE6JykgPT09IDAgJiYgREFUQV9VUklfVEFHU1tsY1RhZ10pIDsgZWxzZSBpZiAoQUxMT1dfVU5LTk9XTl9QUk9UT0NPTFMgJiYgIXJlZ0V4cFRlc3QoSVNfU0NSSVBUX09SX0RBVEEsIHN0cmluZ1JlcGxhY2UodmFsdWUsIEFUVFJfV0hJVEVTUEFDRSwgJycpKSkgOyBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSA7XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG4gIC8qKlxuICAgKiBfaXNCYXNpY0N1c3RvbUVsZW1lbnRcbiAgICogY2hlY2tzIGlmIGF0IGxlYXN0IG9uZSBkYXNoIGlzIGluY2x1ZGVkIGluIHRhZ05hbWUsIGFuZCBpdCdzIG5vdCB0aGUgZmlyc3QgY2hhclxuICAgKiBmb3IgbW9yZSBzb3BoaXN0aWNhdGVkIGNoZWNraW5nIHNlZSBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL3ZhbGlkYXRlLWVsZW1lbnQtbmFtZVxuICAgKlxuICAgKiBAcGFyYW0gdGFnTmFtZSBuYW1lIG9mIHRoZSB0YWcgb2YgdGhlIG5vZGUgdG8gc2FuaXRpemVcbiAgICogQHJldHVybnMgUmV0dXJucyB0cnVlIGlmIHRoZSB0YWcgbmFtZSBtZWV0cyB0aGUgYmFzaWMgY3JpdGVyaWEgZm9yIGEgY3VzdG9tIGVsZW1lbnQsIG90aGVyd2lzZSBmYWxzZS5cbiAgICovXG4gIGNvbnN0IF9pc0Jhc2ljQ3VzdG9tRWxlbWVudCA9IGZ1bmN0aW9uIF9pc0Jhc2ljQ3VzdG9tRWxlbWVudCh0YWdOYW1lKSB7XG4gICAgcmV0dXJuIHRhZ05hbWUgIT09ICdhbm5vdGF0aW9uLXhtbCcgJiYgc3RyaW5nTWF0Y2godGFnTmFtZSwgQ1VTVE9NX0VMRU1FTlQpO1xuICB9O1xuICAvKipcbiAgICogX3Nhbml0aXplQXR0cmlidXRlc1xuICAgKlxuICAgKiBAcHJvdGVjdCBhdHRyaWJ1dGVzXG4gICAqIEBwcm90ZWN0IG5vZGVOYW1lXG4gICAqIEBwcm90ZWN0IHJlbW92ZUF0dHJpYnV0ZVxuICAgKiBAcHJvdGVjdCBzZXRBdHRyaWJ1dGVcbiAgICpcbiAgICogQHBhcmFtIGN1cnJlbnROb2RlIHRvIHNhbml0aXplXG4gICAqL1xuICBjb25zdCBfc2FuaXRpemVBdHRyaWJ1dGVzID0gZnVuY3Rpb24gX3Nhbml0aXplQXR0cmlidXRlcyhjdXJyZW50Tm9kZSkge1xuICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICBfZXhlY3V0ZUhvb2tzKGhvb2tzLmJlZm9yZVNhbml0aXplQXR0cmlidXRlcywgY3VycmVudE5vZGUsIG51bGwpO1xuICAgIGNvbnN0IHtcbiAgICAgIGF0dHJpYnV0ZXNcbiAgICB9ID0gY3VycmVudE5vZGU7XG4gICAgLyogQ2hlY2sgaWYgd2UgaGF2ZSBhdHRyaWJ1dGVzOyBpZiBub3Qgd2UgbWlnaHQgaGF2ZSBhIHRleHQgbm9kZSAqL1xuICAgIGlmICghYXR0cmlidXRlcyB8fCBfaXNDbG9iYmVyZWQoY3VycmVudE5vZGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGhvb2tFdmVudCA9IHtcbiAgICAgIGF0dHJOYW1lOiAnJyxcbiAgICAgIGF0dHJWYWx1ZTogJycsXG4gICAgICBrZWVwQXR0cjogdHJ1ZSxcbiAgICAgIGFsbG93ZWRBdHRyaWJ1dGVzOiBBTExPV0VEX0FUVFIsXG4gICAgICBmb3JjZUtlZXBBdHRyOiB1bmRlZmluZWRcbiAgICB9O1xuICAgIGxldCBsID0gYXR0cmlidXRlcy5sZW5ndGg7XG4gICAgLyogR28gYmFja3dhcmRzIG92ZXIgYWxsIGF0dHJpYnV0ZXM7IHNhZmVseSByZW1vdmUgYmFkIG9uZXMgKi9cbiAgICB3aGlsZSAobC0tKSB7XG4gICAgICBjb25zdCBhdHRyID0gYXR0cmlidXRlc1tsXTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgbmFtZXNwYWNlVVJJLFxuICAgICAgICB2YWx1ZTogYXR0clZhbHVlXG4gICAgICB9ID0gYXR0cjtcbiAgICAgIGNvbnN0IGxjTmFtZSA9IHRyYW5zZm9ybUNhc2VGdW5jKG5hbWUpO1xuICAgICAgbGV0IHZhbHVlID0gbmFtZSA9PT0gJ3ZhbHVlJyA/IGF0dHJWYWx1ZSA6IHN0cmluZ1RyaW0oYXR0clZhbHVlKTtcbiAgICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICAgIGhvb2tFdmVudC5hdHRyTmFtZSA9IGxjTmFtZTtcbiAgICAgIGhvb2tFdmVudC5hdHRyVmFsdWUgPSB2YWx1ZTtcbiAgICAgIGhvb2tFdmVudC5rZWVwQXR0ciA9IHRydWU7XG4gICAgICBob29rRXZlbnQuZm9yY2VLZWVwQXR0ciA9IHVuZGVmaW5lZDsgLy8gQWxsb3dzIGRldmVsb3BlcnMgdG8gc2VlIHRoaXMgaXMgYSBwcm9wZXJ0eSB0aGV5IGNhbiBzZXRcbiAgICAgIF9leGVjdXRlSG9va3MoaG9va3MudXBvblNhbml0aXplQXR0cmlidXRlLCBjdXJyZW50Tm9kZSwgaG9va0V2ZW50KTtcbiAgICAgIHZhbHVlID0gaG9va0V2ZW50LmF0dHJWYWx1ZTtcbiAgICAgIC8qIEZ1bGwgRE9NIENsb2JiZXJpbmcgcHJvdGVjdGlvbiB2aWEgbmFtZXNwYWNlIGlzb2xhdGlvbixcbiAgICAgICAqIFByZWZpeCBpZCBhbmQgbmFtZSBhdHRyaWJ1dGVzIHdpdGggYHVzZXItY29udGVudC1gXG4gICAgICAgKi9cbiAgICAgIGlmIChTQU5JVElaRV9OQU1FRF9QUk9QUyAmJiAobGNOYW1lID09PSAnaWQnIHx8IGxjTmFtZSA9PT0gJ25hbWUnKSkge1xuICAgICAgICAvLyBSZW1vdmUgdGhlIGF0dHJpYnV0ZSB3aXRoIHRoaXMgdmFsdWVcbiAgICAgICAgX3JlbW92ZUF0dHJpYnV0ZShuYW1lLCBjdXJyZW50Tm9kZSk7XG4gICAgICAgIC8vIFByZWZpeCB0aGUgdmFsdWUgYW5kIGxhdGVyIHJlLWNyZWF0ZSB0aGUgYXR0cmlidXRlIHdpdGggdGhlIHNhbml0aXplZCB2YWx1ZVxuICAgICAgICB2YWx1ZSA9IFNBTklUSVpFX05BTUVEX1BST1BTX1BSRUZJWCArIHZhbHVlO1xuICAgICAgfVxuICAgICAgLyogV29yayBhcm91bmQgYSBzZWN1cml0eSBpc3N1ZSB3aXRoIGNvbW1lbnRzIGluc2lkZSBhdHRyaWJ1dGVzICovXG4gICAgICBpZiAoU0FGRV9GT1JfWE1MICYmIHJlZ0V4cFRlc3QoLygoLS0hP3xdKT4pfDxcXC8oc3R5bGV8dGl0bGUpL2ksIHZhbHVlKSkge1xuICAgICAgICBfcmVtb3ZlQXR0cmlidXRlKG5hbWUsIGN1cnJlbnROb2RlKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvKiBEaWQgdGhlIGhvb2tzIGFwcHJvdmUgb2YgdGhlIGF0dHJpYnV0ZT8gKi9cbiAgICAgIGlmIChob29rRXZlbnQuZm9yY2VLZWVwQXR0cikge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8qIFJlbW92ZSBhdHRyaWJ1dGUgKi9cbiAgICAgIF9yZW1vdmVBdHRyaWJ1dGUobmFtZSwgY3VycmVudE5vZGUpO1xuICAgICAgLyogRGlkIHRoZSBob29rcyBhcHByb3ZlIG9mIHRoZSBhdHRyaWJ1dGU/ICovXG4gICAgICBpZiAoIWhvb2tFdmVudC5rZWVwQXR0cikge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8qIFdvcmsgYXJvdW5kIGEgc2VjdXJpdHkgaXNzdWUgaW4galF1ZXJ5IDMuMCAqL1xuICAgICAgaWYgKCFBTExPV19TRUxGX0NMT1NFX0lOX0FUVFIgJiYgcmVnRXhwVGVzdCgvXFwvPi9pLCB2YWx1ZSkpIHtcbiAgICAgICAgX3JlbW92ZUF0dHJpYnV0ZShuYW1lLCBjdXJyZW50Tm9kZSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgLyogU2FuaXRpemUgYXR0cmlidXRlIGNvbnRlbnQgdG8gYmUgdGVtcGxhdGUtc2FmZSAqL1xuICAgICAgaWYgKFNBRkVfRk9SX1RFTVBMQVRFUykge1xuICAgICAgICBhcnJheUZvckVhY2goW01VU1RBQ0hFX0VYUFIsIEVSQl9FWFBSLCBUTVBMSVRfRVhQUl0sIGV4cHIgPT4ge1xuICAgICAgICAgIHZhbHVlID0gc3RyaW5nUmVwbGFjZSh2YWx1ZSwgZXhwciwgJyAnKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICAvKiBJcyBgdmFsdWVgIHZhbGlkIGZvciB0aGlzIGF0dHJpYnV0ZT8gKi9cbiAgICAgIGNvbnN0IGxjVGFnID0gdHJhbnNmb3JtQ2FzZUZ1bmMoY3VycmVudE5vZGUubm9kZU5hbWUpO1xuICAgICAgaWYgKCFfaXNWYWxpZEF0dHJpYnV0ZShsY1RhZywgbGNOYW1lLCB2YWx1ZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvKiBIYW5kbGUgYXR0cmlidXRlcyB0aGF0IHJlcXVpcmUgVHJ1c3RlZCBUeXBlcyAqL1xuICAgICAgaWYgKHRydXN0ZWRUeXBlc1BvbGljeSAmJiB0eXBlb2YgdHJ1c3RlZFR5cGVzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgdHJ1c3RlZFR5cGVzLmdldEF0dHJpYnV0ZVR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWYgKG5hbWVzcGFjZVVSSSkgOyBlbHNlIHtcbiAgICAgICAgICBzd2l0Y2ggKHRydXN0ZWRUeXBlcy5nZXRBdHRyaWJ1dGVUeXBlKGxjVGFnLCBsY05hbWUpKSB7XG4gICAgICAgICAgICBjYXNlICdUcnVzdGVkSFRNTCc6XG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRydXN0ZWRUeXBlc1BvbGljeS5jcmVhdGVIVE1MKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnVHJ1c3RlZFNjcmlwdFVSTCc6XG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRydXN0ZWRUeXBlc1BvbGljeS5jcmVhdGVTY3JpcHRVUkwodmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvKiBIYW5kbGUgaW52YWxpZCBkYXRhLSogYXR0cmlidXRlIHNldCBieSB0cnktY2F0Y2hpbmcgaXQgKi9cbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChuYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgICBjdXJyZW50Tm9kZS5zZXRBdHRyaWJ1dGVOUyhuYW1lc3BhY2VVUkksIG5hbWUsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvKiBGYWxsYmFjayB0byBzZXRBdHRyaWJ1dGUoKSBmb3IgYnJvd3Nlci11bnJlY29nbml6ZWQgbmFtZXNwYWNlcyBlLmcuIFwieC1zY2hlbWFcIi4gKi9cbiAgICAgICAgICBjdXJyZW50Tm9kZS5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfaXNDbG9iYmVyZWQoY3VycmVudE5vZGUpKSB7XG4gICAgICAgICAgX2ZvcmNlUmVtb3ZlKGN1cnJlbnROb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhcnJheVBvcChET01QdXJpZnkucmVtb3ZlZCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKF8pIHt9XG4gICAgfVxuICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICBfZXhlY3V0ZUhvb2tzKGhvb2tzLmFmdGVyU2FuaXRpemVBdHRyaWJ1dGVzLCBjdXJyZW50Tm9kZSwgbnVsbCk7XG4gIH07XG4gIC8qKlxuICAgKiBfc2FuaXRpemVTaGFkb3dET01cbiAgICpcbiAgICogQHBhcmFtIGZyYWdtZW50IHRvIGl0ZXJhdGUgb3ZlciByZWN1cnNpdmVseVxuICAgKi9cbiAgY29uc3QgX3Nhbml0aXplU2hhZG93RE9NID0gZnVuY3Rpb24gX3Nhbml0aXplU2hhZG93RE9NKGZyYWdtZW50KSB7XG4gICAgbGV0IHNoYWRvd05vZGUgPSBudWxsO1xuICAgIGNvbnN0IHNoYWRvd0l0ZXJhdG9yID0gX2NyZWF0ZU5vZGVJdGVyYXRvcihmcmFnbWVudCk7XG4gICAgLyogRXhlY3V0ZSBhIGhvb2sgaWYgcHJlc2VudCAqL1xuICAgIF9leGVjdXRlSG9va3MoaG9va3MuYmVmb3JlU2FuaXRpemVTaGFkb3dET00sIGZyYWdtZW50LCBudWxsKTtcbiAgICB3aGlsZSAoc2hhZG93Tm9kZSA9IHNoYWRvd0l0ZXJhdG9yLm5leHROb2RlKCkpIHtcbiAgICAgIC8qIEV4ZWN1dGUgYSBob29rIGlmIHByZXNlbnQgKi9cbiAgICAgIF9leGVjdXRlSG9va3MoaG9va3MudXBvblNhbml0aXplU2hhZG93Tm9kZSwgc2hhZG93Tm9kZSwgbnVsbCk7XG4gICAgICAvKiBTYW5pdGl6ZSB0YWdzIGFuZCBlbGVtZW50cyAqL1xuICAgICAgX3Nhbml0aXplRWxlbWVudHMoc2hhZG93Tm9kZSk7XG4gICAgICAvKiBDaGVjayBhdHRyaWJ1dGVzIG5leHQgKi9cbiAgICAgIF9zYW5pdGl6ZUF0dHJpYnV0ZXMoc2hhZG93Tm9kZSk7XG4gICAgICAvKiBEZWVwIHNoYWRvdyBET00gZGV0ZWN0ZWQgKi9cbiAgICAgIGlmIChzaGFkb3dOb2RlLmNvbnRlbnQgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KSB7XG4gICAgICAgIF9zYW5pdGl6ZVNoYWRvd0RPTShzaGFkb3dOb2RlLmNvbnRlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICAvKiBFeGVjdXRlIGEgaG9vayBpZiBwcmVzZW50ICovXG4gICAgX2V4ZWN1dGVIb29rcyhob29rcy5hZnRlclNhbml0aXplU2hhZG93RE9NLCBmcmFnbWVudCwgbnVsbCk7XG4gIH07XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gIERPTVB1cmlmeS5zYW5pdGl6ZSA9IGZ1bmN0aW9uIChkaXJ0eSkge1xuICAgIGxldCBjZmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICAgIGxldCBib2R5ID0gbnVsbDtcbiAgICBsZXQgaW1wb3J0ZWROb2RlID0gbnVsbDtcbiAgICBsZXQgY3VycmVudE5vZGUgPSBudWxsO1xuICAgIGxldCByZXR1cm5Ob2RlID0gbnVsbDtcbiAgICAvKiBNYWtlIHN1cmUgd2UgaGF2ZSBhIHN0cmluZyB0byBzYW5pdGl6ZS5cbiAgICAgIERPIE5PVCByZXR1cm4gZWFybHksIGFzIHRoaXMgd2lsbCByZXR1cm4gdGhlIHdyb25nIHR5cGUgaWZcbiAgICAgIHRoZSB1c2VyIGhhcyByZXF1ZXN0ZWQgYSBET00gb2JqZWN0IHJhdGhlciB0aGFuIGEgc3RyaW5nICovXG4gICAgSVNfRU1QVFlfSU5QVVQgPSAhZGlydHk7XG4gICAgaWYgKElTX0VNUFRZX0lOUFVUKSB7XG4gICAgICBkaXJ0eSA9ICc8IS0tPic7XG4gICAgfVxuICAgIC8qIFN0cmluZ2lmeSwgaW4gY2FzZSBkaXJ0eSBpcyBhbiBvYmplY3QgKi9cbiAgICBpZiAodHlwZW9mIGRpcnR5ICE9PSAnc3RyaW5nJyAmJiAhX2lzTm9kZShkaXJ0eSkpIHtcbiAgICAgIGlmICh0eXBlb2YgZGlydHkudG9TdHJpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZGlydHkgPSBkaXJ0eS50b1N0cmluZygpO1xuICAgICAgICBpZiAodHlwZW9mIGRpcnR5ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRocm93IHR5cGVFcnJvckNyZWF0ZSgnZGlydHkgaXMgbm90IGEgc3RyaW5nLCBhYm9ydGluZycpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyB0eXBlRXJyb3JDcmVhdGUoJ3RvU3RyaW5nIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG4gICAgICB9XG4gICAgfVxuICAgIC8qIFJldHVybiBkaXJ0eSBIVE1MIGlmIERPTVB1cmlmeSBjYW5ub3QgcnVuICovXG4gICAgaWYgKCFET01QdXJpZnkuaXNTdXBwb3J0ZWQpIHtcbiAgICAgIHJldHVybiBkaXJ0eTtcbiAgICB9XG4gICAgLyogQXNzaWduIGNvbmZpZyB2YXJzICovXG4gICAgaWYgKCFTRVRfQ09ORklHKSB7XG4gICAgICBfcGFyc2VDb25maWcoY2ZnKTtcbiAgICB9XG4gICAgLyogQ2xlYW4gdXAgcmVtb3ZlZCBlbGVtZW50cyAqL1xuICAgIERPTVB1cmlmeS5yZW1vdmVkID0gW107XG4gICAgLyogQ2hlY2sgaWYgZGlydHkgaXMgY29ycmVjdGx5IHR5cGVkIGZvciBJTl9QTEFDRSAqL1xuICAgIGlmICh0eXBlb2YgZGlydHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICBJTl9QTEFDRSA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoSU5fUExBQ0UpIHtcbiAgICAgIC8qIERvIHNvbWUgZWFybHkgcHJlLXNhbml0aXphdGlvbiB0byBhdm9pZCB1bnNhZmUgcm9vdCBub2RlcyAqL1xuICAgICAgaWYgKGRpcnR5Lm5vZGVOYW1lKSB7XG4gICAgICAgIGNvbnN0IHRhZ05hbWUgPSB0cmFuc2Zvcm1DYXNlRnVuYyhkaXJ0eS5ub2RlTmFtZSk7XG4gICAgICAgIGlmICghQUxMT1dFRF9UQUdTW3RhZ05hbWVdIHx8IEZPUkJJRF9UQUdTW3RhZ05hbWVdKSB7XG4gICAgICAgICAgdGhyb3cgdHlwZUVycm9yQ3JlYXRlKCdyb290IG5vZGUgaXMgZm9yYmlkZGVuIGFuZCBjYW5ub3QgYmUgc2FuaXRpemVkIGluLXBsYWNlJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRpcnR5IGluc3RhbmNlb2YgTm9kZSkge1xuICAgICAgLyogSWYgZGlydHkgaXMgYSBET00gZWxlbWVudCwgYXBwZW5kIHRvIGFuIGVtcHR5IGRvY3VtZW50IHRvIGF2b2lkXG4gICAgICAgICBlbGVtZW50cyBiZWluZyBzdHJpcHBlZCBieSB0aGUgcGFyc2VyICovXG4gICAgICBib2R5ID0gX2luaXREb2N1bWVudCgnPCEtLS0tPicpO1xuICAgICAgaW1wb3J0ZWROb2RlID0gYm9keS5vd25lckRvY3VtZW50LmltcG9ydE5vZGUoZGlydHksIHRydWUpO1xuICAgICAgaWYgKGltcG9ydGVkTm9kZS5ub2RlVHlwZSA9PT0gTk9ERV9UWVBFLmVsZW1lbnQgJiYgaW1wb3J0ZWROb2RlLm5vZGVOYW1lID09PSAnQk9EWScpIHtcbiAgICAgICAgLyogTm9kZSBpcyBhbHJlYWR5IGEgYm9keSwgdXNlIGFzIGlzICovXG4gICAgICAgIGJvZHkgPSBpbXBvcnRlZE5vZGU7XG4gICAgICB9IGVsc2UgaWYgKGltcG9ydGVkTm9kZS5ub2RlTmFtZSA9PT0gJ0hUTUwnKSB7XG4gICAgICAgIGJvZHkgPSBpbXBvcnRlZE5vZGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9wcmVmZXItZG9tLW5vZGUtYXBwZW5kXG4gICAgICAgIGJvZHkuYXBwZW5kQ2hpbGQoaW1wb3J0ZWROb2RlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLyogRXhpdCBkaXJlY3RseSBpZiB3ZSBoYXZlIG5vdGhpbmcgdG8gZG8gKi9cbiAgICAgIGlmICghUkVUVVJOX0RPTSAmJiAhU0FGRV9GT1JfVEVNUExBVEVTICYmICFXSE9MRV9ET0NVTUVOVCAmJlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vcHJlZmVyLWluY2x1ZGVzXG4gICAgICBkaXJ0eS5pbmRleE9mKCc8JykgPT09IC0xKSB7XG4gICAgICAgIHJldHVybiB0cnVzdGVkVHlwZXNQb2xpY3kgJiYgUkVUVVJOX1RSVVNURURfVFlQRSA/IHRydXN0ZWRUeXBlc1BvbGljeS5jcmVhdGVIVE1MKGRpcnR5KSA6IGRpcnR5O1xuICAgICAgfVxuICAgICAgLyogSW5pdGlhbGl6ZSB0aGUgZG9jdW1lbnQgdG8gd29yayBvbiAqL1xuICAgICAgYm9keSA9IF9pbml0RG9jdW1lbnQoZGlydHkpO1xuICAgICAgLyogQ2hlY2sgd2UgaGF2ZSBhIERPTSBub2RlIGZyb20gdGhlIGRhdGEgKi9cbiAgICAgIGlmICghYm9keSkge1xuICAgICAgICByZXR1cm4gUkVUVVJOX0RPTSA/IG51bGwgOiBSRVRVUk5fVFJVU1RFRF9UWVBFID8gZW1wdHlIVE1MIDogJyc7XG4gICAgICB9XG4gICAgfVxuICAgIC8qIFJlbW92ZSBmaXJzdCBlbGVtZW50IG5vZGUgKG91cnMpIGlmIEZPUkNFX0JPRFkgaXMgc2V0ICovXG4gICAgaWYgKGJvZHkgJiYgRk9SQ0VfQk9EWSkge1xuICAgICAgX2ZvcmNlUmVtb3ZlKGJvZHkuZmlyc3RDaGlsZCk7XG4gICAgfVxuICAgIC8qIEdldCBub2RlIGl0ZXJhdG9yICovXG4gICAgY29uc3Qgbm9kZUl0ZXJhdG9yID0gX2NyZWF0ZU5vZGVJdGVyYXRvcihJTl9QTEFDRSA/IGRpcnR5IDogYm9keSk7XG4gICAgLyogTm93IHN0YXJ0IGl0ZXJhdGluZyBvdmVyIHRoZSBjcmVhdGVkIGRvY3VtZW50ICovXG4gICAgd2hpbGUgKGN1cnJlbnROb2RlID0gbm9kZUl0ZXJhdG9yLm5leHROb2RlKCkpIHtcbiAgICAgIC8qIFNhbml0aXplIHRhZ3MgYW5kIGVsZW1lbnRzICovXG4gICAgICBfc2FuaXRpemVFbGVtZW50cyhjdXJyZW50Tm9kZSk7XG4gICAgICAvKiBDaGVjayBhdHRyaWJ1dGVzIG5leHQgKi9cbiAgICAgIF9zYW5pdGl6ZUF0dHJpYnV0ZXMoY3VycmVudE5vZGUpO1xuICAgICAgLyogU2hhZG93IERPTSBkZXRlY3RlZCwgc2FuaXRpemUgaXQgKi9cbiAgICAgIGlmIChjdXJyZW50Tm9kZS5jb250ZW50IGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudCkge1xuICAgICAgICBfc2FuaXRpemVTaGFkb3dET00oY3VycmVudE5vZGUuY29udGVudCk7XG4gICAgICB9XG4gICAgfVxuICAgIC8qIElmIHdlIHNhbml0aXplZCBgZGlydHlgIGluLXBsYWNlLCByZXR1cm4gaXQuICovXG4gICAgaWYgKElOX1BMQUNFKSB7XG4gICAgICByZXR1cm4gZGlydHk7XG4gICAgfVxuICAgIC8qIFJldHVybiBzYW5pdGl6ZWQgc3RyaW5nIG9yIERPTSAqL1xuICAgIGlmIChSRVRVUk5fRE9NKSB7XG4gICAgICBpZiAoUkVUVVJOX0RPTV9GUkFHTUVOVCkge1xuICAgICAgICByZXR1cm5Ob2RlID0gY3JlYXRlRG9jdW1lbnRGcmFnbWVudC5jYWxsKGJvZHkub3duZXJEb2N1bWVudCk7XG4gICAgICAgIHdoaWxlIChib2R5LmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9wcmVmZXItZG9tLW5vZGUtYXBwZW5kXG4gICAgICAgICAgcmV0dXJuTm9kZS5hcHBlbmRDaGlsZChib2R5LmZpcnN0Q2hpbGQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm5Ob2RlID0gYm9keTtcbiAgICAgIH1cbiAgICAgIGlmIChBTExPV0VEX0FUVFIuc2hhZG93cm9vdCB8fCBBTExPV0VEX0FUVFIuc2hhZG93cm9vdG1vZGUpIHtcbiAgICAgICAgLypcbiAgICAgICAgICBBZG9wdE5vZGUoKSBpcyBub3QgdXNlZCBiZWNhdXNlIGludGVybmFsIHN0YXRlIGlzIG5vdCByZXNldFxuICAgICAgICAgIChlLmcuIHRoZSBwYXN0IG5hbWVzIG1hcCBvZiBhIEhUTUxGb3JtRWxlbWVudCksIHRoaXMgaXMgc2FmZVxuICAgICAgICAgIGluIHRoZW9yeSBidXQgd2Ugd291bGQgcmF0aGVyIG5vdCByaXNrIGFub3RoZXIgYXR0YWNrIHZlY3Rvci5cbiAgICAgICAgICBUaGUgc3RhdGUgdGhhdCBpcyBjbG9uZWQgYnkgaW1wb3J0Tm9kZSgpIGlzIGV4cGxpY2l0bHkgZGVmaW5lZFxuICAgICAgICAgIGJ5IHRoZSBzcGVjcy5cbiAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuTm9kZSA9IGltcG9ydE5vZGUuY2FsbChvcmlnaW5hbERvY3VtZW50LCByZXR1cm5Ob2RlLCB0cnVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXR1cm5Ob2RlO1xuICAgIH1cbiAgICBsZXQgc2VyaWFsaXplZEhUTUwgPSBXSE9MRV9ET0NVTUVOVCA/IGJvZHkub3V0ZXJIVE1MIDogYm9keS5pbm5lckhUTUw7XG4gICAgLyogU2VyaWFsaXplIGRvY3R5cGUgaWYgYWxsb3dlZCAqL1xuICAgIGlmIChXSE9MRV9ET0NVTUVOVCAmJiBBTExPV0VEX1RBR1NbJyFkb2N0eXBlJ10gJiYgYm9keS5vd25lckRvY3VtZW50ICYmIGJvZHkub3duZXJEb2N1bWVudC5kb2N0eXBlICYmIGJvZHkub3duZXJEb2N1bWVudC5kb2N0eXBlLm5hbWUgJiYgcmVnRXhwVGVzdChET0NUWVBFX05BTUUsIGJvZHkub3duZXJEb2N1bWVudC5kb2N0eXBlLm5hbWUpKSB7XG4gICAgICBzZXJpYWxpemVkSFRNTCA9ICc8IURPQ1RZUEUgJyArIGJvZHkub3duZXJEb2N1bWVudC5kb2N0eXBlLm5hbWUgKyAnPlxcbicgKyBzZXJpYWxpemVkSFRNTDtcbiAgICB9XG4gICAgLyogU2FuaXRpemUgZmluYWwgc3RyaW5nIHRlbXBsYXRlLXNhZmUgKi9cbiAgICBpZiAoU0FGRV9GT1JfVEVNUExBVEVTKSB7XG4gICAgICBhcnJheUZvckVhY2goW01VU1RBQ0hFX0VYUFIsIEVSQl9FWFBSLCBUTVBMSVRfRVhQUl0sIGV4cHIgPT4ge1xuICAgICAgICBzZXJpYWxpemVkSFRNTCA9IHN0cmluZ1JlcGxhY2Uoc2VyaWFsaXplZEhUTUwsIGV4cHIsICcgJyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRydXN0ZWRUeXBlc1BvbGljeSAmJiBSRVRVUk5fVFJVU1RFRF9UWVBFID8gdHJ1c3RlZFR5cGVzUG9saWN5LmNyZWF0ZUhUTUwoc2VyaWFsaXplZEhUTUwpIDogc2VyaWFsaXplZEhUTUw7XG4gIH07XG4gIERPTVB1cmlmeS5zZXRDb25maWcgPSBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNmZyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgX3BhcnNlQ29uZmlnKGNmZyk7XG4gICAgU0VUX0NPTkZJRyA9IHRydWU7XG4gIH07XG4gIERPTVB1cmlmeS5jbGVhckNvbmZpZyA9IGZ1bmN0aW9uICgpIHtcbiAgICBDT05GSUcgPSBudWxsO1xuICAgIFNFVF9DT05GSUcgPSBmYWxzZTtcbiAgfTtcbiAgRE9NUHVyaWZ5LmlzVmFsaWRBdHRyaWJ1dGUgPSBmdW5jdGlvbiAodGFnLCBhdHRyLCB2YWx1ZSkge1xuICAgIC8qIEluaXRpYWxpemUgc2hhcmVkIGNvbmZpZyB2YXJzIGlmIG5lY2Vzc2FyeS4gKi9cbiAgICBpZiAoIUNPTkZJRykge1xuICAgICAgX3BhcnNlQ29uZmlnKHt9KTtcbiAgICB9XG4gICAgY29uc3QgbGNUYWcgPSB0cmFuc2Zvcm1DYXNlRnVuYyh0YWcpO1xuICAgIGNvbnN0IGxjTmFtZSA9IHRyYW5zZm9ybUNhc2VGdW5jKGF0dHIpO1xuICAgIHJldHVybiBfaXNWYWxpZEF0dHJpYnV0ZShsY1RhZywgbGNOYW1lLCB2YWx1ZSk7XG4gIH07XG4gIERPTVB1cmlmeS5hZGRIb29rID0gZnVuY3Rpb24gKGVudHJ5UG9pbnQsIGhvb2tGdW5jdGlvbikge1xuICAgIGlmICh0eXBlb2YgaG9va0Z1bmN0aW9uICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGFycmF5UHVzaChob29rc1tlbnRyeVBvaW50XSwgaG9va0Z1bmN0aW9uKTtcbiAgfTtcbiAgRE9NUHVyaWZ5LnJlbW92ZUhvb2sgPSBmdW5jdGlvbiAoZW50cnlQb2ludCwgaG9va0Z1bmN0aW9uKSB7XG4gICAgaWYgKGhvb2tGdW5jdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBpbmRleCA9IGFycmF5TGFzdEluZGV4T2YoaG9va3NbZW50cnlQb2ludF0sIGhvb2tGdW5jdGlvbik7XG4gICAgICByZXR1cm4gaW5kZXggPT09IC0xID8gdW5kZWZpbmVkIDogYXJyYXlTcGxpY2UoaG9va3NbZW50cnlQb2ludF0sIGluZGV4LCAxKVswXTtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5UG9wKGhvb2tzW2VudHJ5UG9pbnRdKTtcbiAgfTtcbiAgRE9NUHVyaWZ5LnJlbW92ZUhvb2tzID0gZnVuY3Rpb24gKGVudHJ5UG9pbnQpIHtcbiAgICBob29rc1tlbnRyeVBvaW50XSA9IFtdO1xuICB9O1xuICBET01QdXJpZnkucmVtb3ZlQWxsSG9va3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgaG9va3MgPSBfY3JlYXRlSG9va3NNYXAoKTtcbiAgfTtcbiAgcmV0dXJuIERPTVB1cmlmeTtcbn1cbnZhciBwdXJpZnkgPSBjcmVhdGVET01QdXJpZnkoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwdXJpZnk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wdXJpZnkuY2pzLmpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/dompurify/dist/purify.cjs.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/get-nonce/dist/es2015/index.js":
/*!*****************************************************!*\
!*** ./node_modules/get-nonce/dist/es2015/index.js ***!
\*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getNonce: () => (/* binding */ getNonce),\n/* harmony export */ setNonce: () => (/* binding */ setNonce)\n/* harmony export */ });\nvar currentNonce;\nvar setNonce = function (nonce) {\n currentNonce = nonce;\n};\nvar getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (true) {\n return __webpack_require__.nc;\n }\n return undefined;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9nZXQtbm9uY2UvZGlzdC9lczIwMTUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUF3QztBQUNoRCxlQUFlLHNCQUFpQjtBQUNoQztBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL2dldC1ub25jZS9kaXN0L2VzMjAxNS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY3VycmVudE5vbmNlO1xuZXhwb3J0IHZhciBzZXROb25jZSA9IGZ1bmN0aW9uIChub25jZSkge1xuICAgIGN1cnJlbnROb25jZSA9IG5vbmNlO1xufTtcbmV4cG9ydCB2YXIgZ2V0Tm9uY2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGN1cnJlbnROb25jZSkge1xuICAgICAgICByZXR1cm4gY3VycmVudE5vbmNlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gX193ZWJwYWNrX25vbmNlX187XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/get-nonce/dist/es2015/index.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/isomorphic-dompurify/browser.js":
/*!******************************************************!*\
!*** ./node_modules/isomorphic-dompurify/browser.js ***!
\******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("module.exports = window.DOMPurify || (window.DOMPurify = (__webpack_require__(/*! dompurify */ \"(app-pages-browser)/./node_modules/dompurify/dist/purify.cjs.js\")[\"default\"]) || __webpack_require__(/*! dompurify */ \"(app-pages-browser)/./node_modules/dompurify/dist/purify.cjs.js\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9pc29tb3JwaGljLWRvbXB1cmlmeS9icm93c2VyLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RCxvSEFBNEIsSUFBSSxtQkFBTyxDQUFDLGtGQUFXIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9pc29tb3JwaGljLWRvbXB1cmlmeS9icm93c2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gd2luZG93LkRPTVB1cmlmeSB8fCAod2luZG93LkRPTVB1cmlmeSA9IHJlcXVpcmUoJ2RvbXB1cmlmeScpLmRlZmF1bHQgfHwgcmVxdWlyZSgnZG9tcHVyaWZ5JykpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/isomorphic-dompurify/browser.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js":
/*!****************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/Icon.js ***!
\****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Icon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultAttributes.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\");\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \n\n\nconst Icon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(_c = (param, ref)=>{\n let { color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = \"\", children, iconNode, ...rest } = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"svg\", {\n ref,\n ..._defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide\", className),\n ...rest\n }, [\n ...iconNode.map((param)=>{\n let [tag, attrs] = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(tag, attrs);\n }),\n ...Array.isArray(children) ? children : [\n children\n ]\n ]);\n});\n_c1 = Icon;\n //# sourceMappingURL=Icon.js.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Icon$forwardRef\");\n$RefreshReg$(_c1, \"Icon\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBd0JBLENBQU0sU0FBTyx3RUFDWCxRQVdFLEdBQ0c7UUFYSCxFQUNFLEtBQVEsbUJBQ1IsSUFBTyxPQUNQLFdBQWMsTUFDZCxxQkFDQSxTQUFZLE9BQ1osVUFDQSxVQUNBLEdBQUc7SUFJRSwyRUFDTCxNQUNBO1FBQ0U7UUFDQSxHQUFHO1FBQ0gsS0FBTztRQUNQLE1BQVE7UUFDUixNQUFRO1FBQ1IsWUFBYSxxQkFBdUIsUUFBTyxFQUFXLFlBQUksSUFBTSxVQUFPLENBQUksSUFBSTtRQUMvRSxVQUFXLG1FQUFhLFdBQVUsU0FBUztRQUMzQyxHQUFHO0lBQ0wsR0FDQTtXQUNLLENBQVMsWUFBSTtnQkFBQyxDQUFDLENBQUssS0FBSyxLQUFNO2lDQUFBLHFEQUFjLEdBQUssT0FBSyxDQUFDOztXQUN2RCxLQUFNLFNBQVEsUUFBUSxDQUFJLGNBQVc7WUFBQyxRQUFRO1NBQUE7S0FDcEQ7QUFFSiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9zcmMvSWNvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVFbGVtZW50LCBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHsgSWNvbk5vZGUsIEx1Y2lkZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBtZXJnZUNsYXNzZXMgfSBmcm9tICdAbHVjaWRlL3NoYXJlZCc7XG5cbmludGVyZmFjZSBJY29uQ29tcG9uZW50UHJvcHMgZXh0ZW5kcyBMdWNpZGVQcm9wcyB7XG4gIGljb25Ob2RlOiBJY29uTm9kZTtcbn1cblxuLyoqXG4gKiBMdWNpZGUgaWNvbiBjb21wb25lbnRcbiAqXG4gKiBAY29tcG9uZW50IEljb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLmNvbG9yIC0gVGhlIGNvbG9yIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMuc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMuc3Ryb2tlV2lkdGggLSBUaGUgc3Ryb2tlIHdpZHRoIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHByb3BzLmFic29sdXRlU3Ryb2tlV2lkdGggLSBXaGV0aGVyIHRvIHVzZSBhYnNvbHV0ZSBzdHJva2Ugd2lkdGhcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5jbGFzc05hbWUgLSBUaGUgY2xhc3MgbmFtZSBvZiB0aGUgaWNvblxuICogQHBhcmFtIHtJY29uTm9kZX0gcHJvcHMuY2hpbGRyZW4gLSBUaGUgY2hpbGRyZW4gb2YgdGhlIGljb25cbiAqIEBwYXJhbSB7SWNvbk5vZGV9IHByb3BzLmljb25Ob2RlIC0gVGhlIGljb24gbm9kZSBvZiB0aGUgaWNvblxuICpcbiAqIEByZXR1cm5zIHtGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50fSBMdWNpZGVJY29uXG4gKi9cbmNvbnN0IEljb24gPSBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Db21wb25lbnRQcm9wcz4oXG4gIChcbiAgICB7XG4gICAgICBjb2xvciA9ICdjdXJyZW50Q29sb3InLFxuICAgICAgc2l6ZSA9IDI0LFxuICAgICAgc3Ryb2tlV2lkdGggPSAyLFxuICAgICAgYWJzb2x1dGVTdHJva2VXaWR0aCxcbiAgICAgIGNsYXNzTmFtZSA9ICcnLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBpY29uTm9kZSxcbiAgICAgIC4uLnJlc3RcbiAgICB9LFxuICAgIHJlZixcbiAgKSA9PiB7XG4gICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoXG4gICAgICAnc3ZnJyxcbiAgICAgIHtcbiAgICAgICAgcmVmLFxuICAgICAgICAuLi5kZWZhdWx0QXR0cmlidXRlcyxcbiAgICAgICAgd2lkdGg6IHNpemUsXG4gICAgICAgIGhlaWdodDogc2l6ZSxcbiAgICAgICAgc3Ryb2tlOiBjb2xvcixcbiAgICAgICAgc3Ryb2tlV2lkdGg6IGFic29sdXRlU3Ryb2tlV2lkdGggPyAoTnVtYmVyKHN0cm9rZVdpZHRoKSAqIDI0KSAvIE51bWJlcihzaXplKSA6IHN0cm9rZVdpZHRoLFxuICAgICAgICBjbGFzc05hbWU6IG1lcmdlQ2xhc3NlcygnbHVjaWRlJywgY2xhc3NOYW1lKSxcbiAgICAgICAgLi4ucmVzdCxcbiAgICAgIH0sXG4gICAgICBbXG4gICAgICAgIC4uLmljb25Ob2RlLm1hcCgoW3RhZywgYXR0cnNdKSA9PiBjcmVhdGVFbGVtZW50KHRhZywgYXR0cnMpKSxcbiAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pID8gY2hpbGRyZW4gOiBbY2hpbGRyZW5dKSxcbiAgICAgIF0sXG4gICAgKTtcbiAgfSxcbik7XG5cbmV4cG9ydCBkZWZhdWx0IEljb247XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js":
/*!****************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/createLucideIcon.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createLucideIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/* harmony import */ var _Icon_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Icon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \n\n\nconst createLucideIcon = (iconName, iconNode)=>{\n const Component = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_Icon_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n ref,\n iconNode,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide-\".concat((0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.toKebabCase)(iconName)), className),\n ...props\n });\n });\n Component.displayName = \"\".concat(iconName);\n return Component;\n};\n //# sourceMappingURL=createLucideIcon.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vY3JlYXRlTHVjaWRlSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBV00sdUJBQW1CLEdBQUMsVUFBa0IsUUFBdUI7SUFDakUsTUFBTSxDQUFZLG1GQUFpRTtZQUF6QixFQUFFLENBQVcsV0FBRyxRQUFTOzZCQUNqRixvREFBYSxDQUFDLGdEQUFNO1lBQ2xCO1lBQ0E7WUFDQSxXQUFXLGtFQUFhLFdBQStCLE9BQXJCLGlFQUFXLENBQUMsUUFBUSxDQUFDLEdBQUksU0FBUztZQUNwRSxHQUFHO1FBQUEsQ0FDSjs7SUFHTyx3QkFBYyxDQUFHLEVBQVEsT0FBUixRQUFRO0lBRTVCO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvc3JjL2NyZWF0ZUx1Y2lkZUljb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRWxlbWVudCwgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IG1lcmdlQ2xhc3NlcywgdG9LZWJhYkNhc2UgfSBmcm9tICdAbHVjaWRlL3NoYXJlZCc7XG5pbXBvcnQgeyBJY29uTm9kZSwgTHVjaWRlUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBJY29uIGZyb20gJy4vSWNvbic7XG5cbi8qKlxuICogQ3JlYXRlIGEgTHVjaWRlIGljb24gY29tcG9uZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gaWNvbk5hbWVcbiAqIEBwYXJhbSB7YXJyYXl9IGljb25Ob2RlXG4gKiBAcmV0dXJucyB7Rm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudH0gTHVjaWRlSWNvblxuICovXG5jb25zdCBjcmVhdGVMdWNpZGVJY29uID0gKGljb25OYW1lOiBzdHJpbmcsIGljb25Ob2RlOiBJY29uTm9kZSkgPT4ge1xuICBjb25zdCBDb21wb25lbnQgPSBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEx1Y2lkZVByb3BzPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT5cbiAgICBjcmVhdGVFbGVtZW50KEljb24sIHtcbiAgICAgIHJlZixcbiAgICAgIGljb25Ob2RlLFxuICAgICAgY2xhc3NOYW1lOiBtZXJnZUNsYXNzZXMoYGx1Y2lkZS0ke3RvS2ViYWJDYXNlKGljb25OYW1lKX1gLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSksXG4gICk7XG5cbiAgQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gYCR7aWNvbk5hbWV9YDtcblxuICByZXR1cm4gQ29tcG9uZW50O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlTHVjaWRlSWNvbjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js":
/*!*****************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/defaultAttributes.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ defaultAttributes)\n/* harmony export */ });\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ var defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n //# sourceMappingURL=defaultAttributes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vZGVmYXVsdEF0dHJpYnV0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsQ0FBZTtJQUNiLEtBQU87SUFDUCxLQUFPO0lBQ1AsTUFBUTtJQUNSLE9BQVM7SUFDVCxJQUFNO0lBQ04sTUFBUTtJQUNSLFdBQWE7SUFDYixhQUFlO0lBQ2YsY0FBZ0I7QUFDbEIiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvc3JjL2RlZmF1bHRBdHRyaWJ1dGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IHtcbiAgeG1sbnM6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsXG4gIHdpZHRoOiAyNCxcbiAgaGVpZ2h0OiAyNCxcbiAgdmlld0JveDogJzAgMCAyNCAyNCcsXG4gIGZpbGw6ICdub25lJyxcbiAgc3Ryb2tlOiAnY3VycmVudENvbG9yJyxcbiAgc3Ryb2tlV2lkdGg6IDIsXG4gIHN0cm9rZUxpbmVjYXA6ICdyb3VuZCcsXG4gIHN0cm9rZUxpbmVqb2luOiAncm91bmQnLFxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/archive.js":
/*!*************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/archive.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Archive)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Archive = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Archive\", [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"5\",\n x: \"2\",\n y: \"3\",\n rx: \"1\",\n key: \"1wp1u1\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8\",\n key: \"1s80jp\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 12h4\",\n key: \"a56b0p\"\n }\n ]\n]);\n //# sourceMappingURL=archive.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYXJjaGl2ZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGdCQUFVLGdFQUFnQixDQUFDLFNBQVc7SUFDMUM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQU0sQ0FBUTtZQUFLLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzFDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvYXJjaGl2ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFyY2hpdmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlNakFpSUdobGFXZG9kRDBpTlNJZ2VEMGlNaUlnZVQwaU15SWdjbmc5SWpFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRRZ09IWXhNV0V5SURJZ01DQXdJREFnTWlBeWFERXlZVElnTWlBd0lEQWdNQ0F5TFRKV09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UQWdNVEpvTkNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FyY2hpdmVcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBBcmNoaXZlID0gY3JlYXRlTHVjaWRlSWNvbignQXJjaGl2ZScsIFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnNScsIHg6ICcyJywgeTogJzMnLCByeDogJzEnLCBrZXk6ICcxd3AxdTEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCA4djExYTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4Jywga2V5OiAnMXM4MGpwJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDEyaDQnLCBrZXk6ICdhNTZiMHAnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFyY2hpdmU7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/archive.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js":
/*!***********************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/check.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Check)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Check = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Check\", [\n [\n \"path\",\n {\n d: \"M20 6 9 17l-5-5\",\n key: \"1gmf2c\"\n }\n ]\n]);\n //# sourceMappingURL=check.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hlY2suanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhQSxDQUFNLFVBQVEsb0VBQWlCLE9BQVM7SUFBQztRQUFDO1FBQVE7WUFBRSxHQUFHLGlCQUFtQjtZQUFBLEtBQUssQ0FBUztRQUFBLENBQUM7S0FBQztDQUFDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvY2hlY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaGVja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpBZ05pQTVJREUzYkMwMUxUVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGVja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZWNrID0gY3JlYXRlTHVjaWRlSWNvbignQ2hlY2snLCBbWydwYXRoJywgeyBkOiAnTTIwIDYgOSAxN2wtNS01Jywga2V5OiAnMWdtZjJjJyB9XV0pO1xuXG5leHBvcnQgZGVmYXVsdCBDaGVjaztcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-down.js":
/*!******************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/chevron-down.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ChevronDown)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronDown = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronDown\", [\n [\n \"path\",\n {\n d: \"m6 9 6 6 6-6\",\n key: \"qrunsl\"\n }\n ]\n]);\n //# sourceMappingURL=chevron-down.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1kb3duLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sb0JBQWMsZ0VBQWdCLENBQUMsYUFBZTtJQUNsRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZ0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzlDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvY2hldnJvbi1kb3duLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvbkRvd25cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE5pQTVJRFlnTmlBMkxUWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaGV2cm9uLWRvd25cbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGV2cm9uRG93biA9IGNyZWF0ZUx1Y2lkZUljb24oJ0NoZXZyb25Eb3duJywgW1xuICBbJ3BhdGgnLCB7IGQ6ICdtNiA5IDYgNiA2LTYnLCBrZXk6ICdxcnVuc2wnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25Eb3duO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-down.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-left.js":
/*!******************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/chevron-left.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ChevronLeft)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronLeft = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronLeft\", [\n [\n \"path\",\n {\n d: \"m15 18-6-6 6-6\",\n key: \"1wnfg3\"\n }\n ]\n]);\n //# sourceMappingURL=chevron-left.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1sZWZ0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sb0JBQWMsZ0VBQWdCLENBQUMsYUFBZTtJQUNsRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBa0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQ2hEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvY2hldnJvbi1sZWZ0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvbkxlZnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKdE1UVWdNVGd0TmkwMklEWXROaUlnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbi1sZWZ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2hldnJvbkxlZnQgPSBjcmVhdGVMdWNpZGVJY29uKCdDaGV2cm9uTGVmdCcsIFtcbiAgWydwYXRoJywgeyBkOiAnbTE1IDE4LTYtNiA2LTYnLCBrZXk6ICcxd25mZzMnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25MZWZ0O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-left.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-right.js":
/*!*******************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/chevron-right.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ChevronRight)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronRight = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronRight\", [\n [\n \"path\",\n {\n d: \"m9 18 6-6-6-6\",\n key: \"mthhwq\"\n }\n ]\n]);\n //# sourceMappingURL=chevron-right.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi1yaWdodC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLHFCQUFlLGdFQUFnQixDQUFDLGNBQWdCO0lBQ3BEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFpQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDL0MiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy9jaGV2cm9uLXJpZ2h0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvblJpZ2h0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRPU0F4T0NBMkxUWXROaTAySWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2hldnJvbi1yaWdodFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENoZXZyb25SaWdodCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0NoZXZyb25SaWdodCcsIFtcbiAgWydwYXRoJywgeyBkOiAnbTkgMTggNi02LTYtNicsIGtleTogJ210aGh3cScgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hldnJvblJpZ2h0O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-right.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-up.js":
/*!****************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/chevron-up.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ChevronUp)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ChevronUp = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ChevronUp\", [\n [\n \"path\",\n {\n d: \"m18 15-6-6-6 6\",\n key: \"153udz\"\n }\n ]\n]);\n //# sourceMappingURL=chevron-up.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2hldnJvbi11cC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFBLENBQU0sY0FBWSxvRUFBaUIsV0FBYTtJQUFDO1FBQUM7UUFBUTtZQUFFLEdBQUcsZ0JBQWtCO1lBQUEsS0FBSyxDQUFTO1FBQUEsQ0FBQztLQUFDO0NBQUMiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy9jaGV2cm9uLXVwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2hldnJvblVwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSnRNVGdnTVRVdE5pMDJMVFlnTmlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NoZXZyb24tdXBcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaGV2cm9uVXAgPSBjcmVhdGVMdWNpZGVJY29uKCdDaGV2cm9uVXAnLCBbWydwYXRoJywgeyBkOiAnbTE4IDE1LTYtNi02IDYnLCBrZXk6ICcxNTN1ZHonIH1dXSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZXZyb25VcDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/chevron-up.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js":
/*!******************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/circle-alert.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CircleAlert)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst CircleAlert = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"CircleAlert\", [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"8\",\n y2: \"12\",\n key: \"1pkeuh\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12.01\",\n y1: \"16\",\n y2: \"16\",\n key: \"4dfq90\"\n }\n ]\n]);\n //# sourceMappingURL=circle-alert.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFsZXJ0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sb0JBQWMsZ0VBQWdCLENBQUMsYUFBZTtJQUNsRDtRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQU0sR0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksSUFBSztZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQVM7WUFBQSxHQUFJLEtBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQ3RFIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvY2lyY2xlLWFsZXJ0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlQWxlcnRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1USWlJSGd5UFNJeE1pSWdlVEU5SWpnaUlIa3lQU0l4TWlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRJaUlIZ3lQU0l4TWk0d01TSWdlVEU5SWpFMklpQjVNajBpTVRZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2NpcmNsZS1hbGVydFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENpcmNsZUFsZXJ0ID0gY3JlYXRlTHVjaWRlSWNvbignQ2lyY2xlQWxlcnQnLCBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzgnLCB5MjogJzEyJywga2V5OiAnMXBrZXVoJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMi4wMScsIHkxOiAnMTYnLCB5MjogJzE2Jywga2V5OiAnNGRmcTkwJyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVBbGVydDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle.js":
/*!************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/circle.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Circle)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Circle = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Circle\", [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ]\n]);\n //# sourceMappingURL=circle.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2lyY2xlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sZUFBUyxnRUFBZ0IsQ0FBQyxRQUFVO0lBQ3hDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBTSxHQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzFEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvY2lyY2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2lyY2xlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlID0gY3JlYXRlTHVjaWRlSWNvbignQ2lyY2xlJywgW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/eye-off.js":
/*!*************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/eye-off.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ EyeOff)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst EyeOff = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"EyeOff\", [\n [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\n \"path\",\n {\n d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\",\n key: \"151rxh\"\n }\n ],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\n \"path\",\n {\n d: \"m2 2 20 20\",\n key: \"1ooewy\"\n }\n ]\n]);\n //# sourceMappingURL=eye-off.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZXllLW9mZi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGVBQVMsZ0VBQWdCLENBQUMsUUFBVTtJQUN4QztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBd0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3JFO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQ1A7S0FDRjtJQUNBO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUM1QyIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL2V5ZS1vZmYudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBFeWVPZmZcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UQXVOek16SURVdU1EYzJZVEV3TGpjME5DQXhNQzQzTkRRZ01DQXdJREVnTVRFdU1qQTFJRFl1TlRjMUlERWdNU0F3SURBZ01TQXdJQzQyT1RZZ01UQXVOelEzSURFd0xqYzBOeUF3SURBZ01TMHhMalEwTkNBeUxqUTVJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhOQzR3T0RRZ01UUXVNVFU0WVRNZ015QXdJREFnTVMwMExqSTBNaTAwTGpJME1pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1UY3VORGM1SURFM0xqUTVPV0V4TUM0M05TQXhNQzQzTlNBd0lEQWdNUzB4TlM0ME1UY3ROUzR4TlRFZ01TQXhJREFnTUNBeElEQXRMalk1TmlBeE1DNDNOU0F4TUM0M05TQXdJREFnTVNBMExqUTBOaTAxTGpFME15SWdMejRLSUNBOGNHRjBhQ0JrUFNKdE1pQXlJREl3SURJd0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2V5ZS1vZmZcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBFeWVPZmYgPSBjcmVhdGVMdWNpZGVJY29uKCdFeWVPZmYnLCBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00xMC43MzMgNS4wNzZhMTAuNzQ0IDEwLjc0NCAwIDAgMSAxMS4yMDUgNi41NzUgMSAxIDAgMCAxIDAgLjY5NiAxMC43NDcgMTAuNzQ3IDAgMCAxLTEuNDQ0IDIuNDknLFxuICAgICAga2V5OiAnY3Q4ZTFmJyxcbiAgICB9LFxuICBdLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTQuMDg0IDE0LjE1OGEzIDMgMCAwIDEtNC4yNDItNC4yNDInLCBrZXk6ICcxNTFyeGgnIH1dLFxuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MycsXG4gICAgICBrZXk6ICcxM2JqOWEnLFxuICAgIH0sXG4gIF0sXG4gIFsncGF0aCcsIHsgZDogJ20yIDIgMjAgMjAnLCBrZXk6ICcxb29ld3knIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IEV5ZU9mZjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/eye-off.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/folder.js":
/*!************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/folder.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Folder)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Folder = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Folder\", [\n [\n \"path\",\n {\n d: \"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\",\n key: \"1kt360\"\n }\n ]\n]);\n //# sourceMappingURL=folder.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZm9sZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sZUFBUyxnRUFBZ0IsQ0FBQyxRQUFVO0lBQ3hDO1FBQ0U7UUFDQTtZQUNFLENBQUc7WUFDSCxHQUFLO1FBQ1A7S0FDRjtDQUNEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvZm9sZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRm9sZGVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakFnTWpCaE1pQXlJREFnTUNBd0lESXRNbFk0WVRJZ01pQXdJREFnTUMweUxUSm9MVGN1T1dFeUlESWdNQ0F3SURFdE1TNDJPUzB1T1V3NUxqWWdNeTQ1UVRJZ01pQXdJREFnTUNBM0xqa3pJRE5JTkdFeUlESWdNQ0F3SURBdE1pQXlkakV6WVRJZ01pQXdJREFnTUNBeUlESmFJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb2xkZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBGb2xkZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdGb2xkZXInLCBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMCAyMGEyIDIgMCAwIDAgMi0yVjhhMiAyIDAgMCAwLTItMmgtNy45YTIgMiAwIDAgMS0xLjY5LS45TDkuNiAzLjlBMiAyIDAgMCAwIDcuOTMgM0g0YTIgMiAwIDAgMC0yIDJ2MTNhMiAyIDAgMCAwIDIgMlonLFxuICAgICAga2V5OiAnMWt0MzYwJyxcbiAgICB9LFxuICBdLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZvbGRlcjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/folder.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/forward.js":
/*!*************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/forward.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Forward)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Forward = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Forward\", [\n [\n \"polyline\",\n {\n points: \"15 17 20 12 15 7\",\n key: \"1w3sku\"\n }\n ],\n [\n \"path\",\n {\n d: \"M4 18v-2a4 4 0 0 1 4-4h12\",\n key: \"jmiej9\"\n }\n ]\n]);\n //# sourceMappingURL=forward.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZm9yd2FyZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGdCQUFVLGdFQUFnQixDQUFDLFNBQVc7SUFDMUM7UUFBQyxVQUFZO1FBQUE7WUFBRSxRQUFRLENBQW9CO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxRDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzNEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvZm9yd2FyZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEZvcndhcmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHOXNlV3hwYm1VZ2NHOXBiblJ6UFNJeE5TQXhOeUF5TUNBeE1pQXhOU0EzSWlBdlBnb2dJRHh3WVhSb0lHUTlJazAwSURFNGRpMHlZVFFnTkNBd0lEQWdNU0EwTFRSb01USWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9mb3J3YXJkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRm9yd2FyZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0ZvcndhcmQnLCBbXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzE1IDE3IDIwIDEyIDE1IDcnLCBrZXk6ICcxdzNza3UnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNNCAxOHYtMmE0IDQgMCAwIDEgNC00aDEyJywga2V5OiAnam1pZWo5JyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBGb3J3YXJkO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/forward.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/inbox.js":
/*!***********************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/inbox.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Inbox)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Inbox = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Inbox\", [\n [\n \"polyline\",\n {\n points: \"22 12 16 12 14 15 10 15 8 12 2 12\",\n key: \"o97t9d\"\n }\n ],\n [\n \"path\",\n {\n d: \"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\",\n key: \"oot6mr\"\n }\n ]\n]);\n //# sourceMappingURL=inbox.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvaW5ib3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxjQUFRLGdFQUFnQixDQUFDLE9BQVM7SUFDdEM7UUFBQyxVQUFZO1FBQUE7WUFBRSxRQUFRLENBQXFDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzRTtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7Q0FDRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL2luYm94LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgSW5ib3hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHOXNlV3hwYm1VZ2NHOXBiblJ6UFNJeU1pQXhNaUF4TmlBeE1pQXhOQ0F4TlNBeE1DQXhOU0E0SURFeUlESWdNVElpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVFV1TkRVZ05TNHhNU0F5SURFeWRqWmhNaUF5SURBZ01DQXdJRElnTW1neE5tRXlJRElnTUNBd0lEQWdNaTB5ZGkwMmJDMHpMalExTFRZdU9EbEJNaUF5SURBZ01DQXdJREUyTGpjMklEUklOeTR5TkdFeUlESWdNQ0F3SURBdE1TNDNPU0F4TGpFeGVpSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9pbmJveFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEluYm94ID0gY3JlYXRlTHVjaWRlSWNvbignSW5ib3gnLCBbXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzIyIDEyIDE2IDEyIDE0IDE1IDEwIDE1IDggMTIgMiAxMicsIGtleTogJ285N3Q5ZCcgfV0sXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ001LjQ1IDUuMTEgMiAxMnY2YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMnYtNmwtMy40NS02Ljg5QTIgMiAwIDAgMCAxNi43NiA0SDcuMjRhMiAyIDAgMCAwLTEuNzkgMS4xMXonLFxuICAgICAga2V5OiAnb290Nm1yJyxcbiAgICB9LFxuICBdLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IEluYm94O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/inbox.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-circle.js":
/*!*******************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/loader-circle.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ LoaderCircle)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst LoaderCircle = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"LoaderCircle\", [\n [\n \"path\",\n {\n d: \"M21 12a9 9 0 1 1-6.219-8.56\",\n key: \"13zald\"\n }\n ]\n]);\n //# sourceMappingURL=loader-circle.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbG9hZGVyLWNpcmNsZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLHFCQUFlLGdFQUFnQixDQUFDLGNBQWdCO0lBQ3BEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUErQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDN0QiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy9sb2FkZXItY2lyY2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTG9hZGVyQ2lyY2xlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NakVnTVRKaE9TQTVJREFnTVNBeExUWXVNakU1TFRndU5UWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sb2FkZXItY2lyY2xlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTG9hZGVyQ2lyY2xlID0gY3JlYXRlTHVjaWRlSWNvbignTG9hZGVyQ2lyY2xlJywgW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYnLCBrZXk6ICcxM3phbGQnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IExvYWRlckNpcmNsZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-circle.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js":
/*!**********************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/mail.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Mail)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Mail = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Mail\", [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"16\",\n x: \"2\",\n y: \"4\",\n rx: \"2\",\n key: \"18n3k1\"\n }\n ],\n [\n \"path\",\n {\n d: \"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\",\n key: \"1ocrg3\"\n }\n ]\n]);\n //# sourceMappingURL=mail.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWFpbC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGFBQU8sZ0VBQWdCLENBQUMsTUFBUTtJQUNwQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBTSxDQUFRO1lBQU0sQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUMzRSIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL21haWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNYWlsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU1UWWlJSGc5SWpJaUlIazlJalFpSUhKNFBTSXlJaUF2UGdvZ0lEeHdZWFJvSUdROUltMHlNaUEzTFRndU9UY2dOUzQzWVRFdU9UUWdNUzQ1TkNBd0lEQWdNUzB5TGpBMklEQk1NaUEzSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbWFpbFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1haWwgPSBjcmVhdGVMdWNpZGVJY29uKCdNYWlsJywgW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICcxNicsIHg6ICcyJywgeTogJzQnLCByeDogJzInLCBrZXk6ICcxOG4zazEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdtMjIgNy04Ljk3IDUuN2ExLjk0IDEuOTQgMCAwIDEtMi4wNiAwTDIgNycsIGtleTogJzFvY3JnMycgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgTWFpbDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/mail.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/menu.js":
/*!**********************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/menu.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Menu)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Menu = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Menu\", [\n [\n \"line\",\n {\n x1: \"4\",\n x2: \"20\",\n y1: \"12\",\n y2: \"12\",\n key: \"1e0a9i\"\n }\n ],\n [\n \"line\",\n {\n x1: \"4\",\n x2: \"20\",\n y1: \"6\",\n y2: \"6\",\n key: \"1owob3\"\n }\n ],\n [\n \"line\",\n {\n x1: \"4\",\n x2: \"20\",\n y1: \"18\",\n y2: \"18\",\n key: \"yk5zj1\"\n }\n ]\n]);\n //# sourceMappingURL=menu.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWVudS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGFBQU8sZ0VBQWdCLENBQUMsTUFBUTtJQUNwQztRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBSztZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQUs7WUFBQSxJQUFJLENBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQy9EO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUNsRSIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL21lbnUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBNZW51XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThiR2x1WlNCNE1UMGlOQ0lnZURJOUlqSXdJaUI1TVQwaU1USWlJSGt5UFNJeE1pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU5DSWdlREk5SWpJd0lpQjVNVDBpTmlJZ2VUSTlJallpSUM4K0NpQWdQR3hwYm1VZ2VERTlJalFpSUhneVBTSXlNQ0lnZVRFOUlqRTRJaUI1TWowaU1UZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZW51XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTWVudSA9IGNyZWF0ZUx1Y2lkZUljb24oJ01lbnUnLCBbXG4gIFsnbGluZScsIHsgeDE6ICc0JywgeDI6ICcyMCcsIHkxOiAnMTInLCB5MjogJzEyJywga2V5OiAnMWUwYTlpJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzQnLCB4MjogJzIwJywgeTE6ICc2JywgeTI6ICc2Jywga2V5OiAnMW93b2IzJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzQnLCB4MjogJzIwJywgeTE6ICcxOCcsIHkyOiAnMTgnLCBrZXk6ICd5azV6ajEnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1lbnU7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/menu.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/message-square.js":
/*!********************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/message-square.js ***!
\********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MessageSquare)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst MessageSquare = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"MessageSquare\", [\n [\n \"path\",\n {\n d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\",\n key: \"1lielz\"\n }\n ]\n]);\n //# sourceMappingURL=message-square.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbWVzc2FnZS1zcXVhcmUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxzQkFBZ0IsZ0VBQWdCLENBQUMsZUFBaUI7SUFDdEQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWlFO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUMvRiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL21lc3NhZ2Utc3F1YXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTWVzc2FnZVNxdWFyZVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ01UVmhNaUF5SURBZ01DQXhMVElnTWtnM2JDMDBJRFJXTldFeUlESWdNQ0F3SURFZ01pMHlhREUwWVRJZ01pQXdJREFnTVNBeUlESjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9tZXNzYWdlLXNxdWFyZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IE1lc3NhZ2VTcXVhcmUgPSBjcmVhdGVMdWNpZGVJY29uKCdNZXNzYWdlU3F1YXJlJywgW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTVhMiAyIDAgMCAxLTIgMkg3bC00IDRWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ6Jywga2V5OiAnMWxpZWx6JyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBNZXNzYWdlU3F1YXJlO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/message-square.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/octagon-alert.js":
/*!*******************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/octagon-alert.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ OctagonAlert)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst OctagonAlert = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"OctagonAlert\", [\n [\n \"path\",\n {\n d: \"M12 16h.01\",\n key: \"1drbdi\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 8v4\",\n key: \"1got3b\"\n }\n ],\n [\n \"path\",\n {\n d: \"M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z\",\n key: \"1fd625\"\n }\n ]\n]);\n //# sourceMappingURL=octagon-alert.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvb2N0YWdvbi1hbGVydC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLHFCQUFlLGdFQUFnQixDQUFDLGNBQWdCO0lBQ3BEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFDUDtLQUNGO0NBQ0QiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy9vY3RhZ29uLWFsZXJ0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgT2N0YWdvbkFsZXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVElnTVRab0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhNaUE0ZGpRaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFMUxqTXhNaUF5WVRJZ01pQXdJREFnTVNBeExqUXhOQzQxT0Rac05DNDJPRGdnTkM0Mk9EaEJNaUF5SURBZ01DQXhJREl5SURndU5qZzRkall1TmpJMFlUSWdNaUF3SURBZ01TMHVOVGcySURFdU5ERTBiQzAwTGpZNE9DQTBMalk0T0dFeUlESWdNQ0F3SURFdE1TNDBNVFF1TlRnMlNEZ3VOamc0WVRJZ01pQXdJREFnTVMweExqUXhOQzB1TlRnMmJDMDBMalk0T0MwMExqWTRPRUV5SURJZ01DQXdJREVnTWlBeE5TNHpNVEpXT0M0Mk9EaGhNaUF5SURBZ01DQXhJQzQxT0RZdE1TNDBNVFJzTkM0Mk9EZ3ROQzQyT0RoQk1pQXlJREFnTUNBeElEZ3VOamc0SURKNklpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL29jdGFnb24tYWxlcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBPY3RhZ29uQWxlcnQgPSBjcmVhdGVMdWNpZGVJY29uKCdPY3RhZ29uQWxlcnQnLCBbXG4gIFsncGF0aCcsIHsgZDogJ00xMiAxNmguMDEnLCBrZXk6ICcxZHJiZGknIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgOHY0Jywga2V5OiAnMWdvdDNiJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE1LjMxMiAyYTIgMiAwIDAgMSAxLjQxNC41ODZsNC42ODggNC42ODhBMiAyIDAgMCAxIDIyIDguNjg4djYuNjI0YTIgMiAwIDAgMS0uNTg2IDEuNDE0bC00LjY4OCA0LjY4OGEyIDIgMCAwIDEtMS40MTQuNTg2SDguNjg4YTIgMiAwIDAgMS0xLjQxNC0uNTg2bC00LjY4OC00LjY4OEEyIDIgMCAwIDEgMiAxNS4zMTJWOC42ODhhMiAyIDAgMCAxIC41ODYtMS40MTRsNC42ODgtNC42ODhBMiAyIDAgMCAxIDguNjg4IDJ6JyxcbiAgICAgIGtleTogJzFmZDYyNScsXG4gICAgfSxcbiAgXSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBPY3RhZ29uQWxlcnQ7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/octagon-alert.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/paperclip.js":
/*!***************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/paperclip.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Paperclip)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Paperclip = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Paperclip\", [\n [\n \"path\",\n {\n d: \"m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48\",\n key: \"1u3ebp\"\n }\n ]\n]);\n //# sourceMappingURL=paperclip.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcGFwZXJjbGlwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sa0JBQVksZ0VBQWdCLENBQUMsV0FBYTtJQUM5QztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7Q0FDRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL3BhcGVyY2xpcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBhcGVyY2xpcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0p0TWpFdU5EUWdNVEV1TURVdE9TNHhPU0E1TGpFNVlUWWdOaUF3SURBZ01TMDRMalE1TFRndU5EbHNPQzQxTnkwNExqVTNRVFFnTkNBd0lERWdNU0F4T0NBNExqZzBiQzA0TGpVNUlEZ3VOVGRoTWlBeUlEQWdNQ0F4TFRJdU9ETXRNaTQ0TTJ3NExqUTVMVGd1TkRnaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3BhcGVyY2xpcFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBhcGVyY2xpcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ1BhcGVyY2xpcCcsIFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnbTIxLjQ0IDExLjA1LTkuMTkgOS4xOWE2IDYgMCAwIDEtOC40OS04LjQ5bDguNTctOC41N0E0IDQgMCAxIDEgMTggOC44NGwtOC41OSA4LjU3YTIgMiAwIDAgMS0yLjgzLTIuODNsOC40OS04LjQ4JyxcbiAgICAgIGtleTogJzF1M2VicCcsXG4gICAgfSxcbiAgXSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBQYXBlcmNsaXA7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/paperclip.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/plus.js":
/*!**********************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/plus.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Plus)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Plus = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Plus\", [\n [\n \"path\",\n {\n d: \"M5 12h14\",\n key: \"1ays0h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 5v14\",\n key: \"s699le\"\n }\n ]\n]);\n //# sourceMappingURL=plus.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcGx1cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGFBQU8sZ0VBQWdCLENBQUMsTUFBUTtJQUNwQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzFDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvcGx1cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhNbWd4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05YWXhOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdQbHVzJywgW1xuICBbJ3BhdGgnLCB7IGQ6ICdNNSAxMmgxNCcsIGtleTogJzFheXMwaCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiA1djE0Jywga2V5OiAnczY5OWxlJyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBQbHVzO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/plus.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js":
/*!****************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/refresh-cw.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RefreshCw)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst RefreshCw = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"RefreshCw\", [\n [\n \"path\",\n {\n d: \"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\",\n key: \"v9h5vc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 3v5h-5\",\n key: \"1q7to0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\",\n key: \"3uifl3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16H3v5\",\n key: \"1cv678\"\n }\n ]\n]);\n //# sourceMappingURL=refresh-cw.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcmVmcmVzaC1jdy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGtCQUFZLGdFQUFnQixDQUFDLFdBQWE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXNEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNuRjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXVEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNwRjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDM0MiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy9yZWZyZXNoLWN3LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUmVmcmVzaEN3XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF4TW1FNUlEa2dNQ0F3SURFZ09TMDVJRGt1TnpVZ09TNDNOU0F3SURBZ01TQTJMamMwSURJdU56Uk1NakVnT0NJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTWpFZ00zWTFhQzAxSWlBdlBnb2dJRHh3WVhSb0lHUTlJazB5TVNBeE1tRTVJRGtnTUNBd0lERXRPU0E1SURrdU56VWdPUzQzTlNBd0lEQWdNUzAyTGpjMExUSXVOelJNTXlBeE5pSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk9DQXhOa2d6ZGpVaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3JlZnJlc2gtY3dcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZWZyZXNoQ3cgPSBjcmVhdGVMdWNpZGVJY29uKCdSZWZyZXNoQ3cnLCBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyYTkgOSAwIDAgMSA5LTkgOS43NSA5Ljc1IDAgMCAxIDYuNzQgMi43NEwyMSA4Jywga2V5OiAndjloNXZjJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDN2NWgtNScsIGtleTogJzFxN3RvMCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAxMmE5IDkgMCAwIDEtOSA5IDkuNzUgOS43NSAwIDAgMS02Ljc0LTIuNzRMMyAxNicsIGtleTogJzN1aWZsMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDE2SDN2NScsIGtleTogJzFjdjY3OCcgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVmcmVzaEN3O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/reply-all.js":
/*!***************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/reply-all.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ReplyAll)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst ReplyAll = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ReplyAll\", [\n [\n \"polyline\",\n {\n points: \"7 17 2 12 7 7\",\n key: \"t83bqg\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"12 17 7 12 12 7\",\n key: \"1g4ajm\"\n }\n ],\n [\n \"path\",\n {\n d: \"M22 18v-2a4 4 0 0 0-4-4H7\",\n key: \"1fcyog\"\n }\n ]\n]);\n //# sourceMappingURL=reply-all.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcmVwbHktYWxsLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0saUJBQVcsZ0VBQWdCLENBQUMsVUFBWTtJQUM1QztRQUFDLFVBQVk7UUFBQTtZQUFFLFFBQVEsQ0FBaUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZEO1FBQUMsVUFBWTtRQUFBO1lBQUUsUUFBUSxDQUFtQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTZCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUMzRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL3JlcGx5LWFsbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlcGx5QWxsXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjRzlzZVd4cGJtVWdjRzlwYm5SelBTSTNJREUzSURJZ01USWdOeUEzSWlBdlBnb2dJRHh3YjJ4NWJHbHVaU0J3YjJsdWRITTlJakV5SURFM0lEY2dNVElnTVRJZ055SWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qSWdNVGgyTFRKaE5DQTBJREFnTUNBd0xUUXRORWczSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVwbHktYWxsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVwbHlBbGwgPSBjcmVhdGVMdWNpZGVJY29uKCdSZXBseUFsbCcsIFtcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnNyAxNyAyIDEyIDcgNycsIGtleTogJ3Q4M2JxZycgfV0sXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzEyIDE3IDcgMTIgMTIgNycsIGtleTogJzFnNGFqbScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMiAxOHYtMmE0IDQgMCAwIDAtNC00SDcnLCBrZXk6ICcxZmN5b2cnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlcGx5QWxsO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/reply-all.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/reply.js":
/*!***********************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/reply.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Reply)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Reply = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Reply\", [\n [\n \"polyline\",\n {\n points: \"9 17 4 12 9 7\",\n key: \"hvgpf2\"\n }\n ],\n [\n \"path\",\n {\n d: \"M20 18v-2a4 4 0 0 0-4-4H4\",\n key: \"5vmcpk\"\n }\n ]\n]);\n //# sourceMappingURL=reply.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcmVwbHkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxjQUFRLGdFQUFnQixDQUFDLE9BQVM7SUFDdEM7UUFBQyxVQUFZO1FBQUE7WUFBRSxRQUFRLENBQWlCO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN2RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBNkI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzNEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvcmVwbHkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSZXBseVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0c5c2VXeHBibVVnY0c5cGJuUnpQU0k1SURFM0lEUWdNVElnT1NBM0lpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1DQXhPSFl0TW1FMElEUWdNQ0F3SURBdE5DMDBTRFFpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVwbHlcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBSZXBseSA9IGNyZWF0ZUx1Y2lkZUljb24oJ1JlcGx5JywgW1xuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICc5IDE3IDQgMTIgOSA3Jywga2V5OiAnaHZncGYyJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIwIDE4di0yYTQgNCAwIDAgMC00LTRINCcsIGtleTogJzV2bWNwaycgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgUmVwbHk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/reply.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/search.js":
/*!************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/search.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Search)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Search = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Search\", [\n [\n \"circle\",\n {\n cx: \"11\",\n cy: \"11\",\n r: \"8\",\n key: \"4ej97u\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21 21-4.3-4.3\",\n key: \"1qie3q\"\n }\n ]\n]);\n //# sourceMappingURL=search.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc2VhcmNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sZUFBUyxnRUFBZ0IsQ0FBQyxRQUFVO0lBQ3hDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBSyxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hEO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFrQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDaEQiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy9zZWFyY2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTZWFyY2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNU0lnWTNrOUlqRXhJaUJ5UFNJNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TQXlNUzAwTGpNdE5DNHpJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZWFyY2hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTZWFyY2ggPSBjcmVhdGVMdWNpZGVJY29uKCdTZWFyY2gnLCBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzExJywgY3k6ICcxMScsIHI6ICc4Jywga2V5OiAnNGVqOTd1JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnbTIxIDIxLTQuMy00LjMnLCBrZXk6ICcxcWllM3EnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNlYXJjaDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/search.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/send-horizontal.js":
/*!*********************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/send-horizontal.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SendHorizontal)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst SendHorizontal = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"SendHorizontal\", [\n [\n \"path\",\n {\n d: \"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z\",\n key: \"117uat\"\n }\n ],\n [\n \"path\",\n {\n d: \"M6 12h16\",\n key: \"s4cdu5\"\n }\n ]\n]);\n //# sourceMappingURL=send-horizontal.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc2VuZC1ob3Jpem9udGFsLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBYU0sdUJBQWlCLGdFQUFnQixDQUFDLGdCQUFrQjtJQUN4RDtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDMUMiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy9zZW5kLWhvcml6b250YWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTZW5kSG9yaXpvbnRhbFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXk0M01UUWdNeTR3TkRoaExqUTVPQzQwT1RnZ01DQXdJREF0TGpZNE15NDJNamRzTWk0NE5ETWdOeTQyTWpkaE1pQXlJREFnTUNBeElEQWdNUzR6T1Rac0xUSXVPRFF5SURjdU5qSTNZUzQwT1RndU5EazRJREFnTUNBd0lDNDJPREl1TmpJM2JERTRMVGd1TldFdU5TNDFJREFnTUNBd0lEQXRMamt3TkhvaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRZZ01USm9NVFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VuZC1ob3Jpem9udGFsXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2VuZEhvcml6b250YWwgPSBjcmVhdGVMdWNpZGVJY29uKCdTZW5kSG9yaXpvbnRhbCcsIFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTMuNzE0IDMuMDQ4YS40OTguNDk4IDAgMCAwLS42ODMuNjI3bDIuODQzIDcuNjI3YTIgMiAwIDAgMSAwIDEuMzk2bC0yLjg0MiA3LjYyN2EuNDk4LjQ5OCAwIDAgMCAuNjgyLjYyN2wxOC04LjVhLjUuNSAwIDAgMCAwLS45MDR6JyxcbiAgICAgIGtleTogJzExN3VhdCcsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnTTYgMTJoMTYnLCBrZXk6ICdzNGNkdTUnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNlbmRIb3Jpem9udGFsO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/send-horizontal.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/send.js":
/*!**********************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/send.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Send)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Send = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Send\", [\n [\n \"path\",\n {\n d: \"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\",\n key: \"1ffxy3\"\n }\n ],\n [\n \"path\",\n {\n d: \"m21.854 2.147-10.94 10.939\",\n key: \"12cjpa\"\n }\n ]\n]);\n //# sourceMappingURL=send.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc2VuZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGFBQU8sZ0VBQWdCLENBQUMsTUFBUTtJQUNwQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7SUFDQTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBOEI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzVEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMvc2VuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNlbmRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UUXVOVE0ySURJeExqWTRObUV1TlM0MUlEQWdNQ0F3SUM0NU16Y3RMakF5Tkd3MkxqVXRNVGxoTGpRNU5pNDBPVFlnTUNBd0lEQXRMall6TlMwdU5qTTFiQzB4T1NBMkxqVmhMalV1TlNBd0lEQWdNQzB1TURJMExqa3pOMnczTGpreklETXVNVGhoTWlBeUlEQWdNQ0F4SURFdU1URXlJREV1TVRGNklpQXZQZ29nSUR4d1lYUm9JR1E5SW0weU1TNDROVFFnTWk0eE5EY3RNVEF1T1RRZ01UQXVPVE01SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VuZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFNlbmQgPSBjcmVhdGVMdWNpZGVJY29uKCdTZW5kJywgW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTQuNTM2IDIxLjY4NmEuNS41IDAgMCAwIC45MzctLjAyNGw2LjUtMTlhLjQ5Ni40OTYgMCAwIDAtLjYzNS0uNjM1bC0xOSA2LjVhLjUuNSAwIDAgMC0uMDI0LjkzN2w3LjkzIDMuMThhMiAyIDAgMCAxIDEuMTEyIDEuMTF6JyxcbiAgICAgIGtleTogJzFmZnh5MycsXG4gICAgfSxcbiAgXSxcbiAgWydwYXRoJywgeyBkOiAnbTIxLjg1NCAyLjE0Ny0xMC45NCAxMC45MzknLCBrZXk6ICcxMmNqcGEnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNlbmQ7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/send.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/square-pen.js":
/*!****************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/square-pen.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SquarePen)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst SquarePen = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"SquarePen\", [\n [\n \"path\",\n {\n d: \"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\",\n key: \"1m0v6g\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z\",\n key: \"ohrbg2\"\n }\n ]\n]);\n //# sourceMappingURL=square-pen.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc3F1YXJlLXBlbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGtCQUFZLGdFQUFnQixDQUFDLFdBQWE7SUFDOUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQThEO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzRjtRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7Q0FDRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL3NxdWFyZS1wZW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTcXVhcmVQZW5cbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNMGcxWVRJZ01pQXdJREFnTUMweUlESjJNVFJoTWlBeUlEQWdNQ0F3SURJZ01tZ3hOR0V5SURJZ01DQXdJREFnTWkweWRpMDNJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPQzR6TnpVZ01pNDJNalZoTVNBeElEQWdNQ0F4SURNZ00yd3RPUzR3TVRNZ09TNHdNVFJoTWlBeUlEQWdNQ0F4TFM0NE5UTXVOVEExYkMweUxqZzNNeTQ0TkdFdU5TNDFJREFnTUNBeExTNDJNaTB1TmpKc0xqZzBMVEl1T0RjellUSWdNaUF3SURBZ01TQXVOVEEyTFM0NE5USjZJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zcXVhcmUtcGVuXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU3F1YXJlUGVuID0gY3JlYXRlTHVjaWRlSWNvbignU3F1YXJlUGVuJywgW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03Jywga2V5OiAnMW0wdjZnJyB9XSxcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTE4LjM3NSAyLjYyNWExIDEgMCAwIDEgMyAzbC05LjAxMyA5LjAxNGEyIDIgMCAwIDEtLjg1My41MDVsLTIuODczLjg0YS41LjUgMCAwIDEtLjYyLS42MmwuODQtMi44NzNhMiAyIDAgMCAxIC41MDYtLjg1MnonLFxuICAgICAga2V5OiAnb2hyYmcyJyxcbiAgICB9LFxuICBdLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNxdWFyZVBlbjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/square-pen.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/star.js":
/*!**********************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/star.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Star)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Star = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Star\", [\n [\n \"path\",\n {\n d: \"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\",\n key: \"r04s7s\"\n }\n ]\n]);\n //# sourceMappingURL=star.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc3Rhci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGFBQU8sZ0VBQWdCLENBQUMsTUFBUTtJQUNwQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7Q0FDRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL3N0YXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBTdGFyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVEV1TlRJMUlESXVNamsxWVM0MU15NDFNeUF3SURBZ01TQXVPVFVnTUd3eUxqTXhJRFF1TmpjNVlUSXVNVEl6SURJdU1USXpJREFnTUNBd0lERXVOVGsxSURFdU1UWnNOUzR4TmpZdU56VTJZUzQxTXk0MU15QXdJREFnTVNBdU1qazBMamt3Tkd3dE15NDNNellnTXk0Mk16aGhNaTR4TWpNZ01pNHhNak1nTUNBd0lEQXRMall4TVNBeExqZzNPR3d1T0RneUlEVXVNVFJoTGpVekxqVXpJREFnTUNBeExTNDNOekV1TlRac0xUUXVOakU0TFRJdU5ESTRZVEl1TVRJeUlESXVNVEl5SURBZ01DQXdMVEV1T1RjeklEQk1OaTR6T1RZZ01qRXVNREZoTGpVekxqVXpJREFnTUNBeExTNDNOeTB1TlRac0xqZzRNUzAxTGpFek9XRXlMakV5TWlBeUxqRXlNaUF3SURBZ01DMHVOakV4TFRFdU9EYzVUREl1TVRZZ09TNDNPVFZoTGpVekxqVXpJREFnTUNBeElDNHlPVFF0TGprd05tdzFMakUyTlMwdU56VTFZVEl1TVRJeUlESXVNVEl5SURBZ01DQXdJREV1TlRrM0xURXVNVFo2SWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc3RhclxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFN0YXIgPSBjcmVhdGVMdWNpZGVJY29uKCdTdGFyJywgW1xuICBbXG4gICAgJ3BhdGgnLFxuICAgIHtcbiAgICAgIGQ6ICdNMTEuNTI1IDIuMjk1YS41My41MyAwIDAgMSAuOTUgMGwyLjMxIDQuNjc5YTIuMTIzIDIuMTIzIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy43MzYgMy42MzhhMi4xMjMgMi4xMjMgMCAwIDAtLjYxMSAxLjg3OGwuODgyIDUuMTRhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIyIDIuMTIyIDAgMCAwLTEuOTczIDBMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyMiAyLjEyMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTIuMTIyIDIuMTIyIDAgMCAwIDEuNTk3LTEuMTZ6JyxcbiAgICAgIGtleTogJ3IwNHM3cycsXG4gICAgfSxcbiAgXSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBTdGFyO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/star.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash-2.js":
/*!*************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/trash-2.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Trash2)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Trash2 = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Trash2\", [\n [\n \"path\",\n {\n d: \"M3 6h18\",\n key: \"d0wm0j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\",\n key: \"4alrt4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\",\n key: \"v07s0e\"\n }\n ],\n [\n \"line\",\n {\n x1: \"10\",\n x2: \"10\",\n y1: \"11\",\n y2: \"17\",\n key: \"1uufr5\"\n }\n ],\n [\n \"line\",\n {\n x1: \"14\",\n x2: \"14\",\n y1: \"11\",\n y2: \"17\",\n key: \"xtxkd\"\n }\n ]\n]);\n //# sourceMappingURL=trash-2.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvdHJhc2gtMi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLGVBQVMsZ0VBQWdCLENBQUMsUUFBVTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXlDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBc0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ25FO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRTtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFTO0tBQUE7Q0FDbEUiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9pY29ucy90cmFzaC0yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJhc2gyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUEyYURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TQTJkakUwWXpBZ01TMHhJREl0TWlBeVNEZGpMVEVnTUMweUxURXRNaTB5VmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ05sWTBZekF0TVNBeExUSWdNaTB5YURSak1TQXdJRElnTVNBeUlESjJNaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVEFpSUhneVBTSXhNQ0lnZVRFOUlqRXhJaUI1TWowaU1UY2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRTBJaUI0TWowaU1UUWlJSGt4UFNJeE1TSWdlVEk5SWpFM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyYXNoLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUcmFzaDIgPSBjcmVhdGVMdWNpZGVJY29uKCdUcmFzaDInLCBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDZoMTgnLCBrZXk6ICdkMHdtMGonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgNnYxNGMwIDEtMSAyLTIgMkg3Yy0xIDAtMi0xLTItMlY2Jywga2V5OiAnNGFscnQ0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggNlY0YzAtMSAxLTIgMi0yaDRjMSAwIDIgMSAyIDJ2MicsIGtleTogJ3YwN3MwZScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMCcsIHgyOiAnMTAnLCB5MTogJzExJywgeTI6ICcxNycsIGtleTogJzF1dWZyNScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxNCcsIHgyOiAnMTQnLCB5MTogJzExJywgeTI6ICcxNycsIGtleTogJ3h0eGtkJyB9XSxcbl0pO1xuXG5leHBvcnQgZGVmYXVsdCBUcmFzaDI7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash-2.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash.js":
/*!***********************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/trash.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Trash)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst Trash = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Trash\", [\n [\n \"path\",\n {\n d: \"M3 6h18\",\n key: \"d0wm0j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\",\n key: \"4alrt4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\",\n key: \"v07s0e\"\n }\n ]\n]);\n //# sourceMappingURL=trash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvdHJhc2guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFhTSxjQUFRLGdFQUFnQixDQUFDLE9BQVM7SUFDdEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3hDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF5QztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdEU7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXNDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUNwRSIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2ljb25zL3RyYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJhc2hcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QTJhREU0SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB4T1NBMmRqRTBZekFnTVMweElESXRNaUF5U0RkakxURWdNQzB5TFRFdE1pMHlWallpSUM4K0NpQWdQSEJoZEdnZ1pEMGlUVGdnTmxZMFl6QXRNU0F4TFRJZ01pMHlhRFJqTVNBd0lESWdNU0F5SURKMk1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmFzaFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRyYXNoID0gY3JlYXRlTHVjaWRlSWNvbignVHJhc2gnLCBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDZoMTgnLCBrZXk6ICdkMHdtMGonIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTkgNnYxNGMwIDEtMSAyLTIgMkg3Yy0xIDAtMi0xLTItMlY2Jywga2V5OiAnNGFscnQ0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggNlY0YzAtMSAxLTIgMi0yaDRjMSAwIDIgMSAyIDJ2MicsIGtleTogJ3YwN3MwZScgfV0sXG5dKTtcblxuZXhwb3J0IGRlZmF1bHQgVHJhc2g7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js":
/*!*******************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/icons/x.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ X)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst X = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"X\", [\n [\n \"path\",\n {\n d: \"M18 6 6 18\",\n key: \"1bl5f8\"\n }\n ],\n [\n \"path\",\n {\n d: \"m6 6 12 12\",\n key: \"d8bk6v\"\n }\n ]\n]);\n //# sourceMappingURL=x.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMveC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWFNLFVBQUksZ0VBQWdCLENBQUMsR0FBSztJQUM5QjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDM0M7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzVDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvaWNvbnMveC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFhcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UZ2dOaUEySURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SW0wMklEWWdNVElnTVRJaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3hcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBYID0gY3JlYXRlTHVjaWRlSWNvbignWCcsIFtcbiAgWydwYXRoJywgeyBkOiAnTTE4IDYgNiAxOCcsIGtleTogJzFibDVmOCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ202IDYgMTIgMTInLCBrZXk6ICdkOGJrNnYnIH1dLFxuXSk7XG5cbmV4cG9ydCBkZWZhdWx0IFg7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/x.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js":
/*!****************************************************************!*\
!*** ./node_modules/lucide-react/dist/esm/shared/src/utils.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mergeClasses: () => (/* binding */ mergeClasses),\n/* harmony export */ toKebabCase: () => (/* binding */ toKebabCase)\n/* harmony export */ });\n/**\n * @license lucide-react v0.454.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ const toKebabCase = (string)=>string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = function() {\n for(var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++){\n classes[_key] = arguments[_key];\n }\n return classes.filter((className, index, array)=>{\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n }).join(\" \").trim();\n};\n //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0lBUWEsb0JBQWMsQ0FBQyxNQUMxQixVQUFPLFFBQVEsb0JBQXNCLFNBQU8sRUFBRSxXQUFZO0FBK0IvQyxtQkFBZSxJQUEyQzs7UUFBQSxPQUNyRTs7V0FBQSxRQUNHLE9BQU8sQ0FBQyxXQUFXLE9BQU8sS0FBVTtRQUVqQyxlQUFRLFNBQVMsRUFDaEIsWUFBcUIsWUFBVyxDQUNqQyxXQUFNLE9BQVEsRUFBUyxTQUFNO0lBRWpDLENBQUMsQ0FDQSxNQUFLLENBQUcsSUFDUixDQUFLIiwic291cmNlcyI6WyIvc2hhcmVkL3NyYy91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYW1lbFRvUGFzY2FsIH0gZnJvbSAnLi91dGlsaXR5LXR5cGVzJztcblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8ga2ViYWIgY2FzZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEga2ViYWJpemVkIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgdG9LZWJhYkNhc2UgPSAoc3RyaW5nOiBzdHJpbmcpID0+XG4gIHN0cmluZy5yZXBsYWNlKC8oW2EtejAtOV0pKFtBLVpdKS9nLCAnJDEtJDInKS50b0xvd2VyQ2FzZSgpO1xuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBjYW1lbCBjYXNlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gQSBjYW1lbGl6ZWQgc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCB0b0NhbWVsQ2FzZSA9IDxUIGV4dGVuZHMgc3RyaW5nPihzdHJpbmc6IFQpID0+XG4gIHN0cmluZy5yZXBsYWNlKC9eKFtBLVpdKXxbXFxzLV9dKyhcXHcpL2csIChtYXRjaCwgcDEsIHAyKSA9PlxuICAgIHAyID8gcDIudG9VcHBlckNhc2UoKSA6IHAxLnRvTG93ZXJDYXNlKCksXG4gICk7XG5cbi8qKlxuICogQ29udmVydHMgc3RyaW5nIHRvIHBhc2NhbCBjYXNlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gQSBwYXNjYWxpemVkIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgdG9QYXNjYWxDYXNlID0gPFQgZXh0ZW5kcyBzdHJpbmc+KHN0cmluZzogVCk6IENhbWVsVG9QYXNjYWw8VD4gPT4ge1xuICBjb25zdCBjYW1lbENhc2UgPSB0b0NhbWVsQ2FzZShzdHJpbmcpO1xuXG4gIHJldHVybiAoY2FtZWxDYXNlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2FtZWxDYXNlLnNsaWNlKDEpKSBhcyBDYW1lbFRvUGFzY2FsPFQ+O1xufTtcblxuLyoqXG4gKiBNZXJnZXMgY2xhc3NlcyBpbnRvIGEgc2luZ2xlIHN0cmluZ1xuICpcbiAqIEBwYXJhbSB7YXJyYXl9IGNsYXNzZXNcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEgc3RyaW5nIG9mIGNsYXNzZXNcbiAqL1xuZXhwb3J0IGNvbnN0IG1lcmdlQ2xhc3NlcyA9IDxDbGFzc1R5cGUgPSBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPiguLi5jbGFzc2VzOiBDbGFzc1R5cGVbXSkgPT5cbiAgY2xhc3Nlc1xuICAgIC5maWx0ZXIoKGNsYXNzTmFtZSwgaW5kZXgsIGFycmF5KSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBCb29sZWFuKGNsYXNzTmFtZSkgJiZcbiAgICAgICAgKGNsYXNzTmFtZSBhcyBzdHJpbmcpLnRyaW0oKSAhPT0gJycgJiZcbiAgICAgICAgYXJyYXkuaW5kZXhPZihjbGFzc05hbWUpID09PSBpbmRleFxuICAgICAgKTtcbiAgICB9KVxuICAgIC5qb2luKCcgJylcbiAgICAudHJpbSgpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/next-auth/client/_utils.js":
/*!*************************************************!*\
!*** ./node_modules/next-auth/client/_utils.js ***!
\*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.BroadcastChannel = BroadcastChannel;\nexports.apiBaseUrl = apiBaseUrl;\nexports.fetchData = fetchData;\nexports.now = now;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/regenerator/index.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction fetchData(_x, _x2, _x3) {\n return _fetchData.apply(this, arguments);\n}\nfunction _fetchData() {\n _fetchData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(path, __NEXTAUTH, logger) {\n var _ref,\n ctx,\n _ref$req,\n req,\n url,\n _req$headers,\n options,\n res,\n data,\n _args = arguments;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _ref = _args.length > 3 && _args[3] !== undefined ? _args[3] : {}, ctx = _ref.ctx, _ref$req = _ref.req, req = _ref$req === void 0 ? ctx === null || ctx === void 0 ? void 0 : ctx.req : _ref$req;\n url = \"\".concat(apiBaseUrl(__NEXTAUTH), \"/\").concat(path);\n _context.prev = 2;\n options = {\n headers: _objectSpread({\n \"Content-Type\": \"application/json\"\n }, req !== null && req !== void 0 && (_req$headers = req.headers) !== null && _req$headers !== void 0 && _req$headers.cookie ? {\n cookie: req.headers.cookie\n } : {})\n };\n if (req !== null && req !== void 0 && req.body) {\n options.body = JSON.stringify(req.body);\n options.method = \"POST\";\n }\n _context.next = 7;\n return fetch(url, options);\n case 7:\n res = _context.sent;\n _context.next = 10;\n return res.json();\n case 10:\n data = _context.sent;\n if (res.ok) {\n _context.next = 13;\n break;\n }\n throw data;\n case 13:\n return _context.abrupt(\"return\", Object.keys(data).length > 0 ? data : null);\n case 16:\n _context.prev = 16;\n _context.t0 = _context[\"catch\"](2);\n logger.error(\"CLIENT_FETCH_ERROR\", {\n error: _context.t0,\n url: url\n });\n return _context.abrupt(\"return\", null);\n case 20:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[2, 16]]);\n }));\n return _fetchData.apply(this, arguments);\n}\nfunction apiBaseUrl(__NEXTAUTH) {\n if (typeof window === \"undefined\") {\n return \"\".concat(__NEXTAUTH.baseUrlServer).concat(__NEXTAUTH.basePathServer);\n }\n return __NEXTAUTH.basePath;\n}\nfunction now() {\n return Math.floor(Date.now() / 1000);\n}\nfunction BroadcastChannel() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"nextauth.message\";\n return {\n receive: function receive(onReceive) {\n var handler = function handler(event) {\n var _event$newValue;\n if (event.key !== name) return;\n var message = JSON.parse((_event$newValue = event.newValue) !== null && _event$newValue !== void 0 ? _event$newValue : \"{}\");\n if ((message === null || message === void 0 ? void 0 : message.event) !== \"session\" || !(message !== null && message !== void 0 && message.data)) return;\n onReceive(message);\n };\n window.addEventListener(\"storage\", handler);\n return function () {\n return window.removeEventListener(\"storage\", handler);\n };\n },\n post: function post(message) {\n if (typeof window === \"undefined\") return;\n try {\n localStorage.setItem(name, JSON.stringify(_objectSpread(_objectSpread({}, message), {}, {\n timestamp: now()\n })));\n } catch (_unused) {}\n }\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY2xpZW50L191dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw2QkFBNkIsbUJBQU8sQ0FBQyx3SUFBOEM7QUFDbkYsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysd0JBQXdCO0FBQ3hCLGtCQUFrQjtBQUNsQixpQkFBaUI7QUFDakIsV0FBVztBQUNYLDBDQUEwQyxtQkFBTyxDQUFDLDBHQUE0QjtBQUM5RSw4Q0FBOEMsbUJBQU8sQ0FBQywwSEFBdUM7QUFDN0YsZ0RBQWdELG1CQUFPLENBQUMsOEhBQXlDO0FBQ2pHLHlCQUF5Qix3QkFBd0Isb0NBQW9DLHlDQUF5QyxrQ0FBa0MsMERBQTBELDBCQUEwQjtBQUNwUCw0QkFBNEIsZ0JBQWdCLHNCQUFzQixPQUFPLGtEQUFrRCxzREFBc0QsNENBQTRDLG1KQUFtSixxRUFBcUUsS0FBSztBQUMxYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyRUFBMkU7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLGNBQWMsSUFBSTtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtJQUFrSTtBQUNsSTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxnRkFBZ0YsY0FBYztBQUM5RjtBQUNBLFNBQVM7QUFDVCxRQUFRO0FBQ1I7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY2xpZW50L191dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5Ccm9hZGNhc3RDaGFubmVsID0gQnJvYWRjYXN0Q2hhbm5lbDtcbmV4cG9ydHMuYXBpQmFzZVVybCA9IGFwaUJhc2VVcmw7XG5leHBvcnRzLmZldGNoRGF0YSA9IGZldGNoRGF0YTtcbmV4cG9ydHMubm93ID0gbm93O1xudmFyIF9yZWdlbmVyYXRvciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yXCIpKTtcbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eVwiKSk7XG52YXIgX2FzeW5jVG9HZW5lcmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yXCIpKTtcbmZ1bmN0aW9uIG93bktleXMoZSwgcikgeyB2YXIgdCA9IE9iamVjdC5rZXlzKGUpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgbyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7IHIgJiYgKG8gPSBvLmZpbHRlcihmdW5jdGlvbiAocikgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCByKS5lbnVtZXJhYmxlOyB9KSksIHQucHVzaC5hcHBseSh0LCBvKTsgfSByZXR1cm4gdDsgfVxuZnVuY3Rpb24gX29iamVjdFNwcmVhZChlKSB7IGZvciAodmFyIHIgPSAxOyByIDwgYXJndW1lbnRzLmxlbmd0aDsgcisrKSB7IHZhciB0ID0gbnVsbCAhPSBhcmd1bWVudHNbcl0gPyBhcmd1bWVudHNbcl0gOiB7fTsgciAlIDIgPyBvd25LZXlzKE9iamVjdCh0KSwgITApLmZvckVhY2goZnVuY3Rpb24gKHIpIHsgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoZSwgciwgdFtyXSk7IH0pIDogT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMgPyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSkgOiBvd25LZXlzKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbiAocikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwgciwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LCByKSk7IH0pOyB9IHJldHVybiBlOyB9XG5mdW5jdGlvbiBmZXRjaERhdGEoX3gsIF94MiwgX3gzKSB7XG4gIHJldHVybiBfZmV0Y2hEYXRhLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiBfZmV0Y2hEYXRhKCkge1xuICBfZmV0Y2hEYXRhID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMi5kZWZhdWx0KShfcmVnZW5lcmF0b3IuZGVmYXVsdC5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUocGF0aCwgX19ORVhUQVVUSCwgbG9nZ2VyKSB7XG4gICAgdmFyIF9yZWYsXG4gICAgICBjdHgsXG4gICAgICBfcmVmJHJlcSxcbiAgICAgIHJlcSxcbiAgICAgIHVybCxcbiAgICAgIF9yZXEkaGVhZGVycyxcbiAgICAgIG9wdGlvbnMsXG4gICAgICByZXMsXG4gICAgICBkYXRhLFxuICAgICAgX2FyZ3MgPSBhcmd1bWVudHM7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvci5kZWZhdWx0LndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHtcbiAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBfcmVmID0gX2FyZ3MubGVuZ3RoID4gMyAmJiBfYXJnc1szXSAhPT0gdW5kZWZpbmVkID8gX2FyZ3NbM10gOiB7fSwgY3R4ID0gX3JlZi5jdHgsIF9yZWYkcmVxID0gX3JlZi5yZXEsIHJlcSA9IF9yZWYkcmVxID09PSB2b2lkIDAgPyBjdHggPT09IG51bGwgfHwgY3R4ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjdHgucmVxIDogX3JlZiRyZXE7XG4gICAgICAgICAgdXJsID0gXCJcIi5jb25jYXQoYXBpQmFzZVVybChfX05FWFRBVVRIKSwgXCIvXCIpLmNvbmNhdChwYXRoKTtcbiAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMjtcbiAgICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgICAgaGVhZGVyczogX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiXG4gICAgICAgICAgICB9LCByZXEgIT09IG51bGwgJiYgcmVxICE9PSB2b2lkIDAgJiYgKF9yZXEkaGVhZGVycyA9IHJlcS5oZWFkZXJzKSAhPT0gbnVsbCAmJiBfcmVxJGhlYWRlcnMgIT09IHZvaWQgMCAmJiBfcmVxJGhlYWRlcnMuY29va2llID8ge1xuICAgICAgICAgICAgICBjb29raWU6IHJlcS5oZWFkZXJzLmNvb2tpZVxuICAgICAgICAgICAgfSA6IHt9KVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKHJlcSAhPT0gbnVsbCAmJiByZXEgIT09IHZvaWQgMCAmJiByZXEuYm9keSkge1xuICAgICAgICAgICAgb3B0aW9ucy5ib2R5ID0gSlNPTi5zdHJpbmdpZnkocmVxLmJvZHkpO1xuICAgICAgICAgICAgb3B0aW9ucy5tZXRob2QgPSBcIlBPU1RcIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgX2NvbnRleHQubmV4dCA9IDc7XG4gICAgICAgICAgcmV0dXJuIGZldGNoKHVybCwgb3B0aW9ucyk7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICByZXMgPSBfY29udGV4dC5zZW50O1xuICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAxMDtcbiAgICAgICAgICByZXR1cm4gcmVzLmpzb24oKTtcbiAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICBkYXRhID0gX2NvbnRleHQuc2VudDtcbiAgICAgICAgICBpZiAocmVzLm9rKSB7XG4gICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMTM7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZGF0YTtcbiAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KFwicmV0dXJuXCIsIE9iamVjdC5rZXlzKGRhdGEpLmxlbmd0aCA+IDAgPyBkYXRhIDogbnVsbCk7XG4gICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgX2NvbnRleHQucHJldiA9IDE2O1xuICAgICAgICAgIF9jb250ZXh0LnQwID0gX2NvbnRleHRbXCJjYXRjaFwiXSgyKTtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoXCJDTElFTlRfRkVUQ0hfRVJST1JcIiwge1xuICAgICAgICAgICAgZXJyb3I6IF9jb250ZXh0LnQwLFxuICAgICAgICAgICAgdXJsOiB1cmxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KFwicmV0dXJuXCIsIG51bGwpO1xuICAgICAgICBjYXNlIDIwOlxuICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTtcbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlLCBudWxsLCBbWzIsIDE2XV0pO1xuICB9KSk7XG4gIHJldHVybiBfZmV0Y2hEYXRhLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiBhcGlCYXNlVXJsKF9fTkVYVEFVVEgpIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4gXCJcIi5jb25jYXQoX19ORVhUQVVUSC5iYXNlVXJsU2VydmVyKS5jb25jYXQoX19ORVhUQVVUSC5iYXNlUGF0aFNlcnZlcik7XG4gIH1cbiAgcmV0dXJuIF9fTkVYVEFVVEguYmFzZVBhdGg7XG59XG5mdW5jdGlvbiBub3coKSB7XG4gIHJldHVybiBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcbn1cbmZ1bmN0aW9uIEJyb2FkY2FzdENoYW5uZWwoKSB7XG4gIHZhciBuYW1lID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBcIm5leHRhdXRoLm1lc3NhZ2VcIjtcbiAgcmV0dXJuIHtcbiAgICByZWNlaXZlOiBmdW5jdGlvbiByZWNlaXZlKG9uUmVjZWl2ZSkge1xuICAgICAgdmFyIGhhbmRsZXIgPSBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50KSB7XG4gICAgICAgIHZhciBfZXZlbnQkbmV3VmFsdWU7XG4gICAgICAgIGlmIChldmVudC5rZXkgIT09IG5hbWUpIHJldHVybjtcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSBKU09OLnBhcnNlKChfZXZlbnQkbmV3VmFsdWUgPSBldmVudC5uZXdWYWx1ZSkgIT09IG51bGwgJiYgX2V2ZW50JG5ld1ZhbHVlICE9PSB2b2lkIDAgPyBfZXZlbnQkbmV3VmFsdWUgOiBcInt9XCIpO1xuICAgICAgICBpZiAoKG1lc3NhZ2UgPT09IG51bGwgfHwgbWVzc2FnZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogbWVzc2FnZS5ldmVudCkgIT09IFwic2Vzc2lvblwiIHx8ICEobWVzc2FnZSAhPT0gbnVsbCAmJiBtZXNzYWdlICE9PSB2b2lkIDAgJiYgbWVzc2FnZS5kYXRhKSkgcmV0dXJuO1xuICAgICAgICBvblJlY2VpdmUobWVzc2FnZSk7XG4gICAgICB9O1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzdG9yYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic3RvcmFnZVwiLCBoYW5kbGVyKTtcbiAgICAgIH07XG4gICAgfSxcbiAgICBwb3N0OiBmdW5jdGlvbiBwb3N0KG1lc3NhZ2UpIHtcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XG4gICAgICB0cnkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShuYW1lLCBKU09OLnN0cmluZ2lmeShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG1lc3NhZ2UpLCB7fSwge1xuICAgICAgICAgIHRpbWVzdGFtcDogbm93KClcbiAgICAgICAgfSkpKTtcbiAgICAgIH0gY2F0Y2ggKF91bnVzZWQpIHt9XG4gICAgfVxuICB9O1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next-auth/client/_utils.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/next-auth/core/errors.js":
/*!***********************************************!*\
!*** ./node_modules/next-auth/core/errors.js ***!
\***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.UnsupportedStrategy = exports.UnknownError = exports.OAuthCallbackError = exports.MissingSecret = exports.MissingAuthorize = exports.MissingAdapterMethods = exports.MissingAdapter = exports.MissingAPIRoute = exports.InvalidCallbackUrl = exports.AccountNotLinkedError = void 0;\nexports.adapterErrorHandler = adapterErrorHandler;\nexports.capitalize = capitalize;\nexports.eventsErrorHandler = eventsErrorHandler;\nexports.upperSnake = upperSnake;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/regenerator/index.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/createClass.js\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\"));\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/getPrototypeOf.js\"));\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/inherits.js\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\"));\nfunction _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nvar UnknownError = exports.UnknownError = function (_Error) {\n function UnknownError(error) {\n var _message;\n var _this;\n (0, _classCallCheck2.default)(this, UnknownError);\n _this = _callSuper(this, UnknownError, [(_message = error === null || error === void 0 ? void 0 : error.message) !== null && _message !== void 0 ? _message : error]);\n _this.name = \"UnknownError\";\n _this.code = error.code;\n if (error instanceof Error) {\n _this.stack = error.stack;\n }\n return _this;\n }\n (0, _inherits2.default)(UnknownError, _Error);\n return (0, _createClass2.default)(UnknownError, [{\n key: \"toJSON\",\n value: function toJSON() {\n return {\n name: this.name,\n message: this.message,\n stack: this.stack\n };\n }\n }]);\n}((0, _wrapNativeSuper2.default)(Error));\nvar OAuthCallbackError = exports.OAuthCallbackError = function (_UnknownError) {\n function OAuthCallbackError() {\n var _this2;\n (0, _classCallCheck2.default)(this, OAuthCallbackError);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _callSuper(this, OAuthCallbackError, [].concat(args));\n (0, _defineProperty2.default)(_this2, \"name\", \"OAuthCallbackError\");\n return _this2;\n }\n (0, _inherits2.default)(OAuthCallbackError, _UnknownError);\n return (0, _createClass2.default)(OAuthCallbackError);\n}(UnknownError);\nvar AccountNotLinkedError = exports.AccountNotLinkedError = function (_UnknownError2) {\n function AccountNotLinkedError() {\n var _this3;\n (0, _classCallCheck2.default)(this, AccountNotLinkedError);\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n _this3 = _callSuper(this, AccountNotLinkedError, [].concat(args));\n (0, _defineProperty2.default)(_this3, \"name\", \"AccountNotLinkedError\");\n return _this3;\n }\n (0, _inherits2.default)(AccountNotLinkedError, _UnknownError2);\n return (0, _createClass2.default)(AccountNotLinkedError);\n}(UnknownError);\nvar MissingAPIRoute = exports.MissingAPIRoute = function (_UnknownError3) {\n function MissingAPIRoute() {\n var _this4;\n (0, _classCallCheck2.default)(this, MissingAPIRoute);\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n _this4 = _callSuper(this, MissingAPIRoute, [].concat(args));\n (0, _defineProperty2.default)(_this4, \"name\", \"MissingAPIRouteError\");\n (0, _defineProperty2.default)(_this4, \"code\", \"MISSING_NEXTAUTH_API_ROUTE_ERROR\");\n return _this4;\n }\n (0, _inherits2.default)(MissingAPIRoute, _UnknownError3);\n return (0, _createClass2.default)(MissingAPIRoute);\n}(UnknownError);\nvar MissingSecret = exports.MissingSecret = function (_UnknownError4) {\n function MissingSecret() {\n var _this5;\n (0, _classCallCheck2.default)(this, MissingSecret);\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n _this5 = _callSuper(this, MissingSecret, [].concat(args));\n (0, _defineProperty2.default)(_this5, \"name\", \"MissingSecretError\");\n (0, _defineProperty2.default)(_this5, \"code\", \"NO_SECRET\");\n return _this5;\n }\n (0, _inherits2.default)(MissingSecret, _UnknownError4);\n return (0, _createClass2.default)(MissingSecret);\n}(UnknownError);\nvar MissingAuthorize = exports.MissingAuthorize = function (_UnknownError5) {\n function MissingAuthorize() {\n var _this6;\n (0, _classCallCheck2.default)(this, MissingAuthorize);\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n _this6 = _callSuper(this, MissingAuthorize, [].concat(args));\n (0, _defineProperty2.default)(_this6, \"name\", \"MissingAuthorizeError\");\n (0, _defineProperty2.default)(_this6, \"code\", \"CALLBACK_CREDENTIALS_HANDLER_ERROR\");\n return _this6;\n }\n (0, _inherits2.default)(MissingAuthorize, _UnknownError5);\n return (0, _createClass2.default)(MissingAuthorize);\n}(UnknownError);\nvar MissingAdapter = exports.MissingAdapter = function (_UnknownError6) {\n function MissingAdapter() {\n var _this7;\n (0, _classCallCheck2.default)(this, MissingAdapter);\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n _this7 = _callSuper(this, MissingAdapter, [].concat(args));\n (0, _defineProperty2.default)(_this7, \"name\", \"MissingAdapterError\");\n (0, _defineProperty2.default)(_this7, \"code\", \"EMAIL_REQUIRES_ADAPTER_ERROR\");\n return _this7;\n }\n (0, _inherits2.default)(MissingAdapter, _UnknownError6);\n return (0, _createClass2.default)(MissingAdapter);\n}(UnknownError);\nvar MissingAdapterMethods = exports.MissingAdapterMethods = function (_UnknownError7) {\n function MissingAdapterMethods() {\n var _this8;\n (0, _classCallCheck2.default)(this, MissingAdapterMethods);\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n _this8 = _callSuper(this, MissingAdapterMethods, [].concat(args));\n (0, _defineProperty2.default)(_this8, \"name\", \"MissingAdapterMethodsError\");\n (0, _defineProperty2.default)(_this8, \"code\", \"MISSING_ADAPTER_METHODS_ERROR\");\n return _this8;\n }\n (0, _inherits2.default)(MissingAdapterMethods, _UnknownError7);\n return (0, _createClass2.default)(MissingAdapterMethods);\n}(UnknownError);\nvar UnsupportedStrategy = exports.UnsupportedStrategy = function (_UnknownError8) {\n function UnsupportedStrategy() {\n var _this9;\n (0, _classCallCheck2.default)(this, UnsupportedStrategy);\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n _this9 = _callSuper(this, UnsupportedStrategy, [].concat(args));\n (0, _defineProperty2.default)(_this9, \"name\", \"UnsupportedStrategyError\");\n (0, _defineProperty2.default)(_this9, \"code\", \"CALLBACK_CREDENTIALS_JWT_ERROR\");\n return _this9;\n }\n (0, _inherits2.default)(UnsupportedStrategy, _UnknownError8);\n return (0, _createClass2.default)(UnsupportedStrategy);\n}(UnknownError);\nvar InvalidCallbackUrl = exports.InvalidCallbackUrl = function (_UnknownError9) {\n function InvalidCallbackUrl() {\n var _this10;\n (0, _classCallCheck2.default)(this, InvalidCallbackUrl);\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n _this10 = _callSuper(this, InvalidCallbackUrl, [].concat(args));\n (0, _defineProperty2.default)(_this10, \"name\", \"InvalidCallbackUrl\");\n (0, _defineProperty2.default)(_this10, \"code\", \"INVALID_CALLBACK_URL_ERROR\");\n return _this10;\n }\n (0, _inherits2.default)(InvalidCallbackUrl, _UnknownError9);\n return (0, _createClass2.default)(InvalidCallbackUrl);\n}(UnknownError);\nfunction upperSnake(s) {\n return s.replace(/([A-Z])/g, \"_$1\").toUpperCase();\n}\nfunction capitalize(s) {\n return \"\".concat(s[0].toUpperCase()).concat(s.slice(1));\n}\nfunction eventsErrorHandler(methods, logger) {\n return Object.keys(methods).reduce(function (acc, name) {\n acc[name] = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {\n var method,\n _args = arguments;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n method = methods[name];\n _context.next = 4;\n return method.apply(void 0, _args);\n case 4:\n return _context.abrupt(\"return\", _context.sent);\n case 7:\n _context.prev = 7;\n _context.t0 = _context[\"catch\"](0);\n logger.error(\"\".concat(upperSnake(name), \"_EVENT_ERROR\"), _context.t0);\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 7]]);\n }));\n return acc;\n }, {});\n}\nfunction adapterErrorHandler(adapter, logger) {\n if (!adapter) return;\n return Object.keys(adapter).reduce(function (acc, name) {\n acc[name] = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {\n var _len10,\n args,\n _key10,\n method,\n e,\n _args2 = arguments;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n for (_len10 = _args2.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = _args2[_key10];\n }\n logger.debug(\"adapter_\".concat(name), {\n args: args\n });\n method = adapter[name];\n _context2.next = 6;\n return method.apply(void 0, args);\n case 6:\n return _context2.abrupt(\"return\", _context2.sent);\n case 9:\n _context2.prev = 9;\n _context2.t0 = _context2[\"catch\"](0);\n logger.error(\"adapter_error_\".concat(name), _context2.t0);\n e = new UnknownError(_context2.t0);\n e.name = \"\".concat(capitalize(name), \"Error\");\n throw e;\n case 15:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 9]]);\n }));\n return acc;\n }, {});\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY29yZS9lcnJvcnMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsNkJBQTZCLG1CQUFPLENBQUMsd0lBQThDO0FBQ25GLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDJCQUEyQixHQUFHLG9CQUFvQixHQUFHLDBCQUEwQixHQUFHLHFCQUFxQixHQUFHLHdCQUF3QixHQUFHLDZCQUE2QixHQUFHLHNCQUFzQixHQUFHLHVCQUF1QixHQUFHLDBCQUEwQixHQUFHLDZCQUE2QjtBQUNsUiwyQkFBMkI7QUFDM0Isa0JBQWtCO0FBQ2xCLDBCQUEwQjtBQUMxQixrQkFBa0I7QUFDbEIsMENBQTBDLG1CQUFPLENBQUMsMEdBQTRCO0FBQzlFLGdEQUFnRCxtQkFBTyxDQUFDLDhIQUF5QztBQUNqRyw4Q0FBOEMsbUJBQU8sQ0FBQywwSEFBdUM7QUFDN0YsOENBQThDLG1CQUFPLENBQUMsMEhBQXVDO0FBQzdGLDJDQUEyQyxtQkFBTyxDQUFDLG9IQUFvQztBQUN2Rix5REFBeUQsbUJBQU8sQ0FBQyxnSkFBa0Q7QUFDbkgsOENBQThDLG1CQUFPLENBQUMsMEhBQXVDO0FBQzdGLHdDQUF3QyxtQkFBTyxDQUFDLDhHQUFpQztBQUNqRiwrQ0FBK0MsbUJBQU8sQ0FBQyw0SEFBd0M7QUFDL0YsK0JBQStCO0FBQy9CLHVDQUF1QyxNQUFNLHFGQUFxRixNQUFNLGFBQWEsMkVBQTJFLGFBQWE7QUFDN08sbUJBQW1CLG9CQUFvQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxDQUFDO0FBQ0QseUJBQXlCLDBCQUEwQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQSx3RUFBd0UsYUFBYTtBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDRCQUE0Qiw2QkFBNkI7QUFDekQ7QUFDQTtBQUNBO0FBQ0EsMkVBQTJFLGVBQWU7QUFDMUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxzQkFBc0IsdUJBQXVCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxvQkFBb0IscUJBQXFCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx1QkFBdUIsd0JBQXdCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxxQkFBcUIsc0JBQXNCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCw0QkFBNEIsNkJBQTZCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCwwQkFBMEIsMkJBQTJCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx5QkFBeUIsMEJBQTBCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQSxHQUFHLElBQUk7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrRUFBK0UsaUJBQWlCO0FBQ2hHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBLEdBQUcsSUFBSTtBQUNQIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY29yZS9lcnJvcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuVW5zdXBwb3J0ZWRTdHJhdGVneSA9IGV4cG9ydHMuVW5rbm93bkVycm9yID0gZXhwb3J0cy5PQXV0aENhbGxiYWNrRXJyb3IgPSBleHBvcnRzLk1pc3NpbmdTZWNyZXQgPSBleHBvcnRzLk1pc3NpbmdBdXRob3JpemUgPSBleHBvcnRzLk1pc3NpbmdBZGFwdGVyTWV0aG9kcyA9IGV4cG9ydHMuTWlzc2luZ0FkYXB0ZXIgPSBleHBvcnRzLk1pc3NpbmdBUElSb3V0ZSA9IGV4cG9ydHMuSW52YWxpZENhbGxiYWNrVXJsID0gZXhwb3J0cy5BY2NvdW50Tm90TGlua2VkRXJyb3IgPSB2b2lkIDA7XG5leHBvcnRzLmFkYXB0ZXJFcnJvckhhbmRsZXIgPSBhZGFwdGVyRXJyb3JIYW5kbGVyO1xuZXhwb3J0cy5jYXBpdGFsaXplID0gY2FwaXRhbGl6ZTtcbmV4cG9ydHMuZXZlbnRzRXJyb3JIYW5kbGVyID0gZXZlbnRzRXJyb3JIYW5kbGVyO1xuZXhwb3J0cy51cHBlclNuYWtlID0gdXBwZXJTbmFrZTtcbnZhciBfcmVnZW5lcmF0b3IgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvclwiKSk7XG52YXIgX2FzeW5jVG9HZW5lcmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yXCIpKTtcbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eVwiKSk7XG52YXIgX2NsYXNzQ2FsbENoZWNrMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2tcIikpO1xudmFyIF9jcmVhdGVDbGFzczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzXCIpKTtcbnZhciBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm5cIikpO1xudmFyIF9nZXRQcm90b3R5cGVPZjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2dldFByb3RvdHlwZU9mXCIpKTtcbnZhciBfaW5oZXJpdHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0c1wiKSk7XG52YXIgX3dyYXBOYXRpdmVTdXBlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3dyYXBOYXRpdmVTdXBlclwiKSk7XG5mdW5jdGlvbiBfY2FsbFN1cGVyKHQsIG8sIGUpIHsgcmV0dXJuIG8gPSAoMCwgX2dldFByb3RvdHlwZU9mMi5kZWZhdWx0KShvKSwgKDAsIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMi5kZWZhdWx0KSh0LCBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgPyBSZWZsZWN0LmNvbnN0cnVjdChvLCBlIHx8IFtdLCAoMCwgX2dldFByb3RvdHlwZU9mMi5kZWZhdWx0KSh0KS5jb25zdHJ1Y3RvcikgOiBvLmFwcGx5KHQsIGUpKTsgfVxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgdHJ5IHsgdmFyIHQgPSAhQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyB9IGNhdGNoICh0KSB7fSByZXR1cm4gKF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBmdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyByZXR1cm4gISF0OyB9KSgpOyB9XG52YXIgVW5rbm93bkVycm9yID0gZXhwb3J0cy5Vbmtub3duRXJyb3IgPSBmdW5jdGlvbiAoX0Vycm9yKSB7XG4gIGZ1bmN0aW9uIFVua25vd25FcnJvcihlcnJvcikge1xuICAgIHZhciBfbWVzc2FnZTtcbiAgICB2YXIgX3RoaXM7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgVW5rbm93bkVycm9yKTtcbiAgICBfdGhpcyA9IF9jYWxsU3VwZXIodGhpcywgVW5rbm93bkVycm9yLCBbKF9tZXNzYWdlID0gZXJyb3IgPT09IG51bGwgfHwgZXJyb3IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGVycm9yLm1lc3NhZ2UpICE9PSBudWxsICYmIF9tZXNzYWdlICE9PSB2b2lkIDAgPyBfbWVzc2FnZSA6IGVycm9yXSk7XG4gICAgX3RoaXMubmFtZSA9IFwiVW5rbm93bkVycm9yXCI7XG4gICAgX3RoaXMuY29kZSA9IGVycm9yLmNvZGU7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIF90aGlzLnN0YWNrID0gZXJyb3Iuc3RhY2s7XG4gICAgfVxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuICAoMCwgX2luaGVyaXRzMi5kZWZhdWx0KShVbmtub3duRXJyb3IsIF9FcnJvcik7XG4gIHJldHVybiAoMCwgX2NyZWF0ZUNsYXNzMi5kZWZhdWx0KShVbmtub3duRXJyb3IsIFt7XG4gICAga2V5OiBcInRvSlNPTlwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0b0pTT04oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgICAgc3RhY2s6IHRoaXMuc3RhY2tcbiAgICAgIH07XG4gICAgfVxuICB9XSk7XG59KCgwLCBfd3JhcE5hdGl2ZVN1cGVyMi5kZWZhdWx0KShFcnJvcikpO1xudmFyIE9BdXRoQ2FsbGJhY2tFcnJvciA9IGV4cG9ydHMuT0F1dGhDYWxsYmFja0Vycm9yID0gZnVuY3Rpb24gKF9Vbmtub3duRXJyb3IpIHtcbiAgZnVuY3Rpb24gT0F1dGhDYWxsYmFja0Vycm9yKCkge1xuICAgIHZhciBfdGhpczI7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgT0F1dGhDYWxsYmFja0Vycm9yKTtcbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuICAgIF90aGlzMiA9IF9jYWxsU3VwZXIodGhpcywgT0F1dGhDYWxsYmFja0Vycm9yLCBbXS5jb25jYXQoYXJncykpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzMiwgXCJuYW1lXCIsIFwiT0F1dGhDYWxsYmFja0Vycm9yXCIpO1xuICAgIHJldHVybiBfdGhpczI7XG4gIH1cbiAgKDAsIF9pbmhlcml0czIuZGVmYXVsdCkoT0F1dGhDYWxsYmFja0Vycm9yLCBfVW5rbm93bkVycm9yKTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKE9BdXRoQ2FsbGJhY2tFcnJvcik7XG59KFVua25vd25FcnJvcik7XG52YXIgQWNjb3VudE5vdExpbmtlZEVycm9yID0gZXhwb3J0cy5BY2NvdW50Tm90TGlua2VkRXJyb3IgPSBmdW5jdGlvbiAoX1Vua25vd25FcnJvcjIpIHtcbiAgZnVuY3Rpb24gQWNjb3VudE5vdExpbmtlZEVycm9yKCkge1xuICAgIHZhciBfdGhpczM7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgQWNjb3VudE5vdExpbmtlZEVycm9yKTtcbiAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjIpLCBfa2V5MiA9IDA7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgIGFyZ3NbX2tleTJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICB9XG4gICAgX3RoaXMzID0gX2NhbGxTdXBlcih0aGlzLCBBY2NvdW50Tm90TGlua2VkRXJyb3IsIFtdLmNvbmNhdChhcmdzKSk7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXMzLCBcIm5hbWVcIiwgXCJBY2NvdW50Tm90TGlua2VkRXJyb3JcIik7XG4gICAgcmV0dXJuIF90aGlzMztcbiAgfVxuICAoMCwgX2luaGVyaXRzMi5kZWZhdWx0KShBY2NvdW50Tm90TGlua2VkRXJyb3IsIF9Vbmtub3duRXJyb3IyKTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKEFjY291bnROb3RMaW5rZWRFcnJvcik7XG59KFVua25vd25FcnJvcik7XG52YXIgTWlzc2luZ0FQSVJvdXRlID0gZXhwb3J0cy5NaXNzaW5nQVBJUm91dGUgPSBmdW5jdGlvbiAoX1Vua25vd25FcnJvcjMpIHtcbiAgZnVuY3Rpb24gTWlzc2luZ0FQSVJvdXRlKCkge1xuICAgIHZhciBfdGhpczQ7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgTWlzc2luZ0FQSVJvdXRlKTtcbiAgICBmb3IgKHZhciBfbGVuMyA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjMpLCBfa2V5MyA9IDA7IF9rZXkzIDwgX2xlbjM7IF9rZXkzKyspIHtcbiAgICAgIGFyZ3NbX2tleTNdID0gYXJndW1lbnRzW19rZXkzXTtcbiAgICB9XG4gICAgX3RoaXM0ID0gX2NhbGxTdXBlcih0aGlzLCBNaXNzaW5nQVBJUm91dGUsIFtdLmNvbmNhdChhcmdzKSk7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXM0LCBcIm5hbWVcIiwgXCJNaXNzaW5nQVBJUm91dGVFcnJvclwiKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczQsIFwiY29kZVwiLCBcIk1JU1NJTkdfTkVYVEFVVEhfQVBJX1JPVVRFX0VSUk9SXCIpO1xuICAgIHJldHVybiBfdGhpczQ7XG4gIH1cbiAgKDAsIF9pbmhlcml0czIuZGVmYXVsdCkoTWlzc2luZ0FQSVJvdXRlLCBfVW5rbm93bkVycm9yMyk7XG4gIHJldHVybiAoMCwgX2NyZWF0ZUNsYXNzMi5kZWZhdWx0KShNaXNzaW5nQVBJUm91dGUpO1xufShVbmtub3duRXJyb3IpO1xudmFyIE1pc3NpbmdTZWNyZXQgPSBleHBvcnRzLk1pc3NpbmdTZWNyZXQgPSBmdW5jdGlvbiAoX1Vua25vd25FcnJvcjQpIHtcbiAgZnVuY3Rpb24gTWlzc2luZ1NlY3JldCgpIHtcbiAgICB2YXIgX3RoaXM1O1xuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2syLmRlZmF1bHQpKHRoaXMsIE1pc3NpbmdTZWNyZXQpO1xuICAgIGZvciAodmFyIF9sZW40ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuNCksIF9rZXk0ID0gMDsgX2tleTQgPCBfbGVuNDsgX2tleTQrKykge1xuICAgICAgYXJnc1tfa2V5NF0gPSBhcmd1bWVudHNbX2tleTRdO1xuICAgIH1cbiAgICBfdGhpczUgPSBfY2FsbFN1cGVyKHRoaXMsIE1pc3NpbmdTZWNyZXQsIFtdLmNvbmNhdChhcmdzKSk7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXM1LCBcIm5hbWVcIiwgXCJNaXNzaW5nU2VjcmV0RXJyb3JcIik7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXM1LCBcImNvZGVcIiwgXCJOT19TRUNSRVRcIik7XG4gICAgcmV0dXJuIF90aGlzNTtcbiAgfVxuICAoMCwgX2luaGVyaXRzMi5kZWZhdWx0KShNaXNzaW5nU2VjcmV0LCBfVW5rbm93bkVycm9yNCk7XG4gIHJldHVybiAoMCwgX2NyZWF0ZUNsYXNzMi5kZWZhdWx0KShNaXNzaW5nU2VjcmV0KTtcbn0oVW5rbm93bkVycm9yKTtcbnZhciBNaXNzaW5nQXV0aG9yaXplID0gZXhwb3J0cy5NaXNzaW5nQXV0aG9yaXplID0gZnVuY3Rpb24gKF9Vbmtub3duRXJyb3I1KSB7XG4gIGZ1bmN0aW9uIE1pc3NpbmdBdXRob3JpemUoKSB7XG4gICAgdmFyIF90aGlzNjtcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBNaXNzaW5nQXV0aG9yaXplKTtcbiAgICBmb3IgKHZhciBfbGVuNSA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjUpLCBfa2V5NSA9IDA7IF9rZXk1IDwgX2xlbjU7IF9rZXk1KyspIHtcbiAgICAgIGFyZ3NbX2tleTVdID0gYXJndW1lbnRzW19rZXk1XTtcbiAgICB9XG4gICAgX3RoaXM2ID0gX2NhbGxTdXBlcih0aGlzLCBNaXNzaW5nQXV0aG9yaXplLCBbXS5jb25jYXQoYXJncykpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzNiwgXCJuYW1lXCIsIFwiTWlzc2luZ0F1dGhvcml6ZUVycm9yXCIpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzNiwgXCJjb2RlXCIsIFwiQ0FMTEJBQ0tfQ1JFREVOVElBTFNfSEFORExFUl9FUlJPUlwiKTtcbiAgICByZXR1cm4gX3RoaXM2O1xuICB9XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKE1pc3NpbmdBdXRob3JpemUsIF9Vbmtub3duRXJyb3I1KTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKE1pc3NpbmdBdXRob3JpemUpO1xufShVbmtub3duRXJyb3IpO1xudmFyIE1pc3NpbmdBZGFwdGVyID0gZXhwb3J0cy5NaXNzaW5nQWRhcHRlciA9IGZ1bmN0aW9uIChfVW5rbm93bkVycm9yNikge1xuICBmdW5jdGlvbiBNaXNzaW5nQWRhcHRlcigpIHtcbiAgICB2YXIgX3RoaXM3O1xuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2syLmRlZmF1bHQpKHRoaXMsIE1pc3NpbmdBZGFwdGVyKTtcbiAgICBmb3IgKHZhciBfbGVuNiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjYpLCBfa2V5NiA9IDA7IF9rZXk2IDwgX2xlbjY7IF9rZXk2KyspIHtcbiAgICAgIGFyZ3NbX2tleTZdID0gYXJndW1lbnRzW19rZXk2XTtcbiAgICB9XG4gICAgX3RoaXM3ID0gX2NhbGxTdXBlcih0aGlzLCBNaXNzaW5nQWRhcHRlciwgW10uY29uY2F0KGFyZ3MpKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczcsIFwibmFtZVwiLCBcIk1pc3NpbmdBZGFwdGVyRXJyb3JcIik7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXM3LCBcImNvZGVcIiwgXCJFTUFJTF9SRVFVSVJFU19BREFQVEVSX0VSUk9SXCIpO1xuICAgIHJldHVybiBfdGhpczc7XG4gIH1cbiAgKDAsIF9pbmhlcml0czIuZGVmYXVsdCkoTWlzc2luZ0FkYXB0ZXIsIF9Vbmtub3duRXJyb3I2KTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKE1pc3NpbmdBZGFwdGVyKTtcbn0oVW5rbm93bkVycm9yKTtcbnZhciBNaXNzaW5nQWRhcHRlck1ldGhvZHMgPSBleHBvcnRzLk1pc3NpbmdBZGFwdGVyTWV0aG9kcyA9IGZ1bmN0aW9uIChfVW5rbm93bkVycm9yNykge1xuICBmdW5jdGlvbiBNaXNzaW5nQWRhcHRlck1ldGhvZHMoKSB7XG4gICAgdmFyIF90aGlzODtcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBNaXNzaW5nQWRhcHRlck1ldGhvZHMpO1xuICAgIGZvciAodmFyIF9sZW43ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuNyksIF9rZXk3ID0gMDsgX2tleTcgPCBfbGVuNzsgX2tleTcrKykge1xuICAgICAgYXJnc1tfa2V5N10gPSBhcmd1bWVudHNbX2tleTddO1xuICAgIH1cbiAgICBfdGhpczggPSBfY2FsbFN1cGVyKHRoaXMsIE1pc3NpbmdBZGFwdGVyTWV0aG9kcywgW10uY29uY2F0KGFyZ3MpKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczgsIFwibmFtZVwiLCBcIk1pc3NpbmdBZGFwdGVyTWV0aG9kc0Vycm9yXCIpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzOCwgXCJjb2RlXCIsIFwiTUlTU0lOR19BREFQVEVSX01FVEhPRFNfRVJST1JcIik7XG4gICAgcmV0dXJuIF90aGlzODtcbiAgfVxuICAoMCwgX2luaGVyaXRzMi5kZWZhdWx0KShNaXNzaW5nQWRhcHRlck1ldGhvZHMsIF9Vbmtub3duRXJyb3I3KTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKE1pc3NpbmdBZGFwdGVyTWV0aG9kcyk7XG59KFVua25vd25FcnJvcik7XG52YXIgVW5zdXBwb3J0ZWRTdHJhdGVneSA9IGV4cG9ydHMuVW5zdXBwb3J0ZWRTdHJhdGVneSA9IGZ1bmN0aW9uIChfVW5rbm93bkVycm9yOCkge1xuICBmdW5jdGlvbiBVbnN1cHBvcnRlZFN0cmF0ZWd5KCkge1xuICAgIHZhciBfdGhpczk7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgVW5zdXBwb3J0ZWRTdHJhdGVneSk7XG4gICAgZm9yICh2YXIgX2xlbjggPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW44KSwgX2tleTggPSAwOyBfa2V5OCA8IF9sZW44OyBfa2V5OCsrKSB7XG4gICAgICBhcmdzW19rZXk4XSA9IGFyZ3VtZW50c1tfa2V5OF07XG4gICAgfVxuICAgIF90aGlzOSA9IF9jYWxsU3VwZXIodGhpcywgVW5zdXBwb3J0ZWRTdHJhdGVneSwgW10uY29uY2F0KGFyZ3MpKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczksIFwibmFtZVwiLCBcIlVuc3VwcG9ydGVkU3RyYXRlZ3lFcnJvclwiKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczksIFwiY29kZVwiLCBcIkNBTExCQUNLX0NSRURFTlRJQUxTX0pXVF9FUlJPUlwiKTtcbiAgICByZXR1cm4gX3RoaXM5O1xuICB9XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKFVuc3VwcG9ydGVkU3RyYXRlZ3ksIF9Vbmtub3duRXJyb3I4KTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKFVuc3VwcG9ydGVkU3RyYXRlZ3kpO1xufShVbmtub3duRXJyb3IpO1xudmFyIEludmFsaWRDYWxsYmFja1VybCA9IGV4cG9ydHMuSW52YWxpZENhbGxiYWNrVXJsID0gZnVuY3Rpb24gKF9Vbmtub3duRXJyb3I5KSB7XG4gIGZ1bmN0aW9uIEludmFsaWRDYWxsYmFja1VybCgpIHtcbiAgICB2YXIgX3RoaXMxMDtcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBJbnZhbGlkQ2FsbGJhY2tVcmwpO1xuICAgIGZvciAodmFyIF9sZW45ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuOSksIF9rZXk5ID0gMDsgX2tleTkgPCBfbGVuOTsgX2tleTkrKykge1xuICAgICAgYXJnc1tfa2V5OV0gPSBhcmd1bWVudHNbX2tleTldO1xuICAgIH1cbiAgICBfdGhpczEwID0gX2NhbGxTdXBlcih0aGlzLCBJbnZhbGlkQ2FsbGJhY2tVcmwsIFtdLmNvbmNhdChhcmdzKSk7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXMxMCwgXCJuYW1lXCIsIFwiSW52YWxpZENhbGxiYWNrVXJsXCIpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzMTAsIFwiY29kZVwiLCBcIklOVkFMSURfQ0FMTEJBQ0tfVVJMX0VSUk9SXCIpO1xuICAgIHJldHVybiBfdGhpczEwO1xuICB9XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKEludmFsaWRDYWxsYmFja1VybCwgX1Vua25vd25FcnJvcjkpO1xuICByZXR1cm4gKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoSW52YWxpZENhbGxiYWNrVXJsKTtcbn0oVW5rbm93bkVycm9yKTtcbmZ1bmN0aW9uIHVwcGVyU25ha2Uocykge1xuICByZXR1cm4gcy5yZXBsYWNlKC8oW0EtWl0pL2csIFwiXyQxXCIpLnRvVXBwZXJDYXNlKCk7XG59XG5mdW5jdGlvbiBjYXBpdGFsaXplKHMpIHtcbiAgcmV0dXJuIFwiXCIuY29uY2F0KHNbMF0udG9VcHBlckNhc2UoKSkuY29uY2F0KHMuc2xpY2UoMSkpO1xufVxuZnVuY3Rpb24gZXZlbnRzRXJyb3JIYW5kbGVyKG1ldGhvZHMsIGxvZ2dlcikge1xuICByZXR1cm4gT2JqZWN0LmtleXMobWV0aG9kcykucmVkdWNlKGZ1bmN0aW9uIChhY2MsIG5hbWUpIHtcbiAgICBhY2NbbmFtZV0gPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZSgpIHtcbiAgICAgIHZhciBtZXRob2QsXG4gICAgICAgIF9hcmdzID0gYXJndW1lbnRzO1xuICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvci5kZWZhdWx0LndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHtcbiAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMDtcbiAgICAgICAgICAgIG1ldGhvZCA9IG1ldGhvZHNbbmFtZV07XG4gICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gNDtcbiAgICAgICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkodm9pZCAwLCBfYXJncyk7XG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmFicnVwdChcInJldHVyblwiLCBfY29udGV4dC5zZW50KTtcbiAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gNztcbiAgICAgICAgICAgIF9jb250ZXh0LnQwID0gX2NvbnRleHRbXCJjYXRjaFwiXSgwKTtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcIlwiLmNvbmNhdCh1cHBlclNuYWtlKG5hbWUpLCBcIl9FVkVOVF9FUlJPUlwiKSwgX2NvbnRleHQudDApO1xuICAgICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfSwgX2NhbGxlZSwgbnVsbCwgW1swLCA3XV0pO1xuICAgIH0pKTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5mdW5jdGlvbiBhZGFwdGVyRXJyb3JIYW5kbGVyKGFkYXB0ZXIsIGxvZ2dlcikge1xuICBpZiAoIWFkYXB0ZXIpIHJldHVybjtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGFkYXB0ZXIpLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBuYW1lKSB7XG4gICAgYWNjW25hbWVdID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMi5kZWZhdWx0KShfcmVnZW5lcmF0b3IuZGVmYXVsdC5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKCkge1xuICAgICAgdmFyIF9sZW4xMCxcbiAgICAgICAgYXJncyxcbiAgICAgICAgX2tleTEwLFxuICAgICAgICBtZXRob2QsXG4gICAgICAgIGUsXG4gICAgICAgIF9hcmdzMiA9IGFyZ3VtZW50cztcbiAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IuZGVmYXVsdC53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHtcbiAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLnByZXYgPSBfY29udGV4dDIubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIF9jb250ZXh0Mi5wcmV2ID0gMDtcbiAgICAgICAgICAgIGZvciAoX2xlbjEwID0gX2FyZ3MyLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMTApLCBfa2V5MTAgPSAwOyBfa2V5MTAgPCBfbGVuMTA7IF9rZXkxMCsrKSB7XG4gICAgICAgICAgICAgIGFyZ3NbX2tleTEwXSA9IF9hcmdzMltfa2V5MTBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKFwiYWRhcHRlcl9cIi5jb25jYXQobmFtZSksIHtcbiAgICAgICAgICAgICAgYXJnczogYXJnc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBtZXRob2QgPSBhZGFwdGVyW25hbWVdO1xuICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSA2O1xuICAgICAgICAgICAgcmV0dXJuIG1ldGhvZC5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0Mi5zZW50KTtcbiAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICBfY29udGV4dDIucHJldiA9IDk7XG4gICAgICAgICAgICBfY29udGV4dDIudDAgPSBfY29udGV4dDJbXCJjYXRjaFwiXSgwKTtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcImFkYXB0ZXJfZXJyb3JfXCIuY29uY2F0KG5hbWUpLCBfY29udGV4dDIudDApO1xuICAgICAgICAgICAgZSA9IG5ldyBVbmtub3duRXJyb3IoX2NvbnRleHQyLnQwKTtcbiAgICAgICAgICAgIGUubmFtZSA9IFwiXCIuY29uY2F0KGNhcGl0YWxpemUobmFtZSksIFwiRXJyb3JcIik7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIF9jYWxsZWUyLCBudWxsLCBbWzAsIDldXSk7XG4gICAgfSkpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next-auth/core/errors.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/next-auth/react/index.js":
/*!***********************************************!*\
!*** ./node_modules/next-auth/react/index.js ***!
\***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/typeof.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar _exportNames = {\n SessionContext: true,\n useSession: true,\n getSession: true,\n getCsrfToken: true,\n getProviders: true,\n signIn: true,\n signOut: true,\n SessionProvider: true\n};\nexports.SessionContext = void 0;\nexports.SessionProvider = SessionProvider;\nexports.getCsrfToken = getCsrfToken;\nexports.getProviders = getProviders;\nexports.getSession = getSession;\nexports.signIn = signIn;\nexports.signOut = signOut;\nexports.useSession = useSession;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/regenerator/index.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/slicedToArray.js\"));\nvar React = _interopRequireWildcard(__webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"));\nvar _logger2 = _interopRequireWildcard(__webpack_require__(/*! ../utils/logger */ \"(app-pages-browser)/./node_modules/next-auth/utils/logger.js\"));\nvar _parseUrl = _interopRequireDefault(__webpack_require__(/*! ../utils/parse-url */ \"(app-pages-browser)/./node_modules/next-auth/utils/parse-url.js\"));\nvar _utils = __webpack_require__(/*! ../client/_utils */ \"(app-pages-browser)/./node_modules/next-auth/client/_utils.js\");\nvar _jsxRuntime = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\nvar _types = __webpack_require__(/*! ./types */ \"(app-pages-browser)/./node_modules/next-auth/react/types.js\");\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _types[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _types[key];\n }\n });\n});\nvar _process$env$NEXTAUTH, _ref, _process$env$NEXTAUTH2, _process$env$NEXTAUTH3, _React$createContext;\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar __NEXTAUTH = {\n baseUrl: (0, _parseUrl.default)((_process$env$NEXTAUTH = process.env.NEXTAUTH_URL) !== null && _process$env$NEXTAUTH !== void 0 ? _process$env$NEXTAUTH : process.env.VERCEL_URL).origin,\n basePath: (0, _parseUrl.default)(process.env.NEXTAUTH_URL).path,\n baseUrlServer: (0, _parseUrl.default)((_ref = (_process$env$NEXTAUTH2 = process.env.NEXTAUTH_URL_INTERNAL) !== null && _process$env$NEXTAUTH2 !== void 0 ? _process$env$NEXTAUTH2 : process.env.NEXTAUTH_URL) !== null && _ref !== void 0 ? _ref : process.env.VERCEL_URL).origin,\n basePathServer: (0, _parseUrl.default)((_process$env$NEXTAUTH3 = process.env.NEXTAUTH_URL_INTERNAL) !== null && _process$env$NEXTAUTH3 !== void 0 ? _process$env$NEXTAUTH3 : process.env.NEXTAUTH_URL).path,\n _lastSync: 0,\n _session: undefined,\n _getSession: function _getSession() {}\n};\nvar broadcast = (0, _utils.BroadcastChannel)();\nvar logger = (0, _logger2.proxyLogger)(_logger2.default, __NEXTAUTH.basePath);\nfunction useOnline() {\n var _React$useState = React.useState(typeof navigator !== \"undefined\" ? navigator.onLine : false),\n _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),\n isOnline = _React$useState2[0],\n setIsOnline = _React$useState2[1];\n var setOnline = function setOnline() {\n return setIsOnline(true);\n };\n var setOffline = function setOffline() {\n return setIsOnline(false);\n };\n React.useEffect(function () {\n window.addEventListener(\"online\", setOnline);\n window.addEventListener(\"offline\", setOffline);\n return function () {\n window.removeEventListener(\"online\", setOnline);\n window.removeEventListener(\"offline\", setOffline);\n };\n }, []);\n return isOnline;\n}\nvar SessionContext = exports.SessionContext = (_React$createContext = React.createContext) === null || _React$createContext === void 0 ? void 0 : _React$createContext.call(React, undefined);\nfunction useSession(options) {\n if (!SessionContext) {\n throw new Error(\"React Context is unavailable in Server Components\");\n }\n var value = React.useContext(SessionContext);\n if (!value && \"development\" !== \"production\") {\n throw new Error(\"[next-auth]: `useSession` must be wrapped in a <SessionProvider />\");\n }\n var _ref2 = options !== null && options !== void 0 ? options : {},\n required = _ref2.required,\n onUnauthenticated = _ref2.onUnauthenticated;\n var requiredAndNotLoading = required && value.status === \"unauthenticated\";\n React.useEffect(function () {\n if (requiredAndNotLoading) {\n var url = \"/api/auth/signin?\".concat(new URLSearchParams({\n error: \"SessionRequired\",\n callbackUrl: window.location.href\n }));\n if (onUnauthenticated) onUnauthenticated();else window.location.href = url;\n }\n }, [requiredAndNotLoading, onUnauthenticated]);\n if (requiredAndNotLoading) {\n return {\n data: value.data,\n update: value.update,\n status: \"loading\"\n };\n }\n return value;\n}\nfunction getSession(_x) {\n return _getSession2.apply(this, arguments);\n}\nfunction _getSession2() {\n _getSession2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(params) {\n var _params$broadcast;\n var session;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return (0, _utils.fetchData)(\"session\", __NEXTAUTH, logger, params);\n case 2:\n session = _context3.sent;\n if ((_params$broadcast = params === null || params === void 0 ? void 0 : params.broadcast) !== null && _params$broadcast !== void 0 ? _params$broadcast : true) {\n broadcast.post({\n event: \"session\",\n data: {\n trigger: \"getSession\"\n }\n });\n }\n return _context3.abrupt(\"return\", session);\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return _getSession2.apply(this, arguments);\n}\nfunction getCsrfToken(_x2) {\n return _getCsrfToken.apply(this, arguments);\n}\nfunction _getCsrfToken() {\n _getCsrfToken = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(params) {\n var response;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return (0, _utils.fetchData)(\"csrf\", __NEXTAUTH, logger, params);\n case 2:\n response = _context4.sent;\n return _context4.abrupt(\"return\", response === null || response === void 0 ? void 0 : response.csrfToken);\n case 4:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return _getCsrfToken.apply(this, arguments);\n}\nfunction getProviders() {\n return _getProviders.apply(this, arguments);\n}\nfunction _getProviders() {\n _getProviders = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5() {\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return (0, _utils.fetchData)(\"providers\", __NEXTAUTH, logger);\n case 2:\n return _context5.abrupt(\"return\", _context5.sent);\n case 3:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return _getProviders.apply(this, arguments);\n}\nfunction signIn(_x3, _x4, _x5) {\n return _signIn.apply(this, arguments);\n}\nfunction _signIn() {\n _signIn = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(provider, options, authorizationParams) {\n var _ref5, _ref5$callbackUrl, callbackUrl, _ref5$redirect, redirect, baseUrl, providers, isCredentials, isEmail, isSupportingReturn, signInUrl, _signInUrl, res, data, _data$url, url, error;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _ref5 = options !== null && options !== void 0 ? options : {}, _ref5$callbackUrl = _ref5.callbackUrl, callbackUrl = _ref5$callbackUrl === void 0 ? window.location.href : _ref5$callbackUrl, _ref5$redirect = _ref5.redirect, redirect = _ref5$redirect === void 0 ? true : _ref5$redirect;\n baseUrl = (0, _utils.apiBaseUrl)(__NEXTAUTH);\n _context6.next = 4;\n return getProviders();\n case 4:\n providers = _context6.sent;\n if (providers) {\n _context6.next = 8;\n break;\n }\n window.location.href = \"\".concat(baseUrl, \"/error\");\n return _context6.abrupt(\"return\");\n case 8:\n if (!(!provider || !(provider in providers))) {\n _context6.next = 11;\n break;\n }\n window.location.href = \"\".concat(baseUrl, \"/signin?\").concat(new URLSearchParams({\n callbackUrl: callbackUrl\n }));\n return _context6.abrupt(\"return\");\n case 11:\n isCredentials = providers[provider].type === \"credentials\";\n isEmail = providers[provider].type === \"email\";\n isSupportingReturn = isCredentials || isEmail;\n signInUrl = \"\".concat(baseUrl, \"/\").concat(isCredentials ? \"callback\" : \"signin\", \"/\").concat(provider);\n _signInUrl = \"\".concat(signInUrl).concat(authorizationParams ? \"?\".concat(new URLSearchParams(authorizationParams)) : \"\");\n _context6.t0 = fetch;\n _context6.t1 = _signInUrl;\n _context6.t2 = {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n };\n _context6.t3 = URLSearchParams;\n _context6.t4 = _objectSpread;\n _context6.t5 = _objectSpread({}, options);\n _context6.t6 = {};\n _context6.next = 25;\n return getCsrfToken();\n case 25:\n _context6.t7 = _context6.sent;\n _context6.t8 = callbackUrl;\n _context6.t9 = {\n csrfToken: _context6.t7,\n callbackUrl: _context6.t8,\n json: true\n };\n _context6.t10 = (0, _context6.t4)(_context6.t5, _context6.t6, _context6.t9);\n _context6.t11 = new _context6.t3(_context6.t10);\n _context6.t12 = {\n method: \"post\",\n headers: _context6.t2,\n body: _context6.t11\n };\n _context6.next = 33;\n return (0, _context6.t0)(_context6.t1, _context6.t12);\n case 33:\n res = _context6.sent;\n _context6.next = 36;\n return res.json();\n case 36:\n data = _context6.sent;\n if (!(redirect || !isSupportingReturn)) {\n _context6.next = 42;\n break;\n }\n url = (_data$url = data.url) !== null && _data$url !== void 0 ? _data$url : callbackUrl;\n window.location.href = url;\n if (url.includes(\"#\")) window.location.reload();\n return _context6.abrupt(\"return\");\n case 42:\n error = new URL(data.url).searchParams.get(\"error\");\n if (!res.ok) {\n _context6.next = 46;\n break;\n }\n _context6.next = 46;\n return __NEXTAUTH._getSession({\n event: \"storage\"\n });\n case 46:\n return _context6.abrupt(\"return\", {\n error: error,\n status: res.status,\n ok: res.ok,\n url: error ? null : data.url\n });\n case 47:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n return _signIn.apply(this, arguments);\n}\nfunction signOut(_x6) {\n return _signOut.apply(this, arguments);\n}\nfunction _signOut() {\n _signOut = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(options) {\n var _options$redirect;\n var _ref6, _ref6$callbackUrl, callbackUrl, baseUrl, fetchOptions, res, data, _data$url2, url;\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _ref6 = options !== null && options !== void 0 ? options : {}, _ref6$callbackUrl = _ref6.callbackUrl, callbackUrl = _ref6$callbackUrl === void 0 ? window.location.href : _ref6$callbackUrl;\n baseUrl = (0, _utils.apiBaseUrl)(__NEXTAUTH);\n _context7.t0 = {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n };\n _context7.t1 = URLSearchParams;\n _context7.next = 6;\n return getCsrfToken();\n case 6:\n _context7.t2 = _context7.sent;\n _context7.t3 = callbackUrl;\n _context7.t4 = {\n csrfToken: _context7.t2,\n callbackUrl: _context7.t3,\n json: true\n };\n _context7.t5 = new _context7.t1(_context7.t4);\n fetchOptions = {\n method: \"post\",\n headers: _context7.t0,\n body: _context7.t5\n };\n _context7.next = 13;\n return fetch(\"\".concat(baseUrl, \"/signout\"), fetchOptions);\n case 13:\n res = _context7.sent;\n _context7.next = 16;\n return res.json();\n case 16:\n data = _context7.sent;\n broadcast.post({\n event: \"session\",\n data: {\n trigger: \"signout\"\n }\n });\n if (!((_options$redirect = options === null || options === void 0 ? void 0 : options.redirect) !== null && _options$redirect !== void 0 ? _options$redirect : true)) {\n _context7.next = 23;\n break;\n }\n url = (_data$url2 = data.url) !== null && _data$url2 !== void 0 ? _data$url2 : callbackUrl;\n window.location.href = url;\n if (url.includes(\"#\")) window.location.reload();\n return _context7.abrupt(\"return\");\n case 23:\n _context7.next = 25;\n return __NEXTAUTH._getSession({\n event: \"storage\"\n });\n case 25:\n return _context7.abrupt(\"return\", data);\n case 26:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n return _signOut.apply(this, arguments);\n}\nfunction SessionProvider(props) {\n if (!SessionContext) {\n throw new Error(\"React Context is unavailable in Server Components\");\n }\n var children = props.children,\n basePath = props.basePath,\n refetchInterval = props.refetchInterval,\n refetchWhenOffline = props.refetchWhenOffline;\n if (basePath) __NEXTAUTH.basePath = basePath;\n var hasInitialSession = props.session !== undefined;\n __NEXTAUTH._lastSync = hasInitialSession ? (0, _utils.now)() : 0;\n var _React$useState3 = React.useState(function () {\n if (hasInitialSession) __NEXTAUTH._session = props.session;\n return props.session;\n }),\n _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),\n session = _React$useState4[0],\n setSession = _React$useState4[1];\n var _React$useState5 = React.useState(!hasInitialSession),\n _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),\n loading = _React$useState6[0],\n setLoading = _React$useState6[1];\n React.useEffect(function () {\n __NEXTAUTH._getSession = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {\n var _ref4,\n event,\n storageEvent,\n _args = arguments;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _ref4 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, event = _ref4.event;\n _context.prev = 1;\n storageEvent = event === \"storage\";\n if (!(storageEvent || __NEXTAUTH._session === undefined)) {\n _context.next = 10;\n break;\n }\n __NEXTAUTH._lastSync = (0, _utils.now)();\n _context.next = 7;\n return getSession({\n broadcast: !storageEvent\n });\n case 7:\n __NEXTAUTH._session = _context.sent;\n setSession(__NEXTAUTH._session);\n return _context.abrupt(\"return\");\n case 10:\n if (!(!event || __NEXTAUTH._session === null || (0, _utils.now)() < __NEXTAUTH._lastSync)) {\n _context.next = 12;\n break;\n }\n return _context.abrupt(\"return\");\n case 12:\n __NEXTAUTH._lastSync = (0, _utils.now)();\n _context.next = 15;\n return getSession();\n case 15:\n __NEXTAUTH._session = _context.sent;\n setSession(__NEXTAUTH._session);\n _context.next = 22;\n break;\n case 19:\n _context.prev = 19;\n _context.t0 = _context[\"catch\"](1);\n logger.error(\"CLIENT_SESSION_ERROR\", _context.t0);\n case 22:\n _context.prev = 22;\n setLoading(false);\n return _context.finish(22);\n case 25:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[1, 19, 22, 25]]);\n }));\n __NEXTAUTH._getSession();\n return function () {\n __NEXTAUTH._lastSync = 0;\n __NEXTAUTH._session = undefined;\n __NEXTAUTH._getSession = function () {};\n };\n }, []);\n React.useEffect(function () {\n var unsubscribe = broadcast.receive(function () {\n return __NEXTAUTH._getSession({\n event: \"storage\"\n });\n });\n return function () {\n return unsubscribe();\n };\n }, []);\n React.useEffect(function () {\n var _props$refetchOnWindo = props.refetchOnWindowFocus,\n refetchOnWindowFocus = _props$refetchOnWindo === void 0 ? true : _props$refetchOnWindo;\n var visibilityHandler = function visibilityHandler() {\n if (refetchOnWindowFocus && document.visibilityState === \"visible\") __NEXTAUTH._getSession({\n event: \"visibilitychange\"\n });\n };\n document.addEventListener(\"visibilitychange\", visibilityHandler, false);\n return function () {\n return document.removeEventListener(\"visibilitychange\", visibilityHandler, false);\n };\n }, [props.refetchOnWindowFocus]);\n var isOnline = useOnline();\n var shouldRefetch = refetchWhenOffline !== false || isOnline;\n React.useEffect(function () {\n if (refetchInterval && shouldRefetch) {\n var refetchIntervalTimer = setInterval(function () {\n if (__NEXTAUTH._session) {\n __NEXTAUTH._getSession({\n event: \"poll\"\n });\n }\n }, refetchInterval * 1000);\n return function () {\n return clearInterval(refetchIntervalTimer);\n };\n }\n }, [refetchInterval, shouldRefetch]);\n var value = React.useMemo(function () {\n return {\n data: session,\n status: loading ? \"loading\" : session ? \"authenticated\" : \"unauthenticated\",\n update: function update(data) {\n return (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {\n var newSession;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (!(loading || !session)) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\");\n case 2:\n setLoading(true);\n _context2.t0 = _utils.fetchData;\n _context2.t1 = __NEXTAUTH;\n _context2.t2 = logger;\n _context2.next = 8;\n return getCsrfToken();\n case 8:\n _context2.t3 = _context2.sent;\n _context2.t4 = data;\n _context2.t5 = {\n csrfToken: _context2.t3,\n data: _context2.t4\n };\n _context2.t6 = {\n body: _context2.t5\n };\n _context2.t7 = {\n req: _context2.t6\n };\n _context2.next = 15;\n return (0, _context2.t0)(\"session\", _context2.t1, _context2.t2, _context2.t7);\n case 15:\n newSession = _context2.sent;\n setLoading(false);\n if (newSession) {\n setSession(newSession);\n broadcast.post({\n event: \"session\",\n data: {\n trigger: \"getSession\"\n }\n });\n }\n return _context2.abrupt(\"return\", newSession);\n case 19:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }))();\n }\n };\n }, [session, loading]);\n return (0, _jsxRuntime.jsx)(SessionContext.Provider, {\n value: value,\n children: children\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvcmVhY3QvaW5kZXguanMiLCJtYXBwaW5ncyI6IjtBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLHdJQUE4QztBQUNuRixjQUFjLG1CQUFPLENBQUMsMEdBQStCO0FBQ3JELDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCLHVCQUF1QjtBQUN2QixvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLGtCQUFrQjtBQUNsQixjQUFjO0FBQ2QsZUFBZTtBQUNmLGtCQUFrQjtBQUNsQiwwQ0FBMEMsbUJBQU8sQ0FBQywwR0FBNEI7QUFDOUUsOENBQThDLG1CQUFPLENBQUMsMEhBQXVDO0FBQzdGLGdEQUFnRCxtQkFBTyxDQUFDLDhIQUF5QztBQUNqRyw2Q0FBNkMsbUJBQU8sQ0FBQyx3SEFBc0M7QUFDM0Ysb0NBQW9DLG1CQUFPLENBQUMsbUZBQU87QUFDbkQsdUNBQXVDLG1CQUFPLENBQUMscUZBQWlCO0FBQ2hFLHVDQUF1QyxtQkFBTyxDQUFDLDJGQUFvQjtBQUNuRSxhQUFhLG1CQUFPLENBQUMsdUZBQWtCO0FBQ3ZDLGtCQUFrQixtQkFBTyxDQUFDLHFHQUFtQjtBQUM3QyxhQUFhLG1CQUFPLENBQUMsNEVBQVM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBLHVDQUF1QywrQ0FBK0MsMENBQTBDLDBFQUEwRSxtQkFBbUI7QUFDN04seUNBQXlDLHVDQUF1Qyw2RUFBNkUsY0FBYyxxQ0FBcUMsb0NBQW9DLFVBQVUsaUJBQWlCLGdFQUFnRSwwQ0FBMEMsOEJBQThCLDBEQUEwRCx3RUFBd0U7QUFDemhCLHlCQUF5Qix3QkFBd0Isb0NBQW9DLHlDQUF5QyxrQ0FBa0MsMERBQTBELDBCQUEwQjtBQUNwUCw0QkFBNEIsZ0JBQWdCLHNCQUFzQixPQUFPLGtEQUFrRCxzREFBc0QsNENBQTRDLG1KQUFtSixxRUFBcUUsS0FBSztBQUMxYjtBQUNBLDJEQUEyRCxPQUFPLDBGQUEwRixPQUFPO0FBQ25LLG1DQUFtQyxPQUFPO0FBQzFDLDBFQUEwRSxPQUFPLHFHQUFxRyxPQUFPLHdEQUF3RCxPQUFPO0FBQzVQLG1FQUFtRSxPQUFPLHFHQUFxRyxPQUFPO0FBQ3RMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EscUJBQXFCLHNCQUFzQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGFBQW9CO0FBQ3BDO0FBQ0E7QUFDQSxtRUFBbUU7QUFDbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxpREFBaUQ7QUFDakQ7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVFQUF1RTtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVFQUF1RTtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhFQUE4RTtBQUM5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9yZWFjdC9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG52YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZlwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG52YXIgX2V4cG9ydE5hbWVzID0ge1xuICBTZXNzaW9uQ29udGV4dDogdHJ1ZSxcbiAgdXNlU2Vzc2lvbjogdHJ1ZSxcbiAgZ2V0U2Vzc2lvbjogdHJ1ZSxcbiAgZ2V0Q3NyZlRva2VuOiB0cnVlLFxuICBnZXRQcm92aWRlcnM6IHRydWUsXG4gIHNpZ25JbjogdHJ1ZSxcbiAgc2lnbk91dDogdHJ1ZSxcbiAgU2Vzc2lvblByb3ZpZGVyOiB0cnVlXG59O1xuZXhwb3J0cy5TZXNzaW9uQ29udGV4dCA9IHZvaWQgMDtcbmV4cG9ydHMuU2Vzc2lvblByb3ZpZGVyID0gU2Vzc2lvblByb3ZpZGVyO1xuZXhwb3J0cy5nZXRDc3JmVG9rZW4gPSBnZXRDc3JmVG9rZW47XG5leHBvcnRzLmdldFByb3ZpZGVycyA9IGdldFByb3ZpZGVycztcbmV4cG9ydHMuZ2V0U2Vzc2lvbiA9IGdldFNlc3Npb247XG5leHBvcnRzLnNpZ25JbiA9IHNpZ25JbjtcbmV4cG9ydHMuc2lnbk91dCA9IHNpZ25PdXQ7XG5leHBvcnRzLnVzZVNlc3Npb24gPSB1c2VTZXNzaW9uO1xudmFyIF9yZWdlbmVyYXRvciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yXCIpKTtcbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eVwiKSk7XG52YXIgX2FzeW5jVG9HZW5lcmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yXCIpKTtcbnZhciBfc2xpY2VkVG9BcnJheTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3NsaWNlZFRvQXJyYXlcIikpO1xudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfbG9nZ2VyMiA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuLi91dGlscy9sb2dnZXJcIikpO1xudmFyIF9wYXJzZVVybCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL3V0aWxzL3BhcnNlLXVybFwiKSk7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uL2NsaWVudC9fdXRpbHNcIik7XG52YXIgX2pzeFJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG52YXIgX3R5cGVzID0gcmVxdWlyZShcIi4vdHlwZXNcIik7XG5PYmplY3Qua2V5cyhfdHlwZXMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICBpZiAoa2V5ID09PSBcImRlZmF1bHRcIiB8fCBrZXkgPT09IFwiX19lc01vZHVsZVwiKSByZXR1cm47XG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX2V4cG9ydE5hbWVzLCBrZXkpKSByZXR1cm47XG4gIGlmIChrZXkgaW4gZXhwb3J0cyAmJiBleHBvcnRzW2tleV0gPT09IF90eXBlc1trZXldKSByZXR1cm47XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgcmV0dXJuIF90eXBlc1trZXldO1xuICAgIH1cbiAgfSk7XG59KTtcbnZhciBfcHJvY2VzcyRlbnYkTkVYVEFVVEgsIF9yZWYsIF9wcm9jZXNzJGVudiRORVhUQVVUSDIsIF9wcm9jZXNzJGVudiRORVhUQVVUSDMsIF9SZWFjdCRjcmVhdGVDb250ZXh0O1xuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKGUpIHsgaWYgKFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgV2Vha01hcCkgcmV0dXJuIG51bGw7IHZhciByID0gbmV3IFdlYWtNYXAoKSwgdCA9IG5ldyBXZWFrTWFwKCk7IHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKGUpIHsgcmV0dXJuIGUgPyB0IDogcjsgfSkoZSk7IH1cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKGUsIHIpIHsgaWYgKCFyICYmIGUgJiYgZS5fX2VzTW9kdWxlKSByZXR1cm4gZTsgaWYgKG51bGwgPT09IGUgfHwgXCJvYmplY3RcIiAhPSBfdHlwZW9mKGUpICYmIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgZSkgcmV0dXJuIHsgZGVmYXVsdDogZSB9OyB2YXIgdCA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShyKTsgaWYgKHQgJiYgdC5oYXMoZSkpIHJldHVybiB0LmdldChlKTsgdmFyIG4gPSB7IF9fcHJvdG9fXzogbnVsbCB9LCBhID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIHUgaW4gZSkgaWYgKFwiZGVmYXVsdFwiICE9PSB1ICYmIHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSwgdSkpIHsgdmFyIGkgPSBhID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCB1KSA6IG51bGw7IGkgJiYgKGkuZ2V0IHx8IGkuc2V0KSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCB1LCBpKSA6IG5bdV0gPSBlW3VdOyB9IHJldHVybiBuLmRlZmF1bHQgPSBlLCB0ICYmIHQuc2V0KGUsIG4pLCBuOyB9XG5mdW5jdGlvbiBvd25LZXlzKGUsIHIpIHsgdmFyIHQgPSBPYmplY3Qua2V5cyhlKTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIG8gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpOyByICYmIChvID0gby5maWx0ZXIoZnVuY3Rpb24gKHIpIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSwgcikuZW51bWVyYWJsZTsgfSkpLCB0LnB1c2guYXBwbHkodCwgbyk7IH0gcmV0dXJuIHQ7IH1cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQoZSkgeyBmb3IgKHZhciByID0gMTsgciA8IGFyZ3VtZW50cy5sZW5ndGg7IHIrKykgeyB2YXIgdCA9IG51bGwgIT0gYXJndW1lbnRzW3JdID8gYXJndW1lbnRzW3JdIDoge307IHIgJSAyID8gb3duS2V5cyhPYmplY3QodCksICEwKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7ICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKGUsIHIsIHRbcl0pOyB9KSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpIDogb3duS2V5cyhPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24gKHIpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCwgcikpOyB9KTsgfSByZXR1cm4gZTsgfVxudmFyIF9fTkVYVEFVVEggPSB7XG4gIGJhc2VVcmw6ICgwLCBfcGFyc2VVcmwuZGVmYXVsdCkoKF9wcm9jZXNzJGVudiRORVhUQVVUSCA9IHByb2Nlc3MuZW52Lk5FWFRBVVRIX1VSTCkgIT09IG51bGwgJiYgX3Byb2Nlc3MkZW52JE5FWFRBVVRIICE9PSB2b2lkIDAgPyBfcHJvY2VzcyRlbnYkTkVYVEFVVEggOiBwcm9jZXNzLmVudi5WRVJDRUxfVVJMKS5vcmlnaW4sXG4gIGJhc2VQYXRoOiAoMCwgX3BhcnNlVXJsLmRlZmF1bHQpKHByb2Nlc3MuZW52Lk5FWFRBVVRIX1VSTCkucGF0aCxcbiAgYmFzZVVybFNlcnZlcjogKDAsIF9wYXJzZVVybC5kZWZhdWx0KSgoX3JlZiA9IChfcHJvY2VzcyRlbnYkTkVYVEFVVEgyID0gcHJvY2Vzcy5lbnYuTkVYVEFVVEhfVVJMX0lOVEVSTkFMKSAhPT0gbnVsbCAmJiBfcHJvY2VzcyRlbnYkTkVYVEFVVEgyICE9PSB2b2lkIDAgPyBfcHJvY2VzcyRlbnYkTkVYVEFVVEgyIDogcHJvY2Vzcy5lbnYuTkVYVEFVVEhfVVJMKSAhPT0gbnVsbCAmJiBfcmVmICE9PSB2b2lkIDAgPyBfcmVmIDogcHJvY2Vzcy5lbnYuVkVSQ0VMX1VSTCkub3JpZ2luLFxuICBiYXNlUGF0aFNlcnZlcjogKDAsIF9wYXJzZVVybC5kZWZhdWx0KSgoX3Byb2Nlc3MkZW52JE5FWFRBVVRIMyA9IHByb2Nlc3MuZW52Lk5FWFRBVVRIX1VSTF9JTlRFUk5BTCkgIT09IG51bGwgJiYgX3Byb2Nlc3MkZW52JE5FWFRBVVRIMyAhPT0gdm9pZCAwID8gX3Byb2Nlc3MkZW52JE5FWFRBVVRIMyA6IHByb2Nlc3MuZW52Lk5FWFRBVVRIX1VSTCkucGF0aCxcbiAgX2xhc3RTeW5jOiAwLFxuICBfc2Vzc2lvbjogdW5kZWZpbmVkLFxuICBfZ2V0U2Vzc2lvbjogZnVuY3Rpb24gX2dldFNlc3Npb24oKSB7fVxufTtcbnZhciBicm9hZGNhc3QgPSAoMCwgX3V0aWxzLkJyb2FkY2FzdENoYW5uZWwpKCk7XG52YXIgbG9nZ2VyID0gKDAsIF9sb2dnZXIyLnByb3h5TG9nZ2VyKShfbG9nZ2VyMi5kZWZhdWx0LCBfX05FWFRBVVRILmJhc2VQYXRoKTtcbmZ1bmN0aW9uIHVzZU9ubGluZSgpIHtcbiAgdmFyIF9SZWFjdCR1c2VTdGF0ZSA9IFJlYWN0LnVzZVN0YXRlKHR5cGVvZiBuYXZpZ2F0b3IgIT09IFwidW5kZWZpbmVkXCIgPyBuYXZpZ2F0b3Iub25MaW5lIDogZmFsc2UpLFxuICAgIF9SZWFjdCR1c2VTdGF0ZTIgPSAoMCwgX3NsaWNlZFRvQXJyYXkyLmRlZmF1bHQpKF9SZWFjdCR1c2VTdGF0ZSwgMiksXG4gICAgaXNPbmxpbmUgPSBfUmVhY3QkdXNlU3RhdGUyWzBdLFxuICAgIHNldElzT25saW5lID0gX1JlYWN0JHVzZVN0YXRlMlsxXTtcbiAgdmFyIHNldE9ubGluZSA9IGZ1bmN0aW9uIHNldE9ubGluZSgpIHtcbiAgICByZXR1cm4gc2V0SXNPbmxpbmUodHJ1ZSk7XG4gIH07XG4gIHZhciBzZXRPZmZsaW5lID0gZnVuY3Rpb24gc2V0T2ZmbGluZSgpIHtcbiAgICByZXR1cm4gc2V0SXNPbmxpbmUoZmFsc2UpO1xuICB9O1xuICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwib25saW5lXCIsIHNldE9ubGluZSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJvZmZsaW5lXCIsIHNldE9mZmxpbmUpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm9ubGluZVwiLCBzZXRPbmxpbmUpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJvZmZsaW5lXCIsIHNldE9mZmxpbmUpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgcmV0dXJuIGlzT25saW5lO1xufVxudmFyIFNlc3Npb25Db250ZXh0ID0gZXhwb3J0cy5TZXNzaW9uQ29udGV4dCA9IChfUmVhY3QkY3JlYXRlQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQpID09PSBudWxsIHx8IF9SZWFjdCRjcmVhdGVDb250ZXh0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfUmVhY3QkY3JlYXRlQ29udGV4dC5jYWxsKFJlYWN0LCB1bmRlZmluZWQpO1xuZnVuY3Rpb24gdXNlU2Vzc2lvbihvcHRpb25zKSB7XG4gIGlmICghU2Vzc2lvbkNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWFjdCBDb250ZXh0IGlzIHVuYXZhaWxhYmxlIGluIFNlcnZlciBDb21wb25lbnRzXCIpO1xuICB9XG4gIHZhciB2YWx1ZSA9IFJlYWN0LnVzZUNvbnRleHQoU2Vzc2lvbkNvbnRleHQpO1xuICBpZiAoIXZhbHVlICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIltuZXh0LWF1dGhdOiBgdXNlU2Vzc2lvbmAgbXVzdCBiZSB3cmFwcGVkIGluIGEgPFNlc3Npb25Qcm92aWRlciAvPlwiKTtcbiAgfVxuICB2YXIgX3JlZjIgPSBvcHRpb25zICE9PSBudWxsICYmIG9wdGlvbnMgIT09IHZvaWQgMCA/IG9wdGlvbnMgOiB7fSxcbiAgICByZXF1aXJlZCA9IF9yZWYyLnJlcXVpcmVkLFxuICAgIG9uVW5hdXRoZW50aWNhdGVkID0gX3JlZjIub25VbmF1dGhlbnRpY2F0ZWQ7XG4gIHZhciByZXF1aXJlZEFuZE5vdExvYWRpbmcgPSByZXF1aXJlZCAmJiB2YWx1ZS5zdGF0dXMgPT09IFwidW5hdXRoZW50aWNhdGVkXCI7XG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHJlcXVpcmVkQW5kTm90TG9hZGluZykge1xuICAgICAgdmFyIHVybCA9IFwiL2FwaS9hdXRoL3NpZ25pbj9cIi5jb25jYXQobmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgIGVycm9yOiBcIlNlc3Npb25SZXF1aXJlZFwiLFxuICAgICAgICBjYWxsYmFja1VybDogd2luZG93LmxvY2F0aW9uLmhyZWZcbiAgICAgIH0pKTtcbiAgICAgIGlmIChvblVuYXV0aGVudGljYXRlZCkgb25VbmF1dGhlbnRpY2F0ZWQoKTtlbHNlIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgIH1cbiAgfSwgW3JlcXVpcmVkQW5kTm90TG9hZGluZywgb25VbmF1dGhlbnRpY2F0ZWRdKTtcbiAgaWYgKHJlcXVpcmVkQW5kTm90TG9hZGluZykge1xuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB2YWx1ZS5kYXRhLFxuICAgICAgdXBkYXRlOiB2YWx1ZS51cGRhdGUsXG4gICAgICBzdGF0dXM6IFwibG9hZGluZ1wiXG4gICAgfTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5mdW5jdGlvbiBnZXRTZXNzaW9uKF94KSB7XG4gIHJldHVybiBfZ2V0U2Vzc2lvbjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9nZXRTZXNzaW9uMigpIHtcbiAgX2dldFNlc3Npb24yID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMi5kZWZhdWx0KShfcmVnZW5lcmF0b3IuZGVmYXVsdC5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzKHBhcmFtcykge1xuICAgIHZhciBfcGFyYW1zJGJyb2FkY2FzdDtcbiAgICB2YXIgc2Vzc2lvbjtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yLmRlZmF1bHQud3JhcChmdW5jdGlvbiBfY2FsbGVlMyQoX2NvbnRleHQzKSB7XG4gICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDMucHJldiA9IF9jb250ZXh0My5uZXh0KSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDI7XG4gICAgICAgICAgcmV0dXJuICgwLCBfdXRpbHMuZmV0Y2hEYXRhKShcInNlc3Npb25cIiwgX19ORVhUQVVUSCwgbG9nZ2VyLCBwYXJhbXMpO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgc2Vzc2lvbiA9IF9jb250ZXh0My5zZW50O1xuICAgICAgICAgIGlmICgoX3BhcmFtcyRicm9hZGNhc3QgPSBwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuYnJvYWRjYXN0KSAhPT0gbnVsbCAmJiBfcGFyYW1zJGJyb2FkY2FzdCAhPT0gdm9pZCAwID8gX3BhcmFtcyRicm9hZGNhc3QgOiB0cnVlKSB7XG4gICAgICAgICAgICBicm9hZGNhc3QucG9zdCh7XG4gICAgICAgICAgICAgIGV2ZW50OiBcInNlc3Npb25cIixcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIHRyaWdnZXI6IFwiZ2V0U2Vzc2lvblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLmFicnVwdChcInJldHVyblwiLCBzZXNzaW9uKTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5zdG9wKCk7XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTMpO1xuICB9KSk7XG4gIHJldHVybiBfZ2V0U2Vzc2lvbjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIGdldENzcmZUb2tlbihfeDIpIHtcbiAgcmV0dXJuIF9nZXRDc3JmVG9rZW4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9nZXRDc3JmVG9rZW4oKSB7XG4gIF9nZXRDc3JmVG9rZW4gPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQocGFyYW1zKSB7XG4gICAgdmFyIHJlc3BvbnNlO1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3IuZGVmYXVsdC53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHtcbiAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5wcmV2ID0gX2NvbnRleHQ0Lm5leHQpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gMjtcbiAgICAgICAgICByZXR1cm4gKDAsIF91dGlscy5mZXRjaERhdGEpKFwiY3NyZlwiLCBfX05FWFRBVVRILCBsb2dnZXIsIHBhcmFtcyk7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICByZXNwb25zZSA9IF9jb250ZXh0NC5zZW50O1xuICAgICAgICAgIHJldHVybiBfY29udGV4dDQuYWJydXB0KFwicmV0dXJuXCIsIHJlc3BvbnNlID09PSBudWxsIHx8IHJlc3BvbnNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNwb25zZS5jc3JmVG9rZW4pO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LnN0b3AoKTtcbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlNCk7XG4gIH0pKTtcbiAgcmV0dXJuIF9nZXRDc3JmVG9rZW4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIGdldFByb3ZpZGVycygpIHtcbiAgcmV0dXJuIF9nZXRQcm92aWRlcnMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9nZXRQcm92aWRlcnMoKSB7XG4gIF9nZXRQcm92aWRlcnMgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZTUoKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvci5kZWZhdWx0LndyYXAoZnVuY3Rpb24gX2NhbGxlZTUkKF9jb250ZXh0NSkge1xuICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ1LnByZXYgPSBfY29udGV4dDUubmV4dCkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSAyO1xuICAgICAgICAgIHJldHVybiAoMCwgX3V0aWxzLmZldGNoRGF0YSkoXCJwcm92aWRlcnNcIiwgX19ORVhUQVVUSCwgbG9nZ2VyKTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHJldHVybiBfY29udGV4dDUuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0NS5zZW50KTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0NS5zdG9wKCk7XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTUpO1xuICB9KSk7XG4gIHJldHVybiBfZ2V0UHJvdmlkZXJzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiBzaWduSW4oX3gzLCBfeDQsIF94NSkge1xuICByZXR1cm4gX3NpZ25Jbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuZnVuY3Rpb24gX3NpZ25JbigpIHtcbiAgX3NpZ25JbiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjIuZGVmYXVsdCkoX3JlZ2VuZXJhdG9yLmRlZmF1bHQubWFyayhmdW5jdGlvbiBfY2FsbGVlNihwcm92aWRlciwgb3B0aW9ucywgYXV0aG9yaXphdGlvblBhcmFtcykge1xuICAgIHZhciBfcmVmNSwgX3JlZjUkY2FsbGJhY2tVcmwsIGNhbGxiYWNrVXJsLCBfcmVmNSRyZWRpcmVjdCwgcmVkaXJlY3QsIGJhc2VVcmwsIHByb3ZpZGVycywgaXNDcmVkZW50aWFscywgaXNFbWFpbCwgaXNTdXBwb3J0aW5nUmV0dXJuLCBzaWduSW5VcmwsIF9zaWduSW5VcmwsIHJlcywgZGF0YSwgX2RhdGEkdXJsLCB1cmwsIGVycm9yO1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3IuZGVmYXVsdC53cmFwKGZ1bmN0aW9uIF9jYWxsZWU2JChfY29udGV4dDYpIHtcbiAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Ni5wcmV2ID0gX2NvbnRleHQ2Lm5leHQpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIF9yZWY1ID0gb3B0aW9ucyAhPT0gbnVsbCAmJiBvcHRpb25zICE9PSB2b2lkIDAgPyBvcHRpb25zIDoge30sIF9yZWY1JGNhbGxiYWNrVXJsID0gX3JlZjUuY2FsbGJhY2tVcmwsIGNhbGxiYWNrVXJsID0gX3JlZjUkY2FsbGJhY2tVcmwgPT09IHZvaWQgMCA/IHdpbmRvdy5sb2NhdGlvbi5ocmVmIDogX3JlZjUkY2FsbGJhY2tVcmwsIF9yZWY1JHJlZGlyZWN0ID0gX3JlZjUucmVkaXJlY3QsIHJlZGlyZWN0ID0gX3JlZjUkcmVkaXJlY3QgPT09IHZvaWQgMCA/IHRydWUgOiBfcmVmNSRyZWRpcmVjdDtcbiAgICAgICAgICBiYXNlVXJsID0gKDAsIF91dGlscy5hcGlCYXNlVXJsKShfX05FWFRBVVRIKTtcbiAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDQ7XG4gICAgICAgICAgcmV0dXJuIGdldFByb3ZpZGVycygpO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcHJvdmlkZXJzID0gX2NvbnRleHQ2LnNlbnQ7XG4gICAgICAgICAgaWYgKHByb3ZpZGVycykge1xuICAgICAgICAgICAgX2NvbnRleHQ2Lm5leHQgPSA4O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gXCJcIi5jb25jYXQoYmFzZVVybCwgXCIvZXJyb3JcIik7XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ni5hYnJ1cHQoXCJyZXR1cm5cIik7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICBpZiAoISghcHJvdmlkZXIgfHwgIShwcm92aWRlciBpbiBwcm92aWRlcnMpKSkge1xuICAgICAgICAgICAgX2NvbnRleHQ2Lm5leHQgPSAxMTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IFwiXCIuY29uY2F0KGJhc2VVcmwsIFwiL3NpZ25pbj9cIikuY29uY2F0KG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgICAgY2FsbGJhY2tVcmw6IGNhbGxiYWNrVXJsXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIHJldHVybiBfY29udGV4dDYuYWJydXB0KFwicmV0dXJuXCIpO1xuICAgICAgICBjYXNlIDExOlxuICAgICAgICAgIGlzQ3JlZGVudGlhbHMgPSBwcm92aWRlcnNbcHJvdmlkZXJdLnR5cGUgPT09IFwiY3JlZGVudGlhbHNcIjtcbiAgICAgICAgICBpc0VtYWlsID0gcHJvdmlkZXJzW3Byb3ZpZGVyXS50eXBlID09PSBcImVtYWlsXCI7XG4gICAgICAgICAgaXNTdXBwb3J0aW5nUmV0dXJuID0gaXNDcmVkZW50aWFscyB8fCBpc0VtYWlsO1xuICAgICAgICAgIHNpZ25JblVybCA9IFwiXCIuY29uY2F0KGJhc2VVcmwsIFwiL1wiKS5jb25jYXQoaXNDcmVkZW50aWFscyA/IFwiY2FsbGJhY2tcIiA6IFwic2lnbmluXCIsIFwiL1wiKS5jb25jYXQocHJvdmlkZXIpO1xuICAgICAgICAgIF9zaWduSW5VcmwgPSBcIlwiLmNvbmNhdChzaWduSW5VcmwpLmNvbmNhdChhdXRob3JpemF0aW9uUGFyYW1zID8gXCI/XCIuY29uY2F0KG5ldyBVUkxTZWFyY2hQYXJhbXMoYXV0aG9yaXphdGlvblBhcmFtcykpIDogXCJcIik7XG4gICAgICAgICAgX2NvbnRleHQ2LnQwID0gZmV0Y2g7XG4gICAgICAgICAgX2NvbnRleHQ2LnQxID0gX3NpZ25JblVybDtcbiAgICAgICAgICBfY29udGV4dDYudDIgPSB7XG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiXG4gICAgICAgICAgfTtcbiAgICAgICAgICBfY29udGV4dDYudDMgPSBVUkxTZWFyY2hQYXJhbXM7XG4gICAgICAgICAgX2NvbnRleHQ2LnQ0ID0gX29iamVjdFNwcmVhZDtcbiAgICAgICAgICBfY29udGV4dDYudDUgPSBfb2JqZWN0U3ByZWFkKHt9LCBvcHRpb25zKTtcbiAgICAgICAgICBfY29udGV4dDYudDYgPSB7fTtcbiAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDI1O1xuICAgICAgICAgIHJldHVybiBnZXRDc3JmVG9rZW4oKTtcbiAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICBfY29udGV4dDYudDcgPSBfY29udGV4dDYuc2VudDtcbiAgICAgICAgICBfY29udGV4dDYudDggPSBjYWxsYmFja1VybDtcbiAgICAgICAgICBfY29udGV4dDYudDkgPSB7XG4gICAgICAgICAgICBjc3JmVG9rZW46IF9jb250ZXh0Ni50NyxcbiAgICAgICAgICAgIGNhbGxiYWNrVXJsOiBfY29udGV4dDYudDgsXG4gICAgICAgICAgICBqc29uOiB0cnVlXG4gICAgICAgICAgfTtcbiAgICAgICAgICBfY29udGV4dDYudDEwID0gKDAsIF9jb250ZXh0Ni50NCkoX2NvbnRleHQ2LnQ1LCBfY29udGV4dDYudDYsIF9jb250ZXh0Ni50OSk7XG4gICAgICAgICAgX2NvbnRleHQ2LnQxMSA9IG5ldyBfY29udGV4dDYudDMoX2NvbnRleHQ2LnQxMCk7XG4gICAgICAgICAgX2NvbnRleHQ2LnQxMiA9IHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXG4gICAgICAgICAgICBoZWFkZXJzOiBfY29udGV4dDYudDIsXG4gICAgICAgICAgICBib2R5OiBfY29udGV4dDYudDExXG4gICAgICAgICAgfTtcbiAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDMzO1xuICAgICAgICAgIHJldHVybiAoMCwgX2NvbnRleHQ2LnQwKShfY29udGV4dDYudDEsIF9jb250ZXh0Ni50MTIpO1xuICAgICAgICBjYXNlIDMzOlxuICAgICAgICAgIHJlcyA9IF9jb250ZXh0Ni5zZW50O1xuICAgICAgICAgIF9jb250ZXh0Ni5uZXh0ID0gMzY7XG4gICAgICAgICAgcmV0dXJuIHJlcy5qc29uKCk7XG4gICAgICAgIGNhc2UgMzY6XG4gICAgICAgICAgZGF0YSA9IF9jb250ZXh0Ni5zZW50O1xuICAgICAgICAgIGlmICghKHJlZGlyZWN0IHx8ICFpc1N1cHBvcnRpbmdSZXR1cm4pKSB7XG4gICAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDQyO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHVybCA9IChfZGF0YSR1cmwgPSBkYXRhLnVybCkgIT09IG51bGwgJiYgX2RhdGEkdXJsICE9PSB2b2lkIDAgPyBfZGF0YSR1cmwgOiBjYWxsYmFja1VybDtcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAgICAgICBpZiAodXJsLmluY2x1ZGVzKFwiI1wiKSkgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgIHJldHVybiBfY29udGV4dDYuYWJydXB0KFwicmV0dXJuXCIpO1xuICAgICAgICBjYXNlIDQyOlxuICAgICAgICAgIGVycm9yID0gbmV3IFVSTChkYXRhLnVybCkuc2VhcmNoUGFyYW1zLmdldChcImVycm9yXCIpO1xuICAgICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDQ2O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIF9jb250ZXh0Ni5uZXh0ID0gNDY7XG4gICAgICAgICAgcmV0dXJuIF9fTkVYVEFVVEguX2dldFNlc3Npb24oe1xuICAgICAgICAgICAgZXZlbnQ6IFwic3RvcmFnZVwiXG4gICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgNDY6XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ni5hYnJ1cHQoXCJyZXR1cm5cIiwge1xuICAgICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgICAgc3RhdHVzOiByZXMuc3RhdHVzLFxuICAgICAgICAgICAgb2s6IHJlcy5vayxcbiAgICAgICAgICAgIHVybDogZXJyb3IgPyBudWxsIDogZGF0YS51cmxcbiAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSA0NzpcbiAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgIHJldHVybiBfY29udGV4dDYuc3RvcCgpO1xuICAgICAgfVxuICAgIH0sIF9jYWxsZWU2KTtcbiAgfSkpO1xuICByZXR1cm4gX3NpZ25Jbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuZnVuY3Rpb24gc2lnbk91dChfeDYpIHtcbiAgcmV0dXJuIF9zaWduT3V0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiBfc2lnbk91dCgpIHtcbiAgX3NpZ25PdXQgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZTcob3B0aW9ucykge1xuICAgIHZhciBfb3B0aW9ucyRyZWRpcmVjdDtcbiAgICB2YXIgX3JlZjYsIF9yZWY2JGNhbGxiYWNrVXJsLCBjYWxsYmFja1VybCwgYmFzZVVybCwgZmV0Y2hPcHRpb25zLCByZXMsIGRhdGEsIF9kYXRhJHVybDIsIHVybDtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yLmRlZmF1bHQud3JhcChmdW5jdGlvbiBfY2FsbGVlNyQoX2NvbnRleHQ3KSB7XG4gICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDcucHJldiA9IF9jb250ZXh0Ny5uZXh0KSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBfcmVmNiA9IG9wdGlvbnMgIT09IG51bGwgJiYgb3B0aW9ucyAhPT0gdm9pZCAwID8gb3B0aW9ucyA6IHt9LCBfcmVmNiRjYWxsYmFja1VybCA9IF9yZWY2LmNhbGxiYWNrVXJsLCBjYWxsYmFja1VybCA9IF9yZWY2JGNhbGxiYWNrVXJsID09PSB2b2lkIDAgPyB3aW5kb3cubG9jYXRpb24uaHJlZiA6IF9yZWY2JGNhbGxiYWNrVXJsO1xuICAgICAgICAgIGJhc2VVcmwgPSAoMCwgX3V0aWxzLmFwaUJhc2VVcmwpKF9fTkVYVEFVVEgpO1xuICAgICAgICAgIF9jb250ZXh0Ny50MCA9IHtcbiAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCJcbiAgICAgICAgICB9O1xuICAgICAgICAgIF9jb250ZXh0Ny50MSA9IFVSTFNlYXJjaFBhcmFtcztcbiAgICAgICAgICBfY29udGV4dDcubmV4dCA9IDY7XG4gICAgICAgICAgcmV0dXJuIGdldENzcmZUb2tlbigpO1xuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgX2NvbnRleHQ3LnQyID0gX2NvbnRleHQ3LnNlbnQ7XG4gICAgICAgICAgX2NvbnRleHQ3LnQzID0gY2FsbGJhY2tVcmw7XG4gICAgICAgICAgX2NvbnRleHQ3LnQ0ID0ge1xuICAgICAgICAgICAgY3NyZlRva2VuOiBfY29udGV4dDcudDIsXG4gICAgICAgICAgICBjYWxsYmFja1VybDogX2NvbnRleHQ3LnQzLFxuICAgICAgICAgICAganNvbjogdHJ1ZVxuICAgICAgICAgIH07XG4gICAgICAgICAgX2NvbnRleHQ3LnQ1ID0gbmV3IF9jb250ZXh0Ny50MShfY29udGV4dDcudDQpO1xuICAgICAgICAgIGZldGNoT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXG4gICAgICAgICAgICBoZWFkZXJzOiBfY29udGV4dDcudDAsXG4gICAgICAgICAgICBib2R5OiBfY29udGV4dDcudDVcbiAgICAgICAgICB9O1xuICAgICAgICAgIF9jb250ZXh0Ny5uZXh0ID0gMTM7XG4gICAgICAgICAgcmV0dXJuIGZldGNoKFwiXCIuY29uY2F0KGJhc2VVcmwsIFwiL3NpZ25vdXRcIiksIGZldGNoT3B0aW9ucyk7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgcmVzID0gX2NvbnRleHQ3LnNlbnQ7XG4gICAgICAgICAgX2NvbnRleHQ3Lm5leHQgPSAxNjtcbiAgICAgICAgICByZXR1cm4gcmVzLmpzb24oKTtcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICBkYXRhID0gX2NvbnRleHQ3LnNlbnQ7XG4gICAgICAgICAgYnJvYWRjYXN0LnBvc3Qoe1xuICAgICAgICAgICAgZXZlbnQ6IFwic2Vzc2lvblwiLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICB0cmlnZ2VyOiBcInNpZ25vdXRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmICghKChfb3B0aW9ucyRyZWRpcmVjdCA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5yZWRpcmVjdCkgIT09IG51bGwgJiYgX29wdGlvbnMkcmVkaXJlY3QgIT09IHZvaWQgMCA/IF9vcHRpb25zJHJlZGlyZWN0IDogdHJ1ZSkpIHtcbiAgICAgICAgICAgIF9jb250ZXh0Ny5uZXh0ID0gMjM7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdXJsID0gKF9kYXRhJHVybDIgPSBkYXRhLnVybCkgIT09IG51bGwgJiYgX2RhdGEkdXJsMiAhPT0gdm9pZCAwID8gX2RhdGEkdXJsMiA6IGNhbGxiYWNrVXJsO1xuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgICAgIGlmICh1cmwuaW5jbHVkZXMoXCIjXCIpKSB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ny5hYnJ1cHQoXCJyZXR1cm5cIik7XG4gICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgX2NvbnRleHQ3Lm5leHQgPSAyNTtcbiAgICAgICAgICByZXR1cm4gX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbih7XG4gICAgICAgICAgICBldmVudDogXCJzdG9yYWdlXCJcbiAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQ3LmFicnVwdChcInJldHVyblwiLCBkYXRhKTtcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgIHJldHVybiBfY29udGV4dDcuc3RvcCgpO1xuICAgICAgfVxuICAgIH0sIF9jYWxsZWU3KTtcbiAgfSkpO1xuICByZXR1cm4gX3NpZ25PdXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIFNlc3Npb25Qcm92aWRlcihwcm9wcykge1xuICBpZiAoIVNlc3Npb25Db250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiUmVhY3QgQ29udGV4dCBpcyB1bmF2YWlsYWJsZSBpbiBTZXJ2ZXIgQ29tcG9uZW50c1wiKTtcbiAgfVxuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBiYXNlUGF0aCA9IHByb3BzLmJhc2VQYXRoLFxuICAgIHJlZmV0Y2hJbnRlcnZhbCA9IHByb3BzLnJlZmV0Y2hJbnRlcnZhbCxcbiAgICByZWZldGNoV2hlbk9mZmxpbmUgPSBwcm9wcy5yZWZldGNoV2hlbk9mZmxpbmU7XG4gIGlmIChiYXNlUGF0aCkgX19ORVhUQVVUSC5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICB2YXIgaGFzSW5pdGlhbFNlc3Npb24gPSBwcm9wcy5zZXNzaW9uICE9PSB1bmRlZmluZWQ7XG4gIF9fTkVYVEFVVEguX2xhc3RTeW5jID0gaGFzSW5pdGlhbFNlc3Npb24gPyAoMCwgX3V0aWxzLm5vdykoKSA6IDA7XG4gIHZhciBfUmVhY3QkdXNlU3RhdGUzID0gUmVhY3QudXNlU3RhdGUoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKGhhc0luaXRpYWxTZXNzaW9uKSBfX05FWFRBVVRILl9zZXNzaW9uID0gcHJvcHMuc2Vzc2lvbjtcbiAgICAgIHJldHVybiBwcm9wcy5zZXNzaW9uO1xuICAgIH0pLFxuICAgIF9SZWFjdCR1c2VTdGF0ZTQgPSAoMCwgX3NsaWNlZFRvQXJyYXkyLmRlZmF1bHQpKF9SZWFjdCR1c2VTdGF0ZTMsIDIpLFxuICAgIHNlc3Npb24gPSBfUmVhY3QkdXNlU3RhdGU0WzBdLFxuICAgIHNldFNlc3Npb24gPSBfUmVhY3QkdXNlU3RhdGU0WzFdO1xuICB2YXIgX1JlYWN0JHVzZVN0YXRlNSA9IFJlYWN0LnVzZVN0YXRlKCFoYXNJbml0aWFsU2Vzc2lvbiksXG4gICAgX1JlYWN0JHVzZVN0YXRlNiA9ICgwLCBfc2xpY2VkVG9BcnJheTIuZGVmYXVsdCkoX1JlYWN0JHVzZVN0YXRlNSwgMiksXG4gICAgbG9hZGluZyA9IF9SZWFjdCR1c2VTdGF0ZTZbMF0sXG4gICAgc2V0TG9hZGluZyA9IF9SZWFjdCR1c2VTdGF0ZTZbMV07XG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjIuZGVmYXVsdCkoX3JlZ2VuZXJhdG9yLmRlZmF1bHQubWFyayhmdW5jdGlvbiBfY2FsbGVlKCkge1xuICAgICAgdmFyIF9yZWY0LFxuICAgICAgICBldmVudCxcbiAgICAgICAgc3RvcmFnZUV2ZW50LFxuICAgICAgICBfYXJncyA9IGFyZ3VtZW50cztcbiAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IuZGVmYXVsdC53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7XG4gICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX3JlZjQgPSBfYXJncy5sZW5ndGggPiAwICYmIF9hcmdzWzBdICE9PSB1bmRlZmluZWQgPyBfYXJnc1swXSA6IHt9LCBldmVudCA9IF9yZWY0LmV2ZW50O1xuICAgICAgICAgICAgX2NvbnRleHQucHJldiA9IDE7XG4gICAgICAgICAgICBzdG9yYWdlRXZlbnQgPSBldmVudCA9PT0gXCJzdG9yYWdlXCI7XG4gICAgICAgICAgICBpZiAoIShzdG9yYWdlRXZlbnQgfHwgX19ORVhUQVVUSC5fc2Vzc2lvbiA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMTA7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX19ORVhUQVVUSC5fbGFzdFN5bmMgPSAoMCwgX3V0aWxzLm5vdykoKTtcbiAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA3O1xuICAgICAgICAgICAgcmV0dXJuIGdldFNlc3Npb24oe1xuICAgICAgICAgICAgICBicm9hZGNhc3Q6ICFzdG9yYWdlRXZlbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIF9fTkVYVEFVVEguX3Nlc3Npb24gPSBfY29udGV4dC5zZW50O1xuICAgICAgICAgICAgc2V0U2Vzc2lvbihfX05FWFRBVVRILl9zZXNzaW9uKTtcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5hYnJ1cHQoXCJyZXR1cm5cIik7XG4gICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgIGlmICghKCFldmVudCB8fCBfX05FWFRBVVRILl9zZXNzaW9uID09PSBudWxsIHx8ICgwLCBfdXRpbHMubm93KSgpIDwgX19ORVhUQVVUSC5fbGFzdFN5bmMpKSB7XG4gICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAxMjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KFwicmV0dXJuXCIpO1xuICAgICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgICBfX05FWFRBVVRILl9sYXN0U3luYyA9ICgwLCBfdXRpbHMubm93KSgpO1xuICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDE1O1xuICAgICAgICAgICAgcmV0dXJuIGdldFNlc3Npb24oKTtcbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgX19ORVhUQVVUSC5fc2Vzc2lvbiA9IF9jb250ZXh0LnNlbnQ7XG4gICAgICAgICAgICBzZXRTZXNzaW9uKF9fTkVYVEFVVEguX3Nlc3Npb24pO1xuICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDIyO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSAxOTtcbiAgICAgICAgICAgIF9jb250ZXh0LnQwID0gX2NvbnRleHRbXCJjYXRjaFwiXSgxKTtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcIkNMSUVOVF9TRVNTSU9OX0VSUk9SXCIsIF9jb250ZXh0LnQwKTtcbiAgICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgICAgX2NvbnRleHQucHJldiA9IDIyO1xuICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuZmluaXNoKDIyKTtcbiAgICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIF9jYWxsZWUsIG51bGwsIFtbMSwgMTksIDIyLCAyNV1dKTtcbiAgICB9KSk7XG4gICAgX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbigpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICBfX05FWFRBVVRILl9sYXN0U3luYyA9IDA7XG4gICAgICBfX05FWFRBVVRILl9zZXNzaW9uID0gdW5kZWZpbmVkO1xuICAgICAgX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbiA9IGZ1bmN0aW9uICgpIHt9O1xuICAgIH07XG4gIH0sIFtdKTtcbiAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdW5zdWJzY3JpYmUgPSBicm9hZGNhc3QucmVjZWl2ZShmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbih7XG4gICAgICAgIGV2ZW50OiBcInN0b3JhZ2VcIlxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB1bnN1YnNjcmliZSgpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgX3Byb3BzJHJlZmV0Y2hPbldpbmRvID0gcHJvcHMucmVmZXRjaE9uV2luZG93Rm9jdXMsXG4gICAgICByZWZldGNoT25XaW5kb3dGb2N1cyA9IF9wcm9wcyRyZWZldGNoT25XaW5kbyA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9wcm9wcyRyZWZldGNoT25XaW5kbztcbiAgICB2YXIgdmlzaWJpbGl0eUhhbmRsZXIgPSBmdW5jdGlvbiB2aXNpYmlsaXR5SGFuZGxlcigpIHtcbiAgICAgIGlmIChyZWZldGNoT25XaW5kb3dGb2N1cyAmJiBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSBfX05FWFRBVVRILl9nZXRTZXNzaW9uKHtcbiAgICAgICAgZXZlbnQ6IFwidmlzaWJpbGl0eWNoYW5nZVwiXG4gICAgICB9KTtcbiAgICB9O1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsIHZpc2liaWxpdHlIYW5kbGVyLCBmYWxzZSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLCB2aXNpYmlsaXR5SGFuZGxlciwgZmFsc2UpO1xuICAgIH07XG4gIH0sIFtwcm9wcy5yZWZldGNoT25XaW5kb3dGb2N1c10pO1xuICB2YXIgaXNPbmxpbmUgPSB1c2VPbmxpbmUoKTtcbiAgdmFyIHNob3VsZFJlZmV0Y2ggPSByZWZldGNoV2hlbk9mZmxpbmUgIT09IGZhbHNlIHx8IGlzT25saW5lO1xuICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChyZWZldGNoSW50ZXJ2YWwgJiYgc2hvdWxkUmVmZXRjaCkge1xuICAgICAgdmFyIHJlZmV0Y2hJbnRlcnZhbFRpbWVyID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX19ORVhUQVVUSC5fc2Vzc2lvbikge1xuICAgICAgICAgIF9fTkVYVEFVVEguX2dldFNlc3Npb24oe1xuICAgICAgICAgICAgZXZlbnQ6IFwicG9sbFwiXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIHJlZmV0Y2hJbnRlcnZhbCAqIDEwMDApO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGNsZWFySW50ZXJ2YWwocmVmZXRjaEludGVydmFsVGltZXIpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtyZWZldGNoSW50ZXJ2YWwsIHNob3VsZFJlZmV0Y2hdKTtcbiAgdmFyIHZhbHVlID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IHNlc3Npb24sXG4gICAgICBzdGF0dXM6IGxvYWRpbmcgPyBcImxvYWRpbmdcIiA6IHNlc3Npb24gPyBcImF1dGhlbnRpY2F0ZWRcIiA6IFwidW5hdXRoZW50aWNhdGVkXCIsXG4gICAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZShkYXRhKSB7XG4gICAgICAgIHJldHVybiAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7XG4gICAgICAgICAgdmFyIG5ld1Nlc3Npb247XG4gICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvci5kZWZhdWx0LndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0Mikge1xuICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLnByZXYgPSBfY29udGV4dDIubmV4dCkge1xuICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgaWYgKCEobG9hZGluZyB8fCAhc2Vzc2lvbikpIHtcbiAgICAgICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMjtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLmFicnVwdChcInJldHVyblwiKTtcbiAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLnQwID0gX3V0aWxzLmZldGNoRGF0YTtcbiAgICAgICAgICAgICAgICBfY29udGV4dDIudDEgPSBfX05FWFRBVVRIO1xuICAgICAgICAgICAgICAgIF9jb250ZXh0Mi50MiA9IGxvZ2dlcjtcbiAgICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDg7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldENzcmZUb2tlbigpO1xuICAgICAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLnQzID0gX2NvbnRleHQyLnNlbnQ7XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLnQ0ID0gZGF0YTtcbiAgICAgICAgICAgICAgICBfY29udGV4dDIudDUgPSB7XG4gICAgICAgICAgICAgICAgICBjc3JmVG9rZW46IF9jb250ZXh0Mi50MyxcbiAgICAgICAgICAgICAgICAgIGRhdGE6IF9jb250ZXh0Mi50NFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLnQ2ID0ge1xuICAgICAgICAgICAgICAgICAgYm9keTogX2NvbnRleHQyLnQ1XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBfY29udGV4dDIudDcgPSB7XG4gICAgICAgICAgICAgICAgICByZXE6IF9jb250ZXh0Mi50NlxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAxNTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9jb250ZXh0Mi50MCkoXCJzZXNzaW9uXCIsIF9jb250ZXh0Mi50MSwgX2NvbnRleHQyLnQyLCBfY29udGV4dDIudDcpO1xuICAgICAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgICAgIG5ld1Nlc3Npb24gPSBfY29udGV4dDIuc2VudDtcbiAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBpZiAobmV3U2Vzc2lvbikge1xuICAgICAgICAgICAgICAgICAgc2V0U2Vzc2lvbihuZXdTZXNzaW9uKTtcbiAgICAgICAgICAgICAgICAgIGJyb2FkY2FzdC5wb3N0KHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ6IFwic2Vzc2lvblwiLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcjogXCJnZXRTZXNzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuYWJydXB0KFwicmV0dXJuXCIsIG5ld1Nlc3Npb24pO1xuICAgICAgICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgX2NhbGxlZTIpO1xuICAgICAgICB9KSkoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbc2Vzc2lvbiwgbG9hZGluZ10pO1xuICByZXR1cm4gKDAsIF9qc3hSdW50aW1lLmpzeCkoU2Vzc2lvbkNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gIH0pO1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next-auth/react/index.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/next-auth/react/types.js":
/*!***********************************************!*\
!*** ./node_modules/next-auth/react/types.js ***!
\***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvcmVhY3QvdHlwZXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvcmVhY3QvdHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next-auth/react/types.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/next-auth/utils/logger.js":
/*!************************************************!*\
!*** ./node_modules/next-auth/utils/logger.js ***!
\************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nexports.proxyLogger = proxyLogger;\nexports.setLogger = setLogger;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/regenerator/index.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"(app-pages-browser)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nvar _errors = __webpack_require__(/*! ../core/errors */ \"(app-pages-browser)/./node_modules/next-auth/core/errors.js\");\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction formatError(o) {\n if (o instanceof Error && !(o instanceof _errors.UnknownError)) {\n return {\n message: o.message,\n stack: o.stack,\n name: o.name\n };\n }\n if (hasErrorProperty(o)) {\n var _o$message;\n o.error = formatError(o.error);\n o.message = (_o$message = o.message) !== null && _o$message !== void 0 ? _o$message : o.error.message;\n }\n return o;\n}\nfunction hasErrorProperty(x) {\n return !!(x !== null && x !== void 0 && x.error);\n}\nvar _logger = {\n error: function error(code, metadata) {\n metadata = formatError(metadata);\n console.error(\"[next-auth][error][\".concat(code, \"]\"), \"\\nhttps://next-auth.js.org/errors#\".concat(code.toLowerCase()), metadata.message, metadata);\n },\n warn: function warn(code) {\n console.warn(\"[next-auth][warn][\".concat(code, \"]\"), \"\\nhttps://next-auth.js.org/warnings#\".concat(code.toLowerCase()));\n },\n debug: function debug(code, metadata) {\n console.log(\"[next-auth][debug][\".concat(code, \"]\"), metadata);\n }\n};\nfunction setLogger() {\n var newLogger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var debug = arguments.length > 1 ? arguments[1] : undefined;\n if (!debug) _logger.debug = function () {};\n if (newLogger.error) _logger.error = newLogger.error;\n if (newLogger.warn) _logger.warn = newLogger.warn;\n if (newLogger.debug) _logger.debug = newLogger.debug;\n}\nvar _default = exports[\"default\"] = _logger;\nfunction proxyLogger() {\n var logger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _logger;\n var basePath = arguments.length > 1 ? arguments[1] : undefined;\n try {\n if (typeof window === \"undefined\") {\n return logger;\n }\n var clientLogger = {};\n var _loop = function _loop(level) {\n clientLogger[level] = function () {\n var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(code, metadata) {\n var url, body;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _logger[level](code, metadata);\n if (level === \"error\") {\n metadata = formatError(metadata);\n }\n ;\n metadata.client = true;\n url = \"\".concat(basePath, \"/_log\");\n body = new URLSearchParams(_objectSpread({\n level: level,\n code: code\n }, metadata));\n if (!navigator.sendBeacon) {\n _context.next = 8;\n break;\n }\n return _context.abrupt(\"return\", navigator.sendBeacon(url, body));\n case 8:\n _context.next = 10;\n return fetch(url, {\n method: \"POST\",\n body: body,\n keepalive: true\n });\n case 10:\n return _context.abrupt(\"return\", _context.sent);\n case 11:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x, _x2) {\n return _ref.apply(this, arguments);\n };\n }();\n };\n for (var level in logger) {\n _loop(level);\n }\n return clientLogger;\n } catch (_unused) {\n return _logger;\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvdXRpbHMvbG9nZ2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLHdJQUE4QztBQUNuRiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmLG1CQUFtQjtBQUNuQixpQkFBaUI7QUFDakIsMENBQTBDLG1CQUFPLENBQUMsMEdBQTRCO0FBQzlFLDhDQUE4QyxtQkFBTyxDQUFDLDBIQUF1QztBQUM3RixnREFBZ0QsbUJBQU8sQ0FBQyw4SEFBeUM7QUFDakcsY0FBYyxtQkFBTyxDQUFDLG1GQUFnQjtBQUN0Qyx5QkFBeUIsd0JBQXdCLG9DQUFvQyx5Q0FBeUMsa0NBQWtDLDBEQUEwRCwwQkFBMEI7QUFDcFAsNEJBQTRCLGdCQUFnQixzQkFBc0IsT0FBTyxrREFBa0Qsc0RBQXNELDRDQUE0QyxtSkFBbUoscUVBQXFFLEtBQUs7QUFDMWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGtCQUFlO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL25leHQtYXV0aC91dGlscy9sb2dnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbmV4cG9ydHMucHJveHlMb2dnZXIgPSBwcm94eUxvZ2dlcjtcbmV4cG9ydHMuc2V0TG9nZ2VyID0gc2V0TG9nZ2VyO1xudmFyIF9yZWdlbmVyYXRvciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yXCIpKTtcbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eVwiKSk7XG52YXIgX2FzeW5jVG9HZW5lcmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yXCIpKTtcbnZhciBfZXJyb3JzID0gcmVxdWlyZShcIi4uL2NvcmUvZXJyb3JzXCIpO1xuZnVuY3Rpb24gb3duS2V5cyhlLCByKSB7IHZhciB0ID0gT2JqZWN0LmtleXMoZSk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBvID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTsgciAmJiAobyA9IG8uZmlsdGVyKGZ1bmN0aW9uIChyKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsIHIpLmVudW1lcmFibGU7IH0pKSwgdC5wdXNoLmFwcGx5KHQsIG8pOyB9IHJldHVybiB0OyB9XG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKGUpIHsgZm9yICh2YXIgciA9IDE7IHIgPCBhcmd1bWVudHMubGVuZ3RoOyByKyspIHsgdmFyIHQgPSBudWxsICE9IGFyZ3VtZW50c1tyXSA/IGFyZ3VtZW50c1tyXSA6IHt9OyByICUgMiA/IG93bktleXMoT2JqZWN0KHQpLCAhMCkuZm9yRWFjaChmdW5jdGlvbiAocikgeyAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShlLCByLCB0W3JdKTsgfSkgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKSA6IG93bktleXMoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCByLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsIHIpKTsgfSk7IH0gcmV0dXJuIGU7IH1cbmZ1bmN0aW9uIGZvcm1hdEVycm9yKG8pIHtcbiAgaWYgKG8gaW5zdGFuY2VvZiBFcnJvciAmJiAhKG8gaW5zdGFuY2VvZiBfZXJyb3JzLlVua25vd25FcnJvcikpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZTogby5tZXNzYWdlLFxuICAgICAgc3RhY2s6IG8uc3RhY2ssXG4gICAgICBuYW1lOiBvLm5hbWVcbiAgICB9O1xuICB9XG4gIGlmIChoYXNFcnJvclByb3BlcnR5KG8pKSB7XG4gICAgdmFyIF9vJG1lc3NhZ2U7XG4gICAgby5lcnJvciA9IGZvcm1hdEVycm9yKG8uZXJyb3IpO1xuICAgIG8ubWVzc2FnZSA9IChfbyRtZXNzYWdlID0gby5tZXNzYWdlKSAhPT0gbnVsbCAmJiBfbyRtZXNzYWdlICE9PSB2b2lkIDAgPyBfbyRtZXNzYWdlIDogby5lcnJvci5tZXNzYWdlO1xuICB9XG4gIHJldHVybiBvO1xufVxuZnVuY3Rpb24gaGFzRXJyb3JQcm9wZXJ0eSh4KSB7XG4gIHJldHVybiAhISh4ICE9PSBudWxsICYmIHggIT09IHZvaWQgMCAmJiB4LmVycm9yKTtcbn1cbnZhciBfbG9nZ2VyID0ge1xuICBlcnJvcjogZnVuY3Rpb24gZXJyb3IoY29kZSwgbWV0YWRhdGEpIHtcbiAgICBtZXRhZGF0YSA9IGZvcm1hdEVycm9yKG1ldGFkYXRhKTtcbiAgICBjb25zb2xlLmVycm9yKFwiW25leHQtYXV0aF1bZXJyb3JdW1wiLmNvbmNhdChjb2RlLCBcIl1cIiksIFwiXFxuaHR0cHM6Ly9uZXh0LWF1dGguanMub3JnL2Vycm9ycyNcIi5jb25jYXQoY29kZS50b0xvd2VyQ2FzZSgpKSwgbWV0YWRhdGEubWVzc2FnZSwgbWV0YWRhdGEpO1xuICB9LFxuICB3YXJuOiBmdW5jdGlvbiB3YXJuKGNvZGUpIHtcbiAgICBjb25zb2xlLndhcm4oXCJbbmV4dC1hdXRoXVt3YXJuXVtcIi5jb25jYXQoY29kZSwgXCJdXCIpLCBcIlxcbmh0dHBzOi8vbmV4dC1hdXRoLmpzLm9yZy93YXJuaW5ncyNcIi5jb25jYXQoY29kZS50b0xvd2VyQ2FzZSgpKSk7XG4gIH0sXG4gIGRlYnVnOiBmdW5jdGlvbiBkZWJ1Zyhjb2RlLCBtZXRhZGF0YSkge1xuICAgIGNvbnNvbGUubG9nKFwiW25leHQtYXV0aF1bZGVidWddW1wiLmNvbmNhdChjb2RlLCBcIl1cIiksIG1ldGFkYXRhKTtcbiAgfVxufTtcbmZ1bmN0aW9uIHNldExvZ2dlcigpIHtcbiAgdmFyIG5ld0xvZ2dlciA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gIHZhciBkZWJ1ZyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICBpZiAoIWRlYnVnKSBfbG9nZ2VyLmRlYnVnID0gZnVuY3Rpb24gKCkge307XG4gIGlmIChuZXdMb2dnZXIuZXJyb3IpIF9sb2dnZXIuZXJyb3IgPSBuZXdMb2dnZXIuZXJyb3I7XG4gIGlmIChuZXdMb2dnZXIud2FybikgX2xvZ2dlci53YXJuID0gbmV3TG9nZ2VyLndhcm47XG4gIGlmIChuZXdMb2dnZXIuZGVidWcpIF9sb2dnZXIuZGVidWcgPSBuZXdMb2dnZXIuZGVidWc7XG59XG52YXIgX2RlZmF1bHQgPSBleHBvcnRzLmRlZmF1bHQgPSBfbG9nZ2VyO1xuZnVuY3Rpb24gcHJveHlMb2dnZXIoKSB7XG4gIHZhciBsb2dnZXIgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IF9sb2dnZXI7XG4gIHZhciBiYXNlUGF0aCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICB0cnkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICByZXR1cm4gbG9nZ2VyO1xuICAgIH1cbiAgICB2YXIgY2xpZW50TG9nZ2VyID0ge307XG4gICAgdmFyIF9sb29wID0gZnVuY3Rpb24gX2xvb3AobGV2ZWwpIHtcbiAgICAgIGNsaWVudExvZ2dlcltsZXZlbF0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfcmVmID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMi5kZWZhdWx0KShfcmVnZW5lcmF0b3IuZGVmYXVsdC5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoY29kZSwgbWV0YWRhdGEpIHtcbiAgICAgICAgICB2YXIgdXJsLCBib2R5O1xuICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IuZGVmYXVsdC53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7XG4gICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkge1xuICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgX2xvZ2dlcltsZXZlbF0oY29kZSwgbWV0YWRhdGEpO1xuICAgICAgICAgICAgICAgIGlmIChsZXZlbCA9PT0gXCJlcnJvclwiKSB7XG4gICAgICAgICAgICAgICAgICBtZXRhZGF0YSA9IGZvcm1hdEVycm9yKG1ldGFkYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgIG1ldGFkYXRhLmNsaWVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdXJsID0gXCJcIi5jb25jYXQoYmFzZVBhdGgsIFwiL19sb2dcIik7XG4gICAgICAgICAgICAgICAgYm9keSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgICAgICAgICBsZXZlbDogbGV2ZWwsXG4gICAgICAgICAgICAgICAgICBjb2RlOiBjb2RlXG4gICAgICAgICAgICAgICAgfSwgbWV0YWRhdGEpKTtcbiAgICAgICAgICAgICAgICBpZiAoIW5hdmlnYXRvci5zZW5kQmVhY29uKSB7XG4gICAgICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gODtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KFwicmV0dXJuXCIsIG5hdmlnYXRvci5zZW5kQmVhY29uKHVybCwgYm9keSkpO1xuICAgICAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDEwO1xuICAgICAgICAgICAgICAgIHJldHVybiBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICAgICAgICAgICAga2VlcGFsaXZlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmFicnVwdChcInJldHVyblwiLCBfY29udGV4dC5zZW50KTtcbiAgICAgICAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgX2NhbGxlZSk7XG4gICAgICAgIH0pKTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeCwgX3gyKSB7XG4gICAgICAgICAgcmV0dXJuIF9yZWYuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgfTtcbiAgICAgIH0oKTtcbiAgICB9O1xuICAgIGZvciAodmFyIGxldmVsIGluIGxvZ2dlcikge1xuICAgICAgX2xvb3AobGV2ZWwpO1xuICAgIH1cbiAgICByZXR1cm4gY2xpZW50TG9nZ2VyO1xuICB9IGNhdGNoIChfdW51c2VkKSB7XG4gICAgcmV0dXJuIF9sb2dnZXI7XG4gIH1cbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next-auth/utils/logger.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/next-auth/utils/parse-url.js":
/*!***************************************************!*\
!*** ./node_modules/next-auth/utils/parse-url.js ***!
\***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = parseUrl;\nfunction parseUrl(url) {\n var _url2;\n const defaultUrl = new URL(\"http://localhost:3000/api/auth\");\n if (url && !url.startsWith(\"http\")) {\n url = `https://${url}`;\n }\n const _url = new URL((_url2 = url) !== null && _url2 !== void 0 ? _url2 : defaultUrl);\n const path = (_url.pathname === \"/\" ? defaultUrl.pathname : _url.pathname).replace(/\\/$/, \"\");\n const base = `${_url.origin}${path}`;\n return {\n origin: _url.origin,\n host: _url.host,\n path,\n base,\n toString: () => base\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvdXRpbHMvcGFyc2UtdXJsLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsSUFBSTtBQUN6QjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsWUFBWSxFQUFFLEtBQUs7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL3V0aWxzL3BhcnNlLXVybC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHBhcnNlVXJsO1xuZnVuY3Rpb24gcGFyc2VVcmwodXJsKSB7XG4gIHZhciBfdXJsMjtcbiAgY29uc3QgZGVmYXVsdFVybCA9IG5ldyBVUkwoXCJodHRwOi8vbG9jYWxob3N0OjMwMDAvYXBpL2F1dGhcIik7XG4gIGlmICh1cmwgJiYgIXVybC5zdGFydHNXaXRoKFwiaHR0cFwiKSkge1xuICAgIHVybCA9IGBodHRwczovLyR7dXJsfWA7XG4gIH1cbiAgY29uc3QgX3VybCA9IG5ldyBVUkwoKF91cmwyID0gdXJsKSAhPT0gbnVsbCAmJiBfdXJsMiAhPT0gdm9pZCAwID8gX3VybDIgOiBkZWZhdWx0VXJsKTtcbiAgY29uc3QgcGF0aCA9IChfdXJsLnBhdGhuYW1lID09PSBcIi9cIiA/IGRlZmF1bHRVcmwucGF0aG5hbWUgOiBfdXJsLnBhdGhuYW1lKS5yZXBsYWNlKC9cXC8kLywgXCJcIik7XG4gIGNvbnN0IGJhc2UgPSBgJHtfdXJsLm9yaWdpbn0ke3BhdGh9YDtcbiAgcmV0dXJuIHtcbiAgICBvcmlnaW46IF91cmwub3JpZ2luLFxuICAgIGhvc3Q6IF91cmwuaG9zdCxcbiAgICBwYXRoLFxuICAgIGJhc2UsXG4gICAgdG9TdHJpbmc6ICgpID0+IGJhc2VcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next-auth/utils/parse-url.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/next/dist/api/navigation.js":
/*!**************************************************!*\
!*** ./node_modules/next/dist/api/navigation.js ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/components/navigation */ \"(app-pages-browser)/./node_modules/next/dist/client/components/navigation.js\");\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_client_components_navigation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=navigation.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL25hdmlnYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWdEOztBQUVoRCIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9uYXZpZ2F0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4uL2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24nO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1uYXZpZ2F0aW9uLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/api/navigation.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2Falma%2Fnextgen%2FNeah-mail%2Fapp%2Fcourrier%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!":
/*!*********************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2Falma%2Fnextgen%2FNeah-mail%2Fapp%2Fcourrier%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false! ***!
\*********************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
eval(__webpack_require__.ts("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/courrier/page.tsx */ \"(app-pages-browser)/./app/courrier/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWNsaWVudC1lbnRyeS1sb2FkZXIuanM/bW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRmFsbWElMkZuZXh0Z2VuJTJGTmVhaC1tYWlsJTJGYXBwJTJGY291cnJpZXIlMkZwYWdlLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9ZmFsc2UhIiwibWFwcGluZ3MiOiJBQUFBLHdLQUF1RiIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9hcHAvY291cnJpZXIvcGFnZS50c3hcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2Falma%2Fnextgen%2FNeah-mail%2Fapp%2Fcourrier%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-client-wrapper.js":
/*!**************************************************************************************************!*\
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-client-wrapper.js ***!
\**************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("// This file must be bundled in the app's client layer, it shouldn't be directly\n// imported by the server.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n callServer: function() {\n return _appcallserver.callServer;\n },\n createServerReference: function() {\n return createServerReference;\n },\n findSourceMapURL: function() {\n return _appfindsourcemapurl.findSourceMapURL;\n }\n});\nconst _appcallserver = __webpack_require__(/*! next/dist/client/app-call-server */ \"(app-pages-browser)/./node_modules/next/dist/client/app-call-server.js\");\nconst _appfindsourcemapurl = __webpack_require__(/*! next/dist/client/app-find-source-map-url */ \"(app-pages-browser)/./node_modules/next/dist/client/app-find-source-map-url.js\");\nconst createServerReference = ( false ? 0 : __webpack_require__(/*! react-server-dom-webpack/client */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-server-dom-webpack/client.js\")).createServerReference;\n\n//# sourceMappingURL=action-client-wrapper.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWxvYWRlci9hY3Rpb24tY2xpZW50LXdyYXBwZXIuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsdUJBQXVCLG1CQUFPLENBQUMsZ0hBQWtDO0FBQ2pFLDZCQUE2QixtQkFBTyxDQUFDLGdJQUEwQztBQUMvRSwrQkFBK0IsTUFBMEIsR0FBRyxDQUErQyxHQUFHLG1CQUFPLENBQUMsaUlBQWlDOztBQUV2SiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvYWN0aW9uLWNsaWVudC13cmFwcGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBtdXN0IGJlIGJ1bmRsZWQgaW4gdGhlIGFwcCdzIGNsaWVudCBsYXllciwgaXQgc2hvdWxkbid0IGJlIGRpcmVjdGx5XG4vLyBpbXBvcnRlZCBieSB0aGUgc2VydmVyLlxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjYWxsU2VydmVyOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclJlZmVyZW5jZTogbnVsbCxcbiAgICBmaW5kU291cmNlTWFwVVJMOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNhbGxTZXJ2ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2FwcGNhbGxzZXJ2ZXIuY2FsbFNlcnZlcjtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclJlZmVyZW5jZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJSZWZlcmVuY2U7XG4gICAgfSxcbiAgICBmaW5kU291cmNlTWFwVVJMOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9hcHBmaW5kc291cmNlbWFwdXJsLmZpbmRTb3VyY2VNYXBVUkw7XG4gICAgfVxufSk7XG5jb25zdCBfYXBwY2FsbHNlcnZlciA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY2xpZW50L2FwcC1jYWxsLXNlcnZlclwiKTtcbmNvbnN0IF9hcHBmaW5kc291cmNlbWFwdXJsID0gcmVxdWlyZShcIm5leHQvZGlzdC9jbGllbnQvYXBwLWZpbmQtc291cmNlLW1hcC11cmxcIik7XG5jb25zdCBjcmVhdGVTZXJ2ZXJSZWZlcmVuY2UgPSAoISFwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPyByZXF1aXJlKCdyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2xpZW50LmVkZ2UnKSA6IHJlcXVpcmUoJ3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQnKSkuY3JlYXRlU2VydmVyUmVmZXJlbmNlO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hY3Rpb24tY2xpZW50LXdyYXBwZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-client-wrapper.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/client-only/index.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/compiled/client-only/index.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
/***/ }),
/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js":
/*!****************************************************************************************!*\
!*** ./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js ***!
\****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("/**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = __webpack_require__(/*! next/dist/compiled/react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n \"react-stack-bottom-frame\": function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React[\"react-stack-bottom-frame\"].bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsxDEV = function (\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self\n ) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7QUFDYixLQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCwrQ0FBK0MsNkJBQTZCO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsZ0JBQWdCLGdEQUFnRDtBQUNoRSxnQkFBZ0IsYUFBYTtBQUM3QjtBQUNBO0FBQ0EsZ0NBQWdDLGtDQUFrQyxPQUFPO0FBQ3pFO0FBQ0EsZ0dBQWdHLFNBQVMsVUFBVSxzRkFBc0YsYUFBYSxVQUFVLFVBQVU7QUFDMU87QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbUJBQU8sQ0FBQyxzR0FBMEI7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGdCQUFnQjtBQUNwQixJQUFJLGNBQWM7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1qc3gtZGV2LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXCJwcm9kdWN0aW9uXCIgIT09IHByb2Nlc3MuZW52Lk5PREVfRU5WICYmXG4gIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHtcbiAgICAgIGlmIChudWxsID09IHR5cGUpIHJldHVybiBudWxsO1xuICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGUpXG4gICAgICAgIHJldHVybiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB0eXBlKSByZXR1cm4gdHlwZTtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiRnJhZ21lbnRcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlByb2ZpbGVyXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdHJpY3RNb2RlXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZVwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZUxpc3RcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9BQ1RJVklUWV9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIkFjdGl2aXR5XCI7XG4gICAgICB9XG4gICAgICBpZiAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUpXG4gICAgICAgIHN3aXRjaCAoXG4gICAgICAgICAgKFwibnVtYmVyXCIgPT09IHR5cGVvZiB0eXBlLnRhZyAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJSZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG9iamVjdCBpbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoKS4gVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICAgICApLFxuICAgICAgICAgIHR5cGUuJCR0eXBlb2YpXG4gICAgICAgICkge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gXCJQb3J0YWxcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAodHlwZS5kaXNwbGF5TmFtZSB8fCBcIkNvbnRleHRcIikgKyBcIi5Qcm92aWRlclwiO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OU1VNRVJfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAodHlwZS5fY29udGV4dC5kaXNwbGF5TmFtZSB8fCBcIkNvbnRleHRcIikgKyBcIi5Db25zdW1lclwiO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgIHZhciBpbm5lclR5cGUgPSB0eXBlLnJlbmRlcjtcbiAgICAgICAgICAgIHR5cGUgPSB0eXBlLmRpc3BsYXlOYW1lO1xuICAgICAgICAgICAgdHlwZSB8fFxuICAgICAgICAgICAgICAoKHR5cGUgPSBpbm5lclR5cGUuZGlzcGxheU5hbWUgfHwgaW5uZXJUeXBlLm5hbWUgfHwgXCJcIiksXG4gICAgICAgICAgICAgICh0eXBlID0gXCJcIiAhPT0gdHlwZSA/IFwiRm9yd2FyZFJlZihcIiArIHR5cGUgKyBcIilcIiA6IFwiRm9yd2FyZFJlZlwiKSk7XG4gICAgICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChpbm5lclR5cGUgPSB0eXBlLmRpc3BsYXlOYW1lIHx8IG51bGwpLFxuICAgICAgICAgICAgICBudWxsICE9PSBpbm5lclR5cGVcbiAgICAgICAgICAgICAgICA/IGlubmVyVHlwZVxuICAgICAgICAgICAgICAgIDogZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUudHlwZSkgfHwgXCJNZW1vXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICBpbm5lclR5cGUgPSB0eXBlLl9wYXlsb2FkO1xuICAgICAgICAgICAgdHlwZSA9IHR5cGUuX2luaXQ7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUoaW5uZXJUeXBlKSk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7fVxuICAgICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gICAgICByZXR1cm4gXCJcIiArIHZhbHVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjaGVja0tleVN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpO1xuICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gITE7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9ICEwO1xuICAgICAgfVxuICAgICAgaWYgKEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCkge1xuICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBjb25zb2xlO1xuICAgICAgICB2YXIgSlNDb21waWxlcl90ZW1wX2NvbnN0ID0gSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0LmVycm9yO1xuICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0JGpzY29tcCQwID1cbiAgICAgICAgICAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgU3ltYm9sICYmXG4gICAgICAgICAgICBTeW1ib2wudG9TdHJpbmdUYWcgJiZcbiAgICAgICAgICAgIHZhbHVlW1N5bWJvbC50b1N0cmluZ1RhZ10pIHx8XG4gICAgICAgICAgdmFsdWUuY29uc3RydWN0b3IubmFtZSB8fFxuICAgICAgICAgIFwiT2JqZWN0XCI7XG4gICAgICAgIEpTQ29tcGlsZXJfdGVtcF9jb25zdC5jYWxsKFxuICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCxcbiAgICAgICAgICBcIlRoZSBwcm92aWRlZCBrZXkgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4gVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIHVzaW5nIGl0IGhlcmUuXCIsXG4gICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0JGpzY29tcCQwXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRUYXNrTmFtZSh0eXBlKSB7XG4gICAgICBpZiAodHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkgcmV0dXJuIFwiPD5cIjtcbiAgICAgIGlmIChcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUgJiZcbiAgICAgICAgbnVsbCAhPT0gdHlwZSAmJlxuICAgICAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEVcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIFwiPC4uLj5cIjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgICByZXR1cm4gbmFtZSA/IFwiPFwiICsgbmFtZSArIFwiPlwiIDogXCI8Li4uPlwiO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICByZXR1cm4gXCI8Li4uPlwiO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRPd25lcigpIHtcbiAgICAgIHZhciBkaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuQTtcbiAgICAgIHJldHVybiBudWxsID09PSBkaXNwYXRjaGVyID8gbnVsbCA6IGRpc3BhdGNoZXIuZ2V0T3duZXIoKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gVW5rbm93bk93bmVyKCkge1xuICAgICAgcmV0dXJuIEVycm9yKFwicmVhY3Qtc3RhY2stdG9wLWZyYW1lXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYXNWYWxpZEtleShjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgXCJrZXlcIikpIHtcbiAgICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCBcImtleVwiKS5nZXQ7XG4gICAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSByZXR1cm4gITE7XG4gICAgICB9XG4gICAgICByZXR1cm4gdm9pZCAwICE9PSBjb25maWcua2V5O1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAgICAgIGZ1bmN0aW9uIHdhcm5BYm91dEFjY2Vzc2luZ0tleSgpIHtcbiAgICAgICAgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24gfHxcbiAgICAgICAgICAoKHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duID0gITApLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0IGluIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgdmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCBwcm9wLiAoaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9zcGVjaWFsLXByb3BzKVwiLFxuICAgICAgICAgICAgZGlzcGxheU5hbWVcbiAgICAgICAgICApKTtcbiAgICAgIH1cbiAgICAgIHdhcm5BYm91dEFjY2Vzc2luZ0tleS5pc1JlYWN0V2FybmluZyA9ICEwO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCBcImtleVwiLCB7XG4gICAgICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nS2V5LFxuICAgICAgICBjb25maWd1cmFibGU6ICEwXG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZWxlbWVudFJlZkdldHRlcldpdGhEZXByZWNhdGlvbldhcm5pbmcoKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0aGlzLnR5cGUpO1xuICAgICAgZGlkV2FybkFib3V0RWxlbWVudFJlZltjb21wb25lbnROYW1lXSB8fFxuICAgICAgICAoKGRpZFdhcm5BYm91dEVsZW1lbnRSZWZbY29tcG9uZW50TmFtZV0gPSAhMCksXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJBY2Nlc3NpbmcgZWxlbWVudC5yZWYgd2FzIHJlbW92ZWQgaW4gUmVhY3QgMTkuIHJlZiBpcyBub3cgYSByZWd1bGFyIHByb3AuIEl0IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBKU1ggRWxlbWVudCB0eXBlIGluIGEgZnV0dXJlIHJlbGVhc2UuXCJcbiAgICAgICAgKSk7XG4gICAgICBjb21wb25lbnROYW1lID0gdGhpcy5wcm9wcy5yZWY7XG4gICAgICByZXR1cm4gdm9pZCAwICE9PSBjb21wb25lbnROYW1lID8gY29tcG9uZW50TmFtZSA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFJlYWN0RWxlbWVudChcbiAgICAgIHR5cGUsXG4gICAgICBrZXksXG4gICAgICBzZWxmLFxuICAgICAgc291cmNlLFxuICAgICAgb3duZXIsXG4gICAgICBwcm9wcyxcbiAgICAgIGRlYnVnU3RhY2ssXG4gICAgICBkZWJ1Z1Rhc2tcbiAgICApIHtcbiAgICAgIHNlbGYgPSBwcm9wcy5yZWY7XG4gICAgICB0eXBlID0ge1xuICAgICAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgICBfb3duZXI6IG93bmVyXG4gICAgICB9O1xuICAgICAgbnVsbCAhPT0gKHZvaWQgMCAhPT0gc2VsZiA/IHNlbGYgOiBudWxsKVxuICAgICAgICA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcInJlZlwiLCB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgICAgIGdldDogZWxlbWVudFJlZkdldHRlcldpdGhEZXByZWNhdGlvbldhcm5pbmdcbiAgICAgICAgICB9KVxuICAgICAgICA6IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcInJlZlwiLCB7IGVudW1lcmFibGU6ICExLCB2YWx1ZTogbnVsbCB9KTtcbiAgICAgIHR5cGUuX3N0b3JlID0ge307XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZS5fc3RvcmUsIFwidmFsaWRhdGVkXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IDBcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwiX2RlYnVnSW5mb1wiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgIHZhbHVlOiBudWxsXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcIl9kZWJ1Z1N0YWNrXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IGRlYnVnU3RhY2tcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwiX2RlYnVnVGFza1wiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgIHZhbHVlOiBkZWJ1Z1Rhc2tcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmZyZWV6ZSAmJiAoT2JqZWN0LmZyZWV6ZSh0eXBlLnByb3BzKSwgT2JqZWN0LmZyZWV6ZSh0eXBlKSk7XG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG4gICAgZnVuY3Rpb24ganN4REVWSW1wbChcbiAgICAgIHR5cGUsXG4gICAgICBjb25maWcsXG4gICAgICBtYXliZUtleSxcbiAgICAgIGlzU3RhdGljQ2hpbGRyZW4sXG4gICAgICBzb3VyY2UsXG4gICAgICBzZWxmLFxuICAgICAgZGVidWdTdGFjayxcbiAgICAgIGRlYnVnVGFza1xuICAgICkge1xuICAgICAgdmFyIGNoaWxkcmVuID0gY29uZmlnLmNoaWxkcmVuO1xuICAgICAgaWYgKHZvaWQgMCAhPT0gY2hpbGRyZW4pXG4gICAgICAgIGlmIChpc1N0YXRpY0NoaWxkcmVuKVxuICAgICAgICAgIGlmIChpc0FycmF5SW1wbChjaGlsZHJlbikpIHtcbiAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgIGlzU3RhdGljQ2hpbGRyZW4gPSAwO1xuICAgICAgICAgICAgICBpc1N0YXRpY0NoaWxkcmVuIDwgY2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICAgICAgICBpc1N0YXRpY0NoaWxkcmVuKytcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgdmFsaWRhdGVDaGlsZEtleXMoY2hpbGRyZW5baXNTdGF0aWNDaGlsZHJlbl0pO1xuICAgICAgICAgICAgT2JqZWN0LmZyZWV6ZSAmJiBPYmplY3QuZnJlZXplKGNoaWxkcmVuKTtcbiAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVhY3QuanN4OiBTdGF0aWMgY2hpbGRyZW4gc2hvdWxkIGFsd2F5cyBiZSBhbiBhcnJheS4gWW91IGFyZSBsaWtlbHkgZXhwbGljaXRseSBjYWxsaW5nIFJlYWN0LmpzeHMgb3IgUmVhY3QuanN4REVWLiBVc2UgdGhlIEJhYmVsIHRyYW5zZm9ybSBpbnN0ZWFkLlwiXG4gICAgICAgICAgICApO1xuICAgICAgICBlbHNlIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuKTtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgXCJrZXlcIikpIHtcbiAgICAgICAgY2hpbGRyZW4gPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlnKS5maWx0ZXIoZnVuY3Rpb24gKGspIHtcbiAgICAgICAgICByZXR1cm4gXCJrZXlcIiAhPT0gaztcbiAgICAgICAgfSk7XG4gICAgICAgIGlzU3RhdGljQ2hpbGRyZW4gPVxuICAgICAgICAgIDAgPCBrZXlzLmxlbmd0aFxuICAgICAgICAgICAgPyBcIntrZXk6IHNvbWVLZXksIFwiICsga2V5cy5qb2luKFwiOiAuLi4sIFwiKSArIFwiOiAuLi59XCJcbiAgICAgICAgICAgIDogXCJ7a2V5OiBzb21lS2V5fVwiO1xuICAgICAgICBkaWRXYXJuQWJvdXRLZXlTcHJlYWRbY2hpbGRyZW4gKyBpc1N0YXRpY0NoaWxkcmVuXSB8fFxuICAgICAgICAgICgoa2V5cyA9XG4gICAgICAgICAgICAwIDwga2V5cy5sZW5ndGggPyBcIntcIiArIGtleXMuam9pbihcIjogLi4uLCBcIikgKyBcIjogLi4ufVwiIDogXCJ7fVwiKSxcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJ0EgcHJvcHMgb2JqZWN0IGNvbnRhaW5pbmcgYSBcImtleVwiIHByb3AgaXMgYmVpbmcgc3ByZWFkIGludG8gSlNYOlxcbiAgbGV0IHByb3BzID0gJXM7XFxuICA8JXMgey4uLnByb3BzfSAvPlxcblJlYWN0IGtleXMgbXVzdCBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gSlNYIHdpdGhvdXQgdXNpbmcgc3ByZWFkOlxcbiAgbGV0IHByb3BzID0gJXM7XFxuICA8JXMga2V5PXtzb21lS2V5fSB7Li4ucHJvcHN9IC8+JyxcbiAgICAgICAgICAgIGlzU3RhdGljQ2hpbGRyZW4sXG4gICAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICAgIGtleXMsXG4gICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgICksXG4gICAgICAgICAgKGRpZFdhcm5BYm91dEtleVNwcmVhZFtjaGlsZHJlbiArIGlzU3RhdGljQ2hpbGRyZW5dID0gITApKTtcbiAgICAgIH1cbiAgICAgIGNoaWxkcmVuID0gbnVsbDtcbiAgICAgIHZvaWQgMCAhPT0gbWF5YmVLZXkgJiZcbiAgICAgICAgKGNoZWNrS2V5U3RyaW5nQ29lcmNpb24obWF5YmVLZXkpLCAoY2hpbGRyZW4gPSBcIlwiICsgbWF5YmVLZXkpKTtcbiAgICAgIGhhc1ZhbGlkS2V5KGNvbmZpZykgJiZcbiAgICAgICAgKGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oY29uZmlnLmtleSksIChjaGlsZHJlbiA9IFwiXCIgKyBjb25maWcua2V5KSk7XG4gICAgICBpZiAoXCJrZXlcIiBpbiBjb25maWcpIHtcbiAgICAgICAgbWF5YmVLZXkgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgcHJvcE5hbWUgaW4gY29uZmlnKVxuICAgICAgICAgIFwia2V5XCIgIT09IHByb3BOYW1lICYmIChtYXliZUtleVtwcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdKTtcbiAgICAgIH0gZWxzZSBtYXliZUtleSA9IGNvbmZpZztcbiAgICAgIGNoaWxkcmVuICYmXG4gICAgICAgIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKFxuICAgICAgICAgIG1heWJlS2V5LFxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGVcbiAgICAgICAgICAgID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgXCJVbmtub3duXCJcbiAgICAgICAgICAgIDogdHlwZVxuICAgICAgICApO1xuICAgICAgcmV0dXJuIFJlYWN0RWxlbWVudChcbiAgICAgICAgdHlwZSxcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIHNlbGYsXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgZ2V0T3duZXIoKSxcbiAgICAgICAgbWF5YmVLZXksXG4gICAgICAgIGRlYnVnU3RhY2ssXG4gICAgICAgIGRlYnVnVGFza1xuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSkge1xuICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIG5vZGUgJiZcbiAgICAgICAgbnVsbCAhPT0gbm9kZSAmJlxuICAgICAgICBub2RlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUgJiZcbiAgICAgICAgbm9kZS5fc3RvcmUgJiZcbiAgICAgICAgKG5vZGUuX3N0b3JlLnZhbGlkYXRlZCA9IDEpO1xuICAgIH1cbiAgICB2YXIgUmVhY3QgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0XCIpLFxuICAgICAgUkVBQ1RfRUxFTUVOVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50XCIpLFxuICAgICAgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpLFxuICAgICAgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSxcbiAgICAgIFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIiksXG4gICAgICBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpO1xuICAgIFN5bWJvbC5mb3IoXCJyZWFjdC5wcm92aWRlclwiKTtcbiAgICB2YXIgUkVBQ1RfQ09OU1VNRVJfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jb25zdW1lclwiKSxcbiAgICAgIFJFQUNUX0NPTlRFWFRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpLFxuICAgICAgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKSxcbiAgICAgIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIiksXG4gICAgICBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKSxcbiAgICAgIFJFQUNUX01FTU9fVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpLFxuICAgICAgUkVBQ1RfTEFaWV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmxhenlcIiksXG4gICAgICBSRUFDVF9BQ1RJVklUWV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmFjdGl2aXR5XCIpLFxuICAgICAgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jbGllbnQucmVmZXJlbmNlXCIpLFxuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPVxuICAgICAgICBSZWFjdC5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUsXG4gICAgICBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksXG4gICAgICBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXksXG4gICAgICBjcmVhdGVUYXNrID0gY29uc29sZS5jcmVhdGVUYXNrXG4gICAgICAgID8gY29uc29sZS5jcmVhdGVUYXNrXG4gICAgICAgIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfTtcbiAgICBSZWFjdCA9IHtcbiAgICAgIFwicmVhY3Qtc3RhY2stYm90dG9tLWZyYW1lXCI6IGZ1bmN0aW9uIChjYWxsU3RhY2tGb3JFcnJvcikge1xuICAgICAgICByZXR1cm4gY2FsbFN0YWNrRm9yRXJyb3IoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bjtcbiAgICB2YXIgZGlkV2FybkFib3V0RWxlbWVudFJlZiA9IHt9O1xuICAgIHZhciB1bmtub3duT3duZXJEZWJ1Z1N0YWNrID0gUmVhY3RbXCJyZWFjdC1zdGFjay1ib3R0b20tZnJhbWVcIl0uYmluZChcbiAgICAgIFJlYWN0LFxuICAgICAgVW5rbm93bk93bmVyXG4gICAgKSgpO1xuICAgIHZhciB1bmtub3duT3duZXJEZWJ1Z1Rhc2sgPSBjcmVhdGVUYXNrKGdldFRhc2tOYW1lKFVua25vd25Pd25lcikpO1xuICAgIHZhciBkaWRXYXJuQWJvdXRLZXlTcHJlYWQgPSB7fTtcbiAgICBleHBvcnRzLkZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbiAgICBleHBvcnRzLmpzeERFViA9IGZ1bmN0aW9uIChcbiAgICAgIHR5cGUsXG4gICAgICBjb25maWcsXG4gICAgICBtYXliZUtleSxcbiAgICAgIGlzU3RhdGljQ2hpbGRyZW4sXG4gICAgICBzb3VyY2UsXG4gICAgICBzZWxmXG4gICAgKSB7XG4gICAgICB2YXIgdHJhY2tBY3R1YWxPd25lciA9XG4gICAgICAgIDFlNCA+IFJlYWN0U2hhcmVkSW50ZXJuYWxzLnJlY2VudGx5Q3JlYXRlZE93bmVyU3RhY2tzKys7XG4gICAgICByZXR1cm4ganN4REVWSW1wbChcbiAgICAgICAgdHlwZSxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBtYXliZUtleSxcbiAgICAgICAgaXNTdGF0aWNDaGlsZHJlbixcbiAgICAgICAgc291cmNlLFxuICAgICAgICBzZWxmLFxuICAgICAgICB0cmFja0FjdHVhbE93bmVyXG4gICAgICAgICAgPyBFcnJvcihcInJlYWN0LXN0YWNrLXRvcC1mcmFtZVwiKVxuICAgICAgICAgIDogdW5rbm93bk93bmVyRGVidWdTdGFjayxcbiAgICAgICAgdHJhY2tBY3R1YWxPd25lciA/IGNyZWF0ZVRhc2soZ2V0VGFza05hbWUodHlwZSkpIDogdW5rbm93bk93bmVyRGVidWdUYXNrXG4gICAgICApO1xuICAgIH07XG4gIH0pKCk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/compiled/react/jsx-dev-runtime.js ***!
\******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-dev-runtime.development.js */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LWRldi1ydW50aW1lLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSw4TEFBc0U7QUFDeEUiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9qc3gtZGV2LXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5wcm9kdWN0aW9uLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/quill/dist/quill.snow.css":
/*!************************************************!*\
!*** ./node_modules/quill/dist/quill.snow.css ***!
\************************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"43ef3ca21b3c\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9xdWlsbC9kaXN0L3F1aWxsLnNub3cuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksSUFBVSxJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvcXVpbGwvZGlzdC9xdWlsbC5zbm93LmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcIjQzZWYzY2EyMWIzY1wiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/quill/dist/quill.snow.css\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/component.js":
/*!***********************************************************************!*\
!*** ./node_modules/react-remove-scroll-bar/dist/es2015/component.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RemoveScrollBar: () => (/* binding */ RemoveScrollBar),\n/* harmony export */ lockAttribute: () => (/* binding */ lockAttribute),\n/* harmony export */ useLockAttribute: () => (/* binding */ useLockAttribute)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_style_singleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-style-singleton */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/index.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js\");\n\n\n\n\nvar Style = (0,react_style_singleton__WEBPACK_IMPORTED_MODULE_1__.styleSingleton)();\nvar lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(_constants__WEBPACK_IMPORTED_MODULE_2__.noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.zeroRightClassName, \" .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.fullWidthClassName, \" .\").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(_constants__WEBPACK_IMPORTED_MODULE_2__.removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nvar useLockAttribute = function () {\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nvar RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of <Style\n */\n var gap = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(function () { return (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getGapWidth)(gapMode); }, [gapMode]);\n return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS9jb21wb25lbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBK0I7QUFDd0I7QUFDNkQ7QUFDOUU7QUFDdEMsWUFBWSxxRUFBYztBQUNuQjtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEI7QUFDOUIsMEJBQTBCLDZEQUFxQixLQUFLLDZDQUE2Qyw4REFBOEQsS0FBSyxzQ0FBc0MsOENBQThDLG1DQUFtQztBQUMzUixtRUFBbUU7QUFDbkU7QUFDQSxvREFBb0Qsc0NBQXNDLDBDQUEwQyxvQkFBb0IsbUJBQW1CLDhEQUE4RDtBQUN6TywwRkFBMEY7QUFDMUY7QUFDQTtBQUNBLHlCQUF5QixtQkFBbUIsMERBQWtCLEtBQUssdURBQXVELEtBQUssbUJBQW1CLDBEQUFrQixLQUFLLDhEQUE4RCxLQUFLLG1CQUFtQiwwREFBa0IsZUFBZSwwREFBa0IsS0FBSyxzQ0FBc0MsS0FBSyxtQkFBbUIsMERBQWtCLGVBQWUsMERBQWtCLEtBQUssNkNBQTZDLEtBQUssMENBQTBDLGdCQUFnQiw4REFBc0Isd0JBQXdCLEtBQUs7QUFDNWtCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQLElBQUksNENBQWU7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYywwQ0FBYSxlQUFlLE9BQU8sbURBQVcsWUFBWTtBQUN4RSxXQUFXLGdEQUFtQixVQUFVLGdGQUFnRjtBQUN4SCIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvcmVhY3QtcmVtb3ZlLXNjcm9sbC1iYXIvZGlzdC9lczIwMTUvY29tcG9uZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHN0eWxlU2luZ2xldG9uIH0gZnJvbSAncmVhY3Qtc3R5bGUtc2luZ2xldG9uJztcbmltcG9ydCB7IGZ1bGxXaWR0aENsYXNzTmFtZSwgemVyb1JpZ2h0Q2xhc3NOYW1lLCBub1Njcm9sbGJhcnNDbGFzc05hbWUsIHJlbW92ZWRCYXJTaXplVmFyaWFibGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRHYXBXaWR0aCB9IGZyb20gJy4vdXRpbHMnO1xudmFyIFN0eWxlID0gc3R5bGVTaW5nbGV0b24oKTtcbmV4cG9ydCB2YXIgbG9ja0F0dHJpYnV0ZSA9ICdkYXRhLXNjcm9sbC1sb2NrZWQnO1xuLy8gaW1wb3J0YW50IHRpcCAtIG9uY2Ugd2UgbWVhc3VyZSBzY3JvbGxCYXIgd2lkdGggYW5kIHJlbW92ZSB0aGVtXG4vLyB3ZSBjb3VsZCBub3QgcmVwZWF0IHRoaXMgb3BlcmF0aW9uXG4vLyB0aHVzIHdlIGFyZSB1c2luZyBzdHlsZS1zaW5nbGV0b24gLSBvbmx5IHRoZSBmaXJzdCBcInlldCBjb3JyZWN0XCIgc3R5bGUgd2lsbCBiZSBhcHBsaWVkLlxudmFyIGdldFN0eWxlcyA9IGZ1bmN0aW9uIChfYSwgYWxsb3dSZWxhdGl2ZSwgZ2FwTW9kZSwgaW1wb3J0YW50KSB7XG4gICAgdmFyIGxlZnQgPSBfYS5sZWZ0LCB0b3AgPSBfYS50b3AsIHJpZ2h0ID0gX2EucmlnaHQsIGdhcCA9IF9hLmdhcDtcbiAgICBpZiAoZ2FwTW9kZSA9PT0gdm9pZCAwKSB7IGdhcE1vZGUgPSAnbWFyZ2luJzsgfVxuICAgIHJldHVybiBcIlxcbiAgLlwiLmNvbmNhdChub1Njcm9sbGJhcnNDbGFzc05hbWUsIFwiIHtcXG4gICBvdmVyZmxvdzogaGlkZGVuIFwiKS5jb25jYXQoaW1wb3J0YW50LCBcIjtcXG4gICBwYWRkaW5nLXJpZ2h0OiBcIikuY29uY2F0KGdhcCwgXCJweCBcIikuY29uY2F0KGltcG9ydGFudCwgXCI7XFxuICB9XFxuICBib2R5W1wiKS5jb25jYXQobG9ja0F0dHJpYnV0ZSwgXCJdIHtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbiBcIikuY29uY2F0KGltcG9ydGFudCwgXCI7XFxuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XFxuICAgIFwiKS5jb25jYXQoW1xuICAgICAgICBhbGxvd1JlbGF0aXZlICYmIFwicG9zaXRpb246IHJlbGF0aXZlIFwiLmNvbmNhdChpbXBvcnRhbnQsIFwiO1wiKSxcbiAgICAgICAgZ2FwTW9kZSA9PT0gJ21hcmdpbicgJiZcbiAgICAgICAgICAgIFwiXFxuICAgIHBhZGRpbmctbGVmdDogXCIuY29uY2F0KGxlZnQsIFwicHg7XFxuICAgIHBhZGRpbmctdG9wOiBcIikuY29uY2F0KHRvcCwgXCJweDtcXG4gICAgcGFkZGluZy1yaWdodDogXCIpLmNvbmNhdChyaWdodCwgXCJweDtcXG4gICAgbWFyZ2luLWxlZnQ6MDtcXG4gICAgbWFyZ2luLXRvcDowO1xcbiAgICBtYXJnaW4tcmlnaHQ6IFwiKS5jb25jYXQoZ2FwLCBcInB4IFwiKS5jb25jYXQoaW1wb3J0YW50LCBcIjtcXG4gICAgXCIpLFxuICAgICAgICBnYXBNb2RlID09PSAncGFkZGluZycgJiYgXCJwYWRkaW5nLXJpZ2h0OiBcIi5jb25jYXQoZ2FwLCBcInB4IFwiKS5jb25jYXQoaW1wb3J0YW50LCBcIjtcIiksXG4gICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcnKSwgXCJcXG4gIH1cXG4gIFxcbiAgLlwiKS5jb25jYXQoemVyb1JpZ2h0Q2xhc3NOYW1lLCBcIiB7XFxuICAgIHJpZ2h0OiBcIikuY29uY2F0KGdhcCwgXCJweCBcIikuY29uY2F0KGltcG9ydGFudCwgXCI7XFxuICB9XFxuICBcXG4gIC5cIikuY29uY2F0KGZ1bGxXaWR0aENsYXNzTmFtZSwgXCIge1xcbiAgICBtYXJnaW4tcmlnaHQ6IFwiKS5jb25jYXQoZ2FwLCBcInB4IFwiKS5jb25jYXQoaW1wb3J0YW50LCBcIjtcXG4gIH1cXG4gIFxcbiAgLlwiKS5jb25jYXQoemVyb1JpZ2h0Q2xhc3NOYW1lLCBcIiAuXCIpLmNvbmNhdCh6ZXJvUmlnaHRDbGFzc05hbWUsIFwiIHtcXG4gICAgcmlnaHQ6IDAgXCIpLmNvbmNhdChpbXBvcnRhbnQsIFwiO1xcbiAgfVxcbiAgXFxuICAuXCIpLmNvbmNhdChmdWxsV2lkdGhDbGFzc05hbWUsIFwiIC5cIikuY29uY2F0KGZ1bGxXaWR0aENsYXNzTmFtZSwgXCIge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAgXCIpLmNvbmNhdChpbXBvcnRhbnQsIFwiO1xcbiAgfVxcbiAgXFxuICBib2R5W1wiKS5jb25jYXQobG9ja0F0dHJpYnV0ZSwgXCJdIHtcXG4gICAgXCIpLmNvbmNhdChyZW1vdmVkQmFyU2l6ZVZhcmlhYmxlLCBcIjogXCIpLmNvbmNhdChnYXAsIFwicHg7XFxuICB9XFxuXCIpO1xufTtcbnZhciBnZXRDdXJyZW50VXNlQ291bnRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY291bnRlciA9IHBhcnNlSW50KGRvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKGxvY2tBdHRyaWJ1dGUpIHx8ICcwJywgMTApO1xuICAgIHJldHVybiBpc0Zpbml0ZShjb3VudGVyKSA/IGNvdW50ZXIgOiAwO1xufTtcbmV4cG9ydCB2YXIgdXNlTG9ja0F0dHJpYnV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZShsb2NrQXR0cmlidXRlLCAoZ2V0Q3VycmVudFVzZUNvdW50ZXIoKSArIDEpLnRvU3RyaW5nKCkpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIG5ld0NvdW50ZXIgPSBnZXRDdXJyZW50VXNlQ291bnRlcigpIC0gMTtcbiAgICAgICAgICAgIGlmIChuZXdDb3VudGVyIDw9IDApIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZShsb2NrQXR0cmlidXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKGxvY2tBdHRyaWJ1dGUsIG5ld0NvdW50ZXIudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xufTtcbi8qKlxuICogUmVtb3ZlcyBwYWdlIHNjcm9sbGJhciBhbmQgYmxvY2tzIHBhZ2Ugc2Nyb2xsIHdoZW4gbW91bnRlZFxuICovXG5leHBvcnQgdmFyIFJlbW92ZVNjcm9sbEJhciA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBub1JlbGF0aXZlID0gX2Eubm9SZWxhdGl2ZSwgbm9JbXBvcnRhbnQgPSBfYS5ub0ltcG9ydGFudCwgX2IgPSBfYS5nYXBNb2RlLCBnYXBNb2RlID0gX2IgPT09IHZvaWQgMCA/ICdtYXJnaW4nIDogX2I7XG4gICAgdXNlTG9ja0F0dHJpYnV0ZSgpO1xuICAgIC8qXG4gICAgIGdhcCB3aWxsIGJlIG1lYXN1cmVkIG9uIGV2ZXJ5IGNvbXBvbmVudCBtb3VudFxuICAgICBob3dldmVyIGl0IHdpbGwgYmUgdXNlZCBvbmx5IGJ5IHRoZSBcImZpcnN0XCIgaW52b2NhdGlvblxuICAgICBkdWUgdG8gc2luZ2xldG9uIG5hdHVyZSBvZiA8U3R5bGVcbiAgICAgKi9cbiAgICB2YXIgZ2FwID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7IHJldHVybiBnZXRHYXBXaWR0aChnYXBNb2RlKTsgfSwgW2dhcE1vZGVdKTtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZSwgeyBzdHlsZXM6IGdldFN0eWxlcyhnYXAsICFub1JlbGF0aXZlLCBnYXBNb2RlLCAhbm9JbXBvcnRhbnQgPyAnIWltcG9ydGFudCcgOiAnJykgfSk7XG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/component.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js":
/*!***********************************************************************!*\
!*** ./node_modules/react-remove-scroll-bar/dist/es2015/constants.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fullWidthClassName: () => (/* binding */ fullWidthClassName),\n/* harmony export */ noScrollbarsClassName: () => (/* binding */ noScrollbarsClassName),\n/* harmony export */ removedBarSizeVariable: () => (/* binding */ removedBarSizeVariable),\n/* harmony export */ zeroRightClassName: () => (/* binding */ zeroRightClassName)\n/* harmony export */ });\nvar zeroRightClassName = 'right-scroll-bar-position';\nvar fullWidthClassName = 'width-before-scroll-bar';\nvar noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nvar removedBarSizeVariable = '--removed-body-scroll-bar-size';\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFPO0FBQ0E7QUFDQTtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ08iLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwtYmFyL2Rpc3QvZXMyMDE1L2NvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIHplcm9SaWdodENsYXNzTmFtZSA9ICdyaWdodC1zY3JvbGwtYmFyLXBvc2l0aW9uJztcbmV4cG9ydCB2YXIgZnVsbFdpZHRoQ2xhc3NOYW1lID0gJ3dpZHRoLWJlZm9yZS1zY3JvbGwtYmFyJztcbmV4cG9ydCB2YXIgbm9TY3JvbGxiYXJzQ2xhc3NOYW1lID0gJ3dpdGgtc2Nyb2xsLWJhcnMtaGlkZGVuJztcbi8qKlxuICogTmFtZSBvZiBhIENTUyB2YXJpYWJsZSBjb250YWluaW5nIHRoZSBhbW91bnQgb2YgXCJoaWRkZW5cIiBzY3JvbGxiYXJcbiAqICEgbWlnaHQgYmUgdW5kZWZpbmVkICEgdXNlIHdpbGwgZmFsbGJhY2shXG4gKi9cbmV4cG9ydCB2YXIgcmVtb3ZlZEJhclNpemVWYXJpYWJsZSA9ICctLXJlbW92ZWQtYm9keS1zY3JvbGwtYmFyLXNpemUnO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/index.js":
/*!*******************************************************************!*\
!*** ./node_modules/react-remove-scroll-bar/dist/es2015/index.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RemoveScrollBar: () => (/* reexport safe */ _component__WEBPACK_IMPORTED_MODULE_0__.RemoveScrollBar),\n/* harmony export */ fullWidthClassName: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.fullWidthClassName),\n/* harmony export */ getGapWidth: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_2__.getGapWidth),\n/* harmony export */ noScrollbarsClassName: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.noScrollbarsClassName),\n/* harmony export */ removedBarSizeVariable: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.removedBarSizeVariable),\n/* harmony export */ zeroRightClassName: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.zeroRightClassName)\n/* harmony export */ });\n/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./component */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/component.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js\");\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBOEM7QUFDc0U7QUFDOUU7QUFDMEYiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwtYmFyL2Rpc3QvZXMyMDE1L2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92ZVNjcm9sbEJhciB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IHplcm9SaWdodENsYXNzTmFtZSwgZnVsbFdpZHRoQ2xhc3NOYW1lLCBub1Njcm9sbGJhcnNDbGFzc05hbWUsIHJlbW92ZWRCYXJTaXplVmFyaWFibGUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRHYXBXaWR0aCB9IGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0IHsgUmVtb3ZlU2Nyb2xsQmFyLCB6ZXJvUmlnaHRDbGFzc05hbWUsIGZ1bGxXaWR0aENsYXNzTmFtZSwgbm9TY3JvbGxiYXJzQ2xhc3NOYW1lLCByZW1vdmVkQmFyU2l6ZVZhcmlhYmxlLCBnZXRHYXBXaWR0aCwgfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/index.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js":
/*!*******************************************************************!*\
!*** ./node_modules/react-remove-scroll-bar/dist/es2015/utils.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getGapWidth: () => (/* binding */ getGapWidth),\n/* harmony export */ zeroGap: () => (/* binding */ zeroGap)\n/* harmony export */ });\nvar zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nvar getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1AsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsLWJhci9kaXN0L2VzMjAxNS91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIHplcm9HYXAgPSB7XG4gICAgbGVmdDogMCxcbiAgICB0b3A6IDAsXG4gICAgcmlnaHQ6IDAsXG4gICAgZ2FwOiAwLFxufTtcbnZhciBwYXJzZSA9IGZ1bmN0aW9uICh4KSB7IHJldHVybiBwYXJzZUludCh4IHx8ICcnLCAxMCkgfHwgMDsgfTtcbnZhciBnZXRPZmZzZXQgPSBmdW5jdGlvbiAoZ2FwTW9kZSkge1xuICAgIHZhciBjcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpO1xuICAgIHZhciBsZWZ0ID0gY3NbZ2FwTW9kZSA9PT0gJ3BhZGRpbmcnID8gJ3BhZGRpbmdMZWZ0JyA6ICdtYXJnaW5MZWZ0J107XG4gICAgdmFyIHRvcCA9IGNzW2dhcE1vZGUgPT09ICdwYWRkaW5nJyA/ICdwYWRkaW5nVG9wJyA6ICdtYXJnaW5Ub3AnXTtcbiAgICB2YXIgcmlnaHQgPSBjc1tnYXBNb2RlID09PSAncGFkZGluZycgPyAncGFkZGluZ1JpZ2h0JyA6ICdtYXJnaW5SaWdodCddO1xuICAgIHJldHVybiBbcGFyc2UobGVmdCksIHBhcnNlKHRvcCksIHBhcnNlKHJpZ2h0KV07XG59O1xuZXhwb3J0IHZhciBnZXRHYXBXaWR0aCA9IGZ1bmN0aW9uIChnYXBNb2RlKSB7XG4gICAgaWYgKGdhcE1vZGUgPT09IHZvaWQgMCkgeyBnYXBNb2RlID0gJ21hcmdpbic7IH1cbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIHplcm9HYXA7XG4gICAgfVxuICAgIHZhciBvZmZzZXRzID0gZ2V0T2Zmc2V0KGdhcE1vZGUpO1xuICAgIHZhciBkb2N1bWVudFdpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIHZhciB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIHJldHVybiB7XG4gICAgICAgIGxlZnQ6IG9mZnNldHNbMF0sXG4gICAgICAgIHRvcDogb2Zmc2V0c1sxXSxcbiAgICAgICAgcmlnaHQ6IG9mZnNldHNbMl0sXG4gICAgICAgIGdhcDogTWF0aC5tYXgoMCwgd2luZG93V2lkdGggLSBkb2N1bWVudFdpZHRoICsgb2Zmc2V0c1syXSAtIG9mZnNldHNbMF0pLFxuICAgIH07XG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/Combination.js":
/*!*********************************************************************!*\
!*** ./node_modules/react-remove-scroll/dist/es2015/Combination.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _UI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UI */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/UI.js\");\n/* harmony import */ var _sidecar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sidecar */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/sidecar.js\");\n\n\n\n\nvar ReactRemoveScroll = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) { return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(_UI__WEBPACK_IMPORTED_MODULE_2__.RemoveScroll, (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__assign)({}, props, { ref: ref, sideCar: _sidecar__WEBPACK_IMPORTED_MODULE_1__[\"default\"] }))); });\nReactRemoveScroll.classNames = _UI__WEBPACK_IMPORTED_MODULE_2__.RemoveScroll.classNames;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReactRemoveScroll);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L0NvbWJpbmF0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFpQztBQUNGO0FBQ0s7QUFDSjtBQUNoQyx3QkFBd0IsNkNBQWdCLHlCQUF5QixRQUFRLGdEQUFtQixDQUFDLDZDQUFZLEVBQUUsK0NBQVEsR0FBRyxXQUFXLG1CQUFtQixnREFBTyxFQUFFLE1BQU07QUFDbkssK0JBQStCLDZDQUFZO0FBQzNDLGlFQUFlLGlCQUFpQixFQUFDIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L0NvbWJpbmF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fYXNzaWduIH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBSZW1vdmVTY3JvbGwgfSBmcm9tICcuL1VJJztcbmltcG9ydCBTaWRlQ2FyIGZyb20gJy4vc2lkZWNhcic7XG52YXIgUmVhY3RSZW1vdmVTY3JvbGwgPSBSZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7IHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChSZW1vdmVTY3JvbGwsIF9fYXNzaWduKHt9LCBwcm9wcywgeyByZWY6IHJlZiwgc2lkZUNhcjogU2lkZUNhciB9KSkpOyB9KTtcblJlYWN0UmVtb3ZlU2Nyb2xsLmNsYXNzTmFtZXMgPSBSZW1vdmVTY3JvbGwuY2xhc3NOYW1lcztcbmV4cG9ydCBkZWZhdWx0IFJlYWN0UmVtb3ZlU2Nyb2xsO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/Combination.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/SideEffect.js":
/*!********************************************************************!*\
!*** ./node_modules/react-remove-scroll/dist/es2015/SideEffect.js ***!
\********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RemoveScrollSideCar: () => (/* binding */ RemoveScrollSideCar),\n/* harmony export */ getDeltaXY: () => (/* binding */ getDeltaXY),\n/* harmony export */ getTouchXY: () => (/* binding */ getTouchXY)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_remove_scroll_bar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-remove-scroll-bar */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/index.js\");\n/* harmony import */ var react_style_singleton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-style-singleton */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/index.js\");\n/* harmony import */ var _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./aggresiveCapture */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js\");\n/* harmony import */ var _handleScroll__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./handleScroll */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/handleScroll.js\");\n\n\n\n\n\n\nvar getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nvar getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nfunction RemoveScrollSideCar(props) {\n var shouldPreventQueue = react__WEBPACK_IMPORTED_MODULE_0__.useRef([]);\n var touchStartRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef([0, 0]);\n var activeAxis = react__WEBPACK_IMPORTED_MODULE_0__.useRef();\n var id = react__WEBPACK_IMPORTED_MODULE_0__.useState(idCounter++)[0];\n var Style = react__WEBPACK_IMPORTED_MODULE_0__.useState(react_style_singleton__WEBPACK_IMPORTED_MODULE_2__.styleSingleton)[0];\n var lastProps = react__WEBPACK_IMPORTED_MODULE_0__.useRef(props);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__spreadArray)([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = (0,_handleScroll__WEBPACK_IMPORTED_MODULE_4__.locationCouldBeScrolled)(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = (0,_handleScroll__WEBPACK_IMPORTED_MODULE_4__.locationCouldBeScrolled)(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return (0,_handleScroll__WEBPACK_IMPORTED_MODULE_4__.handleScroll)(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.addEventListener('touchmove', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, _aggresiveCapture__WEBPACK_IMPORTED_MODULE_5__.nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,\n inert ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_remove_scroll_bar__WEBPACK_IMPORTED_MODULE_1__.RemoveScrollBar, { gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L1NpZGVFZmZlY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFzQztBQUNQO0FBQzJCO0FBQ0g7QUFDUDtBQUN1QjtBQUNoRTtBQUNQO0FBQ0E7QUFDTyxvQ0FBb0M7QUFDM0M7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDLG9DQUFvQyxpREFBaUQsc0JBQXNCLDBDQUEwQyxxQkFBcUI7QUFDMUs7QUFDQTtBQUNPO0FBQ1AsNkJBQTZCLHlDQUFZO0FBQ3pDLHdCQUF3Qix5Q0FBWTtBQUNwQyxxQkFBcUIseUNBQVk7QUFDakMsYUFBYSwyQ0FBYztBQUMzQixnQkFBZ0IsMkNBQWMsQ0FBQyxpRUFBYztBQUM3QyxvQkFBb0IseUNBQVk7QUFDaEMsSUFBSSw0Q0FBZTtBQUNuQjtBQUNBLEtBQUs7QUFDTCxJQUFJLDRDQUFlO0FBQ25CO0FBQ0E7QUFDQSwwQkFBMEIsb0RBQWE7QUFDdkMsNENBQTRDLDZEQUE2RDtBQUN6RztBQUNBO0FBQ0EsZ0RBQWdELGdFQUFnRTtBQUNoSDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsNEJBQTRCLDhDQUFpQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLHNFQUF1QjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLHNFQUF1QjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDJEQUFZO0FBQzNCLEtBQUs7QUFDTCx3QkFBd0IsOENBQWlCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxpSUFBaUk7QUFDNU07QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLHFDQUFxQztBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx1QkFBdUIsOENBQWlCO0FBQ3hDLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0EsMEZBQTBGLHFCQUFxQjtBQUMvRyxTQUFTO0FBQ1QsS0FBSztBQUNMLDJCQUEyQiw4Q0FBaUI7QUFDNUM7QUFDQTtBQUNBLEtBQUs7QUFDTCxzQkFBc0IsOENBQWlCO0FBQ3ZDO0FBQ0EsS0FBSztBQUNMLDBCQUEwQiw4Q0FBaUI7QUFDM0M7QUFDQSxLQUFLO0FBQ0wsSUFBSSw0Q0FBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULDBEQUEwRCx5REFBVTtBQUNwRSw4REFBOEQseURBQVU7QUFDeEUsa0VBQWtFLHlEQUFVO0FBQzVFO0FBQ0EsMkRBQTJELHdCQUF3QjtBQUNuRixpRUFBaUUseURBQVU7QUFDM0UscUVBQXFFLHlEQUFVO0FBQy9FLHlFQUF5RSx5REFBVTtBQUNuRjtBQUNBLEtBQUs7QUFDTDtBQUNBLFlBQVksZ0RBQW1CLENBQUMsMkNBQWM7QUFDOUMsZ0JBQWdCLGdEQUFtQixVQUFVLDJCQUEyQjtBQUN4RSwwQkFBMEIsZ0RBQW1CLENBQUMsb0VBQWUsSUFBSSx3QkFBd0I7QUFDekY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L1NpZGVFZmZlY3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgX19zcHJlYWRBcnJheSB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUmVtb3ZlU2Nyb2xsQmFyIH0gZnJvbSAncmVhY3QtcmVtb3ZlLXNjcm9sbC1iYXInO1xuaW1wb3J0IHsgc3R5bGVTaW5nbGV0b24gfSBmcm9tICdyZWFjdC1zdHlsZS1zaW5nbGV0b24nO1xuaW1wb3J0IHsgbm9uUGFzc2l2ZSB9IGZyb20gJy4vYWdncmVzaXZlQ2FwdHVyZSc7XG5pbXBvcnQgeyBoYW5kbGVTY3JvbGwsIGxvY2F0aW9uQ291bGRCZVNjcm9sbGVkIH0gZnJvbSAnLi9oYW5kbGVTY3JvbGwnO1xuZXhwb3J0IHZhciBnZXRUb3VjaFhZID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuICdjaGFuZ2VkVG91Y2hlcycgaW4gZXZlbnQgPyBbZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCwgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WV0gOiBbMCwgMF07XG59O1xuZXhwb3J0IHZhciBnZXREZWx0YVhZID0gZnVuY3Rpb24gKGV2ZW50KSB7IHJldHVybiBbZXZlbnQuZGVsdGFYLCBldmVudC5kZWx0YVldOyB9O1xudmFyIGV4dHJhY3RSZWYgPSBmdW5jdGlvbiAocmVmKSB7XG4gICAgcmV0dXJuIHJlZiAmJiAnY3VycmVudCcgaW4gcmVmID8gcmVmLmN1cnJlbnQgOiByZWY7XG59O1xudmFyIGRlbHRhQ29tcGFyZSA9IGZ1bmN0aW9uICh4LCB5KSB7IHJldHVybiB4WzBdID09PSB5WzBdICYmIHhbMV0gPT09IHlbMV07IH07XG52YXIgZ2VuZXJhdGVTdHlsZSA9IGZ1bmN0aW9uIChpZCkgeyByZXR1cm4gXCJcXG4gIC5ibG9jay1pbnRlcmFjdGl2aXR5LVwiLmNvbmNhdChpZCwgXCIge3BvaW50ZXItZXZlbnRzOiBub25lO31cXG4gIC5hbGxvdy1pbnRlcmFjdGl2aXR5LVwiKS5jb25jYXQoaWQsIFwiIHtwb2ludGVyLWV2ZW50czogYWxsO31cXG5cIik7IH07XG52YXIgaWRDb3VudGVyID0gMDtcbnZhciBsb2NrU3RhY2sgPSBbXTtcbmV4cG9ydCBmdW5jdGlvbiBSZW1vdmVTY3JvbGxTaWRlQ2FyKHByb3BzKSB7XG4gICAgdmFyIHNob3VsZFByZXZlbnRRdWV1ZSA9IFJlYWN0LnVzZVJlZihbXSk7XG4gICAgdmFyIHRvdWNoU3RhcnRSZWYgPSBSZWFjdC51c2VSZWYoWzAsIDBdKTtcbiAgICB2YXIgYWN0aXZlQXhpcyA9IFJlYWN0LnVzZVJlZigpO1xuICAgIHZhciBpZCA9IFJlYWN0LnVzZVN0YXRlKGlkQ291bnRlcisrKVswXTtcbiAgICB2YXIgU3R5bGUgPSBSZWFjdC51c2VTdGF0ZShzdHlsZVNpbmdsZXRvbilbMF07XG4gICAgdmFyIGxhc3RQcm9wcyA9IFJlYWN0LnVzZVJlZihwcm9wcyk7XG4gICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGFzdFByb3BzLmN1cnJlbnQgPSBwcm9wcztcbiAgICB9LCBbcHJvcHNdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAocHJvcHMuaW5lcnQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcImJsb2NrLWludGVyYWN0aXZpdHktXCIuY29uY2F0KGlkKSk7XG4gICAgICAgICAgICB2YXIgYWxsb3dfMSA9IF9fc3ByZWFkQXJyYXkoW3Byb3BzLmxvY2tSZWYuY3VycmVudF0sIChwcm9wcy5zaGFyZHMgfHwgW10pLm1hcChleHRyYWN0UmVmKSwgdHJ1ZSkuZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgICAgICAgYWxsb3dfMS5mb3JFYWNoKGZ1bmN0aW9uIChlbCkgeyByZXR1cm4gZWwuY2xhc3NMaXN0LmFkZChcImFsbG93LWludGVyYWN0aXZpdHktXCIuY29uY2F0KGlkKSk7IH0pO1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJibG9jay1pbnRlcmFjdGl2aXR5LVwiLmNvbmNhdChpZCkpO1xuICAgICAgICAgICAgICAgIGFsbG93XzEuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHsgcmV0dXJuIGVsLmNsYXNzTGlzdC5yZW1vdmUoXCJhbGxvdy1pbnRlcmFjdGl2aXR5LVwiLmNvbmNhdChpZCkpOyB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH0sIFtwcm9wcy5pbmVydCwgcHJvcHMubG9ja1JlZi5jdXJyZW50LCBwcm9wcy5zaGFyZHNdKTtcbiAgICB2YXIgc2hvdWxkQ2FuY2VsRXZlbnQgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnQsIHBhcmVudCkge1xuICAgICAgICBpZiAoKCd0b3VjaGVzJyBpbiBldmVudCAmJiBldmVudC50b3VjaGVzLmxlbmd0aCA9PT0gMikgfHwgKGV2ZW50LnR5cGUgPT09ICd3aGVlbCcgJiYgZXZlbnQuY3RybEtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiAhbGFzdFByb3BzLmN1cnJlbnQuYWxsb3dQaW5jaFpvb207XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRvdWNoID0gZ2V0VG91Y2hYWShldmVudCk7XG4gICAgICAgIHZhciB0b3VjaFN0YXJ0ID0gdG91Y2hTdGFydFJlZi5jdXJyZW50O1xuICAgICAgICB2YXIgZGVsdGFYID0gJ2RlbHRhWCcgaW4gZXZlbnQgPyBldmVudC5kZWx0YVggOiB0b3VjaFN0YXJ0WzBdIC0gdG91Y2hbMF07XG4gICAgICAgIHZhciBkZWx0YVkgPSAnZGVsdGFZJyBpbiBldmVudCA/IGV2ZW50LmRlbHRhWSA6IHRvdWNoU3RhcnRbMV0gLSB0b3VjaFsxXTtcbiAgICAgICAgdmFyIGN1cnJlbnRBeGlzO1xuICAgICAgICB2YXIgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICB2YXIgbW92ZURpcmVjdGlvbiA9IE1hdGguYWJzKGRlbHRhWCkgPiBNYXRoLmFicyhkZWx0YVkpID8gJ2gnIDogJ3YnO1xuICAgICAgICAvLyBhbGxvdyBob3Jpem9udGFsIHRvdWNoIG1vdmUgb24gUmFuZ2UgaW5wdXRzLiBUaGV5IHdpbGwgbm90IGNhdXNlIGFueSBzY3JvbGxcbiAgICAgICAgaWYgKCd0b3VjaGVzJyBpbiBldmVudCAmJiBtb3ZlRGlyZWN0aW9uID09PSAnaCcgJiYgdGFyZ2V0LnR5cGUgPT09ICdyYW5nZScpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2FuQmVTY3JvbGxlZEluTWFpbkRpcmVjdGlvbiA9IGxvY2F0aW9uQ291bGRCZVNjcm9sbGVkKG1vdmVEaXJlY3Rpb24sIHRhcmdldCk7XG4gICAgICAgIGlmICghY2FuQmVTY3JvbGxlZEluTWFpbkRpcmVjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhbkJlU2Nyb2xsZWRJbk1haW5EaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGN1cnJlbnRBeGlzID0gbW92ZURpcmVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRBeGlzID0gbW92ZURpcmVjdGlvbiA9PT0gJ3YnID8gJ2gnIDogJ3YnO1xuICAgICAgICAgICAgY2FuQmVTY3JvbGxlZEluTWFpbkRpcmVjdGlvbiA9IGxvY2F0aW9uQ291bGRCZVNjcm9sbGVkKG1vdmVEaXJlY3Rpb24sIHRhcmdldCk7XG4gICAgICAgICAgICAvLyBvdGhlciBheGlzIG1pZ2h0IGJlIG5vdCBzY3JvbGxhYmxlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjYW5CZVNjcm9sbGVkSW5NYWluRGlyZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFhY3RpdmVBeGlzLmN1cnJlbnQgJiYgJ2NoYW5nZWRUb3VjaGVzJyBpbiBldmVudCAmJiAoZGVsdGFYIHx8IGRlbHRhWSkpIHtcbiAgICAgICAgICAgIGFjdGl2ZUF4aXMuY3VycmVudCA9IGN1cnJlbnRBeGlzO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY3VycmVudEF4aXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjYW5jZWxpbmdBeGlzID0gYWN0aXZlQXhpcy5jdXJyZW50IHx8IGN1cnJlbnRBeGlzO1xuICAgICAgICByZXR1cm4gaGFuZGxlU2Nyb2xsKGNhbmNlbGluZ0F4aXMsIHBhcmVudCwgZXZlbnQsIGNhbmNlbGluZ0F4aXMgPT09ICdoJyA/IGRlbHRhWCA6IGRlbHRhWSwgdHJ1ZSk7XG4gICAgfSwgW10pO1xuICAgIHZhciBzaG91bGRQcmV2ZW50ID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKF9ldmVudCkge1xuICAgICAgICB2YXIgZXZlbnQgPSBfZXZlbnQ7XG4gICAgICAgIGlmICghbG9ja1N0YWNrLmxlbmd0aCB8fCBsb2NrU3RhY2tbbG9ja1N0YWNrLmxlbmd0aCAtIDFdICE9PSBTdHlsZSkge1xuICAgICAgICAgICAgLy8gbm90IHRoZSBsYXN0IGFjdGl2ZVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkZWx0YSA9ICdkZWx0YVknIGluIGV2ZW50ID8gZ2V0RGVsdGFYWShldmVudCkgOiBnZXRUb3VjaFhZKGV2ZW50KTtcbiAgICAgICAgdmFyIHNvdXJjZUV2ZW50ID0gc2hvdWxkUHJldmVudFF1ZXVlLmN1cnJlbnQuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlLm5hbWUgPT09IGV2ZW50LnR5cGUgJiYgKGUudGFyZ2V0ID09PSBldmVudC50YXJnZXQgfHwgZXZlbnQudGFyZ2V0ID09PSBlLnNoYWRvd1BhcmVudCkgJiYgZGVsdGFDb21wYXJlKGUuZGVsdGEsIGRlbHRhKTsgfSlbMF07XG4gICAgICAgIC8vIHNlbGYgZXZlbnQsIGFuZCBzaG91bGQgYmUgY2FuY2VsZWRcbiAgICAgICAgaWYgKHNvdXJjZUV2ZW50ICYmIHNvdXJjZUV2ZW50LnNob3VsZCkge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmNhbmNlbGFibGUpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIG91dHNpZGUgb3Igc2hhcmQgZXZlbnRcbiAgICAgICAgaWYgKCFzb3VyY2VFdmVudCkge1xuICAgICAgICAgICAgdmFyIHNoYXJkTm9kZXMgPSAobGFzdFByb3BzLmN1cnJlbnQuc2hhcmRzIHx8IFtdKVxuICAgICAgICAgICAgICAgIC5tYXAoZXh0cmFjdFJlZilcbiAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS5jb250YWlucyhldmVudC50YXJnZXQpOyB9KTtcbiAgICAgICAgICAgIHZhciBzaG91bGRTdG9wID0gc2hhcmROb2Rlcy5sZW5ndGggPiAwID8gc2hvdWxkQ2FuY2VsRXZlbnQoZXZlbnQsIHNoYXJkTm9kZXNbMF0pIDogIWxhc3RQcm9wcy5jdXJyZW50Lm5vSXNvbGF0aW9uO1xuICAgICAgICAgICAgaWYgKHNob3VsZFN0b3ApIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtdKTtcbiAgICB2YXIgc2hvdWxkQ2FuY2VsID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKG5hbWUsIGRlbHRhLCB0YXJnZXQsIHNob3VsZCkge1xuICAgICAgICB2YXIgZXZlbnQgPSB7IG5hbWU6IG5hbWUsIGRlbHRhOiBkZWx0YSwgdGFyZ2V0OiB0YXJnZXQsIHNob3VsZDogc2hvdWxkLCBzaGFkb3dQYXJlbnQ6IGdldE91dGVybW9zdFNoYWRvd1BhcmVudCh0YXJnZXQpIH07XG4gICAgICAgIHNob3VsZFByZXZlbnRRdWV1ZS5jdXJyZW50LnB1c2goZXZlbnQpO1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNob3VsZFByZXZlbnRRdWV1ZS5jdXJyZW50ID0gc2hvdWxkUHJldmVudFF1ZXVlLmN1cnJlbnQuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlICE9PSBldmVudDsgfSk7XG4gICAgICAgIH0sIDEpO1xuICAgIH0sIFtdKTtcbiAgICB2YXIgc2Nyb2xsVG91Y2hTdGFydCA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICB0b3VjaFN0YXJ0UmVmLmN1cnJlbnQgPSBnZXRUb3VjaFhZKGV2ZW50KTtcbiAgICAgICAgYWN0aXZlQXhpcy5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgIH0sIFtdKTtcbiAgICB2YXIgc2Nyb2xsV2hlZWwgPSBSZWFjdC51c2VDYWxsYmFjayhmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgc2hvdWxkQ2FuY2VsKGV2ZW50LnR5cGUsIGdldERlbHRhWFkoZXZlbnQpLCBldmVudC50YXJnZXQsIHNob3VsZENhbmNlbEV2ZW50KGV2ZW50LCBwcm9wcy5sb2NrUmVmLmN1cnJlbnQpKTtcbiAgICB9LCBbXSk7XG4gICAgdmFyIHNjcm9sbFRvdWNoTW92ZSA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBzaG91bGRDYW5jZWwoZXZlbnQudHlwZSwgZ2V0VG91Y2hYWShldmVudCksIGV2ZW50LnRhcmdldCwgc2hvdWxkQ2FuY2VsRXZlbnQoZXZlbnQsIHByb3BzLmxvY2tSZWYuY3VycmVudCkpO1xuICAgIH0sIFtdKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBsb2NrU3RhY2sucHVzaChTdHlsZSk7XG4gICAgICAgIHByb3BzLnNldENhbGxiYWNrcyh7XG4gICAgICAgICAgICBvblNjcm9sbENhcHR1cmU6IHNjcm9sbFdoZWVsLFxuICAgICAgICAgICAgb25XaGVlbENhcHR1cmU6IHNjcm9sbFdoZWVsLFxuICAgICAgICAgICAgb25Ub3VjaE1vdmVDYXB0dXJlOiBzY3JvbGxUb3VjaE1vdmUsXG4gICAgICAgIH0pO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIHNob3VsZFByZXZlbnQsIG5vblBhc3NpdmUpO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBzaG91bGRQcmV2ZW50LCBub25QYXNzaXZlKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHNjcm9sbFRvdWNoU3RhcnQsIG5vblBhc3NpdmUpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbG9ja1N0YWNrID0gbG9ja1N0YWNrLmZpbHRlcihmdW5jdGlvbiAoaW5zdCkgeyByZXR1cm4gaW5zdCAhPT0gU3R5bGU7IH0pO1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBzaG91bGRQcmV2ZW50LCBub25QYXNzaXZlKTtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHNob3VsZFByZXZlbnQsIG5vblBhc3NpdmUpO1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHNjcm9sbFRvdWNoU3RhcnQsIG5vblBhc3NpdmUpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICB2YXIgcmVtb3ZlU2Nyb2xsQmFyID0gcHJvcHMucmVtb3ZlU2Nyb2xsQmFyLCBpbmVydCA9IHByb3BzLmluZXJ0O1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCxcbiAgICAgICAgaW5lcnQgPyBSZWFjdC5jcmVhdGVFbGVtZW50KFN0eWxlLCB7IHN0eWxlczogZ2VuZXJhdGVTdHlsZShpZCkgfSkgOiBudWxsLFxuICAgICAgICByZW1vdmVTY3JvbGxCYXIgPyBSZWFjdC5jcmVhdGVFbGVtZW50KFJlbW92ZVNjcm9sbEJhciwgeyBnYXBNb2RlOiBwcm9wcy5nYXBNb2RlIH0pIDogbnVsbCkpO1xufVxuZnVuY3Rpb24gZ2V0T3V0ZXJtb3N0U2hhZG93UGFyZW50KG5vZGUpIHtcbiAgICB2YXIgc2hhZG93UGFyZW50ID0gbnVsbDtcbiAgICB3aGlsZSAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICAgIHNoYWRvd1BhcmVudCA9IG5vZGUuaG9zdDtcbiAgICAgICAgICAgIG5vZGUgPSBub2RlLmhvc3Q7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcbiAgICB9XG4gICAgcmV0dXJuIHNoYWRvd1BhcmVudDtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/SideEffect.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/UI.js":
/*!************************************************************!*\
!*** ./node_modules/react-remove-scroll/dist/es2015/UI.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RemoveScroll: () => (/* binding */ RemoveScroll)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_remove_scroll_bar_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-remove-scroll-bar/constants */ \"(app-pages-browser)/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js\");\n/* harmony import */ var use_callback_ref__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! use-callback-ref */ \"(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js\");\n/* harmony import */ var _medium__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./medium */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/medium.js\");\n\n\n\n\n\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, parentRef) {\n var ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n var _a = react__WEBPACK_IMPORTED_MODULE_0__.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__rest)(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = (0,use_callback_ref__WEBPACK_IMPORTED_MODULE_3__.useMergeRefs)([ref, parentRef]);\n var containerProps = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, rest), callbacks);\n return (react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null,\n enabled && (react__WEBPACK_IMPORTED_MODULE_0__.createElement(SideCar, { sideCar: _medium__WEBPACK_IMPORTED_MODULE_4__.effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children), (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)((0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, containerProps), { ref: containerRef }))) : (react__WEBPACK_IMPORTED_MODULE_0__.createElement(Container, (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__assign)({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: react_remove_scroll_bar_constants__WEBPACK_IMPORTED_MODULE_1__.fullWidthClassName,\n zeroRight: react_remove_scroll_bar_constants__WEBPACK_IMPORTED_MODULE_1__.zeroRightClassName,\n};\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L1VJLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBeUM7QUFDVjtBQUM0RDtBQUMzQztBQUNYO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiw2Q0FBZ0I7QUFDbkMsY0FBYyx5Q0FBWTtBQUMxQixhQUFhLDJDQUFjO0FBQzNCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx5WUFBeVksNkNBQU07QUFDL1k7QUFDQSx1QkFBdUIsOERBQVk7QUFDbkMseUJBQXlCLCtDQUFRLENBQUMsK0NBQVEsR0FBRztBQUM3QyxZQUFZLGdEQUFtQixDQUFDLDJDQUFjO0FBQzlDLG9CQUFvQixnREFBbUIsWUFBWSxTQUFTLDhDQUFTLDBMQUEwTDtBQUMvUCx3QkFBd0IsK0NBQWtCLENBQUMsMkNBQWMsaUJBQWlCLCtDQUFRLENBQUMsK0NBQVEsR0FBRyxxQkFBcUIsbUJBQW1CLE9BQU8sZ0RBQW1CLFlBQVksK0NBQVEsR0FBRyxvQkFBb0IseUNBQXlDO0FBQ3BQLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGlGQUFrQjtBQUNqQyxlQUFlLGlGQUFrQjtBQUNqQztBQUN3QiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvcmVhY3QtcmVtb3ZlLXNjcm9sbC9kaXN0L2VzMjAxNS9VSS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfX2Fzc2lnbiwgX19yZXN0IH0gZnJvbSBcInRzbGliXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBmdWxsV2lkdGhDbGFzc05hbWUsIHplcm9SaWdodENsYXNzTmFtZSB9IGZyb20gJ3JlYWN0LXJlbW92ZS1zY3JvbGwtYmFyL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB1c2VNZXJnZVJlZnMgfSBmcm9tICd1c2UtY2FsbGJhY2stcmVmJztcbmltcG9ydCB7IGVmZmVjdENhciB9IGZyb20gJy4vbWVkaXVtJztcbnZhciBub3RoaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybjtcbn07XG4vKipcbiAqIFJlbW92ZXMgc2Nyb2xsYmFyIGZyb20gdGhlIHBhZ2UgYW5kIGNvbnRhaW4gdGhlIHNjcm9sbCB3aXRoaW4gdGhlIExvY2tcbiAqL1xudmFyIFJlbW92ZVNjcm9sbCA9IFJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzLCBwYXJlbnRSZWYpIHtcbiAgICB2YXIgcmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIHZhciBfYSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICAgICAgb25TY3JvbGxDYXB0dXJlOiBub3RoaW5nLFxuICAgICAgICBvbldoZWVsQ2FwdHVyZTogbm90aGluZyxcbiAgICAgICAgb25Ub3VjaE1vdmVDYXB0dXJlOiBub3RoaW5nLFxuICAgIH0pLCBjYWxsYmFja3MgPSBfYVswXSwgc2V0Q2FsbGJhY2tzID0gX2FbMV07XG4gICAgdmFyIGZvcndhcmRQcm9wcyA9IHByb3BzLmZvcndhcmRQcm9wcywgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCByZW1vdmVTY3JvbGxCYXIgPSBwcm9wcy5yZW1vdmVTY3JvbGxCYXIsIGVuYWJsZWQgPSBwcm9wcy5lbmFibGVkLCBzaGFyZHMgPSBwcm9wcy5zaGFyZHMsIHNpZGVDYXIgPSBwcm9wcy5zaWRlQ2FyLCBub0lzb2xhdGlvbiA9IHByb3BzLm5vSXNvbGF0aW9uLCBpbmVydCA9IHByb3BzLmluZXJ0LCBhbGxvd1BpbmNoWm9vbSA9IHByb3BzLmFsbG93UGluY2hab29tLCBfYiA9IHByb3BzLmFzLCBDb250YWluZXIgPSBfYiA9PT0gdm9pZCAwID8gJ2RpdicgOiBfYiwgZ2FwTW9kZSA9IHByb3BzLmdhcE1vZGUsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImZvcndhcmRQcm9wc1wiLCBcImNoaWxkcmVuXCIsIFwiY2xhc3NOYW1lXCIsIFwicmVtb3ZlU2Nyb2xsQmFyXCIsIFwiZW5hYmxlZFwiLCBcInNoYXJkc1wiLCBcInNpZGVDYXJcIiwgXCJub0lzb2xhdGlvblwiLCBcImluZXJ0XCIsIFwiYWxsb3dQaW5jaFpvb21cIiwgXCJhc1wiLCBcImdhcE1vZGVcIl0pO1xuICAgIHZhciBTaWRlQ2FyID0gc2lkZUNhcjtcbiAgICB2YXIgY29udGFpbmVyUmVmID0gdXNlTWVyZ2VSZWZzKFtyZWYsIHBhcmVudFJlZl0pO1xuICAgIHZhciBjb250YWluZXJQcm9wcyA9IF9fYXNzaWduKF9fYXNzaWduKHt9LCByZXN0KSwgY2FsbGJhY2tzKTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsXG4gICAgICAgIGVuYWJsZWQgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2lkZUNhciwgeyBzaWRlQ2FyOiBlZmZlY3RDYXIsIHJlbW92ZVNjcm9sbEJhcjogcmVtb3ZlU2Nyb2xsQmFyLCBzaGFyZHM6IHNoYXJkcywgbm9Jc29sYXRpb246IG5vSXNvbGF0aW9uLCBpbmVydDogaW5lcnQsIHNldENhbGxiYWNrczogc2V0Q2FsbGJhY2tzLCBhbGxvd1BpbmNoWm9vbTogISFhbGxvd1BpbmNoWm9vbSwgbG9ja1JlZjogcmVmLCBnYXBNb2RlOiBnYXBNb2RlIH0pKSxcbiAgICAgICAgZm9yd2FyZFByb3BzID8gKFJlYWN0LmNsb25lRWxlbWVudChSZWFjdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKSwgX19hc3NpZ24oX19hc3NpZ24oe30sIGNvbnRhaW5lclByb3BzKSwgeyByZWY6IGNvbnRhaW5lclJlZiB9KSkpIDogKFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udGFpbmVyLCBfX2Fzc2lnbih7fSwgY29udGFpbmVyUHJvcHMsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHJlZjogY29udGFpbmVyUmVmIH0pLCBjaGlsZHJlbikpKSk7XG59KTtcblJlbW92ZVNjcm9sbC5kZWZhdWx0UHJvcHMgPSB7XG4gICAgZW5hYmxlZDogdHJ1ZSxcbiAgICByZW1vdmVTY3JvbGxCYXI6IHRydWUsXG4gICAgaW5lcnQ6IGZhbHNlLFxufTtcblJlbW92ZVNjcm9sbC5jbGFzc05hbWVzID0ge1xuICAgIGZ1bGxXaWR0aDogZnVsbFdpZHRoQ2xhc3NOYW1lLFxuICAgIHplcm9SaWdodDogemVyb1JpZ2h0Q2xhc3NOYW1lLFxufTtcbmV4cG9ydCB7IFJlbW92ZVNjcm9sbCB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/UI.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js":
/*!**************************************************************************!*\
!*** ./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js ***!
\**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ nonPassive: () => (/* binding */ nonPassive)\n/* harmony export */ });\nvar passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nvar nonPassive = passiveSupported ? { passive: false } : false;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L2FnZ3Jlc2l2ZUNhcHR1cmUuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QztBQUM5QztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLHNDQUFzQyxpQkFBaUIiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwvZGlzdC9lczIwMTUvYWdncmVzaXZlQ2FwdHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcGFzc2l2ZVN1cHBvcnRlZCA9IGZhbHNlO1xuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgdmFyIG9wdGlvbnMgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdwYXNzaXZlJywge1xuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcGFzc2l2ZVN1cHBvcnRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIG9wdGlvbnMsIG9wdGlvbnMpO1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd0ZXN0Jywgb3B0aW9ucywgb3B0aW9ucyk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgcGFzc2l2ZVN1cHBvcnRlZCA9IGZhbHNlO1xuICAgIH1cbn1cbmV4cG9ydCB2YXIgbm9uUGFzc2l2ZSA9IHBhc3NpdmVTdXBwb3J0ZWQgPyB7IHBhc3NpdmU6IGZhbHNlIH0gOiBmYWxzZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/handleScroll.js":
/*!**********************************************************************!*\
!*** ./node_modules/react-remove-scroll/dist/es2015/handleScroll.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ handleScroll: () => (/* binding */ handleScroll),\n/* harmony export */ locationCouldBeScrolled: () => (/* binding */ locationCouldBeScrolled)\n/* harmony export */ });\nvar alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n if (!(node instanceof Element)) {\n return false;\n }\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nvar locationCouldBeScrolled = function (axis, node) {\n var ownerDocument = node.ownerDocument;\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n if (scrollHeight > clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nvar handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n if (target instanceof ShadowRoot) {\n target = target.host;\n }\n else {\n target = target.parentNode;\n }\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L2hhbmRsZVNjcm9sbC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRDtBQUNoRCxnREFBZ0Q7QUFDekM7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvcmVhY3QtcmVtb3ZlLXNjcm9sbC9kaXN0L2VzMjAxNS9oYW5kbGVTY3JvbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGFsd2F5c0NvbnRhaW5zU2Nyb2xsID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAvLyB0ZXh0YXJlYSB3aWxsIGFsd2F5cyBfY29udGFpbl8gc2Nyb2xsIGluc2lkZSBzZWxmLiBJdCBvbmx5IGNhbiBiZSBoaWRkZW5cbiAgICByZXR1cm4gbm9kZS50YWdOYW1lID09PSAnVEVYVEFSRUEnO1xufTtcbnZhciBlbGVtZW50Q2FuQmVTY3JvbGxlZCA9IGZ1bmN0aW9uIChub2RlLCBvdmVyZmxvdykge1xuICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBzdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlKTtcbiAgICByZXR1cm4gKFxuICAgIC8vIG5vdC1ub3Qtc2Nyb2xsYWJsZVxuICAgIHN0eWxlc1tvdmVyZmxvd10gIT09ICdoaWRkZW4nICYmXG4gICAgICAgIC8vIGNvbnRhaW5zIHNjcm9sbCBpbnNpZGUgc2VsZlxuICAgICAgICAhKHN0eWxlcy5vdmVyZmxvd1kgPT09IHN0eWxlcy5vdmVyZmxvd1ggJiYgIWFsd2F5c0NvbnRhaW5zU2Nyb2xsKG5vZGUpICYmIHN0eWxlc1tvdmVyZmxvd10gPT09ICd2aXNpYmxlJykpO1xufTtcbnZhciBlbGVtZW50Q291bGRCZVZTY3JvbGxlZCA9IGZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBlbGVtZW50Q2FuQmVTY3JvbGxlZChub2RlLCAnb3ZlcmZsb3dZJyk7IH07XG52YXIgZWxlbWVudENvdWxkQmVIU2Nyb2xsZWQgPSBmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gZWxlbWVudENhbkJlU2Nyb2xsZWQobm9kZSwgJ292ZXJmbG93WCcpOyB9O1xuZXhwb3J0IHZhciBsb2NhdGlvbkNvdWxkQmVTY3JvbGxlZCA9IGZ1bmN0aW9uIChheGlzLCBub2RlKSB7XG4gICAgdmFyIG93bmVyRG9jdW1lbnQgPSBub2RlLm93bmVyRG9jdW1lbnQ7XG4gICAgdmFyIGN1cnJlbnQgPSBub2RlO1xuICAgIGRvIHtcbiAgICAgICAgLy8gU2tpcCBvdmVyIHNoYWRvdyByb290XG4gICAgICAgIGlmICh0eXBlb2YgU2hhZG93Um9vdCAhPT0gJ3VuZGVmaW5lZCcgJiYgY3VycmVudCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lmhvc3Q7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlzU2Nyb2xsYWJsZSA9IGVsZW1lbnRDb3VsZEJlU2Nyb2xsZWQoYXhpcywgY3VycmVudCk7XG4gICAgICAgIGlmIChpc1Njcm9sbGFibGUpIHtcbiAgICAgICAgICAgIHZhciBfYSA9IGdldFNjcm9sbFZhcmlhYmxlcyhheGlzLCBjdXJyZW50KSwgc2Nyb2xsSGVpZ2h0ID0gX2FbMV0sIGNsaWVudEhlaWdodCA9IF9hWzJdO1xuICAgICAgICAgICAgaWYgKHNjcm9sbEhlaWdodCA+IGNsaWVudEhlaWdodCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudE5vZGU7XG4gICAgfSB3aGlsZSAoY3VycmVudCAmJiBjdXJyZW50ICE9PSBvd25lckRvY3VtZW50LmJvZHkpO1xuICAgIHJldHVybiBmYWxzZTtcbn07XG52YXIgZ2V0VlNjcm9sbFZhcmlhYmxlcyA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBzY3JvbGxUb3AgPSBfYS5zY3JvbGxUb3AsIHNjcm9sbEhlaWdodCA9IF9hLnNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0ID0gX2EuY2xpZW50SGVpZ2h0O1xuICAgIHJldHVybiBbXG4gICAgICAgIHNjcm9sbFRvcCxcbiAgICAgICAgc2Nyb2xsSGVpZ2h0LFxuICAgICAgICBjbGllbnRIZWlnaHQsXG4gICAgXTtcbn07XG52YXIgZ2V0SFNjcm9sbFZhcmlhYmxlcyA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBzY3JvbGxMZWZ0ID0gX2Euc2Nyb2xsTGVmdCwgc2Nyb2xsV2lkdGggPSBfYS5zY3JvbGxXaWR0aCwgY2xpZW50V2lkdGggPSBfYS5jbGllbnRXaWR0aDtcbiAgICByZXR1cm4gW1xuICAgICAgICBzY3JvbGxMZWZ0LFxuICAgICAgICBzY3JvbGxXaWR0aCxcbiAgICAgICAgY2xpZW50V2lkdGgsXG4gICAgXTtcbn07XG52YXIgZWxlbWVudENvdWxkQmVTY3JvbGxlZCA9IGZ1bmN0aW9uIChheGlzLCBub2RlKSB7XG4gICAgcmV0dXJuIGF4aXMgPT09ICd2JyA/IGVsZW1lbnRDb3VsZEJlVlNjcm9sbGVkKG5vZGUpIDogZWxlbWVudENvdWxkQmVIU2Nyb2xsZWQobm9kZSk7XG59O1xudmFyIGdldFNjcm9sbFZhcmlhYmxlcyA9IGZ1bmN0aW9uIChheGlzLCBub2RlKSB7XG4gICAgcmV0dXJuIGF4aXMgPT09ICd2JyA/IGdldFZTY3JvbGxWYXJpYWJsZXMobm9kZSkgOiBnZXRIU2Nyb2xsVmFyaWFibGVzKG5vZGUpO1xufTtcbnZhciBnZXREaXJlY3Rpb25GYWN0b3IgPSBmdW5jdGlvbiAoYXhpcywgZGlyZWN0aW9uKSB7XG4gICAgLyoqXG4gICAgICogSWYgdGhlIGVsZW1lbnQncyBkaXJlY3Rpb24gaXMgcnRsIChyaWdodC10by1sZWZ0KSwgdGhlbiBzY3JvbGxMZWZ0IGlzIDAgd2hlbiB0aGUgc2Nyb2xsYmFyIGlzIGF0IGl0cyByaWdodG1vc3QgcG9zaXRpb24sXG4gICAgICogYW5kIHRoZW4gaW5jcmVhc2luZ2x5IG5lZ2F0aXZlIGFzIHlvdSBzY3JvbGwgdG93YXJkcyB0aGUgZW5kIG9mIHRoZSBjb250ZW50LlxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQvc2Nyb2xsTGVmdFxuICAgICAqL1xuICAgIHJldHVybiBheGlzID09PSAnaCcgJiYgZGlyZWN0aW9uID09PSAncnRsJyA/IC0xIDogMTtcbn07XG5leHBvcnQgdmFyIGhhbmRsZVNjcm9sbCA9IGZ1bmN0aW9uIChheGlzLCBlbmRUYXJnZXQsIGV2ZW50LCBzb3VyY2VEZWx0YSwgbm9PdmVyc2Nyb2xsKSB7XG4gICAgdmFyIGRpcmVjdGlvbkZhY3RvciA9IGdldERpcmVjdGlvbkZhY3RvcihheGlzLCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbmRUYXJnZXQpLmRpcmVjdGlvbik7XG4gICAgdmFyIGRlbHRhID0gZGlyZWN0aW9uRmFjdG9yICogc291cmNlRGVsdGE7XG4gICAgLy8gZmluZCBzY3JvbGxhYmxlIHRhcmdldFxuICAgIHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgdmFyIHRhcmdldEluTG9jayA9IGVuZFRhcmdldC5jb250YWlucyh0YXJnZXQpO1xuICAgIHZhciBzaG91bGRDYW5jZWxTY3JvbGwgPSBmYWxzZTtcbiAgICB2YXIgaXNEZWx0YVBvc2l0aXZlID0gZGVsdGEgPiAwO1xuICAgIHZhciBhdmFpbGFibGVTY3JvbGwgPSAwO1xuICAgIHZhciBhdmFpbGFibGVTY3JvbGxUb3AgPSAwO1xuICAgIGRvIHtcbiAgICAgICAgdmFyIF9hID0gZ2V0U2Nyb2xsVmFyaWFibGVzKGF4aXMsIHRhcmdldCksIHBvc2l0aW9uID0gX2FbMF0sIHNjcm9sbF8xID0gX2FbMV0sIGNhcGFjaXR5ID0gX2FbMl07XG4gICAgICAgIHZhciBlbGVtZW50U2Nyb2xsID0gc2Nyb2xsXzEgLSBjYXBhY2l0eSAtIGRpcmVjdGlvbkZhY3RvciAqIHBvc2l0aW9uO1xuICAgICAgICBpZiAocG9zaXRpb24gfHwgZWxlbWVudFNjcm9sbCkge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRDb3VsZEJlU2Nyb2xsZWQoYXhpcywgdGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIGF2YWlsYWJsZVNjcm9sbCArPSBlbGVtZW50U2Nyb2xsO1xuICAgICAgICAgICAgICAgIGF2YWlsYWJsZVNjcm9sbFRvcCArPSBwb3NpdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgU2hhZG93Um9vdCkge1xuICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0Lmhvc3Q7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQucGFyZW50Tm9kZTtcbiAgICAgICAgfVxuICAgIH0gd2hpbGUgKFxuICAgIC8vIHBvcnRhbGVkIGNvbnRlbnRcbiAgICAoIXRhcmdldEluTG9jayAmJiB0YXJnZXQgIT09IGRvY3VtZW50LmJvZHkpIHx8XG4gICAgICAgIC8vIHNlbGYgY29udGVudFxuICAgICAgICAodGFyZ2V0SW5Mb2NrICYmIChlbmRUYXJnZXQuY29udGFpbnModGFyZ2V0KSB8fCBlbmRUYXJnZXQgPT09IHRhcmdldCkpKTtcbiAgICAvLyBoYW5kbGUgZXBzaWxvbiBhcm91bmQgMCAobm9uIHN0YW5kYXJkIHpvb20gbGV2ZWxzKVxuICAgIGlmIChpc0RlbHRhUG9zaXRpdmUgJiZcbiAgICAgICAgKChub092ZXJzY3JvbGwgJiYgTWF0aC5hYnMoYXZhaWxhYmxlU2Nyb2xsKSA8IDEpIHx8ICghbm9PdmVyc2Nyb2xsICYmIGRlbHRhID4gYXZhaWxhYmxlU2Nyb2xsKSkpIHtcbiAgICAgICAgc2hvdWxkQ2FuY2VsU2Nyb2xsID0gdHJ1ZTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIWlzRGVsdGFQb3NpdGl2ZSAmJlxuICAgICAgICAoKG5vT3ZlcnNjcm9sbCAmJiBNYXRoLmFicyhhdmFpbGFibGVTY3JvbGxUb3ApIDwgMSkgfHwgKCFub092ZXJzY3JvbGwgJiYgLWRlbHRhID4gYXZhaWxhYmxlU2Nyb2xsVG9wKSkpIHtcbiAgICAgICAgc2hvdWxkQ2FuY2VsU2Nyb2xsID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHNob3VsZENhbmNlbFNjcm9sbDtcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/handleScroll.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/medium.js":
/*!****************************************************************!*\
!*** ./node_modules/react-remove-scroll/dist/es2015/medium.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ effectCar: () => (/* binding */ effectCar)\n/* harmony export */ });\n/* harmony import */ var use_sidecar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! use-sidecar */ \"(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/medium.js\");\n\nvar effectCar = (0,use_sidecar__WEBPACK_IMPORTED_MODULE_0__.createSidecarMedium)();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L21lZGl1bS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFrRDtBQUMzQyxnQkFBZ0IsZ0VBQW1CIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L21lZGl1bS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVTaWRlY2FyTWVkaXVtIH0gZnJvbSAndXNlLXNpZGVjYXInO1xuZXhwb3J0IHZhciBlZmZlY3RDYXIgPSBjcmVhdGVTaWRlY2FyTWVkaXVtKCk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/medium.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/sidecar.js":
/*!*****************************************************************!*\
!*** ./node_modules/react-remove-scroll/dist/es2015/sidecar.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var use_sidecar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! use-sidecar */ \"(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/exports.js\");\n/* harmony import */ var _SideEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SideEffect */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/SideEffect.js\");\n/* harmony import */ var _medium__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./medium */ \"(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/medium.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,use_sidecar__WEBPACK_IMPORTED_MODULE_0__.exportSidecar)(_medium__WEBPACK_IMPORTED_MODULE_1__.effectCar, _SideEffect__WEBPACK_IMPORTED_MODULE_2__.RemoveScrollSideCar));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1yZW1vdmUtc2Nyb2xsL2Rpc3QvZXMyMDE1L3NpZGVjYXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE0QztBQUNPO0FBQ2Q7QUFDckMsaUVBQWUsMERBQWEsQ0FBQyw4Q0FBUyxFQUFFLDREQUFtQixDQUFDLEVBQUMiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3JlYWN0LXJlbW92ZS1zY3JvbGwvZGlzdC9lczIwMTUvc2lkZWNhci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHBvcnRTaWRlY2FyIH0gZnJvbSAndXNlLXNpZGVjYXInO1xuaW1wb3J0IHsgUmVtb3ZlU2Nyb2xsU2lkZUNhciB9IGZyb20gJy4vU2lkZUVmZmVjdCc7XG5pbXBvcnQgeyBlZmZlY3RDYXIgfSBmcm9tICcuL21lZGl1bSc7XG5leHBvcnQgZGVmYXVsdCBleHBvcnRTaWRlY2FyKGVmZmVjdENhciwgUmVtb3ZlU2Nyb2xsU2lkZUNhcik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-remove-scroll/dist/es2015/sidecar.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/component.js":
/*!*********************************************************************!*\
!*** ./node_modules/react-style-singleton/dist/es2015/component.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ styleSingleton: () => (/* binding */ styleSingleton)\n/* harmony export */ });\n/* harmony import */ var _hook__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hook */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/hook.js\");\n\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nvar styleSingleton = function () {\n var useStyle = (0,_hook__WEBPACK_IMPORTED_MODULE_0__.styleHookSingleton)();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zdHlsZS1zaW5nbGV0b24vZGlzdC9lczIwMTUvY29tcG9uZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTRDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1AsbUJBQW1CLHlEQUFrQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvcmVhY3Qtc3R5bGUtc2luZ2xldG9uL2Rpc3QvZXMyMDE1L2NvbXBvbmVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHlsZUhvb2tTaW5nbGV0b24gfSBmcm9tICcuL2hvb2snO1xuLyoqXG4gKiBjcmVhdGUgYSBDb21wb25lbnQgdG8gYWRkIHN0eWxlcyBvbiBkZW1hbmRcbiAqIC0gc3R5bGVzIGFyZSBhZGRlZCB3aGVuIGZpcnN0IGluc3RhbmNlIGlzIG1vdW50ZWRcbiAqIC0gc3R5bGVzIGFyZSByZW1vdmVkIHdoZW4gdGhlIGxhc3QgaW5zdGFuY2UgaXMgdW5tb3VudGVkXG4gKiAtIGNoYW5naW5nIHN0eWxlcyBpbiBydW50aW1lIGRvZXMgbm90aGluZyB1bmxlc3MgZHluYW1pYyBpcyBzZXQuIEJ1dCB3aXRoIG11bHRpcGxlIGNvbXBvbmVudHMgdGhhdCBjYW4gbGVhZCB0byB0aGUgdW5kZWZpbmVkIGJlaGF2aW9yXG4gKi9cbmV4cG9ydCB2YXIgc3R5bGVTaW5nbGV0b24gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHVzZVN0eWxlID0gc3R5bGVIb29rU2luZ2xldG9uKCk7XG4gICAgdmFyIFNoZWV0ID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgIHZhciBzdHlsZXMgPSBfYS5zdHlsZXMsIGR5bmFtaWMgPSBfYS5keW5hbWljO1xuICAgICAgICB1c2VTdHlsZShzdHlsZXMsIGR5bmFtaWMpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICAgIHJldHVybiBTaGVldDtcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/component.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/hook.js":
/*!****************************************************************!*\
!*** ./node_modules/react-style-singleton/dist/es2015/hook.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ styleHookSingleton: () => (/* binding */ styleHookSingleton)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _singleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./singleton */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/singleton.js\");\n\n\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nvar styleHookSingleton = function () {\n var sheet = (0,_singleton__WEBPACK_IMPORTED_MODULE_1__.stylesheetSingleton)();\n return function (styles, isDynamic) {\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zdHlsZS1zaW5nbGV0b24vZGlzdC9lczIwMTUvaG9vay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQStCO0FBQ21CO0FBQ2xEO0FBQ0E7QUFDQSxTQUFTLHNCQUFzQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDTztBQUNQLGdCQUFnQiwrREFBbUI7QUFDbkM7QUFDQSxRQUFRLDRDQUFlO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3JlYWN0LXN0eWxlLXNpbmdsZXRvbi9kaXN0L2VzMjAxNS9ob29rLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHN0eWxlc2hlZXRTaW5nbGV0b24gfSBmcm9tICcuL3NpbmdsZXRvbic7XG4vKipcbiAqIGNyZWF0ZXMgYSBob29rIHRvIGNvbnRyb2wgc3R5bGUgc2luZ2xldG9uXG4gKiBAc2VlIHtAbGluayBzdHlsZVNpbmdsZXRvbn0gZm9yIGEgc2FmZXIgY29tcG9uZW50IHZlcnNpb25cbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHVzZVN0eWxlID0gc3R5bGVIb29rU2luZ2xldG9uKCk7XG4gKiAvLy9cbiAqIHVzZVN0eWxlKCdib2R5IHsgb3ZlcmZsb3c6IGhpZGRlbn0nKTtcbiAqL1xuZXhwb3J0IHZhciBzdHlsZUhvb2tTaW5nbGV0b24gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHNoZWV0ID0gc3R5bGVzaGVldFNpbmdsZXRvbigpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoc3R5bGVzLCBpc0R5bmFtaWMpIHtcbiAgICAgICAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNoZWV0LmFkZChzdHlsZXMpO1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzaGVldC5yZW1vdmUoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sIFtzdHlsZXMgJiYgaXNEeW5hbWljXSk7XG4gICAgfTtcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/hook.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/index.js":
/*!*****************************************************************!*\
!*** ./node_modules/react-style-singleton/dist/es2015/index.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ styleHookSingleton: () => (/* reexport safe */ _hook__WEBPACK_IMPORTED_MODULE_2__.styleHookSingleton),\n/* harmony export */ styleSingleton: () => (/* reexport safe */ _component__WEBPACK_IMPORTED_MODULE_0__.styleSingleton),\n/* harmony export */ stylesheetSingleton: () => (/* reexport safe */ _singleton__WEBPACK_IMPORTED_MODULE_1__.stylesheetSingleton)\n/* harmony export */ });\n/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./component */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/component.js\");\n/* harmony import */ var _singleton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./singleton */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/singleton.js\");\n/* harmony import */ var _hook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hook */ \"(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/hook.js\");\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zdHlsZS1zaW5nbGV0b24vZGlzdC9lczIwMTUvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTZDO0FBQ0s7QUFDTiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvcmVhY3Qtc3R5bGUtc2luZ2xldG9uL2Rpc3QvZXMyMDE1L2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHN0eWxlU2luZ2xldG9uIH0gZnJvbSAnLi9jb21wb25lbnQnO1xuZXhwb3J0IHsgc3R5bGVzaGVldFNpbmdsZXRvbiB9IGZyb20gJy4vc2luZ2xldG9uJztcbmV4cG9ydCB7IHN0eWxlSG9va1NpbmdsZXRvbiB9IGZyb20gJy4vaG9vayc7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/index.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/singleton.js":
/*!*********************************************************************!*\
!*** ./node_modules/react-style-singleton/dist/es2015/singleton.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ stylesheetSingleton: () => (/* binding */ stylesheetSingleton)\n/* harmony export */ });\n/* harmony import */ var get_nonce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! get-nonce */ \"(app-pages-browser)/./node_modules/get-nonce/dist/es2015/index.js\");\n\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = (0,get_nonce__WEBPACK_IMPORTED_MODULE_0__.getNonce)();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nvar stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9yZWFjdC1zdHlsZS1zaW5nbGV0b24vZGlzdC9lczIwMTUvc2luZ2xldG9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbURBQVE7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3JlYWN0LXN0eWxlLXNpbmdsZXRvbi9kaXN0L2VzMjAxNS9zaW5nbGV0b24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0Tm9uY2UgfSBmcm9tICdnZXQtbm9uY2UnO1xuZnVuY3Rpb24gbWFrZVN0eWxlVGFnKCkge1xuICAgIGlmICghZG9jdW1lbnQpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHZhciB0YWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIHRhZy50eXBlID0gJ3RleHQvY3NzJztcbiAgICB2YXIgbm9uY2UgPSBnZXROb25jZSgpO1xuICAgIGlmIChub25jZSkge1xuICAgICAgICB0YWcuc2V0QXR0cmlidXRlKCdub25jZScsIG5vbmNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhZztcbn1cbmZ1bmN0aW9uIGluamVjdFN0eWxlcyh0YWcsIGNzcykge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpZiAodGFnLnN0eWxlU2hlZXQpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB0YWcuc3R5bGVTaGVldC5jc3NUZXh0ID0gY3NzO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGFnLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGluc2VydFN0eWxlVGFnKHRhZykge1xuICAgIHZhciBoZWFkID0gZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICAgIGhlYWQuYXBwZW5kQ2hpbGQodGFnKTtcbn1cbmV4cG9ydCB2YXIgc3R5bGVzaGVldFNpbmdsZXRvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY291bnRlciA9IDA7XG4gICAgdmFyIHN0eWxlc2hlZXQgPSBudWxsO1xuICAgIHJldHVybiB7XG4gICAgICAgIGFkZDogZnVuY3Rpb24gKHN0eWxlKSB7XG4gICAgICAgICAgICBpZiAoY291bnRlciA9PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKChzdHlsZXNoZWV0ID0gbWFrZVN0eWxlVGFnKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGluamVjdFN0eWxlcyhzdHlsZXNoZWV0LCBzdHlsZSk7XG4gICAgICAgICAgICAgICAgICAgIGluc2VydFN0eWxlVGFnKHN0eWxlc2hlZXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvdW50ZXIrKztcbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjb3VudGVyLS07XG4gICAgICAgICAgICBpZiAoIWNvdW50ZXIgJiYgc3R5bGVzaGVldCkge1xuICAgICAgICAgICAgICAgIHN0eWxlc2hlZXQucGFyZW50Tm9kZSAmJiBzdHlsZXNoZWV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVzaGVldCk7XG4gICAgICAgICAgICAgICAgc3R5bGVzaGVldCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/react-style-singleton/dist/es2015/singleton.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/styled-jsx/dist/index/index.js":
/*!*****************************************************!*\
!*** ./node_modules/styled-jsx/dist/index/index.js ***!
\*****************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n\nvar _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$();\n__webpack_require__(/*! client-only */ \"(app-pages-browser)/./node_modules/next/dist/compiled/client-only/index.js\");\nvar React = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {\n 'default': e\n };\n}\nvar React__default = /*#__PURE__*/ _interopDefaultLegacy(React);\n_c = React__default;\n/*\nBased on Glamor's sheet\nhttps://github.com/threepointone/glamor/blob/667b480d31b3721a905021b26e1290ce92ca2879/src/sheet.js\n*/ function _defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nvar isProd = typeof process !== \"undefined\" && process.env && \"development\" === \"production\";\nvar isString = function(o) {\n return Object.prototype.toString.call(o) === \"[object String]\";\n};\nvar StyleSheet = /*#__PURE__*/ function() {\n function StyleSheet(param) {\n var ref = param === void 0 ? {} : param, _name = ref.name, name = _name === void 0 ? \"stylesheet\" : _name, _optimizeForSpeed = ref.optimizeForSpeed, optimizeForSpeed = _optimizeForSpeed === void 0 ? isProd : _optimizeForSpeed;\n invariant$1(isString(name), \"`name` must be a string\");\n this._name = name;\n this._deletedRulePlaceholder = \"#\" + name + \"-deleted-rule____{}\";\n invariant$1(typeof optimizeForSpeed === \"boolean\", \"`optimizeForSpeed` must be a boolean\");\n this._optimizeForSpeed = optimizeForSpeed;\n this._serverSheet = undefined;\n this._tags = [];\n this._injected = false;\n this._rulesCount = 0;\n var node = typeof window !== \"undefined\" && document.querySelector('meta[property=\"csp-nonce\"]');\n this._nonce = node ? node.getAttribute(\"content\") : null;\n }\n var _proto = StyleSheet.prototype;\n _proto.setOptimizeForSpeed = function setOptimizeForSpeed(bool) {\n invariant$1(typeof bool === \"boolean\", \"`setOptimizeForSpeed` accepts a boolean\");\n invariant$1(this._rulesCount === 0, \"optimizeForSpeed cannot be when rules have already been inserted\");\n this.flush();\n this._optimizeForSpeed = bool;\n this.inject();\n };\n _proto.isOptimizeForSpeed = function isOptimizeForSpeed() {\n return this._optimizeForSpeed;\n };\n _proto.inject = function inject() {\n var _this = this;\n invariant$1(!this._injected, \"sheet already injected\");\n this._injected = true;\n if (typeof window !== \"undefined\" && this._optimizeForSpeed) {\n this._tags[0] = this.makeStyleTag(this._name);\n this._optimizeForSpeed = \"insertRule\" in this.getSheet();\n if (!this._optimizeForSpeed) {\n if (!isProd) {\n console.warn(\"StyleSheet: optimizeForSpeed mode not supported falling back to standard mode.\");\n }\n this.flush();\n this._injected = true;\n }\n return;\n }\n this._serverSheet = {\n cssRules: [],\n insertRule: function(rule, index) {\n if (typeof index === \"number\") {\n _this._serverSheet.cssRules[index] = {\n cssText: rule\n };\n } else {\n _this._serverSheet.cssRules.push({\n cssText: rule\n });\n }\n return index;\n },\n deleteRule: function(index) {\n _this._serverSheet.cssRules[index] = null;\n }\n };\n };\n _proto.getSheetForTag = function getSheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n }\n // this weirdness brought to you by firefox\n for(var i = 0; i < document.styleSheets.length; i++){\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n }\n };\n _proto.getSheet = function getSheet() {\n return this.getSheetForTag(this._tags[this._tags.length - 1]);\n };\n _proto.insertRule = function insertRule(rule, index) {\n invariant$1(isString(rule), \"`insertRule` accepts only strings\");\n if (typeof window === \"undefined\") {\n if (typeof index !== \"number\") {\n index = this._serverSheet.cssRules.length;\n }\n this._serverSheet.insertRule(rule, index);\n return this._rulesCount++;\n }\n if (this._optimizeForSpeed) {\n var sheet = this.getSheet();\n if (typeof index !== \"number\") {\n index = sheet.cssRules.length;\n }\n // this weirdness for perf, and chrome's weird bug\n // https://stackoverflow.com/questions/20007992/chrome-suddenly-stopped-accepting-insertrule\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n }\n return -1;\n }\n } else {\n var insertionPoint = this._tags[index];\n this._tags.push(this.makeStyleTag(this._name, rule, insertionPoint));\n }\n return this._rulesCount++;\n };\n _proto.replaceRule = function replaceRule(index, rule) {\n if (this._optimizeForSpeed || typeof window === \"undefined\") {\n var sheet = typeof window !== \"undefined\" ? this.getSheet() : this._serverSheet;\n if (!rule.trim()) {\n rule = this._deletedRulePlaceholder;\n }\n if (!sheet.cssRules[index]) {\n // @TBD Should we throw an error?\n return index;\n }\n sheet.deleteRule(index);\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n }\n // In order to preserve the indices we insert a deleteRulePlaceholder\n sheet.insertRule(this._deletedRulePlaceholder, index);\n }\n } else {\n var tag = this._tags[index];\n invariant$1(tag, \"old rule at index `\" + index + \"` not found\");\n tag.textContent = rule;\n }\n return index;\n };\n _proto.deleteRule = function deleteRule(index) {\n if (typeof window === \"undefined\") {\n this._serverSheet.deleteRule(index);\n return;\n }\n if (this._optimizeForSpeed) {\n this.replaceRule(index, \"\");\n } else {\n var tag = this._tags[index];\n invariant$1(tag, \"rule at index `\" + index + \"` not found\");\n tag.parentNode.removeChild(tag);\n this._tags[index] = null;\n }\n };\n _proto.flush = function flush() {\n this._injected = false;\n this._rulesCount = 0;\n if (typeof window !== \"undefined\") {\n this._tags.forEach(function(tag) {\n return tag && tag.parentNode.removeChild(tag);\n });\n this._tags = [];\n } else {\n // simpler on server\n this._serverSheet.cssRules = [];\n }\n };\n _proto.cssRules = function cssRules() {\n var _this = this;\n if (typeof window === \"undefined\") {\n return this._serverSheet.cssRules;\n }\n return this._tags.reduce(function(rules, tag) {\n if (tag) {\n rules = rules.concat(Array.prototype.map.call(_this.getSheetForTag(tag).cssRules, function(rule) {\n return rule.cssText === _this._deletedRulePlaceholder ? null : rule;\n }));\n } else {\n rules.push(null);\n }\n return rules;\n }, []);\n };\n _proto.makeStyleTag = function makeStyleTag(name, cssString, relativeToTag) {\n if (cssString) {\n invariant$1(isString(cssString), \"makeStyleTag accepts only strings as second parameter\");\n }\n var tag = document.createElement(\"style\");\n if (this._nonce) tag.setAttribute(\"nonce\", this._nonce);\n tag.type = \"text/css\";\n tag.setAttribute(\"data-\" + name, \"\");\n if (cssString) {\n tag.appendChild(document.createTextNode(cssString));\n }\n var head = document.head || document.getElementsByTagName(\"head\")[0];\n if (relativeToTag) {\n head.insertBefore(tag, relativeToTag);\n } else {\n head.appendChild(tag);\n }\n return tag;\n };\n _createClass(StyleSheet, [\n {\n key: \"length\",\n get: function get() {\n return this._rulesCount;\n }\n }\n ]);\n return StyleSheet;\n}();\nfunction invariant$1(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheet: \" + message + \".\");\n }\n}\nfunction hash(str) {\n var _$hash = 5381, i = str.length;\n while(i){\n _$hash = _$hash * 33 ^ str.charCodeAt(--i);\n }\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */ return _$hash >>> 0;\n}\nvar stringHash = hash;\nvar sanitize = function(rule) {\n return rule.replace(/\\/style/gi, \"\\\\/style\");\n};\nvar cache = {};\n/**\n * computeId\n *\n * Compute and memoize a jsx id from a basedId and optionally props.\n */ function computeId(baseId, props) {\n if (!props) {\n return \"jsx-\" + baseId;\n }\n var propsToString = String(props);\n var key = baseId + propsToString;\n if (!cache[key]) {\n cache[key] = \"jsx-\" + stringHash(baseId + \"-\" + propsToString);\n }\n return cache[key];\n}\n/**\n * computeSelector\n *\n * Compute and memoize dynamic selectors.\n */ function computeSelector(id, css) {\n var selectoPlaceholderRegexp = /__jsx-style-dynamic-selector/g;\n // Sanitize SSR-ed CSS.\n // Client side code doesn't need to be sanitized since we use\n // document.createTextNode (dev) and the CSSOM api sheet.insertRule (prod).\n if (typeof window === \"undefined\") {\n css = sanitize(css);\n }\n var idcss = id + css;\n if (!cache[idcss]) {\n cache[idcss] = css.replace(selectoPlaceholderRegexp, id);\n }\n return cache[idcss];\n}\nfunction mapRulesToStyle(cssRules, options) {\n if (options === void 0) options = {};\n return cssRules.map(function(args) {\n var id = args[0];\n var css = args[1];\n return /*#__PURE__*/ React__default[\"default\"].createElement(\"style\", {\n id: \"__\" + id,\n // Avoid warnings upon render with a key\n key: \"__\" + id,\n nonce: options.nonce ? options.nonce : undefined,\n dangerouslySetInnerHTML: {\n __html: css\n }\n });\n });\n}\nvar StyleSheetRegistry = /*#__PURE__*/ function() {\n function StyleSheetRegistry(param) {\n var ref = param === void 0 ? {} : param, _styleSheet = ref.styleSheet, styleSheet = _styleSheet === void 0 ? null : _styleSheet, _optimizeForSpeed = ref.optimizeForSpeed, optimizeForSpeed = _optimizeForSpeed === void 0 ? false : _optimizeForSpeed;\n this._sheet = styleSheet || new StyleSheet({\n name: \"styled-jsx\",\n optimizeForSpeed: optimizeForSpeed\n });\n this._sheet.inject();\n if (styleSheet && typeof optimizeForSpeed === \"boolean\") {\n this._sheet.setOptimizeForSpeed(optimizeForSpeed);\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n }\n var _proto = StyleSheetRegistry.prototype;\n _proto.add = function add(props) {\n var _this = this;\n if (undefined === this._optimizeForSpeed) {\n this._optimizeForSpeed = Array.isArray(props.children);\n this._sheet.setOptimizeForSpeed(this._optimizeForSpeed);\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n if (typeof window !== \"undefined\" && !this._fromServer) {\n this._fromServer = this.selectFromServer();\n this._instancesCounts = Object.keys(this._fromServer).reduce(function(acc, tagName) {\n acc[tagName] = 0;\n return acc;\n }, {});\n }\n var ref = this.getIdAndRules(props), styleId = ref.styleId, rules = ref.rules;\n // Deduping: just increase the instances count.\n if (styleId in this._instancesCounts) {\n this._instancesCounts[styleId] += 1;\n return;\n }\n var indices = rules.map(function(rule) {\n return _this._sheet.insertRule(rule);\n }) // Filter out invalid rules\n .filter(function(index) {\n return index !== -1;\n });\n this._indices[styleId] = indices;\n this._instancesCounts[styleId] = 1;\n };\n _proto.remove = function remove(props) {\n var _this = this;\n var styleId = this.getIdAndRules(props).styleId;\n invariant(styleId in this._instancesCounts, \"styleId: `\" + styleId + \"` not found\");\n this._instancesCounts[styleId] -= 1;\n if (this._instancesCounts[styleId] < 1) {\n var tagFromServer = this._fromServer && this._fromServer[styleId];\n if (tagFromServer) {\n tagFromServer.parentNode.removeChild(tagFromServer);\n delete this._fromServer[styleId];\n } else {\n this._indices[styleId].forEach(function(index) {\n return _this._sheet.deleteRule(index);\n });\n delete this._indices[styleId];\n }\n delete this._instancesCounts[styleId];\n }\n };\n _proto.update = function update(props, nextProps) {\n this.add(nextProps);\n this.remove(props);\n };\n _proto.flush = function flush() {\n this._sheet.flush();\n this._sheet.inject();\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n };\n _proto.cssRules = function cssRules() {\n var _this = this;\n var fromServer = this._fromServer ? Object.keys(this._fromServer).map(function(styleId) {\n return [\n styleId,\n _this._fromServer[styleId]\n ];\n }) : [];\n var cssRules = this._sheet.cssRules();\n return fromServer.concat(Object.keys(this._indices).map(function(styleId) {\n return [\n styleId,\n _this._indices[styleId].map(function(index) {\n return cssRules[index].cssText;\n }).join(_this._optimizeForSpeed ? \"\" : \"\\n\")\n ];\n }) // filter out empty rules\n .filter(function(rule) {\n return Boolean(rule[1]);\n }));\n };\n _proto.styles = function styles(options) {\n return mapRulesToStyle(this.cssRules(), options);\n };\n _proto.getIdAndRules = function getIdAndRules(props) {\n var css = props.children, dynamic = props.dynamic, id = props.id;\n if (dynamic) {\n var styleId = computeId(id, dynamic);\n return {\n styleId: styleId,\n rules: Array.isArray(css) ? css.map(function(rule) {\n return computeSelector(styleId, rule);\n }) : [\n computeSelector(styleId, css)\n ]\n };\n }\n return {\n styleId: computeId(id),\n rules: Array.isArray(css) ? css : [\n css\n ]\n };\n };\n /**\n * selectFromServer\n *\n * Collects style tags from the document with id __jsx-XXX\n */ _proto.selectFromServer = function selectFromServer() {\n var elements = Array.prototype.slice.call(document.querySelectorAll('[id^=\"__jsx-\"]'));\n return elements.reduce(function(acc, element) {\n var id = element.id.slice(2);\n acc[id] = element;\n return acc;\n }, {});\n };\n return StyleSheetRegistry;\n}();\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheetRegistry: \" + message + \".\");\n }\n}\nvar StyleSheetContext = /*#__PURE__*/ React.createContext(null);\nStyleSheetContext.displayName = \"StyleSheetContext\";\nfunction createStyleRegistry() {\n return new StyleSheetRegistry();\n}\nfunction StyleRegistry(param) {\n _s();\n var configuredRegistry = param.registry, children = param.children;\n var rootRegistry = React.useContext(StyleSheetContext);\n var ref = React.useState({\n \"StyleRegistry.useState[ref]\": function() {\n return rootRegistry || configuredRegistry || createStyleRegistry();\n }\n }[\"StyleRegistry.useState[ref]\"]), registry = ref[0];\n return /*#__PURE__*/ React__default[\"default\"].createElement(StyleSheetContext.Provider, {\n value: registry\n }, children);\n}\n_s(StyleRegistry, \"F6PIZFsaWgcE6rBNmd+Zkq3zRoY=\");\n_c1 = StyleRegistry;\nfunction useStyleRegistry() {\n _s1();\n return React.useContext(StyleSheetContext);\n}\n_s1(useStyleRegistry, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\n// Opt-into the new `useInsertionEffect` API in React 18, fallback to `useLayoutEffect`.\n// https://github.com/reactwg/react-18/discussions/110\nvar useInsertionEffect = React__default[\"default\"].useInsertionEffect || React__default[\"default\"].useLayoutEffect;\nvar defaultRegistry = typeof window !== \"undefined\" ? createStyleRegistry() : undefined;\nfunction JSXStyle(props) {\n _s2();\n var registry = defaultRegistry ? defaultRegistry : useStyleRegistry();\n // If `registry` does not exist, we do nothing here.\n if (!registry) {\n return null;\n }\n if (typeof window === \"undefined\") {\n registry.add(props);\n return null;\n }\n useInsertionEffect({\n \"JSXStyle.useInsertionEffect\": function() {\n registry.add(props);\n return ({\n \"JSXStyle.useInsertionEffect\": function() {\n registry.remove(props);\n }\n })[\"JSXStyle.useInsertionEffect\"];\n // props.children can be string[], will be striped since id is identical\n }\n }[\"JSXStyle.useInsertionEffect\"], [\n props.id,\n String(props.dynamic)\n ]);\n return null;\n}\n_s2(JSXStyle, \"48Sqj1BUqkshsPdz6NEWXDn8pF4=\", false, function() {\n return [\n useStyleRegistry,\n useInsertionEffect\n ];\n});\n_c2 = JSXStyle;\nJSXStyle.dynamic = function(info) {\n return info.map(function(tagInfo) {\n var baseId = tagInfo[0];\n var props = tagInfo[1];\n return computeId(baseId, props);\n }).join(\" \");\n};\nexports.StyleRegistry = StyleRegistry;\nexports.createStyleRegistry = createStyleRegistry;\nexports.style = JSXStyle;\nexports.useStyleRegistry = useStyleRegistry;\nvar _c, _c1, _c2;\n$RefreshReg$(_c, \"React__default\");\n$RefreshReg$(_c1, \"StyleRegistry\");\n$RefreshReg$(_c2, \"JSXStyle\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9zdHlsZWQtanN4L2Rpc3QvaW5kZXgvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7O0FBQUFBLG1CQUFPQSxDQUFDLCtGQUFhO0FBQ3JCLElBQUlDLFFBQVFELG1CQUFPQSxDQUFDLG1GQUFPO0FBRTNCLFNBQVNFLHNCQUF1QkMsQ0FBQztJQUFJLE9BQU9BLEtBQUssT0FBT0EsTUFBTSxZQUFZLGFBQWFBLElBQUlBLElBQUk7UUFBRSxXQUFXQTtJQUFFO0FBQUc7QUFFakgsSUFBSUMsaUJBQWlCLFdBQVcsR0FBRUYsc0JBQXNCRDs7QUFFeEQ7OztBQUdBLEdBQUcsU0FBU0ksa0JBQWtCQyxNQUFNLEVBQUVDLEtBQUs7SUFDdkMsSUFBSSxJQUFJQyxJQUFJLEdBQUdBLElBQUlELE1BQU1FLE1BQU0sRUFBRUQsSUFBSTtRQUNqQyxJQUFJRSxhQUFhSCxLQUFLLENBQUNDLEVBQUU7UUFDekJFLFdBQVdDLFVBQVUsR0FBR0QsV0FBV0MsVUFBVSxJQUFJO1FBQ2pERCxXQUFXRSxZQUFZLEdBQUc7UUFDMUIsSUFBSSxXQUFXRixZQUFZQSxXQUFXRyxRQUFRLEdBQUc7UUFDakRDLE9BQU9DLGNBQWMsQ0FBQ1QsUUFBUUksV0FBV00sR0FBRyxFQUFFTjtJQUNsRDtBQUNKO0FBQ0EsU0FBU08sYUFBYUMsV0FBVyxFQUFFQyxVQUFVLEVBQUVDLFdBQVc7SUFDdEQsSUFBSUQsWUFBWWQsa0JBQWtCYSxZQUFZRyxTQUFTLEVBQUVGO0lBQ3pELElBQUlDLGFBQWFmLGtCQUFrQmEsYUFBYUU7SUFDaEQsT0FBT0Y7QUFDWDtBQUNBLElBQUlJLFNBQVMsT0FBT0MsT0FBT0EsS0FBSyxlQUFlQSxPQUFPQSxDQUFDQyxHQUFHLElBQUlELGtCQUF5QjtBQUN2RixJQUFJRSxXQUFXLFNBQVNDLENBQUM7SUFDckIsT0FBT1osT0FBT08sU0FBUyxDQUFDTSxRQUFRLENBQUNDLElBQUksQ0FBQ0YsT0FBTztBQUNqRDtBQUNBLElBQUlH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QjtZQUNmUCxTQUFTL0IsR0FBRyxDQUFDMUg7WUFDYjsrQ0FBTztvQkFDSHlKLFNBQVNwQixNQUFNLENBQUNySTtnQkFDcEI7O1FBQ0osd0VBQXdFO1FBQ3hFO3NDQUFHO1FBQ0NBLE1BQU15RyxFQUFFO1FBQ1JGLE9BQU92RyxNQUFNOEksT0FBTztLQUN2QjtJQUNELE9BQU87QUFDWDtJQXJCU3FCOztRQUM4Q0o7UUFTbkRDOzs7TUFWS0c7QUFzQlRBLFNBQVNyQixPQUFPLEdBQUcsU0FBU3NCLElBQUk7SUFDNUIsT0FBT0EsS0FBS3ZGLEdBQUcsQ0FBQyxTQUFTd0YsT0FBTztRQUM1QixJQUFJaEUsU0FBU2dFLE9BQU8sQ0FBQyxFQUFFO1FBQ3ZCLElBQUlySyxRQUFRcUssT0FBTyxDQUFDLEVBQUU7UUFDdEIsT0FBT2pFLFVBQVVDLFFBQVFyRztJQUM3QixHQUFHMkksSUFBSSxDQUFDO0FBQ1o7QUFFQTJCLHFCQUFxQixHQUFHZjtBQUN4QmUsMkJBQTJCLEdBQUdoQjtBQUM5QmdCLGFBQWEsR0FBR0g7QUFDaEJHLHdCQUF3QixHQUFHUCIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvc3R5bGVkLWpzeC9kaXN0L2luZGV4L2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbInJlcXVpcmUoJ2NsaWVudC1vbmx5Jyk7XG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcERlZmF1bHRMZWdhY3kgKGUpIHsgcmV0dXJuIGUgJiYgdHlwZW9mIGUgPT09ICdvYmplY3QnICYmICdkZWZhdWx0JyBpbiBlID8gZSA6IHsgJ2RlZmF1bHQnOiBlIH07IH1cblxudmFyIFJlYWN0X19kZWZhdWx0ID0gLyojX19QVVJFX18qL19pbnRlcm9wRGVmYXVsdExlZ2FjeShSZWFjdCk7XG5cbi8qXG5CYXNlZCBvbiBHbGFtb3IncyBzaGVldFxuaHR0cHM6Ly9naXRodWIuY29tL3RocmVlcG9pbnRvbmUvZ2xhbW9yL2Jsb2IvNjY3YjQ4MGQzMWIzNzIxYTkwNTAyMWIyNmUxMjkwY2U5MmNhMjg3OS9zcmMvc2hlZXQuanNcbiovIGZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspe1xuICAgICAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgICAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICAgICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgICBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTtcbiAgICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gICAgcmV0dXJuIENvbnN0cnVjdG9yO1xufVxudmFyIGlzUHJvZCA9IHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MuZW52ICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIjtcbnZhciBpc1N0cmluZyA9IGZ1bmN0aW9uKG8pIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pID09PSBcIltvYmplY3QgU3RyaW5nXVwiO1xufTtcbnZhciBTdHlsZVNoZWV0ID0gLyojX19QVVJFX18qLyBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiBTdHlsZVNoZWV0KHBhcmFtKSB7XG4gICAgICAgIHZhciByZWYgPSBwYXJhbSA9PT0gdm9pZCAwID8ge30gOiBwYXJhbSwgX25hbWUgPSByZWYubmFtZSwgbmFtZSA9IF9uYW1lID09PSB2b2lkIDAgPyBcInN0eWxlc2hlZXRcIiA6IF9uYW1lLCBfb3B0aW1pemVGb3JTcGVlZCA9IHJlZi5vcHRpbWl6ZUZvclNwZWVkLCBvcHRpbWl6ZUZvclNwZWVkID0gX29wdGltaXplRm9yU3BlZWQgPT09IHZvaWQgMCA/IGlzUHJvZCA6IF9vcHRpbWl6ZUZvclNwZWVkO1xuICAgICAgICBpbnZhcmlhbnQkMShpc1N0cmluZyhuYW1lKSwgXCJgbmFtZWAgbXVzdCBiZSBhIHN0cmluZ1wiKTtcbiAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuX2RlbGV0ZWRSdWxlUGxhY2Vob2xkZXIgPSBcIiNcIiArIG5hbWUgKyBcIi1kZWxldGVkLXJ1bGVfX19fe31cIjtcbiAgICAgICAgaW52YXJpYW50JDEodHlwZW9mIG9wdGltaXplRm9yU3BlZWQgPT09IFwiYm9vbGVhblwiLCBcImBvcHRpbWl6ZUZvclNwZWVkYCBtdXN0IGJlIGEgYm9vbGVhblwiKTtcbiAgICAgICAgdGhpcy5fb3B0aW1pemVGb3JTcGVlZCA9IG9wdGltaXplRm9yU3BlZWQ7XG4gICAgICAgIHRoaXMuX3NlcnZlclNoZWV0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl90YWdzID0gW107XG4gICAgICAgIHRoaXMuX2luamVjdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3J1bGVzQ291bnQgPSAwO1xuICAgICAgICB2YXIgbm9kZSA9IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWV0YVtwcm9wZXJ0eT1cImNzcC1ub25jZVwiXScpO1xuICAgICAgICB0aGlzLl9ub25jZSA9IG5vZGUgPyBub2RlLmdldEF0dHJpYnV0ZShcImNvbnRlbnRcIikgOiBudWxsO1xuICAgIH1cbiAgICB2YXIgX3Byb3RvID0gU3R5bGVTaGVldC5wcm90b3R5cGU7XG4gICAgX3Byb3RvLnNldE9wdGltaXplRm9yU3BlZWQgPSBmdW5jdGlvbiBzZXRPcHRpbWl6ZUZvclNwZWVkKGJvb2wpIHtcbiAgICAgICAgaW52YXJpYW50JDEodHlwZW9mIGJvb2wgPT09IFwiYm9vbGVhblwiLCBcImBzZXRPcHRpbWl6ZUZvclNwZWVkYCBhY2NlcHRzIGEgYm9vbGVhblwiKTtcbiAgICAgICAgaW52YXJpYW50JDEodGhpcy5fcnVsZXNDb3VudCA9PT0gMCwgXCJvcHRpbWl6ZUZvclNwZWVkIGNhbm5vdCBiZSB3aGVuIHJ1bGVzIGhhdmUgYWxyZWFkeSBiZWVuIGluc2VydGVkXCIpO1xuICAgICAgICB0aGlzLmZsdXNoKCk7XG4gICAgICAgIHRoaXMuX29wdGltaXplRm9yU3BlZWQgPSBib29sO1xuICAgICAgICB0aGlzLmluamVjdCgpO1xuICAgIH07XG4gICAgX3Byb3RvLmlzT3B0aW1pemVGb3JTcGVlZCA9IGZ1bmN0aW9uIGlzT3B0aW1pemVGb3JTcGVlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGltaXplRm9yU3BlZWQ7XG4gICAgfTtcbiAgICBfcHJvdG8uaW5qZWN0ID0gZnVuY3Rpb24gaW5qZWN0KCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICBpbnZhcmlhbnQkMSghdGhpcy5faW5qZWN0ZWQsIFwic2hlZXQgYWxyZWFkeSBpbmplY3RlZFwiKTtcbiAgICAgICAgdGhpcy5faW5qZWN0ZWQgPSB0cnVlO1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0aGlzLl9vcHRpbWl6ZUZvclNwZWVkKSB7XG4gICAgICAgICAgICB0aGlzLl90YWdzWzBdID0gdGhpcy5tYWtlU3R5bGVUYWcodGhpcy5fbmFtZSk7XG4gICAgICAgICAgICB0aGlzLl9vcHRpbWl6ZUZvclNwZWVkID0gXCJpbnNlcnRSdWxlXCIgaW4gdGhpcy5nZXRTaGVldCgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9vcHRpbWl6ZUZvclNwZWVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1Byb2QpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiU3R5bGVTaGVldDogb3B0aW1pemVGb3JTcGVlZCBtb2RlIG5vdCBzdXBwb3J0ZWQgZmFsbGluZyBiYWNrIHRvIHN0YW5kYXJkIG1vZGUuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmZsdXNoKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5qZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlcnZlclNoZWV0ID0ge1xuICAgICAgICAgICAgY3NzUnVsZXM6IFtdLFxuICAgICAgICAgICAgaW5zZXJ0UnVsZTogZnVuY3Rpb24ocnVsZSwgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGluZGV4ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLl9zZXJ2ZXJTaGVldC5jc3NSdWxlc1tpbmRleF0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjc3NUZXh0OiBydWxlXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuX3NlcnZlclNoZWV0LmNzc1J1bGVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgY3NzVGV4dDogcnVsZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlbGV0ZVJ1bGU6IGZ1bmN0aW9uKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuX3NlcnZlclNoZWV0LmNzc1J1bGVzW2luZGV4XSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfTtcbiAgICBfcHJvdG8uZ2V0U2hlZXRGb3JUYWcgPSBmdW5jdGlvbiBnZXRTaGVldEZvclRhZyh0YWcpIHtcbiAgICAgICAgaWYgKHRhZy5zaGVldCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhZy5zaGVldDtcbiAgICAgICAgfVxuICAgICAgICAvLyB0aGlzIHdlaXJkbmVzcyBicm91Z2h0IHRvIHlvdSBieSBmaXJlZm94XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBkb2N1bWVudC5zdHlsZVNoZWV0cy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQuc3R5bGVTaGVldHNbaV0ub3duZXJOb2RlID09PSB0YWcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuc3R5bGVTaGVldHNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIF9wcm90by5nZXRTaGVldCA9IGZ1bmN0aW9uIGdldFNoZWV0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTaGVldEZvclRhZyh0aGlzLl90YWdzW3RoaXMuX3RhZ3MubGVuZ3RoIC0gMV0pO1xuICAgIH07XG4gICAgX3Byb3RvLmluc2VydFJ1bGUgPSBmdW5jdGlvbiBpbnNlcnRSdWxlKHJ1bGUsIGluZGV4KSB7XG4gICAgICAgIGludmFyaWFudCQxKGlzU3RyaW5nKHJ1bGUpLCBcImBpbnNlcnRSdWxlYCBhY2NlcHRzIG9ubHkgc3RyaW5nc1wiKTtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5kZXggIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICBpbmRleCA9IHRoaXMuX3NlcnZlclNoZWV0LmNzc1J1bGVzLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3NlcnZlclNoZWV0Lmluc2VydFJ1bGUocnVsZSwgaW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3J1bGVzQ291bnQrKztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fb3B0aW1pemVGb3JTcGVlZCkge1xuICAgICAgICAgICAgdmFyIHNoZWV0ID0gdGhpcy5nZXRTaGVldCgpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpbmRleCAhPT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIGluZGV4ID0gc2hlZXQuY3NzUnVsZXMubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gdGhpcyB3ZWlyZG5lc3MgZm9yIHBlcmYsIGFuZCBjaHJvbWUncyB3ZWlyZCBidWdcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIwMDA3OTkyL2Nocm9tZS1zdWRkZW5seS1zdG9wcGVkLWFjY2VwdGluZy1pbnNlcnRydWxlXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHNoZWV0Lmluc2VydFJ1bGUocnVsZSwgaW5kZXgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzUHJvZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJTdHlsZVNoZWV0OiBpbGxlZ2FsIHJ1bGU6IFxcblxcblwiICsgcnVsZSArIFwiXFxuXFxuU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS8yMDAwNzk5MiBmb3IgbW9yZSBpbmZvXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgaW5zZXJ0aW9uUG9pbnQgPSB0aGlzLl90YWdzW2luZGV4XTtcbiAgICAgICAgICAgIHRoaXMuX3RhZ3MucHVzaCh0aGlzLm1ha2VTdHlsZVRhZyh0aGlzLl9uYW1lLCBydWxlLCBpbnNlcnRpb25Qb2ludCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9ydWxlc0NvdW50Kys7XG4gICAgfTtcbiAgICBfcHJvdG8ucmVwbGFjZVJ1bGUgPSBmdW5jdGlvbiByZXBsYWNlUnVsZShpbmRleCwgcnVsZSkge1xuICAgICAgICBpZiAodGhpcy5fb3B0aW1pemVGb3JTcGVlZCB8fCB0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICB2YXIgc2hlZXQgPSB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gdGhpcy5nZXRTaGVldCgpIDogdGhpcy5fc2VydmVyU2hlZXQ7XG4gICAgICAgICAgICBpZiAoIXJ1bGUudHJpbSgpKSB7XG4gICAgICAgICAgICAgICAgcnVsZSA9IHRoaXMuX2RlbGV0ZWRSdWxlUGxhY2Vob2xkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXNoZWV0LmNzc1J1bGVzW2luZGV4XSkge1xuICAgICAgICAgICAgICAgIC8vIEBUQkQgU2hvdWxkIHdlIHRocm93IGFuIGVycm9yP1xuICAgICAgICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNoZWV0LmRlbGV0ZVJ1bGUoaW5kZXgpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBzaGVldC5pbnNlcnRSdWxlKHJ1bGUsIGluZGV4KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1Byb2QpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiU3R5bGVTaGVldDogaWxsZWdhbCBydWxlOiBcXG5cXG5cIiArIHJ1bGUgKyBcIlxcblxcblNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3EvMjAwMDc5OTIgZm9yIG1vcmUgaW5mb1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSW4gb3JkZXIgdG8gcHJlc2VydmUgdGhlIGluZGljZXMgd2UgaW5zZXJ0IGEgZGVsZXRlUnVsZVBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgc2hlZXQuaW5zZXJ0UnVsZSh0aGlzLl9kZWxldGVkUnVsZVBsYWNlaG9sZGVyLCBpbmRleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgdGFnID0gdGhpcy5fdGFnc1tpbmRleF07XG4gICAgICAgICAgICBpbnZhcmlhbnQkMSh0YWcsIFwib2xkIHJ1bGUgYXQgaW5kZXggYFwiICsgaW5kZXggKyBcImAgbm90IGZvdW5kXCIpO1xuICAgICAgICAgICAgdGFnLnRleHRDb250ZW50ID0gcnVsZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfTtcbiAgICBfcHJvdG8uZGVsZXRlUnVsZSA9IGZ1bmN0aW9uIGRlbGV0ZVJ1bGUoaW5kZXgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlcnZlclNoZWV0LmRlbGV0ZVJ1bGUoaW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9vcHRpbWl6ZUZvclNwZWVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlcGxhY2VSdWxlKGluZGV4LCBcIlwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciB0YWcgPSB0aGlzLl90YWdzW2luZGV4XTtcbiAgICAgICAgICAgIGludmFyaWFudCQxKHRhZywgXCJydWxlIGF0IGluZGV4IGBcIiArIGluZGV4ICsgXCJgIG5vdCBmb3VuZFwiKTtcbiAgICAgICAgICAgIHRhZy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRhZyk7XG4gICAgICAgICAgICB0aGlzLl90YWdzW2luZGV4XSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIF9wcm90by5mbHVzaCA9IGZ1bmN0aW9uIGZsdXNoKCkge1xuICAgICAgICB0aGlzLl9pbmplY3RlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9ydWxlc0NvdW50ID0gMDtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhZ3MuZm9yRWFjaChmdW5jdGlvbih0YWcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFnICYmIHRhZy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRhZyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX3RhZ3MgPSBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHNpbXBsZXIgb24gc2VydmVyXG4gICAgICAgICAgICB0aGlzLl9zZXJ2ZXJTaGVldC5jc3NSdWxlcyA9IFtdO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBfcHJvdG8uY3NzUnVsZXMgPSBmdW5jdGlvbiBjc3NSdWxlcygpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zZXJ2ZXJTaGVldC5jc3NSdWxlcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fdGFncy5yZWR1Y2UoZnVuY3Rpb24ocnVsZXMsIHRhZykge1xuICAgICAgICAgICAgaWYgKHRhZykge1xuICAgICAgICAgICAgICAgIHJ1bGVzID0gcnVsZXMuY29uY2F0KEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChfdGhpcy5nZXRTaGVldEZvclRhZyh0YWcpLmNzc1J1bGVzLCBmdW5jdGlvbihydWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBydWxlLmNzc1RleHQgPT09IF90aGlzLl9kZWxldGVkUnVsZVBsYWNlaG9sZGVyID8gbnVsbCA6IHJ1bGU7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBydWxlcy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJ1bGVzO1xuICAgICAgICB9LCBbXSk7XG4gICAgfTtcbiAgICBfcHJvdG8ubWFrZVN0eWxlVGFnID0gZnVuY3Rpb24gbWFrZVN0eWxlVGFnKG5hbWUsIGNzc1N0cmluZywgcmVsYXRpdmVUb1RhZykge1xuICAgICAgICBpZiAoY3NzU3RyaW5nKSB7XG4gICAgICAgICAgICBpbnZhcmlhbnQkMShpc1N0cmluZyhjc3NTdHJpbmcpLCBcIm1ha2VTdHlsZVRhZyBhY2NlcHRzIG9ubHkgc3RyaW5ncyBhcyBzZWNvbmQgcGFyYW1ldGVyXCIpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0YWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XG4gICAgICAgIGlmICh0aGlzLl9ub25jZSkgdGFnLnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsIHRoaXMuX25vbmNlKTtcbiAgICAgICAgdGFnLnR5cGUgPSBcInRleHQvY3NzXCI7XG4gICAgICAgIHRhZy5zZXRBdHRyaWJ1dGUoXCJkYXRhLVwiICsgbmFtZSwgXCJcIik7XG4gICAgICAgIGlmIChjc3NTdHJpbmcpIHtcbiAgICAgICAgICAgIHRhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3NTdHJpbmcpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaGVhZCA9IGRvY3VtZW50LmhlYWQgfHwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdO1xuICAgICAgICBpZiAocmVsYXRpdmVUb1RhZykge1xuICAgICAgICAgICAgaGVhZC5pbnNlcnRCZWZvcmUodGFnLCByZWxhdGl2ZVRvVGFnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQodGFnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFnO1xuICAgIH07XG4gICAgX2NyZWF0ZUNsYXNzKFN0eWxlU2hlZXQsIFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcImxlbmd0aFwiLFxuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3J1bGVzQ291bnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBdKTtcbiAgICByZXR1cm4gU3R5bGVTaGVldDtcbn0oKTtcbmZ1bmN0aW9uIGludmFyaWFudCQxKGNvbmRpdGlvbiwgbWVzc2FnZSkge1xuICAgIGlmICghY29uZGl0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlN0eWxlU2hlZXQ6IFwiICsgbWVzc2FnZSArIFwiLlwiKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGhhc2goc3RyKSB7XG4gICAgdmFyIF8kaGFzaCA9IDUzODEsIGkgPSBzdHIubGVuZ3RoO1xuICAgIHdoaWxlKGkpe1xuICAgICAgICBfJGhhc2ggPSBfJGhhc2ggKiAzMyBeIHN0ci5jaGFyQ29kZUF0KC0taSk7XG4gICAgfVxuICAgIC8qIEphdmFTY3JpcHQgZG9lcyBiaXR3aXNlIG9wZXJhdGlvbnMgKGxpa2UgWE9SLCBhYm92ZSkgb24gMzItYml0IHNpZ25lZFxuICAgKiBpbnRlZ2Vycy4gU2luY2Ugd2Ugd2FudCB0aGUgcmVzdWx0cyB0byBiZSBhbHdheXMgcG9zaXRpdmUsIGNvbnZlcnQgdGhlXG4gICAqIHNpZ25lZCBpbnQgdG8gYW4gdW5zaWduZWQgYnkgZG9pbmcgYW4gdW5zaWduZWQgYml0c2hpZnQuICovIHJldHVybiBfJGhhc2ggPj4+IDA7XG59XG52YXIgc3RyaW5nSGFzaCA9IGhhc2g7XG5cbnZhciBzYW5pdGl6ZSA9IGZ1bmN0aW9uKHJ1bGUpIHtcbiAgICByZXR1cm4gcnVsZS5yZXBsYWNlKC9cXC9zdHlsZS9naSwgXCJcXFxcL3N0eWxlXCIpO1xufTtcbnZhciBjYWNoZSA9IHt9O1xuLyoqXG4gKiBjb21wdXRlSWRcbiAqXG4gKiBDb21wdXRlIGFuZCBtZW1vaXplIGEganN4IGlkIGZyb20gYSBiYXNlZElkIGFuZCBvcHRpb25hbGx5IHByb3BzLlxuICovIGZ1bmN0aW9uIGNvbXB1dGVJZChiYXNlSWQsIHByb3BzKSB7XG4gICAgaWYgKCFwcm9wcykge1xuICAgICAgICByZXR1cm4gXCJqc3gtXCIgKyBiYXNlSWQ7XG4gICAgfVxuICAgIHZhciBwcm9wc1RvU3RyaW5nID0gU3RyaW5nKHByb3BzKTtcbiAgICB2YXIga2V5ID0gYmFzZUlkICsgcHJvcHNUb1N0cmluZztcbiAgICBpZiAoIWNhY2hlW2tleV0pIHtcbiAgICAgICAgY2FjaGVba2V5XSA9IFwianN4LVwiICsgc3RyaW5nSGFzaChiYXNlSWQgKyBcIi1cIiArIHByb3BzVG9TdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gY2FjaGVba2V5XTtcbn1cbi8qKlxuICogY29tcHV0ZVNlbGVjdG9yXG4gKlxuICogQ29tcHV0ZSBhbmQgbWVtb2l6ZSBkeW5hbWljIHNlbGVjdG9ycy5cbiAqLyBmdW5jdGlvbiBjb21wdXRlU2VsZWN0b3IoaWQsIGNzcykge1xuICAgIHZhciBzZWxlY3RvUGxhY2Vob2xkZXJSZWdleHAgPSAvX19qc3gtc3R5bGUtZHluYW1pYy1zZWxlY3Rvci9nO1xuICAgIC8vIFNhbml0aXplIFNTUi1lZCBDU1MuXG4gICAgLy8gQ2xpZW50IHNpZGUgY29kZSBkb2Vzbid0IG5lZWQgdG8gYmUgc2FuaXRpemVkIHNpbmNlIHdlIHVzZVxuICAgIC8vIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlIChkZXYpIGFuZCB0aGUgQ1NTT00gYXBpIHNoZWV0Lmluc2VydFJ1bGUgKHByb2QpLlxuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGNzcyA9IHNhbml0aXplKGNzcyk7XG4gICAgfVxuICAgIHZhciBpZGNzcyA9IGlkICsgY3NzO1xuICAgIGlmICghY2FjaGVbaWRjc3NdKSB7XG4gICAgICAgIGNhY2hlW2lkY3NzXSA9IGNzcy5yZXBsYWNlKHNlbGVjdG9QbGFjZWhvbGRlclJlZ2V4cCwgaWQpO1xuICAgIH1cbiAgICByZXR1cm4gY2FjaGVbaWRjc3NdO1xufVxuXG5mdW5jdGlvbiBtYXBSdWxlc1RvU3R5bGUoY3NzUnVsZXMsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSBvcHRpb25zID0ge307XG4gICAgcmV0dXJuIGNzc1J1bGVzLm1hcChmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgIHZhciBpZCA9IGFyZ3NbMF07XG4gICAgICAgIHZhciBjc3MgPSBhcmdzWzFdO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdF9fZGVmYXVsdFtcImRlZmF1bHRcIl0uY3JlYXRlRWxlbWVudChcInN0eWxlXCIsIHtcbiAgICAgICAgICAgIGlkOiBcIl9fXCIgKyBpZCxcbiAgICAgICAgICAgIC8vIEF2b2lkIHdhcm5pbmdzIHVwb24gcmVuZGVyIHdpdGggYSBrZXlcbiAgICAgICAgICAgIGtleTogXCJfX1wiICsgaWQsXG4gICAgICAgICAgICBub25jZTogb3B0aW9ucy5ub25jZSA/IG9wdGlvbnMubm9uY2UgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTDoge1xuICAgICAgICAgICAgICAgIF9faHRtbDogY3NzXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxudmFyIFN0eWxlU2hlZXRSZWdpc3RyeSA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gU3R5bGVTaGVldFJlZ2lzdHJ5KHBhcmFtKSB7XG4gICAgICAgIHZhciByZWYgPSBwYXJhbSA9PT0gdm9pZCAwID8ge30gOiBwYXJhbSwgX3N0eWxlU2hlZXQgPSByZWYuc3R5bGVTaGVldCwgc3R5bGVTaGVldCA9IF9zdHlsZVNoZWV0ID09PSB2b2lkIDAgPyBudWxsIDogX3N0eWxlU2hlZXQsIF9vcHRpbWl6ZUZvclNwZWVkID0gcmVmLm9wdGltaXplRm9yU3BlZWQsIG9wdGltaXplRm9yU3BlZWQgPSBfb3B0aW1pemVGb3JTcGVlZCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfb3B0aW1pemVGb3JTcGVlZDtcbiAgICAgICAgdGhpcy5fc2hlZXQgPSBzdHlsZVNoZWV0IHx8IG5ldyBTdHlsZVNoZWV0KHtcbiAgICAgICAgICAgIG5hbWU6IFwic3R5bGVkLWpzeFwiLFxuICAgICAgICAgICAgb3B0aW1pemVGb3JTcGVlZDogb3B0aW1pemVGb3JTcGVlZFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fc2hlZXQuaW5qZWN0KCk7XG4gICAgICAgIGlmIChzdHlsZVNoZWV0ICYmIHR5cGVvZiBvcHRpbWl6ZUZvclNwZWVkID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgdGhpcy5fc2hlZXQuc2V0T3B0aW1pemVGb3JTcGVlZChvcHRpbWl6ZUZvclNwZWVkKTtcbiAgICAgICAgICAgIHRoaXMuX29wdGltaXplRm9yU3BlZWQgPSB0aGlzLl9zaGVldC5pc09wdGltaXplRm9yU3BlZWQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mcm9tU2VydmVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9pbmRpY2VzID0ge307XG4gICAgICAgIHRoaXMuX2luc3RhbmNlc0NvdW50cyA9IHt9O1xuICAgIH1cbiAgICB2YXIgX3Byb3RvID0gU3R5bGVTaGVldFJlZ2lzdHJ5LnByb3RvdHlwZTtcbiAgICBfcHJvdG8uYWRkID0gZnVuY3Rpb24gYWRkKHByb3BzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICh1bmRlZmluZWQgPT09IHRoaXMuX29wdGltaXplRm9yU3BlZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX29wdGltaXplRm9yU3BlZWQgPSBBcnJheS5pc0FycmF5KHByb3BzLmNoaWxkcmVuKTtcbiAgICAgICAgICAgIHRoaXMuX3NoZWV0LnNldE9wdGltaXplRm9yU3BlZWQodGhpcy5fb3B0aW1pemVGb3JTcGVlZCk7XG4gICAgICAgICAgICB0aGlzLl9vcHRpbWl6ZUZvclNwZWVkID0gdGhpcy5fc2hlZXQuaXNPcHRpbWl6ZUZvclNwZWVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgIXRoaXMuX2Zyb21TZXJ2ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zyb21TZXJ2ZXIgPSB0aGlzLnNlbGVjdEZyb21TZXJ2ZXIoKTtcbiAgICAgICAgICAgIHRoaXMuX2luc3RhbmNlc0NvdW50cyA9IE9iamVjdC5rZXlzKHRoaXMuX2Zyb21TZXJ2ZXIpLnJlZHVjZShmdW5jdGlvbihhY2MsIHRhZ05hbWUpIHtcbiAgICAgICAgICAgICAgICBhY2NbdGFnTmFtZV0gPSAwO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LCB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJlZiA9IHRoaXMuZ2V0SWRBbmRSdWxlcyhwcm9wcyksIHN0eWxlSWQgPSByZWYuc3R5bGVJZCwgcnVsZXMgPSByZWYucnVsZXM7XG4gICAgICAgIC8vIERlZHVwaW5nOiBqdXN0IGluY3JlYXNlIHRoZSBpbnN0YW5jZXMgY291bnQuXG4gICAgICAgIGlmIChzdHlsZUlkIGluIHRoaXMuX2luc3RhbmNlc0NvdW50cykge1xuICAgICAgICAgICAgdGhpcy5faW5zdGFuY2VzQ291bnRzW3N0eWxlSWRdICs9IDE7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGluZGljZXMgPSBydWxlcy5tYXAoZnVuY3Rpb24ocnVsZSkge1xuICAgICAgICAgICAgcmV0dXJuIF90aGlzLl9zaGVldC5pbnNlcnRSdWxlKHJ1bGUpO1xuICAgICAgICB9KS8vIEZpbHRlciBvdXQgaW52YWxpZCBydWxlc1xuICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uKGluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5kZXggIT09IC0xO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faW5kaWNlc1tzdHlsZUlkXSA9IGluZGljZXM7XG4gICAgICAgIHRoaXMuX2luc3RhbmNlc0NvdW50c1tzdHlsZUlkXSA9IDE7XG4gICAgfTtcbiAgICBfcHJvdG8ucmVtb3ZlID0gZnVuY3Rpb24gcmVtb3ZlKHByb3BzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBzdHlsZUlkID0gdGhpcy5nZXRJZEFuZFJ1bGVzKHByb3BzKS5zdHlsZUlkO1xuICAgICAgICBpbnZhcmlhbnQoc3R5bGVJZCBpbiB0aGlzLl9pbnN0YW5jZXNDb3VudHMsIFwic3R5bGVJZDogYFwiICsgc3R5bGVJZCArIFwiYCBub3QgZm91bmRcIik7XG4gICAgICAgIHRoaXMuX2luc3RhbmNlc0NvdW50c1tzdHlsZUlkXSAtPSAxO1xuICAgICAgICBpZiAodGhpcy5faW5zdGFuY2VzQ291bnRzW3N0eWxlSWRdIDwgMSkge1xuICAgICAgICAgICAgdmFyIHRhZ0Zyb21TZXJ2ZXIgPSB0aGlzLl9mcm9tU2VydmVyICYmIHRoaXMuX2Zyb21TZXJ2ZXJbc3R5bGVJZF07XG4gICAgICAgICAgICBpZiAodGFnRnJvbVNlcnZlcikge1xuICAgICAgICAgICAgICAgIHRhZ0Zyb21TZXJ2ZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0YWdGcm9tU2VydmVyKTtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fZnJvbVNlcnZlcltzdHlsZUlkXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5kaWNlc1tzdHlsZUlkXS5mb3JFYWNoKGZ1bmN0aW9uKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfdGhpcy5fc2hlZXQuZGVsZXRlUnVsZShpbmRleCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2luZGljZXNbc3R5bGVJZF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5faW5zdGFuY2VzQ291bnRzW3N0eWxlSWRdO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBfcHJvdG8udXBkYXRlID0gZnVuY3Rpb24gdXBkYXRlKHByb3BzLCBuZXh0UHJvcHMpIHtcbiAgICAgICAgdGhpcy5hZGQobmV4dFByb3BzKTtcbiAgICAgICAgdGhpcy5yZW1vdmUocHJvcHMpO1xuICAgIH07XG4gICAgX3Byb3RvLmZsdXNoID0gZnVuY3Rpb24gZmx1c2goKSB7XG4gICAgICAgIHRoaXMuX3NoZWV0LmZsdXNoKCk7XG4gICAgICAgIHRoaXMuX3NoZWV0LmluamVjdCgpO1xuICAgICAgICB0aGlzLl9mcm9tU2VydmVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9pbmRpY2VzID0ge307XG4gICAgICAgIHRoaXMuX2luc3RhbmNlc0NvdW50cyA9IHt9O1xuICAgIH07XG4gICAgX3Byb3RvLmNzc1J1bGVzID0gZnVuY3Rpb24gY3NzUnVsZXMoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBmcm9tU2VydmVyID0gdGhpcy5fZnJvbVNlcnZlciA/IE9iamVjdC5rZXlzKHRoaXMuX2Zyb21TZXJ2ZXIpLm1hcChmdW5jdGlvbihzdHlsZUlkKSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHN0eWxlSWQsXG4gICAgICAgICAgICAgICAgX3RoaXMuX2Zyb21TZXJ2ZXJbc3R5bGVJZF1cbiAgICAgICAgICAgIF07XG4gICAgICAgIH0pIDogW107XG4gICAgICAgIHZhciBjc3NSdWxlcyA9IHRoaXMuX3NoZWV0LmNzc1J1bGVzKCk7XG4gICAgICAgIHJldHVybiBmcm9tU2VydmVyLmNvbmNhdChPYmplY3Qua2V5cyh0aGlzLl9pbmRpY2VzKS5tYXAoZnVuY3Rpb24oc3R5bGVJZCkge1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICBzdHlsZUlkLFxuICAgICAgICAgICAgICAgIF90aGlzLl9pbmRpY2VzW3N0eWxlSWRdLm1hcChmdW5jdGlvbihpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3NzUnVsZXNbaW5kZXhdLmNzc1RleHQ7XG4gICAgICAgICAgICAgICAgfSkuam9pbihfdGhpcy5fb3B0aW1pemVGb3JTcGVlZCA/IFwiXCIgOiBcIlxcblwiKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSkvLyBmaWx0ZXIgb3V0IGVtcHR5IHJ1bGVzXG4gICAgICAgIC5maWx0ZXIoZnVuY3Rpb24ocnVsZSkge1xuICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW4ocnVsZVsxXSk7XG4gICAgICAgIH0pKTtcbiAgICB9O1xuICAgIF9wcm90by5zdHlsZXMgPSBmdW5jdGlvbiBzdHlsZXMob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbWFwUnVsZXNUb1N0eWxlKHRoaXMuY3NzUnVsZXMoKSwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICBfcHJvdG8uZ2V0SWRBbmRSdWxlcyA9IGZ1bmN0aW9uIGdldElkQW5kUnVsZXMocHJvcHMpIHtcbiAgICAgICAgdmFyIGNzcyA9IHByb3BzLmNoaWxkcmVuLCBkeW5hbWljID0gcHJvcHMuZHluYW1pYywgaWQgPSBwcm9wcy5pZDtcbiAgICAgICAgaWYgKGR5bmFtaWMpIHtcbiAgICAgICAgICAgIHZhciBzdHlsZUlkID0gY29tcHV0ZUlkKGlkLCBkeW5hbWljKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3R5bGVJZDogc3R5bGVJZCxcbiAgICAgICAgICAgICAgICBydWxlczogQXJyYXkuaXNBcnJheShjc3MpID8gY3NzLm1hcChmdW5jdGlvbihydWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wdXRlU2VsZWN0b3Ioc3R5bGVJZCwgcnVsZSk7XG4gICAgICAgICAgICAgICAgfSkgOiBbXG4gICAgICAgICAgICAgICAgICAgIGNvbXB1dGVTZWxlY3RvcihzdHlsZUlkLCBjc3MpXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3R5bGVJZDogY29tcHV0ZUlkKGlkKSxcbiAgICAgICAgICAgIHJ1bGVzOiBBcnJheS5pc0FycmF5KGNzcykgPyBjc3MgOiBbXG4gICAgICAgICAgICAgICAgY3NzXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfTtcbiAgICAvKipcbiAgICogc2VsZWN0RnJvbVNlcnZlclxuICAgKlxuICAgKiBDb2xsZWN0cyBzdHlsZSB0YWdzIGZyb20gdGhlIGRvY3VtZW50IHdpdGggaWQgX19qc3gtWFhYXG4gICAqLyBfcHJvdG8uc2VsZWN0RnJvbVNlcnZlciA9IGZ1bmN0aW9uIHNlbGVjdEZyb21TZXJ2ZXIoKSB7XG4gICAgICAgIHZhciBlbGVtZW50cyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tpZF49XCJfX2pzeC1cIl0nKSk7XG4gICAgICAgIHJldHVybiBlbGVtZW50cy5yZWR1Y2UoZnVuY3Rpb24oYWNjLCBlbGVtZW50KSB7XG4gICAgICAgICAgICB2YXIgaWQgPSBlbGVtZW50LmlkLnNsaWNlKDIpO1xuICAgICAgICAgICAgYWNjW2lkXSA9IGVsZW1lbnQ7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSk7XG4gICAgfTtcbiAgICByZXR1cm4gU3R5bGVTaGVldFJlZ2lzdHJ5O1xufSgpO1xuZnVuY3Rpb24gaW52YXJpYW50KGNvbmRpdGlvbiwgbWVzc2FnZSkge1xuICAgIGlmICghY29uZGl0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlN0eWxlU2hlZXRSZWdpc3RyeTogXCIgKyBtZXNzYWdlICsgXCIuXCIpO1xuICAgIH1cbn1cbnZhciBTdHlsZVNoZWV0Q29udGV4dCA9IC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtcblN0eWxlU2hlZXRDb250ZXh0LmRpc3BsYXlOYW1lID0gXCJTdHlsZVNoZWV0Q29udGV4dFwiO1xuZnVuY3Rpb24gY3JlYXRlU3R5bGVSZWdpc3RyeSgpIHtcbiAgICByZXR1cm4gbmV3IFN0eWxlU2hlZXRSZWdpc3RyeSgpO1xufVxuZnVuY3Rpb24gU3R5bGVSZWdpc3RyeShwYXJhbSkge1xuICAgIHZhciBjb25maWd1cmVkUmVnaXN0cnkgPSBwYXJhbS5yZWdpc3RyeSwgY2hpbGRyZW4gPSBwYXJhbS5jaGlsZHJlbjtcbiAgICB2YXIgcm9vdFJlZ2lzdHJ5ID0gUmVhY3QudXNlQ29udGV4dChTdHlsZVNoZWV0Q29udGV4dCk7XG4gICAgdmFyIHJlZiA9IFJlYWN0LnVzZVN0YXRlKGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcm9vdFJlZ2lzdHJ5IHx8IGNvbmZpZ3VyZWRSZWdpc3RyeSB8fCBjcmVhdGVTdHlsZVJlZ2lzdHJ5KCk7XG4gICAgfSksIHJlZ2lzdHJ5ID0gcmVmWzBdO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIFJlYWN0X19kZWZhdWx0W1wiZGVmYXVsdFwiXS5jcmVhdGVFbGVtZW50KFN0eWxlU2hlZXRDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiByZWdpc3RyeVxuICAgIH0sIGNoaWxkcmVuKTtcbn1cbmZ1bmN0aW9uIHVzZVN0eWxlUmVnaXN0cnkoKSB7XG4gICAgcmV0dXJuIFJlYWN0LnVzZUNvbnRleHQoU3R5bGVTaGVldENvbnRleHQpO1xufVxuXG4vLyBPcHQtaW50byB0aGUgbmV3IGB1c2VJbnNlcnRpb25FZmZlY3RgIEFQSSBpbiBSZWFjdCAxOCwgZmFsbGJhY2sgdG8gYHVzZUxheW91dEVmZmVjdGAuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vcmVhY3R3Zy9yZWFjdC0xOC9kaXNjdXNzaW9ucy8xMTBcbnZhciB1c2VJbnNlcnRpb25FZmZlY3QgPSBSZWFjdF9fZGVmYXVsdFtcImRlZmF1bHRcIl0udXNlSW5zZXJ0aW9uRWZmZWN0IHx8IFJlYWN0X19kZWZhdWx0W1wiZGVmYXVsdFwiXS51c2VMYXlvdXRFZmZlY3Q7XG52YXIgZGVmYXVsdFJlZ2lzdHJ5ID0gdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IGNyZWF0ZVN0eWxlUmVnaXN0cnkoKSA6IHVuZGVmaW5lZDtcbmZ1bmN0aW9uIEpTWFN0eWxlKHByb3BzKSB7XG4gICAgdmFyIHJlZ2lzdHJ5ID0gZGVmYXVsdFJlZ2lzdHJ5ID8gZGVmYXVsdFJlZ2lzdHJ5IDogdXNlU3R5bGVSZWdpc3RyeSgpO1xuICAgIC8vIElmIGByZWdpc3RyeWAgZG9lcyBub3QgZXhpc3QsIHdlIGRvIG5vdGhpbmcgaGVyZS5cbiAgICBpZiAoIXJlZ2lzdHJ5KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZWdpc3RyeS5hZGQocHJvcHMpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdXNlSW5zZXJ0aW9uRWZmZWN0KGZ1bmN0aW9uKCkge1xuICAgICAgICByZWdpc3RyeS5hZGQocHJvcHMpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZWdpc3RyeS5yZW1vdmUocHJvcHMpO1xuICAgICAgICB9O1xuICAgIC8vIHByb3BzLmNoaWxkcmVuIGNhbiBiZSBzdHJpbmdbXSwgd2lsbCBiZSBzdHJpcGVkIHNpbmNlIGlkIGlzIGlkZW50aWNhbFxuICAgIH0sIFtcbiAgICAgICAgcHJvcHMuaWQsXG4gICAgICAgIFN0cmluZyhwcm9wcy5keW5hbWljKVxuICAgIF0pO1xuICAgIHJldHVybiBudWxsO1xufVxuSlNYU3R5bGUuZHluYW1pYyA9IGZ1bmN0aW9uKGluZm8pIHtcbiAgICByZXR1cm4gaW5mby5tYXAoZnVuY3Rpb24odGFnSW5mbykge1xuICAgICAgICB2YXIgYmFzZUlkID0gdGFnSW5mb1swXTtcbiAgICAgICAgdmFyIHByb3BzID0gdGFnSW5mb1sxXTtcbiAgICAgICAgcmV0dXJuIGNvbXB1dGVJZChiYXNlSWQsIHByb3BzKTtcbiAgICB9KS5qb2luKFwiIFwiKTtcbn07XG5cbmV4cG9ydHMuU3R5bGVSZWdpc3RyeSA9IFN0eWxlUmVnaXN0cnk7XG5leHBvcnRzLmNyZWF0ZVN0eWxlUmVnaXN0cnkgPSBjcmVhdGVTdHlsZVJlZ2lzdHJ5O1xuZXhwb3J0cy5zdHlsZSA9IEpTWFN0eWxlO1xuZXhwb3J0cy51c2VTdHlsZVJlZ2lzdHJ5ID0gdXNlU3R5bGVSZWdpc3RyeTtcbiJdLCJuYW1lcyI6WyJyZXF1aXJlIiwiUmVhY3QiLCJfaW50ZXJvcERlZmF1bHRMZWdhY3kiLCJlIiwiUmVhY3RfX2RlZmF1bHQiLCJfZGVmaW5lUHJvcGVydGllcyIsInRhcmdldCIsInByb3BzIiwiaSIsImxlbmd0aCIsImRlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImtleSIsIl9jcmVhdGVDbGFzcyIsIkNvbnN0cnVjdG9yIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwicHJvdG90eXBlIiwiaXNQcm9kIiwicHJvY2VzcyIsImVudiIsImlzU3RyaW5nIiwibyIsInRvU3RyaW5nIiwiY2FsbCIsIlN0eWxlU2hlZXQiLCJwYXJhbSIsInJlZiIsIl9uYW1lIiwibmFtZSIsIl9vcHRpbWl6ZUZvclNwZWVkIiwib3B0aW1pemVGb3JTcGVlZCIsImludmFyaWFudCQxIiwiX2RlbGV0ZWRSdWxlUGxhY2Vob2xkZXIiLCJfc2VydmVyU2hlZXQiLCJ1bmRlZmluZWQiLCJfdGFncyIsIl9pbmplY3RlZCIsIl9ydWxlc0NvdW50Iiwibm9kZSIsIndpbmRvdyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsIl9ub25jZSIsImdldEF0dHJpYnV0ZSIsIl9wcm90byIsInNldE9wdGltaXplRm9yU3BlZWQiLCJib29sIiwiZmx1c2giLCJpbmplY3QiLCJpc09wdGltaXplRm9yU3BlZWQiLCJfdGhpcyIsIm1ha2VTdHlsZVRhZyIsImdldFNoZWV0IiwiY29uc29sZSIsIndhcm4iLCJjc3NSdWxlcyIsImluc2VydFJ1bGUiLCJydWxlIiwiaW5kZXgiLCJjc3NUZXh0IiwicHVzaCIsImRlbGV0ZVJ1bGUiLCJnZXRTaGVldEZvclRhZyIsInRhZyIsInNoZWV0Iiwic3R5bGVTaGVldHMiLCJvd25lck5vZGUiLCJlcnJvciIsImluc2VydGlvblBvaW50IiwicmVwbGFjZVJ1bGUiLCJ0cmltIiwidGV4dENvbnRlbnQiLCJwYXJlbnROb2RlIiwicmVtb3ZlQ2hpbGQiLCJmb3JFYWNoIiwicmVkdWNlIiwicnVsZXMiLCJjb25jYXQiLCJBcnJheSIsIm1hcCIsImNzc1N0cmluZyIsInJlbGF0aXZlVG9UYWciLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwidHlwZSIsImFwcGVuZENoaWxkIiwiY3JlYXRlVGV4dE5vZGUiLCJoZWFkIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJpbnNlcnRCZWZvcmUiLCJnZXQiLCJjb25kaXRpb24iLCJtZXNzYWdlIiwiRXJyb3IiLCJoYXNoIiwic3RyIiwiXyRoYXNoIiwiY2hhckNvZGVBdCIsInN0cmluZ0hhc2giLCJzYW5pdGl6ZSIsInJlcGxhY2UiLCJjYWNoZSIsImNvbXB1dGVJZCIsImJhc2VJZCIsInByb3BzVG9TdHJpbmciLCJTdHJpbmciLCJjb21wdXRlU2VsZWN0b3IiLCJpZCIsImNzcyIsInNlbGVjdG9QbGFjZWhvbGRlclJlZ2V4cCIsImlkY3NzIiwibWFwUnVsZXNUb1N0eWxlIiwib3B0aW9ucyIsImFyZ3MiLCJub25jZSIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiU3R5bGVTaGVldFJlZ2lzdHJ5IiwiX3N0eWxlU2hlZXQiLCJzdHlsZVNoZWV0IiwiX3NoZWV0IiwiX2Zyb21TZXJ2ZXIiLCJfaW5kaWNlcyIsIl9pbnN0YW5jZXNDb3VudHMiLCJhZGQiLCJpc0FycmF5IiwiY2hpbGRyZW4iLCJzZWxlY3RGcm9tU2VydmVyIiwia2V5cyIsImFjYyIsInRhZ05hbWUiLCJnZXRJZEFuZFJ1bGVzIiwic3R5bGVJZCIsImluZGljZXMiLCJmaWx0ZXIiLCJyZW1vdmUiLCJpbnZhcmlhbnQiLCJ0YWdGcm9tU2VydmVyIiwidXBkYXRlIiwibmV4dFByb3BzIiwiZnJvbVNlcnZlciIsImpvaW4iLCJCb29sZWFuIiwic3R5bGVzIiwiZHluYW1pYyIsImVsZW1lbnRzIiwic2xpY2UiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZWxlbWVudCIsIlN0eWxlU2hlZXRDb250ZXh0IiwiY3JlYXRlQ29udGV4dCIsImRpc3BsYXlOYW1lIiwiY3JlYXRlU3R5bGVSZWdpc3RyeSIsIlN0eWxlUmVnaXN0cnkiLCJjb25maWd1cmVkUmVnaXN0cnkiLCJyZWdpc3RyeSIsInJvb3RSZWdpc3RyeSIsInVzZUNvbnRleHQiLCJ1c2VTdGF0ZSIsIlByb3ZpZGVyIiwidmFsdWUiLCJ1c2VTdHlsZVJlZ2lzdHJ5IiwidXNlSW5zZXJ0aW9uRWZmZWN0IiwidXNlTGF5b3V0RWZmZWN0IiwiZGVmYXVsdFJlZ2lzdHJ5IiwiSlNYU3R5bGUiLCJpbmZvIiwidGFnSW5mbyIsImV4cG9ydHMiLCJzdHlsZSJdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/styled-jsx/dist/index/index.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/styled-jsx/style.js":
/*!******************************************!*\
!*** ./node_modules/styled-jsx/style.js ***!
\******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("\nmodule.exports = __webpack_require__(/*! ./dist/index */ \"(app-pages-browser)/./node_modules/styled-jsx/dist/index/index.js\").style;\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9zdHlsZWQtanN4L3N0eWxlLmpzIiwibWFwcGluZ3MiOiI7QUFBQUEsbUlBQThDIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9zdHlsZWQtanN4L3N0eWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9kaXN0L2luZGV4Jykuc3R5bGVcbiJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwicmVxdWlyZSIsInN0eWxlIl0sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/styled-jsx/style.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/tailwind-merge/dist/bundle-mjs.mjs":
/*!*********************************************************!*\
!*** ./node_modules/tailwind-merge/dist/bundle-mjs.mjs ***!
\*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createTailwindMerge: () => (/* binding */ createTailwindMerge),\n/* harmony export */ extendTailwindMerge: () => (/* binding */ extendTailwindMerge),\n/* harmony export */ fromTheme: () => (/* binding */ fromTheme),\n/* harmony export */ getDefaultConfig: () => (/* binding */ getDefaultConfig),\n/* harmony export */ mergeConfigs: () => (/* binding */ mergeConfigs),\n/* harmony export */ twJoin: () => (/* binding */ twJoin),\n/* harmony export */ twMerge: () => (/* binding */ twMerge),\n/* harmony export */ validators: () => (/* binding */ validators)\n/* harmony export */ });\nconst CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\n\n//# sourceMappingURL=bundle-mjs.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy90YWlsd2luZC1tZXJnZS9kaXN0L2J1bmRsZS1tanMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsMEJBQTBCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxPQUFPLG1CQUFtQixrQkFBa0IsYUFBYTtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxZQUFZO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwyQkFBMkI7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsZ0JBQWdCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDNEg7QUFDNUgiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3RhaWx3aW5kLW1lcmdlL2Rpc3QvYnVuZGxlLW1qcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ0xBU1NfUEFSVF9TRVBBUkFUT1IgPSAnLSc7XG5jb25zdCBjcmVhdGVDbGFzc0dyb3VwVXRpbHMgPSBjb25maWcgPT4ge1xuICBjb25zdCBjbGFzc01hcCA9IGNyZWF0ZUNsYXNzTWFwKGNvbmZpZyk7XG4gIGNvbnN0IHtcbiAgICBjb25mbGljdGluZ0NsYXNzR3JvdXBzLFxuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cE1vZGlmaWVyc1xuICB9ID0gY29uZmlnO1xuICBjb25zdCBnZXRDbGFzc0dyb3VwSWQgPSBjbGFzc05hbWUgPT4ge1xuICAgIGNvbnN0IGNsYXNzUGFydHMgPSBjbGFzc05hbWUuc3BsaXQoQ0xBU1NfUEFSVF9TRVBBUkFUT1IpO1xuICAgIC8vIENsYXNzZXMgbGlrZSBgLWluc2V0LTFgIHByb2R1Y2UgYW4gZW1wdHkgc3RyaW5nIGFzIGZpcnN0IGNsYXNzUGFydC4gV2UgYXNzdW1lIHRoYXQgY2xhc3NlcyBmb3IgbmVnYXRpdmUgdmFsdWVzIGFyZSB1c2VkIGNvcnJlY3RseSBhbmQgcmVtb3ZlIGl0IGZyb20gY2xhc3NQYXJ0cy5cbiAgICBpZiAoY2xhc3NQYXJ0c1swXSA9PT0gJycgJiYgY2xhc3NQYXJ0cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIGNsYXNzUGFydHMuc2hpZnQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGdldEdyb3VwUmVjdXJzaXZlKGNsYXNzUGFydHMsIGNsYXNzTWFwKSB8fCBnZXRHcm91cElkRm9yQXJiaXRyYXJ5UHJvcGVydHkoY2xhc3NOYW1lKTtcbiAgfTtcbiAgY29uc3QgZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzID0gKGNsYXNzR3JvdXBJZCwgaGFzUG9zdGZpeE1vZGlmaWVyKSA9PiB7XG4gICAgY29uc3QgY29uZmxpY3RzID0gY29uZmxpY3RpbmdDbGFzc0dyb3Vwc1tjbGFzc0dyb3VwSWRdIHx8IFtdO1xuICAgIGlmIChoYXNQb3N0Zml4TW9kaWZpZXIgJiYgY29uZmxpY3RpbmdDbGFzc0dyb3VwTW9kaWZpZXJzW2NsYXNzR3JvdXBJZF0pIHtcbiAgICAgIHJldHVybiBbLi4uY29uZmxpY3RzLCAuLi5jb25mbGljdGluZ0NsYXNzR3JvdXBNb2RpZmllcnNbY2xhc3NHcm91cElkXV07XG4gICAgfVxuICAgIHJldHVybiBjb25mbGljdHM7XG4gIH07XG4gIHJldHVybiB7XG4gICAgZ2V0Q2xhc3NHcm91cElkLFxuICAgIGdldENvbmZsaWN0aW5nQ2xhc3NHcm91cElkc1xuICB9O1xufTtcbmNvbnN0IGdldEdyb3VwUmVjdXJzaXZlID0gKGNsYXNzUGFydHMsIGNsYXNzUGFydE9iamVjdCkgPT4ge1xuICBpZiAoY2xhc3NQYXJ0cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gY2xhc3NQYXJ0T2JqZWN0LmNsYXNzR3JvdXBJZDtcbiAgfVxuICBjb25zdCBjdXJyZW50Q2xhc3NQYXJ0ID0gY2xhc3NQYXJ0c1swXTtcbiAgY29uc3QgbmV4dENsYXNzUGFydE9iamVjdCA9IGNsYXNzUGFydE9iamVjdC5uZXh0UGFydC5nZXQoY3VycmVudENsYXNzUGFydCk7XG4gIGNvbnN0IGNsYXNzR3JvdXBGcm9tTmV4dENsYXNzUGFydCA9IG5leHRDbGFzc1BhcnRPYmplY3QgPyBnZXRHcm91cFJlY3Vyc2l2ZShjbGFzc1BhcnRzLnNsaWNlKDEpLCBuZXh0Q2xhc3NQYXJ0T2JqZWN0KSA6IHVuZGVmaW5lZDtcbiAgaWYgKGNsYXNzR3JvdXBGcm9tTmV4dENsYXNzUGFydCkge1xuICAgIHJldHVybiBjbGFzc0dyb3VwRnJvbU5leHRDbGFzc1BhcnQ7XG4gIH1cbiAgaWYgKGNsYXNzUGFydE9iamVjdC52YWxpZGF0b3JzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgY2xhc3NSZXN0ID0gY2xhc3NQYXJ0cy5qb2luKENMQVNTX1BBUlRfU0VQQVJBVE9SKTtcbiAgcmV0dXJuIGNsYXNzUGFydE9iamVjdC52YWxpZGF0b3JzLmZpbmQoKHtcbiAgICB2YWxpZGF0b3JcbiAgfSkgPT4gdmFsaWRhdG9yKGNsYXNzUmVzdCkpPy5jbGFzc0dyb3VwSWQ7XG59O1xuY29uc3QgYXJiaXRyYXJ5UHJvcGVydHlSZWdleCA9IC9eXFxbKC4rKVxcXSQvO1xuY29uc3QgZ2V0R3JvdXBJZEZvckFyYml0cmFyeVByb3BlcnR5ID0gY2xhc3NOYW1lID0+IHtcbiAgaWYgKGFyYml0cmFyeVByb3BlcnR5UmVnZXgudGVzdChjbGFzc05hbWUpKSB7XG4gICAgY29uc3QgYXJiaXRyYXJ5UHJvcGVydHlDbGFzc05hbWUgPSBhcmJpdHJhcnlQcm9wZXJ0eVJlZ2V4LmV4ZWMoY2xhc3NOYW1lKVsxXTtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IGFyYml0cmFyeVByb3BlcnR5Q2xhc3NOYW1lPy5zdWJzdHJpbmcoMCwgYXJiaXRyYXJ5UHJvcGVydHlDbGFzc05hbWUuaW5kZXhPZignOicpKTtcbiAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgIC8vIEkgdXNlIHR3byBkb3RzIGhlcmUgYmVjYXVzZSBvbmUgZG90IGlzIHVzZWQgYXMgcHJlZml4IGZvciBjbGFzcyBncm91cHMgaW4gcGx1Z2luc1xuICAgICAgcmV0dXJuICdhcmJpdHJhcnkuLicgKyBwcm9wZXJ0eTtcbiAgICB9XG4gIH1cbn07XG4vKipcbiAqIEV4cG9ydGVkIGZvciB0ZXN0aW5nIG9ubHlcbiAqL1xuY29uc3QgY3JlYXRlQ2xhc3NNYXAgPSBjb25maWcgPT4ge1xuICBjb25zdCB7XG4gICAgdGhlbWUsXG4gICAgcHJlZml4XG4gIH0gPSBjb25maWc7XG4gIGNvbnN0IGNsYXNzTWFwID0ge1xuICAgIG5leHRQYXJ0OiBuZXcgTWFwKCksXG4gICAgdmFsaWRhdG9yczogW11cbiAgfTtcbiAgY29uc3QgcHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcyA9IGdldFByZWZpeGVkQ2xhc3NHcm91cEVudHJpZXMoT2JqZWN0LmVudHJpZXMoY29uZmlnLmNsYXNzR3JvdXBzKSwgcHJlZml4KTtcbiAgcHJlZml4ZWRDbGFzc0dyb3VwRW50cmllcy5mb3JFYWNoKChbY2xhc3NHcm91cElkLCBjbGFzc0dyb3VwXSkgPT4ge1xuICAgIHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkoY2xhc3NHcm91cCwgY2xhc3NNYXAsIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xuICB9KTtcbiAgcmV0dXJuIGNsYXNzTWFwO1xufTtcbmNvbnN0IHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkgPSAoY2xhc3NHcm91cCwgY2xhc3NQYXJ0T2JqZWN0LCBjbGFzc0dyb3VwSWQsIHRoZW1lKSA9PiB7XG4gIGNsYXNzR3JvdXAuZm9yRWFjaChjbGFzc0RlZmluaXRpb24gPT4ge1xuICAgIGlmICh0eXBlb2YgY2xhc3NEZWZpbml0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgY2xhc3NQYXJ0T2JqZWN0VG9FZGl0ID0gY2xhc3NEZWZpbml0aW9uID09PSAnJyA/IGNsYXNzUGFydE9iamVjdCA6IGdldFBhcnQoY2xhc3NQYXJ0T2JqZWN0LCBjbGFzc0RlZmluaXRpb24pO1xuICAgICAgY2xhc3NQYXJ0T2JqZWN0VG9FZGl0LmNsYXNzR3JvdXBJZCA9IGNsYXNzR3JvdXBJZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjbGFzc0RlZmluaXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmIChpc1RoZW1lR2V0dGVyKGNsYXNzRGVmaW5pdGlvbikpIHtcbiAgICAgICAgcHJvY2Vzc0NsYXNzZXNSZWN1cnNpdmVseShjbGFzc0RlZmluaXRpb24odGhlbWUpLCBjbGFzc1BhcnRPYmplY3QsIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjbGFzc1BhcnRPYmplY3QudmFsaWRhdG9ycy5wdXNoKHtcbiAgICAgICAgdmFsaWRhdG9yOiBjbGFzc0RlZmluaXRpb24sXG4gICAgICAgIGNsYXNzR3JvdXBJZFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIE9iamVjdC5lbnRyaWVzKGNsYXNzRGVmaW5pdGlvbikuZm9yRWFjaCgoW2tleSwgY2xhc3NHcm91cF0pID0+IHtcbiAgICAgIHByb2Nlc3NDbGFzc2VzUmVjdXJzaXZlbHkoY2xhc3NHcm91cCwgZ2V0UGFydChjbGFzc1BhcnRPYmplY3QsIGtleSksIGNsYXNzR3JvdXBJZCwgdGhlbWUpO1xuICAgIH0pO1xuICB9KTtcbn07XG5jb25zdCBnZXRQYXJ0ID0gKGNsYXNzUGFydE9iamVjdCwgcGF0aCkgPT4ge1xuICBsZXQgY3VycmVudENsYXNzUGFydE9iamVjdCA9IGNsYXNzUGFydE9iamVjdDtcbiAgcGF0aC5zcGxpdChDTEFTU19QQVJUX1NFUEFSQVRPUikuZm9yRWFjaChwYXRoUGFydCA9PiB7XG4gICAgaWYgKCFjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0Lm5leHRQYXJ0LmhhcyhwYXRoUGFydCkpIHtcbiAgICAgIGN1cnJlbnRDbGFzc1BhcnRPYmplY3QubmV4dFBhcnQuc2V0KHBhdGhQYXJ0LCB7XG4gICAgICAgIG5leHRQYXJ0OiBuZXcgTWFwKCksXG4gICAgICAgIHZhbGlkYXRvcnM6IFtdXG4gICAgICB9KTtcbiAgICB9XG4gICAgY3VycmVudENsYXNzUGFydE9iamVjdCA9IGN1cnJlbnRDbGFzc1BhcnRPYmplY3QubmV4dFBhcnQuZ2V0KHBhdGhQYXJ0KTtcbiAgfSk7XG4gIHJldHVybiBjdXJyZW50Q2xhc3NQYXJ0T2JqZWN0O1xufTtcbmNvbnN0IGlzVGhlbWVHZXR0ZXIgPSBmdW5jID0+IGZ1bmMuaXNUaGVtZUdldHRlcjtcbmNvbnN0IGdldFByZWZpeGVkQ2xhc3NHcm91cEVudHJpZXMgPSAoY2xhc3NHcm91cEVudHJpZXMsIHByZWZpeCkgPT4ge1xuICBpZiAoIXByZWZpeCkge1xuICAgIHJldHVybiBjbGFzc0dyb3VwRW50cmllcztcbiAgfVxuICByZXR1cm4gY2xhc3NHcm91cEVudHJpZXMubWFwKChbY2xhc3NHcm91cElkLCBjbGFzc0dyb3VwXSkgPT4ge1xuICAgIGNvbnN0IHByZWZpeGVkQ2xhc3NHcm91cCA9IGNsYXNzR3JvdXAubWFwKGNsYXNzRGVmaW5pdGlvbiA9PiB7XG4gICAgICBpZiAodHlwZW9mIGNsYXNzRGVmaW5pdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIGNsYXNzRGVmaW5pdGlvbjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgY2xhc3NEZWZpbml0aW9uID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGNsYXNzRGVmaW5pdGlvbikubWFwKChba2V5LCB2YWx1ZV0pID0+IFtwcmVmaXggKyBrZXksIHZhbHVlXSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNsYXNzRGVmaW5pdGlvbjtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NsYXNzR3JvdXBJZCwgcHJlZml4ZWRDbGFzc0dyb3VwXTtcbiAgfSk7XG59O1xuXG4vLyBMUlUgY2FjaGUgaW5zcGlyZWQgZnJvbSBoYXNobHJ1IChodHRwczovL2dpdGh1Yi5jb20vZG9taW5pY3RhcnIvaGFzaGxydS9ibG9iL3YxLjAuNC9pbmRleC5qcykgYnV0IG9iamVjdCByZXBsYWNlZCB3aXRoIE1hcCB0byBpbXByb3ZlIHBlcmZvcm1hbmNlXG5jb25zdCBjcmVhdGVMcnVDYWNoZSA9IG1heENhY2hlU2l6ZSA9PiB7XG4gIGlmIChtYXhDYWNoZVNpemUgPCAxKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgc2V0OiAoKSA9PiB7fVxuICAgIH07XG4gIH1cbiAgbGV0IGNhY2hlU2l6ZSA9IDA7XG4gIGxldCBjYWNoZSA9IG5ldyBNYXAoKTtcbiAgbGV0IHByZXZpb3VzQ2FjaGUgPSBuZXcgTWFwKCk7XG4gIGNvbnN0IHVwZGF0ZSA9IChrZXksIHZhbHVlKSA9PiB7XG4gICAgY2FjaGUuc2V0KGtleSwgdmFsdWUpO1xuICAgIGNhY2hlU2l6ZSsrO1xuICAgIGlmIChjYWNoZVNpemUgPiBtYXhDYWNoZVNpemUpIHtcbiAgICAgIGNhY2hlU2l6ZSA9IDA7XG4gICAgICBwcmV2aW91c0NhY2hlID0gY2FjaGU7XG4gICAgICBjYWNoZSA9IG5ldyBNYXAoKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiB7XG4gICAgZ2V0KGtleSkge1xuICAgICAgbGV0IHZhbHVlID0gY2FjaGUuZ2V0KGtleSk7XG4gICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoKHZhbHVlID0gcHJldmlvdXNDYWNoZS5nZXQoa2V5KSkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB1cGRhdGUoa2V5LCB2YWx1ZSk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHNldChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAoY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgICAgY2FjaGUuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlKGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn07XG5jb25zdCBJTVBPUlRBTlRfTU9ESUZJRVIgPSAnISc7XG5jb25zdCBjcmVhdGVQYXJzZUNsYXNzTmFtZSA9IGNvbmZpZyA9PiB7XG4gIGNvbnN0IHtcbiAgICBzZXBhcmF0b3IsXG4gICAgZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWVcbiAgfSA9IGNvbmZpZztcbiAgY29uc3QgaXNTZXBhcmF0b3JTaW5nbGVDaGFyYWN0ZXIgPSBzZXBhcmF0b3IubGVuZ3RoID09PSAxO1xuICBjb25zdCBmaXJzdFNlcGFyYXRvckNoYXJhY3RlciA9IHNlcGFyYXRvclswXTtcbiAgY29uc3Qgc2VwYXJhdG9yTGVuZ3RoID0gc2VwYXJhdG9yLmxlbmd0aDtcbiAgLy8gcGFyc2VDbGFzc05hbWUgaW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9ibG9iL3YzLjIuMi9zcmMvdXRpbC9zcGxpdEF0VG9wTGV2ZWxPbmx5LmpzXG4gIGNvbnN0IHBhcnNlQ2xhc3NOYW1lID0gY2xhc3NOYW1lID0+IHtcbiAgICBjb25zdCBtb2RpZmllcnMgPSBbXTtcbiAgICBsZXQgYnJhY2tldERlcHRoID0gMDtcbiAgICBsZXQgbW9kaWZpZXJTdGFydCA9IDA7XG4gICAgbGV0IHBvc3RmaXhNb2RpZmllclBvc2l0aW9uO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjbGFzc05hbWUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBsZXQgY3VycmVudENoYXJhY3RlciA9IGNsYXNzTmFtZVtpbmRleF07XG4gICAgICBpZiAoYnJhY2tldERlcHRoID09PSAwKSB7XG4gICAgICAgIGlmIChjdXJyZW50Q2hhcmFjdGVyID09PSBmaXJzdFNlcGFyYXRvckNoYXJhY3RlciAmJiAoaXNTZXBhcmF0b3JTaW5nbGVDaGFyYWN0ZXIgfHwgY2xhc3NOYW1lLnNsaWNlKGluZGV4LCBpbmRleCArIHNlcGFyYXRvckxlbmd0aCkgPT09IHNlcGFyYXRvcikpIHtcbiAgICAgICAgICBtb2RpZmllcnMucHVzaChjbGFzc05hbWUuc2xpY2UobW9kaWZpZXJTdGFydCwgaW5kZXgpKTtcbiAgICAgICAgICBtb2RpZmllclN0YXJ0ID0gaW5kZXggKyBzZXBhcmF0b3JMZW5ndGg7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN1cnJlbnRDaGFyYWN0ZXIgPT09ICcvJykge1xuICAgICAgICAgIHBvc3RmaXhNb2RpZmllclBvc2l0aW9uID0gaW5kZXg7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjdXJyZW50Q2hhcmFjdGVyID09PSAnWycpIHtcbiAgICAgICAgYnJhY2tldERlcHRoKys7XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRDaGFyYWN0ZXIgPT09ICddJykge1xuICAgICAgICBicmFja2V0RGVwdGgtLTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllciA9IG1vZGlmaWVycy5sZW5ndGggPT09IDAgPyBjbGFzc05hbWUgOiBjbGFzc05hbWUuc3Vic3RyaW5nKG1vZGlmaWVyU3RhcnQpO1xuICAgIGNvbnN0IGhhc0ltcG9ydGFudE1vZGlmaWVyID0gYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllci5zdGFydHNXaXRoKElNUE9SVEFOVF9NT0RJRklFUik7XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZSA9IGhhc0ltcG9ydGFudE1vZGlmaWVyID8gYmFzZUNsYXNzTmFtZVdpdGhJbXBvcnRhbnRNb2RpZmllci5zdWJzdHJpbmcoMSkgOiBiYXNlQ2xhc3NOYW1lV2l0aEltcG9ydGFudE1vZGlmaWVyO1xuICAgIGNvbnN0IG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb24gPSBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiAmJiBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiA+IG1vZGlmaWVyU3RhcnQgPyBwb3N0Zml4TW9kaWZpZXJQb3NpdGlvbiAtIG1vZGlmaWVyU3RhcnQgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGlmaWVycyxcbiAgICAgIGhhc0ltcG9ydGFudE1vZGlmaWVyLFxuICAgICAgYmFzZUNsYXNzTmFtZSxcbiAgICAgIG1heWJlUG9zdGZpeE1vZGlmaWVyUG9zaXRpb25cbiAgICB9O1xuICB9O1xuICBpZiAoZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWUpIHtcbiAgICByZXR1cm4gY2xhc3NOYW1lID0+IGV4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lKHtcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIHBhcnNlQ2xhc3NOYW1lXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHBhcnNlQ2xhc3NOYW1lO1xufTtcbi8qKlxuICogU29ydHMgbW9kaWZpZXJzIGFjY29yZGluZyB0byBmb2xsb3dpbmcgc2NoZW1hOlxuICogLSBQcmVkZWZpbmVkIG1vZGlmaWVycyBhcmUgc29ydGVkIGFscGhhYmV0aWNhbGx5XG4gKiAtIFdoZW4gYW4gYXJiaXRyYXJ5IHZhcmlhbnQgYXBwZWFycywgaXQgbXVzdCBiZSBwcmVzZXJ2ZWQgd2hpY2ggbW9kaWZpZXJzIGFyZSBiZWZvcmUgYW5kIGFmdGVyIGl0XG4gKi9cbmNvbnN0IHNvcnRNb2RpZmllcnMgPSBtb2RpZmllcnMgPT4ge1xuICBpZiAobW9kaWZpZXJzLmxlbmd0aCA8PSAxKSB7XG4gICAgcmV0dXJuIG1vZGlmaWVycztcbiAgfVxuICBjb25zdCBzb3J0ZWRNb2RpZmllcnMgPSBbXTtcbiAgbGV0IHVuc29ydGVkTW9kaWZpZXJzID0gW107XG4gIG1vZGlmaWVycy5mb3JFYWNoKG1vZGlmaWVyID0+IHtcbiAgICBjb25zdCBpc0FyYml0cmFyeVZhcmlhbnQgPSBtb2RpZmllclswXSA9PT0gJ1snO1xuICAgIGlmIChpc0FyYml0cmFyeVZhcmlhbnQpIHtcbiAgICAgIHNvcnRlZE1vZGlmaWVycy5wdXNoKC4uLnVuc29ydGVkTW9kaWZpZXJzLnNvcnQoKSwgbW9kaWZpZXIpO1xuICAgICAgdW5zb3J0ZWRNb2RpZmllcnMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5zb3J0ZWRNb2RpZmllcnMucHVzaChtb2RpZmllcik7XG4gICAgfVxuICB9KTtcbiAgc29ydGVkTW9kaWZpZXJzLnB1c2goLi4udW5zb3J0ZWRNb2RpZmllcnMuc29ydCgpKTtcbiAgcmV0dXJuIHNvcnRlZE1vZGlmaWVycztcbn07XG5jb25zdCBjcmVhdGVDb25maWdVdGlscyA9IGNvbmZpZyA9PiAoe1xuICBjYWNoZTogY3JlYXRlTHJ1Q2FjaGUoY29uZmlnLmNhY2hlU2l6ZSksXG4gIHBhcnNlQ2xhc3NOYW1lOiBjcmVhdGVQYXJzZUNsYXNzTmFtZShjb25maWcpLFxuICAuLi5jcmVhdGVDbGFzc0dyb3VwVXRpbHMoY29uZmlnKVxufSk7XG5jb25zdCBTUExJVF9DTEFTU0VTX1JFR0VYID0gL1xccysvO1xuY29uc3QgbWVyZ2VDbGFzc0xpc3QgPSAoY2xhc3NMaXN0LCBjb25maWdVdGlscykgPT4ge1xuICBjb25zdCB7XG4gICAgcGFyc2VDbGFzc05hbWUsXG4gICAgZ2V0Q2xhc3NHcm91cElkLFxuICAgIGdldENvbmZsaWN0aW5nQ2xhc3NHcm91cElkc1xuICB9ID0gY29uZmlnVXRpbHM7XG4gIC8qKlxuICAgKiBTZXQgb2YgY2xhc3NHcm91cElkcyBpbiBmb2xsb3dpbmcgZm9ybWF0OlxuICAgKiBge2ltcG9ydGFudE1vZGlmaWVyfXt2YXJpYW50TW9kaWZpZXJzfXtjbGFzc0dyb3VwSWR9YFxuICAgKiBAZXhhbXBsZSAnZmxvYXQnXG4gICAqIEBleGFtcGxlICdob3Zlcjpmb2N1czpiZy1jb2xvcidcbiAgICogQGV4YW1wbGUgJ21kOiFwcidcbiAgICovXG4gIGNvbnN0IGNsYXNzR3JvdXBzSW5Db25mbGljdCA9IFtdO1xuICBjb25zdCBjbGFzc05hbWVzID0gY2xhc3NMaXN0LnRyaW0oKS5zcGxpdChTUExJVF9DTEFTU0VTX1JFR0VYKTtcbiAgbGV0IHJlc3VsdCA9ICcnO1xuICBmb3IgKGxldCBpbmRleCA9IGNsYXNzTmFtZXMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXggLT0gMSkge1xuICAgIGNvbnN0IG9yaWdpbmFsQ2xhc3NOYW1lID0gY2xhc3NOYW1lc1tpbmRleF07XG4gICAgY29uc3Qge1xuICAgICAgbW9kaWZpZXJzLFxuICAgICAgaGFzSW1wb3J0YW50TW9kaWZpZXIsXG4gICAgICBiYXNlQ2xhc3NOYW1lLFxuICAgICAgbWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvblxuICAgIH0gPSBwYXJzZUNsYXNzTmFtZShvcmlnaW5hbENsYXNzTmFtZSk7XG4gICAgbGV0IGhhc1Bvc3RmaXhNb2RpZmllciA9IEJvb2xlYW4obWF5YmVQb3N0Zml4TW9kaWZpZXJQb3NpdGlvbik7XG4gICAgbGV0IGNsYXNzR3JvdXBJZCA9IGdldENsYXNzR3JvdXBJZChoYXNQb3N0Zml4TW9kaWZpZXIgPyBiYXNlQ2xhc3NOYW1lLnN1YnN0cmluZygwLCBtYXliZVBvc3RmaXhNb2RpZmllclBvc2l0aW9uKSA6IGJhc2VDbGFzc05hbWUpO1xuICAgIGlmICghY2xhc3NHcm91cElkKSB7XG4gICAgICBpZiAoIWhhc1Bvc3RmaXhNb2RpZmllcikge1xuICAgICAgICAvLyBOb3QgYSBUYWlsd2luZCBjbGFzc1xuICAgICAgICByZXN1bHQgPSBvcmlnaW5hbENsYXNzTmFtZSArIChyZXN1bHQubGVuZ3RoID4gMCA/ICcgJyArIHJlc3VsdCA6IHJlc3VsdCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY2xhc3NHcm91cElkID0gZ2V0Q2xhc3NHcm91cElkKGJhc2VDbGFzc05hbWUpO1xuICAgICAgaWYgKCFjbGFzc0dyb3VwSWQpIHtcbiAgICAgICAgLy8gTm90IGEgVGFpbHdpbmQgY2xhc3NcbiAgICAgICAgcmVzdWx0ID0gb3JpZ2luYWxDbGFzc05hbWUgKyAocmVzdWx0Lmxlbmd0aCA+IDAgPyAnICcgKyByZXN1bHQgOiByZXN1bHQpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGhhc1Bvc3RmaXhNb2RpZmllciA9IGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB2YXJpYW50TW9kaWZpZXIgPSBzb3J0TW9kaWZpZXJzKG1vZGlmaWVycykuam9pbignOicpO1xuICAgIGNvbnN0IG1vZGlmaWVySWQgPSBoYXNJbXBvcnRhbnRNb2RpZmllciA/IHZhcmlhbnRNb2RpZmllciArIElNUE9SVEFOVF9NT0RJRklFUiA6IHZhcmlhbnRNb2RpZmllcjtcbiAgICBjb25zdCBjbGFzc0lkID0gbW9kaWZpZXJJZCArIGNsYXNzR3JvdXBJZDtcbiAgICBpZiAoY2xhc3NHcm91cHNJbkNvbmZsaWN0LmluY2x1ZGVzKGNsYXNzSWQpKSB7XG4gICAgICAvLyBUYWlsd2luZCBjbGFzcyBvbWl0dGVkIGR1ZSB0byBjb25mbGljdFxuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNsYXNzR3JvdXBzSW5Db25mbGljdC5wdXNoKGNsYXNzSWQpO1xuICAgIGNvbnN0IGNvbmZsaWN0R3JvdXBzID0gZ2V0Q29uZmxpY3RpbmdDbGFzc0dyb3VwSWRzKGNsYXNzR3JvdXBJZCwgaGFzUG9zdGZpeE1vZGlmaWVyKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbmZsaWN0R3JvdXBzLmxlbmd0aDsgKytpKSB7XG4gICAgICBjb25zdCBncm91cCA9IGNvbmZsaWN0R3JvdXBzW2ldO1xuICAgICAgY2xhc3NHcm91cHNJbkNvbmZsaWN0LnB1c2gobW9kaWZpZXJJZCArIGdyb3VwKTtcbiAgICB9XG4gICAgLy8gVGFpbHdpbmQgY2xhc3Mgbm90IGluIGNvbmZsaWN0XG4gICAgcmVzdWx0ID0gb3JpZ2luYWxDbGFzc05hbWUgKyAocmVzdWx0Lmxlbmd0aCA+IDAgPyAnICcgKyByZXN1bHQgOiByZXN1bHQpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vKipcbiAqIFRoZSBjb2RlIGluIHRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbHVrZWVkL2Nsc3ggYW5kIG1vZGlmaWVkIHRvIHN1aXQgdGhlIG5lZWRzIG9mIHRhaWx3aW5kLW1lcmdlIGJldHRlci5cbiAqXG4gKiBTcGVjaWZpY2FsbHk6XG4gKiAtIFJ1bnRpbWUgY29kZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvY2xzeC9ibG9iL3YxLjIuMS9zcmMvaW5kZXguanNcbiAqIC0gVHlwZVNjcmlwdCB0eXBlcyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlZWQvY2xzeC9ibG9iL3YxLjIuMS9jbHN4LmQudHNcbiAqXG4gKiBPcmlnaW5hbCBjb2RlIGhhcyBNSVQgbGljZW5zZTogQ29weXJpZ2h0IChjKSBMdWtlIEVkd2FyZHMgPGx1a2UuZWR3YXJkczA1QGdtYWlsLmNvbT4gKGx1a2VlZC5jb20pXG4gKi9cbmZ1bmN0aW9uIHR3Sm9pbigpIHtcbiAgbGV0IGluZGV4ID0gMDtcbiAgbGV0IGFyZ3VtZW50O1xuICBsZXQgcmVzb2x2ZWRWYWx1ZTtcbiAgbGV0IHN0cmluZyA9ICcnO1xuICB3aGlsZSAoaW5kZXggPCBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgaWYgKGFyZ3VtZW50ID0gYXJndW1lbnRzW2luZGV4KytdKSB7XG4gICAgICBpZiAocmVzb2x2ZWRWYWx1ZSA9IHRvVmFsdWUoYXJndW1lbnQpKSB7XG4gICAgICAgIHN0cmluZyAmJiAoc3RyaW5nICs9ICcgJyk7XG4gICAgICAgIHN0cmluZyArPSByZXNvbHZlZFZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gc3RyaW5nO1xufVxuY29uc3QgdG9WYWx1ZSA9IG1peCA9PiB7XG4gIGlmICh0eXBlb2YgbWl4ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBtaXg7XG4gIH1cbiAgbGV0IHJlc29sdmVkVmFsdWU7XG4gIGxldCBzdHJpbmcgPSAnJztcbiAgZm9yIChsZXQgayA9IDA7IGsgPCBtaXgubGVuZ3RoOyBrKyspIHtcbiAgICBpZiAobWl4W2tdKSB7XG4gICAgICBpZiAocmVzb2x2ZWRWYWx1ZSA9IHRvVmFsdWUobWl4W2tdKSkge1xuICAgICAgICBzdHJpbmcgJiYgKHN0cmluZyArPSAnICcpO1xuICAgICAgICBzdHJpbmcgKz0gcmVzb2x2ZWRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0cmluZztcbn07XG5mdW5jdGlvbiBjcmVhdGVUYWlsd2luZE1lcmdlKGNyZWF0ZUNvbmZpZ0ZpcnN0LCAuLi5jcmVhdGVDb25maWdSZXN0KSB7XG4gIGxldCBjb25maWdVdGlscztcbiAgbGV0IGNhY2hlR2V0O1xuICBsZXQgY2FjaGVTZXQ7XG4gIGxldCBmdW5jdGlvblRvQ2FsbCA9IGluaXRUYWlsd2luZE1lcmdlO1xuICBmdW5jdGlvbiBpbml0VGFpbHdpbmRNZXJnZShjbGFzc0xpc3QpIHtcbiAgICBjb25zdCBjb25maWcgPSBjcmVhdGVDb25maWdSZXN0LnJlZHVjZSgocHJldmlvdXNDb25maWcsIGNyZWF0ZUNvbmZpZ0N1cnJlbnQpID0+IGNyZWF0ZUNvbmZpZ0N1cnJlbnQocHJldmlvdXNDb25maWcpLCBjcmVhdGVDb25maWdGaXJzdCgpKTtcbiAgICBjb25maWdVdGlscyA9IGNyZWF0ZUNvbmZpZ1V0aWxzKGNvbmZpZyk7XG4gICAgY2FjaGVHZXQgPSBjb25maWdVdGlscy5jYWNoZS5nZXQ7XG4gICAgY2FjaGVTZXQgPSBjb25maWdVdGlscy5jYWNoZS5zZXQ7XG4gICAgZnVuY3Rpb25Ub0NhbGwgPSB0YWlsd2luZE1lcmdlO1xuICAgIHJldHVybiB0YWlsd2luZE1lcmdlKGNsYXNzTGlzdCk7XG4gIH1cbiAgZnVuY3Rpb24gdGFpbHdpbmRNZXJnZShjbGFzc0xpc3QpIHtcbiAgICBjb25zdCBjYWNoZWRSZXN1bHQgPSBjYWNoZUdldChjbGFzc0xpc3QpO1xuICAgIGlmIChjYWNoZWRSZXN1bHQpIHtcbiAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IG1lcmdlQ2xhc3NMaXN0KGNsYXNzTGlzdCwgY29uZmlnVXRpbHMpO1xuICAgIGNhY2hlU2V0KGNsYXNzTGlzdCwgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiBjYWxsVGFpbHdpbmRNZXJnZSgpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25Ub0NhbGwodHdKb2luLmFwcGx5KG51bGwsIGFyZ3VtZW50cykpO1xuICB9O1xufVxuY29uc3QgZnJvbVRoZW1lID0ga2V5ID0+IHtcbiAgY29uc3QgdGhlbWVHZXR0ZXIgPSB0aGVtZSA9PiB0aGVtZVtrZXldIHx8IFtdO1xuICB0aGVtZUdldHRlci5pc1RoZW1lR2V0dGVyID0gdHJ1ZTtcbiAgcmV0dXJuIHRoZW1lR2V0dGVyO1xufTtcbmNvbnN0IGFyYml0cmFyeVZhbHVlUmVnZXggPSAvXlxcWyg/OihbYS16LV0rKTopPyguKylcXF0kL2k7XG5jb25zdCBmcmFjdGlvblJlZ2V4ID0gL15cXGQrXFwvXFxkKyQvO1xuY29uc3Qgc3RyaW5nTGVuZ3RocyA9IC8qI19fUFVSRV9fKi9uZXcgU2V0KFsncHgnLCAnZnVsbCcsICdzY3JlZW4nXSk7XG5jb25zdCB0c2hpcnRVbml0UmVnZXggPSAvXihcXGQrKFxcLlxcZCspPyk/KHhzfHNtfG1kfGxnfHhsKSQvO1xuY29uc3QgbGVuZ3RoVW5pdFJlZ2V4ID0gL1xcZCsoJXxweHxyP2VtfFtzZGxdP3YoW2h3aWJdfG1pbnxtYXgpfHB0fHBjfGlufGNtfG1tfGNhcHxjaHxleHxyP2xofGNxKHd8aHxpfGJ8bWlufG1heCkpfFxcYihjYWxjfG1pbnxtYXh8Y2xhbXApXFwoLitcXCl8XjAkLztcbmNvbnN0IGNvbG9yRnVuY3Rpb25SZWdleCA9IC9eKHJnYmE/fGhzbGE/fGh3Ynwob2spPyhsYWJ8bGNoKSlcXCguK1xcKSQvO1xuLy8gU2hhZG93IGFsd2F5cyBiZWdpbnMgd2l0aCB4IGFuZCB5IG9mZnNldCBzZXBhcmF0ZWQgYnkgdW5kZXJzY29yZSBvcHRpb25hbGx5IHByZXBlbmRlZCBieSBpbnNldFxuY29uc3Qgc2hhZG93UmVnZXggPSAvXihpbnNldF8pPy0/KChcXGQrKT9cXC4/KFxcZCspW2Etel0rfDApXy0/KChcXGQrKT9cXC4/KFxcZCspW2Etel0rfDApLztcbmNvbnN0IGltYWdlUmVnZXggPSAvXih1cmx8aW1hZ2V8aW1hZ2Utc2V0fGNyb3NzLWZhZGV8ZWxlbWVudHwocmVwZWF0aW5nLSk/KGxpbmVhcnxyYWRpYWx8Y29uaWMpLWdyYWRpZW50KVxcKC4rXFwpJC87XG5jb25zdCBpc0xlbmd0aCA9IHZhbHVlID0+IGlzTnVtYmVyKHZhbHVlKSB8fCBzdHJpbmdMZW5ndGhzLmhhcyh2YWx1ZSkgfHwgZnJhY3Rpb25SZWdleC50ZXN0KHZhbHVlKTtcbmNvbnN0IGlzQXJiaXRyYXJ5TGVuZ3RoID0gdmFsdWUgPT4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJ2xlbmd0aCcsIGlzTGVuZ3RoT25seSk7XG5jb25zdCBpc051bWJlciA9IHZhbHVlID0+IEJvb2xlYW4odmFsdWUpICYmICFOdW1iZXIuaXNOYU4oTnVtYmVyKHZhbHVlKSk7XG5jb25zdCBpc0FyYml0cmFyeU51bWJlciA9IHZhbHVlID0+IGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsICdudW1iZXInLCBpc051bWJlcik7XG5jb25zdCBpc0ludGVnZXIgPSB2YWx1ZSA9PiBCb29sZWFuKHZhbHVlKSAmJiBOdW1iZXIuaXNJbnRlZ2VyKE51bWJlcih2YWx1ZSkpO1xuY29uc3QgaXNQZXJjZW50ID0gdmFsdWUgPT4gdmFsdWUuZW5kc1dpdGgoJyUnKSAmJiBpc051bWJlcih2YWx1ZS5zbGljZSgwLCAtMSkpO1xuY29uc3QgaXNBcmJpdHJhcnlWYWx1ZSA9IHZhbHVlID0+IGFyYml0cmFyeVZhbHVlUmVnZXgudGVzdCh2YWx1ZSk7XG5jb25zdCBpc1RzaGlydFNpemUgPSB2YWx1ZSA9PiB0c2hpcnRVbml0UmVnZXgudGVzdCh2YWx1ZSk7XG5jb25zdCBzaXplTGFiZWxzID0gLyojX19QVVJFX18qL25ldyBTZXQoWydsZW5ndGgnLCAnc2l6ZScsICdwZXJjZW50YWdlJ10pO1xuY29uc3QgaXNBcmJpdHJhcnlTaXplID0gdmFsdWUgPT4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgc2l6ZUxhYmVscywgaXNOZXZlcik7XG5jb25zdCBpc0FyYml0cmFyeVBvc2l0aW9uID0gdmFsdWUgPT4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJ3Bvc2l0aW9uJywgaXNOZXZlcik7XG5jb25zdCBpbWFnZUxhYmVscyA9IC8qI19fUFVSRV9fKi9uZXcgU2V0KFsnaW1hZ2UnLCAndXJsJ10pO1xuY29uc3QgaXNBcmJpdHJhcnlJbWFnZSA9IHZhbHVlID0+IGdldElzQXJiaXRyYXJ5VmFsdWUodmFsdWUsIGltYWdlTGFiZWxzLCBpc0ltYWdlKTtcbmNvbnN0IGlzQXJiaXRyYXJ5U2hhZG93ID0gdmFsdWUgPT4gZ2V0SXNBcmJpdHJhcnlWYWx1ZSh2YWx1ZSwgJycsIGlzU2hhZG93KTtcbmNvbnN0IGlzQW55ID0gKCkgPT4gdHJ1ZTtcbmNvbnN0IGdldElzQXJiaXRyYXJ5VmFsdWUgPSAodmFsdWUsIGxhYmVsLCB0ZXN0VmFsdWUpID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXJiaXRyYXJ5VmFsdWVSZWdleC5leGVjKHZhbHVlKTtcbiAgaWYgKHJlc3VsdCkge1xuICAgIGlmIChyZXN1bHRbMV0pIHtcbiAgICAgIHJldHVybiB0eXBlb2YgbGFiZWwgPT09ICdzdHJpbmcnID8gcmVzdWx0WzFdID09PSBsYWJlbCA6IGxhYmVsLmhhcyhyZXN1bHRbMV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGVzdFZhbHVlKHJlc3VsdFsyXSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcbmNvbnN0IGlzTGVuZ3RoT25seSA9IHZhbHVlID0+XG4vLyBgY29sb3JGdW5jdGlvblJlZ2V4YCBjaGVjayBpcyBuZWNlc3NhcnkgYmVjYXVzZSBjb2xvciBmdW5jdGlvbnMgY2FuIGhhdmUgcGVyY2VudGFnZXMgaW4gdGhlbSB3aGljaCB3aGljaCB3b3VsZCBiZSBpbmNvcnJlY3RseSBjbGFzc2lmaWVkIGFzIGxlbmd0aHMuXG4vLyBGb3IgZXhhbXBsZSwgYGhzbCgwIDAlIDAlKWAgd291bGQgYmUgY2xhc3NpZmllZCBhcyBhIGxlbmd0aCB3aXRob3V0IHRoaXMgY2hlY2suXG4vLyBJIGNvdWxkIGFsc28gdXNlIGxvb2tiZWhpbmQgYXNzZXJ0aW9uIGluIGBsZW5ndGhVbml0UmVnZXhgIGJ1dCB0aGF0IGlzbid0IHN1cHBvcnRlZCB3aWRlbHkgZW5vdWdoLlxubGVuZ3RoVW5pdFJlZ2V4LnRlc3QodmFsdWUpICYmICFjb2xvckZ1bmN0aW9uUmVnZXgudGVzdCh2YWx1ZSk7XG5jb25zdCBpc05ldmVyID0gKCkgPT4gZmFsc2U7XG5jb25zdCBpc1NoYWRvdyA9IHZhbHVlID0+IHNoYWRvd1JlZ2V4LnRlc3QodmFsdWUpO1xuY29uc3QgaXNJbWFnZSA9IHZhbHVlID0+IGltYWdlUmVnZXgudGVzdCh2YWx1ZSk7XG5jb25zdCB2YWxpZGF0b3JzID0gLyojX19QVVJFX18qL09iamVjdC5kZWZpbmVQcm9wZXJ0eSh7XG4gIF9fcHJvdG9fXzogbnVsbCxcbiAgaXNBbnksXG4gIGlzQXJiaXRyYXJ5SW1hZ2UsXG4gIGlzQXJiaXRyYXJ5TGVuZ3RoLFxuICBpc0FyYml0cmFyeU51bWJlcixcbiAgaXNBcmJpdHJhcnlQb3NpdGlvbixcbiAgaXNBcmJpdHJhcnlTaGFkb3csXG4gIGlzQXJiaXRyYXJ5U2l6ZSxcbiAgaXNBcmJpdHJhcnlWYWx1ZSxcbiAgaXNJbnRlZ2VyLFxuICBpc0xlbmd0aCxcbiAgaXNOdW1iZXIsXG4gIGlzUGVyY2VudCxcbiAgaXNUc2hpcnRTaXplXG59LCBTeW1ib2wudG9TdHJpbmdUYWcsIHtcbiAgdmFsdWU6ICdNb2R1bGUnXG59KTtcbmNvbnN0IGdldERlZmF1bHRDb25maWcgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbG9ycyA9IGZyb21UaGVtZSgnY29sb3JzJyk7XG4gIGNvbnN0IHNwYWNpbmcgPSBmcm9tVGhlbWUoJ3NwYWNpbmcnKTtcbiAgY29uc3QgYmx1ciA9IGZyb21UaGVtZSgnYmx1cicpO1xuICBjb25zdCBicmlnaHRuZXNzID0gZnJvbVRoZW1lKCdicmlnaHRuZXNzJyk7XG4gIGNvbnN0IGJvcmRlckNvbG9yID0gZnJvbVRoZW1lKCdib3JkZXJDb2xvcicpO1xuICBjb25zdCBib3JkZXJSYWRpdXMgPSBmcm9tVGhlbWUoJ2JvcmRlclJhZGl1cycpO1xuICBjb25zdCBib3JkZXJTcGFjaW5nID0gZnJvbVRoZW1lKCdib3JkZXJTcGFjaW5nJyk7XG4gIGNvbnN0IGJvcmRlcldpZHRoID0gZnJvbVRoZW1lKCdib3JkZXJXaWR0aCcpO1xuICBjb25zdCBjb250cmFzdCA9IGZyb21UaGVtZSgnY29udHJhc3QnKTtcbiAgY29uc3QgZ3JheXNjYWxlID0gZnJvbVRoZW1lKCdncmF5c2NhbGUnKTtcbiAgY29uc3QgaHVlUm90YXRlID0gZnJvbVRoZW1lKCdodWVSb3RhdGUnKTtcbiAgY29uc3QgaW52ZXJ0ID0gZnJvbVRoZW1lKCdpbnZlcnQnKTtcbiAgY29uc3QgZ2FwID0gZnJvbVRoZW1lKCdnYXAnKTtcbiAgY29uc3QgZ3JhZGllbnRDb2xvclN0b3BzID0gZnJvbVRoZW1lKCdncmFkaWVudENvbG9yU3RvcHMnKTtcbiAgY29uc3QgZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnMgPSBmcm9tVGhlbWUoJ2dyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zJyk7XG4gIGNvbnN0IGluc2V0ID0gZnJvbVRoZW1lKCdpbnNldCcpO1xuICBjb25zdCBtYXJnaW4gPSBmcm9tVGhlbWUoJ21hcmdpbicpO1xuICBjb25zdCBvcGFjaXR5ID0gZnJvbVRoZW1lKCdvcGFjaXR5Jyk7XG4gIGNvbnN0IHBhZGRpbmcgPSBmcm9tVGhlbWUoJ3BhZGRpbmcnKTtcbiAgY29uc3Qgc2F0dXJhdGUgPSBmcm9tVGhlbWUoJ3NhdHVyYXRlJyk7XG4gIGNvbnN0IHNjYWxlID0gZnJvbVRoZW1lKCdzY2FsZScpO1xuICBjb25zdCBzZXBpYSA9IGZyb21UaGVtZSgnc2VwaWEnKTtcbiAgY29uc3Qgc2tldyA9IGZyb21UaGVtZSgnc2tldycpO1xuICBjb25zdCBzcGFjZSA9IGZyb21UaGVtZSgnc3BhY2UnKTtcbiAgY29uc3QgdHJhbnNsYXRlID0gZnJvbVRoZW1lKCd0cmFuc2xhdGUnKTtcbiAgY29uc3QgZ2V0T3ZlcnNjcm9sbCA9ICgpID0+IFsnYXV0bycsICdjb250YWluJywgJ25vbmUnXTtcbiAgY29uc3QgZ2V0T3ZlcmZsb3cgPSAoKSA9PiBbJ2F1dG8nLCAnaGlkZGVuJywgJ2NsaXAnLCAndmlzaWJsZScsICdzY3JvbGwnXTtcbiAgY29uc3QgZ2V0U3BhY2luZ1dpdGhBdXRvQW5kQXJiaXRyYXJ5ID0gKCkgPT4gWydhdXRvJywgaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZ107XG4gIGNvbnN0IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5ID0gKCkgPT4gW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmddO1xuICBjb25zdCBnZXRMZW5ndGhXaXRoRW1wdHlBbmRBcmJpdHJhcnkgPSAoKSA9PiBbJycsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF07XG4gIGNvbnN0IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5ID0gKCkgPT4gWydhdXRvJywgaXNOdW1iZXIsIGlzQXJiaXRyYXJ5VmFsdWVdO1xuICBjb25zdCBnZXRQb3NpdGlvbnMgPSAoKSA9PiBbJ2JvdHRvbScsICdjZW50ZXInLCAnbGVmdCcsICdsZWZ0LWJvdHRvbScsICdsZWZ0LXRvcCcsICdyaWdodCcsICdyaWdodC1ib3R0b20nLCAncmlnaHQtdG9wJywgJ3RvcCddO1xuICBjb25zdCBnZXRMaW5lU3R5bGVzID0gKCkgPT4gWydzb2xpZCcsICdkYXNoZWQnLCAnZG90dGVkJywgJ2RvdWJsZScsICdub25lJ107XG4gIGNvbnN0IGdldEJsZW5kTW9kZXMgPSAoKSA9PiBbJ25vcm1hbCcsICdtdWx0aXBseScsICdzY3JlZW4nLCAnb3ZlcmxheScsICdkYXJrZW4nLCAnbGlnaHRlbicsICdjb2xvci1kb2RnZScsICdjb2xvci1idXJuJywgJ2hhcmQtbGlnaHQnLCAnc29mdC1saWdodCcsICdkaWZmZXJlbmNlJywgJ2V4Y2x1c2lvbicsICdodWUnLCAnc2F0dXJhdGlvbicsICdjb2xvcicsICdsdW1pbm9zaXR5J107XG4gIGNvbnN0IGdldEFsaWduID0gKCkgPT4gWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2JldHdlZW4nLCAnYXJvdW5kJywgJ2V2ZW5seScsICdzdHJldGNoJ107XG4gIGNvbnN0IGdldFplcm9BbmRFbXB0eSA9ICgpID0+IFsnJywgJzAnLCBpc0FyYml0cmFyeVZhbHVlXTtcbiAgY29uc3QgZ2V0QnJlYWtzID0gKCkgPT4gWydhdXRvJywgJ2F2b2lkJywgJ2FsbCcsICdhdm9pZC1wYWdlJywgJ3BhZ2UnLCAnbGVmdCcsICdyaWdodCcsICdjb2x1bW4nXTtcbiAgY29uc3QgZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5ID0gKCkgPT4gW2lzTnVtYmVyLCBpc0FyYml0cmFyeVZhbHVlXTtcbiAgcmV0dXJuIHtcbiAgICBjYWNoZVNpemU6IDUwMCxcbiAgICBzZXBhcmF0b3I6ICc6JyxcbiAgICB0aGVtZToge1xuICAgICAgY29sb3JzOiBbaXNBbnldLFxuICAgICAgc3BhY2luZzogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF0sXG4gICAgICBibHVyOiBbJ25vbmUnLCAnJywgaXNUc2hpcnRTaXplLCBpc0FyYml0cmFyeVZhbHVlXSxcbiAgICAgIGJyaWdodG5lc3M6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxuICAgICAgYm9yZGVyQ29sb3I6IFtjb2xvcnNdLFxuICAgICAgYm9yZGVyUmFkaXVzOiBbJ25vbmUnLCAnJywgJ2Z1bGwnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5VmFsdWVdLFxuICAgICAgYm9yZGVyU3BhY2luZzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIGJvcmRlcldpZHRoOiBnZXRMZW5ndGhXaXRoRW1wdHlBbmRBcmJpdHJhcnkoKSxcbiAgICAgIGNvbnRyYXN0OiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKSxcbiAgICAgIGdyYXlzY2FsZTogZ2V0WmVyb0FuZEVtcHR5KCksXG4gICAgICBodWVSb3RhdGU6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxuICAgICAgaW52ZXJ0OiBnZXRaZXJvQW5kRW1wdHkoKSxcbiAgICAgIGdhcDogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIGdyYWRpZW50Q29sb3JTdG9wczogW2NvbG9yc10sXG4gICAgICBncmFkaWVudENvbG9yU3RvcFBvc2l0aW9uczogW2lzUGVyY2VudCwgaXNBcmJpdHJhcnlMZW5ndGhdLFxuICAgICAgaW5zZXQ6IGdldFNwYWNpbmdXaXRoQXV0b0FuZEFyYml0cmFyeSgpLFxuICAgICAgbWFyZ2luOiBnZXRTcGFjaW5nV2l0aEF1dG9BbmRBcmJpdHJhcnkoKSxcbiAgICAgIG9wYWNpdHk6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxuICAgICAgcGFkZGluZzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKSxcbiAgICAgIHNhdHVyYXRlOiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKSxcbiAgICAgIHNjYWxlOiBnZXROdW1iZXJBbmRBcmJpdHJhcnkoKSxcbiAgICAgIHNlcGlhOiBnZXRaZXJvQW5kRW1wdHkoKSxcbiAgICAgIHNrZXc6IGdldE51bWJlckFuZEFyYml0cmFyeSgpLFxuICAgICAgc3BhY2U6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KCksXG4gICAgICB0cmFuc2xhdGU6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICB9LFxuICAgIGNsYXNzR3JvdXBzOiB7XG4gICAgICAvLyBMYXlvdXRcbiAgICAgIC8qKlxuICAgICAgICogQXNwZWN0IFJhdGlvXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYXNwZWN0LXJhdGlvXG4gICAgICAgKi9cbiAgICAgIGFzcGVjdDogW3tcbiAgICAgICAgYXNwZWN0OiBbJ2F1dG8nLCAnc3F1YXJlJywgJ3ZpZGVvJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDb250YWluZXJcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250YWluZXJcbiAgICAgICAqL1xuICAgICAgY29udGFpbmVyOiBbJ2NvbnRhaW5lciddLFxuICAgICAgLyoqXG4gICAgICAgKiBDb2x1bW5zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY29sdW1uc1xuICAgICAgICovXG4gICAgICBjb2x1bW5zOiBbe1xuICAgICAgICBjb2x1bW5zOiBbaXNUc2hpcnRTaXplXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJyZWFrIEFmdGVyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYnJlYWstYWZ0ZXJcbiAgICAgICAqL1xuICAgICAgJ2JyZWFrLWFmdGVyJzogW3tcbiAgICAgICAgJ2JyZWFrLWFmdGVyJzogZ2V0QnJlYWtzKClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCcmVhayBCZWZvcmVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9icmVhay1iZWZvcmVcbiAgICAgICAqL1xuICAgICAgJ2JyZWFrLWJlZm9yZSc6IFt7XG4gICAgICAgICdicmVhay1iZWZvcmUnOiBnZXRCcmVha3MoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJyZWFrIEluc2lkZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JyZWFrLWluc2lkZVxuICAgICAgICovXG4gICAgICAnYnJlYWstaW5zaWRlJzogW3tcbiAgICAgICAgJ2JyZWFrLWluc2lkZSc6IFsnYXV0bycsICdhdm9pZCcsICdhdm9pZC1wYWdlJywgJ2F2b2lkLWNvbHVtbiddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm94IERlY29yYXRpb24gQnJlYWtcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtZGVjb3JhdGlvbi1icmVha1xuICAgICAgICovXG4gICAgICAnYm94LWRlY29yYXRpb24nOiBbe1xuICAgICAgICAnYm94LWRlY29yYXRpb24nOiBbJ3NsaWNlJywgJ2Nsb25lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3ggU2l6aW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm94LXNpemluZ1xuICAgICAgICovXG4gICAgICBib3g6IFt7XG4gICAgICAgIGJveDogWydib3JkZXInLCAnY29udGVudCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGlzcGxheVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2Rpc3BsYXlcbiAgICAgICAqL1xuICAgICAgZGlzcGxheTogWydibG9jaycsICdpbmxpbmUtYmxvY2snLCAnaW5saW5lJywgJ2ZsZXgnLCAnaW5saW5lLWZsZXgnLCAndGFibGUnLCAnaW5saW5lLXRhYmxlJywgJ3RhYmxlLWNhcHRpb24nLCAndGFibGUtY2VsbCcsICd0YWJsZS1jb2x1bW4nLCAndGFibGUtY29sdW1uLWdyb3VwJywgJ3RhYmxlLWZvb3Rlci1ncm91cCcsICd0YWJsZS1oZWFkZXItZ3JvdXAnLCAndGFibGUtcm93LWdyb3VwJywgJ3RhYmxlLXJvdycsICdmbG93LXJvb3QnLCAnZ3JpZCcsICdpbmxpbmUtZ3JpZCcsICdjb250ZW50cycsICdsaXN0LWl0ZW0nLCAnaGlkZGVuJ10sXG4gICAgICAvKipcbiAgICAgICAqIEZsb2F0c1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2Zsb2F0XG4gICAgICAgKi9cbiAgICAgIGZsb2F0OiBbe1xuICAgICAgICBmbG9hdDogWydyaWdodCcsICdsZWZ0JywgJ25vbmUnLCAnc3RhcnQnLCAnZW5kJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBDbGVhclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NsZWFyXG4gICAgICAgKi9cbiAgICAgIGNsZWFyOiBbe1xuICAgICAgICBjbGVhcjogWydsZWZ0JywgJ3JpZ2h0JywgJ2JvdGgnLCAnbm9uZScsICdzdGFydCcsICdlbmQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIElzb2xhdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2lzb2xhdGlvblxuICAgICAgICovXG4gICAgICBpc29sYXRpb246IFsnaXNvbGF0ZScsICdpc29sYXRpb24tYXV0byddLFxuICAgICAgLyoqXG4gICAgICAgKiBPYmplY3QgRml0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb2JqZWN0LWZpdFxuICAgICAgICovXG4gICAgICAnb2JqZWN0LWZpdCc6IFt7XG4gICAgICAgIG9iamVjdDogWydjb250YWluJywgJ2NvdmVyJywgJ2ZpbGwnLCAnbm9uZScsICdzY2FsZS1kb3duJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPYmplY3QgUG9zaXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vYmplY3QtcG9zaXRpb25cbiAgICAgICAqL1xuICAgICAgJ29iamVjdC1wb3NpdGlvbic6IFt7XG4gICAgICAgIG9iamVjdDogWy4uLmdldFBvc2l0aW9ucygpLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE92ZXJmbG93XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcmZsb3dcbiAgICAgICAqL1xuICAgICAgb3ZlcmZsb3c6IFt7XG4gICAgICAgIG92ZXJmbG93OiBnZXRPdmVyZmxvdygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcmZsb3cgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJmbG93XG4gICAgICAgKi9cbiAgICAgICdvdmVyZmxvdy14JzogW3tcbiAgICAgICAgJ292ZXJmbG93LXgnOiBnZXRPdmVyZmxvdygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcmZsb3cgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJmbG93XG4gICAgICAgKi9cbiAgICAgICdvdmVyZmxvdy15JzogW3tcbiAgICAgICAgJ292ZXJmbG93LXknOiBnZXRPdmVyZmxvdygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcnNjcm9sbCBCZWhhdmlvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJzY3JvbGwtYmVoYXZpb3JcbiAgICAgICAqL1xuICAgICAgb3ZlcnNjcm9sbDogW3tcbiAgICAgICAgb3ZlcnNjcm9sbDogZ2V0T3ZlcnNjcm9sbCgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogT3ZlcnNjcm9sbCBCZWhhdmlvciBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3ZlcnNjcm9sbC1iZWhhdmlvclxuICAgICAgICovXG4gICAgICAnb3ZlcnNjcm9sbC14JzogW3tcbiAgICAgICAgJ292ZXJzY3JvbGwteCc6IGdldE92ZXJzY3JvbGwoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE92ZXJzY3JvbGwgQmVoYXZpb3IgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL292ZXJzY3JvbGwtYmVoYXZpb3JcbiAgICAgICAqL1xuICAgICAgJ292ZXJzY3JvbGwteSc6IFt7XG4gICAgICAgICdvdmVyc2Nyb2xsLXknOiBnZXRPdmVyc2Nyb2xsKClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Bvc2l0aW9uXG4gICAgICAgKi9cbiAgICAgIHBvc2l0aW9uOiBbJ3N0YXRpYycsICdmaXhlZCcsICdhYnNvbHV0ZScsICdyZWxhdGl2ZScsICdzdGlja3knXSxcbiAgICAgIC8qKlxuICAgICAgICogVG9wIC8gUmlnaHQgLyBCb3R0b20gLyBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIGluc2V0OiBbe1xuICAgICAgICBpbnNldDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpZ2h0IC8gTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICAnaW5zZXQteCc6IFt7XG4gICAgICAgICdpbnNldC14JzogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvcCAvIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICAnaW5zZXQteSc6IFt7XG4gICAgICAgICdpbnNldC15JzogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIHN0YXJ0OiBbe1xuICAgICAgICBzdGFydDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICBlbmQ6IFt7XG4gICAgICAgIGVuZDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICB0b3A6IFt7XG4gICAgICAgIHRvcDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG9wLXJpZ2h0LWJvdHRvbS1sZWZ0XG4gICAgICAgKi9cbiAgICAgIHJpZ2h0OiBbe1xuICAgICAgICByaWdodDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvcC1yaWdodC1ib3R0b20tbGVmdFxuICAgICAgICovXG4gICAgICBib3R0b206IFt7XG4gICAgICAgIGJvdHRvbTogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3AtcmlnaHQtYm90dG9tLWxlZnRcbiAgICAgICAqL1xuICAgICAgbGVmdDogW3tcbiAgICAgICAgbGVmdDogW2luc2V0XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFZpc2liaWxpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy92aXNpYmlsaXR5XG4gICAgICAgKi9cbiAgICAgIHZpc2liaWxpdHk6IFsndmlzaWJsZScsICdpbnZpc2libGUnLCAnY29sbGFwc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogWi1JbmRleFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3otaW5kZXhcbiAgICAgICAqL1xuICAgICAgejogW3tcbiAgICAgICAgejogWydhdXRvJywgaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBGbGV4Ym94IGFuZCBHcmlkXG4gICAgICAvKipcbiAgICAgICAqIEZsZXggQmFzaXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mbGV4LWJhc2lzXG4gICAgICAgKi9cbiAgICAgIGJhc2lzOiBbe1xuICAgICAgICBiYXNpczogZ2V0U3BhY2luZ1dpdGhBdXRvQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IERpcmVjdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtZGlyZWN0aW9uXG4gICAgICAgKi9cbiAgICAgICdmbGV4LWRpcmVjdGlvbic6IFt7XG4gICAgICAgIGZsZXg6IFsncm93JywgJ3Jvdy1yZXZlcnNlJywgJ2NvbCcsICdjb2wtcmV2ZXJzZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRmxleCBXcmFwXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZmxleC13cmFwXG4gICAgICAgKi9cbiAgICAgICdmbGV4LXdyYXAnOiBbe1xuICAgICAgICBmbGV4OiBbJ3dyYXAnLCAnd3JhcC1yZXZlcnNlJywgJ25vd3JhcCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRmxleFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXhcbiAgICAgICAqL1xuICAgICAgZmxleDogW3tcbiAgICAgICAgZmxleDogWycxJywgJ2F1dG8nLCAnaW5pdGlhbCcsICdub25lJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IEdyb3dcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mbGV4LWdyb3dcbiAgICAgICAqL1xuICAgICAgZ3JvdzogW3tcbiAgICAgICAgZ3JvdzogZ2V0WmVyb0FuZEVtcHR5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBGbGV4IFNocmlua1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZsZXgtc2hyaW5rXG4gICAgICAgKi9cbiAgICAgIHNocmluazogW3tcbiAgICAgICAgc2hyaW5rOiBnZXRaZXJvQW5kRW1wdHkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE9yZGVyXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3JkZXJcbiAgICAgICAqL1xuICAgICAgb3JkZXI6IFt7XG4gICAgICAgIG9yZGVyOiBbJ2ZpcnN0JywgJ2xhc3QnLCAnbm9uZScsIGlzSW50ZWdlciwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIFRlbXBsYXRlIENvbHVtbnNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLXRlbXBsYXRlLWNvbHVtbnNcbiAgICAgICAqL1xuICAgICAgJ2dyaWQtY29scyc6IFt7XG4gICAgICAgICdncmlkLWNvbHMnOiBbaXNBbnldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBDb2x1bW4gU3RhcnQgLyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLWNvbHVtblxuICAgICAgICovXG4gICAgICAnY29sLXN0YXJ0LWVuZCc6IFt7XG4gICAgICAgIGNvbDogWydhdXRvJywge1xuICAgICAgICAgIHNwYW46IFsnZnVsbCcsIGlzSW50ZWdlciwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgICAgfSwgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIENvbHVtbiBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtY29sdW1uXG4gICAgICAgKi9cbiAgICAgICdjb2wtc3RhcnQnOiBbe1xuICAgICAgICAnY29sLXN0YXJ0JzogZ2V0TnVtYmVyV2l0aEF1dG9BbmRBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgQ29sdW1uIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtY29sdW1uXG4gICAgICAgKi9cbiAgICAgICdjb2wtZW5kJzogW3tcbiAgICAgICAgJ2NvbC1lbmQnOiBnZXROdW1iZXJXaXRoQXV0b0FuZEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBUZW1wbGF0ZSBSb3dzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC10ZW1wbGF0ZS1yb3dzXG4gICAgICAgKi9cbiAgICAgICdncmlkLXJvd3MnOiBbe1xuICAgICAgICAnZ3JpZC1yb3dzJzogW2lzQW55XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgUm93IFN0YXJ0IC8gRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1yb3dcbiAgICAgICAqL1xuICAgICAgJ3Jvdy1zdGFydC1lbmQnOiBbe1xuICAgICAgICByb3c6IFsnYXV0bycsIHtcbiAgICAgICAgICBzcGFuOiBbaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgICB9LCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgUm93IFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1yb3dcbiAgICAgICAqL1xuICAgICAgJ3Jvdy1zdGFydCc6IFt7XG4gICAgICAgICdyb3ctc3RhcnQnOiBnZXROdW1iZXJXaXRoQXV0b0FuZEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBSb3cgRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1yb3dcbiAgICAgICAqL1xuICAgICAgJ3Jvdy1lbmQnOiBbe1xuICAgICAgICAncm93LWVuZCc6IGdldE51bWJlcldpdGhBdXRvQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmlkIEF1dG8gRmxvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyaWQtYXV0by1mbG93XG4gICAgICAgKi9cbiAgICAgICdncmlkLWZsb3cnOiBbe1xuICAgICAgICAnZ3JpZC1mbG93JzogWydyb3cnLCAnY29sJywgJ2RlbnNlJywgJ3Jvdy1kZW5zZScsICdjb2wtZGVuc2UnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyaWQgQXV0byBDb2x1bW5zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JpZC1hdXRvLWNvbHVtbnNcbiAgICAgICAqL1xuICAgICAgJ2F1dG8tY29scyc6IFt7XG4gICAgICAgICdhdXRvLWNvbHMnOiBbJ2F1dG8nLCAnbWluJywgJ21heCcsICdmcicsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JpZCBBdXRvIFJvd3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmlkLWF1dG8tcm93c1xuICAgICAgICovXG4gICAgICAnYXV0by1yb3dzJzogW3tcbiAgICAgICAgJ2F1dG8tcm93cyc6IFsnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZyJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHYXBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9nYXBcbiAgICAgICAqL1xuICAgICAgZ2FwOiBbe1xuICAgICAgICBnYXA6IFtnYXBdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR2FwIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9nYXBcbiAgICAgICAqL1xuICAgICAgJ2dhcC14JzogW3tcbiAgICAgICAgJ2dhcC14JzogW2dhcF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHYXAgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dhcFxuICAgICAgICovXG4gICAgICAnZ2FwLXknOiBbe1xuICAgICAgICAnZ2FwLXknOiBbZ2FwXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEp1c3RpZnkgQ29udGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2p1c3RpZnktY29udGVudFxuICAgICAgICovXG4gICAgICAnanVzdGlmeS1jb250ZW50JzogW3tcbiAgICAgICAganVzdGlmeTogWydub3JtYWwnLCAuLi5nZXRBbGlnbigpXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEp1c3RpZnkgSXRlbXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9qdXN0aWZ5LWl0ZW1zXG4gICAgICAgKi9cbiAgICAgICdqdXN0aWZ5LWl0ZW1zJzogW3tcbiAgICAgICAgJ2p1c3RpZnktaXRlbXMnOiBbJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnc3RyZXRjaCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogSnVzdGlmeSBTZWxmXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvanVzdGlmeS1zZWxmXG4gICAgICAgKi9cbiAgICAgICdqdXN0aWZ5LXNlbGYnOiBbe1xuICAgICAgICAnanVzdGlmeS1zZWxmJzogWydhdXRvJywgJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnc3RyZXRjaCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQWxpZ24gQ29udGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FsaWduLWNvbnRlbnRcbiAgICAgICAqL1xuICAgICAgJ2FsaWduLWNvbnRlbnQnOiBbe1xuICAgICAgICBjb250ZW50OiBbJ25vcm1hbCcsIC4uLmdldEFsaWduKCksICdiYXNlbGluZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQWxpZ24gSXRlbXNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbGlnbi1pdGVtc1xuICAgICAgICovXG4gICAgICAnYWxpZ24taXRlbXMnOiBbe1xuICAgICAgICBpdGVtczogWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2Jhc2VsaW5lJywgJ3N0cmV0Y2gnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEFsaWduIFNlbGZcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbGlnbi1zZWxmXG4gICAgICAgKi9cbiAgICAgICdhbGlnbi1zZWxmJzogW3tcbiAgICAgICAgc2VsZjogWydhdXRvJywgJ3N0YXJ0JywgJ2VuZCcsICdjZW50ZXInLCAnc3RyZXRjaCcsICdiYXNlbGluZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGxhY2UgQ29udGVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BsYWNlLWNvbnRlbnRcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlLWNvbnRlbnQnOiBbe1xuICAgICAgICAncGxhY2UtY29udGVudCc6IFsuLi5nZXRBbGlnbigpLCAnYmFzZWxpbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBsYWNlIEl0ZW1zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGxhY2UtaXRlbXNcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlLWl0ZW1zJzogW3tcbiAgICAgICAgJ3BsYWNlLWl0ZW1zJzogWydzdGFydCcsICdlbmQnLCAnY2VudGVyJywgJ2Jhc2VsaW5lJywgJ3N0cmV0Y2gnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBsYWNlIFNlbGZcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wbGFjZS1zZWxmXG4gICAgICAgKi9cbiAgICAgICdwbGFjZS1zZWxmJzogW3tcbiAgICAgICAgJ3BsYWNlLXNlbGYnOiBbJ2F1dG8nLCAnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdzdHJldGNoJ11cbiAgICAgIH1dLFxuICAgICAgLy8gU3BhY2luZ1xuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xuICAgICAgICovXG4gICAgICBwOiBbe1xuICAgICAgICBwOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHB4OiBbe1xuICAgICAgICBweDogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGFkZGluZ1xuICAgICAgICovXG4gICAgICBweTogW3tcbiAgICAgICAgcHk6IFtwYWRkaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBhZGRpbmcgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHBzOiBbe1xuICAgICAgICBwczogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHBlOiBbe1xuICAgICAgICBwZTogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHB0OiBbe1xuICAgICAgICBwdDogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGFkZGluZyBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcHI6IFt7XG4gICAgICAgIHByOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BhZGRpbmdcbiAgICAgICAqL1xuICAgICAgcGI6IFt7XG4gICAgICAgIHBiOiBbcGFkZGluZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBQYWRkaW5nIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgIHBsOiBbe1xuICAgICAgICBwbDogW3BhZGRpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXG4gICAgICAgKi9cbiAgICAgIG06IFt7XG4gICAgICAgIG06IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXg6IFt7XG4gICAgICAgIG14OiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWFyZ2luXG4gICAgICAgKi9cbiAgICAgIG15OiBbe1xuICAgICAgICBteTogW21hcmdpbl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNYXJnaW4gU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXM6IFt7XG4gICAgICAgIG1zOiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbWU6IFt7XG4gICAgICAgIG1lOiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbXQ6IFt7XG4gICAgICAgIG10OiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1hcmdpbiBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtcjogW3tcbiAgICAgICAgbXI6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21hcmdpblxuICAgICAgICovXG4gICAgICBtYjogW3tcbiAgICAgICAgbWI6IFttYXJnaW5dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWFyZ2luIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXJnaW5cbiAgICAgICAqL1xuICAgICAgbWw6IFt7XG4gICAgICAgIG1sOiBbbWFyZ2luXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNwYWNlIEJldHdlZW4gWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NwYWNlXG4gICAgICAgKi9cbiAgICAgICdzcGFjZS14JzogW3tcbiAgICAgICAgJ3NwYWNlLXgnOiBbc3BhY2VdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU3BhY2UgQmV0d2VlbiBYIFJldmVyc2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zcGFjZVxuICAgICAgICovXG4gICAgICAnc3BhY2UteC1yZXZlcnNlJzogWydzcGFjZS14LXJldmVyc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogU3BhY2UgQmV0d2VlbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc3BhY2VcbiAgICAgICAqL1xuICAgICAgJ3NwYWNlLXknOiBbe1xuICAgICAgICAnc3BhY2UteSc6IFtzcGFjZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTcGFjZSBCZXR3ZWVuIFkgUmV2ZXJzZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NwYWNlXG4gICAgICAgKi9cbiAgICAgICdzcGFjZS15LXJldmVyc2UnOiBbJ3NwYWNlLXktcmV2ZXJzZSddLFxuICAgICAgLy8gU2l6aW5nXG4gICAgICAvKipcbiAgICAgICAqIFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd2lkdGhcbiAgICAgICAqL1xuICAgICAgdzogW3tcbiAgICAgICAgdzogWydhdXRvJywgJ21pbicsICdtYXgnLCAnZml0JywgJ3N2dycsICdsdncnLCAnZHZ3JywgaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNaW4tV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9taW4td2lkdGhcbiAgICAgICAqL1xuICAgICAgJ21pbi13JzogW3tcbiAgICAgICAgJ21pbi13JzogW2lzQXJiaXRyYXJ5VmFsdWUsIHNwYWNpbmcsICdtaW4nLCAnbWF4JywgJ2ZpdCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTWF4LVdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbWF4LXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdtYXgtdyc6IFt7XG4gICAgICAgICdtYXgtdyc6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnbm9uZScsICdmdWxsJywgJ21pbicsICdtYXgnLCAnZml0JywgJ3Byb3NlJywge1xuICAgICAgICAgIHNjcmVlbjogW2lzVHNoaXJ0U2l6ZV1cbiAgICAgICAgfSwgaXNUc2hpcnRTaXplXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEhlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2hlaWdodFxuICAgICAgICovXG4gICAgICBoOiBbe1xuICAgICAgICBoOiBbaXNBcmJpdHJhcnlWYWx1ZSwgc3BhY2luZywgJ2F1dG8nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3ZoJywgJ2x2aCcsICdkdmgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1pbi1IZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9taW4taGVpZ2h0XG4gICAgICAgKi9cbiAgICAgICdtaW4taCc6IFt7XG4gICAgICAgICdtaW4taCc6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3ZoJywgJ2x2aCcsICdkdmgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE1heC1IZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9tYXgtaGVpZ2h0XG4gICAgICAgKi9cbiAgICAgICdtYXgtaCc6IFt7XG4gICAgICAgICdtYXgtaCc6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnbWluJywgJ21heCcsICdmaXQnLCAnc3ZoJywgJ2x2aCcsICdkdmgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNpemVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zaXplXG4gICAgICAgKi9cbiAgICAgIHNpemU6IFt7XG4gICAgICAgIHNpemU6IFtpc0FyYml0cmFyeVZhbHVlLCBzcGFjaW5nLCAnYXV0bycsICdtaW4nLCAnbWF4JywgJ2ZpdCddXG4gICAgICB9XSxcbiAgICAgIC8vIFR5cG9ncmFwaHlcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBTaXplXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC1zaXplXG4gICAgICAgKi9cbiAgICAgICdmb250LXNpemUnOiBbe1xuICAgICAgICB0ZXh0OiBbJ2Jhc2UnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5TGVuZ3RoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEZvbnQgU21vb3RoaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC1zbW9vdGhpbmdcbiAgICAgICAqL1xuICAgICAgJ2ZvbnQtc21vb3RoaW5nJzogWydhbnRpYWxpYXNlZCcsICdzdWJwaXhlbC1hbnRpYWxpYXNlZCddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC1zdHlsZVxuICAgICAgICovXG4gICAgICAnZm9udC1zdHlsZSc6IFsnaXRhbGljJywgJ25vdC1pdGFsaWMnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBXZWlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXdlaWdodFxuICAgICAgICovXG4gICAgICAnZm9udC13ZWlnaHQnOiBbe1xuICAgICAgICBmb250OiBbJ3RoaW4nLCAnZXh0cmFsaWdodCcsICdsaWdodCcsICdub3JtYWwnLCAnbWVkaXVtJywgJ3NlbWlib2xkJywgJ2JvbGQnLCAnZXh0cmFib2xkJywgJ2JsYWNrJywgaXNBcmJpdHJhcnlOdW1iZXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBGYW1pbHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LWZhbWlseVxuICAgICAgICovXG4gICAgICAnZm9udC1mYW1pbHknOiBbe1xuICAgICAgICBmb250OiBbaXNBbnldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLW5vcm1hbCc6IFsnbm9ybWFsLW51bXMnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLW9yZGluYWwnOiBbJ29yZGluYWwnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLXNsYXNoZWQtemVybyc6IFsnc2xhc2hlZC16ZXJvJ10sXG4gICAgICAvKipcbiAgICAgICAqIEZvbnQgVmFyaWFudCBOdW1lcmljXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9udC12YXJpYW50LW51bWVyaWNcbiAgICAgICAqL1xuICAgICAgJ2Z2bi1maWd1cmUnOiBbJ2xpbmluZy1udW1zJywgJ29sZHN0eWxlLW51bXMnXSxcbiAgICAgIC8qKlxuICAgICAgICogRm9udCBWYXJpYW50IE51bWVyaWNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9mb250LXZhcmlhbnQtbnVtZXJpY1xuICAgICAgICovXG4gICAgICAnZnZuLXNwYWNpbmcnOiBbJ3Byb3BvcnRpb25hbC1udW1zJywgJ3RhYnVsYXItbnVtcyddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb250IFZhcmlhbnQgTnVtZXJpY1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZvbnQtdmFyaWFudC1udW1lcmljXG4gICAgICAgKi9cbiAgICAgICdmdm4tZnJhY3Rpb24nOiBbJ2RpYWdvbmFsLWZyYWN0aW9ucycsICdzdGFja2VkLWZyYWN0aW9ucyddLFxuICAgICAgLyoqXG4gICAgICAgKiBMZXR0ZXIgU3BhY2luZ1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xldHRlci1zcGFjaW5nXG4gICAgICAgKi9cbiAgICAgIHRyYWNraW5nOiBbe1xuICAgICAgICB0cmFja2luZzogWyd0aWdodGVyJywgJ3RpZ2h0JywgJ25vcm1hbCcsICd3aWRlJywgJ3dpZGVyJywgJ3dpZGVzdCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGluZSBDbGFtcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpbmUtY2xhbXBcbiAgICAgICAqL1xuICAgICAgJ2xpbmUtY2xhbXAnOiBbe1xuICAgICAgICAnbGluZS1jbGFtcCc6IFsnbm9uZScsIGlzTnVtYmVyLCBpc0FyYml0cmFyeU51bWJlcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBMaW5lIEhlaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpbmUtaGVpZ2h0XG4gICAgICAgKi9cbiAgICAgIGxlYWRpbmc6IFt7XG4gICAgICAgIGxlYWRpbmc6IFsnbm9uZScsICd0aWdodCcsICdzbnVnJywgJ25vcm1hbCcsICdyZWxheGVkJywgJ2xvb3NlJywgaXNMZW5ndGgsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGlzdCBTdHlsZSBJbWFnZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2xpc3Qtc3R5bGUtaW1hZ2VcbiAgICAgICAqL1xuICAgICAgJ2xpc3QtaW1hZ2UnOiBbe1xuICAgICAgICAnbGlzdC1pbWFnZSc6IFsnbm9uZScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogTGlzdCBTdHlsZSBUeXBlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbGlzdC1zdHlsZS10eXBlXG4gICAgICAgKi9cbiAgICAgICdsaXN0LXN0eWxlLXR5cGUnOiBbe1xuICAgICAgICBsaXN0OiBbJ25vbmUnLCAnZGlzYycsICdkZWNpbWFsJywgaXNBcmJpdHJhcnlWYWx1ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBMaXN0IFN0eWxlIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvbGlzdC1zdHlsZS1wb3NpdGlvblxuICAgICAgICovXG4gICAgICAnbGlzdC1zdHlsZS1wb3NpdGlvbic6IFt7XG4gICAgICAgIGxpc3Q6IFsnaW5zaWRlJywgJ291dHNpZGUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFBsYWNlaG9sZGVyIENvbG9yXG4gICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBUYWlsd2luZCBDU1MgdjMuMC4wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcGxhY2Vob2xkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlaG9sZGVyLWNvbG9yJzogW3tcbiAgICAgICAgcGxhY2Vob2xkZXI6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUGxhY2Vob2xkZXIgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3BsYWNlaG9sZGVyLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ3BsYWNlaG9sZGVyLW9wYWNpdHknOiBbe1xuICAgICAgICAncGxhY2Vob2xkZXItb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgQWxpZ25tZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1hbGlnblxuICAgICAgICovXG4gICAgICAndGV4dC1hbGlnbm1lbnQnOiBbe1xuICAgICAgICB0ZXh0OiBbJ2xlZnQnLCAnY2VudGVyJywgJ3JpZ2h0JywgJ2p1c3RpZnknLCAnc3RhcnQnLCAnZW5kJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1jb2xvclxuICAgICAgICovXG4gICAgICAndGV4dC1jb2xvcic6IFt7XG4gICAgICAgIHRleHQ6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1vcGFjaXR5XG4gICAgICAgKi9cbiAgICAgICd0ZXh0LW9wYWNpdHknOiBbe1xuICAgICAgICAndGV4dC1vcGFjaXR5JzogW29wYWNpdHldXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVGV4dCBEZWNvcmF0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1kZWNvcmF0aW9uXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LWRlY29yYXRpb24nOiBbJ3VuZGVybGluZScsICdvdmVybGluZScsICdsaW5lLXRocm91Z2gnLCAnbm8tdW5kZXJsaW5lJ10sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgRGVjb3JhdGlvbiBTdHlsZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtZGVjb3JhdGlvbi1zdHlsZVxuICAgICAgICovXG4gICAgICAndGV4dC1kZWNvcmF0aW9uLXN0eWxlJzogW3tcbiAgICAgICAgZGVjb3JhdGlvbjogWy4uLmdldExpbmVTdHlsZXMoKSwgJ3dhdnknXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgRGVjb3JhdGlvbiBUaGlja25lc3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzJzogW3tcbiAgICAgICAgZGVjb3JhdGlvbjogWydhdXRvJywgJ2Zyb20tZm9udCcsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IFVuZGVybGluZSBPZmZzZXRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LXVuZGVybGluZS1vZmZzZXRcbiAgICAgICAqL1xuICAgICAgJ3VuZGVybGluZS1vZmZzZXQnOiBbe1xuICAgICAgICAndW5kZXJsaW5lLW9mZnNldCc6IFsnYXV0bycsIGlzTGVuZ3RoLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgRGVjb3JhdGlvbiBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtZGVjb3JhdGlvbi1jb2xvclxuICAgICAgICovXG4gICAgICAndGV4dC1kZWNvcmF0aW9uLWNvbG9yJzogW3tcbiAgICAgICAgZGVjb3JhdGlvbjogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IFRyYW5zZm9ybVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RleHQtdHJhbnNmb3JtXG4gICAgICAgKi9cbiAgICAgICd0ZXh0LXRyYW5zZm9ybSc6IFsndXBwZXJjYXNlJywgJ2xvd2VyY2FzZScsICdjYXBpdGFsaXplJywgJ25vcm1hbC1jYXNlJ10sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgT3ZlcmZsb3dcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LW92ZXJmbG93XG4gICAgICAgKi9cbiAgICAgICd0ZXh0LW92ZXJmbG93JzogWyd0cnVuY2F0ZScsICd0ZXh0LWVsbGlwc2lzJywgJ3RleHQtY2xpcCddLFxuICAgICAgLyoqXG4gICAgICAgKiBUZXh0IFdyYXBcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90ZXh0LXdyYXBcbiAgICAgICAqL1xuICAgICAgJ3RleHQtd3JhcCc6IFt7XG4gICAgICAgIHRleHQ6IFsnd3JhcCcsICdub3dyYXAnLCAnYmFsYW5jZScsICdwcmV0dHknXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRleHQgSW5kZW50XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdGV4dC1pbmRlbnRcbiAgICAgICAqL1xuICAgICAgaW5kZW50OiBbe1xuICAgICAgICBpbmRlbnQ6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBWZXJ0aWNhbCBBbGlnbm1lbnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy92ZXJ0aWNhbC1hbGlnblxuICAgICAgICovXG4gICAgICAndmVydGljYWwtYWxpZ24nOiBbe1xuICAgICAgICBhbGlnbjogWydiYXNlbGluZScsICd0b3AnLCAnbWlkZGxlJywgJ2JvdHRvbScsICd0ZXh0LXRvcCcsICd0ZXh0LWJvdHRvbScsICdzdWInLCAnc3VwZXInLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFdoaXRlc3BhY2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy93aGl0ZXNwYWNlXG4gICAgICAgKi9cbiAgICAgIHdoaXRlc3BhY2U6IFt7XG4gICAgICAgIHdoaXRlc3BhY2U6IFsnbm9ybWFsJywgJ25vd3JhcCcsICdwcmUnLCAncHJlLWxpbmUnLCAncHJlLXdyYXAnLCAnYnJlYWstc3BhY2VzJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBXb3JkIEJyZWFrXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd29yZC1icmVha1xuICAgICAgICovXG4gICAgICBicmVhazogW3tcbiAgICAgICAgYnJlYWs6IFsnbm9ybWFsJywgJ3dvcmRzJywgJ2FsbCcsICdrZWVwJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBIeXBoZW5zXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvaHlwaGVuc1xuICAgICAgICovXG4gICAgICBoeXBoZW5zOiBbe1xuICAgICAgICBoeXBoZW5zOiBbJ25vbmUnLCAnbWFudWFsJywgJ2F1dG8nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIENvbnRlbnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250ZW50XG4gICAgICAgKi9cbiAgICAgIGNvbnRlbnQ6IFt7XG4gICAgICAgIGNvbnRlbnQ6IFsnbm9uZScsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIEJhY2tncm91bmRzXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgQXR0YWNobWVudFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtYXR0YWNobWVudFxuICAgICAgICovXG4gICAgICAnYmctYXR0YWNobWVudCc6IFt7XG4gICAgICAgIGJnOiBbJ2ZpeGVkJywgJ2xvY2FsJywgJ3Njcm9sbCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBDbGlwXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1jbGlwXG4gICAgICAgKi9cbiAgICAgICdiZy1jbGlwJzogW3tcbiAgICAgICAgJ2JnLWNsaXAnOiBbJ2JvcmRlcicsICdwYWRkaW5nJywgJ2NvbnRlbnQnLCAndGV4dCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBPcGFjaXR5XG4gICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBUYWlsd2luZCBDU1MgdjMuMC4wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1vcGFjaXR5XG4gICAgICAgKi9cbiAgICAgICdiZy1vcGFjaXR5JzogW3tcbiAgICAgICAgJ2JnLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIE9yaWdpblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tncm91bmQtb3JpZ2luXG4gICAgICAgKi9cbiAgICAgICdiZy1vcmlnaW4nOiBbe1xuICAgICAgICAnYmctb3JpZ2luJzogWydib3JkZXInLCAncGFkZGluZycsICdjb250ZW50J11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1wb3NpdGlvblxuICAgICAgICovXG4gICAgICAnYmctcG9zaXRpb24nOiBbe1xuICAgICAgICBiZzogWy4uLmdldFBvc2l0aW9ucygpLCBpc0FyYml0cmFyeVBvc2l0aW9uXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgUmVwZWF0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1yZXBlYXRcbiAgICAgICAqL1xuICAgICAgJ2JnLXJlcGVhdCc6IFt7XG4gICAgICAgIGJnOiBbJ25vLXJlcGVhdCcsIHtcbiAgICAgICAgICByZXBlYXQ6IFsnJywgJ3gnLCAneScsICdyb3VuZCcsICdzcGFjZSddXG4gICAgICAgIH1dXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBTaXplXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1zaXplXG4gICAgICAgKi9cbiAgICAgICdiZy1zaXplJzogW3tcbiAgICAgICAgYmc6IFsnYXV0bycsICdjb3ZlcicsICdjb250YWluJywgaXNBcmJpdHJhcnlTaXplXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tncm91bmQgSW1hZ2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZ3JvdW5kLWltYWdlXG4gICAgICAgKi9cbiAgICAgICdiZy1pbWFnZSc6IFt7XG4gICAgICAgIGJnOiBbJ25vbmUnLCB7XG4gICAgICAgICAgJ2dyYWRpZW50LXRvJzogWyd0JywgJ3RyJywgJ3InLCAnYnInLCAnYicsICdibCcsICdsJywgJ3RsJ11cbiAgICAgICAgfSwgaXNBcmJpdHJhcnlJbWFnZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZ3JvdW5kIENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1jb2xvclxuICAgICAgICovXG4gICAgICAnYmctY29sb3InOiBbe1xuICAgICAgICBiZzogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBGcm9tIFBvc2l0aW9uXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JhZGllbnQtY29sb3Itc3RvcHNcbiAgICAgICAqL1xuICAgICAgJ2dyYWRpZW50LWZyb20tcG9zJzogW3tcbiAgICAgICAgZnJvbTogW2dyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIFZpYSBQb3NpdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXG4gICAgICAgKi9cbiAgICAgICdncmFkaWVudC12aWEtcG9zJzogW3tcbiAgICAgICAgdmlhOiBbZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgVG8gUG9zaXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmFkaWVudC1jb2xvci1zdG9wc1xuICAgICAgICovXG4gICAgICAnZ3JhZGllbnQtdG8tcG9zJzogW3tcbiAgICAgICAgdG86IFtncmFkaWVudENvbG9yU3RvcFBvc2l0aW9uc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBHcmFkaWVudCBDb2xvciBTdG9wcyBGcm9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JhZGllbnQtY29sb3Itc3RvcHNcbiAgICAgICAqL1xuICAgICAgJ2dyYWRpZW50LWZyb20nOiBbe1xuICAgICAgICBmcm9tOiBbZ3JhZGllbnRDb2xvclN0b3BzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEdyYWRpZW50IENvbG9yIFN0b3BzIFZpYVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2dyYWRpZW50LWNvbG9yLXN0b3BzXG4gICAgICAgKi9cbiAgICAgICdncmFkaWVudC12aWEnOiBbe1xuICAgICAgICB2aWE6IFtncmFkaWVudENvbG9yU3RvcHNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JhZGllbnQgQ29sb3IgU3RvcHMgVG9cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ncmFkaWVudC1jb2xvci1zdG9wc1xuICAgICAgICovXG4gICAgICAnZ3JhZGllbnQtdG8nOiBbe1xuICAgICAgICB0bzogW2dyYWRpZW50Q29sb3JTdG9wc11cbiAgICAgIH1dLFxuICAgICAgLy8gQm9yZGVyc1xuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICByb3VuZGVkOiBbe1xuICAgICAgICByb3VuZGVkOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXMnOiBbe1xuICAgICAgICAncm91bmRlZC1zJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtZSc6IFt7XG4gICAgICAgICdyb3VuZGVkLWUnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC10JzogW3tcbiAgICAgICAgJ3JvdW5kZWQtdCc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtcic6IFt7XG4gICAgICAgICdyb3VuZGVkLXInOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1iJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtYic6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC1sJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtbCc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBTdGFydCBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtc3MnOiBbe1xuICAgICAgICAncm91bmRlZC1zcyc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBTdGFydCBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXNlJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtc2UnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgRW5kIEVuZFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtZWUnOiBbe1xuICAgICAgICAncm91bmRlZC1lZSc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBFbmQgU3RhcnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLWVzJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtZXMnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgVG9wIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItcmFkaXVzXG4gICAgICAgKi9cbiAgICAgICdyb3VuZGVkLXRsJzogW3tcbiAgICAgICAgJ3JvdW5kZWQtdGwnOiBbYm9yZGVyUmFkaXVzXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBSYWRpdXMgVG9wIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXJhZGl1c1xuICAgICAgICovXG4gICAgICAncm91bmRlZC10cic6IFt7XG4gICAgICAgICdyb3VuZGVkLXRyJzogW2JvcmRlclJhZGl1c11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgUmFkaXVzIEJvdHRvbSBSaWdodFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtYnInOiBbe1xuICAgICAgICAncm91bmRlZC1icic6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFJhZGl1cyBCb3R0b20gTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1yYWRpdXNcbiAgICAgICAqL1xuICAgICAgJ3JvdW5kZWQtYmwnOiBbe1xuICAgICAgICAncm91bmRlZC1ibCc6IFtib3JkZXJSYWRpdXNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdyc6IFt7XG4gICAgICAgIGJvcmRlcjogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy14JzogW3tcbiAgICAgICAgJ2JvcmRlci14JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy15JzogW3tcbiAgICAgICAgJ2JvcmRlci15JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci13aWR0aFxuICAgICAgICovXG4gICAgICAnYm9yZGVyLXctcyc6IFt7XG4gICAgICAgICdib3JkZXItcyc6IFtib3JkZXJXaWR0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgV2lkdGggRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy1lJzogW3tcbiAgICAgICAgJ2JvcmRlci1lJzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBUb3BcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LXQnOiBbe1xuICAgICAgICAnYm9yZGVyLXQnOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItdy1yJzogW3tcbiAgICAgICAgJ2JvcmRlci1yJzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBXaWR0aCBCb3R0b21cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LWInOiBbe1xuICAgICAgICAnYm9yZGVyLWInOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFdpZHRoIExlZnRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci13LWwnOiBbe1xuICAgICAgICAnYm9yZGVyLWwnOiBbYm9yZGVyV2lkdGhdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItb3BhY2l0eVxuICAgICAgICovXG4gICAgICAnYm9yZGVyLW9wYWNpdHknOiBbe1xuICAgICAgICAnYm9yZGVyLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItc3R5bGVcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1zdHlsZSc6IFt7XG4gICAgICAgIGJvcmRlcjogWy4uLmdldExpbmVTdHlsZXMoKSwgJ2hpZGRlbiddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIFdpZHRoIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS14JzogW3tcbiAgICAgICAgJ2RpdmlkZS14JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBXaWR0aCBYIFJldmVyc2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS14LXJldmVyc2UnOiBbJ2RpdmlkZS14LXJldmVyc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIFdpZHRoIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS15JzogW3tcbiAgICAgICAgJ2RpdmlkZS15JzogW2JvcmRlcldpZHRoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIERpdmlkZSBXaWR0aCBZIFJldmVyc2VcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtd2lkdGhcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS15LXJldmVyc2UnOiBbJ2RpdmlkZS15LXJldmVyc2UnXSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtb3BhY2l0eVxuICAgICAgICovXG4gICAgICAnZGl2aWRlLW9wYWNpdHknOiBbe1xuICAgICAgICAnZGl2aWRlLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEaXZpZGUgU3R5bGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9kaXZpZGUtc3R5bGVcbiAgICAgICAqL1xuICAgICAgJ2RpdmlkZS1zdHlsZSc6IFt7XG4gICAgICAgIGRpdmlkZTogZ2V0TGluZVN0eWxlcygpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3InOiBbe1xuICAgICAgICBib3JkZXI6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLXgnOiBbe1xuICAgICAgICAnYm9yZGVyLXgnOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3JkZXItY29sb3JcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1jb2xvci15JzogW3tcbiAgICAgICAgJ2JvcmRlci15JzogW2JvcmRlckNvbG9yXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBDb2xvciBTXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3Itcyc6IFt7XG4gICAgICAgICdib3JkZXItcyc6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgRVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLWUnOiBbe1xuICAgICAgICAnYm9yZGVyLWUnOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yIFRvcFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLXQnOiBbe1xuICAgICAgICAnYm9yZGVyLXQnOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbG9yIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3Itcic6IFt7XG4gICAgICAgICdib3JkZXItcic6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgQm90dG9tXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sb3ItYic6IFt7XG4gICAgICAgICdib3JkZXItYic6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgQ29sb3IgTGVmdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1jb2xvclxuICAgICAgICovXG4gICAgICAnYm9yZGVyLWNvbG9yLWwnOiBbe1xuICAgICAgICAnYm9yZGVyLWwnOiBbYm9yZGVyQ29sb3JdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogRGl2aWRlIENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZGl2aWRlLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdkaXZpZGUtY29sb3InOiBbe1xuICAgICAgICBkaXZpZGU6IFtib3JkZXJDb2xvcl1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPdXRsaW5lIFN0eWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3V0bGluZS1zdHlsZVxuICAgICAgICovXG4gICAgICAnb3V0bGluZS1zdHlsZSc6IFt7XG4gICAgICAgIG91dGxpbmU6IFsnJywgLi4uZ2V0TGluZVN0eWxlcygpXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgT2Zmc2V0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3V0bGluZS1vZmZzZXRcbiAgICAgICAqL1xuICAgICAgJ291dGxpbmUtb2Zmc2V0JzogW3tcbiAgICAgICAgJ291dGxpbmUtb2Zmc2V0JzogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgV2lkdGhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdXRsaW5lLXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdvdXRsaW5lLXcnOiBbe1xuICAgICAgICBvdXRsaW5lOiBbaXNMZW5ndGgsIGlzQXJiaXRyYXJ5TGVuZ3RoXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIE91dGxpbmUgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9vdXRsaW5lLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdvdXRsaW5lLWNvbG9yJzogW3tcbiAgICAgICAgb3V0bGluZTogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIFdpZHRoXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy13aWR0aFxuICAgICAgICovXG4gICAgICAncmluZy13JzogW3tcbiAgICAgICAgcmluZzogZ2V0TGVuZ3RoV2l0aEVtcHR5QW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIFdpZHRoIEluc2V0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmluZy13aWR0aFxuICAgICAgICovXG4gICAgICAncmluZy13LWluc2V0JzogWydyaW5nLWluc2V0J10sXG4gICAgICAvKipcbiAgICAgICAqIFJpbmcgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdyaW5nLWNvbG9yJzogW3tcbiAgICAgICAgcmluZzogW2NvbG9yc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIE9wYWNpdHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9yaW5nLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ3Jpbmctb3BhY2l0eSc6IFt7XG4gICAgICAgICdyaW5nLW9wYWNpdHknOiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIE9mZnNldCBXaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Jpbmctb2Zmc2V0LXdpZHRoXG4gICAgICAgKi9cbiAgICAgICdyaW5nLW9mZnNldC13JzogW3tcbiAgICAgICAgJ3Jpbmctb2Zmc2V0JzogW2lzTGVuZ3RoLCBpc0FyYml0cmFyeUxlbmd0aF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBSaW5nIE9mZnNldCBDb2xvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Jpbmctb2Zmc2V0LWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdyaW5nLW9mZnNldC1jb2xvcic6IFt7XG4gICAgICAgICdyaW5nLW9mZnNldCc6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8vIEVmZmVjdHNcbiAgICAgIC8qKlxuICAgICAgICogQm94IFNoYWRvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JveC1zaGFkb3dcbiAgICAgICAqL1xuICAgICAgc2hhZG93OiBbe1xuICAgICAgICBzaGFkb3c6IFsnJywgJ2lubmVyJywgJ25vbmUnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5U2hhZG93XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJveCBTaGFkb3cgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9ib3gtc2hhZG93LWNvbG9yXG4gICAgICAgKi9cbiAgICAgICdzaGFkb3ctY29sb3InOiBbe1xuICAgICAgICBzaGFkb3c6IFtpc0FueV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBPcGFjaXR5XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvb3BhY2l0eVxuICAgICAgICovXG4gICAgICBvcGFjaXR5OiBbe1xuICAgICAgICBvcGFjaXR5OiBbb3BhY2l0eV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBNaXggQmxlbmQgTW9kZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL21peC1ibGVuZC1tb2RlXG4gICAgICAgKi9cbiAgICAgICdtaXgtYmxlbmQnOiBbe1xuICAgICAgICAnbWl4LWJsZW5kJzogWy4uLmdldEJsZW5kTW9kZXMoKSwgJ3BsdXMtbGlnaHRlcicsICdwbHVzLWRhcmtlciddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2dyb3VuZCBCbGVuZCBNb2RlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2dyb3VuZC1ibGVuZC1tb2RlXG4gICAgICAgKi9cbiAgICAgICdiZy1ibGVuZCc6IFt7XG4gICAgICAgICdiZy1ibGVuZCc6IGdldEJsZW5kTW9kZXMoKVxuICAgICAgfV0sXG4gICAgICAvLyBGaWx0ZXJzXG4gICAgICAvKipcbiAgICAgICAqIEZpbHRlclxuICAgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgVGFpbHdpbmQgQ1NTIHYzLjAuMFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZpbHRlclxuICAgICAgICovXG4gICAgICBmaWx0ZXI6IFt7XG4gICAgICAgIGZpbHRlcjogWycnLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmx1clxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JsdXJcbiAgICAgICAqL1xuICAgICAgYmx1cjogW3tcbiAgICAgICAgYmx1cjogW2JsdXJdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQnJpZ2h0bmVzc1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JyaWdodG5lc3NcbiAgICAgICAqL1xuICAgICAgYnJpZ2h0bmVzczogW3tcbiAgICAgICAgYnJpZ2h0bmVzczogW2JyaWdodG5lc3NdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ29udHJhc3RcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250cmFzdFxuICAgICAgICovXG4gICAgICBjb250cmFzdDogW3tcbiAgICAgICAgY29udHJhc3Q6IFtjb250cmFzdF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBEcm9wIFNoYWRvd1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2Ryb3Atc2hhZG93XG4gICAgICAgKi9cbiAgICAgICdkcm9wLXNoYWRvdyc6IFt7XG4gICAgICAgICdkcm9wLXNoYWRvdyc6IFsnJywgJ25vbmUnLCBpc1RzaGlydFNpemUsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogR3JheXNjYWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZ3JheXNjYWxlXG4gICAgICAgKi9cbiAgICAgIGdyYXlzY2FsZTogW3tcbiAgICAgICAgZ3JheXNjYWxlOiBbZ3JheXNjYWxlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEh1ZSBSb3RhdGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9odWUtcm90YXRlXG4gICAgICAgKi9cbiAgICAgICdodWUtcm90YXRlJzogW3tcbiAgICAgICAgJ2h1ZS1yb3RhdGUnOiBbaHVlUm90YXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEludmVydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ludmVydFxuICAgICAgICovXG4gICAgICBpbnZlcnQ6IFt7XG4gICAgICAgIGludmVydDogW2ludmVydF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTYXR1cmF0ZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NhdHVyYXRlXG4gICAgICAgKi9cbiAgICAgIHNhdHVyYXRlOiBbe1xuICAgICAgICBzYXR1cmF0ZTogW3NhdHVyYXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNlcGlhXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2VwaWFcbiAgICAgICAqL1xuICAgICAgc2VwaWE6IFt7XG4gICAgICAgIHNlcGlhOiBbc2VwaWFdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgRmlsdGVyXG4gICAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSBUYWlsd2luZCBDU1MgdjMuMC4wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3AtZmlsdGVyXG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1maWx0ZXInOiBbe1xuICAgICAgICAnYmFja2Ryb3AtZmlsdGVyJzogWycnLCAnbm9uZSddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgQmx1clxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWJsdXJcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWJsdXInOiBbe1xuICAgICAgICAnYmFja2Ryb3AtYmx1cic6IFtibHVyXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEJyaWdodG5lc3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1icmlnaHRuZXNzXG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1icmlnaHRuZXNzJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWJyaWdodG5lc3MnOiBbYnJpZ2h0bmVzc11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBDb250cmFzdFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWNvbnRyYXN0XG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1jb250cmFzdCc6IFt7XG4gICAgICAgICdiYWNrZHJvcC1jb250cmFzdCc6IFtjb250cmFzdF1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCYWNrZHJvcCBHcmF5c2NhbGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1ncmF5c2NhbGVcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLWdyYXlzY2FsZSc6IFt7XG4gICAgICAgICdiYWNrZHJvcC1ncmF5c2NhbGUnOiBbZ3JheXNjYWxlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEh1ZSBSb3RhdGVcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9iYWNrZHJvcC1odWUtcm90YXRlXG4gICAgICAgKi9cbiAgICAgICdiYWNrZHJvcC1odWUtcm90YXRlJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWh1ZS1yb3RhdGUnOiBbaHVlUm90YXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIEludmVydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLWludmVydFxuICAgICAgICovXG4gICAgICAnYmFja2Ryb3AtaW52ZXJ0JzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLWludmVydCc6IFtpbnZlcnRdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQmFja2Ryb3AgT3BhY2l0eVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JhY2tkcm9wLW9wYWNpdHlcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLW9wYWNpdHknOiBbe1xuICAgICAgICAnYmFja2Ryb3Atb3BhY2l0eSc6IFtvcGFjaXR5XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIFNhdHVyYXRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3Atc2F0dXJhdGVcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLXNhdHVyYXRlJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLXNhdHVyYXRlJzogW3NhdHVyYXRlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJhY2tkcm9wIFNlcGlhXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYmFja2Ryb3Atc2VwaWFcbiAgICAgICAqL1xuICAgICAgJ2JhY2tkcm9wLXNlcGlhJzogW3tcbiAgICAgICAgJ2JhY2tkcm9wLXNlcGlhJzogW3NlcGlhXVxuICAgICAgfV0sXG4gICAgICAvLyBUYWJsZXNcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIENvbGxhcHNlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLWNvbGxhcHNlXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItY29sbGFwc2UnOiBbe1xuICAgICAgICBib3JkZXI6IFsnY29sbGFwc2UnLCAnc2VwYXJhdGUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEJvcmRlciBTcGFjaW5nXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXNwYWNpbmdcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1zcGFjaW5nJzogW3tcbiAgICAgICAgJ2JvcmRlci1zcGFjaW5nJzogW2JvcmRlclNwYWNpbmddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQm9yZGVyIFNwYWNpbmcgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2JvcmRlci1zcGFjaW5nXG4gICAgICAgKi9cbiAgICAgICdib3JkZXItc3BhY2luZy14JzogW3tcbiAgICAgICAgJ2JvcmRlci1zcGFjaW5nLXgnOiBbYm9yZGVyU3BhY2luZ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBCb3JkZXIgU3BhY2luZyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYm9yZGVyLXNwYWNpbmdcbiAgICAgICAqL1xuICAgICAgJ2JvcmRlci1zcGFjaW5nLXknOiBbe1xuICAgICAgICAnYm9yZGVyLXNwYWNpbmcteSc6IFtib3JkZXJTcGFjaW5nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRhYmxlIExheW91dFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RhYmxlLWxheW91dFxuICAgICAgICovXG4gICAgICAndGFibGUtbGF5b3V0JzogW3tcbiAgICAgICAgdGFibGU6IFsnYXV0bycsICdmaXhlZCddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ2FwdGlvbiBTaWRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY2FwdGlvbi1zaWRlXG4gICAgICAgKi9cbiAgICAgIGNhcHRpb246IFt7XG4gICAgICAgIGNhcHRpb246IFsndG9wJywgJ2JvdHRvbSddXG4gICAgICB9XSxcbiAgICAgIC8vIFRyYW5zaXRpb25zIGFuZCBBbmltYXRpb25cbiAgICAgIC8qKlxuICAgICAgICogVHJhbmlzaXRpb24gUHJvcGVydHlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2l0aW9uLXByb3BlcnR5XG4gICAgICAgKi9cbiAgICAgIHRyYW5zaXRpb246IFt7XG4gICAgICAgIHRyYW5zaXRpb246IFsnbm9uZScsICdhbGwnLCAnJywgJ2NvbG9ycycsICdvcGFjaXR5JywgJ3NoYWRvdycsICd0cmFuc2Zvcm0nLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zaXRpb24gRHVyYXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2l0aW9uLWR1cmF0aW9uXG4gICAgICAgKi9cbiAgICAgIGR1cmF0aW9uOiBbe1xuICAgICAgICBkdXJhdGlvbjogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUcmFuc2l0aW9uIFRpbWluZyBGdW5jdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uXG4gICAgICAgKi9cbiAgICAgIGVhc2U6IFt7XG4gICAgICAgIGVhc2U6IFsnbGluZWFyJywgJ2luJywgJ291dCcsICdpbi1vdXQnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zaXRpb24gRGVsYXlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2l0aW9uLWRlbGF5XG4gICAgICAgKi9cbiAgICAgIGRlbGF5OiBbe1xuICAgICAgICBkZWxheTogZ2V0TnVtYmVyQW5kQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBBbmltYXRpb25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9hbmltYXRpb25cbiAgICAgICAqL1xuICAgICAgYW5pbWF0ZTogW3tcbiAgICAgICAgYW5pbWF0ZTogWydub25lJywgJ3NwaW4nLCAncGluZycsICdwdWxzZScsICdib3VuY2UnLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBUcmFuc2Zvcm1zXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zZm9ybVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RyYW5zZm9ybVxuICAgICAgICovXG4gICAgICB0cmFuc2Zvcm06IFt7XG4gICAgICAgIHRyYW5zZm9ybTogWycnLCAnZ3B1JywgJ25vbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjYWxlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NhbGVcbiAgICAgICAqL1xuICAgICAgc2NhbGU6IFt7XG4gICAgICAgIHNjYWxlOiBbc2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2NhbGUgWFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NjYWxlXG4gICAgICAgKi9cbiAgICAgICdzY2FsZS14JzogW3tcbiAgICAgICAgJ3NjYWxlLXgnOiBbc2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2NhbGUgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3NjYWxlXG4gICAgICAgKi9cbiAgICAgICdzY2FsZS15JzogW3tcbiAgICAgICAgJ3NjYWxlLXknOiBbc2NhbGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUm90YXRlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvcm90YXRlXG4gICAgICAgKi9cbiAgICAgIHJvdGF0ZTogW3tcbiAgICAgICAgcm90YXRlOiBbaXNJbnRlZ2VyLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zbGF0ZSBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdHJhbnNsYXRlXG4gICAgICAgKi9cbiAgICAgICd0cmFuc2xhdGUteCc6IFt7XG4gICAgICAgICd0cmFuc2xhdGUteCc6IFt0cmFuc2xhdGVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVHJhbnNsYXRlIFlcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2xhdGVcbiAgICAgICAqL1xuICAgICAgJ3RyYW5zbGF0ZS15JzogW3tcbiAgICAgICAgJ3RyYW5zbGF0ZS15JzogW3RyYW5zbGF0ZV1cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTa2V3IFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9za2V3XG4gICAgICAgKi9cbiAgICAgICdza2V3LXgnOiBbe1xuICAgICAgICAnc2tldy14JzogW3NrZXddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2tldyBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2tld1xuICAgICAgICovXG4gICAgICAnc2tldy15JzogW3tcbiAgICAgICAgJ3NrZXcteSc6IFtza2V3XVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRyYW5zZm9ybSBPcmlnaW5cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90cmFuc2Zvcm0tb3JpZ2luXG4gICAgICAgKi9cbiAgICAgICd0cmFuc2Zvcm0tb3JpZ2luJzogW3tcbiAgICAgICAgb3JpZ2luOiBbJ2NlbnRlcicsICd0b3AnLCAndG9wLXJpZ2h0JywgJ3JpZ2h0JywgJ2JvdHRvbS1yaWdodCcsICdib3R0b20nLCAnYm90dG9tLWxlZnQnLCAnbGVmdCcsICd0b3AtbGVmdCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8vIEludGVyYWN0aXZpdHlcbiAgICAgIC8qKlxuICAgICAgICogQWNjZW50IENvbG9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvYWNjZW50LWNvbG9yXG4gICAgICAgKi9cbiAgICAgIGFjY2VudDogW3tcbiAgICAgICAgYWNjZW50OiBbJ2F1dG8nLCBjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQXBwZWFyYW5jZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2FwcGVhcmFuY2VcbiAgICAgICAqL1xuICAgICAgYXBwZWFyYW5jZTogW3tcbiAgICAgICAgYXBwZWFyYW5jZTogWydub25lJywgJ2F1dG8nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIEN1cnNvclxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2N1cnNvclxuICAgICAgICovXG4gICAgICBjdXJzb3I6IFt7XG4gICAgICAgIGN1cnNvcjogWydhdXRvJywgJ2RlZmF1bHQnLCAncG9pbnRlcicsICd3YWl0JywgJ3RleHQnLCAnbW92ZScsICdoZWxwJywgJ25vdC1hbGxvd2VkJywgJ25vbmUnLCAnY29udGV4dC1tZW51JywgJ3Byb2dyZXNzJywgJ2NlbGwnLCAnY3Jvc3NoYWlyJywgJ3ZlcnRpY2FsLXRleHQnLCAnYWxpYXMnLCAnY29weScsICduby1kcm9wJywgJ2dyYWInLCAnZ3JhYmJpbmcnLCAnYWxsLXNjcm9sbCcsICdjb2wtcmVzaXplJywgJ3Jvdy1yZXNpemUnLCAnbi1yZXNpemUnLCAnZS1yZXNpemUnLCAncy1yZXNpemUnLCAndy1yZXNpemUnLCAnbmUtcmVzaXplJywgJ253LXJlc2l6ZScsICdzZS1yZXNpemUnLCAnc3ctcmVzaXplJywgJ2V3LXJlc2l6ZScsICducy1yZXNpemUnLCAnbmVzdy1yZXNpemUnLCAnbndzZS1yZXNpemUnLCAnem9vbS1pbicsICd6b29tLW91dCcsIGlzQXJiaXRyYXJ5VmFsdWVdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogQ2FyZXQgQ29sb3JcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9qdXN0LWluLXRpbWUtbW9kZSNjYXJldC1jb2xvci11dGlsaXRpZXNcbiAgICAgICAqL1xuICAgICAgJ2NhcmV0LWNvbG9yJzogW3tcbiAgICAgICAgY2FyZXQ6IFtjb2xvcnNdXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUG9pbnRlciBFdmVudHNcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9wb2ludGVyLWV2ZW50c1xuICAgICAgICovXG4gICAgICAncG9pbnRlci1ldmVudHMnOiBbe1xuICAgICAgICAncG9pbnRlci1ldmVudHMnOiBbJ25vbmUnLCAnYXV0byddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogUmVzaXplXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvcmVzaXplXG4gICAgICAgKi9cbiAgICAgIHJlc2l6ZTogW3tcbiAgICAgICAgcmVzaXplOiBbJ25vbmUnLCAneScsICd4JywgJyddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIEJlaGF2aW9yXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLWJlaGF2aW9yXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtYmVoYXZpb3InOiBbe1xuICAgICAgICBzY3JvbGw6IFsnYXV0bycsICdzbW9vdGgnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW5cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbSc6IFt7XG4gICAgICAgICdzY3JvbGwtbSc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbXgnOiBbe1xuICAgICAgICAnc2Nyb2xsLW14JzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1teSc6IFt7XG4gICAgICAgICdzY3JvbGwtbXknOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBTdGFydFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1tcyc6IFt7XG4gICAgICAgICdzY3JvbGwtbXMnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBFbmRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtbWFyZ2luXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtbWUnOiBbe1xuICAgICAgICAnc2Nyb2xsLW1lJzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBNYXJnaW4gVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW10JzogW3tcbiAgICAgICAgJ3Njcm9sbC1tdCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIFJpZ2h0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW1yJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tcic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgTWFyZ2luIEJvdHRvbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1tYXJnaW5cbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1tYic6IFt7XG4gICAgICAgICdzY3JvbGwtbWInOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIE1hcmdpbiBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLW1hcmdpblxuICAgICAgICovXG4gICAgICAnc2Nyb2xsLW1sJzogW3tcbiAgICAgICAgJ3Njcm9sbC1tbCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZ1xuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtcCc6IFt7XG4gICAgICAgICdzY3JvbGwtcCc6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBYXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1weCc6IFt7XG4gICAgICAgICdzY3JvbGwtcHgnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgWVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3Njcm9sbC1wYWRkaW5nXG4gICAgICAgKi9cbiAgICAgICdzY3JvbGwtcHknOiBbe1xuICAgICAgICAnc2Nyb2xsLXB5JzogZ2V0U3BhY2luZ1dpdGhBcmJpdHJhcnkoKVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFNjcm9sbCBQYWRkaW5nIFN0YXJ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wcyc6IFt7XG4gICAgICAgICdzY3JvbGwtcHMnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgRW5kXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wZSc6IFt7XG4gICAgICAgICdzY3JvbGwtcGUnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgVG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wdCc6IFt7XG4gICAgICAgICdzY3JvbGwtcHQnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFBhZGRpbmcgUmlnaHRcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXByJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wcic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBCb3R0b21cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtcGFkZGluZ1xuICAgICAgICovXG4gICAgICAnc2Nyb2xsLXBiJzogW3tcbiAgICAgICAgJ3Njcm9sbC1wYic6IGdldFNwYWNpbmdXaXRoQXJiaXRyYXJ5KClcbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgUGFkZGluZyBMZWZ0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXBhZGRpbmdcbiAgICAgICAqL1xuICAgICAgJ3Njcm9sbC1wbCc6IFt7XG4gICAgICAgICdzY3JvbGwtcGwnOiBnZXRTcGFjaW5nV2l0aEFyYml0cmFyeSgpXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogU2Nyb2xsIFNuYXAgQWxpZ25cbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC1hbGlnblxuICAgICAgICovXG4gICAgICAnc25hcC1hbGlnbic6IFt7XG4gICAgICAgIHNuYXA6IFsnc3RhcnQnLCAnZW5kJywgJ2NlbnRlcicsICdhbGlnbi1ub25lJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBTdG9wXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXNuYXAtc3RvcFxuICAgICAgICovXG4gICAgICAnc25hcC1zdG9wJzogW3tcbiAgICAgICAgc25hcDogWydub3JtYWwnLCAnYWx3YXlzJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBUeXBlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2Nyb2xsLXNuYXAtdHlwZVxuICAgICAgICovXG4gICAgICAnc25hcC10eXBlJzogW3tcbiAgICAgICAgc25hcDogWydub25lJywgJ3gnLCAneScsICdib3RoJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBTY3JvbGwgU25hcCBUeXBlIFN0cmljdG5lc3NcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9zY3JvbGwtc25hcC10eXBlXG4gICAgICAgKi9cbiAgICAgICdzbmFwLXN0cmljdG5lc3MnOiBbe1xuICAgICAgICBzbmFwOiBbJ21hbmRhdG9yeScsICdwcm94aW1pdHknXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvdWNoIEFjdGlvblxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxuICAgICAgICovXG4gICAgICB0b3VjaDogW3tcbiAgICAgICAgdG91Y2g6IFsnYXV0bycsICdub25lJywgJ21hbmlwdWxhdGlvbiddXG4gICAgICB9XSxcbiAgICAgIC8qKlxuICAgICAgICogVG91Y2ggQWN0aW9uIFhcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy90b3VjaC1hY3Rpb25cbiAgICAgICAqL1xuICAgICAgJ3RvdWNoLXgnOiBbe1xuICAgICAgICAndG91Y2gtcGFuJzogWyd4JywgJ2xlZnQnLCAncmlnaHQnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFRvdWNoIEFjdGlvbiBZXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdG91Y2gtYWN0aW9uXG4gICAgICAgKi9cbiAgICAgICd0b3VjaC15JzogW3tcbiAgICAgICAgJ3RvdWNoLXBhbic6IFsneScsICd1cCcsICdkb3duJ11cbiAgICAgIH1dLFxuICAgICAgLyoqXG4gICAgICAgKiBUb3VjaCBBY3Rpb24gUGluY2ggWm9vbVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3RvdWNoLWFjdGlvblxuICAgICAgICovXG4gICAgICAndG91Y2gtcHonOiBbJ3RvdWNoLXBpbmNoLXpvb20nXSxcbiAgICAgIC8qKlxuICAgICAgICogVXNlciBTZWxlY3RcbiAgICAgICAqIEBzZWUgaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy91c2VyLXNlbGVjdFxuICAgICAgICovXG4gICAgICBzZWxlY3Q6IFt7XG4gICAgICAgIHNlbGVjdDogWydub25lJywgJ3RleHQnLCAnYWxsJywgJ2F1dG8nXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFdpbGwgQ2hhbmdlXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvd2lsbC1jaGFuZ2VcbiAgICAgICAqL1xuICAgICAgJ3dpbGwtY2hhbmdlJzogW3tcbiAgICAgICAgJ3dpbGwtY2hhbmdlJzogWydhdXRvJywgJ3Njcm9sbCcsICdjb250ZW50cycsICd0cmFuc2Zvcm0nLCBpc0FyYml0cmFyeVZhbHVlXVxuICAgICAgfV0sXG4gICAgICAvLyBTVkdcbiAgICAgIC8qKlxuICAgICAgICogRmlsbFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2ZpbGxcbiAgICAgICAqL1xuICAgICAgZmlsbDogW3tcbiAgICAgICAgZmlsbDogW2NvbG9ycywgJ25vbmUnXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFN0cm9rZSBXaWR0aFxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3N0cm9rZS13aWR0aFxuICAgICAgICovXG4gICAgICAnc3Ryb2tlLXcnOiBbe1xuICAgICAgICBzdHJva2U6IFtpc0xlbmd0aCwgaXNBcmJpdHJhcnlMZW5ndGgsIGlzQXJiaXRyYXJ5TnVtYmVyXVxuICAgICAgfV0sXG4gICAgICAvKipcbiAgICAgICAqIFN0cm9rZVxuICAgICAgICogQHNlZSBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3N0cm9rZVxuICAgICAgICovXG4gICAgICBzdHJva2U6IFt7XG4gICAgICAgIHN0cm9rZTogW2NvbG9ycywgJ25vbmUnXVxuICAgICAgfV0sXG4gICAgICAvLyBBY2Nlc3NpYmlsaXR5XG4gICAgICAvKipcbiAgICAgICAqIFNjcmVlbiBSZWFkZXJzXG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3Mvc2NyZWVuLXJlYWRlcnNcbiAgICAgICAqL1xuICAgICAgc3I6IFsnc3Itb25seScsICdub3Qtc3Itb25seSddLFxuICAgICAgLyoqXG4gICAgICAgKiBGb3JjZWQgQ29sb3IgQWRqdXN0XG4gICAgICAgKiBAc2VlIGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvZm9yY2VkLWNvbG9yLWFkanVzdFxuICAgICAgICovXG4gICAgICAnZm9yY2VkLWNvbG9yLWFkanVzdCc6IFt7XG4gICAgICAgICdmb3JjZWQtY29sb3ItYWRqdXN0JzogWydhdXRvJywgJ25vbmUnXVxuICAgICAgfV1cbiAgICB9LFxuICAgIGNvbmZsaWN0aW5nQ2xhc3NHcm91cHM6IHtcbiAgICAgIG92ZXJmbG93OiBbJ292ZXJmbG93LXgnLCAnb3ZlcmZsb3cteSddLFxuICAgICAgb3ZlcnNjcm9sbDogWydvdmVyc2Nyb2xsLXgnLCAnb3ZlcnNjcm9sbC15J10sXG4gICAgICBpbnNldDogWydpbnNldC14JywgJ2luc2V0LXknLCAnc3RhcnQnLCAnZW5kJywgJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddLFxuICAgICAgJ2luc2V0LXgnOiBbJ3JpZ2h0JywgJ2xlZnQnXSxcbiAgICAgICdpbnNldC15JzogWyd0b3AnLCAnYm90dG9tJ10sXG4gICAgICBmbGV4OiBbJ2Jhc2lzJywgJ2dyb3cnLCAnc2hyaW5rJ10sXG4gICAgICBnYXA6IFsnZ2FwLXgnLCAnZ2FwLXknXSxcbiAgICAgIHA6IFsncHgnLCAncHknLCAncHMnLCAncGUnLCAncHQnLCAncHInLCAncGInLCAncGwnXSxcbiAgICAgIHB4OiBbJ3ByJywgJ3BsJ10sXG4gICAgICBweTogWydwdCcsICdwYiddLFxuICAgICAgbTogWydteCcsICdteScsICdtcycsICdtZScsICdtdCcsICdtcicsICdtYicsICdtbCddLFxuICAgICAgbXg6IFsnbXInLCAnbWwnXSxcbiAgICAgIG15OiBbJ210JywgJ21iJ10sXG4gICAgICBzaXplOiBbJ3cnLCAnaCddLFxuICAgICAgJ2ZvbnQtc2l6ZSc6IFsnbGVhZGluZyddLFxuICAgICAgJ2Z2bi1ub3JtYWwnOiBbJ2Z2bi1vcmRpbmFsJywgJ2Z2bi1zbGFzaGVkLXplcm8nLCAnZnZuLWZpZ3VyZScsICdmdm4tc3BhY2luZycsICdmdm4tZnJhY3Rpb24nXSxcbiAgICAgICdmdm4tb3JkaW5hbCc6IFsnZnZuLW5vcm1hbCddLFxuICAgICAgJ2Z2bi1zbGFzaGVkLXplcm8nOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdmdm4tZmlndXJlJzogWydmdm4tbm9ybWFsJ10sXG4gICAgICAnZnZuLXNwYWNpbmcnOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdmdm4tZnJhY3Rpb24nOiBbJ2Z2bi1ub3JtYWwnXSxcbiAgICAgICdsaW5lLWNsYW1wJzogWydkaXNwbGF5JywgJ292ZXJmbG93J10sXG4gICAgICByb3VuZGVkOiBbJ3JvdW5kZWQtcycsICdyb3VuZGVkLWUnLCAncm91bmRlZC10JywgJ3JvdW5kZWQtcicsICdyb3VuZGVkLWInLCAncm91bmRlZC1sJywgJ3JvdW5kZWQtc3MnLCAncm91bmRlZC1zZScsICdyb3VuZGVkLWVlJywgJ3JvdW5kZWQtZXMnLCAncm91bmRlZC10bCcsICdyb3VuZGVkLXRyJywgJ3JvdW5kZWQtYnInLCAncm91bmRlZC1ibCddLFxuICAgICAgJ3JvdW5kZWQtcyc6IFsncm91bmRlZC1zcycsICdyb3VuZGVkLWVzJ10sXG4gICAgICAncm91bmRlZC1lJzogWydyb3VuZGVkLXNlJywgJ3JvdW5kZWQtZWUnXSxcbiAgICAgICdyb3VuZGVkLXQnOiBbJ3JvdW5kZWQtdGwnLCAncm91bmRlZC10ciddLFxuICAgICAgJ3JvdW5kZWQtcic6IFsncm91bmRlZC10cicsICdyb3VuZGVkLWJyJ10sXG4gICAgICAncm91bmRlZC1iJzogWydyb3VuZGVkLWJyJywgJ3JvdW5kZWQtYmwnXSxcbiAgICAgICdyb3VuZGVkLWwnOiBbJ3JvdW5kZWQtdGwnLCAncm91bmRlZC1ibCddLFxuICAgICAgJ2JvcmRlci1zcGFjaW5nJzogWydib3JkZXItc3BhY2luZy14JywgJ2JvcmRlci1zcGFjaW5nLXknXSxcbiAgICAgICdib3JkZXItdyc6IFsnYm9yZGVyLXctcycsICdib3JkZXItdy1lJywgJ2JvcmRlci13LXQnLCAnYm9yZGVyLXctcicsICdib3JkZXItdy1iJywgJ2JvcmRlci13LWwnXSxcbiAgICAgICdib3JkZXItdy14JzogWydib3JkZXItdy1yJywgJ2JvcmRlci13LWwnXSxcbiAgICAgICdib3JkZXItdy15JzogWydib3JkZXItdy10JywgJ2JvcmRlci13LWInXSxcbiAgICAgICdib3JkZXItY29sb3InOiBbJ2JvcmRlci1jb2xvci1zJywgJ2JvcmRlci1jb2xvci1lJywgJ2JvcmRlci1jb2xvci10JywgJ2JvcmRlci1jb2xvci1yJywgJ2JvcmRlci1jb2xvci1iJywgJ2JvcmRlci1jb2xvci1sJ10sXG4gICAgICAnYm9yZGVyLWNvbG9yLXgnOiBbJ2JvcmRlci1jb2xvci1yJywgJ2JvcmRlci1jb2xvci1sJ10sXG4gICAgICAnYm9yZGVyLWNvbG9yLXknOiBbJ2JvcmRlci1jb2xvci10JywgJ2JvcmRlci1jb2xvci1iJ10sXG4gICAgICAnc2Nyb2xsLW0nOiBbJ3Njcm9sbC1teCcsICdzY3JvbGwtbXknLCAnc2Nyb2xsLW1zJywgJ3Njcm9sbC1tZScsICdzY3JvbGwtbXQnLCAnc2Nyb2xsLW1yJywgJ3Njcm9sbC1tYicsICdzY3JvbGwtbWwnXSxcbiAgICAgICdzY3JvbGwtbXgnOiBbJ3Njcm9sbC1tcicsICdzY3JvbGwtbWwnXSxcbiAgICAgICdzY3JvbGwtbXknOiBbJ3Njcm9sbC1tdCcsICdzY3JvbGwtbWInXSxcbiAgICAgICdzY3JvbGwtcCc6IFsnc2Nyb2xsLXB4JywgJ3Njcm9sbC1weScsICdzY3JvbGwtcHMnLCAnc2Nyb2xsLXBlJywgJ3Njcm9sbC1wdCcsICdzY3JvbGwtcHInLCAnc2Nyb2xsLXBiJywgJ3Njcm9sbC1wbCddLFxuICAgICAgJ3Njcm9sbC1weCc6IFsnc2Nyb2xsLXByJywgJ3Njcm9sbC1wbCddLFxuICAgICAgJ3Njcm9sbC1weSc6IFsnc2Nyb2xsLXB0JywgJ3Njcm9sbC1wYiddLFxuICAgICAgdG91Y2g6IFsndG91Y2gteCcsICd0b3VjaC15JywgJ3RvdWNoLXB6J10sXG4gICAgICAndG91Y2gteCc6IFsndG91Y2gnXSxcbiAgICAgICd0b3VjaC15JzogWyd0b3VjaCddLFxuICAgICAgJ3RvdWNoLXB6JzogWyd0b3VjaCddXG4gICAgfSxcbiAgICBjb25mbGljdGluZ0NsYXNzR3JvdXBNb2RpZmllcnM6IHtcbiAgICAgICdmb250LXNpemUnOiBbJ2xlYWRpbmcnXVxuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogQHBhcmFtIGJhc2VDb25maWcgQ29uZmlnIHdoZXJlIG90aGVyIGNvbmZpZyB3aWxsIGJlIG1lcmdlZCBpbnRvLiBUaGlzIG9iamVjdCB3aWxsIGJlIG11dGF0ZWQuXG4gKiBAcGFyYW0gY29uZmlnRXh0ZW5zaW9uIFBhcnRpYWwgY29uZmlnIHRvIG1lcmdlIGludG8gdGhlIGBiYXNlQ29uZmlnYC5cbiAqL1xuY29uc3QgbWVyZ2VDb25maWdzID0gKGJhc2VDb25maWcsIHtcbiAgY2FjaGVTaXplLFxuICBwcmVmaXgsXG4gIHNlcGFyYXRvcixcbiAgZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWUsXG4gIGV4dGVuZCA9IHt9LFxuICBvdmVycmlkZSA9IHt9XG59KSA9PiB7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ2NhY2hlU2l6ZScsIGNhY2hlU2l6ZSk7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ3ByZWZpeCcsIHByZWZpeCk7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ3NlcGFyYXRvcicsIHNlcGFyYXRvcik7XG4gIG92ZXJyaWRlUHJvcGVydHkoYmFzZUNvbmZpZywgJ2V4cGVyaW1lbnRhbFBhcnNlQ2xhc3NOYW1lJywgZXhwZXJpbWVudGFsUGFyc2VDbGFzc05hbWUpO1xuICBmb3IgKGNvbnN0IGNvbmZpZ0tleSBpbiBvdmVycmlkZSkge1xuICAgIG92ZXJyaWRlQ29uZmlnUHJvcGVydGllcyhiYXNlQ29uZmlnW2NvbmZpZ0tleV0sIG92ZXJyaWRlW2NvbmZpZ0tleV0pO1xuICB9XG4gIGZvciAoY29uc3Qga2V5IGluIGV4dGVuZCkge1xuICAgIG1lcmdlQ29uZmlnUHJvcGVydGllcyhiYXNlQ29uZmlnW2tleV0sIGV4dGVuZFtrZXldKTtcbiAgfVxuICByZXR1cm4gYmFzZUNvbmZpZztcbn07XG5jb25zdCBvdmVycmlkZVByb3BlcnR5ID0gKGJhc2VPYmplY3QsIG92ZXJyaWRlS2V5LCBvdmVycmlkZVZhbHVlKSA9PiB7XG4gIGlmIChvdmVycmlkZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICBiYXNlT2JqZWN0W292ZXJyaWRlS2V5XSA9IG92ZXJyaWRlVmFsdWU7XG4gIH1cbn07XG5jb25zdCBvdmVycmlkZUNvbmZpZ1Byb3BlcnRpZXMgPSAoYmFzZU9iamVjdCwgb3ZlcnJpZGVPYmplY3QpID0+IHtcbiAgaWYgKG92ZXJyaWRlT2JqZWN0KSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb3ZlcnJpZGVPYmplY3QpIHtcbiAgICAgIG92ZXJyaWRlUHJvcGVydHkoYmFzZU9iamVjdCwga2V5LCBvdmVycmlkZU9iamVjdFtrZXldKTtcbiAgICB9XG4gIH1cbn07XG5jb25zdCBtZXJnZUNvbmZpZ1Byb3BlcnRpZXMgPSAoYmFzZU9iamVjdCwgbWVyZ2VPYmplY3QpID0+IHtcbiAgaWYgKG1lcmdlT2JqZWN0KSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gbWVyZ2VPYmplY3QpIHtcbiAgICAgIGNvbnN0IG1lcmdlVmFsdWUgPSBtZXJnZU9iamVjdFtrZXldO1xuICAgICAgaWYgKG1lcmdlVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBiYXNlT2JqZWN0W2tleV0gPSAoYmFzZU9iamVjdFtrZXldIHx8IFtdKS5jb25jYXQobWVyZ2VWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuY29uc3QgZXh0ZW5kVGFpbHdpbmRNZXJnZSA9IChjb25maWdFeHRlbnNpb24sIC4uLmNyZWF0ZUNvbmZpZykgPT4gdHlwZW9mIGNvbmZpZ0V4dGVuc2lvbiA9PT0gJ2Z1bmN0aW9uJyA/IGNyZWF0ZVRhaWx3aW5kTWVyZ2UoZ2V0RGVmYXVsdENvbmZpZywgY29uZmlnRXh0ZW5zaW9uLCAuLi5jcmVhdGVDb25maWcpIDogY3JlYXRlVGFpbHdpbmRNZXJnZSgoKSA9PiBtZXJnZUNvbmZpZ3MoZ2V0RGVmYXVsdENvbmZpZygpLCBjb25maWdFeHRlbnNpb24pLCAuLi5jcmVhdGVDb25maWcpO1xuY29uc3QgdHdNZXJnZSA9IC8qI19fUFVSRV9fKi9jcmVhdGVUYWlsd2luZE1lcmdlKGdldERlZmF1bHRDb25maWcpO1xuZXhwb3J0IHsgY3JlYXRlVGFpbHdpbmRNZXJnZSwgZXh0ZW5kVGFpbHdpbmRNZXJnZSwgZnJvbVRoZW1lLCBnZXREZWZhdWx0Q29uZmlnLCBtZXJnZUNvbmZpZ3MsIHR3Sm9pbiwgdHdNZXJnZSwgdmFsaWRhdG9ycyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVuZGxlLW1qcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/tailwind-merge/dist/bundle-mjs.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs":
/*!******************************************!*\
!*** ./node_modules/tslib/tslib.es6.mjs ***!
\******************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __addDisposableResource: () => (/* binding */ __addDisposableResource),\n/* harmony export */ __assign: () => (/* binding */ __assign),\n/* harmony export */ __asyncDelegator: () => (/* binding */ __asyncDelegator),\n/* harmony export */ __asyncGenerator: () => (/* binding */ __asyncGenerator),\n/* harmony export */ __asyncValues: () => (/* binding */ __asyncValues),\n/* harmony export */ __await: () => (/* binding */ __await),\n/* harmony export */ __awaiter: () => (/* binding */ __awaiter),\n/* harmony export */ __classPrivateFieldGet: () => (/* binding */ __classPrivateFieldGet),\n/* harmony export */ __classPrivateFieldIn: () => (/* binding */ __classPrivateFieldIn),\n/* harmony export */ __classPrivateFieldSet: () => (/* binding */ __classPrivateFieldSet),\n/* harmony export */ __createBinding: () => (/* binding */ __createBinding),\n/* harmony export */ __decorate: () => (/* binding */ __decorate),\n/* harmony export */ __disposeResources: () => (/* binding */ __disposeResources),\n/* harmony export */ __esDecorate: () => (/* binding */ __esDecorate),\n/* harmony export */ __exportStar: () => (/* binding */ __exportStar),\n/* harmony export */ __extends: () => (/* binding */ __extends),\n/* harmony export */ __generator: () => (/* binding */ __generator),\n/* harmony export */ __importDefault: () => (/* binding */ __importDefault),\n/* harmony export */ __importStar: () => (/* binding */ __importStar),\n/* harmony export */ __makeTemplateObject: () => (/* binding */ __makeTemplateObject),\n/* harmony export */ __metadata: () => (/* binding */ __metadata),\n/* harmony export */ __param: () => (/* binding */ __param),\n/* harmony export */ __propKey: () => (/* binding */ __propKey),\n/* harmony export */ __read: () => (/* binding */ __read),\n/* harmony export */ __rest: () => (/* binding */ __rest),\n/* harmony export */ __rewriteRelativeImportExtension: () => (/* binding */ __rewriteRelativeImportExtension),\n/* harmony export */ __runInitializers: () => (/* binding */ __runInitializers),\n/* harmony export */ __setFunctionName: () => (/* binding */ __setFunctionName),\n/* harmony export */ __spread: () => (/* binding */ __spread),\n/* harmony export */ __spreadArray: () => (/* binding */ __spreadArray),\n/* harmony export */ __spreadArrays: () => (/* binding */ __spreadArrays),\n/* harmony export */ __values: () => (/* binding */ __values),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nfunction __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nfunction __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nfunction __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nfunction __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nfunction __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nfunction __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nfunction __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nfunction __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nfunction __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nfunction __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nfunction __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nfunction __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nfunction __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nfunction __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nfunction __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nfunction __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nfunction __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nfunction __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nfunction __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nfunction __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nfunction __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nfunction __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nfunction __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nfunction __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nfunction __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nfunction __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy90c2xpYi90c2xpYi5lczYubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVMsZ0JBQWdCLHNDQUFzQyxrQkFBa0I7QUFDakYsd0JBQXdCO0FBQ3hCO0FBQ0E7O0FBRU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTs7QUFFTztBQUNQO0FBQ0EsK0NBQStDLE9BQU87QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxjQUFjO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU87QUFDUDtBQUNBO0FBQ0EsMkNBQTJDLFFBQVE7QUFDbkQ7QUFDQTs7QUFFTztBQUNQLGtDQUFrQztBQUNsQzs7QUFFTztBQUNQLHVCQUF1Qix1RkFBdUY7QUFDOUc7QUFDQTtBQUNBLHlHQUF5RztBQUN6RztBQUNBLHNDQUFzQyxRQUFRO0FBQzlDO0FBQ0EsZ0VBQWdFO0FBQ2hFO0FBQ0EsOENBQThDLHlGQUF5RjtBQUN2SSw4REFBOEQsMkNBQTJDO0FBQ3pHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0Esa0JBQWtCLHlCQUF5QjtBQUMzQztBQUNBO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7O0FBRU87QUFDUDtBQUNBLDRDQUE0Qyx5RUFBeUU7QUFDckg7O0FBRU87QUFDUDtBQUNBOztBQUVPO0FBQ1AsMEJBQTBCLCtEQUErRCxpQkFBaUI7QUFDMUc7QUFDQSxrQ0FBa0MsTUFBTSwrQkFBK0IsWUFBWTtB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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUZBQXVGLFNBQVMsZ0JBQWdCO0FBQ2hIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUEsaUVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy90c2xpYi90c2xpYi5lczYubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxuXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cblxudmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7XG4gIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XG4gIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG59XG5cbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcbiAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcbiAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0O1xuICB9XG4gIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19yZXN0KHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcbiAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICB0W3BdID0gc1twXTtcbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICB9XG4gIHJldHVybiB0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19wYXJhbShwYXJhbUluZGV4LCBkZWNvcmF0b3IpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2VzRGVjb3JhdGUoY3RvciwgZGVzY3JpcHRvckluLCBkZWNvcmF0b3JzLCBjb250ZXh0SW4sIGluaXRpYWxpemVycywgZXh0cmFJbml0aWFsaXplcnMpIHtcbiAgZnVuY3Rpb24gYWNjZXB0KGYpIHsgaWYgKGYgIT09IHZvaWQgMCAmJiB0eXBlb2YgZiAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRnVuY3Rpb24gZXhwZWN0ZWRcIik7IHJldHVybiBmOyB9XG4gIHZhciBraW5kID0gY29udGV4dEluLmtpbmQsIGtleSA9IGtpbmQgPT09IFwiZ2V0dGVyXCIgPyBcImdldFwiIDoga2luZCA9PT0gXCJzZXR0ZXJcIiA/IFwic2V0XCIgOiBcInZhbHVlXCI7XG4gIHZhciB0YXJnZXQgPSAhZGVzY3JpcHRvckluICYmIGN0b3IgPyBjb250ZXh0SW5bXCJzdGF0aWNcIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsO1xuICB2YXIgZGVzY3JpcHRvciA9IGRlc2NyaXB0b3JJbiB8fCAodGFyZ2V0ID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGNvbnRleHRJbi5uYW1lKSA6IHt9KTtcbiAgdmFyIF8sIGRvbmUgPSBmYWxzZTtcbiAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciBjb250ZXh0ID0ge307XG4gICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbikgY29udGV4dFtwXSA9IHAgPT09IFwiYWNjZXNzXCIgPyB7fSA6IGNvbnRleHRJbltwXTtcbiAgICAgIGZvciAodmFyIHAgaW4gY29udGV4dEluLmFjY2VzcykgY29udGV4dC5hY2Nlc3NbcF0gPSBjb250ZXh0SW4uYWNjZXNzW3BdO1xuICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplciA9IGZ1bmN0aW9uIChmKSB7IGlmIChkb25lKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGFkZCBpbml0aWFsaXplcnMgYWZ0ZXIgZGVjb3JhdGlvbiBoYXMgY29tcGxldGVkXCIpOyBleHRyYUluaXRpYWxpemVycy5wdXNoKGFjY2VwdChmIHx8IG51bGwpKTsgfTtcbiAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gXCJhY2Nlc3NvclwiID8geyBnZXQ6IGRlc2NyaXB0b3IuZ2V0LCBzZXQ6IGRlc2NyaXB0b3Iuc2V0IH0gOiBkZXNjcmlwdG9yW2tleV0sIGNvbnRleHQpO1xuICAgICAgaWYgKGtpbmQgPT09IFwiYWNjZXNzb3JcIikge1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkgY29udGludWU7XG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCB0eXBlb2YgcmVzdWx0ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkXCIpO1xuICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87XG4gICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LnNldCkpIGRlc2NyaXB0b3Iuc2V0ID0gXztcbiAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuaW5pdCkpIGluaXRpYWxpemVycy51bnNoaWZ0KF8pO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoXyA9IGFjY2VwdChyZXN1bHQpKSB7XG4gICAgICAgICAgaWYgKGtpbmQgPT09IFwiZmllbGRcIikgaW5pdGlhbGl6ZXJzLnVuc2hpZnQoXyk7XG4gICAgICAgICAgZWxzZSBkZXNjcmlwdG9yW2tleV0gPSBfO1xuICAgICAgfVxuICB9XG4gIGlmICh0YXJnZXQpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGNvbnRleHRJbi5uYW1lLCBkZXNjcmlwdG9yKTtcbiAgZG9uZSA9IHRydWU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19ydW5Jbml0aWFsaXplcnModGhpc0FyZywgaW5pdGlhbGl6ZXJzLCB2YWx1ZSkge1xuICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbml0aWFsaXplcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhbHVlID0gdXNlVmFsdWUgPyBpbml0aWFsaXplcnNbaV0uY2FsbCh0aGlzQXJnLCB2YWx1ZSkgOiBpbml0aWFsaXplcnNbaV0uY2FsbCh0aGlzQXJnKTtcbiAgfVxuICByZXR1cm4gdXNlVmFsdWUgPyB2YWx1ZSA6IHZvaWQgMDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3Byb3BLZXkoeCkge1xuICByZXR1cm4gdHlwZW9mIHggPT09IFwic3ltYm9sXCIgPyB4IDogXCJcIi5jb25jYXQoeCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19zZXRGdW5jdGlvbk5hbWUoZiwgbmFtZSwgcHJlZml4KSB7XG4gIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikgbmFtZSA9IG5hbWUuZGVzY3JpcHRpb24gPyBcIltcIi5jb25jYXQobmFtZS5kZXNjcmlwdGlvbiwgXCJdXCIpIDogXCJcIjtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCBcIm5hbWVcIiwgeyBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiBwcmVmaXggPyBcIlwiLmNvbmNhdChwcmVmaXgsIFwiIFwiLCBuYW1lKSA6IG5hbWUgfSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSkge1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19nZW5lcmF0b3IodGhpc0FyZywgYm9keSkge1xuICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnID0gT2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yID09PSBcImZ1bmN0aW9uXCIgPyBJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKTtcbiAgcmV0dXJuIGcubmV4dCA9IHZlcmIoMCksIGdbXCJ0aHJvd1wiXSA9IHZlcmIoMSksIGdbXCJyZXR1cm5cIl0gPSB2ZXJiKDIpLCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XG4gIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgICB3aGlsZSAoZyAmJiAoZyA9IDAsIG9wWzBdICYmIChfID0gMCkpLCBfKSB0cnkge1xuICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XG4gICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xuICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxuICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gIH1cbn1cblxuZXhwb3J0IHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcbiAgaWYgKCFkZXNjIHx8IChcImdldFwiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHtcbiAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XG4gIH1cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gIG9bazJdID0gbVtrXTtcbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIG8pIHtcbiAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xuICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwO1xuICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcbiAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XG4gICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xuICAgICAgfVxuICB9O1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xuICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XG4gIGlmICghbSkgcmV0dXJuIG87XG4gIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xuICB0cnkge1xuICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XG4gIH1cbiAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XG4gIGZpbmFsbHkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcbiAgICAgIH1cbiAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxuICB9XG4gIHJldHVybiBhcjtcbn1cblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XG4gIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxuICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xuICByZXR1cm4gYXI7XG59XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkQXJyYXlzKCkge1xuICBmb3IgKHZhciBzID0gMCwgaSA9IDAsIGlsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGlsOyBpKyspIHMgKz0gYXJndW1lbnRzW2ldLmxlbmd0aDtcbiAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxuICAgICAgZm9yICh2YXIgYSA9IGFyZ3VtZW50c1tpXSwgaiA9IDAsIGpsID0gYS5sZW5ndGg7IGogPCBqbDsgaisrLCBrKyspXG4gICAgICAgICAgcltrXSA9IGFbal07XG4gIHJldHVybiByO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWRBcnJheSh0bywgZnJvbSwgcGFjaykge1xuICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKGFyIHx8ICEoaSBpbiBmcm9tKSkge1xuICAgICAgICAgIGlmICghYXIpIGFyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSwgMCwgaSk7XG4gICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xuICAgICAgfVxuICB9XG4gIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XG4gIHJldHVybiB0aGlzIGluc3RhbmNlb2YgX19hd2FpdCA/ICh0aGlzLnYgPSB2LCB0aGlzKSA6IG5ldyBfX2F3YWl0KHYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0dlbmVyYXRvcih0aGlzQXJnLCBfYXJndW1lbnRzLCBnZW5lcmF0b3IpIHtcbiAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcbiAgcmV0dXJuIGkgPSBPYmplY3QuY3JlYXRlKCh0eXBlb2YgQXN5bmNJdGVyYXRvciA9PT0gXCJmdW5jdGlvblwiID8gQXN5bmNJdGVyYXRvciA6IE9iamVjdCkucHJvdG90eXBlKSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiLCBhd2FpdFJldHVybiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcbiAgZnVuY3Rpb24gYXdhaXRSZXR1cm4oZikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh2KS50aGVuKGYsIHJlamVjdCk7IH07IH1cbiAgZnVuY3Rpb24gdmVyYihuLCBmKSB7IGlmIChnW25dKSB7IGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IGlmIChmKSBpW25dID0gZihpW25dKTsgfSB9XG4gIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cbiAgZnVuY3Rpb24gc3RlcChyKSB7IHIudmFsdWUgaW5zdGFuY2VvZiBfX2F3YWl0ID8gUHJvbWlzZS5yZXNvbHZlKHIudmFsdWUudikudGhlbihmdWxmaWxsLCByZWplY3QpIDogc2V0dGxlKHFbMF1bMl0sIHIpOyB9XG4gIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHsgcmVzdW1lKFwibmV4dFwiLCB2YWx1ZSk7IH1cbiAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxuICBmdW5jdGlvbiBzZXR0bGUoZiwgdikgeyBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jRGVsZWdhdG9yKG8pIHtcbiAgdmFyIGksIHA7XG4gIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XG4gIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpW25dID0gb1tuXSA/IGZ1bmN0aW9uICh2KSB7IHJldHVybiAocCA9ICFwKSA/IHsgdmFsdWU6IF9fYXdhaXQob1tuXSh2KSksIGRvbmU6IGZhbHNlIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcbiAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgdmFyIG0gPSBvW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSwgaTtcbiAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xuICBmdW5jdGlvbiB2ZXJiKG4pIHsgaVtuXSA9IG9bbl0gJiYgZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsgdiA9IG9bbl0odiksIHNldHRsZShyZXNvbHZlLCByZWplY3QsIHYuZG9uZSwgdi52YWx1ZSk7IH0pOyB9OyB9XG4gIGZ1bmN0aW9uIHNldHRsZShyZXNvbHZlLCByZWplY3QsIGQsIHYpIHsgUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZnVuY3Rpb24odikgeyByZXNvbHZlKHsgdmFsdWU6IHYsIGRvbmU6IGQgfSk7IH0sIHJlamVjdCk7IH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fbWFrZVRlbXBsYXRlT2JqZWN0KGNvb2tlZCwgcmF3KSB7XG4gIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XG4gIHJldHVybiBjb29rZWQ7XG59O1xuXG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBcImRlZmF1bHRcIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTtcbn0pIDogZnVuY3Rpb24obywgdikge1xuICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59O1xuXG52YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHtcbiAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uIChvKSB7XG4gICAgdmFyIGFyID0gW107XG4gICAgZm9yICh2YXIgayBpbiBvKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sIGspKSBhclthci5sZW5ndGhdID0gaztcbiAgICByZXR1cm4gYXI7XG4gIH07XG4gIHJldHVybiBvd25LZXlzKG8pO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcbiAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgdmFyIHJlc3VsdCA9IHt9O1xuICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09IFwiZGVmYXVsdFwiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pO1xuICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xuICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHtcbiAgaWYgKGtpbmQgPT09IFwiYVwiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO1xuICBpZiAodHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgcmV0dXJuIGtpbmQgPT09IFwibVwiID8gZiA6IGtpbmQgPT09IFwiYVwiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fY2xhc3NQcml2YXRlRmllbGRTZXQocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikge1xuICBpZiAoa2luZCA9PT0gXCJtXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGVcIik7XG4gIGlmIChraW5kID09PSBcImFcIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtcbiAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gXCJmdW5jdGlvblwiID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdFwiKTtcbiAgcmV0dXJuIChraW5kID09PSBcImFcIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oc3RhdGUsIHJlY2VpdmVyKSB7XG4gIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gXCJmdW5jdGlvblwiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0XCIpO1xuICByZXR1cm4gdHlwZW9mIHN0YXRlID09PSBcImZ1bmN0aW9uXCIgPyByZWNlaXZlciA9PT0gc3RhdGUgOiBzdGF0ZS5oYXMocmVjZWl2ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX19hZGREaXNwb3NhYmxlUmVzb3VyY2UoZW52LCB2YWx1ZSwgYXN5bmMpIHtcbiAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDApIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiB2YWx1ZSAhPT0gXCJmdW5jdGlvblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0IGV4cGVjdGVkLlwiKTtcbiAgICB2YXIgZGlzcG9zZSwgaW5uZXI7XG4gICAgaWYgKGFzeW5jKSB7XG4gICAgICBpZiAoIVN5bWJvbC5hc3luY0Rpc3Bvc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNEaXNwb3NlIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuYXN5bmNEaXNwb3NlXTtcbiAgICB9XG4gICAgaWYgKGRpc3Bvc2UgPT09IHZvaWQgMCkge1xuICAgICAgaWYgKCFTeW1ib2wuZGlzcG9zZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5kaXNwb3NlIGlzIG5vdCBkZWZpbmVkLlwiKTtcbiAgICAgIGRpc3Bvc2UgPSB2YWx1ZVtTeW1ib2wuZGlzcG9zZV07XG4gICAgICBpZiAoYXN5bmMpIGlubmVyID0gZGlzcG9zZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBkaXNwb3NlICE9PSBcImZ1bmN0aW9uXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3Qgbm90IGRpc3Bvc2FibGUuXCIpO1xuICAgIGlmIChpbm5lcikgZGlzcG9zZSA9IGZ1bmN0aW9uKCkgeyB0cnkgeyBpbm5lci5jYWxsKHRoaXMpOyB9IGNhdGNoIChlKSB7IHJldHVybiBQcm9taXNlLnJlamVjdChlKTsgfSB9O1xuICAgIGVudi5zdGFjay5wdXNoKHsgdmFsdWU6IHZhbHVlLCBkaXNwb3NlOiBkaXNwb3NlLCBhc3luYzogYXN5bmMgfSk7XG4gIH1cbiAgZWxzZSBpZiAoYXN5bmMpIHtcbiAgICBlbnYuc3RhY2sucHVzaCh7IGFzeW5jOiB0cnVlIH0pO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxudmFyIF9TdXBwcmVzc2VkRXJyb3IgPSB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcbiAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gX19kaXNwb3NlUmVzb3VyY2VzKGVudikge1xuICBmdW5jdGlvbiBmYWlsKGUpIHtcbiAgICBlbnYuZXJyb3IgPSBlbnYuaGFzRXJyb3IgPyBuZXcgX1N1cHByZXNzZWRFcnJvcihlLCBlbnYuZXJyb3IsIFwiQW4gZXJyb3Igd2FzIHN1cHByZXNzZWQgZHVyaW5nIGRpc3Bvc2FsLlwiKSA6IGU7XG4gICAgZW52Lmhhc0Vycm9yID0gdHJ1ZTtcbiAgfVxuICB2YXIgciwgcyA9IDA7XG4gIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgd2hpbGUgKHIgPSBlbnYuc3RhY2sucG9wKCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghci5hc3luYyAmJiBzID09PSAxKSByZXR1cm4gcyA9IDAsIGVudi5zdGFjay5wdXNoKHIpLCBQcm9taXNlLnJlc29sdmUoKS50aGVuKG5leHQpO1xuICAgICAgICBpZiAoci5kaXNwb3NlKSB7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IHIuZGlzcG9zZS5jYWxsKHIudmFsdWUpO1xuICAgICAgICAgIGlmIChyLmFzeW5jKSByZXR1cm4gcyB8PSAyLCBQcm9taXNlLnJlc29sdmUocmVzdWx0KS50aGVuKG5leHQsIGZ1bmN0aW9uKGUpIHsgZmFpbChlKTsgcmV0dXJuIG5leHQoKTsgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBzIHw9IDE7XG4gICAgICB9XG4gICAgICBjYXRjaCAoZSkge1xuICAgICAgICBmYWlsKGUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocyA9PT0gMSkgcmV0dXJuIGVudi5oYXNFcnJvciA/IFByb21pc2UucmVqZWN0KGVudi5lcnJvcikgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBpZiAoZW52Lmhhc0Vycm9yKSB0aHJvdyBlbnYuZXJyb3I7XG4gIH1cbiAgcmV0dXJuIG5leHQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uKHBhdGgsIHByZXNlcnZlSnN4KSB7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gXCJzdHJpbmdcIiAmJiAvXlxcLlxcLj9cXC8vLnRlc3QocGF0aCkpIHtcbiAgICAgIHJldHVybiBwYXRoLnJlcGxhY2UoL1xcLih0c3gpJHwoKD86XFwuZCk/KSgoPzpcXC5bXi4vXSs/KT8pXFwuKFtjbV0/KXRzJC9pLCBmdW5jdGlvbiAobSwgdHN4LCBkLCBleHQsIGNtKSB7XG4gICAgICAgICAgcmV0dXJuIHRzeCA/IHByZXNlcnZlSnN4ID8gXCIuanN4XCIgOiBcIi5qc1wiIDogZCAmJiAoIWV4dCB8fCAhY20pID8gbSA6IChkICsgZXh0ICsgXCIuXCIgKyBjbS50b0xvd2VyQ2FzZSgpICsgXCJqc1wiKTtcbiAgICAgIH0pO1xuICB9XG4gIHJldHVybiBwYXRoO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIF9fZXh0ZW5kcyxcbiAgX19hc3NpZ24sXG4gIF9fcmVzdCxcbiAgX19kZWNvcmF0ZSxcbiAgX19wYXJhbSxcbiAgX19lc0RlY29yYXRlLFxuICBfX3J1bkluaXRpYWxpemVycyxcbiAgX19wcm9wS2V5LFxuICBfX3NldEZ1bmN0aW9uTmFtZSxcbiAgX19tZXRhZGF0YSxcbiAgX19hd2FpdGVyLFxuICBfX2dlbmVyYXRvcixcbiAgX19jcmVhdGVCaW5kaW5nLFxuICBfX2V4cG9ydFN0YXIsXG4gIF9fdmFsdWVzLFxuICBfX3JlYWQsXG4gIF9fc3ByZWFkLFxuICBfX3NwcmVhZEFycmF5cyxcbiAgX19zcHJlYWRBcnJheSxcbiAgX19hd2FpdCxcbiAgX19hc3luY0dlbmVyYXRvcixcbiAgX19hc3luY0RlbGVnYXRvcixcbiAgX19hc3luY1ZhbHVlcyxcbiAgX19tYWtlVGVtcGxhdGVPYmplY3QsXG4gIF9faW1wb3J0U3RhcixcbiAgX19pbXBvcnREZWZhdWx0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0LFxuICBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4sXG4gIF9fYWRkRGlzcG9zYWJsZVJlc291cmNlLFxuICBfX2Rpc3Bvc2VSZXNvdXJjZXMsXG4gIF9fcmV3cml0ZVJlbGF0aXZlSW1wb3J0RXh0ZW5zaW9uLFxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/assignRef.js":
/*!****************************************************************!*\
!*** ./node_modules/use-callback-ref/dist/es2015/assignRef.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ assignRef: () => (/* binding */ assignRef)\n/* harmony export */ });\n/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nfunction assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2UtY2FsbGJhY2stcmVmL2Rpc3QvZXMyMDE1L2Fzc2lnblJlZi5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy91c2UtY2FsbGJhY2stcmVmL2Rpc3QvZXMyMDE1L2Fzc2lnblJlZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFzc2lnbnMgYSB2YWx1ZSBmb3IgYSBnaXZlbiByZWYsIG5vIG1hdHRlciBvZiB0aGUgcmVmIGZvcm1hdFxuICogQHBhcmFtIHtSZWZPYmplY3R9IHJlZiAtIGEgY2FsbGJhY2sgZnVuY3Rpb24gb3IgcmVmIG9iamVjdFxuICogQHBhcmFtIHZhbHVlIC0gYSBuZXcgdmFsdWVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90aGVLYXNoZXkvdXNlLWNhbGxiYWNrLXJlZiNhc3NpZ25yZWZcbiAqIEBleGFtcGxlXG4gKiBjb25zdCByZWZPYmplY3QgPSB1c2VSZWYoKTtcbiAqIGNvbnN0IHJlZkZuID0gKHJlZikgPT4gey4uLi59XG4gKlxuICogYXNzaWduUmVmKHJlZk9iamVjdCwgXCJyZWZWYWx1ZVwiKTtcbiAqIGFzc2lnblJlZihyZWZGbiwgXCJyZWZWYWx1ZVwiKTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnblJlZihyZWYsIHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiByZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmVmKHZhbHVlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAocmVmKSB7XG4gICAgICAgIHJlZi5jdXJyZW50ID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiByZWY7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/assignRef.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js":
/*!******************************************************************!*\
!*** ./node_modules/use-callback-ref/dist/es2015/useMergeRef.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useMergeRefs: () => (/* binding */ useMergeRefs)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assignRef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./assignRef */ \"(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/assignRef.js\");\n/* harmony import */ var _useRef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./useRef */ \"(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useRef.js\");\n\n\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return <div ref={domRef}>...</div>\n * }\n */\nfunction useMergeRefs(refs, defaultValue) {\n var callbackRef = (0,_useRef__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return (0,_assignRef__WEBPACK_IMPORTED_MODULE_2__.assignRef)(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n (0,_assignRef__WEBPACK_IMPORTED_MODULE_2__.assignRef)(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n (0,_assignRef__WEBPACK_IMPORTED_MODULE_2__.assignRef)(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2UtY2FsbGJhY2stcmVmL2Rpc3QvZXMyMDE1L3VzZU1lcmdlUmVmLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQStCO0FBQ1M7QUFDRTtBQUMxQyxnRUFBZ0Usa0RBQXFCLEdBQUcsNENBQWU7QUFDdkc7QUFDQTtBQUNBO0FBQ0EsV0FBVyxlQUFlO0FBQzFCLGFBQWEsa0JBQWtCLDhDQUE4QztBQUM3RTtBQUNBLFNBQVMsaUJBQWlCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlEO0FBQ2pELHNCQUFzQixPQUFPO0FBQzdCO0FBQ0E7QUFDTztBQUNQLHNCQUFzQix1REFBYztBQUNwQyw2Q0FBNkMsT0FBTyxxREFBUyxrQkFBa0I7QUFDL0UsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixxREFBUztBQUM3QjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0Esb0JBQW9CLHFEQUFTO0FBQzdCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvdXNlLWNhbGxiYWNrLXJlZi9kaXN0L2VzMjAxNS91c2VNZXJnZVJlZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBhc3NpZ25SZWYgfSBmcm9tICcuL2Fzc2lnblJlZic7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gJy4vdXNlUmVmJztcbnZhciB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyBSZWFjdC51c2VMYXlvdXRFZmZlY3QgOiBSZWFjdC51c2VFZmZlY3Q7XG52YXIgY3VycmVudFZhbHVlcyA9IG5ldyBXZWFrTWFwKCk7XG4vKipcbiAqIE1lcmdlcyB0d28gb3IgbW9yZSByZWZzIHRvZ2V0aGVyIHByb3ZpZGluZyBhIHNpbmdsZSBpbnRlcmZhY2UgdG8gc2V0IHRoZWlyIHZhbHVlXG4gKiBAcGFyYW0ge1JlZk9iamVjdHxSZWZ9IHJlZnNcbiAqIEByZXR1cm5zIHtNdXRhYmxlUmVmT2JqZWN0fSAtIGEgbmV3IHJlZiwgd2hpY2ggdHJhbnNsYXRlcyBhbGwgY2hhbmdlcyB0byB7cmVmc31cbiAqXG4gKiBAc2VlIHtAbGluayBtZXJnZVJlZnN9IGEgdmVyc2lvbiB3aXRob3V0IGJ1aXQtaW4gbWVtb2l6YXRpb25cbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3RoZUthc2hleS91c2UtY2FsbGJhY2stcmVmI3VzZW1lcmdlcmVmc1xuICogQGV4YW1wbGVcbiAqIGNvbnN0IENvbXBvbmVudCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAqICAgY29uc3Qgb3duUmVmID0gdXNlUmVmKCk7XG4gKiAgIGNvbnN0IGRvbVJlZiA9IHVzZU1lcmdlUmVmcyhbcmVmLCBvd25SZWZdKTsgLy8g8J+RiCBtZXJnZSB0b2dldGhlclxuICogICByZXR1cm4gPGRpdiByZWY9e2RvbVJlZn0+Li4uPC9kaXY+XG4gKiB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VNZXJnZVJlZnMocmVmcywgZGVmYXVsdFZhbHVlKSB7XG4gICAgdmFyIGNhbGxiYWNrUmVmID0gdXNlQ2FsbGJhY2tSZWYoZGVmYXVsdFZhbHVlIHx8IG51bGwsIGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuICAgICAgICByZXR1cm4gcmVmcy5mb3JFYWNoKGZ1bmN0aW9uIChyZWYpIHsgcmV0dXJuIGFzc2lnblJlZihyZWYsIG5ld1ZhbHVlKTsgfSk7XG4gICAgfSk7XG4gICAgLy8gaGFuZGxlIHJlZnMgY2hhbmdlcyAtIGFkZGVkIG9yIHJlbW92ZWRcbiAgICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG9sZFZhbHVlID0gY3VycmVudFZhbHVlcy5nZXQoY2FsbGJhY2tSZWYpO1xuICAgICAgICBpZiAob2xkVmFsdWUpIHtcbiAgICAgICAgICAgIHZhciBwcmV2UmVmc18xID0gbmV3IFNldChvbGRWYWx1ZSk7XG4gICAgICAgICAgICB2YXIgbmV4dFJlZnNfMSA9IG5ldyBTZXQocmVmcyk7XG4gICAgICAgICAgICB2YXIgY3VycmVudF8xID0gY2FsbGJhY2tSZWYuY3VycmVudDtcbiAgICAgICAgICAgIHByZXZSZWZzXzEuZm9yRWFjaChmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFuZXh0UmVmc18xLmhhcyhyZWYpKSB7XG4gICAgICAgICAgICAgICAgICAgIGFzc2lnblJlZihyZWYsIG51bGwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbmV4dFJlZnNfMS5mb3JFYWNoKGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXByZXZSZWZzXzEuaGFzKHJlZikpIHtcbiAgICAgICAgICAgICAgICAgICAgYXNzaWduUmVmKHJlZiwgY3VycmVudF8xKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50VmFsdWVzLnNldChjYWxsYmFja1JlZiwgcmVmcyk7XG4gICAgfSwgW3JlZnNdKTtcbiAgICByZXR1cm4gY2FsbGJhY2tSZWY7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useRef.js":
/*!*************************************************************!*\
!*** ./node_modules/use-callback-ref/dist/es2015/useRef.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCallbackRef: () => (/* binding */ useCallbackRef)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nfunction useCallbackRef(initialValue, callback) {\n var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2UtY2FsbGJhY2stcmVmL2Rpc3QvZXMyMDE1L3VzZVJlZi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDTztBQUNQLGNBQWMsK0NBQVEsZUFBZTtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1QsS0FBSyxJQUFJO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3VzZS1jYWxsYmFjay1yZWYvZGlzdC9lczIwMTUvdXNlUmVmLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBjcmVhdGVzIGEgTXV0YWJsZVJlZiB3aXRoIHJlZiBjaGFuZ2UgY2FsbGJhY2tcbiAqIEBwYXJhbSBpbml0aWFsVmFsdWUgLSBpbml0aWFsIHJlZiB2YWx1ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBhIGNhbGxiYWNrIHRvIHJ1biB3aGVuIHZhbHVlIGNoYW5nZXNcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcmVmID0gdXNlQ2FsbGJhY2tSZWYoMCwgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4gY29uc29sZS5sb2cob2xkVmFsdWUsICctPicsIG5ld1ZhbHVlKTtcbiAqIHJlZi5jdXJyZW50ID0gMTtcbiAqIC8vIHByaW50cyAwIC0+IDFcbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9ob29rcy1yZWZlcmVuY2UuaHRtbCN1c2VyZWZcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3RoZUthc2hleS91c2UtY2FsbGJhY2stcmVmI3VzZWNhbGxiYWNrcmVmLS0tdG8tcmVwbGFjZS1yZWFjdHVzZXJlZlxuICogQHJldHVybnMge011dGFibGVSZWZPYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDYWxsYmFja1JlZihpbml0aWFsVmFsdWUsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHJlZiA9IHVzZVN0YXRlKGZ1bmN0aW9uICgpIHsgcmV0dXJuICh7XG4gICAgICAgIC8vIHZhbHVlXG4gICAgICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXG4gICAgICAgIC8vIGxhc3QgY2FsbGJhY2tcbiAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrLFxuICAgICAgICAvLyBcIm1lbW9pemVkXCIgcHVibGljIGludGVyZmFjZVxuICAgICAgICBmYWNhZGU6IHtcbiAgICAgICAgICAgIGdldCBjdXJyZW50KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZWYudmFsdWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IGN1cnJlbnQodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB2YXIgbGFzdCA9IHJlZi52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAobGFzdCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHJlZi5jYWxsYmFjayh2YWx1ZSwgbGFzdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9KTsgfSlbMF07XG4gICAgLy8gdXBkYXRlIGNhbGxiYWNrXG4gICAgcmVmLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgcmV0dXJuIHJlZi5mYWNhZGU7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-callback-ref/dist/es2015/useRef.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/exports.js":
/*!*********************************************************!*\
!*** ./node_modules/use-sidecar/dist/es2015/exports.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ exportSidecar: () => (/* binding */ exportSidecar)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__rest)(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Target, (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__assign)({}, rest));\n};\nSideCar.isSideCarExport = true;\nfunction exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2Utc2lkZWNhci9kaXN0L2VzMjAxNS9leHBvcnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBeUM7QUFDVjtBQUMvQjtBQUNBLHFDQUFxQyw2Q0FBTTtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsZ0RBQW1CLFNBQVMsK0NBQVEsR0FBRztBQUNsRDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL3VzZS1zaWRlY2FyL2Rpc3QvZXMyMDE1L2V4cG9ydHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgX19hc3NpZ24sIF9fcmVzdCB9IGZyb20gXCJ0c2xpYlwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xudmFyIFNpZGVDYXIgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgc2lkZUNhciA9IF9hLnNpZGVDYXIsIHJlc3QgPSBfX3Jlc3QoX2EsIFtcInNpZGVDYXJcIl0pO1xuICAgIGlmICghc2lkZUNhcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NpZGVjYXI6IHBsZWFzZSBwcm92aWRlIGBzaWRlQ2FyYCBwcm9wZXJ0eSB0byBpbXBvcnQgdGhlIHJpZ2h0IGNhcicpO1xuICAgIH1cbiAgICB2YXIgVGFyZ2V0ID0gc2lkZUNhci5yZWFkKCk7XG4gICAgaWYgKCFUYXJnZXQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaWRlY2FyIG1lZGl1bSBub3QgZm91bmQnKTtcbiAgICB9XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFyZ2V0LCBfX2Fzc2lnbih7fSwgcmVzdCkpO1xufTtcblNpZGVDYXIuaXNTaWRlQ2FyRXhwb3J0ID0gdHJ1ZTtcbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRTaWRlY2FyKG1lZGl1bSwgZXhwb3J0ZWQpIHtcbiAgICBtZWRpdW0udXNlTWVkaXVtKGV4cG9ydGVkKTtcbiAgICByZXR1cm4gU2lkZUNhcjtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/exports.js\n"));
/***/ }),
/***/ "(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/medium.js":
/*!********************************************************!*\
!*** ./node_modules/use-sidecar/dist/es2015/medium.js ***!
\********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createMedium: () => (/* binding */ createMedium),\n/* harmony export */ createSidecarMedium: () => (/* binding */ createSidecarMedium)\n/* harmony export */ });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"(app-pages-browser)/./node_modules/tslib/tslib.es6.mjs\");\n\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nfunction createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__assign)({ async: true, ssr: false }, options);\n return medium;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy91c2Utc2lkZWNhci9kaXN0L2VzMjAxNS9tZWRpdW0uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0Qsb0JBQW9CO0FBQzFFO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsZUFBZTtBQUNwRCxzQ0FBc0MsZ0JBQWdCO0FBQ3REO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ087QUFDUCxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ087QUFDUCw4QkFBOEI7QUFDOUI7QUFDQSxxQkFBcUIsK0NBQVEsR0FBRyx5QkFBeUI7QUFDekQ7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvdXNlLXNpZGVjYXIvZGlzdC9lczIwMTUvbWVkaXVtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fYXNzaWduIH0gZnJvbSBcInRzbGliXCI7XG5mdW5jdGlvbiBJdG9JKGEpIHtcbiAgICByZXR1cm4gYTtcbn1cbmZ1bmN0aW9uIGlubmVyQ3JlYXRlTWVkaXVtKGRlZmF1bHRzLCBtaWRkbGV3YXJlKSB7XG4gICAgaWYgKG1pZGRsZXdhcmUgPT09IHZvaWQgMCkgeyBtaWRkbGV3YXJlID0gSXRvSTsgfVxuICAgIHZhciBidWZmZXIgPSBbXTtcbiAgICB2YXIgYXNzaWduZWQgPSBmYWxzZTtcbiAgICB2YXIgbWVkaXVtID0ge1xuICAgICAgICByZWFkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoYXNzaWduZWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NpZGVjYXI6IGNvdWxkIG5vdCBgcmVhZGAgZnJvbSBhbiBgYXNzaWduZWRgIG1lZGl1bS4gYHJlYWRgIGNvdWxkIGJlIHVzZWQgb25seSB3aXRoIGB1c2VNZWRpdW1gLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyW2J1ZmZlci5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0cztcbiAgICAgICAgfSxcbiAgICAgICAgdXNlTWVkaXVtOiBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgdmFyIGl0ZW0gPSBtaWRkbGV3YXJlKGRhdGEsIGFzc2lnbmVkKTtcbiAgICAgICAgICAgIGJ1ZmZlci5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBidWZmZXIgPSBidWZmZXIuZmlsdGVyKGZ1bmN0aW9uICh4KSB7IHJldHVybiB4ICE9PSBpdGVtOyB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIGFzc2lnblN5bmNNZWRpdW06IGZ1bmN0aW9uIChjYikge1xuICAgICAgICAgICAgYXNzaWduZWQgPSB0cnVlO1xuICAgICAgICAgICAgd2hpbGUgKGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2JzID0gYnVmZmVyO1xuICAgICAgICAgICAgICAgIGJ1ZmZlciA9IFtdO1xuICAgICAgICAgICAgICAgIGNicy5mb3JFYWNoKGNiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJ1ZmZlciA9IHtcbiAgICAgICAgICAgICAgICBwdXNoOiBmdW5jdGlvbiAoeCkgeyByZXR1cm4gY2IoeCk7IH0sXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmdW5jdGlvbiAoKSB7IHJldHVybiBidWZmZXI7IH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBhc3NpZ25NZWRpdW06IGZ1bmN0aW9uIChjYikge1xuICAgICAgICAgICAgYXNzaWduZWQgPSB0cnVlO1xuICAgICAgICAgICAgdmFyIHBlbmRpbmdRdWV1ZSA9IFtdO1xuICAgICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2JzID0gYnVmZmVyO1xuICAgICAgICAgICAgICAgIGJ1ZmZlciA9IFtdO1xuICAgICAgICAgICAgICAgIGNicy5mb3JFYWNoKGNiKTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nUXVldWUgPSBidWZmZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZXhlY3V0ZVF1ZXVlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBjYnMgPSBwZW5kaW5nUXVldWU7XG4gICAgICAgICAgICAgICAgcGVuZGluZ1F1ZXVlID0gW107XG4gICAgICAgICAgICAgICAgY2JzLmZvckVhY2goY2IpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBjeWNsZSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZXhlY3V0ZVF1ZXVlKTsgfTtcbiAgICAgICAgICAgIGN5Y2xlKCk7XG4gICAgICAgICAgICBidWZmZXIgPSB7XG4gICAgICAgICAgICAgICAgcHVzaDogZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1F1ZXVlLnB1c2goeCk7XG4gICAgICAgICAgICAgICAgICAgIGN5Y2xlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZ1bmN0aW9uIChmaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1F1ZXVlID0gcGVuZGluZ1F1ZXVlLmZpbHRlcihmaWx0ZXIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnVmZmVyO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIG1lZGl1bTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZWRpdW0oZGVmYXVsdHMsIG1pZGRsZXdhcmUpIHtcbiAgICBpZiAobWlkZGxld2FyZSA9PT0gdm9pZCAwKSB7IG1pZGRsZXdhcmUgPSBJdG9JOyB9XG4gICAgcmV0dXJuIGlubmVyQ3JlYXRlTWVkaXVtKGRlZmF1bHRzLCBtaWRkbGV3YXJlKTtcbn1cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2lkZWNhck1lZGl1bShvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICB2YXIgbWVkaXVtID0gaW5uZXJDcmVhdGVNZWRpdW0obnVsbCk7XG4gICAgbWVkaXVtLm9wdGlvbnMgPSBfX2Fzc2lnbih7IGFzeW5jOiB0cnVlLCBzc3I6IGZhbHNlIH0sIG9wdGlvbnMpO1xuICAgIHJldHVybiBtZWRpdW07XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/use-sidecar/dist/es2015/medium.js\n"));
/***/ })
},
/******/ __webpack_require__ => { // webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
/******/ __webpack_require__.O(0, ["main-app"], () => (__webpack_exec__("(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2Falma%2Fnextgen%2FNeah-mail%2Fapp%2Fcourrier%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!")));
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
/******/ }
]);