wcz-test 6.13.1 → 6.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/ApprovalStatus-C9HPyMiS.js.map +1 -1
  2. package/dist/DialogsHooks-Bi8dZoyu.js +338 -0
  3. package/dist/DialogsHooks-Bi8dZoyu.js.map +1 -0
  4. package/dist/{FileHooks-BbjesS5D.js → FileHooks-hWKTwLCr.js} +2 -2
  5. package/dist/FileHooks-hWKTwLCr.js.map +1 -0
  6. package/dist/FileMeta-G1oT3mYK.js.map +1 -1
  7. package/dist/{RouterListItemButton-Cx7rXEfm.js → RouterListItemButton-CHS7rofI.js} +4 -4
  8. package/dist/RouterListItemButton-CHS7rofI.js.map +1 -0
  9. package/dist/auth-client-B6cIXYDV.js +1417 -0
  10. package/dist/auth-client-B6cIXYDV.js.map +1 -0
  11. package/dist/client.d.ts +6 -0
  12. package/dist/client.js +7 -3
  13. package/dist/client.js.map +1 -1
  14. package/dist/components.js +66 -67
  15. package/dist/components.js.map +1 -1
  16. package/dist/env-CoxTjaDr.js.map +1 -1
  17. package/dist/error-BhAKg8LX-X0sdNXNa.js +195 -0
  18. package/dist/error-BhAKg8LX-X0sdNXNa.js.map +1 -0
  19. package/dist/hooks.d.ts +6 -2
  20. package/dist/hooks.js +34 -32
  21. package/dist/hooks.js.map +1 -1
  22. package/dist/index.js +84 -85
  23. package/dist/index.js.map +1 -1
  24. package/dist/manifest.webmanifest +18 -18
  25. package/dist/models.d.ts +10 -10
  26. package/dist/models.js +4 -4
  27. package/dist/models.js.map +1 -1
  28. package/dist/queries.d.ts +6 -6
  29. package/dist/queries.js +2 -2
  30. package/dist/queries.js.map +1 -1
  31. package/dist/server-mxQ3s5dx-CC81W42s.js +644 -0
  32. package/dist/server-mxQ3s5dx-CC81W42s.js.map +1 -0
  33. package/dist/server.d.ts +2 -0
  34. package/dist/server.js +8659 -5
  35. package/dist/server.js.map +1 -1
  36. package/dist/{utils-JYv9O0GI.js → utils-DKyKGba7.js} +2 -1
  37. package/dist/utils-DKyKGba7.js.map +1 -0
  38. package/dist/utils.d.ts +11 -0
  39. package/dist/utils.js +9 -0
  40. package/dist/utils.js.map +1 -0
  41. package/dist/vite.js.map +1 -1
  42. package/package.json +120 -116
  43. package/dist/DialogsHooks-BlUsVlfv.js +0 -39
  44. package/dist/DialogsHooks-BlUsVlfv.js.map +0 -1
  45. package/dist/FileHooks-BbjesS5D.js.map +0 -1
  46. package/dist/RouterListItemButton-Cx7rXEfm.js.map +0 -1
  47. package/dist/auth-client-o9U0_qmf.js +0 -79
  48. package/dist/auth-client-o9U0_qmf.js.map +0 -1
  49. package/dist/utils-JYv9O0GI.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-client-B6cIXYDV.js","sources":["../src/hooks/ThemeHook.ts","../node_modules/better-auth/dist/url-C4fqRUH1.mjs","../node_modules/better-auth/dist/parser-kwbb5q_C.mjs","../node_modules/nanostores/clean-stores/index.js","../node_modules/nanostores/atom/index.js","../node_modules/nanostores/lifecycle/index.js","../node_modules/nanostores/listen-keys/index.js","../node_modules/@better-fetch/fetch/dist/index.js","../node_modules/better-auth/dist/proxy-DZR0bcsP.mjs","../node_modules/better-auth/dist/client/react/index.mjs","../src/lib/auth/auth-client.ts"],"sourcesContent":["import { createTheme, darken, lighten } from \"@mui/material\";\nimport { grey } from \"@mui/material/colors\";\nimport { csCZ, enUS } from \"@mui/material/locale\";\nimport { csCZ as dataGridCsCz, enUS as dataGridEnUs } from \"@mui/x-data-grid/locales\";\nimport { csCZ as datePickersCsCz, enUS as datePickersEnUs } from \"@mui/x-date-pickers/locales\";\nimport { useTranslation } from \"react-i18next\";\nimport type { CssVarsThemeOptions } from \"@mui/material\";\n\nexport const WISTRON_PRIMARY_COLOR = \"#00506E\";\nexport const WISTRON_SECONDARY_COLOR = \"#64DC00\";\n\nconst LOCALE_MAP = {\n cs: [dataGridCsCz, datePickersCsCz, csCZ],\n en: [dataGridEnUs, datePickersEnUs, enUS],\n} as const;\n\nexport const useGetTheme = (theme?: Pick<CssVarsThemeOptions, \"colorSchemes\" | \"components\">) => {\n const { i18n } = useTranslation();\n\n return createTheme(\n {\n cssVariables: {\n colorSchemeSelector: \"data-mui-color-scheme\"\n },\n colorSchemes: {\n light: {\n palette: {\n primary: { main: WISTRON_PRIMARY_COLOR },\n secondary: { main: WISTRON_SECONDARY_COLOR },\n },\n },\n dark: {\n palette: {\n primary: { main: lighten(WISTRON_PRIMARY_COLOR, 0.5) },\n secondary: { main: darken(WISTRON_SECONDARY_COLOR, 0.5) },\n },\n },\n ...theme?.colorSchemes\n },\n components: {\n MuiCssBaseline: {\n styleOverrides: ({ palette }) => {\n return {\n body: {\n \"&::-webkit-scrollbar, & *::-webkit-scrollbar\": {\n width: \"0.7em\",\n height: \"0.7em\",\n },\n \"&::-webkit-scrollbar-track, & *::-webkit-scrollbar-track\": {\n backgroundColor:\n palette.mode === \"dark\" ? grey[900] : grey[200],\n borderRadius: \"5px\",\n },\n \"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb\": {\n backgroundColor:\n palette.mode === \"dark\" ? grey[800] : grey[400],\n borderRadius: \"10px\",\n },\n \"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover\":\n {\n backgroundColor:\n palette.mode === \"dark\" ? grey[700] : grey[500],\n },\n \"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner\": {\n backgroundColor: \"transparent\",\n },\n },\n };\n },\n },\n ...theme?.components\n },\n },\n ...LOCALE_MAP[i18n.language as keyof typeof LOCALE_MAP]\n );\n};\n","import { env } from \"@better-auth/core/env\";\nimport { BetterAuthError } from \"@better-auth/core/error\";\n\n//#region src/utils/url.ts\nfunction checkHasPath(url) {\n\ttry {\n\t\treturn (new URL(url).pathname.replace(/\\/+$/, \"\") || \"/\") !== \"/\";\n\t} catch (error) {\n\t\tthrow new BetterAuthError(`Invalid base URL: ${url}. Please provide a valid base URL.`);\n\t}\n}\nfunction assertHasProtocol(url) {\n\ttry {\n\t\tconst parsedUrl = new URL(url);\n\t\tif (parsedUrl.protocol !== \"http:\" && parsedUrl.protocol !== \"https:\") throw new BetterAuthError(`Invalid base URL: ${url}. URL must include 'http://' or 'https://'`);\n\t} catch (error) {\n\t\tif (error instanceof BetterAuthError) throw error;\n\t\tthrow new BetterAuthError(`Invalid base URL: ${url}. Please provide a valid base URL.`, String(error));\n\t}\n}\nfunction withPath(url, path = \"/api/auth\") {\n\tassertHasProtocol(url);\n\tif (checkHasPath(url)) return url;\n\tconst trimmedUrl = url.replace(/\\/+$/, \"\");\n\tif (!path || path === \"/\") return trimmedUrl;\n\tpath = path.startsWith(\"/\") ? path : `/${path}`;\n\treturn `${trimmedUrl}${path}`;\n}\nfunction getBaseURL(url, path, request, loadEnv) {\n\tif (url) return withPath(url, path);\n\tif (loadEnv !== false) {\n\t\tconst fromEnv = env.BETTER_AUTH_URL || env.NEXT_PUBLIC_BETTER_AUTH_URL || env.PUBLIC_BETTER_AUTH_URL || env.NUXT_PUBLIC_BETTER_AUTH_URL || env.NUXT_PUBLIC_AUTH_URL || (env.BASE_URL !== \"/\" ? env.BASE_URL : void 0);\n\t\tif (fromEnv) return withPath(fromEnv, path);\n\t}\n\tconst fromRequest = request?.headers.get(\"x-forwarded-host\");\n\tconst fromRequestProto = request?.headers.get(\"x-forwarded-proto\");\n\tif (fromRequest && fromRequestProto) return withPath(`${fromRequestProto}://${fromRequest}`, path);\n\tif (request) {\n\t\tconst url$1 = getOrigin(request.url);\n\t\tif (!url$1) throw new BetterAuthError(\"Could not get origin from request. Please provide a valid base URL.\");\n\t\treturn withPath(url$1, path);\n\t}\n\tif (typeof window !== \"undefined\" && window.location) return withPath(window.location.origin, path);\n}\nfunction getOrigin(url) {\n\ttry {\n\t\tconst parsedUrl = new URL(url);\n\t\treturn parsedUrl.origin === \"null\" ? null : parsedUrl.origin;\n\t} catch (error) {\n\t\treturn null;\n\t}\n}\nfunction getProtocol(url) {\n\ttry {\n\t\treturn new URL(url).protocol;\n\t} catch (error) {\n\t\treturn null;\n\t}\n}\nfunction getHost(url) {\n\ttry {\n\t\treturn new URL(url).host;\n\t} catch (error) {\n\t\treturn null;\n\t}\n}\n\n//#endregion\nexport { getProtocol as i, getHost as n, getOrigin as r, getBaseURL as t };","//#region src/client/parser.ts\nconst PROTO_POLLUTION_PATTERNS = {\n\tproto: /\"(?:_|\\\\u0{2}5[Ff]){2}(?:p|\\\\u0{2}70)(?:r|\\\\u0{2}72)(?:o|\\\\u0{2}6[Ff])(?:t|\\\\u0{2}74)(?:o|\\\\u0{2}6[Ff])(?:_|\\\\u0{2}5[Ff]){2}\"\\s*:/,\n\tconstructor: /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/,\n\tprotoShort: /\"__proto__\"\\s*:/,\n\tconstructorShort: /\"constructor\"\\s*:/\n};\nconst JSON_SIGNATURE = /^\\s*[\"[{]|^\\s*-?\\d{1,16}(\\.\\d{1,17})?([Ee][+-]?\\d+)?\\s*$/;\nconst SPECIAL_VALUES = {\n\ttrue: true,\n\tfalse: false,\n\tnull: null,\n\tundefined: void 0,\n\tnan: NaN,\n\tinfinity: Number.POSITIVE_INFINITY,\n\t\"-infinity\": Number.NEGATIVE_INFINITY\n};\nconst ISO_DATE_REGEX = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d{1,7}))?(?:Z|([+-])(\\d{2}):(\\d{2}))$/;\nfunction isValidDate(date) {\n\treturn date instanceof Date && !isNaN(date.getTime());\n}\nfunction parseISODate(value) {\n\tconst match = ISO_DATE_REGEX.exec(value);\n\tif (!match) return null;\n\tconst [, year, month, day, hour, minute, second, ms, offsetSign, offsetHour, offsetMinute] = match;\n\tlet date = new Date(Date.UTC(parseInt(year, 10), parseInt(month, 10) - 1, parseInt(day, 10), parseInt(hour, 10), parseInt(minute, 10), parseInt(second, 10), ms ? parseInt(ms.padEnd(3, \"0\"), 10) : 0));\n\tif (offsetSign) {\n\t\tconst offset = (parseInt(offsetHour, 10) * 60 + parseInt(offsetMinute, 10)) * (offsetSign === \"+\" ? -1 : 1);\n\t\tdate.setUTCMinutes(date.getUTCMinutes() + offset);\n\t}\n\treturn isValidDate(date) ? date : null;\n}\nfunction betterJSONParse(value, options = {}) {\n\tconst { strict = false, warnings = false, reviver, parseDates = true } = options;\n\tif (typeof value !== \"string\") return value;\n\tconst trimmed = value.trim();\n\tif (trimmed.length > 0 && trimmed[0] === \"\\\"\" && trimmed.endsWith(\"\\\"\") && !trimmed.slice(1, -1).includes(\"\\\"\")) return trimmed.slice(1, -1);\n\tconst lowerValue = trimmed.toLowerCase();\n\tif (lowerValue.length <= 9 && lowerValue in SPECIAL_VALUES) return SPECIAL_VALUES[lowerValue];\n\tif (!JSON_SIGNATURE.test(trimmed)) {\n\t\tif (strict) throw new SyntaxError(\"[better-json] Invalid JSON\");\n\t\treturn value;\n\t}\n\tif (Object.entries(PROTO_POLLUTION_PATTERNS).some(([key, pattern]) => {\n\t\tconst matches = pattern.test(trimmed);\n\t\tif (matches && warnings) console.warn(`[better-json] Detected potential prototype pollution attempt using ${key} pattern`);\n\t\treturn matches;\n\t}) && strict) throw new Error(\"[better-json] Potential prototype pollution attempt detected\");\n\ttry {\n\t\tconst secureReviver = (key, value$1) => {\n\t\t\tif (key === \"__proto__\" || key === \"constructor\" && value$1 && typeof value$1 === \"object\" && \"prototype\" in value$1) {\n\t\t\t\tif (warnings) console.warn(`[better-json] Dropping \"${key}\" key to prevent prototype pollution`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (parseDates && typeof value$1 === \"string\") {\n\t\t\t\tconst date = parseISODate(value$1);\n\t\t\t\tif (date) return date;\n\t\t\t}\n\t\t\treturn reviver ? reviver(key, value$1) : value$1;\n\t\t};\n\t\treturn JSON.parse(trimmed, secureReviver);\n\t} catch (error) {\n\t\tif (strict) throw error;\n\t\treturn value;\n\t}\n}\nfunction parseJSON(value, options = { strict: true }) {\n\treturn betterJSONParse(value, options);\n}\nvar parser_default = parseJSON;\n\n//#endregion\nexport { parser_default as n, parseJSON as t };","import { cleanTasks } from '../task/index.js'\n\nexport let clean = Symbol('clean')\n\nexport let cleanStores = (...stores) => {\n if (process.env.NODE_ENV === 'production') {\n throw new Error(\n 'cleanStores() can be used only during development or tests'\n )\n }\n cleanTasks()\n for (let $store of stores) {\n if ($store) {\n if ($store.mocked) delete $store.mocked\n if ($store[clean]) $store[clean]()\n }\n }\n}\n","import { clean } from '../clean-stores/index.js'\n\nlet listenerQueue = []\nlet lqIndex = 0\nconst QUEUE_ITEMS_PER_LISTENER = 4\nexport let epoch = 0\n\n/* @__NO_SIDE_EFFECTS__ */\nexport const atom = initialValue => {\n let listeners = []\n let $atom = {\n get() {\n if (!$atom.lc) {\n $atom.listen(() => {})()\n }\n return $atom.value\n },\n lc: 0,\n listen(listener) {\n $atom.lc = listeners.push(listener)\n\n return () => {\n for (\n let i = lqIndex + QUEUE_ITEMS_PER_LISTENER;\n i < listenerQueue.length;\n\n ) {\n if (listenerQueue[i] === listener) {\n listenerQueue.splice(i, QUEUE_ITEMS_PER_LISTENER)\n } else {\n i += QUEUE_ITEMS_PER_LISTENER\n }\n }\n\n let index = listeners.indexOf(listener)\n if (~index) {\n listeners.splice(index, 1)\n if (!--$atom.lc) $atom.off()\n }\n }\n },\n notify(oldValue, changedKey) {\n epoch++\n let runListenerQueue = !listenerQueue.length\n for (let listener of listeners) {\n listenerQueue.push(listener, $atom.value, oldValue, changedKey)\n }\n\n if (runListenerQueue) {\n for (\n lqIndex = 0;\n lqIndex < listenerQueue.length;\n lqIndex += QUEUE_ITEMS_PER_LISTENER\n ) {\n listenerQueue[lqIndex](\n listenerQueue[lqIndex + 1],\n listenerQueue[lqIndex + 2],\n listenerQueue[lqIndex + 3]\n )\n }\n listenerQueue.length = 0\n }\n },\n /* It will be called on last listener unsubscribing.\n We will redefine it in onMount and onStop. */\n off() {},\n set(newValue) {\n let oldValue = $atom.value\n if (oldValue !== newValue) {\n $atom.value = newValue\n $atom.notify(oldValue)\n }\n },\n subscribe(listener) {\n let unbind = $atom.listen(listener)\n listener($atom.value)\n return unbind\n },\n value: initialValue\n }\n\n if (process.env.NODE_ENV !== 'production') {\n $atom[clean] = () => {\n listeners = []\n $atom.lc = 0\n $atom.off()\n }\n }\n\n return $atom\n}\n\nexport const readonlyType = store => store\n","import { clean } from '../clean-stores/index.js'\n\nconst START = 0\nconst STOP = 1\nconst SET = 2\nconst NOTIFY = 3\nconst MOUNT = 5\nconst UNMOUNT = 6\nconst REVERT_MUTATION = 10\n\nexport let on = (object, listener, eventKey, mutateStore) => {\n object.events = object.events || {}\n if (!object.events[eventKey + REVERT_MUTATION]) {\n object.events[eventKey + REVERT_MUTATION] = mutateStore(eventProps => {\n // eslint-disable-next-line no-sequences\n object.events[eventKey].reduceRight((event, l) => (l(event), event), {\n shared: {},\n ...eventProps\n })\n })\n }\n object.events[eventKey] = object.events[eventKey] || []\n object.events[eventKey].push(listener)\n return () => {\n let currentListeners = object.events[eventKey]\n let index = currentListeners.indexOf(listener)\n currentListeners.splice(index, 1)\n if (!currentListeners.length) {\n delete object.events[eventKey]\n object.events[eventKey + REVERT_MUTATION]()\n delete object.events[eventKey + REVERT_MUTATION]\n }\n }\n}\n\nexport let onStart = ($store, listener) =>\n on($store, listener, START, runListeners => {\n let originListen = $store.listen\n $store.listen = arg => {\n if (!$store.lc && !$store.starting) {\n $store.starting = true\n runListeners()\n delete $store.starting\n }\n return originListen(arg)\n }\n return () => {\n $store.listen = originListen\n }\n })\n\nexport let onStop = ($store, listener) =>\n on($store, listener, STOP, runListeners => {\n let originOff = $store.off\n $store.off = () => {\n runListeners()\n originOff()\n }\n return () => {\n $store.off = originOff\n }\n })\n\nexport let onSet = ($store, listener) =>\n on($store, listener, SET, runListeners => {\n let originSet = $store.set\n let originSetKey = $store.setKey\n if ($store.setKey) {\n $store.setKey = (changed, changedValue) => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({\n abort,\n changed,\n newValue: { ...$store.value, [changed]: changedValue }\n })\n if (!isAborted) return originSetKey(changed, changedValue)\n }\n }\n $store.set = newValue => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({ abort, newValue })\n if (!isAborted) return originSet(newValue)\n }\n return () => {\n $store.set = originSet\n $store.setKey = originSetKey\n }\n })\n\nexport let onNotify = ($store, listener) =>\n on($store, listener, NOTIFY, runListeners => {\n let originNotify = $store.notify\n $store.notify = (oldValue, changed) => {\n let isAborted\n let abort = () => {\n isAborted = true\n }\n\n runListeners({ abort, changed, oldValue })\n if (!isAborted) return originNotify(oldValue, changed)\n }\n return () => {\n $store.notify = originNotify\n }\n })\n\nexport let STORE_UNMOUNT_DELAY = 1000\n\nexport let onMount = ($store, initialize) => {\n let listener = payload => {\n let destroy = initialize(payload)\n if (destroy) $store.events[UNMOUNT].push(destroy)\n }\n return on($store, listener, MOUNT, runListeners => {\n let originListen = $store.listen\n $store.listen = (...args) => {\n if (!$store.lc && !$store.active) {\n $store.active = true\n runListeners()\n }\n return originListen(...args)\n }\n\n let originOff = $store.off\n $store.events[UNMOUNT] = []\n $store.off = () => {\n originOff()\n setTimeout(() => {\n if ($store.active && !$store.lc) {\n $store.active = false\n for (let destroy of $store.events[UNMOUNT]) destroy()\n $store.events[UNMOUNT] = []\n }\n }, STORE_UNMOUNT_DELAY)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n let originClean = $store[clean]\n $store[clean] = () => {\n for (let destroy of $store.events[UNMOUNT]) destroy()\n $store.events[UNMOUNT] = []\n $store.active = false\n originClean()\n }\n }\n\n return () => {\n $store.listen = originListen\n $store.off = originOff\n }\n })\n}\n","export function listenKeys($store, keys, listener) {\n let keysSet = new Set(keys).add(undefined)\n return $store.listen((value, oldValue, changed) => {\n if (keysSet.has(changed)) {\n listener(value, oldValue, changed)\n }\n })\n}\n\nexport function subscribeKeys($store, keys, listener) {\n let unbind = listenKeys($store, keys, listener)\n listener($store.value)\n return unbind\n}\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\n\n// src/error.ts\nvar BetterFetchError = class extends Error {\n constructor(status, statusText, error) {\n super(statusText || status.toString(), {\n cause: error\n });\n this.status = status;\n this.statusText = statusText;\n this.error = error;\n }\n};\n\n// src/plugins.ts\nvar initializePlugins = async (url, options) => {\n var _a, _b, _c, _d, _e, _f;\n let opts = options || {};\n const hooks = {\n onRequest: [options == null ? void 0 : options.onRequest],\n onResponse: [options == null ? void 0 : options.onResponse],\n onSuccess: [options == null ? void 0 : options.onSuccess],\n onError: [options == null ? void 0 : options.onError],\n onRetry: [options == null ? void 0 : options.onRetry]\n };\n if (!options || !(options == null ? void 0 : options.plugins)) {\n return {\n url,\n options: opts,\n hooks\n };\n }\n for (const plugin of (options == null ? void 0 : options.plugins) || []) {\n if (plugin.init) {\n const pluginRes = await ((_a = plugin.init) == null ? void 0 : _a.call(plugin, url.toString(), options));\n opts = pluginRes.options || opts;\n url = pluginRes.url;\n }\n hooks.onRequest.push((_b = plugin.hooks) == null ? void 0 : _b.onRequest);\n hooks.onResponse.push((_c = plugin.hooks) == null ? void 0 : _c.onResponse);\n hooks.onSuccess.push((_d = plugin.hooks) == null ? void 0 : _d.onSuccess);\n hooks.onError.push((_e = plugin.hooks) == null ? void 0 : _e.onError);\n hooks.onRetry.push((_f = plugin.hooks) == null ? void 0 : _f.onRetry);\n }\n return {\n url,\n options: opts,\n hooks\n };\n};\n\n// src/retry.ts\nvar LinearRetryStrategy = class {\n constructor(options) {\n this.options = options;\n }\n shouldAttemptRetry(attempt, response) {\n if (this.options.shouldRetry) {\n return Promise.resolve(\n attempt < this.options.attempts && this.options.shouldRetry(response)\n );\n }\n return Promise.resolve(attempt < this.options.attempts);\n }\n getDelay() {\n return this.options.delay;\n }\n};\nvar ExponentialRetryStrategy = class {\n constructor(options) {\n this.options = options;\n }\n shouldAttemptRetry(attempt, response) {\n if (this.options.shouldRetry) {\n return Promise.resolve(\n attempt < this.options.attempts && this.options.shouldRetry(response)\n );\n }\n return Promise.resolve(attempt < this.options.attempts);\n }\n getDelay(attempt) {\n const delay = Math.min(\n this.options.maxDelay,\n this.options.baseDelay * 2 ** attempt\n );\n return delay;\n }\n};\nfunction createRetryStrategy(options) {\n if (typeof options === \"number\") {\n return new LinearRetryStrategy({\n type: \"linear\",\n attempts: options,\n delay: 1e3\n });\n }\n switch (options.type) {\n case \"linear\":\n return new LinearRetryStrategy(options);\n case \"exponential\":\n return new ExponentialRetryStrategy(options);\n default:\n throw new Error(\"Invalid retry strategy\");\n }\n}\n\n// src/auth.ts\nvar getAuthHeader = async (options) => {\n const headers = {};\n const getValue = async (value) => typeof value === \"function\" ? await value() : value;\n if (options == null ? void 0 : options.auth) {\n if (options.auth.type === \"Bearer\") {\n const token = await getValue(options.auth.token);\n if (!token) {\n return headers;\n }\n headers[\"authorization\"] = `Bearer ${token}`;\n } else if (options.auth.type === \"Basic\") {\n const username = getValue(options.auth.username);\n const password = getValue(options.auth.password);\n if (!username || !password) {\n return headers;\n }\n headers[\"authorization\"] = `Basic ${btoa(`${username}:${password}`)}`;\n } else if (options.auth.type === \"Custom\") {\n const value = getValue(options.auth.value);\n if (!value) {\n return headers;\n }\n headers[\"authorization\"] = `${getValue(options.auth.prefix)} ${value}`;\n }\n }\n return headers;\n};\n\n// src/utils.ts\nvar JSON_RE = /^application\\/(?:[\\w!#$%&*.^`~-]*\\+)?json(;.+)?$/i;\nfunction detectResponseType(request) {\n const _contentType = request.headers.get(\"content-type\");\n const textTypes = /* @__PURE__ */ new Set([\n \"image/svg\",\n \"application/xml\",\n \"application/xhtml\",\n \"application/html\"\n ]);\n if (!_contentType) {\n return \"json\";\n }\n const contentType = _contentType.split(\";\").shift() || \"\";\n if (JSON_RE.test(contentType)) {\n return \"json\";\n }\n if (textTypes.has(contentType) || contentType.startsWith(\"text/\")) {\n return \"text\";\n }\n return \"blob\";\n}\nfunction isJSONParsable(value) {\n try {\n JSON.parse(value);\n return true;\n } catch (error) {\n return false;\n }\n}\nfunction isJSONSerializable(value) {\n if (value === void 0) {\n return false;\n }\n const t = typeof value;\n if (t === \"string\" || t === \"number\" || t === \"boolean\" || t === null) {\n return true;\n }\n if (t !== \"object\") {\n return false;\n }\n if (Array.isArray(value)) {\n return true;\n }\n if (value.buffer) {\n return false;\n }\n return value.constructor && value.constructor.name === \"Object\" || typeof value.toJSON === \"function\";\n}\nfunction jsonParse(text) {\n try {\n return JSON.parse(text);\n } catch (error) {\n return text;\n }\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction getFetch(options) {\n if (options == null ? void 0 : options.customFetchImpl) {\n return options.customFetchImpl;\n }\n if (typeof globalThis !== \"undefined\" && isFunction(globalThis.fetch)) {\n return globalThis.fetch;\n }\n if (typeof window !== \"undefined\" && isFunction(window.fetch)) {\n return window.fetch;\n }\n throw new Error(\"No fetch implementation found\");\n}\nfunction isPayloadMethod(method) {\n if (!method) {\n return false;\n }\n const payloadMethod = [\"POST\", \"PUT\", \"PATCH\", \"DELETE\"];\n return payloadMethod.includes(method.toUpperCase());\n}\nfunction isRouteMethod(method) {\n const routeMethod = [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"];\n if (!method) {\n return false;\n }\n return routeMethod.includes(method.toUpperCase());\n}\nasync function getHeaders(opts) {\n const headers = new Headers(opts == null ? void 0 : opts.headers);\n const authHeader = await getAuthHeader(opts);\n for (const [key, value] of Object.entries(authHeader || {})) {\n headers.set(key, value);\n }\n if (!headers.has(\"content-type\")) {\n const t = detectContentType(opts == null ? void 0 : opts.body);\n if (t) {\n headers.set(\"content-type\", t);\n }\n }\n return headers;\n}\nfunction getURL(url, options) {\n if (url.startsWith(\"@\")) {\n const m = url.toString().split(\"@\")[1].split(\"/\")[0];\n if (methods.includes(m)) {\n url = url.replace(`@${m}/`, \"/\");\n }\n }\n let _url;\n try {\n if (url.startsWith(\"http\")) {\n _url = url;\n } else {\n let baseURL = options == null ? void 0 : options.baseURL;\n if (baseURL && !(baseURL == null ? void 0 : baseURL.endsWith(\"/\"))) {\n baseURL = baseURL + \"/\";\n }\n if (url.startsWith(\"/\")) {\n _url = new URL(url.substring(1), baseURL);\n } else {\n _url = new URL(url, options == null ? void 0 : options.baseURL);\n }\n }\n } catch (e) {\n if (e instanceof TypeError) {\n if (!(options == null ? void 0 : options.baseURL)) {\n throw TypeError(\n `Invalid URL ${url}. Are you passing in a relative url but not setting the baseURL?`\n );\n }\n throw TypeError(\n `Invalid URL ${url}. Please validate that you are passing the correct input.`\n );\n }\n throw e;\n }\n if (options == null ? void 0 : options.params) {\n if (Array.isArray(options == null ? void 0 : options.params)) {\n const params = (options == null ? void 0 : options.params) ? Array.isArray(options.params) ? `/${options.params.join(\"/\")}` : `/${Object.values(options.params).join(\"/\")}` : \"\";\n _url = _url.toString().split(\"/:\")[0];\n _url = `${_url.toString()}${params}`;\n } else {\n for (const [key, value] of Object.entries(options == null ? void 0 : options.params)) {\n _url = _url.toString().replace(`:${key}`, String(value));\n }\n }\n }\n const __url = new URL(_url);\n const queryParams = options == null ? void 0 : options.query;\n if (queryParams) {\n for (const [key, value] of Object.entries(queryParams)) {\n __url.searchParams.append(key, String(value));\n }\n }\n return __url;\n}\nfunction detectContentType(body) {\n if (isJSONSerializable(body)) {\n return \"application/json\";\n }\n return null;\n}\nfunction getBody(options) {\n if (!(options == null ? void 0 : options.body)) {\n return null;\n }\n const headers = new Headers(options == null ? void 0 : options.headers);\n if (isJSONSerializable(options.body) && !headers.has(\"content-type\")) {\n for (const [key, value] of Object.entries(options == null ? void 0 : options.body)) {\n if (value instanceof Date) {\n options.body[key] = value.toISOString();\n }\n }\n return JSON.stringify(options.body);\n }\n return options.body;\n}\nfunction getMethod(url, options) {\n var _a;\n if (options == null ? void 0 : options.method) {\n return options.method.toUpperCase();\n }\n if (url.startsWith(\"@\")) {\n const pMethod = (_a = url.split(\"@\")[1]) == null ? void 0 : _a.split(\"/\")[0];\n if (!methods.includes(pMethod)) {\n return (options == null ? void 0 : options.body) ? \"POST\" : \"GET\";\n }\n return pMethod.toUpperCase();\n }\n return (options == null ? void 0 : options.body) ? \"POST\" : \"GET\";\n}\nfunction getTimeout(options, controller) {\n let abortTimeout;\n if (!(options == null ? void 0 : options.signal) && (options == null ? void 0 : options.timeout)) {\n abortTimeout = setTimeout(() => controller == null ? void 0 : controller.abort(), options == null ? void 0 : options.timeout);\n }\n return {\n abortTimeout,\n clearTimeout: () => {\n if (abortTimeout) {\n clearTimeout(abortTimeout);\n }\n }\n };\n}\nfunction bodyParser(data, responseType) {\n if (responseType === \"json\") {\n return JSON.parse(data);\n }\n return data;\n}\nvar ValidationError = class _ValidationError extends Error {\n constructor(issues, message) {\n super(message || JSON.stringify(issues, null, 2));\n this.issues = issues;\n Object.setPrototypeOf(this, _ValidationError.prototype);\n }\n};\nasync function parseStandardSchema(schema, input) {\n let result = await schema[\"~standard\"].validate(input);\n if (result.issues) {\n throw new ValidationError(result.issues);\n }\n return result.value;\n}\n\n// src/create-fetch/schema.ts\nvar methods = [\"get\", \"post\", \"put\", \"patch\", \"delete\"];\nvar createSchema = (schema, config) => {\n return {\n schema,\n config\n };\n};\n\n// src/create-fetch/index.ts\nvar applySchemaPlugin = (config) => ({\n id: \"apply-schema\",\n name: \"Apply Schema\",\n version: \"1.0.0\",\n async init(url, options) {\n var _a, _b, _c, _d;\n const schema = ((_b = (_a = config.plugins) == null ? void 0 : _a.find(\n (plugin) => {\n var _a2;\n return ((_a2 = plugin.schema) == null ? void 0 : _a2.config) ? url.startsWith(plugin.schema.config.baseURL || \"\") || url.startsWith(plugin.schema.config.prefix || \"\") : false;\n }\n )) == null ? void 0 : _b.schema) || config.schema;\n if (schema) {\n let urlKey = url;\n if ((_c = schema.config) == null ? void 0 : _c.prefix) {\n if (urlKey.startsWith(schema.config.prefix)) {\n urlKey = urlKey.replace(schema.config.prefix, \"\");\n if (schema.config.baseURL) {\n url = url.replace(schema.config.prefix, schema.config.baseURL);\n }\n }\n }\n if ((_d = schema.config) == null ? void 0 : _d.baseURL) {\n if (urlKey.startsWith(schema.config.baseURL)) {\n urlKey = urlKey.replace(schema.config.baseURL, \"\");\n }\n }\n const keySchema = schema.schema[urlKey];\n if (keySchema) {\n let opts = __spreadProps(__spreadValues({}, options), {\n method: keySchema.method,\n output: keySchema.output\n });\n if (!(options == null ? void 0 : options.disableValidation)) {\n opts = __spreadProps(__spreadValues({}, opts), {\n body: keySchema.input ? await parseStandardSchema(keySchema.input, options == null ? void 0 : options.body) : options == null ? void 0 : options.body,\n params: keySchema.params ? await parseStandardSchema(keySchema.params, options == null ? void 0 : options.params) : options == null ? void 0 : options.params,\n query: keySchema.query ? await parseStandardSchema(keySchema.query, options == null ? void 0 : options.query) : options == null ? void 0 : options.query\n });\n }\n return {\n url,\n options: opts\n };\n }\n }\n return {\n url,\n options\n };\n }\n});\nvar createFetch = (config) => {\n async function $fetch(url, options) {\n const opts = __spreadProps(__spreadValues(__spreadValues({}, config), options), {\n plugins: [...(config == null ? void 0 : config.plugins) || [], applySchemaPlugin(config || {})]\n });\n if (config == null ? void 0 : config.catchAllError) {\n try {\n return await betterFetch(url, opts);\n } catch (error) {\n return {\n data: null,\n error: {\n status: 500,\n statusText: \"Fetch Error\",\n message: \"Fetch related error. Captured by catchAllError option. See error property for more details.\",\n error\n }\n };\n }\n }\n return await betterFetch(url, opts);\n }\n return $fetch;\n};\n\n// src/url.ts\nfunction getURL2(url, option) {\n let { baseURL, params, query } = option || {\n query: {},\n params: {},\n baseURL: \"\"\n };\n let basePath = url.startsWith(\"http\") ? url.split(\"/\").slice(0, 3).join(\"/\") : baseURL || \"\";\n if (url.startsWith(\"@\")) {\n const m = url.toString().split(\"@\")[1].split(\"/\")[0];\n if (methods.includes(m)) {\n url = url.replace(`@${m}/`, \"/\");\n }\n }\n if (!basePath.endsWith(\"/\")) basePath += \"/\";\n let [path, urlQuery] = url.replace(basePath, \"\").split(\"?\");\n const queryParams = new URLSearchParams(urlQuery);\n for (const [key, value] of Object.entries(query || {})) {\n if (value == null) continue;\n queryParams.set(key, String(value));\n }\n if (params) {\n if (Array.isArray(params)) {\n const paramPaths = path.split(\"/\").filter((p) => p.startsWith(\":\"));\n for (const [index, key] of paramPaths.entries()) {\n const value = params[index];\n path = path.replace(key, value);\n }\n } else {\n for (const [key, value] of Object.entries(params)) {\n path = path.replace(`:${key}`, String(value));\n }\n }\n }\n path = path.split(\"/\").map(encodeURIComponent).join(\"/\");\n if (path.startsWith(\"/\")) path = path.slice(1);\n let queryParamString = queryParams.toString();\n queryParamString = queryParamString.length > 0 ? `?${queryParamString}`.replace(/\\+/g, \"%20\") : \"\";\n if (!basePath.startsWith(\"http\")) {\n return `${basePath}${path}${queryParamString}`;\n }\n const _url = new URL(`${path}${queryParamString}`, basePath);\n return _url;\n}\n\n// src/fetch.ts\nvar betterFetch = async (url, options) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const {\n hooks,\n url: __url,\n options: opts\n } = await initializePlugins(url, options);\n const fetch = getFetch(opts);\n const controller = new AbortController();\n const signal = (_a = opts.signal) != null ? _a : controller.signal;\n const _url = getURL2(__url, opts);\n const body = getBody(opts);\n const headers = await getHeaders(opts);\n const method = getMethod(__url, opts);\n let context = __spreadProps(__spreadValues({}, opts), {\n url: _url,\n headers,\n body,\n method,\n signal\n });\n for (const onRequest of hooks.onRequest) {\n if (onRequest) {\n const res = await onRequest(context);\n if (res instanceof Object) {\n context = res;\n }\n }\n }\n if (\"pipeTo\" in context && typeof context.pipeTo === \"function\" || typeof ((_b = options == null ? void 0 : options.body) == null ? void 0 : _b.pipe) === \"function\") {\n if (!(\"duplex\" in context)) {\n context.duplex = \"half\";\n }\n }\n const { clearTimeout: clearTimeout2 } = getTimeout(opts, controller);\n let response = await fetch(context.url, context);\n clearTimeout2();\n const responseContext = {\n response,\n request: context\n };\n for (const onResponse of hooks.onResponse) {\n if (onResponse) {\n const r = await onResponse(__spreadProps(__spreadValues({}, responseContext), {\n response: ((_c = options == null ? void 0 : options.hookOptions) == null ? void 0 : _c.cloneResponse) ? response.clone() : response\n }));\n if (r instanceof Response) {\n response = r;\n } else if (r instanceof Object) {\n response = r.response;\n }\n }\n }\n if (response.ok) {\n const hasBody = context.method !== \"HEAD\";\n if (!hasBody) {\n return {\n data: \"\",\n error: null\n };\n }\n const responseType = detectResponseType(response);\n const successContext = {\n data: \"\",\n response,\n request: context\n };\n if (responseType === \"json\" || responseType === \"text\") {\n const text = await response.text();\n const parser2 = (_d = context.jsonParser) != null ? _d : jsonParse;\n const data = await parser2(text);\n successContext.data = data;\n } else {\n successContext.data = await response[responseType]();\n }\n if (context == null ? void 0 : context.output) {\n if (context.output && !context.disableValidation) {\n successContext.data = await parseStandardSchema(\n context.output,\n successContext.data\n );\n }\n }\n for (const onSuccess of hooks.onSuccess) {\n if (onSuccess) {\n await onSuccess(__spreadProps(__spreadValues({}, successContext), {\n response: ((_e = options == null ? void 0 : options.hookOptions) == null ? void 0 : _e.cloneResponse) ? response.clone() : response\n }));\n }\n }\n if (options == null ? void 0 : options.throw) {\n return successContext.data;\n }\n return {\n data: successContext.data,\n error: null\n };\n }\n const parser = (_f = options == null ? void 0 : options.jsonParser) != null ? _f : jsonParse;\n const responseText = await response.text();\n const isJSONResponse = isJSONParsable(responseText);\n const errorObject = isJSONResponse ? await parser(responseText) : null;\n const errorContext = {\n response,\n responseText,\n request: context,\n error: __spreadProps(__spreadValues({}, errorObject), {\n status: response.status,\n statusText: response.statusText\n })\n };\n for (const onError of hooks.onError) {\n if (onError) {\n await onError(__spreadProps(__spreadValues({}, errorContext), {\n response: ((_g = options == null ? void 0 : options.hookOptions) == null ? void 0 : _g.cloneResponse) ? response.clone() : response\n }));\n }\n }\n if (options == null ? void 0 : options.retry) {\n const retryStrategy = createRetryStrategy(options.retry);\n const _retryAttempt = (_h = options.retryAttempt) != null ? _h : 0;\n if (await retryStrategy.shouldAttemptRetry(_retryAttempt, response)) {\n for (const onRetry of hooks.onRetry) {\n if (onRetry) {\n await onRetry(responseContext);\n }\n }\n const delay = retryStrategy.getDelay(_retryAttempt);\n await new Promise((resolve) => setTimeout(resolve, delay));\n return await betterFetch(url, __spreadProps(__spreadValues({}, options), {\n retryAttempt: _retryAttempt + 1\n }));\n }\n }\n if (options == null ? void 0 : options.throw) {\n throw new BetterFetchError(\n response.status,\n response.statusText,\n isJSONResponse ? errorObject : responseText\n );\n }\n return {\n data: null,\n error: __spreadProps(__spreadValues({}, errorObject), {\n status: response.status,\n statusText: response.statusText\n })\n };\n};\nexport {\n BetterFetchError,\n ValidationError,\n applySchemaPlugin,\n betterFetch,\n bodyParser,\n createFetch,\n createRetryStrategy,\n createSchema,\n detectContentType,\n detectResponseType,\n getBody,\n getFetch,\n getHeaders,\n getMethod,\n getTimeout,\n getURL,\n initializePlugins,\n isFunction,\n isJSONParsable,\n isJSONSerializable,\n isPayloadMethod,\n isRouteMethod,\n jsonParse,\n methods,\n parseStandardSchema\n};\n//# sourceMappingURL=index.js.map","import { t as getBaseURL } from \"./url-C4fqRUH1.mjs\";\nimport { t as parseJSON } from \"./parser-kwbb5q_C.mjs\";\nimport { atom, onMount } from \"nanostores\";\nimport { createFetch } from \"@better-fetch/fetch\";\n\n//#region src/client/broadcast-channel.ts\nconst kBroadcastChannel = Symbol.for(\"better-auth:broadcast-channel\");\nconst now$1 = () => Math.floor(Date.now() / 1e3);\nvar WindowBroadcastChannel = class {\n\tlisteners = /* @__PURE__ */ new Set();\n\tname;\n\tconstructor(name = \"better-auth.message\") {\n\t\tthis.name = name;\n\t}\n\tsubscribe(listener) {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\tpost(message) {\n\t\tif (typeof window === \"undefined\") return;\n\t\ttry {\n\t\t\tlocalStorage.setItem(this.name, JSON.stringify({\n\t\t\t\t...message,\n\t\t\t\ttimestamp: now$1()\n\t\t\t}));\n\t\t} catch {}\n\t}\n\tsetup() {\n\t\tif (typeof window === \"undefined\" || typeof window.addEventListener === \"undefined\") return () => {};\n\t\tconst handler = (event) => {\n\t\t\tif (event.key !== this.name) return;\n\t\t\tconst message = JSON.parse(event.newValue ?? \"{}\");\n\t\t\tif (message?.event !== \"session\" || !message?.data) return;\n\t\t\tthis.listeners.forEach((listener) => listener(message));\n\t\t};\n\t\twindow.addEventListener(\"storage\", handler);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"storage\", handler);\n\t\t};\n\t}\n};\nfunction getGlobalBroadcastChannel(name = \"better-auth.message\") {\n\tif (!globalThis[kBroadcastChannel]) globalThis[kBroadcastChannel] = new WindowBroadcastChannel(name);\n\treturn globalThis[kBroadcastChannel];\n}\n\n//#endregion\n//#region src/client/focus-manager.ts\nconst kFocusManager = Symbol.for(\"better-auth:focus-manager\");\nvar WindowFocusManager = class {\n\tlisteners = /* @__PURE__ */ new Set();\n\tsubscribe(listener) {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\tsetFocused(focused) {\n\t\tthis.listeners.forEach((listener) => listener(focused));\n\t}\n\tsetup() {\n\t\tif (typeof window === \"undefined\" || typeof document === \"undefined\" || typeof window.addEventListener === \"undefined\") return () => {};\n\t\tconst onFocus = () => this.setFocused(true);\n\t\tconst visibilityHandler = () => {\n\t\t\tif (document.visibilityState === \"visible\") this.setFocused(true);\n\t\t};\n\t\twindow.addEventListener(\"focus\", onFocus, false);\n\t\tdocument.addEventListener(\"visibilitychange\", visibilityHandler, false);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"focus\", onFocus, false);\n\t\t\tdocument.removeEventListener(\"visibilitychange\", visibilityHandler, false);\n\t\t};\n\t}\n};\nfunction getGlobalFocusManager() {\n\tif (!globalThis[kFocusManager]) globalThis[kFocusManager] = new WindowFocusManager();\n\treturn globalThis[kFocusManager];\n}\n\n//#endregion\n//#region src/client/online-manager.ts\nconst kOnlineManager = Symbol.for(\"better-auth:online-manager\");\nvar WindowOnlineManager = class {\n\tlisteners = /* @__PURE__ */ new Set();\n\tisOnline = typeof navigator !== \"undefined\" ? navigator.onLine : true;\n\tsubscribe(listener) {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\tsetOnline(online) {\n\t\tthis.isOnline = online;\n\t\tthis.listeners.forEach((listener) => listener(online));\n\t}\n\tsetup() {\n\t\tif (typeof window === \"undefined\" || typeof window.addEventListener === \"undefined\") return () => {};\n\t\tconst onOnline = () => this.setOnline(true);\n\t\tconst onOffline = () => this.setOnline(false);\n\t\twindow.addEventListener(\"online\", onOnline, false);\n\t\twindow.addEventListener(\"offline\", onOffline, false);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"online\", onOnline, false);\n\t\t\twindow.removeEventListener(\"offline\", onOffline, false);\n\t\t};\n\t}\n};\nfunction getGlobalOnlineManager() {\n\tif (!globalThis[kOnlineManager]) globalThis[kOnlineManager] = new WindowOnlineManager();\n\treturn globalThis[kOnlineManager];\n}\n\n//#endregion\n//#region src/client/query.ts\nconst isServer = () => typeof window === \"undefined\";\nconst useAuthQuery = (initializedAtom, path, $fetch, options) => {\n\tconst value = atom({\n\t\tdata: null,\n\t\terror: null,\n\t\tisPending: true,\n\t\tisRefetching: false,\n\t\trefetch: (queryParams) => fn(queryParams)\n\t});\n\tconst fn = async (queryParams) => {\n\t\treturn new Promise((resolve) => {\n\t\t\tconst opts = typeof options === \"function\" ? options({\n\t\t\t\tdata: value.get().data,\n\t\t\t\terror: value.get().error,\n\t\t\t\tisPending: value.get().isPending\n\t\t\t}) : options;\n\t\t\t$fetch(path, {\n\t\t\t\t...opts,\n\t\t\t\tquery: {\n\t\t\t\t\t...opts?.query,\n\t\t\t\t\t...queryParams?.query\n\t\t\t\t},\n\t\t\t\tasync onSuccess(context) {\n\t\t\t\t\tvalue.set({\n\t\t\t\t\t\tdata: context.data,\n\t\t\t\t\t\terror: null,\n\t\t\t\t\t\tisPending: false,\n\t\t\t\t\t\tisRefetching: false,\n\t\t\t\t\t\trefetch: value.value.refetch\n\t\t\t\t\t});\n\t\t\t\t\tawait opts?.onSuccess?.(context);\n\t\t\t\t},\n\t\t\t\tasync onError(context) {\n\t\t\t\t\tconst { request } = context;\n\t\t\t\t\tconst retryAttempts = typeof request.retry === \"number\" ? request.retry : request.retry?.attempts;\n\t\t\t\t\tconst retryAttempt = request.retryAttempt || 0;\n\t\t\t\t\tif (retryAttempts && retryAttempt < retryAttempts) return;\n\t\t\t\t\tvalue.set({\n\t\t\t\t\t\terror: context.error,\n\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\tisPending: false,\n\t\t\t\t\t\tisRefetching: false,\n\t\t\t\t\t\trefetch: value.value.refetch\n\t\t\t\t\t});\n\t\t\t\t\tawait opts?.onError?.(context);\n\t\t\t\t},\n\t\t\t\tasync onRequest(context) {\n\t\t\t\t\tconst currentValue = value.get();\n\t\t\t\t\tvalue.set({\n\t\t\t\t\t\tisPending: currentValue.data === null,\n\t\t\t\t\t\tdata: currentValue.data,\n\t\t\t\t\t\terror: null,\n\t\t\t\t\t\tisRefetching: true,\n\t\t\t\t\t\trefetch: value.value.refetch\n\t\t\t\t\t});\n\t\t\t\t\tawait opts?.onRequest?.(context);\n\t\t\t\t}\n\t\t\t}).catch((error) => {\n\t\t\t\tvalue.set({\n\t\t\t\t\terror,\n\t\t\t\t\tdata: null,\n\t\t\t\t\tisPending: false,\n\t\t\t\t\tisRefetching: false,\n\t\t\t\t\trefetch: value.value.refetch\n\t\t\t\t});\n\t\t\t}).finally(() => {\n\t\t\t\tresolve(void 0);\n\t\t\t});\n\t\t});\n\t};\n\tinitializedAtom = Array.isArray(initializedAtom) ? initializedAtom : [initializedAtom];\n\tlet isMounted = false;\n\tfor (const initAtom of initializedAtom) initAtom.subscribe(async () => {\n\t\tif (isServer()) return;\n\t\tif (isMounted) await fn();\n\t\telse onMount(value, () => {\n\t\t\tconst timeoutId = setTimeout(async () => {\n\t\t\t\tif (!isMounted) {\n\t\t\t\t\tawait fn();\n\t\t\t\t\tisMounted = true;\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t\treturn () => {\n\t\t\t\tvalue.off();\n\t\t\t\tinitAtom.off();\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t};\n\t\t});\n\t});\n\treturn value;\n};\n\n//#endregion\n//#region src/client/session-refresh.ts\nconst now = () => Math.floor(Date.now() / 1e3);\n/**\n* Rate limit: don't refetch on focus if a session request was made within this many seconds\n*/\nconst FOCUS_REFETCH_RATE_LIMIT_SECONDS = 5;\nfunction createSessionRefreshManager(opts) {\n\tconst { sessionAtom, sessionSignal, $fetch, options = {} } = opts;\n\tconst refetchInterval = options.sessionOptions?.refetchInterval ?? 0;\n\tconst refetchOnWindowFocus = options.sessionOptions?.refetchOnWindowFocus ?? true;\n\tconst refetchWhenOffline = options.sessionOptions?.refetchWhenOffline ?? false;\n\tconst state = {\n\t\tlastSync: 0,\n\t\tlastSessionRequest: 0,\n\t\tcachedSession: void 0\n\t};\n\tconst shouldRefetch = () => {\n\t\treturn refetchWhenOffline || getGlobalOnlineManager().isOnline;\n\t};\n\tconst triggerRefetch = (event) => {\n\t\tif (!shouldRefetch()) return;\n\t\tif (event?.event === \"storage\") {\n\t\t\tstate.lastSync = now();\n\t\t\tsessionSignal.set(!sessionSignal.get());\n\t\t\treturn;\n\t\t}\n\t\tconst currentSession = sessionAtom.get();\n\t\tif (event?.event === \"poll\") {\n\t\t\tstate.lastSessionRequest = now();\n\t\t\t$fetch(\"/get-session\").then((res) => {\n\t\t\t\tsessionAtom.set({\n\t\t\t\t\t...currentSession,\n\t\t\t\t\tdata: res.data,\n\t\t\t\t\terror: res.error || null\n\t\t\t\t});\n\t\t\t\tstate.lastSync = now();\n\t\t\t\tsessionSignal.set(!sessionSignal.get());\n\t\t\t}).catch(() => {});\n\t\t\treturn;\n\t\t}\n\t\tif (event?.event === \"visibilitychange\") {\n\t\t\tif (now() - state.lastSessionRequest < FOCUS_REFETCH_RATE_LIMIT_SECONDS && currentSession?.data !== null && currentSession?.data !== void 0) return;\n\t\t}\n\t\tif (currentSession?.data === null || currentSession?.data === void 0 || event?.event === \"visibilitychange\") {\n\t\t\tif (event?.event === \"visibilitychange\") state.lastSessionRequest = now();\n\t\t\tstate.lastSync = now();\n\t\t\tsessionSignal.set(!sessionSignal.get());\n\t\t}\n\t};\n\tconst broadcastSessionUpdate = (trigger) => {\n\t\tgetGlobalBroadcastChannel().post({\n\t\t\tevent: \"session\",\n\t\t\tdata: { trigger },\n\t\t\tclientId: Math.random().toString(36).substring(7)\n\t\t});\n\t};\n\tconst setupPolling = () => {\n\t\tif (refetchInterval && refetchInterval > 0) state.pollInterval = setInterval(() => {\n\t\t\tif (sessionAtom.get()?.data) triggerRefetch({ event: \"poll\" });\n\t\t}, refetchInterval * 1e3);\n\t};\n\tconst setupBroadcast = () => {\n\t\tstate.unsubscribeBroadcast = getGlobalBroadcastChannel().subscribe(() => {\n\t\t\ttriggerRefetch({ event: \"storage\" });\n\t\t});\n\t};\n\tconst setupFocusRefetch = () => {\n\t\tif (!refetchOnWindowFocus) return;\n\t\tstate.unsubscribeFocus = getGlobalFocusManager().subscribe(() => {\n\t\t\ttriggerRefetch({ event: \"visibilitychange\" });\n\t\t});\n\t};\n\tconst setupOnlineRefetch = () => {\n\t\tstate.unsubscribeOnline = getGlobalOnlineManager().subscribe((online) => {\n\t\t\tif (online) triggerRefetch({ event: \"visibilitychange\" });\n\t\t});\n\t};\n\tconst init = () => {\n\t\tsetupPolling();\n\t\tsetupBroadcast();\n\t\tsetupFocusRefetch();\n\t\tsetupOnlineRefetch();\n\t\tgetGlobalBroadcastChannel().setup();\n\t\tgetGlobalFocusManager().setup();\n\t\tgetGlobalOnlineManager().setup();\n\t};\n\tconst cleanup = () => {\n\t\tif (state.pollInterval) {\n\t\t\tclearInterval(state.pollInterval);\n\t\t\tstate.pollInterval = void 0;\n\t\t}\n\t\tif (state.unsubscribeBroadcast) {\n\t\t\tstate.unsubscribeBroadcast();\n\t\t\tstate.unsubscribeBroadcast = void 0;\n\t\t}\n\t\tif (state.unsubscribeFocus) {\n\t\t\tstate.unsubscribeFocus();\n\t\t\tstate.unsubscribeFocus = void 0;\n\t\t}\n\t\tif (state.unsubscribeOnline) {\n\t\t\tstate.unsubscribeOnline();\n\t\t\tstate.unsubscribeOnline = void 0;\n\t\t}\n\t\tstate.lastSync = 0;\n\t\tstate.lastSessionRequest = 0;\n\t\tstate.cachedSession = void 0;\n\t};\n\treturn {\n\t\tinit,\n\t\tcleanup,\n\t\ttriggerRefetch,\n\t\tbroadcastSessionUpdate\n\t};\n}\n\n//#endregion\n//#region src/client/fetch-plugins.ts\nconst redirectPlugin = {\n\tid: \"redirect\",\n\tname: \"Redirect\",\n\thooks: { onSuccess(context) {\n\t\tif (context.data?.url && context.data?.redirect) {\n\t\t\tif (typeof window !== \"undefined\" && window.location) {\n\t\t\t\tif (window.location) try {\n\t\t\t\t\twindow.location.href = context.data.url;\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t}\n\t} }\n};\nconst userAgentPlugin = {\n\tid: \"user-agent\",\n\tname: \"UserAgent\",\n\thooks: { onRequest(context) {\n\t\tcontext.headers.append(\"user-agent\", \"better-auth\");\n\t} }\n};\n\n//#endregion\n//#region src/client/session-atom.ts\nfunction getSessionAtom($fetch, options) {\n\tconst $signal = atom(false);\n\tconst session = useAuthQuery($signal, \"/get-session\", $fetch, { method: \"GET\" });\n\tonMount(session, () => {\n\t\tconst refreshManager = createSessionRefreshManager({\n\t\t\tsessionAtom: session,\n\t\t\tsessionSignal: $signal,\n\t\t\t$fetch,\n\t\t\toptions\n\t\t});\n\t\trefreshManager.init();\n\t\treturn () => {\n\t\t\trefreshManager.cleanup();\n\t\t};\n\t});\n\treturn {\n\t\tsession,\n\t\t$sessionSignal: $signal\n\t};\n}\n\n//#endregion\n//#region src/client/config.ts\nconst getClientConfig = (options, loadEnv) => {\n\tconst isCredentialsSupported = \"credentials\" in Request.prototype;\n\tconst baseURL = getBaseURL(options?.baseURL, options?.basePath, void 0, loadEnv) ?? \"/api/auth\";\n\tconst pluginsFetchPlugins = options?.plugins?.flatMap((plugin) => plugin.fetchPlugins).filter((pl) => pl !== void 0) || [];\n\tconst lifeCyclePlugin = {\n\t\tid: \"lifecycle-hooks\",\n\t\tname: \"lifecycle-hooks\",\n\t\thooks: {\n\t\t\tonSuccess: options?.fetchOptions?.onSuccess,\n\t\t\tonError: options?.fetchOptions?.onError,\n\t\t\tonRequest: options?.fetchOptions?.onRequest,\n\t\t\tonResponse: options?.fetchOptions?.onResponse\n\t\t}\n\t};\n\tconst { onSuccess, onError, onRequest, onResponse, ...restOfFetchOptions } = options?.fetchOptions || {};\n\tconst $fetch = createFetch({\n\t\tbaseURL,\n\t\t...isCredentialsSupported ? { credentials: \"include\" } : {},\n\t\tmethod: \"GET\",\n\t\tjsonParser(text) {\n\t\t\tif (!text) return null;\n\t\t\treturn parseJSON(text, { strict: false });\n\t\t},\n\t\tcustomFetchImpl: fetch,\n\t\t...restOfFetchOptions,\n\t\tplugins: [\n\t\t\tlifeCyclePlugin,\n\t\t\t...restOfFetchOptions.plugins || [],\n\t\t\t...options?.disableDefaultFetchPlugins ? [] : [userAgentPlugin, redirectPlugin],\n\t\t\t...pluginsFetchPlugins\n\t\t]\n\t});\n\tconst { $sessionSignal, session } = getSessionAtom($fetch, options);\n\tconst plugins = options?.plugins || [];\n\tlet pluginsActions = {};\n\tlet pluginsAtoms = {\n\t\t$sessionSignal,\n\t\tsession\n\t};\n\tlet pluginPathMethods = {\n\t\t\"/sign-out\": \"POST\",\n\t\t\"/revoke-sessions\": \"POST\",\n\t\t\"/revoke-other-sessions\": \"POST\",\n\t\t\"/delete-user\": \"POST\"\n\t};\n\tconst atomListeners = [{\n\t\tsignal: \"$sessionSignal\",\n\t\tmatcher(path) {\n\t\t\treturn path === \"/sign-out\" || path === \"/update-user\" || path === \"/sign-up/email\" || path === \"/sign-in/email\" || path === \"/delete-user\" || path === \"/verify-email\" || path === \"/revoke-sessions\" || path === \"/revoke-session\" || path === \"/change-email\";\n\t\t}\n\t}];\n\tfor (const plugin of plugins) {\n\t\tif (plugin.getAtoms) Object.assign(pluginsAtoms, plugin.getAtoms?.($fetch));\n\t\tif (plugin.pathMethods) Object.assign(pluginPathMethods, plugin.pathMethods);\n\t\tif (plugin.atomListeners) atomListeners.push(...plugin.atomListeners);\n\t}\n\tconst $store = {\n\t\tnotify: (signal) => {\n\t\t\tpluginsAtoms[signal].set(!pluginsAtoms[signal].get());\n\t\t},\n\t\tlisten: (signal, listener) => {\n\t\t\tpluginsAtoms[signal].subscribe(listener);\n\t\t},\n\t\tatoms: pluginsAtoms\n\t};\n\tfor (const plugin of plugins) if (plugin.getActions) Object.assign(pluginsActions, plugin.getActions?.($fetch, $store, options));\n\treturn {\n\t\tget baseURL() {\n\t\t\treturn baseURL;\n\t\t},\n\t\tpluginsActions,\n\t\tpluginsAtoms,\n\t\tpluginPathMethods,\n\t\tatomListeners,\n\t\t$fetch,\n\t\t$store\n\t};\n};\n\n//#endregion\n//#region src/utils/is-atom.ts\nfunction isAtom(value) {\n\treturn typeof value === \"object\" && value !== null && \"get\" in value && typeof value.get === \"function\" && \"lc\" in value && typeof value.lc === \"number\";\n}\n\n//#endregion\n//#region src/client/proxy.ts\nfunction getMethod(path, knownPathMethods, args) {\n\tconst method = knownPathMethods[path];\n\tconst { fetchOptions, query, ...body } = args || {};\n\tif (method) return method;\n\tif (fetchOptions?.method) return fetchOptions.method;\n\tif (body && Object.keys(body).length > 0) return \"POST\";\n\treturn \"GET\";\n}\nfunction createDynamicPathProxy(routes, client, knownPathMethods, atoms, atomListeners) {\n\tfunction createProxy(path = []) {\n\t\treturn new Proxy(function() {}, {\n\t\t\tget(_, prop) {\n\t\t\t\tif (typeof prop !== \"string\") return;\n\t\t\t\tif (prop === \"then\" || prop === \"catch\" || prop === \"finally\") return;\n\t\t\t\tconst fullPath = [...path, prop];\n\t\t\t\tlet current = routes;\n\t\t\t\tfor (const segment of fullPath) if (current && typeof current === \"object\" && segment in current) current = current[segment];\n\t\t\t\telse {\n\t\t\t\t\tcurrent = void 0;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (typeof current === \"function\") return current;\n\t\t\t\tif (isAtom(current)) return current;\n\t\t\t\treturn createProxy(fullPath);\n\t\t\t},\n\t\t\tapply: async (_, __, args) => {\n\t\t\t\tconst routePath = \"/\" + path.map((segment) => segment.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)).join(\"/\");\n\t\t\t\tconst arg = args[0] || {};\n\t\t\t\tconst fetchOptions = args[1] || {};\n\t\t\t\tconst { query, fetchOptions: argFetchOptions, ...body } = arg;\n\t\t\t\tconst options = {\n\t\t\t\t\t...fetchOptions,\n\t\t\t\t\t...argFetchOptions\n\t\t\t\t};\n\t\t\t\tconst method = getMethod(routePath, knownPathMethods, arg);\n\t\t\t\treturn await client(routePath, {\n\t\t\t\t\t...options,\n\t\t\t\t\tbody: method === \"GET\" ? void 0 : {\n\t\t\t\t\t\t...body,\n\t\t\t\t\t\t...options?.body || {}\n\t\t\t\t\t},\n\t\t\t\t\tquery: query || options?.query,\n\t\t\t\t\tmethod,\n\t\t\t\t\tasync onSuccess(context) {\n\t\t\t\t\t\tawait options?.onSuccess?.(context);\n\t\t\t\t\t\tif (!atomListeners || options.disableSignal) return;\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t* We trigger listeners\n\t\t\t\t\t\t*/\n\t\t\t\t\t\tconst matches = atomListeners.filter((s) => s.matcher(routePath));\n\t\t\t\t\t\tif (!matches.length) return;\n\t\t\t\t\t\tfor (const match of matches) {\n\t\t\t\t\t\t\tconst signal = atoms[match.signal];\n\t\t\t\t\t\t\tif (!signal) return;\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t* To avoid race conditions we set the signal in a setTimeout\n\t\t\t\t\t\t\t*/\n\t\t\t\t\t\t\tconst val = signal.get();\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tsignal.set(!val);\n\t\t\t\t\t\t\t}, 10);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\treturn createProxy();\n}\n\n//#endregion\nexport { kOnlineManager as a, kBroadcastChannel as c, useAuthQuery as i, getClientConfig as n, kFocusManager as o, createSessionRefreshManager as r, getGlobalBroadcastChannel as s, createDynamicPathProxy as t };","import \"../../url-C4fqRUH1.mjs\";\nimport { n as getClientConfig, t as createDynamicPathProxy } from \"../../proxy-DZR0bcsP.mjs\";\nimport \"../../parser-kwbb5q_C.mjs\";\nimport { listenKeys } from \"nanostores\";\nimport { useCallback, useRef, useSyncExternalStore } from \"react\";\n\n//#region src/client/react/react-store.ts\n/**\n* Subscribe to store changes and get store's value.\n*\n* Can be used with store builder too.\n*\n* ```js\n* import { useStore } from 'nanostores/react'\n*\n* import { router } from '../store/router'\n*\n* export const Layout = () => {\n* let page = useStore(router)\n* if (page.route === 'home') {\n* return <HomePage />\n* } else {\n* return <Error404 />\n* }\n* }\n* ```\n*\n* @param store Store instance.\n* @returns Store value.\n*/\nfunction useStore(store, options = {}) {\n\tlet snapshotRef = useRef(store.get());\n\tconst { keys, deps = [store, keys] } = options;\n\tlet subscribe = useCallback((onChange) => {\n\t\tconst emitChange = (value) => {\n\t\t\tif (snapshotRef.current === value) return;\n\t\t\tsnapshotRef.current = value;\n\t\t\tonChange();\n\t\t};\n\t\temitChange(store.value);\n\t\tif (keys?.length) return listenKeys(store, keys, emitChange);\n\t\treturn store.listen(emitChange);\n\t}, deps);\n\tlet get = () => snapshotRef.current;\n\treturn useSyncExternalStore(subscribe, get, get);\n}\n\n//#endregion\n//#region src/client/react/index.ts\nfunction getAtomKey(str) {\n\treturn `use${capitalizeFirstLetter(str)}`;\n}\nfunction capitalizeFirstLetter(str) {\n\treturn str.charAt(0).toUpperCase() + str.slice(1);\n}\nfunction createAuthClient(options) {\n\tconst { pluginPathMethods, pluginsActions, pluginsAtoms, $fetch, $store, atomListeners } = getClientConfig(options);\n\tlet resolvedHooks = {};\n\tfor (const [key, value] of Object.entries(pluginsAtoms)) resolvedHooks[getAtomKey(key)] = () => useStore(value);\n\treturn createDynamicPathProxy({\n\t\t...pluginsActions,\n\t\t...resolvedHooks,\n\t\t$fetch,\n\t\t$store\n\t}, $fetch, pluginPathMethods, pluginsAtoms, atomListeners);\n}\n\n//#endregion\nexport { capitalizeFirstLetter, createAuthClient, useStore };","import { createAuthClient } from \"better-auth/react\";\nimport { clientEnv } from \"~/env\";\n\nexport const authClient = createAuthClient({\n baseURL: clientEnv.VITE_API_URL,\n});\n"],"names":["dataGridCsCz","datePickersCsCz","csCZ","dataGridEnUs","datePickersEnUs","enUS","getMethod","fetch"],"mappings":";;;;;;;;;AAQO,MAAM,wBAAwB;AAC9B,MAAM,0BAA0B;AAEvC,MAAM,aAAa;AAAA,EACf,IAAI,CAACA,MAAcC,QAAiBC,MAAI;AAAA,EACxC,IAAI,CAACC,MAAcC,QAAiBC,MAAI;AAC5C;AAEO,MAAM,cAAc,CAAC,UAAqE;AAC7F,QAAM,EAAE,KAAA,IAAS,eAAA;AAEjB,SAAO;AAAA,IACH;AAAA,MACI,cAAc;AAAA,QACV,qBAAqB;AAAA,MAAA;AAAA,MAEzB,cAAc;AAAA,QACV,OAAO;AAAA,UACH,SAAS;AAAA,YACL,SAAS,EAAE,MAAM,sBAAA;AAAA,YACjB,WAAW,EAAE,MAAM,wBAAA;AAAA,UAAwB;AAAA,QAC/C;AAAA,QAEJ,MAAM;AAAA,UACF,SAAS;AAAA,YACL,SAAS,EAAE,MAAM,QAAQ,uBAAuB,GAAG,EAAA;AAAA,YACnD,WAAW,EAAE,MAAM,OAAO,yBAAyB,GAAG,EAAA;AAAA,UAAE;AAAA,QAC5D;AAAA,QAEJ,GAAG,OAAO;AAAA,MAAA;AAAA,MAEd,YAAY;AAAA,QACR,gBAAgB;AAAA,UACZ,gBAAgB,CAAC,EAAE,cAAc;AAC7B,mBAAO;AAAA,cACH,MAAM;AAAA,gBACF,gDAAgD;AAAA,kBAC5C,OAAO;AAAA,kBACP,QAAQ;AAAA,gBAAA;AAAA,gBAEZ,4DAA4D;AAAA,kBACxD,iBACI,QAAQ,SAAS,SAAS,KAAK,GAAG,IAAI,KAAK,GAAG;AAAA,kBAClD,cAAc;AAAA,gBAAA;AAAA,gBAElB,4DAA4D;AAAA,kBACxD,iBACI,QAAQ,SAAS,SAAS,KAAK,GAAG,IAAI,KAAK,GAAG;AAAA,kBAClD,cAAc;AAAA,gBAAA;AAAA,gBAElB,wEACA;AAAA,kBACI,iBACI,QAAQ,SAAS,SAAS,KAAK,GAAG,IAAI,KAAK,GAAG;AAAA,gBAAA;AAAA,gBAEtD,8DAA8D;AAAA,kBAC1D,iBAAiB;AAAA,gBAAA;AAAA,cACrB;AAAA,YACJ;AAAA,UAER;AAAA,QAAA;AAAA,QAEJ,GAAG,OAAO;AAAA,MAAA;AAAA,IACd;AAAA,IAEJ,GAAG,WAAW,KAAK,QAAmC;AAAA,EAAA;AAE9D;ACvEA,SAAS,aAAa,KAAK;AAC1B,MAAI;AACH,YAAQ,IAAI,IAAI,GAAG,EAAE,SAAS,QAAQ,QAAQ,EAAE,KAAK,SAAS;AAAA,EAC/D,SAAS,OAAO;AACf,UAAM,IAAI,gBAAgB,qBAAqB,GAAG,oCAAoC;AAAA,EACvF;AACD;AACA,SAAS,kBAAkB,KAAK;AAC/B,MAAI;AACH,UAAM,YAAY,IAAI,IAAI,GAAG;AAC7B,QAAI,UAAU,aAAa,WAAW,UAAU,aAAa,SAAU,OAAM,IAAI,gBAAgB,qBAAqB,GAAG,4CAA4C;AAAA,EACtK,SAAS,OAAO;AACf,QAAI,iBAAiB,gBAAiB,OAAM;AAC5C,UAAM,IAAI,gBAAgB,qBAAqB,GAAG,sCAAsC,OAAO,KAAK,CAAC;AAAA,EACtG;AACD;AACA,SAAS,SAAS,KAAK,OAAO,aAAa;AAC1C,oBAAkB,GAAG;AACrB,MAAI,aAAa,GAAG,EAAG,QAAO;AAC9B,QAAM,aAAa,IAAI,QAAQ,QAAQ,EAAE;AACzC,MAAI,CAAC,QAAQ,SAAS,IAAK,QAAO;AAClC,SAAO,KAAK,WAAW,GAAG,IAAI,OAAO,IAAI,IAAI;AAC7C,SAAO,GAAG,UAAU,GAAG,IAAI;AAC5B;AACA,SAAS,WAAW,KAAK,MAAM,SAAS,SAAS;AAChD,MAAI,IAAK,QAAO,SAAS,KAAK,IAAI;AACX;AACtB,UAAM,UAAU,IAAI,mBAAmB,IAAI,+BAA+B,IAAI,0BAA0B,IAAI,+BAA+B,IAAI,yBAAyB,IAAI,aAAa,MAAM,IAAI,WAAW;AAC9M,QAAI,QAAS,QAAO,SAAS,SAAS,IAAI;AAAA,EAC3C;AASA,MAAI,OAAO,WAAW,eAAe,OAAO,SAAU,QAAO,SAAS,OAAO,SAAS,QAAQ,IAAI;AACnG;AC1CA,MAAM,2BAA2B;AAAA,EAChC,OAAO;AAAA,EACP,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,kBAAkB;AACnB;AACA,MAAM,iBAAiB;AACvB,MAAM,iBAAiB;AAAA,EACtB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,KAAK;AAAA,EACL,UAAU,OAAO;AAAA,EACjB,aAAa,OAAO;AACrB;AACA,MAAM,iBAAiB;AACvB,SAAS,YAAY,MAAM;AAC1B,SAAO,gBAAgB,QAAQ,CAAC,MAAM,KAAK,QAAO,CAAE;AACrD;AACA,SAAS,aAAa,OAAO;AAC5B,QAAM,QAAQ,eAAe,KAAK,KAAK;AACvC,MAAI,CAAC,MAAO,QAAO;AACnB,QAAM,GAAG,MAAM,OAAO,KAAK,MAAM,QAAQ,QAAQ,IAAI,YAAY,YAAY,YAAY,IAAI;AAC7F,MAAI,OAAO,IAAI,KAAK,KAAK,IAAI,SAAS,MAAM,EAAE,GAAG,SAAS,OAAO,EAAE,IAAI,GAAG,SAAS,KAAK,EAAE,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,QAAQ,EAAE,GAAG,SAAS,QAAQ,EAAE,GAAG,KAAK,SAAS,GAAG,OAAO,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;AACtM,MAAI,YAAY;AACf,UAAM,UAAU,SAAS,YAAY,EAAE,IAAI,KAAK,SAAS,cAAc,EAAE,MAAM,eAAe,MAAM,KAAK;AACzG,SAAK,cAAc,KAAK,cAAa,IAAK,MAAM;AAAA,EACjD;AACA,SAAO,YAAY,IAAI,IAAI,OAAO;AACnC;AACA,SAAS,gBAAgB,OAAO,UAAU,IAAI;AAC7C,QAAM,EAAE,SAAS,OAAO,WAAW,OAAO,SAAS,aAAa,KAAI,IAAK;AACzE,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,UAAU,MAAM,KAAI;AAC1B,MAAI,QAAQ,SAAS,KAAK,QAAQ,CAAC,MAAM,OAAQ,QAAQ,SAAS,GAAI,KAAK,CAAC,QAAQ,MAAM,GAAG,EAAE,EAAE,SAAS,GAAI,EAAG,QAAO,QAAQ,MAAM,GAAG,EAAE;AAC3I,QAAM,aAAa,QAAQ,YAAW;AACtC,MAAI,WAAW,UAAU,KAAK,cAAc,eAAgB,QAAO,eAAe,UAAU;AAC5F,MAAI,CAAC,eAAe,KAAK,OAAO,GAAG;AAClC,QAAI,OAAQ,OAAM,IAAI,YAAY,4BAA4B;AAC9D,WAAO;AAAA,EACR;AACA,MAAI,OAAO,QAAQ,wBAAwB,EAAE,KAAK,CAAC,CAAC,KAAK,OAAO,MAAM;AACrE,UAAM,UAAU,QAAQ,KAAK,OAAO;AACpC,QAAI,WAAW,SAAU,SAAQ,KAAK,sEAAsE,GAAG,UAAU;AACzH,WAAO;AAAA,EACR,CAAC,KAAK,OAAQ,OAAM,IAAI,MAAM,8DAA8D;AAC5F,MAAI;AACH,UAAM,gBAAgB,CAAC,KAAK,YAAY;AACvC,UAAI,QAAQ,eAAe,QAAQ,iBAAiB,WAAW,OAAO,YAAY,YAAY,eAAe,SAAS;AACrH,YAAI,SAAU,SAAQ,KAAK,2BAA2B,GAAG,sCAAsC;AAC/F;AAAA,MACD;AACA,UAAI,cAAc,OAAO,YAAY,UAAU;AAC9C,cAAM,OAAO,aAAa,OAAO;AACjC,YAAI,KAAM,QAAO;AAAA,MAClB;AACA,aAAO,UAAU,QAAQ,KAAK,OAAO,IAAI;AAAA,IAC1C;AACA,WAAO,KAAK,MAAM,SAAS,aAAa;AAAA,EACzC,SAAS,OAAO;AACf,QAAI,OAAQ,OAAM;AAClB,WAAO;AAAA,EACR;AACD;AACA,SAAS,UAAU,OAAO,UAAU,EAAE,QAAQ,KAAI,GAAI;AACrD,SAAO,gBAAgB,OAAO,OAAO;AACtC;AClEO,IAAI,QAAQ,OAAO,OAAO;ACAjC,IAAI,gBAAgB,CAAA;AACpB,IAAI,UAAU;AACd,MAAM,2BAA2B;AAI1B,MAAM,kCAAO,kBAAgB;AAClC,MAAI,YAAY,CAAA;AAChB,MAAI,QAAQ;AAAA,IACV,MAAM;AACJ,UAAI,CAAC,MAAM,IAAI;AACb,cAAM,OAAO,MAAM;AAAA,QAAC,CAAC,EAAC;AAAA,MACxB;AACA,aAAO,MAAM;AAAA,IACf;AAAA,IACA,IAAI;AAAA,IACJ,OAAO,UAAU;AACf,YAAM,KAAK,UAAU,KAAK,QAAQ;AAElC,aAAO,MAAM;AACX,iBACM,IAAI,UAAU,0BAClB,IAAI,cAAc,UAElB;AACA,cAAI,cAAc,CAAC,MAAM,UAAU;AACjC,0BAAc,OAAO,GAAG,wBAAwB;AAAA,UAClD,OAAO;AACL,iBAAK;AAAA,UACP;AAAA,QACF;AAEA,YAAI,QAAQ,UAAU,QAAQ,QAAQ;AACtC,YAAI,CAAC,OAAO;AACV,oBAAU,OAAO,OAAO,CAAC;AACzB,cAAI,CAAC,EAAE,MAAM,GAAI,OAAM,IAAG;AAAA,QAC5B;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO,UAAU,YAAY;AAE3B,UAAI,mBAAmB,CAAC,cAAc;AACtC,eAAS,YAAY,WAAW;AAC9B,sBAAc,KAAK,UAAU,MAAM,OAAO,UAAU,UAAU;AAAA,MAChE;AAEA,UAAI,kBAAkB;AACpB,aACE,UAAU,GACV,UAAU,cAAc,QACxB,WAAW,0BACX;AACA,wBAAc,OAAO;AAAA,YACnB,cAAc,UAAU,CAAC;AAAA,YACzB,cAAc,UAAU,CAAC;AAAA,YACzB,cAAc,UAAU,CAAC;AAAA,UACrC;AAAA,QACQ;AACA,sBAAc,SAAS;AAAA,MACzB;AAAA,IACF;AAAA;AAAA;AAAA,IAGA,MAAM;AAAA,IAAC;AAAA,IACP,IAAI,UAAU;AACZ,UAAI,WAAW,MAAM;AACrB,UAAI,aAAa,UAAU;AACzB,cAAM,QAAQ;AACd,cAAM,OAAO,QAAQ;AAAA,MACvB;AAAA,IACF;AAAA,IACA,UAAU,UAAU;AAClB,UAAI,SAAS,MAAM,OAAO,QAAQ;AAClC,eAAS,MAAM,KAAK;AACpB,aAAO;AAAA,IACT;AAAA,IACA,OAAO;AAAA,EACX;AAEE,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAM,KAAK,IAAI,MAAM;AACnB,kBAAY,CAAA;AACZ,YAAM,KAAK;AACX,YAAM,IAAG;AAAA,IACX;AAAA,EACF;AAEA,SAAO;AACT;ACpFA,MAAM,QAAQ;AACd,MAAM,UAAU;AAChB,MAAM,kBAAkB;AAEjB,IAAI,KAAK,CAAC,QAAQ,UAAU,UAAU,gBAAgB;AAC3D,SAAO,SAAS,OAAO,UAAU,CAAA;AACjC,MAAI,CAAC,OAAO,OAAO,WAAW,eAAe,GAAG;AAC9C,WAAO,OAAO,WAAW,eAAe,IAAI,YAAY,gBAAc;AAEpE,aAAO,OAAO,QAAQ,EAAE,YAAY,CAAC,OAAO,OAAO,EAAE,KAAK,GAAG,QAAQ;AAAA,QACnE,QAAQ,CAAA;AAAA,QACR,GAAG;AAAA,MACX,CAAO;AAAA,IACH,CAAC;AAAA,EACH;AACA,SAAO,OAAO,QAAQ,IAAI,OAAO,OAAO,QAAQ,KAAK,CAAA;AACrD,SAAO,OAAO,QAAQ,EAAE,KAAK,QAAQ;AACrC,SAAO,MAAM;AACX,QAAI,mBAAmB,OAAO,OAAO,QAAQ;AAC7C,QAAI,QAAQ,iBAAiB,QAAQ,QAAQ;AAC7C,qBAAiB,OAAO,OAAO,CAAC;AAChC,QAAI,CAAC,iBAAiB,QAAQ;AAC5B,aAAO,OAAO,OAAO,QAAQ;AAC7B,aAAO,OAAO,WAAW,eAAe,EAAC;AACzC,aAAO,OAAO,OAAO,WAAW,eAAe;AAAA,IACjD;AAAA,EACF;AACF;AAiFO,IAAI,sBAAsB;AAE1B,IAAI,UAAU,CAAC,QAAQ,eAAe;AAC3C,MAAI,WAAW,aAAW;AACxB,QAAI,UAAU,WAAW,OAAO;AAChC,QAAI,QAAS,QAAO,OAAO,OAAO,EAAE,KAAK,OAAO;AAAA,EAClD;AACA,SAAO,GAAG,QAAQ,UAAU,OAAO,kBAAgB;AACjD,QAAI,eAAe,OAAO;AAC1B,WAAO,SAAS,IAAI,SAAS;AAC3B,UAAI,CAAC,OAAO,MAAM,CAAC,OAAO,QAAQ;AAChC,eAAO,SAAS;AAChB,qBAAY;AAAA,MACd;AACA,aAAO,aAAa,GAAG,IAAI;AAAA,IAC7B;AAEA,QAAI,YAAY,OAAO;AACvB,WAAO,OAAO,OAAO,IAAI,CAAA;AACzB,WAAO,MAAM,MAAM;AACjB,gBAAS;AACT,iBAAW,MAAM;AACf,YAAI,OAAO,UAAU,CAAC,OAAO,IAAI;AAC/B,iBAAO,SAAS;AAChB,mBAAS,WAAW,OAAO,OAAO,OAAO,EAAG,SAAO;AACnD,iBAAO,OAAO,OAAO,IAAI,CAAA;AAAA,QAC3B;AAAA,MACF,GAAG,mBAAmB;AAAA,IACxB;AAEA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,UAAI,cAAc,OAAO,KAAK;AAC9B,aAAO,KAAK,IAAI,MAAM;AACpB,iBAAS,WAAW,OAAO,OAAO,OAAO,EAAG,SAAO;AACnD,eAAO,OAAO,OAAO,IAAI,CAAA;AACzB,eAAO,SAAS;AAChB,oBAAW;AAAA,MACb;AAAA,IACF;AAEA,WAAO,MAAM;AACX,aAAO,SAAS;AAChB,aAAO,MAAM;AAAA,IACf;AAAA,EACF,CAAC;AACH;AC/JO,SAAS,WAAW,QAAQ,MAAM,UAAU;AACjD,MAAI,UAAU,IAAI,IAAI,IAAI,EAAE,IAAI,MAAS;AACzC,SAAO,OAAO,OAAO,CAAC,OAAO,UAAU,YAAY;AACjD,QAAI,QAAQ,IAAI,OAAO,GAAG;AACxB,eAAS,OAAO,UAAU,OAAO;AAAA,IACnC;AAAA,EACF,CAAC;AACH;ACPA,IAAI,YAAY,OAAO;AACvB,IAAI,aAAa,OAAO;AACxB,IAAI,oBAAoB,OAAO;AAC/B,IAAI,sBAAsB,OAAO;AACjC,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,kBAAkB,CAAC,KAAK,KAAK,UAAU,OAAO,MAAM,UAAU,KAAK,KAAK,EAAE,YAAY,MAAM,cAAc,MAAM,UAAU,MAAM,MAAK,CAAE,IAAI,IAAI,GAAG,IAAI;AAC1J,IAAI,iBAAiB,CAAC,GAAG,MAAM;AAC7B,WAAS,QAAQ,MAAM,IAAI,CAAA;AACzB,QAAI,aAAa,KAAK,GAAG,IAAI;AAC3B,sBAAgB,GAAG,MAAM,EAAE,IAAI,CAAC;AACpC,MAAI;AACF,aAAS,QAAQ,oBAAoB,CAAC,GAAG;AACvC,UAAI,aAAa,KAAK,GAAG,IAAI;AAC3B,wBAAgB,GAAG,MAAM,EAAE,IAAI,CAAC;AAAA,IACpC;AACF,SAAO;AACT;AACA,IAAI,gBAAgB,CAAC,GAAG,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC;AAGhE,IAAI,mBAAmB,cAAc,MAAM;AAAA,EACzC,YAAY,QAAQ,YAAY,OAAO;AACrC,UAAM,cAAc,OAAO,YAAY;AAAA,MACrC,OAAO;AAAA,IACb,CAAK;AACD,SAAK,SAAS;AACd,SAAK,aAAa;AAClB,SAAK,QAAQ;AAAA,EACf;AACF;AAGA,IAAI,oBAAoB,OAAO,KAAK,YAAY;AAC9C,MAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AACxB,MAAI,OAAO,WAAW,CAAA;AACtB,QAAM,QAAQ;AAAA,IACZ,WAAW,CAAC,WAAW,OAAO,SAAS,QAAQ,SAAS;AAAA,IACxD,YAAY,CAAC,WAAW,OAAO,SAAS,QAAQ,UAAU;AAAA,IAC1D,WAAW,CAAC,WAAW,OAAO,SAAS,QAAQ,SAAS;AAAA,IACxD,SAAS,CAAC,WAAW,OAAO,SAAS,QAAQ,OAAO;AAAA,IACpD,SAAS,CAAC,WAAW,OAAO,SAAS,QAAQ,OAAO;AAAA,EACxD;AACE,MAAI,CAAC,WAAW,EAAE,WAAW,OAAO,SAAS,QAAQ,UAAU;AAC7D,WAAO;AAAA,MACL;AAAA,MACA,SAAS;AAAA,MACT;AAAA,IACN;AAAA,EACE;AACA,aAAW,WAAW,WAAW,OAAO,SAAS,QAAQ,YAAY,IAAI;AACvE,QAAI,OAAO,MAAM;AACf,YAAM,YAAY,QAAQ,KAAK,OAAO,SAAS,OAAO,SAAS,GAAG,KAAK,QAAQ,IAAI,SAAQ,GAAI,OAAO;AACtG,aAAO,UAAU,WAAW;AAC5B,YAAM,UAAU;AAAA,IAClB;AACA,UAAM,UAAU,MAAM,KAAK,OAAO,UAAU,OAAO,SAAS,GAAG,SAAS;AACxE,UAAM,WAAW,MAAM,KAAK,OAAO,UAAU,OAAO,SAAS,GAAG,UAAU;AAC1E,UAAM,UAAU,MAAM,KAAK,OAAO,UAAU,OAAO,SAAS,GAAG,SAAS;AACxE,UAAM,QAAQ,MAAM,KAAK,OAAO,UAAU,OAAO,SAAS,GAAG,OAAO;AACpE,UAAM,QAAQ,MAAM,KAAK,OAAO,UAAU,OAAO,SAAS,GAAG,OAAO;AAAA,EACtE;AACA,SAAO;AAAA,IACL;AAAA,IACA,SAAS;AAAA,IACT;AAAA,EACJ;AACA;AAGA,IAAI,sBAAsB,MAAM;AAAA,EAC9B,YAAY,SAAS;AACnB,SAAK,UAAU;AAAA,EACjB;AAAA,EACA,mBAAmB,SAAS,UAAU;AACpC,QAAI,KAAK,QAAQ,aAAa;AAC5B,aAAO,QAAQ;AAAA,QACb,UAAU,KAAK,QAAQ,YAAY,KAAK,QAAQ,YAAY,QAAQ;AAAA,MAC5E;AAAA,IACI;AACA,WAAO,QAAQ,QAAQ,UAAU,KAAK,QAAQ,QAAQ;AAAA,EACxD;AAAA,EACA,WAAW;AACT,WAAO,KAAK,QAAQ;AAAA,EACtB;AACF;AACA,IAAI,2BAA2B,MAAM;AAAA,EACnC,YAAY,SAAS;AACnB,SAAK,UAAU;AAAA,EACjB;AAAA,EACA,mBAAmB,SAAS,UAAU;AACpC,QAAI,KAAK,QAAQ,aAAa;AAC5B,aAAO,QAAQ;AAAA,QACb,UAAU,KAAK,QAAQ,YAAY,KAAK,QAAQ,YAAY,QAAQ;AAAA,MAC5E;AAAA,IACI;AACA,WAAO,QAAQ,QAAQ,UAAU,KAAK,QAAQ,QAAQ;AAAA,EACxD;AAAA,EACA,SAAS,SAAS;AAChB,UAAM,QAAQ,KAAK;AAAA,MACjB,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ,YAAY,KAAK;AAAA,IACpC;AACI,WAAO;AAAA,EACT;AACF;AACA,SAAS,oBAAoB,SAAS;AACpC,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,IAAI,oBAAoB;AAAA,MAC7B,MAAM;AAAA,MACN,UAAU;AAAA,MACV,OAAO;AAAA,IACb,CAAK;AAAA,EACH;AACA,UAAQ,QAAQ,MAAI;AAAA,IAClB,KAAK;AACH,aAAO,IAAI,oBAAoB,OAAO;AAAA,IACxC,KAAK;AACH,aAAO,IAAI,yBAAyB,OAAO;AAAA,IAC7C;AACE,YAAM,IAAI,MAAM,wBAAwB;AAAA,EAC9C;AACA;AAGA,IAAI,gBAAgB,OAAO,YAAY;AACrC,QAAM,UAAU,CAAA;AAChB,QAAM,WAAW,OAAO,UAAU,OAAO,UAAU,aAAa,MAAM,MAAK,IAAK;AAChF,MAAI,WAAW,OAAO,SAAS,QAAQ,MAAM;AAC3C,QAAI,QAAQ,KAAK,SAAS,UAAU;AAClC,YAAM,QAAQ,MAAM,SAAS,QAAQ,KAAK,KAAK;AAC/C,UAAI,CAAC,OAAO;AACV,eAAO;AAAA,MACT;AACA,cAAQ,eAAe,IAAI,UAAU,KAAK;AAAA,IAC5C,WAAW,QAAQ,KAAK,SAAS,SAAS;AACxC,YAAM,WAAW,SAAS,QAAQ,KAAK,QAAQ;AAC/C,YAAM,WAAW,SAAS,QAAQ,KAAK,QAAQ;AAC/C,UAAI,CAAC,YAAY,CAAC,UAAU;AAC1B,eAAO;AAAA,MACT;AACA,cAAQ,eAAe,IAAI,SAAS,KAAK,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;AAAA,IACrE,WAAW,QAAQ,KAAK,SAAS,UAAU;AACzC,YAAM,QAAQ,SAAS,QAAQ,KAAK,KAAK;AACzC,UAAI,CAAC,OAAO;AACV,eAAO;AAAA,MACT;AACA,cAAQ,eAAe,IAAI,GAAG,SAAS,QAAQ,KAAK,MAAM,CAAC,IAAI,KAAK;AAAA,IACtE;AAAA,EACF;AACA,SAAO;AACT;AAGA,IAAI,UAAU;AACd,SAAS,mBAAmB,SAAS;AACnC,QAAM,eAAe,QAAQ,QAAQ,IAAI,cAAc;AACvD,QAAM,YAA4B,oBAAI,IAAI;AAAA,IACxC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAG;AACD,MAAI,CAAC,cAAc;AACjB,WAAO;AAAA,EACT;AACA,QAAM,cAAc,aAAa,MAAM,GAAG,EAAE,MAAK,KAAM;AACvD,MAAI,QAAQ,KAAK,WAAW,GAAG;AAC7B,WAAO;AAAA,EACT;AACA,MAAI,UAAU,IAAI,WAAW,KAAK,YAAY,WAAW,OAAO,GAAG;AACjE,WAAO;AAAA,EACT;AACA,SAAO;AACT;AACA,SAAS,eAAe,OAAO;AAC7B,MAAI;AACF,SAAK,MAAM,KAAK;AAChB,WAAO;AAAA,EACT,SAAS,OAAO;AACd,WAAO;AAAA,EACT;AACF;AACA,SAAS,mBAAmB,OAAO;AACjC,MAAI,UAAU,QAAQ;AACpB,WAAO;AAAA,EACT;AACA,QAAM,IAAI,OAAO;AACjB,MAAI,MAAM,YAAY,MAAM,YAAY,MAAM,aAAa,MAAM,MAAM;AACrE,WAAO;AAAA,EACT;AACA,MAAI,MAAM,UAAU;AAClB,WAAO;AAAA,EACT;AACA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO;AAAA,EACT;AACA,MAAI,MAAM,QAAQ;AAChB,WAAO;AAAA,EACT;AACA,SAAO,MAAM,eAAe,MAAM,YAAY,SAAS,YAAY,OAAO,MAAM,WAAW;AAC7F;AACA,SAAS,UAAU,MAAM;AACvB,MAAI;AACF,WAAO,KAAK,MAAM,IAAI;AAAA,EACxB,SAAS,OAAO;AACd,WAAO;AAAA,EACT;AACF;AACA,SAAS,WAAW,OAAO;AACzB,SAAO,OAAO,UAAU;AAC1B;AACA,SAAS,SAAS,SAAS;AACzB,MAAI,WAAW,OAAO,SAAS,QAAQ,iBAAiB;AACtD,WAAO,QAAQ;AAAA,EACjB;AACA,MAAI,OAAO,eAAe,eAAe,WAAW,WAAW,KAAK,GAAG;AACrE,WAAO,WAAW;AAAA,EACpB;AACA,MAAI,OAAO,WAAW,eAAe,WAAW,OAAO,KAAK,GAAG;AAC7D,WAAO,OAAO;AAAA,EAChB;AACA,QAAM,IAAI,MAAM,+BAA+B;AACjD;AAeA,eAAe,WAAW,MAAM;AAC9B,QAAM,UAAU,IAAI,QAAQ,QAAQ,OAAO,SAAS,KAAK,OAAO;AAChE,QAAM,aAAa,MAAM,cAAc,IAAI;AAC3C,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,cAAc,CAAA,CAAE,GAAG;AAC3D,YAAQ,IAAI,KAAK,KAAK;AAAA,EACxB;AACA,MAAI,CAAC,QAAQ,IAAI,cAAc,GAAG;AAChC,UAAM,IAAI,kBAAkB,QAAQ,OAAO,SAAS,KAAK,IAAI;AAC7D,QAAI,GAAG;AACL,cAAQ,IAAI,gBAAgB,CAAC;AAAA,IAC/B;AAAA,EACF;AACA,SAAO;AACT;AAwDA,SAAS,kBAAkB,MAAM;AAC/B,MAAI,mBAAmB,IAAI,GAAG;AAC5B,WAAO;AAAA,EACT;AACA,SAAO;AACT;AACA,SAAS,QAAQ,SAAS;AACxB,MAAI,EAAE,WAAW,OAAO,SAAS,QAAQ,OAAO;AAC9C,WAAO;AAAA,EACT;AACA,QAAM,UAAU,IAAI,QAAQ,WAAW,OAAO,SAAS,QAAQ,OAAO;AACtE,MAAI,mBAAmB,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,cAAc,GAAG;AACpE,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,WAAW,OAAO,SAAS,QAAQ,IAAI,GAAG;AAClF,UAAI,iBAAiB,MAAM;AACzB,gBAAQ,KAAK,GAAG,IAAI,MAAM,YAAW;AAAA,MACvC;AAAA,IACF;AACA,WAAO,KAAK,UAAU,QAAQ,IAAI;AAAA,EACpC;AACA,SAAO,QAAQ;AACjB;AACA,SAASC,YAAU,KAAK,SAAS;AAC/B,MAAI;AACJ,MAAI,WAAW,OAAO,SAAS,QAAQ,QAAQ;AAC7C,WAAO,QAAQ,OAAO,YAAW;AAAA,EACnC;AACA,MAAI,IAAI,WAAW,GAAG,GAAG;AACvB,UAAM,WAAW,KAAK,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,OAAO,SAAS,GAAG,MAAM,GAAG,EAAE,CAAC;AAC3E,QAAI,CAAC,QAAQ,SAAS,OAAO,GAAG;AAC9B,cAAQ,WAAW,OAAO,SAAS,QAAQ,QAAQ,SAAS;AAAA,IAC9D;AACA,WAAO,QAAQ,YAAW;AAAA,EAC5B;AACA,UAAQ,WAAW,OAAO,SAAS,QAAQ,QAAQ,SAAS;AAC9D;AACA,SAAS,WAAW,SAAS,YAAY;AACvC,MAAI;AACJ,MAAI,EAAE,WAAW,OAAO,SAAS,QAAQ,YAAY,WAAW,OAAO,SAAS,QAAQ,UAAU;AAChG,mBAAe,WAAW,MAAM,cAAc,OAAO,SAAS,WAAW,MAAK,GAAI,WAAW,OAAO,SAAS,QAAQ,OAAO;AAAA,EAC9H;AACA,SAAO;AAAA,IACL;AAAA,IACA,cAAc,MAAM;AAClB,UAAI,cAAc;AAChB,qBAAa,YAAY;AAAA,MAC3B;AAAA,IACF;AAAA,EACJ;AACA;AAOA,IAAI,kBAAkB,MAAM,yBAAyB,MAAM;AAAA,EACzD,YAAY,QAAQ,SAAS;AAC3B,UAAM,WAAW,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAChD,SAAK,SAAS;AACd,WAAO,eAAe,MAAM,iBAAiB,SAAS;AAAA,EACxD;AACF;AACA,eAAe,oBAAoB,QAAQ,OAAO;AAChD,MAAI,SAAS,MAAM,OAAO,WAAW,EAAE,SAAS,KAAK;AACrD,MAAI,OAAO,QAAQ;AACjB,UAAM,IAAI,gBAAgB,OAAO,MAAM;AAAA,EACzC;AACA,SAAO,OAAO;AAChB;AAGA,IAAI,UAAU,CAAC,OAAO,QAAQ,OAAO,SAAS,QAAQ;AAStD,IAAI,oBAAoB,CAAC,YAAY;AAAA,EACnC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM,KAAK,KAAK,SAAS;AACvB,QAAI,IAAI,IAAI,IAAI;AAChB,UAAM,WAAW,MAAM,KAAK,OAAO,YAAY,OAAO,SAAS,GAAG;AAAA,MAChE,CAAC,WAAW;AACV,YAAI;AACJ,iBAAS,MAAM,OAAO,WAAW,OAAO,SAAS,IAAI,UAAU,IAAI,WAAW,OAAO,OAAO,OAAO,WAAW,EAAE,KAAK,IAAI,WAAW,OAAO,OAAO,OAAO,UAAU,EAAE,IAAI;AAAA,MAC3K;AAAA,IACN,MAAU,OAAO,SAAS,GAAG,WAAW,OAAO;AAC3C,QAAI,QAAQ;AACV,UAAI,SAAS;AACb,WAAK,KAAK,OAAO,WAAW,OAAO,SAAS,GAAG,QAAQ;AACrD,YAAI,OAAO,WAAW,OAAO,OAAO,MAAM,GAAG;AAC3C,mBAAS,OAAO,QAAQ,OAAO,OAAO,QAAQ,EAAE;AAChD,cAAI,OAAO,OAAO,SAAS;AACzB,kBAAM,IAAI,QAAQ,OAAO,OAAO,QAAQ,OAAO,OAAO,OAAO;AAAA,UAC/D;AAAA,QACF;AAAA,MACF;AACA,WAAK,KAAK,OAAO,WAAW,OAAO,SAAS,GAAG,SAAS;AACtD,YAAI,OAAO,WAAW,OAAO,OAAO,OAAO,GAAG;AAC5C,mBAAS,OAAO,QAAQ,OAAO,OAAO,SAAS,EAAE;AAAA,QACnD;AAAA,MACF;AACA,YAAM,YAAY,OAAO,OAAO,MAAM;AACtC,UAAI,WAAW;AACb,YAAI,OAAO,cAAc,eAAe,CAAA,GAAI,OAAO,GAAG;AAAA,UACpD,QAAQ,UAAU;AAAA,UAClB,QAAQ,UAAU;AAAA,QAC5B,CAAS;AACD,YAAI,EAAE,WAAW,OAAO,SAAS,QAAQ,oBAAoB;AAC3D,iBAAO,cAAc,eAAe,CAAA,GAAI,IAAI,GAAG;AAAA,YAC7C,MAAM,UAAU,QAAQ,MAAM,oBAAoB,UAAU,OAAO,WAAW,OAAO,SAAS,QAAQ,IAAI,IAAI,WAAW,OAAO,SAAS,QAAQ;AAAA,YACjJ,QAAQ,UAAU,SAAS,MAAM,oBAAoB,UAAU,QAAQ,WAAW,OAAO,SAAS,QAAQ,MAAM,IAAI,WAAW,OAAO,SAAS,QAAQ;AAAA,YACvJ,OAAO,UAAU,QAAQ,MAAM,oBAAoB,UAAU,OAAO,WAAW,OAAO,SAAS,QAAQ,KAAK,IAAI,WAAW,OAAO,SAAS,QAAQ;AAAA,UAC/J,CAAW;AAAA,QACH;AACA,eAAO;AAAA,UACL;AAAA,UACA,SAAS;AAAA,QACnB;AAAA,MACM;AAAA,IACF;AACA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACN;AAAA,EACE;AACF;AACA,IAAI,cAAc,CAAC,WAAW;AAC5B,iBAAe,OAAO,KAAK,SAAS;AAClC,UAAM,OAAO,cAAc,eAAe,eAAe,CAAA,GAAI,MAAM,GAAG,OAAO,GAAG;AAAA,MAC9E,SAAS,CAAC,IAAI,UAAU,OAAO,SAAS,OAAO,YAAY,CAAA,GAAI,kBAAkB,UAAU,CAAA,CAAE,CAAC;AAAA,IACpG,CAAK;AACD,QAAI,UAAU,OAAO,SAAS,OAAO,eAAe;AAClD,UAAI;AACF,eAAO,MAAM,YAAY,KAAK,IAAI;AAAA,MACpC,SAAS,OAAO;AACd,eAAO;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,YACL,QAAQ;AAAA,YACR,YAAY;AAAA,YACZ,SAAS;AAAA,YACT;AAAA,UACZ;AAAA,QACA;AAAA,MACM;AAAA,IACF;AACA,WAAO,MAAM,YAAY,KAAK,IAAI;AAAA,EACpC;AACA,SAAO;AACT;AAGA,SAAS,QAAQ,KAAK,QAAQ;AAC5B,MAAI,EAAE,SAAS,QAAQ,MAAK,IAAK,UAAU;AAAA,IACzC,OAAO,CAAA;AAAA,IACP,QAAQ,CAAA;AAAA,IACR,SAAS;AAAA,EACb;AACE,MAAI,WAAW,IAAI,WAAW,MAAM,IAAI,IAAI,MAAM,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,WAAW;AAC1F,MAAI,IAAI,WAAW,GAAG,GAAG;AACvB,UAAM,IAAI,IAAI,SAAQ,EAAG,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AACnD,QAAI,QAAQ,SAAS,CAAC,GAAG;AACvB,YAAM,IAAI,QAAQ,IAAI,CAAC,KAAK,GAAG;AAAA,IACjC;AAAA,EACF;AACA,MAAI,CAAC,SAAS,SAAS,GAAG,EAAG,aAAY;AACzC,MAAI,CAAC,MAAM,QAAQ,IAAI,IAAI,QAAQ,UAAU,EAAE,EAAE,MAAM,GAAG;AAC1D,QAAM,cAAc,IAAI,gBAAgB,QAAQ;AAChD,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,SAAS,CAAA,CAAE,GAAG;AACtD,QAAI,SAAS,KAAM;AACnB,gBAAY,IAAI,KAAK,OAAO,KAAK,CAAC;AAAA,EACpC;AACA,MAAI,QAAQ;AACV,QAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,YAAM,aAAa,KAAK,MAAM,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,CAAC;AAClE,iBAAW,CAAC,OAAO,GAAG,KAAK,WAAW,QAAO,GAAI;AAC/C,cAAM,QAAQ,OAAO,KAAK;AAC1B,eAAO,KAAK,QAAQ,KAAK,KAAK;AAAA,MAChC;AAAA,IACF,OAAO;AACL,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACjD,eAAO,KAAK,QAAQ,IAAI,GAAG,IAAI,OAAO,KAAK,CAAC;AAAA,MAC9C;AAAA,IACF;AAAA,EACF;AACA,SAAO,KAAK,MAAM,GAAG,EAAE,IAAI,kBAAkB,EAAE,KAAK,GAAG;AACvD,MAAI,KAAK,WAAW,GAAG,EAAG,QAAO,KAAK,MAAM,CAAC;AAC7C,MAAI,mBAAmB,YAAY,SAAQ;AAC3C,qBAAmB,iBAAiB,SAAS,IAAI,IAAI,gBAAgB,GAAG,QAAQ,OAAO,KAAK,IAAI;AAChG,MAAI,CAAC,SAAS,WAAW,MAAM,GAAG;AAChC,WAAO,GAAG,QAAQ,GAAG,IAAI,GAAG,gBAAgB;AAAA,EAC9C;AACA,QAAM,OAAO,IAAI,IAAI,GAAG,IAAI,GAAG,gBAAgB,IAAI,QAAQ;AAC3D,SAAO;AACT;AAGA,IAAI,cAAc,OAAO,KAAK,YAAY;AACxC,MAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAChC,QAAM;AAAA,IACJ;AAAA,IACA,KAAK;AAAA,IACL,SAAS;AAAA,EACb,IAAM,MAAM,kBAAkB,KAAK,OAAO;AACxC,QAAMC,SAAQ,SAAS,IAAI;AAC3B,QAAM,aAAa,IAAI,gBAAe;AACtC,QAAM,UAAU,KAAK,KAAK,WAAW,OAAO,KAAK,WAAW;AAC5D,QAAM,OAAO,QAAQ,OAAO,IAAI;AAChC,QAAM,OAAO,QAAQ,IAAI;AACzB,QAAM,UAAU,MAAM,WAAW,IAAI;AACrC,QAAM,SAASD,YAAU,OAAO,IAAI;AACpC,MAAI,UAAU,cAAc,eAAe,CAAA,GAAI,IAAI,GAAG;AAAA,IACpD,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAG;AACD,aAAW,aAAa,MAAM,WAAW;AACvC,QAAI,WAAW;AACb,YAAM,MAAM,MAAM,UAAU,OAAO;AACnC,UAAI,eAAe,QAAQ;AACzB,kBAAU;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AACA,MAAI,YAAY,WAAW,OAAO,QAAQ,WAAW,cAAc,SAAS,KAAK,WAAW,OAAO,SAAS,QAAQ,SAAS,OAAO,SAAS,GAAG,UAAU,YAAY;AACpK,QAAI,EAAE,YAAY,UAAU;AAC1B,cAAQ,SAAS;AAAA,IACnB;AAAA,EACF;AACA,QAAM,EAAE,cAAc,cAAa,IAAK,WAAW,MAAM,UAAU;AACnE,MAAI,WAAW,MAAMC,OAAM,QAAQ,KAAK,OAAO;AAC/C,gBAAa;AACb,QAAM,kBAAkB;AAAA,IACtB;AAAA,IACA,SAAS;AAAA,EACb;AACE,aAAW,cAAc,MAAM,YAAY;AACzC,QAAI,YAAY;AACd,YAAM,IAAI,MAAM,WAAW,cAAc,eAAe,CAAA,GAAI,eAAe,GAAG;AAAA,QAC5E,YAAY,KAAK,WAAW,OAAO,SAAS,QAAQ,gBAAgB,OAAO,SAAS,GAAG,iBAAiB,SAAS,MAAK,IAAK;AAAA,MACnI,CAAO,CAAC;AACF,UAAI,aAAa,UAAU;AACzB,mBAAW;AAAA,MACb,WAAW,aAAa,QAAQ;AAC9B,mBAAW,EAAE;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACA,MAAI,SAAS,IAAI;AACf,UAAM,UAAU,QAAQ,WAAW;AACnC,QAAI,CAAC,SAAS;AACZ,aAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,MACf;AAAA,IACI;AACA,UAAM,eAAe,mBAAmB,QAAQ;AAChD,UAAM,iBAAiB;AAAA,MACrB,MAAM;AAAA,MACN;AAAA,MACA,SAAS;AAAA,IACf;AACI,QAAI,iBAAiB,UAAU,iBAAiB,QAAQ;AACtD,YAAM,OAAO,MAAM,SAAS,KAAI;AAChC,YAAM,WAAW,KAAK,QAAQ,eAAe,OAAO,KAAK;AACzD,YAAM,OAAO,MAAM,QAAQ,IAAI;AAC/B,qBAAe,OAAO;AAAA,IACxB,OAAO;AACL,qBAAe,OAAO,MAAM,SAAS,YAAY,EAAC;AAAA,IACpD;AACA,QAAI,WAAW,OAAO,SAAS,QAAQ,QAAQ;AAC7C,UAAI,QAAQ,UAAU,CAAC,QAAQ,mBAAmB;AAChD,uBAAe,OAAO,MAAM;AAAA,UAC1B,QAAQ;AAAA,UACR,eAAe;AAAA,QACzB;AAAA,MACM;AAAA,IACF;AACA,eAAW,aAAa,MAAM,WAAW;AACvC,UAAI,WAAW;AACb,cAAM,UAAU,cAAc,eAAe,CAAA,GAAI,cAAc,GAAG;AAAA,UAChE,YAAY,KAAK,WAAW,OAAO,SAAS,QAAQ,gBAAgB,OAAO,SAAS,GAAG,iBAAiB,SAAS,MAAK,IAAK;AAAA,QACrI,CAAS,CAAC;AAAA,MACJ;AAAA,IACF;AACA,QAAI,WAAW,OAAO,SAAS,QAAQ,OAAO;AAC5C,aAAO,eAAe;AAAA,IACxB;AACA,WAAO;AAAA,MACL,MAAM,eAAe;AAAA,MACrB,OAAO;AAAA,IACb;AAAA,EACE;AACA,QAAM,UAAU,KAAK,WAAW,OAAO,SAAS,QAAQ,eAAe,OAAO,KAAK;AACnF,QAAM,eAAe,MAAM,SAAS,KAAI;AACxC,QAAM,iBAAiB,eAAe,YAAY;AAClD,QAAM,cAAc,iBAAiB,MAAM,OAAO,YAAY,IAAI;AAClE,QAAM,eAAe;AAAA,IACnB;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,OAAO,cAAc,eAAe,CAAA,GAAI,WAAW,GAAG;AAAA,MACpD,QAAQ,SAAS;AAAA,MACjB,YAAY,SAAS;AAAA,IAC3B,CAAK;AAAA,EACL;AACE,aAAW,WAAW,MAAM,SAAS;AACnC,QAAI,SAAS;AACX,YAAM,QAAQ,cAAc,eAAe,CAAA,GAAI,YAAY,GAAG;AAAA,QAC5D,YAAY,KAAK,WAAW,OAAO,SAAS,QAAQ,gBAAgB,OAAO,SAAS,GAAG,iBAAiB,SAAS,MAAK,IAAK;AAAA,MACnI,CAAO,CAAC;AAAA,IACJ;AAAA,EACF;AACA,MAAI,WAAW,OAAO,SAAS,QAAQ,OAAO;AAC5C,UAAM,gBAAgB,oBAAoB,QAAQ,KAAK;AACvD,UAAM,iBAAiB,KAAK,QAAQ,iBAAiB,OAAO,KAAK;AACjE,QAAI,MAAM,cAAc,mBAAmB,eAAe,QAAQ,GAAG;AACnE,iBAAW,WAAW,MAAM,SAAS;AACnC,YAAI,SAAS;AACX,gBAAM,QAAQ,eAAe;AAAA,QAC/B;AAAA,MACF;AACA,YAAM,QAAQ,cAAc,SAAS,aAAa;AAClD,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,KAAK,CAAC;AACzD,aAAO,MAAM,YAAY,KAAK,cAAc,eAAe,CAAA,GAAI,OAAO,GAAG;AAAA,QACvE,cAAc,gBAAgB;AAAA,MACtC,CAAO,CAAC;AAAA,IACJ;AAAA,EACF;AACA,MAAI,WAAW,OAAO,SAAS,QAAQ,OAAO;AAC5C,UAAM,IAAI;AAAA,MACR,SAAS;AAAA,MACT,SAAS;AAAA,MACT,iBAAiB,cAAc;AAAA,IACrC;AAAA,EACE;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO,cAAc,eAAe,CAAA,GAAI,WAAW,GAAG;AAAA,MACpD,QAAQ,SAAS;AAAA,MACjB,YAAY,SAAS;AAAA,IAC3B,CAAK;AAAA,EACL;AACA;AC5oBA,MAAM,oBAAoB,OAAO,IAAI,+BAA+B;AACpE,MAAM,QAAQ,MAAM,KAAK,MAAM,KAAK,IAAG,IAAK,GAAG;AAC/C,IAAI,yBAAyB,MAAM;AAAA,EAClC,YAA4B,oBAAI,IAAG;AAAA,EACnC;AAAA,EACA,YAAY,OAAO,uBAAuB;AACzC,SAAK,OAAO;AAAA,EACb;AAAA,EACA,UAAU,UAAU;AACnB,SAAK,UAAU,IAAI,QAAQ;AAC3B,WAAO,MAAM;AACZ,WAAK,UAAU,OAAO,QAAQ;AAAA,IAC/B;AAAA,EACD;AAAA,EACA,KAAK,SAAS;AACb,QAAI,OAAO,WAAW,YAAa;AACnC,QAAI;AACH,mBAAa,QAAQ,KAAK,MAAM,KAAK,UAAU;AAAA,QAC9C,GAAG;AAAA,QACH,WAAW,MAAK;AAAA,MACpB,CAAI,CAAC;AAAA,IACH,QAAQ;AAAA,IAAC;AAAA,EACV;AAAA,EACA,QAAQ;AACP,QAAI,OAAO,WAAW,eAAe,OAAO,OAAO,qBAAqB,YAAa,QAAO,MAAM;AAAA,IAAC;AACnG,UAAM,UAAU,CAAC,UAAU;AAC1B,UAAI,MAAM,QAAQ,KAAK,KAAM;AAC7B,YAAM,UAAU,KAAK,MAAM,MAAM,YAAY,IAAI;AACjD,UAAI,SAAS,UAAU,aAAa,CAAC,SAAS,KAAM;AACpD,WAAK,UAAU,QAAQ,CAAC,aAAa,SAAS,OAAO,CAAC;AAAA,IACvD;AACA,WAAO,iBAAiB,WAAW,OAAO;AAC1C,WAAO,MAAM;AACZ,aAAO,oBAAoB,WAAW,OAAO;AAAA,IAC9C;AAAA,EACD;AACD;AACA,SAAS,0BAA0B,OAAO,uBAAuB;AAChE,MAAI,CAAC,WAAW,iBAAiB,EAAG,YAAW,iBAAiB,IAAI,IAAI,uBAAuB,IAAI;AACnG,SAAO,WAAW,iBAAiB;AACpC;AAIA,MAAM,gBAAgB,OAAO,IAAI,2BAA2B;AAC5D,IAAI,qBAAqB,MAAM;AAAA,EAC9B,YAA4B,oBAAI,IAAG;AAAA,EACnC,UAAU,UAAU;AACnB,SAAK,UAAU,IAAI,QAAQ;AAC3B,WAAO,MAAM;AACZ,WAAK,UAAU,OAAO,QAAQ;AAAA,IAC/B;AAAA,EACD;AAAA,EACA,WAAW,SAAS;AACnB,SAAK,UAAU,QAAQ,CAAC,aAAa,SAAS,OAAO,CAAC;AAAA,EACvD;AAAA,EACA,QAAQ;AACP,QAAI,OAAO,WAAW,eAAe,OAAO,aAAa,eAAe,OAAO,OAAO,qBAAqB,YAAa,QAAO,MAAM;AAAA,IAAC;AACtI,UAAM,UAAU,MAAM,KAAK,WAAW,IAAI;AAC1C,UAAM,oBAAoB,MAAM;AAC/B,UAAI,SAAS,oBAAoB,UAAW,MAAK,WAAW,IAAI;AAAA,IACjE;AACA,WAAO,iBAAiB,SAAS,SAAS,KAAK;AAC/C,aAAS,iBAAiB,oBAAoB,mBAAmB,KAAK;AACtE,WAAO,MAAM;AACZ,aAAO,oBAAoB,SAAS,SAAS,KAAK;AAClD,eAAS,oBAAoB,oBAAoB,mBAAmB,KAAK;AAAA,IAC1E;AAAA,EACD;AACD;AACA,SAAS,wBAAwB;AAChC,MAAI,CAAC,WAAW,aAAa,EAAG,YAAW,aAAa,IAAI,IAAI,mBAAkB;AAClF,SAAO,WAAW,aAAa;AAChC;AAIA,MAAM,iBAAiB,OAAO,IAAI,4BAA4B;AAC9D,IAAI,sBAAsB,MAAM;AAAA,EAC/B,YAA4B,oBAAI,IAAG;AAAA,EACnC,WAAW,OAAO,cAAc,cAAc,UAAU,SAAS;AAAA,EACjE,UAAU,UAAU;AACnB,SAAK,UAAU,IAAI,QAAQ;AAC3B,WAAO,MAAM;AACZ,WAAK,UAAU,OAAO,QAAQ;AAAA,IAC/B;AAAA,EACD;AAAA,EACA,UAAU,QAAQ;AACjB,SAAK,WAAW;AAChB,SAAK,UAAU,QAAQ,CAAC,aAAa,SAAS,MAAM,CAAC;AAAA,EACtD;AAAA,EACA,QAAQ;AACP,QAAI,OAAO,WAAW,eAAe,OAAO,OAAO,qBAAqB,YAAa,QAAO,MAAM;AAAA,IAAC;AACnG,UAAM,WAAW,MAAM,KAAK,UAAU,IAAI;AAC1C,UAAM,YAAY,MAAM,KAAK,UAAU,KAAK;AAC5C,WAAO,iBAAiB,UAAU,UAAU,KAAK;AACjD,WAAO,iBAAiB,WAAW,WAAW,KAAK;AACnD,WAAO,MAAM;AACZ,aAAO,oBAAoB,UAAU,UAAU,KAAK;AACpD,aAAO,oBAAoB,WAAW,WAAW,KAAK;AAAA,IACvD;AAAA,EACD;AACD;AACA,SAAS,yBAAyB;AACjC,MAAI,CAAC,WAAW,cAAc,EAAG,YAAW,cAAc,IAAI,IAAI,oBAAmB;AACrF,SAAO,WAAW,cAAc;AACjC;AAIA,MAAM,WAAW,MAAM,OAAO,WAAW;AACzC,MAAM,eAAe,CAAC,iBAAiB,MAAM,QAAQ,YAAY;AAChE,QAAM,QAAQ,qBAAK;AAAA,IAClB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,WAAW;AAAA,IACX,cAAc;AAAA,IACd,SAAS,CAAC,gBAAgB,GAAG,WAAW;AAAA,EAC1C,CAAE;AACD,QAAM,KAAK,OAAO,gBAAgB;AACjC,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC/B,YAAM,OAAO,OAAO,YAAY,aAAa,QAAQ;AAAA,QACpD,MAAM,MAAM,IAAG,EAAG;AAAA,QAClB,OAAO,MAAM,IAAG,EAAG;AAAA,QACnB,WAAW,MAAM,MAAM;AAAA,MAC3B,CAAI,IAAI;AACL,aAAO,MAAM;AAAA,QACZ,GAAG;AAAA,QACH,OAAO;AAAA,UACN,GAAG,MAAM;AAAA,UACT,GAAG,aAAa;AAAA,QACrB;AAAA,QACI,MAAM,UAAU,SAAS;AACxB,gBAAM,IAAI;AAAA,YACT,MAAM,QAAQ;AAAA,YACd,OAAO;AAAA,YACP,WAAW;AAAA,YACX,cAAc;AAAA,YACd,SAAS,MAAM,MAAM;AAAA,UAC3B,CAAM;AACD,gBAAM,MAAM,YAAY,OAAO;AAAA,QAChC;AAAA,QACA,MAAM,QAAQ,SAAS;AACtB,gBAAM,EAAE,QAAO,IAAK;AACpB,gBAAM,gBAAgB,OAAO,QAAQ,UAAU,WAAW,QAAQ,QAAQ,QAAQ,OAAO;AACzF,gBAAM,eAAe,QAAQ,gBAAgB;AAC7C,cAAI,iBAAiB,eAAe,cAAe;AACnD,gBAAM,IAAI;AAAA,YACT,OAAO,QAAQ;AAAA,YACf,MAAM;AAAA,YACN,WAAW;AAAA,YACX,cAAc;AAAA,YACd,SAAS,MAAM,MAAM;AAAA,UAC3B,CAAM;AACD,gBAAM,MAAM,UAAU,OAAO;AAAA,QAC9B;AAAA,QACA,MAAM,UAAU,SAAS;AACxB,gBAAM,eAAe,MAAM,IAAG;AAC9B,gBAAM,IAAI;AAAA,YACT,WAAW,aAAa,SAAS;AAAA,YACjC,MAAM,aAAa;AAAA,YACnB,OAAO;AAAA,YACP,cAAc;AAAA,YACd,SAAS,MAAM,MAAM;AAAA,UAC3B,CAAM;AACD,gBAAM,MAAM,YAAY,OAAO;AAAA,QAChC;AAAA,MACJ,CAAI,EAAE,MAAM,CAAC,UAAU;AACnB,cAAM,IAAI;AAAA,UACT;AAAA,UACA,MAAM;AAAA,UACN,WAAW;AAAA,UACX,cAAc;AAAA,UACd,SAAS,MAAM,MAAM;AAAA,QAC1B,CAAK;AAAA,MACF,CAAC,EAAE,QAAQ,MAAM;AAChB,gBAAQ,MAAM;AAAA,MACf,CAAC;AAAA,IACF,CAAC;AAAA,EACF;AACA,oBAAkB,MAAM,QAAQ,eAAe,IAAI,kBAAkB,CAAC,eAAe;AACrF,MAAI,YAAY;AAChB,aAAW,YAAY,gBAAiB,UAAS,UAAU,YAAY;AACtE,QAAI,SAAQ,EAAI;AAChB,QAAI,UAAW,OAAM,GAAE;AAAA,QAClB,SAAQ,OAAO,MAAM;AACzB,YAAM,YAAY,WAAW,YAAY;AACxC,YAAI,CAAC,WAAW;AACf,gBAAM,GAAE;AACR,sBAAY;AAAA,QACb;AAAA,MACD,GAAG,CAAC;AACJ,aAAO,MAAM;AACZ,cAAM,IAAG;AACT,iBAAS,IAAG;AACZ,qBAAa,SAAS;AAAA,MACvB;AAAA,IACD,CAAC;AAAA,EACF,CAAC;AACD,SAAO;AACR;AAIA,MAAM,MAAM,MAAM,KAAK,MAAM,KAAK,IAAG,IAAK,GAAG;AAI7C,MAAM,mCAAmC;AACzC,SAAS,4BAA4B,MAAM;AAC1C,QAAM,EAAE,aAAa,eAAe,QAAQ,UAAU,CAAA,EAAE,IAAK;AAC7D,QAAM,kBAAkB,QAAQ,gBAAgB,mBAAmB;AACnE,QAAM,uBAAuB,QAAQ,gBAAgB,wBAAwB;AAC7E,QAAM,qBAAqB,QAAQ,gBAAgB,sBAAsB;AACzE,QAAM,QAAQ;AAAA,IACb,UAAU;AAAA,IACV,oBAAoB;AAAA,IACpB,eAAe;AAAA,EACjB;AACC,QAAM,gBAAgB,MAAM;AAC3B,WAAO,sBAAsB,uBAAsB,EAAG;AAAA,EACvD;AACA,QAAM,iBAAiB,CAAC,UAAU;AACjC,QAAI,CAAC,cAAa,EAAI;AACtB,QAAI,OAAO,UAAU,WAAW;AAC/B,YAAM,WAAW,IAAG;AACpB,oBAAc,IAAI,CAAC,cAAc,IAAG,CAAE;AACtC;AAAA,IACD;AACA,UAAM,iBAAiB,YAAY,IAAG;AACtC,QAAI,OAAO,UAAU,QAAQ;AAC5B,YAAM,qBAAqB,IAAG;AAC9B,aAAO,cAAc,EAAE,KAAK,CAAC,QAAQ;AACpC,oBAAY,IAAI;AAAA,UACf,GAAG;AAAA,UACH,MAAM,IAAI;AAAA,UACV,OAAO,IAAI,SAAS;AAAA,QACzB,CAAK;AACD,cAAM,WAAW,IAAG;AACpB,sBAAc,IAAI,CAAC,cAAc,IAAG,CAAE;AAAA,MACvC,CAAC,EAAE,MAAM,MAAM;AAAA,MAAC,CAAC;AACjB;AAAA,IACD;AACA,QAAI,OAAO,UAAU,oBAAoB;AACxC,UAAI,IAAG,IAAK,MAAM,qBAAqB,oCAAoC,gBAAgB,SAAS,QAAQ,gBAAgB,SAAS,OAAQ;AAAA,IAC9I;AACA,QAAI,gBAAgB,SAAS,QAAQ,gBAAgB,SAAS,UAAU,OAAO,UAAU,oBAAoB;AAC5G,UAAI,OAAO,UAAU,mBAAoB,OAAM,qBAAqB,IAAG;AACvE,YAAM,WAAW,IAAG;AACpB,oBAAc,IAAI,CAAC,cAAc,IAAG,CAAE;AAAA,IACvC;AAAA,EACD;AACA,QAAM,yBAAyB,CAAC,YAAY;AAC3C,8BAAyB,EAAG,KAAK;AAAA,MAChC,OAAO;AAAA,MACP,MAAM,EAAE,QAAO;AAAA,MACf,UAAU,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,UAAU,CAAC;AAAA,IACnD,CAAG;AAAA,EACF;AACA,QAAM,eAAe,MAAM;AAC1B,QAAI,mBAAmB,kBAAkB,EAAG,OAAM,eAAe,YAAY,MAAM;AAClF,UAAI,YAAY,OAAO,KAAM,gBAAe,EAAE,OAAO,QAAQ;AAAA,IAC9D,GAAG,kBAAkB,GAAG;AAAA,EACzB;AACA,QAAM,iBAAiB,MAAM;AAC5B,UAAM,uBAAuB,0BAAyB,EAAG,UAAU,MAAM;AACxE,qBAAe,EAAE,OAAO,WAAW;AAAA,IACpC,CAAC;AAAA,EACF;AACA,QAAM,oBAAoB,MAAM;AAC/B,QAAI,CAAC,qBAAsB;AAC3B,UAAM,mBAAmB,sBAAqB,EAAG,UAAU,MAAM;AAChE,qBAAe,EAAE,OAAO,oBAAoB;AAAA,IAC7C,CAAC;AAAA,EACF;AACA,QAAM,qBAAqB,MAAM;AAChC,UAAM,oBAAoB,uBAAsB,EAAG,UAAU,CAAC,WAAW;AACxE,UAAI,OAAQ,gBAAe,EAAE,OAAO,mBAAkB,CAAE;AAAA,IACzD,CAAC;AAAA,EACF;AACA,QAAM,OAAO,MAAM;AAClB,iBAAY;AACZ,mBAAc;AACd,sBAAiB;AACjB,uBAAkB;AAClB,8BAAyB,EAAG,MAAK;AACjC,0BAAqB,EAAG,MAAK;AAC7B,2BAAsB,EAAG,MAAK;AAAA,EAC/B;AACA,QAAM,UAAU,MAAM;AACrB,QAAI,MAAM,cAAc;AACvB,oBAAc,MAAM,YAAY;AAChC,YAAM,eAAe;AAAA,IACtB;AACA,QAAI,MAAM,sBAAsB;AAC/B,YAAM,qBAAoB;AAC1B,YAAM,uBAAuB;AAAA,IAC9B;AACA,QAAI,MAAM,kBAAkB;AAC3B,YAAM,iBAAgB;AACtB,YAAM,mBAAmB;AAAA,IAC1B;AACA,QAAI,MAAM,mBAAmB;AAC5B,YAAM,kBAAiB;AACvB,YAAM,oBAAoB;AAAA,IAC3B;AACA,UAAM,WAAW;AACjB,UAAM,qBAAqB;AAC3B,UAAM,gBAAgB;AAAA,EACvB;AACA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA;AAIA,MAAM,iBAAiB;AAAA,EACtB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,OAAO,EAAE,UAAU,SAAS;AAC3B,QAAI,QAAQ,MAAM,OAAO,QAAQ,MAAM,UAAU;AAChD,UAAI,OAAO,WAAW,eAAe,OAAO,UAAU;AACrD,YAAI,OAAO,SAAU,KAAI;AACxB,iBAAO,SAAS,OAAO,QAAQ,KAAK;AAAA,QACrC,QAAQ;AAAA,QAAC;AAAA,MACV;AAAA,IACD;AAAA,EACD,EAAC;AACF;AACA,MAAM,kBAAkB;AAAA,EACvB,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,OAAO,EAAE,UAAU,SAAS;AAC3B,YAAQ,QAAQ,OAAO,cAAc,aAAa;AAAA,EACnD,EAAC;AACF;AAIA,SAAS,eAAe,QAAQ,SAAS;AACxC,QAAM,UAAU,qBAAK,KAAK;AAC1B,QAAM,UAAU,aAAa,SAAS,gBAAgB,QAAQ,EAAE,QAAQ,OAAO;AAC/E,UAAQ,SAAS,MAAM;AACtB,UAAM,iBAAiB,4BAA4B;AAAA,MAClD,aAAa;AAAA,MACb,eAAe;AAAA,MACf;AAAA,MACA;AAAA,IACH,CAAG;AACD,mBAAe,KAAI;AACnB,WAAO,MAAM;AACZ,qBAAe,QAAO;AAAA,IACvB;AAAA,EACD,CAAC;AACD,SAAO;AAAA,IACN;AAAA,IACA,gBAAgB;AAAA,EAClB;AACA;AAIA,MAAM,kBAAkB,CAAC,SAAS,YAAY;AAC7C,QAAM,yBAAyB,iBAAiB,QAAQ;AACxD,QAAM,UAAU,WAAW,SAAS,SAAS,SAAS,QAAyB,KAAK;AACpF,QAAM,sBAAsB,SAAS,SAAS,QAAQ,CAAC,WAAW,OAAO,YAAY,EAAE,OAAO,CAAC,OAAO,OAAO,MAAM,KAAK,CAAA;AACxH,QAAM,kBAAkB;AAAA,IACvB,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,MACN,WAAW,SAAS,cAAc;AAAA,MAClC,SAAS,SAAS,cAAc;AAAA,MAChC,WAAW,SAAS,cAAc;AAAA,MAClC,YAAY,SAAS,cAAc;AAAA,IACtC;AAAA,EACA;AACC,QAAM,EAAE,WAAW,SAAS,WAAW,YAAY,GAAG,mBAAkB,IAAK,SAAS,gBAAgB,CAAA;AACtG,QAAM,SAAS,YAAY;AAAA,IAC1B;AAAA,IACA,GAAG,yBAAyB,EAAE,aAAa,UAAS,IAAK,CAAA;AAAA,IACzD,QAAQ;AAAA,IACR,WAAW,MAAM;AAChB,UAAI,CAAC,KAAM,QAAO;AAClB,aAAO,UAAU,MAAM,EAAE,QAAQ,MAAK,CAAE;AAAA,IACzC;AAAA,IACA,iBAAiB;AAAA,IACjB,GAAG;AAAA,IACH,SAAS;AAAA,MACR;AAAA,MACA,GAAG,mBAAmB,WAAW,CAAA;AAAA,MACjC,GAAG,SAAS,6BAA6B,CAAA,IAAK,CAAC,iBAAiB,cAAc;AAAA,MAC9E,GAAG;AAAA,IACN;AAAA,EACA,CAAE;AACD,QAAM,EAAE,gBAAgB,QAAO,IAAK,eAAe,QAAQ,OAAO;AAClE,QAAM,UAAU,SAAS,WAAW,CAAA;AACpC,MAAI,iBAAiB,CAAA;AACrB,MAAI,eAAe;AAAA,IAClB;AAAA,IACA;AAAA,EACF;AACC,MAAI,oBAAoB;AAAA,IACvB,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,0BAA0B;AAAA,IAC1B,gBAAgB;AAAA,EAClB;AACC,QAAM,gBAAgB,CAAC;AAAA,IACtB,QAAQ;AAAA,IACR,QAAQ,MAAM;AACb,aAAO,SAAS,eAAe,SAAS,kBAAkB,SAAS,oBAAoB,SAAS,oBAAoB,SAAS,kBAAkB,SAAS,mBAAmB,SAAS,sBAAsB,SAAS,qBAAqB,SAAS;AAAA,IAClP;AAAA,EACF,CAAE;AACD,aAAW,UAAU,SAAS;AAC7B,QAAI,OAAO,SAAU,QAAO,OAAO,cAAc,OAAO,WAAW,MAAM,CAAC;AAC1E,QAAI,OAAO,YAAa,QAAO,OAAO,mBAAmB,OAAO,WAAW;AAC3E,QAAI,OAAO,cAAe,eAAc,KAAK,GAAG,OAAO,aAAa;AAAA,EACrE;AACA,QAAM,SAAS;AAAA,IACd,QAAQ,CAAC,WAAW;AACnB,mBAAa,MAAM,EAAE,IAAI,CAAC,aAAa,MAAM,EAAE,KAAK;AAAA,IACrD;AAAA,IACA,QAAQ,CAAC,QAAQ,aAAa;AAC7B,mBAAa,MAAM,EAAE,UAAU,QAAQ;AAAA,IACxC;AAAA,IACA,OAAO;AAAA,EACT;AACC,aAAW,UAAU,QAAS,KAAI,OAAO,WAAY,QAAO,OAAO,gBAAgB,OAAO,aAAa,QAAQ,QAAQ,OAAO,CAAC;AAC/H,SAAO;AAAA,IACN,IAAI,UAAU;AACb,aAAO;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA;AAIA,SAAS,OAAO,OAAO;AACtB,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,SAAS,SAAS,OAAO,MAAM,QAAQ,cAAc,QAAQ,SAAS,OAAO,MAAM,OAAO;AACjJ;AAIA,SAAS,UAAU,MAAM,kBAAkB,MAAM;AAChD,QAAM,SAAS,iBAAiB,IAAI;AACpC,QAAM,EAAE,cAAc,OAAO,GAAG,KAAI,IAAK,QAAQ,CAAA;AACjD,MAAI,OAAQ,QAAO;AACnB,MAAI,cAAc,OAAQ,QAAO,aAAa;AAC9C,MAAI,QAAQ,OAAO,KAAK,IAAI,EAAE,SAAS,EAAG,QAAO;AACjD,SAAO;AACR;AACA,SAAS,uBAAuB,QAAQ,QAAQ,kBAAkB,OAAO,eAAe;AACvF,WAAS,YAAY,OAAO,IAAI;AAC/B,WAAO,IAAI,MAAM,WAAW;AAAA,IAAC,GAAG;AAAA,MAC/B,IAAI,GAAG,MAAM;AACZ,YAAI,OAAO,SAAS,SAAU;AAC9B,YAAI,SAAS,UAAU,SAAS,WAAW,SAAS,UAAW;AAC/D,cAAM,WAAW,CAAC,GAAG,MAAM,IAAI;AAC/B,YAAI,UAAU;AACd,mBAAW,WAAW,SAAU,KAAI,WAAW,OAAO,YAAY,YAAY,WAAW,QAAS,WAAU,QAAQ,OAAO;AAAA,aACtH;AACJ,oBAAU;AACV;AAAA,QACD;AACA,YAAI,OAAO,YAAY,WAAY,QAAO;AAC1C,YAAI,OAAO,OAAO,EAAG,QAAO;AAC5B,eAAO,YAAY,QAAQ;AAAA,MAC5B;AAAA,MACA,OAAO,OAAO,GAAG,IAAI,SAAS;AAC7B,cAAM,YAAY,MAAM,KAAK,IAAI,CAAC,YAAY,QAAQ,QAAQ,UAAU,CAAC,WAAW,IAAI,OAAO,YAAW,CAAE,EAAE,CAAC,EAAE,KAAK,GAAG;AACzH,cAAM,MAAM,KAAK,CAAC,KAAK,CAAA;AACvB,cAAM,eAAe,KAAK,CAAC,KAAK,CAAA;AAChC,cAAM,EAAE,OAAO,cAAc,iBAAiB,GAAG,KAAI,IAAK;AAC1D,cAAM,UAAU;AAAA,UACf,GAAG;AAAA,UACH,GAAG;AAAA,QACR;AACI,cAAM,SAAS,UAAU,WAAW,kBAAkB,GAAG;AACzD,eAAO,MAAM,OAAO,WAAW;AAAA,UAC9B,GAAG;AAAA,UACH,MAAM,WAAW,QAAQ,SAAS;AAAA,YACjC,GAAG;AAAA,YACH,GAAG,SAAS,QAAQ,CAAA;AAAA,UAC1B;AAAA,UACK,OAAO,SAAS,SAAS;AAAA,UACzB;AAAA,UACA,MAAM,UAAU,SAAS;AACxB,kBAAM,SAAS,YAAY,OAAO;AAClC,gBAAI,CAAC,iBAAiB,QAAQ,cAAe;AAI7C,kBAAM,UAAU,cAAc,OAAO,CAAC,MAAM,EAAE,QAAQ,SAAS,CAAC;AAChE,gBAAI,CAAC,QAAQ,OAAQ;AACrB,uBAAW,SAAS,SAAS;AAC5B,oBAAM,SAAS,MAAM,MAAM,MAAM;AACjC,kBAAI,CAAC,OAAQ;AAIb,oBAAM,MAAM,OAAO,IAAG;AACtB,yBAAW,MAAM;AAChB,uBAAO,IAAI,CAAC,GAAG;AAAA,cAChB,GAAG,EAAE;AAAA,YACN;AAAA,UACD;AAAA,QACL,CAAK;AAAA,MACF;AAAA,IACH,CAAG;AAAA,EACF;AACA,SAAO,YAAW;AACnB;ACjfA,SAAS,SAAS,OAAO,UAAU,IAAI;AACtC,MAAI,cAAc,OAAO,MAAM,IAAG,CAAE;AACpC,QAAM,EAAE,MAAM,OAAO,CAAC,OAAO,IAAI,EAAC,IAAK;AACvC,MAAI,YAAY,YAAY,CAAC,aAAa;AACzC,UAAM,aAAa,CAAC,UAAU;AAC7B,UAAI,YAAY,YAAY,MAAO;AACnC,kBAAY,UAAU;AACtB,eAAQ;AAAA,IACT;AACA,eAAW,MAAM,KAAK;AACtB,QAAI,MAAM,OAAQ,QAAO,WAAW,OAAO,MAAM,UAAU;AAC3D,WAAO,MAAM,OAAO,UAAU;AAAA,EAC/B,GAAG,IAAI;AACP,MAAI,MAAM,MAAM,YAAY;AAC5B,SAAO,qBAAqB,WAAW,KAAK,GAAG;AAChD;AAIA,SAAS,WAAW,KAAK;AACxB,SAAO,MAAM,sBAAsB,GAAG,CAAC;AACxC;AACA,SAAS,sBAAsB,KAAK;AACnC,SAAO,IAAI,OAAO,CAAC,EAAE,YAAW,IAAK,IAAI,MAAM,CAAC;AACjD;AACA,SAAS,iBAAiB,SAAS;AAClC,QAAM,EAAE,mBAAmB,gBAAgB,cAAc,QAAQ,QAAQ,cAAa,IAAK,gBAAgB,OAAO;AAClH,MAAI,gBAAgB,CAAA;AACpB,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,YAAY,EAAG,eAAc,WAAW,GAAG,CAAC,IAAI,MAAM,SAAS,KAAK;AAC9G,SAAO,uBAAuB;AAAA,IAC7B,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA;AAAA,EACF,GAAI,QAAQ,mBAAmB,cAAc,aAAa;AAC1D;AC9DO,MAAM,aAAa,iBAAiB;AAAA,EACvC,SAAS,UAAU;AACvB,CAAC;","x_google_ignoreList":[1,2,3,4,5,6,7,8,9]}
package/dist/client.d.ts CHANGED
@@ -12,7 +12,9 @@ import { RetryOptions } from '@better-fetch/fetch';
12
12
  import { SessionQueryParams } from 'better-auth';
13
13
  import { StandardSchemaV1 } from '@better-fetch/fetch';
14
14
  import { SuccessContext } from '@better-fetch/fetch';
15
+ import { t } from 'i18next';
15
16
  import { u } from 'node_modules/better-auth/dist/helper-DU33OcfW.d.mts';
17
+ import { useTranslation } from 'react-i18next';
16
18
  import { WritableAtom } from 'nanostores';
17
19
 
18
20
  export declare const authClient: {
@@ -712,6 +714,10 @@ export declare class Platform {
712
714
  private static get userAgent();
713
715
  }
714
716
 
717
+ export { t }
718
+
719
+ export { useTranslation }
720
+
715
721
  export declare const WISTRON_PRIMARY_COLOR = "#00506E";
716
722
 
717
723
  export declare const WISTRON_SECONDARY_COLOR = "#64DC00";
package/dist/client.js CHANGED
@@ -1,9 +1,13 @@
1
- import { W, b, a } from "./auth-client-o9U0_qmf.js";
2
- import { P } from "./utils-JYv9O0GI.js";
1
+ import { W, b, a } from "./auth-client-B6cIXYDV.js";
2
+ import { t } from "i18next";
3
+ import { useTranslation } from "react-i18next";
4
+ import { P } from "./utils-DKyKGba7.js";
3
5
  export {
4
6
  P as Platform,
5
7
  W as WISTRON_PRIMARY_COLOR,
6
8
  b as WISTRON_SECONDARY_COLOR,
7
- a as authClient
9
+ a as authClient,
10
+ t,
11
+ useTranslation
8
12
  };
9
13
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"client.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,4 +1,4 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
1
+ import { j as jsxRuntimeExports, u as useDialogs } from "./DialogsHooks-Bi8dZoyu.js";
2
2
  import { Typography, Stack, Box, useTheme, Paper, Menu, List, ListItemButton, ListItemIcon, ListItemText, ImageListItem, ImageListItemBar, IconButton, Tooltip, Dialog, Fab, Chip, Button, Link, Tab, Divider } from "@mui/material";
3
3
  import React, { useRef, useState, useEffectEvent, useEffect, createContext, useContext, Fragment } from "react";
4
4
  import CloudUpload from "@mui/icons-material/CloudUpload";
@@ -9,8 +9,7 @@ import { grey } from "@mui/material/colors";
9
9
  import { useInView } from "react-intersection-observer";
10
10
  import Delete from "@mui/icons-material/Delete";
11
11
  import FileDownload from "@mui/icons-material/FileDownload";
12
- import { u as useDialogs } from "./DialogsHooks-BlUsVlfv.js";
13
- import { c as useDownloadFile, f as useDeleteFile, a as useGetFileThumbnail, d as useOpenFile, b as useGetFile, u as useGetFileMetas } from "./FileHooks-BbjesS5D.js";
12
+ import { c as useDownloadFile, f as useDeleteFile, a as useGetFileThumbnail, d as useOpenFile, b as useGetFile, u as useGetFileMetas } from "./FileHooks-hWKTwLCr.js";
14
13
  import AttachFile from "@mui/icons-material/AttachFile";
15
14
  import Image from "@mui/icons-material/Image";
16
15
  import SmartDisplay from "@mui/icons-material/SmartDisplay";
@@ -18,7 +17,7 @@ import Close from "@mui/icons-material/Close";
18
17
  import Edit from "@mui/icons-material/Edit";
19
18
  import { createLink } from "@tanstack/react-router";
20
19
  import { GridActionsCellItem } from "@mui/x-data-grid-premium";
21
- import { R } from "./RouterListItemButton-Cx7rXEfm.js";
20
+ import { R } from "./RouterListItemButton-CHS7rofI.js";
22
21
  const TypographyWithIcon = ({ startIcon, endIcon, children, sx, ...props }) => {
23
22
  const iconSx = {
24
23
  display: "inline-flex",
@@ -30,7 +29,7 @@ const TypographyWithIcon = ({ startIcon, endIcon, children, sx, ...props }) => {
30
29
  display: "block"
31
30
  }
32
31
  };
33
- return /* @__PURE__ */ jsxs(
32
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
34
33
  Typography,
35
34
  {
36
35
  component: "span",
@@ -43,9 +42,9 @@ const TypographyWithIcon = ({ startIcon, endIcon, children, sx, ...props }) => {
43
42
  gap: 1,
44
43
  ...props,
45
44
  children: [
46
- startIcon && /* @__PURE__ */ jsx(Stack, { component: "span", sx: iconSx, children: startIcon }),
47
- /* @__PURE__ */ jsx(Stack, { component: "span", sx: { display: "inline", lineHeight: "inherit" }, children }),
48
- endIcon && /* @__PURE__ */ jsx(Stack, { component: "span", sx: iconSx, children: endIcon })
45
+ startIcon && /* @__PURE__ */ jsxRuntimeExports.jsx(Stack, { component: "span", sx: iconSx, children: startIcon }),
46
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Stack, { component: "span", sx: { display: "inline", lineHeight: "inherit" }, children }),
47
+ endIcon && /* @__PURE__ */ jsxRuntimeExports.jsx(Stack, { component: "span", sx: iconSx, children: endIcon })
49
48
  ]
50
49
  }
51
50
  );
@@ -73,7 +72,7 @@ const Fullscreen = ({ children, sx, ...props }) => {
73
72
  ro.disconnect();
74
73
  };
75
74
  }, []);
76
- return /* @__PURE__ */ jsx(
75
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
77
76
  Box,
78
77
  {
79
78
  ref: reference,
@@ -114,10 +113,10 @@ const Dropzone = ({ sx, ...props }) => {
114
113
  ...isDragAccept ? { borderColor: theme.palette.success.main } : {},
115
114
  ...isDragReject ? { borderColor: theme.palette.error.main } : {}
116
115
  };
117
- return /* @__PURE__ */ jsxs(Paper, { variant: "outlined", ...getRootProps({ style }), sx, children: [
118
- /* @__PURE__ */ jsx("input", { ...getInputProps(), style: { display: "none" } }),
119
- /* @__PURE__ */ jsx(CloudUpload, {}),
120
- /* @__PURE__ */ jsx(Typography, { children: t("Layout.File.DragSomeFilesHereOrClickToSelectThem") })
116
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(Paper, { variant: "outlined", ...getRootProps({ style }), sx, children: [
117
+ /* @__PURE__ */ jsxRuntimeExports.jsx("input", { ...getInputProps(), style: { display: "none" } }),
118
+ /* @__PURE__ */ jsxRuntimeExports.jsx(CloudUpload, {}),
119
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { children: t("Layout.File.DragSomeFilesHereOrClickToSelectThem") })
121
120
  ] });
122
121
  };
123
122
  const FileContext = createContext(null);
@@ -151,7 +150,7 @@ const ActionsMenu = ({ meta, menu, setMenu }) => {
151
150
  onDelete({ remainingFileMetas, deletedFileMeta: meta });
152
151
  }
153
152
  };
154
- return /* @__PURE__ */ jsx(
153
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
155
154
  Menu,
156
155
  {
157
156
  open: menu !== null,
@@ -159,14 +158,14 @@ const ActionsMenu = ({ meta, menu, setMenu }) => {
159
158
  anchorReference: "anchorPosition",
160
159
  variant: "menu",
161
160
  anchorPosition: menu === null ? void 0 : { top: menu.mouseY, left: menu.mouseX },
162
- children: /* @__PURE__ */ jsxs(List, { disablePadding: true, children: [
163
- actions?.download !== false && /* @__PURE__ */ jsxs(ListItemButton, { onClick: handleOnDownload, disabled: isDownloading, children: [
164
- /* @__PURE__ */ jsx(ListItemIcon, { children: /* @__PURE__ */ jsx(FileDownload, {}) }),
165
- /* @__PURE__ */ jsx(ListItemText, { children: t("Layout.File.Download") })
161
+ children: /* @__PURE__ */ jsxRuntimeExports.jsxs(List, { disablePadding: true, children: [
162
+ actions?.download !== false && /* @__PURE__ */ jsxRuntimeExports.jsxs(ListItemButton, { onClick: handleOnDownload, disabled: isDownloading, children: [
163
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ListItemIcon, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(FileDownload, {}) }),
164
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ListItemText, { children: t("Layout.File.Download") })
166
165
  ] }),
167
- actions?.delete !== false && /* @__PURE__ */ jsxs(ListItemButton, { onClick: handleOnDelete, disabled: isDeleting, children: [
168
- /* @__PURE__ */ jsx(ListItemIcon, { children: /* @__PURE__ */ jsx(Delete, {}) }),
169
- /* @__PURE__ */ jsx(ListItemText, { children: t("Layout.File.Delete") })
166
+ actions?.delete !== false && /* @__PURE__ */ jsxRuntimeExports.jsxs(ListItemButton, { onClick: handleOnDelete, disabled: isDeleting, children: [
167
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ListItemIcon, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Delete, {}) }),
168
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ListItemText, { children: t("Layout.File.Delete") })
170
169
  ] })
171
170
  ] })
172
171
  }
@@ -175,7 +174,7 @@ const ActionsMenu = ({ meta, menu, setMenu }) => {
175
174
  const IMAGE_SIZE = 150;
176
175
  const FileViewerGrid = ({ sx, size, itemBar }) => {
177
176
  const { fileMetas } = useFile();
178
- return /* @__PURE__ */ jsx(Stack, { direction: "row", spacing: 1, sx: { overflow: "auto", ...sx }, children: fileMetas.map((fileMeta) => /* @__PURE__ */ jsx(
177
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Stack, { direction: "row", spacing: 1, sx: { overflow: "auto", ...sx }, children: fileMetas.map((fileMeta) => /* @__PURE__ */ jsxRuntimeExports.jsx(
179
178
  GridFileViewerItem,
180
179
  {
181
180
  meta: fileMeta,
@@ -218,9 +217,9 @@ const GridFileViewerItem = ({ meta, size, itemBar }) => {
218
217
  }
219
218
  }
220
219
  };
221
- return /* @__PURE__ */ jsxs(Fragment, { children: [
222
- /* @__PURE__ */ jsxs(ImageListItem, { sx: { width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }, onMouseEnter: handleOnMouseEnter, onMouseLeave: handleOnMouseLeave, ref, children: [
223
- /* @__PURE__ */ jsx(
220
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
221
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(ImageListItem, { sx: { width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }, onMouseEnter: handleOnMouseEnter, onMouseLeave: handleOnMouseLeave, ref, children: [
222
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
224
223
  Box,
225
224
  {
226
225
  component: "img",
@@ -231,21 +230,21 @@ const GridFileViewerItem = ({ meta, size, itemBar }) => {
231
230
  sx: { cursor: "pointer", objectFit: "contain", width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }
232
231
  }
233
232
  ),
234
- itemBar !== "hidden" && showItemBar && /* @__PURE__ */ jsx(
233
+ itemBar !== "hidden" && showItemBar && /* @__PURE__ */ jsxRuntimeExports.jsx(
235
234
  ImageListItemBar,
236
235
  {
237
- title: /* @__PURE__ */ jsx(Tooltip, { title: meta.fileName, children: /* @__PURE__ */ jsx(Box, { children: meta.fileName }) }),
238
- actionIcon: (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx(IconButton, { sx: { color: grey[100] }, onClick: openMenu, children: /* @__PURE__ */ jsx(MoreVert, {}) })
236
+ title: /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip, { title: meta.fileName, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { children: meta.fileName }) }),
237
+ actionIcon: (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { sx: { color: grey[100] }, onClick: openMenu, children: /* @__PURE__ */ jsxRuntimeExports.jsx(MoreVert, {}) })
239
238
  }
240
239
  )
241
240
  ] }),
242
- (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx(ActionsMenu, { meta, menu, setMenu })
241
+ (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsxRuntimeExports.jsx(ActionsMenu, { meta, menu, setMenu })
243
242
  ] });
244
243
  };
245
244
  const FileViewerList = ({ sx }) => {
246
245
  const { fileMetas } = useFile();
247
- return /* @__PURE__ */ jsx(List, { dense: true, sx, children: fileMetas.map(
248
- (fileMeta) => /* @__PURE__ */ jsx(
246
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(List, { dense: true, sx, children: fileMetas.map(
247
+ (fileMeta) => /* @__PURE__ */ jsxRuntimeExports.jsx(
249
248
  ListFileViewerItem,
250
249
  {
251
250
  meta: fileMeta
@@ -282,23 +281,23 @@ const ListFileViewerItem = ({ meta }) => {
282
281
  const icon = () => {
283
282
  switch (meta.mediaType) {
284
283
  case "image": {
285
- return /* @__PURE__ */ jsx(Image, {});
284
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Image, {});
286
285
  }
287
286
  case "video": {
288
- return /* @__PURE__ */ jsx(SmartDisplay, {});
287
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(SmartDisplay, {});
289
288
  }
290
289
  default: {
291
- return /* @__PURE__ */ jsx(AttachFile, {});
290
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(AttachFile, {});
292
291
  }
293
292
  }
294
293
  };
295
- return /* @__PURE__ */ jsxs(Fragment, { children: [
296
- /* @__PURE__ */ jsxs(ListItemButton, { onClick, children: [
297
- /* @__PURE__ */ jsx(ListItemIcon, { children: icon() }),
298
- /* @__PURE__ */ jsx(ListItemText, { primary: `${meta.fileName}.${meta.fileExtension}` }),
299
- (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx(IconButton, { edge: "end", onClick: openMenu, children: /* @__PURE__ */ jsx(MoreVert, {}) })
294
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
295
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(ListItemButton, { onClick, children: [
296
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ListItemIcon, { children: icon() }),
297
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ListItemText, { primary: `${meta.fileName}.${meta.fileExtension}` }),
298
+ (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { edge: "end", onClick: openMenu, children: /* @__PURE__ */ jsxRuntimeExports.jsx(MoreVert, {}) })
300
299
  ] }, meta.id),
301
- (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx(ActionsMenu, { meta, menu, setMenu })
300
+ (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsxRuntimeExports.jsx(ActionsMenu, { meta, menu, setMenu })
302
301
  ] });
303
302
  };
304
303
  const ImageViewer = ({ metaId }) => {
@@ -343,9 +342,9 @@ const ImageViewer = ({ metaId }) => {
343
342
  };
344
343
  const onClose = () => setImageId("");
345
344
  if (!metaId) return null;
346
- return /* @__PURE__ */ jsxs(Dialog, { open: true, onClose, maxWidth: "xl", children: [
347
- /* @__PURE__ */ jsx(Box, { component: "img", src: source, alt: metaId, sx: { maxWidth: "100vw", maxHeight: { xs: "calc(100vh - 56px)", sm: "calc(100vh - 64px)" } } }),
348
- /* @__PURE__ */ jsx(Fab, { size: "medium", onClick: onClose, sx: { position: "fixed", top: 8, right: 8 }, children: /* @__PURE__ */ jsx(Close, {}) })
345
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(Dialog, { open: true, onClose, maxWidth: "xl", children: [
346
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { component: "img", src: source, alt: metaId, sx: { maxWidth: "100vw", maxHeight: { xs: "calc(100vh - 56px)", sm: "calc(100vh - 64px)" } } }),
347
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Fab, { size: "medium", onClick: onClose, sx: { position: "fixed", top: 8, right: 8 }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Close, {}) })
349
348
  ] });
350
349
  };
351
350
  const FileViewer = ({ subId, onDelete, actions, children }) => {
@@ -353,9 +352,9 @@ const FileViewer = ({ subId, onDelete, actions, children }) => {
353
352
  const [imageId, setImageId] = useState("");
354
353
  const components = { Grid: FileViewerGrid, List: FileViewerList };
355
354
  if (fileMetas.length === 0) return null;
356
- return /* @__PURE__ */ jsxs(FileContext.Provider, { value: { fileMetas, onDelete, actions, setImageId }, children: [
355
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(FileContext.Provider, { value: { fileMetas, onDelete, actions, setImageId }, children: [
357
356
  children(components),
358
- /* @__PURE__ */ jsx(ImageViewer, { metaId: imageId })
357
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ImageViewer, { metaId: imageId })
359
358
  ] });
360
359
  };
361
360
  const isArray = (value) => Array.isArray(value);
@@ -366,64 +365,64 @@ const ChipInputCell = ({ params, slotProps, getLabel }) => {
366
365
  return value;
367
366
  };
368
367
  if (isArray(params.value))
369
- return /* @__PURE__ */ jsx(Stack, { direction: "row", alignItems: "center", gap: 1, sx: { overflowX: "auto", height: "100%", width: params.colDef.computedWidth }, children: params.value.map(
370
- (value, index) => /* @__PURE__ */ jsx(Chip, { label: getLabelValue(value), ...slotProps }, `${index + 1}-chip-input-cell`)
368
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Stack, { direction: "row", alignItems: "center", gap: 1, sx: { overflowX: "auto", height: "100%", width: params.colDef.computedWidth }, children: params.value.map(
369
+ (value, index) => /* @__PURE__ */ jsxRuntimeExports.jsx(Chip, { label: getLabelValue(value), ...slotProps }, `${index + 1}-chip-input-cell`)
371
370
  ) });
372
- return /* @__PURE__ */ jsx(Chip, { label: getLabelValue(params.value), ...slotProps });
371
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Chip, { label: getLabelValue(params.value), ...slotProps });
373
372
  };
374
373
  const EditableColumnHeader = ({ colDef }) => {
375
- return /* @__PURE__ */ jsx(TypographyWithIcon, { endIcon: /* @__PURE__ */ jsx(Edit, { color: "disabled", fontSize: "small" }), variant: "body2", className: "MuiDataGrid-columnHeaderTitle", children: colDef.headerName });
374
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(TypographyWithIcon, { endIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(Edit, { color: "disabled", fontSize: "small" }), variant: "body2", className: "MuiDataGrid-columnHeaderTitle", children: colDef.headerName });
376
375
  };
377
376
  const Component$4 = React.forwardRef(function ButtonComponent(props, reference) {
378
- return /* @__PURE__ */ jsx(Button, { ref: reference, component: "a", ...props });
377
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Button, { ref: reference, component: "a", ...props });
379
378
  });
380
379
  const CreatedComponent$4 = createLink(Component$4);
381
380
  const RouterButton = (props) => {
382
- return /* @__PURE__ */ jsx(CreatedComponent$4, { ...props });
381
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(CreatedComponent$4, { ...props });
383
382
  };
384
383
  const Component$3 = React.forwardRef(
385
384
  function GridActionsCellItemComponent(props, reference) {
386
- return /* @__PURE__ */ jsx(GridActionsCellItem, { ref: reference, component: "a", ...props });
385
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(GridActionsCellItem, { ref: reference, component: "a", ...props });
387
386
  }
388
387
  );
389
388
  const CreatedComponent$3 = createLink(Component$3);
390
389
  const RouterGridActionsCellItem = (props) => {
391
- return /* @__PURE__ */ jsx(CreatedComponent$3, { ...props });
390
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(CreatedComponent$3, { ...props });
392
391
  };
393
392
  const Component$2 = React.forwardRef(function IconButtonComponent(props, reference) {
394
- return /* @__PURE__ */ jsx(IconButton, { ref: reference, component: "a", ...props });
393
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(IconButton, { ref: reference, component: "a", ...props });
395
394
  });
396
395
  const CreatedComponent$2 = createLink(Component$2);
397
396
  const RouterIconButton = (props) => {
398
- return /* @__PURE__ */ jsx(CreatedComponent$2, { ...props });
397
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(CreatedComponent$2, { ...props });
399
398
  };
400
399
  const Component$1 = React.forwardRef(function LinkComponent(props, reference) {
401
- return /* @__PURE__ */ jsx(Link, { ref: reference, ...props });
400
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { ref: reference, ...props });
402
401
  });
403
402
  const CreatedComponent$1 = createLink(Component$1);
404
403
  const RouterLink = (props) => {
405
- return /* @__PURE__ */ jsx(CreatedComponent$1, { ...props });
404
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(CreatedComponent$1, { ...props });
406
405
  };
407
406
  const Component = React.forwardRef(function TabComponent(props, reference) {
408
- return /* @__PURE__ */ jsx(Tab, { ref: reference, component: "a", ...props });
407
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Tab, { ref: reference, component: "a", ...props });
409
408
  });
410
409
  const CreatedComponent = createLink(Component);
411
410
  const RouterTab = (props) => {
412
- return /* @__PURE__ */ jsx(CreatedComponent, { ...props });
411
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(CreatedComponent, { ...props });
413
412
  };
414
413
  function RouterNotFound() {
415
414
  const { t } = useTranslation();
416
- return /* @__PURE__ */ jsx(Box, { height: "100vh", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", textAlign: "center", px: 2, children: /* @__PURE__ */ jsxs(Box, { display: "flex", alignItems: "center", mb: 4, children: [
417
- /* @__PURE__ */ jsx(Typography, { variant: "h3", component: "span", fontWeight: 500, sx: { lineHeight: 1 }, children: "404" }),
418
- /* @__PURE__ */ jsx(Divider, { orientation: "vertical", flexItem: true, sx: { mx: 3 } }),
419
- /* @__PURE__ */ jsx(Typography, { variant: "h5", component: "span", children: t("Layout.ThisPageCouldNotBeFound") })
415
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { height: "100vh", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", textAlign: "center", px: 2, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { display: "flex", alignItems: "center", mb: 4, children: [
416
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "h3", component: "span", fontWeight: 500, sx: { lineHeight: 1 }, children: "404" }),
417
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Divider, { orientation: "vertical", flexItem: true, sx: { mx: 3 } }),
418
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "h5", component: "span", children: t("Layout.ThisPageCouldNotBeFound") })
420
419
  ] }) });
421
420
  }
422
421
  const RouterError = ({ error }) => {
423
- return /* @__PURE__ */ jsx(Box, { height: "100vh", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", textAlign: "center", px: 2, children: /* @__PURE__ */ jsxs(Box, { display: "flex", alignItems: "center", mb: 4, children: [
424
- /* @__PURE__ */ jsx(Typography, { variant: "h3", component: "span", fontWeight: 500, sx: { lineHeight: 1 }, children: error.name || "500" }),
425
- /* @__PURE__ */ jsx(Divider, { orientation: "vertical", flexItem: true, sx: { mx: 3 } }),
426
- /* @__PURE__ */ jsx(Typography, { variant: "h5", component: "span", children: error.message })
422
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { height: "100vh", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", textAlign: "center", px: 2, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { display: "flex", alignItems: "center", mb: 4, children: [
423
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "h3", component: "span", fontWeight: 500, sx: { lineHeight: 1 }, children: error.name || "500" }),
424
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Divider, { orientation: "vertical", flexItem: true, sx: { mx: 3 } }),
425
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "h5", component: "span", children: error.message })
427
426
  ] }) });
428
427
  };
429
428
  export {