/* * 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
\\n [Original message content could not be loaded]\\n\\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
| From: | \\n'.concat(fromStr, ' | \\n
| Date: | \\n').concat(dateStr, ' | \\n
| Subject: | \\n').concat(origSubject || '', ' | \\n
| To: | \\n').concat(toStr, \" | \\n
| Cc: | \\n'.concat(ccStr, \" | \\n
Error loading email content
');\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, '&').replace(//g, '>').replace(/\\n/g, '{\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('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(/';\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 = '\\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\");\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