admesh-ui-sdk 1.0.47 → 1.0.49
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.
- package/dist/brand-assistant.js +1216 -0
- package/dist/brand-assistant.js.map +1 -0
- package/dist/brandAssistantEmbed.d.ts +2 -0
- package/dist/brandAssistantEmbed.d.ts.map +1 -0
- package/dist/components/AdMeshIntentAssistant.d.ts +1 -0
- package/dist/components/AdMeshIntentAssistant.d.ts.map +1 -1
- package/dist/context/AdMeshProvider.d.ts +2 -0
- package/dist/context/AdMeshProvider.d.ts.map +1 -1
- package/dist/index.js +38 -38
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2638 -2632
- package/dist/index.mjs.map +1 -1
- package/dist/publisher-assistant.js +53 -53
- package/dist/publisher-assistant.js.map +1 -1
- package/dist/sdk/AdMeshSDK.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brand-assistant.js","sources":["../node_modules/react/cjs/react.production.js","../node_modules/react/index.js","../node_modules/scheduler/cjs/scheduler.production.js","../node_modules/scheduler/index.js","../node_modules/react-dom/cjs/react-dom.production.js","../node_modules/react-dom/index.js","../node_modules/react-dom/cjs/react-dom-client.production.js","../node_modules/react-dom/client.js","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/jsx-runtime.js","../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js","../node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.js","../node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.js","../node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.js","../node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.js","../node_modules/lucide-react/dist/esm/Icon.js","../node_modules/lucide-react/dist/esm/createLucideIcon.js","../node_modules/lucide-react/dist/esm/icons/arrow-up-right.js","../node_modules/lucide-react/dist/esm/icons/arrow-up.js","../node_modules/lucide-react/dist/esm/icons/flag.js","../node_modules/lucide-react/dist/esm/icons/maximize-2.js","../node_modules/lucide-react/dist/esm/icons/message-square.js","../node_modules/lucide-react/dist/esm/icons/minimize-2.js","../node_modules/lucide-react/dist/esm/icons/send.js","../node_modules/lucide-react/dist/esm/icons/square.js","../node_modules/lucide-react/dist/esm/icons/thumbs-down.js","../node_modules/lucide-react/dist/esm/icons/thumbs-up.js","../node_modules/lucide-react/dist/esm/icons/x.js","../src/components/publisherAssistantStyles.ts","../src/components/PublisherAssistantComposer.tsx","../src/utils/logger.ts","../src/utils/viewabilityTracker.ts","../src/hooks/useViewabilityTracker.ts","../src/components/AdMeshViewabilityTracker.tsx","../src/components/AdMeshCompactCard.tsx","../src/components/AdMeshLayout.tsx","../src/sdk/AdMeshTracker.ts","../src/utils/extractHeadings.ts","../src/utils/acieApi.ts","../src/utils/pageContextApi.ts","../src/context/AdMeshProvider.tsx","../src/sdk/AdMeshRenderer.tsx","../src/sdk/AdMeshSDK.ts","../src/context/AdMeshContext.ts","../src/hooks/useAdMesh.ts","../src/components/AdMeshFollowup.tsx","../src/components/AdMeshRecommendations.tsx","../src/utils/styleInjection.ts","../src/hooks/useAdMeshStyles.ts","../src/components/AdMeshIntentAssistant.tsx","../src/brandAssistantEmbed.ts"],"sourcesContent":["/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.2.1\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"<anonymous>\") &&\n (frame = frame.replace(\"<anonymous>\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$286;\n if (canUseDOM) {\n var isSupported$jscomp$inline_427 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_427) {\n var element$jscomp$inline_428 = document.createElement(\"div\");\n element$jscomp$inline_428.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_427 =\n \"function\" === typeof element$jscomp$inline_428.oninput;\n }\n JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;\n } else JSCompiler_inline_result$jscomp$286 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$286 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n};\nContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nHooksDispatcherOnUpdate.useEffectEvent = updateEvent;\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n};\nHooksDispatcherOnRerender.useEffectEvent = updateEvent;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(null, nextProps)));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((showFallback = nextPrimaryChildren.cachePool),\n null !== showFallback\n ? ((prevState = CacheContext._currentValue),\n (showFallback =\n showFallback.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : showFallback))\n : (showFallback = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: showFallback\n })),\n (nextProps.memoizedState = nextPrimaryChildren),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$102 = workInProgress.memoizedState;\n if (null !== state$102) {\n if (null !== state$102.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$102 = 0 !== (renderLanes & workInProgress.childLanes);\n state$102 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$102)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$102) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (props = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (props[internalInstanceKey] = workInProgress),\n (props[internalPropsKey] = current),\n setInitialProperties(props, renderLanes, current),\n markNodeAsHoistable(props),\n (workInProgress.stateNode = props))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (props = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, props.value),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$106 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$106\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$106.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags & 65011712),\n (subtreeFlags |= child$107.flags & 65011712),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n else\n for (child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags),\n (subtreeFlags |= child$107.flags),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(\"select\", {\n is: newProps.is\n })\n : ownerDocument.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(type, { is: newProps.is })\n : ownerDocument.createElement(type);\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n ownerDocument = workInProgress.child;\n null !== ownerDocument;\n\n ) {\n if (5 === ownerDocument.tag || 6 === ownerDocument.tag)\n nextResource.appendChild(ownerDocument.stateNode);\n else if (\n 4 !== ownerDocument.tag &&\n 27 !== ownerDocument.tag &&\n null !== ownerDocument.child\n ) {\n ownerDocument.child.return = ownerDocument;\n ownerDocument = ownerDocument.child;\n continue;\n }\n if (ownerDocument === workInProgress) break a;\n for (; null === ownerDocument.sibling; ) {\n if (\n null === ownerDocument.return ||\n ownerDocument.return === workInProgress\n )\n break a;\n ownerDocument = ownerDocument.return;\n }\n ownerDocument.sibling.return = ownerDocument.return;\n ownerDocument = ownerDocument.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n current = rootInstanceStackCursor.current;\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n newProps = null;\n type = hydrationParentFiber;\n if (null !== type)\n switch (type.tag) {\n case 27:\n case 5:\n newProps = type.memoizedProps;\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 31:\n renderLanes = workInProgress.memoizedState;\n if (null === current || null !== current.memoizedState) {\n newProps = popHydrationState(workInProgress);\n if (null !== renderLanes) {\n if (null === current) {\n if (!newProps) throw Error(formatProdErrorMessage(318));\n current = workInProgress.memoizedState;\n current = null !== current ? current.dehydrated : null;\n if (!current) throw Error(formatProdErrorMessage(557));\n current[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n current = !1;\n } else\n (renderLanes = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = renderLanes),\n (current = !0);\n if (!current) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n if (0 !== (workInProgress.flags & 128))\n throw Error(formatProdErrorMessage(558));\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!type) throw Error(formatProdErrorMessage(318));\n type = workInProgress.memoizedState;\n type = null !== type ? type.dehydrated : null;\n if (!type) throw Error(formatProdErrorMessage(317));\n type[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n null === current &&\n listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (null === newProps) return bubbleProperties(workInProgress), null;\n type = 0 !== (workInProgress.flags & 128);\n nextResource = newProps.rendering;\n if (null === nextResource)\n if (type) cutOffTailIfNeeded(newProps, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(newProps, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount);\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== newProps.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!type)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (type = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(newProps, !0),\n null === newProps.tail &&\n \"hidden\" === newProps.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - newProps.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n newProps.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = newProps.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (newProps.last = nextResource));\n }\n if (null !== newProps.tail)\n return (\n (current = newProps.tail),\n (newProps.rendering = current),\n (newProps.tail = current.sibling),\n (newProps.renderingStartTime = now()),\n (current.sibling = null),\n (renderLanes = suspenseStackCursor.current),\n push(\n suspenseStackCursor,\n type ? (renderLanes & 1) | 2 : renderLanes & 1\n ),\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount),\n current\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext),\n popHostContainer(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 31:\n if (null !== workInProgress.memoizedState) {\n popSuspenseHandler(workInProgress);\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n null !== current && pop(resumedCache),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext), null;\n case 25:\n return null;\n default:\n return null;\n }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext);\n popHostContainer();\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 31:\n null !== interruptedWork.memoizedState &&\n popSuspenseHandler(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext();\n null !== current && pop(resumedCache);\n break;\n case 24:\n popProvider(CacheContext);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n destroy_ = destroy;\n try {\n destroy_();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = current.stateNode;\n break;\n case 30:\n instanceToUse = current.stateNode;\n break;\n default:\n instanceToUse = current.stateNode;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$140) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$140);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nfunction commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n for (\n var type = finishedWork.type, attributes = singleton.attributes;\n attributes.length;\n\n )\n singleton.removeAttributeNode(attributes[0]);\n setInitialProperties(singleton, type, props);\n singleton[internalInstanceKey] = finishedWork;\n singleton[internalPropsKey] = props;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n if (\n 0 !== (root & 4) &&\n ((root = firstChild.updateQueue),\n (root = null !== root ? root.events : null),\n null !== root)\n )\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < root.length;\n JSCompiler_temp++\n )\n (anchorOffset = root[JSCompiler_temp]),\n (anchorOffset.ref.impl = anchorOffset.nextImpl);\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$139) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$139\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)\n ) {\n current = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n current = finishedWork.child.stateNode;\n break;\n case 1:\n current = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(finishedRoot, current);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 31:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n releaseSingletonInstance(deletedFiber.stateNode);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (9 === hostParent.nodeType\n ? hostParent.body\n : \"HTML\" === hostParent.nodeName\n ? hostParent.ownerDocument.body\n : hostParent\n ).removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearHydrationBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearHydrationBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitActivityHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))\n ) {\n finishedRoot = finishedRoot.dehydrated;\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 31:\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n wakeable.then(retry, retry);\n }\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13886)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n hoistableRoot = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = hoistableRoot\n ? root._visibility & -2\n : root._visibility | 1,\n hoistableRoot &&\n (null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n if (((currentResource = wasHidden.stateNode), hoistableRoot))\n (maybeNodes = currentResource.style),\n \"function\" === typeof maybeNodes.setProperty\n ? maybeNodes.setProperty(\"display\", \"none\", \"important\")\n : (maybeNodes.display = \"none\");\n else {\n i = wasHidden.stateNode;\n var styleProp = wasHidden.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n i.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n wasHidden.stateNode.nodeValue = hoistableRoot\n ? \"\"\n : wasHidden.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (18 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n var instance = wasHidden.stateNode;\n hoistableRoot\n ? hideOrUnhideDehydratedBoundary(instance, !0)\n : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent);\n break;\n case 5:\n var parent$141 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$141, \"\"), (hostParentFiber.flags &= -33));\n var before$142 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$142, parent$141);\n break;\n case 3:\n case 4:\n var parent$143 = hostParentFiber.stateNode.containerInfo,\n before$144 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$144,\n parent$143\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n releaseSingletonInstance(finishedWork.stateNode);\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 31:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n id = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256) || !1\n ));\n flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects &&\n (0 !== (parentFiber.subtreeFlags & 10256) || !1);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 2\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(\n parentFiber,\n committedLanes,\n suspendedState\n) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(\n parentFiber,\n committedLanes,\n suspendedState\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(\n fiber,\n committedLanes,\n suspendedState\n) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n suspendedState,\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 2 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 2 &&\n ((i._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nvar DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n cacheSignal: function () {\n return readContext(CacheContext).controller.signal;\n }\n },\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n workInProgressSuspendedReason = 0,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = 0,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n globalMostRecentTransitionTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes\n ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes\n : null !== ReactSharedInternals.T\n ? requestTransitionLane()\n : resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n if (0 === workInProgressDeferredLane)\n if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {\n var lane = nextTransitionDeferredLane;\n nextTransitionDeferredLane <<= 1;\n 0 === (nextTransitionDeferredLane & 3932160) &&\n (nextTransitionDeferredLane = 262144);\n workInProgressDeferredLane = lane;\n } else workInProgressDeferredLane = 536870912;\n lane = suspenseHandlerStackCursor.current;\n null !== lane && (lane.flags |= 32);\n return workInProgressDeferredLane;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n if (\n (root === workInProgressRoot &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 127) &&\n 0 === (lanes & root$jscomp$0.expiredLanes)) ||\n checkIfRootIsPrerendering(root$jscomp$0, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root$jscomp$0, lanes)\n : renderRootSync(root$jscomp$0, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (0 === exitStatus) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root$jscomp$0, lanes, 0, !1);\n break;\n } else {\n forceSync = root$jscomp$0.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (2 === exitStatus) {\n renderWasConcurrent = lanes;\n if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n var JSCompiler_inline_result = 0;\n else\n (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n (JSCompiler_inline_result =\n 0 !== JSCompiler_inline_result\n ? JSCompiler_inline_result\n : JSCompiler_inline_result & 536870912\n ? 536870912\n : 0);\n if (0 !== JSCompiler_inline_result) {\n lanes = JSCompiler_inline_result;\n a: {\n var root = root$jscomp$0;\n exitStatus = workInProgressRootConcurrentErrors;\n var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n JSCompiler_inline_result = renderRootSync(\n root,\n JSCompiler_inline_result,\n !1\n );\n if (2 !== JSCompiler_inline_result) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = 4;\n break a;\n }\n renderWasConcurrent = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = exitStatus;\n null !== renderWasConcurrent &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = renderWasConcurrent)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n renderWasConcurrent\n ));\n }\n exitStatus = JSCompiler_inline_result;\n }\n renderWasConcurrent = !1;\n if (2 !== exitStatus) continue;\n }\n }\n if (1 === exitStatus) {\n prepareFreshStack(root$jscomp$0, 0);\n markRootSuspended(root$jscomp$0, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root$jscomp$0;\n renderWasConcurrent = exitStatus;\n switch (renderWasConcurrent) {\n case 0:\n case 1:\n throw Error(formatProdErrorMessage(345));\n case 4:\n if ((lanes & 4194048) !== lanes) break;\n case 6:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case 2:\n workInProgressRootRecoverableErrors = null;\n break;\n case 3:\n case 5:\n break;\n default:\n throw Error(formatProdErrorMessage(329));\n }\n if (\n (lanes & 62914560) === lanes &&\n ((exitStatus = globalMostRecentFallbackTime + 300 - now()),\n 10 < exitStatus)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n pendingEffectsLanes = lanes;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n \"Throttled\",\n -0,\n 0\n ),\n exitStatus\n );\n break a;\n }\n commitRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n null,\n -0,\n 0\n );\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root$jscomp$0);\n}\nfunction commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n) {\n root.timeoutHandle = -1;\n suspendedCommitReason = finishedWork.subtreeFlags;\n if (\n suspendedCommitReason & 8192 ||\n 16785408 === (suspendedCommitReason & 16785408)\n ) {\n suspendedCommitReason = {\n stylesheets: null,\n count: 0,\n imgCount: 0,\n imgBytes: 0,\n suspenseyImages: [],\n waitingForImages: !0,\n waitingForViewTransition: !1,\n unsuspend: noop$1\n };\n accumulateSuspenseyCommitOnFiber(\n finishedWork,\n lanes,\n suspendedCommitReason\n );\n var timeoutOffset =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now()\n : 0;\n timeoutOffset = waitForCommitToBeReady(\n suspendedCommitReason,\n timeoutOffset\n );\n if (null !== timeoutOffset) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = timeoutOffset(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n suspendedCommitReason,\n null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6;\n didAttemptEntireTree[index$6] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n return 0 === (executionContext & 6)\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n}\nfunction resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (0 === workInProgressSuspendedReason)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n (lastContextDependency = currentlyRenderingFiber$1 = null),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n}\nfunction prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n pendingEffectsLanes = 0;\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n workInProgressRootExitStatus =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= lanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n lanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n thrownValue === SuspenseException || thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 3))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 4))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? 8\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? 6\n : 1);\n workInProgressThrownValue = thrownValue;\n null === workInProgress &&\n ((workInProgressRootExitStatus = 1),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ));\n}\nfunction shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = 4;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n lanes = !1;\n var exitStatus = workInProgressRootExitStatus;\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case 8:\n resetWorkInProgressStack();\n exitStatus = 6;\n break a;\n case 3:\n case 2:\n case 9:\n case 6:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n exitStatus = 0;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n exitStatus = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$165) {\n handleThrow(root, thrownValue$165);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n lastContextDependency = currentlyRenderingFiber$1 = null;\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return exitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n ? ((workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, lanes))\n : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n ));\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n lanes = workInProgress;\n var thrownValue = workInProgressThrownValue;\n b: switch (workInProgressSuspendedReason) {\n case 1:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n break;\n case 2:\n case 9:\n if (isThenableResolved(thrownValue)) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (2 !== workInProgressSuspendedReason &&\n 9 !== workInProgressSuspendedReason) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason = 7);\n ensureRootIsScheduled(root);\n };\n thrownValue.then(lanes, lanes);\n break a;\n case 3:\n workInProgressSuspendedReason = 7;\n break a;\n case 4:\n workInProgressSuspendedReason = 5;\n break a;\n case 7:\n isThenableResolved(thrownValue)\n ? ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n break;\n case 5:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n }\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n break;\n case 6:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n break;\n case 8:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = 6;\n break a;\n default:\n throw Error(formatProdErrorMessage(462));\n }\n }\n workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$167) {\n handleThrow(root, thrownValue$167);\n }\n while (1);\n lastContextDependency = currentlyRenderingFiber$1 = null;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return 0;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n var next = unitOfWork;\n var current = next.alternate;\n switch (next.tag) {\n case 15:\n case 0:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type.render,\n next.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(next);\n default:\n unwindInterruptedWork(current, next),\n (next = workInProgress =\n resetWorkInProgress(next, entangledRenderLanes)),\n (next = beginWork(current, next, entangledRenderLanes));\n }\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n) {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || 1 === suspendedReason) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n 2 === suspendedReason ||\n 9 === suspendedReason ||\n 3 === suspendedReason ||\n 6 === suspendedReason)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n unitOfWork = completedWork.return;\n var next = completeWork(\n completedWork.alternate,\n completedWork,\n entangledRenderLanes\n );\n if (null !== next) {\n workInProgress = next;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (0 !== pendingEffectsStatus);\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n if (null !== finishedWork) {\n if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n spawnedLane = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = 1;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitMutationEffectsOnFiber(finishedWork, root);\n var priorSelectionInformation = selectionInformation,\n curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = priorSelectionInformation.focusedElem,\n priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(priorSelectionRange.start, length),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = 2;\n }\n}\nfunction flushLayoutEffects() {\n if (2 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = 3;\n }\n}\nfunction flushSpawnedWork() {\n if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n var remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n void 0,\n 128 === (finishedWork.current.flags & 128)\n );\n } catch (err) {}\n if (null !== recoverableErrors) {\n finishedWork = ReactSharedInternals.T;\n remainingLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n ReactSharedInternals.T = null;\n try {\n for (\n var onRecoverableError = root.onRecoverableError, i = 0;\n i < recoverableErrors.length;\n i++\n ) {\n var recoverableError = recoverableErrors[i];\n onRecoverableError(recoverableError.value, {\n componentStack: recoverableError.stack\n });\n }\n } finally {\n (ReactSharedInternals.T = finishedWork),\n (ReactDOMSharedInternals.p = remainingLanes);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n remainingLanes = root.pendingLanes;\n 0 !== (lanes & 261930) && 0 !== (remainingLanes & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPendingEffects() {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects();\n}\nfunction flushPassiveEffects() {\n if (5 !== pendingEffectsStatus) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n prevTransition = ReactSharedInternals.T,\n previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n ReactSharedInternals.T = null;\n renderPriority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = 0;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n renderPriority\n );\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {}\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n releaseRootPooledCache(root, remainingLanes);\n }\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n 300 > now() - globalMostRecentFallbackTime)\n ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 31:\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(formatProdErrorMessage(314));\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root$170 = firstScheduledRoot; null !== root$170; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$170.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$170.suspendedLanes,\n pingedLanes = root$170.pingedLanes;\n JSCompiler_inline_result =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n JSCompiler_inline_result &=\n pendingLanes & ~(suspendedLanes & ~pingedLanes);\n JSCompiler_inline_result =\n JSCompiler_inline_result & 201326741\n ? (JSCompiler_inline_result & 201326741) | 1\n : JSCompiler_inline_result\n ? JSCompiler_inline_result | 2\n : 0;\n }\n 0 !== JSCompiler_inline_result &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$170,\n root$170 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$170.cancelPendingCommit ||\n -1 !== root$170.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$170, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n root$170 = root$170.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n}\nfunction processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n}\nfunction processRootScheduleInMicrotask() {\n mightHavePendingSyncWork = didScheduleMicrotask = !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane);\n for (\n var currentTime = now(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n 0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes &&\n null !== pingedLanes &&\n cancelCallback$1(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (currentTime === root.callbackPriority) return currentTime;\n null !== pingedLanes && cancelCallback$1(pingedLanes);\n switch (lanesToEventPriority(suspendedLanes)) {\n case 2:\n case 8:\n suspendedLanes = UserBlockingPriority;\n break;\n case 32:\n suspendedLanes = NormalPriority$1;\n break;\n case 268435456:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n scheduleTaskForRootDuringMicrotask(root, now());\n return null != root.callbackNode && root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateRootScheduleTask() {\n scheduleMicrotask(function () {\n 0 !== (executionContext & 6)\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n}\nfunction requestTransitionLane() {\n if (0 === currentEventTransitionLane) {\n var actionScopeLane = currentEntangledLane;\n 0 === actionScopeLane &&\n ((actionScopeLane = nextTransitionUpdateLane),\n (nextTransitionUpdateLane <<= 1),\n 0 === (nextTransitionUpdateLane & 261888) &&\n (nextTransitionUpdateLane = 256));\n currentEventTransitionLane = actionScopeLane;\n }\n return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n return null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n ? null\n : \"function\" === typeof actionProp\n ? actionProp\n : sanitizeURL(\"\" + actionProp);\n}\nfunction createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n}\nfunction extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName && ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget);\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget)),\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n}\nfor (\n var i$jscomp$inline_1577 = 0;\n i$jscomp$inline_1577 < simpleEventPluginEvents.length;\n i$jscomp$inline_1577++\n) {\n var eventName$jscomp$inline_1578 =\n simpleEventPluginEvents[i$jscomp$inline_1577],\n domEventName$jscomp$inline_1579 =\n eventName$jscomp$inline_1578.toLowerCase(),\n capitalizedEvent$jscomp$inline_1580 =\n eventName$jscomp$inline_1578[0].toUpperCase() +\n eventName$jscomp$inline_1578.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1579,\n \"on\" + capitalizedEvent$jscomp$inline_1580\n );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n]);\nregisterTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n a: {\n var previousInstance = void 0;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n }\n }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n void 0 === JSCompiler_inline_result &&\n (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n JSCompiler_inline_result.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n}\nfunction addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n) {\n switch (getEventPriority(domEventName)) {\n case 2:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case 8:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance = instance;\n lastHostComponent = _instance.stateNode;\n _instance = _instance.tag;\n (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance = getListener(instance, reactEventName)),\n null != _instance &&\n inCapturePhase.push(\n createDispatchListener(instance, _instance, lastHostComponent)\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n (inCapturePhase = SyntheticPointerEvent),\n (_instance = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = getParent;\n reactEventName = SyntheticEventCtor;\n instance = reactEventType;\n lastHostComponent = 0;\n for (\n _instance = reactEventName;\n _instance;\n _instance = inCapturePhase(_instance)\n )\n lastHostComponent++;\n _instance = 0;\n for (var tempB = instance; tempB; tempB = inCapturePhase(tempB))\n _instance++;\n for (; 0 < lastHostComponent - _instance; )\n (reactEventName = inCapturePhase(reactEventName)),\n lastHostComponent--;\n for (; 0 < _instance - lastHostComponent; )\n (instance = inCapturePhase(instance)), _instance--;\n for (; lastHostComponent--; ) {\n if (\n reactEventName === instance ||\n (null !== instance && reactEventName === instance.alternate)\n ) {\n inCapturePhase = reactEventName;\n break b;\n }\n reactEventName = inCapturePhase(reactEventName);\n instance = inCapturePhase(instance);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n 229 === nativeEvent.keyCode &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticCompositionEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance2 = targetFiber,\n stateNode = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === stateNode ||\n ((_instance2 = getListener(targetFiber, captureName)),\n null != _instance2 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ),\n (_instance2 = getListener(targetFiber, reactName)),\n null != _instance2 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n}\nfunction getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance3 = target,\n alternate = _instance3.alternate,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n \"string\" === typeof value\n ? \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n \"body\" !== tag &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(domElement, tag, \"target\", props.target, props, null)));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n \"xlink:href\",\n key\n );\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\" + value)\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : domElement.setAttribute(key, value);\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n )\n (key = aliases.get(key) || key),\n setValueForAttribute(domElement, key, value);\n }\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (!registrationNameDependencies.hasOwnProperty(key))\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n}\nfunction setInitialProperties(domElement, tag, props) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var propValue$184 = props[hasSrc];\n if (null != propValue$184)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$184;\n break;\n case \"type\":\n propValue = propValue$184;\n break;\n case \"checked\":\n checked = propValue$184;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$184;\n break;\n case \"value\":\n propKey = propValue$184;\n break;\n case \"defaultValue\":\n defaultValue = propValue$184;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$184)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$184, props, null);\n }\n }\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n return;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n }\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n break;\n default:\n setProp(domElement, tag, propValue, defaultValue, props, null);\n }\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n return;\n case \"option\":\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (propValue$184 in props)\n props.hasOwnProperty(propValue$184) &&\n ((hasSrc = props[propValue$184]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$184,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(domElement, tag, propKey, null, nextProps, lastProp);\n }\n }\n for (var propKey$201 in nextProps) {\n var propKey = nextProps[propKey$201];\n lastProp = lastProps[propKey$201];\n if (\n nextProps.hasOwnProperty(propKey$201) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$201) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n propKey$201,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = propKey$201 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n propKey$201 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n tag = defaultValue;\n lastProps = value;\n nextProps = propKey;\n null != propKey$201\n ? updateOptions(domElement, !!lastProps, propKey$201, !1)\n : !!nextProps !== !!lastProps &&\n (null != tag\n ? updateOptions(domElement, !!lastProps, tag, !0)\n : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = propKey$201 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n propKey$201 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name) throw Error(formatProdErrorMessage(91));\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, propKey$201, propKey);\n return;\n case \"option\":\n for (var propKey$217 in lastProps)\n if (\n ((propKey$201 = lastProps[propKey$217]),\n lastProps.hasOwnProperty(propKey$217) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$217))\n )\n switch (propKey$217) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$217,\n null,\n nextProps,\n propKey$201\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$201 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n propKey$201 &&\n \"function\" !== typeof propKey$201 &&\n \"symbol\" !== typeof propKey$201;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var propKey$222 in lastProps)\n (propKey$201 = lastProps[propKey$222]),\n lastProps.hasOwnProperty(propKey$222) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$222) &&\n setProp(domElement, tag, propKey$222, null, nextProps, propKey$201);\n for (checked in nextProps)\n if (\n ((propKey$201 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$201)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$227 in lastProps)\n (propKey$201 = lastProps[propKey$227]),\n lastProps.hasOwnProperty(propKey$227) &&\n void 0 !== propKey$201 &&\n !nextProps.hasOwnProperty(propKey$227) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$227,\n void 0,\n nextProps,\n propKey$201\n );\n for (defaultChecked in nextProps)\n (propKey$201 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$201 === propKey ||\n (void 0 === propKey$201 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$201,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$232 in lastProps)\n (propKey$201 = lastProps[propKey$232]),\n lastProps.hasOwnProperty(propKey$232) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$232) &&\n setProp(domElement, tag, propKey$232, null, nextProps, propKey$201);\n for (lastProp in nextProps)\n (propKey$201 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$201 === propKey ||\n (null == propKey$201 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$201, nextProps, propKey);\n}\nfunction isLikelyStaticResource(initiatorType) {\n switch (initiatorType) {\n case \"css\":\n case \"script\":\n case \"font\":\n case \"img\":\n case \"image\":\n case \"input\":\n case \"link\":\n return !0;\n default:\n return !1;\n }\n}\nfunction estimateBandwidth() {\n if (\"function\" === typeof performance.getEntriesByType) {\n for (\n var count = 0,\n bits = 0,\n resourceEntries = performance.getEntriesByType(\"resource\"),\n i = 0;\n i < resourceEntries.length;\n i++\n ) {\n var entry = resourceEntries[i],\n transferSize = entry.transferSize,\n initiatorType = entry.initiatorType,\n duration = entry.duration;\n if (transferSize && duration && isLikelyStaticResource(initiatorType)) {\n initiatorType = 0;\n duration = entry.responseEnd;\n for (i += 1; i < resourceEntries.length; i++) {\n var overlapEntry = resourceEntries[i],\n overlapStartTime = overlapEntry.startTime;\n if (overlapStartTime > duration) break;\n var overlapTransferSize = overlapEntry.transferSize,\n overlapInitiatorType = overlapEntry.initiatorType;\n overlapTransferSize &&\n isLikelyStaticResource(overlapInitiatorType) &&\n ((overlapEntry = overlapEntry.responseEnd),\n (initiatorType +=\n overlapTransferSize *\n (overlapEntry < duration\n ? 1\n : (duration - overlapStartTime) /\n (overlapEntry - overlapStartTime))));\n }\n --i;\n bits += (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);\n count++;\n if (10 < count) break;\n }\n }\n if (0 < count) return bits / count / 1e6;\n }\n return navigator.connection &&\n ((count = navigator.connection.downlink), \"number\" === typeof count)\n ? count\n : 5;\n}\nvar eventsEnabled = null,\n selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case \"http://www.w3.org/2000/svg\":\n return 1;\n case \"http://www.w3.org/1998/Math/MathML\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n if (0 === parentNamespace)\n switch (type) {\n case \"svg\":\n return 1;\n case \"math\":\n return 2;\n default:\n return 0;\n }\n return 1 === parentNamespace && \"foreignObject\" === type\n ? 0\n : parentNamespace;\n}\nfunction shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n}\nfunction isSingletonScope(type) {\n return \"head\" === type;\n}\nfunction clearHydrationBoundary(parentInstance, hydrationInstance) {\n var node = hydrationInstance,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node || \"/&\" === node)) {\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(hydrationInstance);\n return;\n }\n depth--;\n } else if (\n \"$\" === node ||\n \"$?\" === node ||\n \"$~\" === node ||\n \"$!\" === node ||\n \"&\" === node\n )\n depth++;\n else if (\"html\" === node)\n releaseSingletonInstance(parentInstance.ownerDocument.documentElement);\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n releaseSingletonInstance(node);\n for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {\n var nextNode$jscomp$0 = node$jscomp$0.nextSibling,\n nodeName = node$jscomp$0.nodeName;\n node$jscomp$0[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node$jscomp$0.rel.toLowerCase()) ||\n node.removeChild(node$jscomp$0);\n node$jscomp$0 = nextNode$jscomp$0;\n }\n } else\n \"body\" === node &&\n releaseSingletonInstance(parentInstance.ownerDocument.body);\n node = nextNode;\n } while (node);\n retryIfBlockedOn(hydrationInstance);\n}\nfunction hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {\n var node = suspenseInstance;\n suspenseInstance = 0;\n do {\n var nextNode = node.nextSibling;\n 1 === node.nodeType\n ? isHidden\n ? ((node._stashedDisplay = node.style.display),\n (node.style.display = \"none\"))\n : ((node.style.display = node._stashedDisplay || \"\"),\n \"\" === node.getAttribute(\"style\") && node.removeAttribute(\"style\"))\n : 3 === node.nodeType &&\n (isHidden\n ? ((node._stashedText = node.nodeValue), (node.nodeValue = \"\"))\n : (node.nodeValue = node._stashedText || \"\"));\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node))\n if (0 === suspenseInstance) break;\n else suspenseInstance--;\n else\n (\"$\" !== node && \"$?\" !== node && \"$~\" !== node && \"$!\" !== node) ||\n suspenseInstance++;\n node = nextNode;\n } while (node);\n}\nfunction clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction canHydrateHydrationBoundary(instance, inRootOrSingleton) {\n for (; 8 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return \"$?\" === instance.data || \"$~\" === instance.data;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return (\n \"$!\" === instance.data ||\n (\"$?\" === instance.data && \"loading\" !== instance.ownerDocument.readyState)\n );\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\"$~\" === instance.data) instance._reactRetry = callback;\n else if (\"$?\" !== instance.data || \"loading\" !== ownerDocument.readyState)\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n}\nfunction getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n \"$\" === nodeType ||\n \"$!\" === nodeType ||\n \"$?\" === nodeType ||\n \"$~\" === nodeType ||\n \"&\" === nodeType ||\n \"F!\" === nodeType ||\n \"F\" === nodeType\n )\n break;\n if (\"/$\" === nodeType || \"/&\" === nodeType) return null;\n }\n }\n return node;\n}\nvar previousHydratableOnEnteringScopedSingleton = null;\nfunction getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {\n hydrationInstance = hydrationInstance.nextSibling;\n for (var depth = 0; hydrationInstance; ) {\n if (8 === hydrationInstance.nodeType) {\n var data = hydrationInstance.data;\n if (\"/$\" === data || \"/&\" === data) {\n if (0 === depth)\n return getNextHydratable(hydrationInstance.nextSibling);\n depth--;\n } else\n (\"$\" !== data &&\n \"$!\" !== data &&\n \"$?\" !== data &&\n \"$~\" !== data &&\n \"&\" !== data) ||\n depth++;\n }\n hydrationInstance = hydrationInstance.nextSibling;\n }\n return null;\n}\nfunction getParentHydrationBoundary(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n \"$\" === data ||\n \"$!\" === data ||\n \"$?\" === data ||\n \"$~\" === data ||\n \"&\" === data\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else (\"/$\" !== data && \"/&\" !== data) || depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type) throw Error(formatProdErrorMessage(452));\n return type;\n case \"head\":\n type = props.head;\n if (!type) throw Error(formatProdErrorMessage(453));\n return type;\n case \"body\":\n type = props.body;\n if (!type) throw Error(formatProdErrorMessage(454));\n return type;\n default:\n throw Error(formatProdErrorMessage(451));\n }\n}\nfunction releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n}\nvar preloadPropsMap = new Map(),\n preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n f: flushSyncWork,\n r: requestFormReset,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n};\nfunction flushSyncWork() {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n}\nfunction prefetchDNS(href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n}\nfunction preloadModule(href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n}\nfunction preinitStyle(href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: 0, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = 5;\n else {\n href = assign(\n { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= 1;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= 2;\n });\n state.loading |= 4;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n}\nfunction preinitScript(src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction preinitModuleScript(src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n var JSCompiler_inline_result = (JSCompiler_inline_result =\n rootInstanceStackCursor.current)\n ? getHoistableRoot(JSCompiler_inline_result)\n : null;\n if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((currentProps = getStyleKey(pendingProps.href)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var styles$243 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$244 = styles$243.get(type);\n resource$244 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$244 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$243.set(type, resource$244),\n (styles$243 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !styles$243._p &&\n ((resource$244.instance = styles$243),\n (resource$244.state.loading = 5)),\n preloadPropsMap.has(type) ||\n ((pendingProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n }),\n preloadPropsMap.set(type, pendingProps),\n styles$243 ||\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n pendingProps,\n resource$244.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$244;\n }\n if (currentProps && null !== currentResource)\n throw Error(formatProdErrorMessage(529, \"\"));\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((currentProps = getScriptKey(pendingProps)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(formatProdErrorMessage(444, type));\n }\n}\nfunction getStyleKey(href) {\n return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector('link[rel=\"preload\"][as=\"style\"][' + key + \"]\")\n ? (state.loading = 1)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= 1);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= 2);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n}\nfunction getScriptKey(src) {\n return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n \"style\"\n );\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var instance$249 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$249)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$249),\n markNodeAsHoistable(instance$249),\n instance$249\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$249 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$249);\n var linkInstance = instance$249;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$249, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$249, props.precedence, hoistableRoot);\n return (resource.instance = instance$249);\n case \"script\":\n instance$249 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$249)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$249)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(formatProdErrorMessage(443, resource.type));\n }\n else\n \"stylesheet\" === resource.type &&\n 0 === (resource.state.loading & 4) &&\n ((instance = resource.instance),\n (resource.state.loading |= 4),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n if (1 === hostContext || null != props.itemProp) return !1;\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n )\n break;\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n )\n break;\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.disabled),\n \"string\" === typeof props.precedence && null == type\n );\n default:\n return !0;\n }\n case \"script\":\n if (\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async &&\n !props.onLoad &&\n !props.onError &&\n props.src &&\n \"string\" === typeof props.src\n )\n return !0;\n }\n return !1;\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nfunction suspendResource(state, hoistableRoot, resource, props) {\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n 0 === (resource.state.loading & 4)\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= 4;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n 0 === (resource.state.loading & 3) &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n}\nvar estimatedBytesWithinLimit = 0;\nfunction waitForCommitToBeReady(state, timeoutOffset) {\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count || 0 < state.imgCount\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4 + timeoutOffset);\n 0 < state.imgBytes &&\n 0 === estimatedBytesWithinLimit &&\n (estimatedBytesWithinLimit = 62500 * estimateBandwidth());\n var imgTimer = setTimeout(\n function () {\n state.waitingForImages = !1;\n if (\n 0 === state.count &&\n (state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets),\n state.unsuspend)\n ) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n },\n (state.imgBytes > estimatedBytesWithinLimit ? 50 : 800) +\n timeoutOffset\n );\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n clearTimeout(imgTimer);\n };\n }\n : null;\n}\nfunction onUnsuspend() {\n this.count--;\n if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))\n if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & 4)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(null);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(null, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(null, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= 4;\n }\n}\nvar HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: sharedNotPendingObject,\n _currentValue2: sharedNotPendingObject,\n _threadCount: 0\n};\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator\n) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n );\n tag = 1;\n !0 === isStrictMode && (tag |= 24);\n isStrictMode = createFiberImplClass(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n tag.refCount++;\n containerInfo.pooledCache = tag;\n tag.refCount++;\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n}\nfunction updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n) {\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n}\nfunction attemptHydrationAtCurrentPriority(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var lane = requestUpdateLane();\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n markRetryLaneIfNotHydrated(fiber, lane);\n }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 2),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 8),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n 0 === (executionContext & 6) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 31:\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (31 === tag) {\n targetNode = getActivityInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 2;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 8;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return 2;\n case UserBlockingPriority:\n return 8;\n case NormalPriority$1:\n case LowPriority:\n return 32;\n case IdlePriority:\n return 268435456;\n default:\n return 32;\n }\n default:\n return 32;\n }\n}\nvar hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (31 === targetInst) {\n if (\n ((targetInst = getActivityInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n );\n currentReplayingEvent = nativeEventClone;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (null === findInstanceBlockingTarget(submitterOrAction || form))\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n startHostTransition(\n formInst,\n {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n },\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n}\nfunction retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n}\nfunction defaultOnDefaultTransitionIndicator() {\n function handleNavigate(event) {\n event.canIntercept &&\n \"react-transition\" === event.info &&\n event.intercept({\n handler: function () {\n return new Promise(function (resolve) {\n return (pendingResolve = resolve);\n });\n },\n focusReset: \"manual\",\n scroll: \"manual\"\n });\n }\n function handleNavigateComplete() {\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n isCancelled || setTimeout(startFakeNavigation, 20);\n }\n function startFakeNavigation() {\n if (!isCancelled && !navigation.transition) {\n var currentEntry = navigation.currentEntry;\n currentEntry &&\n null != currentEntry.url &&\n navigation.navigate(currentEntry.url, {\n state: currentEntry.getState(),\n info: \"react-transition\",\n history: \"replace\"\n });\n }\n }\n if (\"object\" === typeof navigation) {\n var isCancelled = !1,\n pendingResolve = null;\n navigation.addEventListener(\"navigate\", handleNavigate);\n navigation.addEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.addEventListener(\"navigateerror\", handleNavigateComplete);\n setTimeout(startFakeNavigation, 100);\n return function () {\n isCancelled = !0;\n navigation.removeEventListener(\"navigate\", handleNavigate);\n navigation.removeEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.removeEventListener(\"navigateerror\", handleNavigateComplete);\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n };\n }\n}\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(formatProdErrorMessage(409));\n var current = root.current,\n lane = requestUpdateLane();\n updateContainerImpl(current, lane, children, root, null, null);\n };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var root = this._internalRoot;\n if (null !== root) {\n this._internalRoot = null;\n var container = root.containerInfo;\n updateContainerImpl(root.current, 2, null, root, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_1840 = React.version;\nif (\n \"19.2.1\" !==\n isomorphicReactPackageVersion$jscomp$inline_1840\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_1840,\n \"19.2.1\"\n )\n );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(formatProdErrorMessage(188));\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(formatProdErrorMessage(268, componentOrElement));\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n};\nvar internals$jscomp$inline_2347 = {\n bundleType: 0,\n version: \"19.2.1\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.1\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2348 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2348.isDisabled &&\n hook$jscomp$inline_2348.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2348.inject(\n internals$jscomp$inline_2347\n )),\n (injectedHook = hook$jscomp$inline_2348);\n } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n null,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane();\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.2.1\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\n\nexport { mergeClasses };\n//# sourceMappingURL=mergeClasses.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n\nexport { toKebabCase };\n//# sourceMappingURL=toKebabCase.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\n\nexport { toCamelCase };\n//# sourceMappingURL=toCamelCase.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { toCamelCase } from './toCamelCase.js';\n\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\n\nexport { toPascalCase };\n//# sourceMappingURL=toPascalCase.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n return false;\n};\n\nexport { hasA11yProp };\n//# sourceMappingURL=hasA11yProp.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { hasA11yProp } from './shared/src/utils/hasA11yProp.js';\nimport { mergeClasses } from './shared/src/utils/mergeClasses.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses } from './shared/src/utils/mergeClasses.js';\nimport { toKebabCase } from './shared/src/utils/toKebabCase.js';\nimport { toPascalCase } from './shared/src/utils/toPascalCase.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M7 7h10v10\", key: \"1tivn9\" }],\n [\"path\", { d: \"M7 17 17 7\", key: \"1vkiza\" }]\n];\nconst ArrowUpRight = createLucideIcon(\"arrow-up-right\", __iconNode);\n\nexport { __iconNode, ArrowUpRight as default };\n//# sourceMappingURL=arrow-up-right.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m5 12 7-7 7 7\", key: \"hav0vg\" }],\n [\"path\", { d: \"M12 19V5\", key: \"x0mq9r\" }]\n];\nconst ArrowUp = createLucideIcon(\"arrow-up\", __iconNode);\n\nexport { __iconNode, ArrowUp as default };\n//# sourceMappingURL=arrow-up.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528\",\n key: \"1jaruq\"\n }\n ]\n];\nconst Flag = createLucideIcon(\"flag\", __iconNode);\n\nexport { __iconNode, Flag as default };\n//# sourceMappingURL=flag.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M15 3h6v6\", key: \"1q9fwt\" }],\n [\"path\", { d: \"m21 3-7 7\", key: \"1l2asr\" }],\n [\"path\", { d: \"m3 21 7-7\", key: \"tjx5ai\" }],\n [\"path\", { d: \"M9 21H3v-6\", key: \"wtvkvv\" }]\n];\nconst Maximize2 = createLucideIcon(\"maximize-2\", __iconNode);\n\nexport { __iconNode, Maximize2 as default };\n//# sourceMappingURL=maximize-2.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z\",\n key: \"18887p\"\n }\n ]\n];\nconst MessageSquare = createLucideIcon(\"message-square\", __iconNode);\n\nexport { __iconNode, MessageSquare as default };\n//# sourceMappingURL=message-square.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m14 10 7-7\", key: \"oa77jy\" }],\n [\"path\", { d: \"M20 10h-6V4\", key: \"mjg0md\" }],\n [\"path\", { d: \"m3 21 7-7\", key: \"tjx5ai\" }],\n [\"path\", { d: \"M4 14h6v6\", key: \"rmj7iw\" }]\n];\nconst Minimize2 = createLucideIcon(\"minimize-2\", __iconNode);\n\nexport { __iconNode, Minimize2 as default };\n//# sourceMappingURL=minimize-2.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\",\n key: \"1ffxy3\"\n }\n ],\n [\"path\", { d: \"m21.854 2.147-10.94 10.939\", key: \"12cjpa\" }]\n];\nconst Send = createLucideIcon(\"send\", __iconNode);\n\nexport { __iconNode, Send as default };\n//# sourceMappingURL=send.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }]\n];\nconst Square = createLucideIcon(\"square\", __iconNode);\n\nexport { __iconNode, Square as default };\n//# sourceMappingURL=square.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z\",\n key: \"m61m77\"\n }\n ],\n [\"path\", { d: \"M17 14V2\", key: \"8ymqnk\" }]\n];\nconst ThumbsDown = createLucideIcon(\"thumbs-down\", __iconNode);\n\nexport { __iconNode, ThumbsDown as default };\n//# sourceMappingURL=thumbs-down.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z\",\n key: \"emmmcr\"\n }\n ],\n [\"path\", { d: \"M7 10v12\", key: \"1qc93n\" }]\n];\nconst ThumbsUp = createLucideIcon(\"thumbs-up\", __iconNode);\n\nexport { __iconNode, ThumbsUp as default };\n//# sourceMappingURL=thumbs-up.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","/** Scoped to publisher panels, including panels portaled outside the host page. */\n// Ads retain their own reset, typography, interaction, and motion rules.\nconst assistantContent =\n ':not([data-admesh-ad-content], [data-admesh-ad-content] *)';\n\nexport const publisherAssistantStyles = `\n.admesh-publisher-panel {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n text-align: left;\n line-height: 1.5;\n -webkit-font-smoothing: antialiased;\n}\n.admesh-publisher-panel *${assistantContent}, .admesh-publisher-panel *${assistantContent}::before, .admesh-publisher-panel *${assistantContent}::after {\n box-sizing: border-box;\n}\n.admesh-publisher-panel button${assistantContent}, .admesh-publisher-panel input${assistantContent} { font-family: inherit; }\n.admesh-publisher-panel button${assistantContent} { transition: border-color 150ms ease, background-color 150ms ease; }\n.admesh-publisher-panel button${assistantContent}:focus-visible, .admesh-publisher-panel a${assistantContent}:focus-visible {\n outline: 2px solid var(--publisher-accent);\n outline-offset: 2px;\n}\n.admesh-publisher-panel .admesh-publisher-suggestion:hover,\n.admesh-publisher-panel .admesh-publisher-source:hover {\n border-color: var(--publisher-accent) !important;\n}\n.admesh-publisher-composer:focus-within {\n outline: 2px solid var(--publisher-accent);\n outline-offset: 2px;\n}\n.admesh-publisher-panel .admesh-publisher-source { transition: border-color 150ms ease; }\n.admesh-publisher-panel .admesh-publisher-suggestion { overflow-wrap: anywhere; }\n.admesh-publisher-panel input${assistantContent} { min-width: 0; }\n.admesh-publisher-panel a${assistantContent} { text-underline-offset: 3px; }\n@media (prefers-reduced-motion: reduce) {\n .admesh-publisher-panel *${assistantContent}, .admesh-publisher-panel *${assistantContent}::before, .admesh-publisher-panel *${assistantContent}::after {\n animation: none !important;\n transition: none !important;\n scroll-behavior: auto !important;\n }\n}\n@media (max-width: 767px) {\n .admesh-publisher-panel:not([data-compact=\"true\"]) input${assistantContent} { font-size: 16px !important; }\n}\n`;\n","import { useId, useLayoutEffect, useRef, useState, type CSSProperties } from 'react';\nimport { createPortal } from 'react-dom';\nimport { ArrowUp, MessageSquare, Square } from 'lucide-react';\nimport type { Suggestion } from './AdMeshIntentAssistant';\nimport { publisherAssistantStyles } from './publisherAssistantStyles';\n\ninterface PublisherAssistantComposerProps {\n value: string;\n onChange: (value: string) => void;\n onSend: () => void;\n onStop: () => void;\n onSuggestion: (suggestion: Suggestion) => void;\n suggestions: Suggestion[];\n registerSuggestion: (id: string) => (node: HTMLButtonElement | null) => void;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n loading: boolean;\n analyzing: boolean;\n compact: boolean;\n expanded: boolean;\n suggestionPlacement?: 'below' | 'above';\n showLogo?: boolean;\n logoUrl?: string | null;\n title: string;\n placeholder: string;\n colors: { accent: string; accentText: string; surface: string; text: string; muted: string; border: string };\n}\n\nexport function PublisherAssistantComposer({\n value, onChange, onSend, onStop, onSuggestion, suggestions, registerSuggestion,\n open, onOpenChange, loading, analyzing, compact, expanded, suggestionPlacement = 'below', showLogo = true, logoUrl, title, placeholder, colors,\n}: PublisherAssistantComposerProps) {\n const id = useId();\n const composerRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const [position, setPosition] = useState<CSSProperties>({ visibility: 'hidden' });\n const visible = open && !loading && (analyzing || suggestions.length > 0);\n\n useLayoutEffect(() => {\n if (!visible) return;\n const reposition = () => {\n const anchor = composerRef.current?.getBoundingClientRect();\n if (!anchor) return;\n const viewportHeight = window.visualViewport?.height ?? window.innerHeight;\n const viewportWidth = document.documentElement.clientWidth;\n const spaceBelow = viewportHeight - anchor.bottom - 16;\n const spaceAbove = anchor.top - 16;\n // Prefer the selected side, flipping only when that side cannot fit usable rows.\n const above = suggestionPlacement === 'above'\n ? !(spaceAbove < 96 && spaceBelow > spaceAbove)\n : spaceBelow < 96 && spaceAbove > spaceBelow;\n setPosition({\n position: 'fixed',\n left: Math.max(8, Math.min(anchor.left, viewportWidth - anchor.width - 8)),\n width: Math.min(anchor.width, viewportWidth - 16),\n maxHeight: Math.max(40, Math.min(300, above ? spaceAbove : spaceBelow)),\n ...(above ? { bottom: window.innerHeight - anchor.top + 8 } : { top: anchor.bottom + 8 }),\n zIndex: 2147483002,\n });\n };\n const dismissOutside = (event: PointerEvent) => {\n const target = event.target as Node;\n if (!composerRef.current?.contains(target) && !dropdownRef.current?.contains(target)) onOpenChange(false);\n };\n reposition();\n window.addEventListener('resize', reposition);\n window.addEventListener('scroll', reposition, true);\n window.visualViewport?.addEventListener('resize', reposition);\n document.addEventListener('pointerdown', dismissOutside);\n return () => {\n window.removeEventListener('resize', reposition);\n window.removeEventListener('scroll', reposition, true);\n window.visualViewport?.removeEventListener('resize', reposition);\n document.removeEventListener('pointerdown', dismissOutside);\n };\n }, [visible, suggestionPlacement, onOpenChange]);\n\n const closeOnBlur = (target: EventTarget | null) => {\n if (!composerRef.current?.contains(target as Node) && !dropdownRef.current?.contains(target as Node)) onOpenChange(false);\n };\n const submit = () => {\n if (!value.trim() || loading) return;\n onOpenChange(false);\n onSend();\n };\n\n return (\n <>\n <div ref={composerRef} className=\"admesh-publisher-composer\" onBlur={(event) => closeOnBlur(event.relatedTarget)}\n onClick={(event) => {\n if ((event.target as HTMLElement).closest('button, a')) return;\n inputRef.current?.focus();\n onOpenChange(true);\n }}\n style={{ display: 'flex', alignItems: 'center', gap: compact ? 8 : 12, minWidth: 0, width: '100%', flexShrink: 0,\n border: `1px solid ${colors.border}`, borderRadius: 8, background: colors.surface, cursor: 'text', padding: compact ? '6px' : '8px 8px 8px 12px' }}>\n {showLogo && !expanded && (\n <div style={{ width: compact ? 24 : 32, height: compact ? 24 : 32, display: 'grid', placeItems: 'center', flexShrink: 0, color: colors.accent }}>\n {logoUrl ? <img src={logoUrl} alt={`${title} logo`} style={{ width: '100%', height: '100%', objectFit: 'contain' }} /> : <MessageSquare size={compact ? 18 : 21} strokeWidth={1.5} aria-label={title} />}\n </div>\n )}\n <input ref={inputRef} type=\"text\" value={value} placeholder={placeholder} aria-label=\"Ask the publisher assistant\"\n aria-expanded={visible} aria-controls={visible ? id : undefined}\n onFocus={() => onOpenChange(true)}\n onChange={(event) => { onChange(event.target.value); onOpenChange(true); }}\n onKeyDown={(event) => {\n if (event.nativeEvent.isComposing) return;\n if (event.key === 'Escape') { event.preventDefault(); onOpenChange(false); }\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n if (visible) dropdownRef.current?.querySelector('button')?.focus();\n else onOpenChange(true);\n }\n if (event.key === 'Enter') { event.preventDefault(); submit(); }\n }}\n style={{ flex: 1, minWidth: 0, border: 'none', outline: 'none', padding: compact ? '6px 0' : '10px 0', fontSize: compact ? 13 : 15, color: colors.text, background: 'transparent' }} />\n <span style={{ flexShrink: 0, fontSize: compact ? 8 : 9, lineHeight: 1.3, color: colors.muted, textAlign: 'right', whiteSpace: 'nowrap' }}>\n powered by<br />\n <a href=\"https://useadmesh.com\" target=\"_blank\" rel=\"noopener noreferrer\"\n style={{ fontWeight: 600, color: 'inherit', textDecoration: 'underline', textUnderlineOffset: 2, cursor: 'pointer' }}>AdMesh</a>\n </span>\n <button type=\"button\" aria-label={loading ? 'Stop generating' : 'Send message'} disabled={!loading && !value.trim()}\n onClick={loading ? onStop : submit}\n style={{ display: 'grid', placeItems: 'center', flexShrink: 0, width: compact ? 32 : 40, height: compact ? 32 : 40,\n border: 'none', borderRadius: 6, background: colors.accent, color: colors.accentText, cursor: 'pointer', opacity: !loading && !value.trim() ? 0.5 : 1 }}>\n {loading ? <Square size={14} fill=\"currentColor\" aria-hidden=\"true\" /> : <ArrowUp size={18} aria-hidden=\"true\" />}\n </button>\n </div>\n {visible && createPortal(\n <div ref={dropdownRef} id={id} role=\"group\" aria-label=\"Suggested questions\" className=\"admesh-publisher-panel\"\n onBlur={(event) => closeOnBlur(event.relatedTarget)}\n onKeyDown={(event) => {\n if (event.key === 'Escape') { event.preventDefault(); inputRef.current?.focus(); onOpenChange(false); }\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n const buttons = Array.from(dropdownRef.current?.querySelectorAll('button') ?? []);\n const next = buttons.indexOf(document.activeElement as HTMLButtonElement) + (event.key === 'ArrowDown' ? 1 : -1);\n if (next < 0) inputRef.current?.focus();\n else buttons[Math.min(next, buttons.length - 1)]?.focus();\n }\n }}\n style={{ ...position, ['--publisher-accent' as string]: colors.accent, padding: 6, border: `1px solid ${colors.border}`, borderRadius: 10, background: colors.surface,\n overflowY: 'auto', overscrollBehavior: 'contain', boxShadow: '0 8px 24px rgba(15,23,42,0.1)' }}>\n <style>{publisherAssistantStyles}</style>\n {analyzing && !suggestions.length ? <div role=\"status\" style={{ padding: 12, color: colors.muted, fontSize: 13 }}>Finding suggested questions…</div> : suggestions.map((suggestion) => (\n <button key={suggestion.id} ref={registerSuggestion(suggestion.id)} type=\"button\" className=\"admesh-publisher-suggestion\"\n data-admesh-sponsored={suggestion.is_sponsored ? 'true' : undefined}\n onClick={() => { onOpenChange(false); onSuggestion(suggestion); }}\n style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: 12, width: '100%', minWidth: 0, margin: '0 0 4px', padding: '10px 12px',\n border: `1px solid ${suggestion.is_sponsored ? colors.accent : colors.border}`, borderRadius: 6, textAlign: 'left', fontSize: 13, fontWeight: 500, lineHeight: 1.4, cursor: 'pointer',\n background: suggestion.is_sponsored ? colors.accent : colors.surface, color: suggestion.is_sponsored ? colors.accentText : colors.text }}>\n <span>{suggestion.text}</span>\n {suggestion.is_sponsored && <span style={{ fontSize: 10, flexShrink: 0 }}>Ad</span>}\n </button>\n ))}\n </div>, document.body,\n )}\n </>\n );\n}\n","/**\n * Logger utility for AdMesh UI SDK\n * Disables all logs in production environment\n */\n\n// Check for production environment\n// Supports both Vite (import.meta.env) and standard Node.js (process.env)\nlet isProduction = false;\ntry {\n // Check for Vite's import.meta.env (only available in ESM modules)\n if (typeof (globalThis as any).importMeta !== 'undefined' && (globalThis as any).importMeta.env?.PROD) {\n isProduction = true;\n }\n} catch (e) {\n // import.meta not available, continue with other checks\n}\n\nif (!isProduction) {\n isProduction = \n (typeof process !== 'undefined' && process.env.NODE_ENV === 'production') ||\n (typeof process !== 'undefined' && process.env.ADMESH_ENV === 'production');\n}\n\nexport const logger = {\n log: (...args: any[]) => {\n if (!isProduction) {\n console.log(...args);\n }\n },\n \n warn: (...args: any[]) => {\n if (!isProduction) {\n console.warn(...args);\n }\n },\n \n error: (...args: any[]) => {\n // Errors are always logged, even in production, as they're critical\n console.error(...args);\n },\n \n info: (...args: any[]) => {\n if (!isProduction) {\n console.info(...args);\n }\n },\n \n debug: (...args: any[]) => {\n if (!isProduction) {\n console.debug(...args);\n }\n },\n};\n\n","/**\n * AdMesh UI SDK - MRC Viewability Tracker Utilities\n * Implements Media Rating Council (MRC) viewability standards\n */\n\nimport type {\n MRCViewabilityStandards,\n DeviceType,\n ViewabilityContextMetrics,\n ViewabilityAnalyticsEvent\n} from '../types/analytics';\nimport { logger } from './logger';\n\n/**\n * Calculate MRC viewability standards based on ad size\n */\nexport function calculateMRCStandards(\n adWidth: number,\n adHeight: number,\n customStandards?: Partial<MRCViewabilityStandards>\n): MRCViewabilityStandards {\n const adPixels = adWidth * adHeight;\n const isLargeAd = adPixels > 242500; // MRC threshold for large ads\n\n const defaults: MRCViewabilityStandards = {\n visibilityThreshold: isLargeAd ? 0.3 : 0.5, // 30% for large, 50% for standard\n minimumDuration: 1000, // 1 second in milliseconds\n isLargeAd\n };\n\n return { ...defaults, ...customStandards };\n}\n\n/**\n * Detect device type based on viewport width\n */\nexport function detectDeviceType(viewportWidth: number): DeviceType {\n if (viewportWidth < 768) return 'mobile';\n if (viewportWidth < 1024) return 'tablet';\n return 'desktop';\n}\n\n/**\n * Calculate visibility percentage of element in viewport\n */\nexport function calculateVisibilityPercentage(element: HTMLElement): number {\n const rect = element.getBoundingClientRect();\n const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n const viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n\n // Element dimensions\n const elementHeight = rect.height;\n const elementWidth = rect.width;\n\n if (elementHeight === 0 || elementWidth === 0) return 0;\n\n // Calculate visible portion\n const visibleTop = Math.max(0, rect.top);\n const visibleBottom = Math.min(viewportHeight, rect.bottom);\n const visibleLeft = Math.max(0, rect.left);\n const visibleRight = Math.min(viewportWidth, rect.right);\n\n const visibleHeight = Math.max(0, visibleBottom - visibleTop);\n const visibleWidth = Math.max(0, visibleRight - visibleLeft);\n\n const visibleArea = visibleHeight * visibleWidth;\n const totalArea = elementHeight * elementWidth;\n\n return totalArea > 0 ? (visibleArea / totalArea) : 0;\n}\n\n/**\n * Calculate current scroll depth as percentage\n */\nexport function calculateScrollDepth(): number {\n const windowHeight = window.innerHeight;\n const documentHeight = document.documentElement.scrollHeight;\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n\n const scrollableHeight = documentHeight - windowHeight;\n if (scrollableHeight <= 0) return 100;\n\n return Math.min(100, (scrollTop / scrollableHeight) * 100);\n}\n\n/**\n * Get element position on page\n */\nexport function getElementPosition(element: HTMLElement): { top: number; left: number } {\n const rect = element.getBoundingClientRect();\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n\n return {\n top: rect.top + scrollTop,\n left: rect.left + scrollLeft\n };\n}\n\n/**\n * Collect context metrics\n */\nexport function collectContextMetrics(element: HTMLElement): ViewabilityContextMetrics {\n const rect = element.getBoundingClientRect();\n const position = getElementPosition(element);\n const viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n const viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n\n // Detect dark mode\n const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;\n\n return {\n pageUrl: window.location.href,\n pageTitle: document.title,\n referrer: document.referrer,\n deviceType: detectDeviceType(viewportWidth),\n viewportWidth,\n viewportHeight,\n adWidth: rect.width,\n adHeight: rect.height,\n adPositionTop: position.top,\n adPositionLeft: position.left,\n isDarkMode,\n language: navigator.language,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone\n };\n}\n\n/**\n * Generate unique session ID for INTERNAL viewability tracking only.\n * \n * IMPORTANT: This is NOT the main sessionId used for recommendations.\n * This is only used internally by the viewability tracker for tracking\n * viewability events. The main sessionId MUST be provided by the platform\n * and passed to AdMeshProvider and SDK methods.\n */\nexport function generateSessionId(): string {\n return `session_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;\n}\n\n/**\n * Generate unique batch ID\n */\nexport function generateBatchId(): string {\n return `batch_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;\n}\n\n/**\n * Check if ad meets MRC viewability threshold\n */\nexport function meetsViewabilityThreshold(\n visibilityPercentage: number,\n visibleDuration: number,\n standards: MRCViewabilityStandards\n): boolean {\n return (\n visibilityPercentage >= standards.visibilityThreshold &&\n visibleDuration >= standards.minimumDuration\n );\n}\n\n/**\n * Format timestamp to ISO 8601\n */\nexport function formatTimestamp(date: Date = new Date()): string {\n return date.toISOString();\n}\n\n/**\n * Calculate average from array of numbers\n */\nexport function calculateAverage(numbers: number[]): number {\n if (numbers.length === 0) return 0;\n const sum = numbers.reduce((acc, num) => acc + num, 0);\n return sum / numbers.length;\n}\n\n/**\n * Debounce function for performance optimization\n */\nexport function debounce<T extends (...args: unknown[]) => unknown>(\n func: T,\n wait: number\n): (...args: Parameters<T>) => void {\n let timeout: NodeJS.Timeout | null = null;\n\n return function executedFunction(...args: Parameters<T>) {\n const later = () => {\n timeout = null;\n func(...args);\n };\n\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n\n/**\n * Throttle function for performance optimization\n */\nexport function throttle<T extends (...args: unknown[]) => unknown>(\n func: T,\n limit: number\n): (...args: Parameters<T>) => void {\n let inThrottle: boolean;\n\n return function executedFunction(...args: Parameters<T>) {\n if (!inThrottle) {\n func(...args);\n inThrottle = true;\n setTimeout(() => (inThrottle = false), limit);\n }\n };\n}\n\n/**\n * Send analytics event to API\n *\n * NOTE: If apiEndpoint is empty, the event is silently discarded (no error).\n * This allows the SDK to collect analytics without sending them to a backend.\n */\nexport async function sendAnalyticsEvent(\n event: ViewabilityAnalyticsEvent,\n apiEndpoint: string,\n retryAttempts: number = 3,\n retryDelay: number = 1000\n): Promise<boolean> {\n // If no endpoint is configured, silently skip sending\n if (!apiEndpoint || apiEndpoint.trim() === '') {\n return true;\n }\n\n for (let attempt = 0; attempt < retryAttempts; attempt++) {\n try {\n const response = await fetch(apiEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(event),\n keepalive: true\n });\n\n if (response.ok) {\n return true;\n }\n\n // Log error details for debugging\n await response.text().catch(() => '');\n } catch (error) {\n // Error caught, will retry\n }\n\n // Wait before retry (exponential backoff)\n if (attempt < retryAttempts - 1) {\n await new Promise(resolve => setTimeout(resolve, retryDelay * Math.pow(2, attempt)));\n }\n }\n\n logger.error('[AdMesh Viewability] Failed to send analytics event');\n return false;\n}\n\n/**\n * Send batched analytics events to API\n *\n * NOTE: If apiEndpoint is empty, the batch is silently discarded (no error).\n * This allows the SDK to collect analytics without sending them to a backend.\n */\nexport async function sendAnalyticsBatch(\n events: ViewabilityAnalyticsEvent[],\n sessionId: string,\n apiEndpoint: string,\n retryAttempts: number = 3,\n retryDelay: number = 1000\n): Promise<boolean> {\n if (events.length === 0) return true;\n\n // If no endpoint is configured, silently skip sending\n if (!apiEndpoint || apiEndpoint.trim() === '') {\n return true;\n }\n\n const batch = {\n batchId: generateBatchId(),\n sessionId,\n createdAt: formatTimestamp(),\n events,\n eventCount: events.length\n };\n\n for (let attempt = 0; attempt < retryAttempts; attempt++) {\n try {\n const response = await fetch(apiEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(batch),\n keepalive: true\n });\n\n if (response.ok) {\n return true;\n }\n\n // Log error details for debugging\n await response.text().catch(() => '');\n } catch (error) {\n // Error caught, will retry\n }\n\n // Wait before retry (exponential backoff)\n if (attempt < retryAttempts - 1) {\n await new Promise(resolve => setTimeout(resolve, retryDelay * Math.pow(2, attempt)));\n }\n }\n\n logger.error('[AdMesh Viewability] Failed to send analytics batch');\n return false;\n}\n\n/**\n * Sanitize URL to remove PII (query parameters, fragments)\n */\nexport function sanitizeUrl(url: string): string {\n try {\n const urlObj = new URL(url);\n // Remove query parameters and hash\n return `${urlObj.protocol}//${urlObj.host}${urlObj.pathname}`;\n } catch {\n return url;\n }\n}\n\n/**\n * Check if element is in viewport\n */\nexport function isElementInViewport(element: HTMLElement): boolean {\n const rect = element.getBoundingClientRect();\n return (\n rect.top < (window.innerHeight || document.documentElement.clientHeight) &&\n rect.bottom > 0 &&\n rect.left < (window.innerWidth || document.documentElement.clientWidth) &&\n rect.right > 0\n );\n}\n","/**\n * AdMesh UI SDK - MRC Viewability Tracker Hook\n * React hook for tracking ad viewability according to MRC standards\n */\n\nimport { useState, useEffect, useRef, useCallback } from 'react';\nimport { logger } from '../utils/logger';\nimport type {\n ViewabilityTrackerConfig,\n ViewabilityTrackerState,\n ViewabilityAnalyticsEvent,\n ViewabilityEventType,\n MRCViewabilityStandards\n} from '../types/analytics';\nimport {\n calculateMRCStandards,\n calculateVisibilityPercentage,\n calculateScrollDepth,\n collectContextMetrics,\n generateSessionId,\n meetsViewabilityThreshold,\n formatTimestamp,\n calculateAverage,\n throttle\n} from '../utils/viewabilityTracker';\n\n// Default configuration\nconst DEFAULT_CONFIG: ViewabilityTrackerConfig = {\n enabled: true,\n // Analytics endpoint disabled - no analytics will be sent\n apiEndpoint: '', // Empty string disables analytics sending\n enableBatching: false, // Disabled since no endpoint\n batchSize: 10,\n batchTimeout: 5000, // 5 seconds\n debug: false,\n enableRetry: false,\n maxRetries: 3,\n retryDelay: 1000\n};\n\n// Global config that can be set by consuming application\nlet globalConfig: ViewabilityTrackerConfig = DEFAULT_CONFIG;\n\n// TEMPORARY: Global flag to disable all analytics sending\n// Set this to true to prevent any viewability analytics from being sent to the backend\n// This is a temporary measure and can be easily reverted by setting to false\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nlet ANALYTICS_DISABLED = false;\n\nexport const setViewabilityTrackerConfig = (config: Partial<ViewabilityTrackerConfig>) => {\n globalConfig = { ...globalConfig, ...config };\n};\n\n/**\n * TEMPORARY: Disable/enable all viewability analytics sending\n * @param disabled - Set to true to disable analytics, false to enable\n *\n * Usage:\n * disableViewabilityAnalytics(true); // Disable all analytics\n * disableViewabilityAnalytics(false); // Re-enable analytics\n */\nexport const disableViewabilityAnalytics = (disabled: boolean) => {\n ANALYTICS_DISABLED = disabled;\n if (disabled) {\n logger.warn('[AdMesh Viewability] Analytics sending is DISABLED - no data will be sent to backend');\n } else {\n logger.log('[AdMesh Viewability] Analytics sending is ENABLED');\n }\n};\n\ninterface UseViewabilityTrackerProps {\n /** Product ID */\n productId?: string;\n /** Offer ID */\n offerId?: string;\n /** Agent ID */\n agentId?: string;\n /** Recommendation ID (from recommendations collection) */\n recommendationId: string;\n /** HTML element to track */\n elementRef: React.RefObject<HTMLElement>;\n /** Custom configuration */\n config?: Partial<ViewabilityTrackerConfig>;\n}\n\nexport function useViewabilityTracker({\n productId,\n offerId,\n agentId,\n recommendationId,\n elementRef,\n config: customConfig\n}: UseViewabilityTrackerProps): ViewabilityTrackerState {\n const config = { ...globalConfig, ...customConfig };\n\n // Session ID (persists for component lifetime)\n const sessionId = useRef(generateSessionId());\n\n // State\n const [state, setState] = useState<ViewabilityTrackerState>({\n isVisible: false,\n isViewable: false,\n visibilityPercentage: 0,\n timeMetrics: {\n loadedAt: formatTimestamp(),\n totalVisibleDuration: 0,\n totalViewableDuration: 0,\n totalHoverDuration: 0,\n totalFocusDuration: 0\n },\n engagementMetrics: {\n currentScrollDepth: 0,\n viewportEnterCount: 0,\n viewportExitCount: 0,\n hoverCount: 0,\n wasClicked: false,\n maxVisibilityPercentage: 0,\n averageVisibilityPercentage: 0\n },\n isTracking: config.enabled\n });\n\n // Refs for tracking\n const mrcStandards = useRef<MRCViewabilityStandards | null>(null);\n const visibilityStartTime = useRef<number | null>(null);\n const viewableStartTime = useRef<number | null>(null);\n const hoverStartTime = useRef<number | null>(null);\n const focusStartTime = useRef<number | null>(null);\n const visibilityPercentages = useRef<number[]>([]);\n const eventBatch = useRef<ViewabilityAnalyticsEvent[]>([]);\n const batchTimeout = useRef<NodeJS.Timeout | null>(null);\n\n // Log helper\n const log = useCallback((message: string) => {\n if (config.debug) {\n logger.log(`[AdMesh Viewability] ${message}`);\n }\n }, [config.debug]);\n\n // Send event (analytics disabled - no events sent to backend)\n // Viewability tracking still works for exposure pixels (handled separately)\n const sendEvent = useCallback(async (eventType: ViewabilityEventType, additionalData?: Record<string, unknown>) => {\n if (!config.enabled || ANALYTICS_DISABLED || !elementRef.current || !mrcStandards.current) return;\n\n // Analytics disabled - no events sent to backend\n // Viewability tracking still works internally for exposure pixel firing\n log(`Analytics disabled - skipping event: ${eventType}`);\n \n // Call custom callback if provided (for local tracking)\n if (config.onEvent) {\n const contextMetrics = collectContextMetrics(elementRef.current);\n const event: ViewabilityAnalyticsEvent = {\n eventType,\n timestamp: formatTimestamp(),\n sessionId: sessionId.current,\n productId,\n offerId,\n agentId,\n recommendationId,\n timeMetrics: state.timeMetrics,\n engagementMetrics: state.engagementMetrics,\n contextMetrics,\n mrcStandards: mrcStandards.current,\n isViewable: state.isViewable,\n metadata: additionalData\n };\n config.onEvent(event);\n }\n }, [config, productId, offerId, agentId, recommendationId, elementRef, state, log]);\n\n // Flush event batch (disabled - analytics not sent)\n const flushBatch = useCallback(async () => {\n if (eventBatch.current.length === 0) return;\n\n // Analytics disabled - clear batch without sending\n log('Analytics disabled - clearing batch without sending');\n eventBatch.current = [];\n if (batchTimeout.current) {\n clearTimeout(batchTimeout.current);\n batchTimeout.current = null;\n }\n return;\n }, [log]);\n\n // Update visibility\n const updateVisibility = useCallback(throttle(() => {\n if (!elementRef.current) return;\n\n const visibilityPercentage = calculateVisibilityPercentage(elementRef.current);\n const now = Date.now();\n const loadTime = new Date(state.timeMetrics.loadedAt).getTime();\n\n setState(prev => {\n const newState = { ...prev };\n\n // Track visibility percentages for average calculation\n if (visibilityPercentage > 0) {\n visibilityPercentages.current.push(visibilityPercentage);\n }\n\n // Update visibility state\n const wasVisible = prev.isVisible;\n const isNowVisible = visibilityPercentage > 0;\n\n if (isNowVisible && !wasVisible) {\n // Became visible\n visibilityStartTime.current = now;\n newState.engagementMetrics.viewportEnterCount++;\n\n if (!newState.timeMetrics.timeToFirstVisible) {\n newState.timeMetrics.timeToFirstVisible = now - loadTime;\n newState.engagementMetrics.scrollDepthAtFirstVisible = calculateScrollDepth();\n sendEvent('ad_visible');\n }\n } else if (!isNowVisible && wasVisible) {\n // Became hidden\n if (visibilityStartTime.current) {\n const visibleDuration = now - visibilityStartTime.current;\n newState.timeMetrics.totalVisibleDuration += visibleDuration;\n visibilityStartTime.current = null;\n }\n newState.engagementMetrics.viewportExitCount++;\n sendEvent('ad_hidden');\n } else if (isNowVisible && wasVisible && visibilityStartTime.current) {\n // Still visible, update duration\n const visibleDuration = now - visibilityStartTime.current;\n newState.timeMetrics.totalVisibleDuration += visibleDuration;\n visibilityStartTime.current = now;\n }\n\n newState.isVisible = isNowVisible;\n newState.visibilityPercentage = visibilityPercentage;\n\n // Update max visibility\n if (visibilityPercentage > newState.engagementMetrics.maxVisibilityPercentage) {\n newState.engagementMetrics.maxVisibilityPercentage = visibilityPercentage;\n }\n\n // Update average visibility\n if (visibilityPercentages.current.length > 0) {\n newState.engagementMetrics.averageVisibilityPercentage = calculateAverage(visibilityPercentages.current);\n }\n\n // Check MRC viewability threshold\n if (mrcStandards.current) {\n const wasViewable = prev.isViewable;\n const isNowViewable = meetsViewabilityThreshold(\n visibilityPercentage,\n newState.timeMetrics.totalVisibleDuration,\n mrcStandards.current\n );\n\n if (isNowViewable && !wasViewable) {\n // Met viewability threshold\n newState.isViewable = true;\n newState.timeMetrics.timeToViewable = now - loadTime;\n viewableStartTime.current = now;\n sendEvent('ad_viewable');\n } else if (isNowViewable && wasViewable && viewableStartTime.current) {\n // Still viewable, update duration\n const viewableDuration = now - viewableStartTime.current;\n newState.timeMetrics.totalViewableDuration += viewableDuration;\n viewableStartTime.current = now;\n }\n }\n\n // Update scroll depth\n newState.engagementMetrics.currentScrollDepth = calculateScrollDepth();\n\n return newState;\n });\n }, 100), [elementRef, state.timeMetrics.loadedAt, sendEvent]);\n\n // Initialize MRC standards\n useEffect(() => {\n if (!elementRef.current) return;\n\n const rect = elementRef.current.getBoundingClientRect();\n mrcStandards.current = calculateMRCStandards(rect.width, rect.height, config.mrcStandards);\n\n log('Initialized MRC standards');\n sendEvent('ad_loaded');\n }, [elementRef, config.mrcStandards, log, sendEvent]);\n\n // Set up Intersection Observer\n useEffect(() => {\n if (!config.enabled || !elementRef.current) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach(() => {\n updateVisibility();\n });\n },\n {\n threshold: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],\n rootMargin: '0px'\n }\n );\n\n observer.observe(elementRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, [config.enabled, elementRef, updateVisibility]);\n\n // Track scroll events\n useEffect(() => {\n if (!config.enabled) return;\n\n const handleScroll = throttle(() => {\n updateVisibility();\n }, 100);\n\n window.addEventListener('scroll', handleScroll, { passive: true });\n return () => window.removeEventListener('scroll', handleScroll);\n }, [config.enabled, updateVisibility]);\n\n // Track hover events\n useEffect(() => {\n if (!config.enabled || !elementRef.current) return;\n\n const element = elementRef.current;\n\n const handleMouseEnter = () => {\n hoverStartTime.current = Date.now();\n setState(prev => ({\n ...prev,\n engagementMetrics: {\n ...prev.engagementMetrics,\n hoverCount: prev.engagementMetrics.hoverCount + 1\n }\n }));\n sendEvent('ad_hover_start');\n };\n\n const handleMouseLeave = () => {\n if (hoverStartTime.current) {\n const hoverDuration = Date.now() - hoverStartTime.current;\n setState(prev => ({\n ...prev,\n timeMetrics: {\n ...prev.timeMetrics,\n totalHoverDuration: prev.timeMetrics.totalHoverDuration + hoverDuration\n }\n }));\n hoverStartTime.current = null;\n sendEvent('ad_hover_end', { hoverDuration });\n }\n };\n\n element.addEventListener('mouseenter', handleMouseEnter);\n element.addEventListener('mouseleave', handleMouseLeave);\n\n return () => {\n element.removeEventListener('mouseenter', handleMouseEnter);\n element.removeEventListener('mouseleave', handleMouseLeave);\n };\n }, [config.enabled, elementRef, sendEvent]);\n\n // Track focus events\n useEffect(() => {\n if (!config.enabled || !elementRef.current) return;\n\n const element = elementRef.current;\n\n const handleFocus = () => {\n focusStartTime.current = Date.now();\n sendEvent('ad_focus');\n };\n\n const handleBlur = () => {\n if (focusStartTime.current) {\n const focusDuration = Date.now() - focusStartTime.current;\n setState(prev => ({\n ...prev,\n timeMetrics: {\n ...prev.timeMetrics,\n totalFocusDuration: prev.timeMetrics.totalFocusDuration + focusDuration\n }\n }));\n focusStartTime.current = null;\n sendEvent('ad_blur', { focusDuration });\n }\n };\n\n element.addEventListener('focus', handleFocus);\n element.addEventListener('blur', handleBlur);\n\n return () => {\n element.removeEventListener('focus', handleFocus);\n element.removeEventListener('blur', handleBlur);\n };\n }, [config.enabled, elementRef, sendEvent]);\n\n // Track click events\n useEffect(() => {\n if (!config.enabled || !elementRef.current) return;\n\n const element = elementRef.current;\n\n const handleClick = () => {\n setState(prev => ({\n ...prev,\n engagementMetrics: {\n ...prev.engagementMetrics,\n wasClicked: true\n }\n }));\n sendEvent('ad_click');\n };\n\n element.addEventListener('click', handleClick);\n\n return () => {\n element.removeEventListener('click', handleClick);\n };\n }, [config.enabled, elementRef, sendEvent]);\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n // Calculate session duration\n const now = Date.now();\n const loadTime = new Date(state.timeMetrics.loadedAt).getTime();\n const sessionDuration = now - loadTime;\n\n setState(prev => ({\n ...prev,\n timeMetrics: {\n ...prev.timeMetrics,\n sessionDuration\n }\n }));\n\n // Send final event\n sendEvent('ad_unloaded', { sessionDuration });\n\n // Flush any remaining batched events\n flushBatch();\n };\n }, []);\n\n return state;\n}\n","/**\n * AdMesh Viewability Tracker Component\n * Wraps any ad component with MRC viewability tracking\n */\n\nimport { useRef, useEffect, type CSSProperties, type FC, type ReactNode, type RefObject } from 'react';\nimport { logger } from '../utils/logger';\nimport { useViewabilityTracker } from '../hooks/useViewabilityTracker';\nimport type { ViewabilityTrackerConfig } from '../types/analytics';\n\nexport interface AdMeshViewabilityTrackerProps {\n /** Product ID */\n productId?: string;\n /** Offer ID */\n offerId?: string;\n /** Agent ID */\n agentId?: string;\n /** Recommendation ID (for exposure tracking) */\n recommendationId: string;\n /** Exposure URL (for MRC-compliant exposure pixel firing) */\n exposureUrl?: string;\n /** Session ID (for exposure tracking) */\n sessionId?: string;\n /** Whether to fire exposure URL when ad becomes viewable (defaults to true) */\n triggerExposureUrl?: boolean;\n /** Children to wrap with viewability tracking */\n children: ReactNode;\n /** Custom viewability tracker configuration */\n config?: Partial<ViewabilityTrackerConfig>;\n /** CSS class name */\n className?: string;\n /** Inline styles */\n style?: CSSProperties;\n /** Callback when viewability state changes */\n onViewabilityChange?: (isViewable: boolean) => void;\n /** Callback when ad becomes visible */\n onVisible?: () => void;\n /** Callback when ad becomes viewable (meets MRC threshold) */\n onViewable?: () => void;\n /** Callback when ad is clicked */\n onClick?: () => void;\n}\n\n/**\n * AdMeshViewabilityTracker Component\n * \n * Wraps ad components with comprehensive MRC viewability tracking.\n * Automatically tracks:\n * - Viewability (50% visible for 1 second)\n * - Time metrics (time to viewable, total visible duration, etc.)\n * - Engagement metrics (hover, focus, clicks, scroll depth)\n * - Context metrics (device type, viewport size, ad position)\n * \n * @example\n * ```tsx\n * <AdMeshViewabilityTracker\n * recommendationId=\"rec_123\"\n * productId=\"prod_456\"\n * offerId=\"offer_789\"\n * onViewable={() => logger.log('Ad is viewable!')}\n * >\n * <YourAdComponent />\n * </AdMeshViewabilityTracker>\n * ```\n */\nexport const AdMeshViewabilityTracker: FC<AdMeshViewabilityTrackerProps> = ({\n productId,\n offerId,\n agentId,\n recommendationId,\n exposureUrl,\n sessionId,\n triggerExposureUrl = true,\n children,\n config,\n className,\n style,\n onViewabilityChange,\n onVisible,\n onViewable,\n onClick\n}) => {\n const elementRef = useRef<HTMLElement>(null);\n const exposureFired = useRef(false);\n\n // Use viewability tracker hook\n const viewabilityState = useViewabilityTracker({\n productId,\n offerId,\n agentId,\n recommendationId,\n elementRef: elementRef as RefObject<HTMLElement>,\n config\n });\n\n // Track viewability changes and fire exposure pixel\n const previousViewable = useRef(viewabilityState.isViewable);\n\n useEffect(() => {\n exposureFired.current = false;\n previousViewable.current = false;\n }, [exposureUrl, recommendationId, sessionId]);\n\n useEffect(() => {\n if (viewabilityState.isViewable !== previousViewable.current) {\n previousViewable.current = viewabilityState.isViewable;\n\n if (onViewabilityChange) {\n onViewabilityChange(viewabilityState.isViewable);\n }\n\n if (viewabilityState.isViewable && onViewable) {\n onViewable();\n }\n\n // Fire exposure pixel when ad becomes viewable (MRC-compliant)\n // Only fire if we have the required data and haven't fired yet\n if (viewabilityState.isViewable && !exposureFired.current && triggerExposureUrl) {\n logger.log('[AdMeshViewabilityTracker] 🎯 Ad is viewable, checking exposure pixel requirements:', {\n exposureUrl: exposureUrl ? 'present' : 'MISSING',\n sessionId: sessionId ? 'present' : 'MISSING',\n recommendationId\n });\n\n if (exposureUrl && sessionId) {\n exposureFired.current = true;\n\n logger.log('[AdMeshViewabilityTracker] 🔥 Firing exposure pixel:', exposureUrl);\n\n // Fire the exposure pixel using fetch with keepalive\n fetch(exposureUrl, { method: 'GET', keepalive: true })\n .then(() => {\n logger.log('[AdMesh] ✅ Exposure pixel fired successfully');\n })\n .catch((error) => {\n logger.warn('[AdMesh] ⚠️ Failed to fire exposure pixel:', error);\n // Reset flag to allow retry\n exposureFired.current = false;\n });\n } else {\n logger.warn('[AdMeshViewabilityTracker] ⚠️ Cannot fire exposure pixel - missing required data:', {\n hasExposureUrl: !!exposureUrl,\n hasSessionId: !!sessionId\n });\n }\n }\n }\n }, [viewabilityState.isViewable, onViewabilityChange, onViewable, exposureUrl, sessionId, recommendationId, triggerExposureUrl]);\n\n // Track visibility changes\n const previousVisible = useRef(viewabilityState.isVisible);\n \n useEffect(() => {\n if (viewabilityState.isVisible !== previousVisible.current) {\n previousVisible.current = viewabilityState.isVisible;\n \n if (viewabilityState.isVisible && onVisible) {\n onVisible();\n }\n }\n }, [viewabilityState.isVisible, onVisible]);\n\n // Handle click\n const handleClick = () => {\n if (onClick) {\n onClick();\n }\n \n // Allow event to propagate to children\n };\n\n return (\n <div\n ref={elementRef as RefObject<HTMLDivElement>}\n className={className}\n style={style}\n onClick={handleClick}\n data-admesh-viewability-tracker\n data-recommendation-id={recommendationId}\n data-is-viewable={viewabilityState.isViewable}\n data-is-visible={viewabilityState.isVisible}\n data-visibility-percentage={viewabilityState.visibilityPercentage.toFixed(2)}\n >\n {children}\n </div>\n );\n};\n\nAdMeshViewabilityTracker.displayName = 'AdMeshViewabilityTracker';\n","import { useEffect, useRef, useState, type FC } from 'react';\nimport { Flag } from 'lucide-react';\nimport { logger } from '../utils/logger';\nimport type { DelegationActivationPayload, RecommendationReportReason } from '../types/index';\nimport { AdMeshViewabilityTracker } from './AdMeshViewabilityTracker';\nimport type { AdMeshTailAdProps } from './AdMeshTailAd';\n\nconst isValidUrl = (url: string): boolean => {\n try {\n new URL(url);\n return true;\n } catch {\n return false;\n }\n};\n\nconst getDisplayText = (value: unknown): string => {\n if (typeof value === 'string') {\n return value.trim();\n }\n if (typeof value === 'number') {\n return String(value);\n }\n return '';\n};\n\nconst asOptionalString = (value: unknown): string | undefined => {\n const text = getDisplayText(value);\n return text || undefined;\n};\n\nconst getCTALabel = (ctaLabel?: string): string => {\n if (ctaLabel && ctaLabel.trim()) {\n return ctaLabel.trim();\n }\n return '';\n};\n\nconst formatProductPrice = (price: unknown, currency?: string): string => {\n if (price === null || price === undefined || price === '') {\n return '';\n }\n\n if (typeof price === 'number') {\n try {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: currency || 'USD',\n maximumFractionDigits: 2,\n }).format(price);\n } catch {\n return String(price);\n }\n }\n\n return getDisplayText(price);\n};\n\nexport const AdMeshCompactCard: FC<AdMeshTailAdProps> = ({\n recommendations,\n theme,\n className = '',\n style = {},\n sessionId,\n triggerExposureUrl = true,\n onDelegationConsent,\n onDelegationActivated,\n onStartDelegation,\n onRecommendationReport,\n}) => {\n if (!recommendations || recommendations.length === 0) {\n logger.log('[AdMesh Compact Tail Ad] No recommendations provided - not rendering');\n return null;\n }\n\n const firstRecommendation = recommendations[0];\n const recommendation = firstRecommendation?.recommendation;\n const creative = recommendation?.creative;\n const tracking = firstRecommendation?.tracking;\n const delegation = firstRecommendation?.delegation;\n\n const recommendationId = firstRecommendation?.recommendation_id || '';\n const productId = recommendation?.offerId || '';\n const brandName = creative?.brand_name || '';\n const headline = creative?.headline || '';\n const description = creative?.description || '';\n const logoUrl = creative?.logo_url || '';\n const clickUrl = tracking?.click_url || creative?.landing_page_url || '';\n const exposureUrl = tracking?.exposure_url || '';\n const disclosure = recommendation?.disclosure || 'Sponsored';\n const relatedProducts = creative?.products || [];\n const visibleProducts = relatedProducts.slice(0, 4);\n const hasProductRail = relatedProducts.length > 1;\n const recommendationFormat = recommendation?.format || 'tail';\n const isBridgeRecommendation = recommendationFormat === 'bridge';\n const hasDelegation = delegation?.available === true;\n const shouldShowDelegationButton = isBridgeRecommendation && hasDelegation;\n const delegationBrandName = delegation?.brand_name || brandName;\n const delegationCtaText = 'Talk to Agent';\n const ctaLabel = getCTALabel(creative?.cta_text);\n const shouldShowPrimaryCta = !hasProductRail && !!ctaLabel && !!clickUrl;\n\n if (!brandName && !headline && !description) {\n logger.log('[AdMesh Compact Tail Ad] No valid recommendation data provided - not rendering', {\n recommendationId,\n });\n return null;\n }\n\n const compactTitle = headline && headline !== brandName ? headline : brandName;\n const compactSummary = description;\n const normalizedBrandName = brandName.trim().toLowerCase();\n const normalizedCompactTitle = compactTitle.trim().toLowerCase();\n const shouldShowBrandEyebrow = Boolean(brandName) && normalizedBrandName !== normalizedCompactTitle;\n\n const requestDefaultConsent = (): boolean => {\n return true;\n };\n\n const [showConsentPrompt, setShowConsentPrompt] = useState(false);\n const [isConsentConnecting, setIsConsentConnecting] = useState(false);\n const [reportMenuOpen, setReportMenuOpen] = useState(false);\n const [submittedReportReason, setSubmittedReportReason] = useState<RecommendationReportReason | null>(null);\n const consentResolverRef = useRef<((value: boolean) => void) | null>(null);\n\n useEffect(() => {\n return () => {\n if (consentResolverRef.current) {\n consentResolverRef.current(false);\n consentResolverRef.current = null;\n }\n };\n }, []);\n\n const resolveConsentPrompt = (value: boolean) => {\n if (value) {\n setIsConsentConnecting(true);\n }\n consentResolverRef.current?.(value);\n consentResolverRef.current = null;\n if (!value) {\n setIsConsentConnecting(false);\n setShowConsentPrompt(false);\n }\n };\n\n const requestConsent = async (): Promise<boolean> => {\n if (onDelegationConsent) {\n return await onDelegationConsent(firstRecommendation);\n }\n if (!requestDefaultConsent()) {\n return false;\n }\n return await new Promise<boolean>((resolve) => {\n consentResolverRef.current = resolve;\n setShowConsentPrompt(true);\n });\n };\n\n const handleContainerClick = (source: string, e?: React.MouseEvent) => {\n if (e) {\n e.stopPropagation();\n }\n\n if (typeof window !== 'undefined' && (window as any).admeshTracker) {\n (window as any).admeshTracker.trackClick({\n recommendationId,\n productId,\n clickUrl,\n source,\n }).catch(() => {\n logger.error(`[AdMesh] Failed to track ${source} click`);\n });\n }\n };\n\n const reportReasons: Array<{ value: RecommendationReportReason; label: string }> = [\n { value: 'irrelevant', label: 'Not relevant' },\n { value: 'misleading', label: 'Misleading' },\n { value: 'inappropriate', label: 'Inappropriate' },\n { value: 'broken_link', label: 'Broken link' },\n { value: 'other', label: 'Other' },\n ];\n\n const handleReportButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n if (submittedReportReason) {\n return;\n }\n setReportMenuOpen((current) => !current);\n };\n\n const handleReportReasonClick = async (\n event: React.MouseEvent<HTMLButtonElement>,\n reason: RecommendationReportReason,\n ) => {\n event.preventDefault();\n event.stopPropagation();\n setReportMenuOpen(false);\n setSubmittedReportReason(reason);\n\n if (!onRecommendationReport) {\n return;\n }\n\n try {\n await onRecommendationReport({\n recommendation: firstRecommendation,\n recommendation_id: recommendationId,\n reason,\n session_id: sessionId,\n });\n } catch (error) {\n logger.warn('[AdMesh Compact Tail Ad] Failed to submit recommendation report:', error);\n }\n };\n\n const handleCardClick = () => {\n if (hasProductRail || !clickUrl) {\n return;\n }\n handleContainerClick('compact_tail_ad_card');\n if (typeof window !== 'undefined') {\n window.open(clickUrl, '_blank', 'noopener,noreferrer');\n }\n };\n\n const handleCardKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (hasProductRail || !clickUrl) {\n return;\n }\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleCardClick();\n }\n };\n\n const trackDelegationEngagement = async () => {\n if (!(recommendationId && sessionId)) {\n return;\n }\n\n try {\n const apiBaseUrl =\n (typeof window !== 'undefined' && (window as any).__ADMESH_API_BASE_URL__) ||\n 'https://api.useadmesh.com';\n\n const response = await fetch(`${apiBaseUrl}/click/bridge-engagement`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n recommendation_id: recommendationId,\n session_id: sessionId,\n is_test: false,\n }),\n });\n\n if (!response.ok) {\n logger.warn('[AdMesh Compact Tail Ad] Delegation engagement tracking failed:', response.statusText);\n }\n } catch (error) {\n logger.error('[AdMesh Compact Tail Ad] Error tracking delegation engagement:', error);\n }\n };\n\n const handleDelegationClick = async (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (!firstRecommendation || !shouldShowDelegationButton) {\n return;\n }\n\n handleContainerClick('compact_tail_ad_delegation_cta');\n\n const consentGranted = await requestConsent();\n if (!consentGranted) {\n return;\n }\n\n void trackDelegationEngagement();\n\n const delegationPayload: DelegationActivationPayload | null =\n delegation?.available\n ? {\n recommendation_id: firstRecommendation.recommendation_id,\n brand_id: asOptionalString(delegation.brand_id),\n brand_name: asOptionalString(delegation.brand_name || creative?.brand_name),\n mcp_endpoint: asOptionalString(delegation.mcp_endpoint),\n eligibility_reason: asOptionalString(delegation.eligibility_reason),\n delegate_reason: asOptionalString(delegation.delegate_reason),\n session_goal: asOptionalString(delegation.session_goal),\n desired_outcome_type: delegation.desired_outcome_type,\n required_user_inputs: Array.isArray(delegation.required_user_inputs)\n ? delegation.required_user_inputs.filter((value): value is string => typeof value === 'string')\n : [],\n required_consent_types: Array.isArray(delegation.required_consent_types)\n ? delegation.required_consent_types.filter((value): value is string => typeof value === 'string')\n : [],\n success_outcome: asOptionalString(delegation.success_outcome),\n fallback_message: asOptionalString(delegation.fallback_message),\n session_mode: asOptionalString(delegation.session_mode),\n status: asOptionalString(delegation.status),\n capabilities: delegation.capabilities || [],\n allowed_data_types: delegation.allowed_data_types || [],\n consent_requirements: delegation.consent_requirements || [],\n auth_model: asOptionalString(delegation.auth_model),\n handoff_protocol:\n delegation.handoff_protocol && typeof delegation.handoff_protocol === 'object'\n ? delegation.handoff_protocol\n : undefined,\n supported_actions: delegation.supported_actions || [],\n metadata:\n delegation.metadata && typeof delegation.metadata === 'object'\n ? delegation.metadata\n : undefined,\n platform_response: firstRecommendation,\n }\n : null;\n\n if (onDelegationActivated && delegationPayload) {\n try {\n await onDelegationActivated(delegationPayload);\n } finally {\n setIsConsentConnecting(false);\n setShowConsentPrompt(false);\n }\n return;\n }\n\n if (onStartDelegation) {\n try {\n await onStartDelegation(firstRecommendation);\n } finally {\n setIsConsentConnecting(false);\n setShowConsentPrompt(false);\n }\n return;\n }\n\n setIsConsentConnecting(false);\n setShowConsentPrompt(false);\n\n };\n\n const [logoError, setLogoError] = useState(false);\n\n const isDarkMode =\n theme?.mode === 'dark' ||\n (typeof window !== 'undefined' &&\n window.matchMedia &&\n window.matchMedia('(prefers-color-scheme: dark)').matches);\n\n const cardBackground =\n theme?.surfaceColor ||\n theme?.components?.card?.backgroundColor ||\n (isDarkMode ? '#111827' : '#ffffff');\n const cardBorder =\n theme?.borderColor ||\n theme?.components?.card?.borderColor ||\n (isDarkMode ? 'rgba(255, 255, 255, 0.10)' : 'rgba(15, 23, 42, 0.08)');\n const cardShadow =\n theme?.shadows?.medium ||\n theme?.components?.card?.boxShadow ||\n (isDarkMode\n ? '0 8px 18px rgba(0, 0, 0, 0.28)'\n : '0 8px 18px rgba(15, 23, 42, 0.08)');\n const accentColor = '#2563eb';\n const mutedText = isDarkMode ? '#9ca3af' : '#6b7280';\n const bodyText = isDarkMode ? '#e5e7eb' : '#374151';\n const titleText = isDarkMode ? '#f9fafb' : '#0f172a';\n const railCardBackground = isDarkMode ? 'rgba(255, 255, 255, 0.04)' : '#f8fafc';\n const textColumnOffset = '50px';\n const footerAction =\n shouldShowDelegationButton || shouldShowPrimaryCta ? (\n <div style={{ display: 'flex', alignItems: 'center', gap: '10px', flexWrap: 'wrap' }}>\n {shouldShowDelegationButton ? (\n <button\n type=\"button\"\n onClick={handleDelegationClick}\n style={{\n background: 'none',\n border: 'none',\n padding: 0,\n color: accentColor,\n fontSize: '12px',\n fontWeight: 500,\n cursor: 'pointer',\n textDecoration: 'none',\n }}\n >\n {delegationCtaText}\n </button>\n ) : null}\n {shouldShowPrimaryCta ? (\n <a\n href={clickUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={(e) => handleContainerClick('compact_tail_ad_cta', e)}\n style={{\n color: accentColor,\n fontSize: '12px',\n fontWeight: 600,\n textDecoration: 'none',\n }}\n >\n {ctaLabel}\n </a>\n ) : null}\n </div>\n ) : null;\n\n return (\n <AdMeshViewabilityTracker\n productId={productId}\n recommendationId={recommendationId}\n exposureUrl={exposureUrl}\n sessionId={sessionId}\n triggerExposureUrl={triggerExposureUrl}\n className={`admesh-compact-tail-ad ${className}`}\n style={{\n all: 'initial',\n boxSizing: 'border-box',\n display: 'block',\n fontFamily: theme?.fontFamily || '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n fontSize: '14px',\n lineHeight: 1.4,\n ...style,\n }}\n >\n <style>{`\n .admesh-compact-tail-ad,\n .admesh-compact-tail-ad * {\n box-sizing: border-box;\n }\n\n .admesh-compact-line-clamp-1 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n\n .admesh-compact-line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n\n .admesh-compact-tail-scroll {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n\n .admesh-compact-tail-scroll::-webkit-scrollbar {\n display: none;\n }\n\n @media (max-width: 420px) {\n .admesh-compact-meta-row {\n align-items: flex-start !important;\n }\n\n .admesh-compact-disclosure-actions {\n gap: 4px !important;\n }\n\n .admesh-compact-footer-row,\n .admesh-compact-report-panel,\n .admesh-compact-report-status {\n margin-left: 0 !important;\n }\n\n .admesh-compact-report-panel {\n width: 100%;\n }\n\n .admesh-compact-report-option {\n flex: 1 1 calc(50% - 6px);\n min-height: 34px;\n }\n }\n `}</style>\n <div\n role={!hasProductRail && clickUrl ? 'link' : undefined}\n tabIndex={!hasProductRail && clickUrl ? 0 : undefined}\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: '10px',\n padding: '12px',\n borderRadius: theme?.borderRadius || theme?.components?.card?.borderRadius || '14px',\n border: `1px solid ${cardBorder}`,\n background: cardBackground,\n boxShadow: cardShadow,\n minWidth: 0,\n cursor: !hasProductRail && clickUrl ? 'pointer' : undefined,\n }}\n onClick={handleCardClick}\n onKeyDown={handleCardKeyDown}\n >\n <div style={{ display: 'flex', gap: '10px', alignItems: 'flex-start', minWidth: 0 }}>\n <div\n style={{\n width: '40px',\n height: '40px',\n borderRadius: '10px',\n flexShrink: 0,\n overflow: 'hidden',\n background: isDarkMode ? '#1f2937' : '#eff6ff',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {!logoError && logoUrl && isValidUrl(logoUrl) ? (\n <img\n src={logoUrl}\n alt={`${brandName} logo`}\n style={{\n width: '100%',\n height: '100%',\n objectFit: 'contain',\n padding: '6px',\n background: '#ffffff',\n }}\n onError={() => setLogoError(true)}\n />\n ) : (\n <span style={{ fontSize: '14px', fontWeight: 700, color: mutedText }}>\n {(brandName || 'A').charAt(0).toUpperCase()}\n </span>\n )}\n </div>\n\n <div style={{ flex: 1, minWidth: 0 }}>\n <div\n className=\"admesh-compact-meta-row\"\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '8px',\n marginBottom: '4px',\n }}\n >\n <div className=\"admesh-compact-line-clamp-1\" style={{ fontSize: '11px', color: mutedText }}>\n {shouldShowBrandEyebrow ? brandName : ''}\n </div>\n <span\n style={{\n flexShrink: 0,\n fontSize: '10px',\n color: mutedText,\n textTransform: 'uppercase',\n letterSpacing: '0.08em',\n }}\n >\n {disclosure}\n </span>\n </div>\n\n {!hasProductRail && (\n <div\n className=\"admesh-compact-line-clamp-2\"\n style={{\n fontSize: '14px',\n lineHeight: 1.3,\n fontWeight: 700,\n color: titleText,\n marginBottom: '4px',\n }}\n title={compactTitle}\n >\n {compactTitle}\n </div>\n )}\n\n {compactSummary && (\n <p\n className=\"admesh-compact-line-clamp-2\"\n style={{\n margin: 0,\n fontSize: '12px',\n lineHeight: 1.35,\n color: bodyText,\n }}\n title={compactSummary}\n >\n {compactSummary}\n </p>\n )}\n </div>\n </div>\n\n {hasProductRail && (\n <div\n className=\"admesh-compact-tail-scroll\"\n style={{\n display: 'flex',\n gap: '8px',\n overflowX: 'auto',\n paddingBottom: '2px',\n }}\n >\n {visibleProducts.map((product) => {\n const productName = getDisplayText(product.product_name) || 'Product';\n const productLink =\n getDisplayText(product.product_link) ||\n getDisplayText(product.product_url) ||\n clickUrl ||\n '#';\n const productPrice = formatProductPrice(product.product_price, product.product_currency);\n const productImageUrl = getDisplayText(product.product_image_url);\n const displayImage = productImageUrl && isValidUrl(productImageUrl) ? productImageUrl : '';\n const hasProductLink = productLink !== '#';\n\n return (\n <a\n key={product.product_id || `${recommendationId}-${productName}`}\n href={productLink}\n target={hasProductLink ? '_blank' : undefined}\n rel={hasProductLink ? 'noopener noreferrer' : undefined}\n onClick={(e) => handleContainerClick(`compact_tail_ad_product_${product.product_id || 'item'}`, e)}\n style={{\n minWidth: '220px',\n maxWidth: '220px',\n display: 'block',\n textDecoration: 'none',\n color: 'inherit',\n border: `1px solid ${cardBorder}`,\n borderRadius: '12px',\n background: railCardBackground,\n padding: '8px',\n flexShrink: 0,\n }}\n >\n <div style={{ display: 'flex', gap: '8px', alignItems: 'flex-start' }}>\n <div\n style={{\n width: '34px',\n height: '34px',\n borderRadius: '8px',\n overflow: 'hidden',\n flexShrink: 0,\n background: isDarkMode ? '#374151' : '#e5e7eb',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: mutedText,\n fontSize: '12px',\n fontWeight: 700,\n }}\n >\n {displayImage ? (\n <img src={displayImage} alt={productName} style={{ width: '100%', height: '100%', objectFit: 'cover' }} />\n ) : (\n productName.charAt(0).toUpperCase()\n )}\n </div>\n\n <div style={{ minWidth: 0, flex: 1 }}>\n <div\n style={{\n fontSize: '12px',\n lineHeight: 1.25,\n fontWeight: 600,\n color: titleText,\n marginBottom: '4px',\n whiteSpace: 'normal',\n wordBreak: 'break-word',\n }}\n title={productName}\n >\n {productName}\n </div>\n <div style={{ display: 'flex', alignItems: 'center', gap: '6px', flexWrap: 'wrap' }}>\n {productPrice && (\n <span style={{ fontSize: '12px', fontWeight: 700, color: titleText }}>\n {productPrice}\n </span>\n )}\n </div>\n </div>\n </div>\n </a>\n );\n })}\n </div>\n )}\n\n <div\n className=\"admesh-compact-footer-row\"\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '8px',\n flexWrap: 'wrap',\n marginLeft: hasProductRail ? 0 : textColumnOffset,\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: '10px', minWidth: 0, flexWrap: 'wrap' }}>\n {footerAction}\n </div>\n\n <div\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n gap: '8px',\n marginLeft: 'auto',\n flexShrink: 0,\n }}\n >\n {hasProductRail && relatedProducts.length > visibleProducts.length ? (\n <span style={{ fontSize: '10px', color: mutedText }}>\n +{relatedProducts.length - visibleProducts.length} more\n </span>\n ) : null}\n <button\n type=\"button\"\n aria-label={submittedReportReason ? 'Recommendation reported' : 'Report recommendation'}\n title={submittedReportReason ? 'Reported' : 'Report recommendation'}\n disabled={!!submittedReportReason}\n onClick={handleReportButtonClick}\n style={{\n width: '28px',\n height: '28px',\n borderRadius: '999px',\n border: `1px solid ${cardBorder}`,\n background: submittedReportReason ? railCardBackground : cardBackground,\n color: submittedReportReason ? accentColor : mutedText,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 0,\n cursor: submittedReportReason ? 'default' : 'pointer',\n flexShrink: 0,\n }}\n >\n <Flag size={13} />\n </button>\n </div>\n </div>\n\n {reportMenuOpen ? (\n <div\n className=\"admesh-compact-report-panel\"\n onClick={(event) => event.stopPropagation()}\n style={{\n marginLeft: hasProductRail ? 0 : textColumnOffset,\n border: `1px solid ${cardBorder}`,\n borderRadius: '12px',\n background: railCardBackground,\n padding: '8px',\n display: 'flex',\n flexWrap: 'wrap',\n gap: '6px',\n }}\n >\n {reportReasons.map((reason) => (\n <button\n key={reason.value}\n className=\"admesh-compact-report-option\"\n type=\"button\"\n onClick={(event) => handleReportReasonClick(event, reason.value)}\n style={{\n borderRadius: '999px',\n border: `1px solid ${cardBorder}`,\n background: cardBackground,\n color: titleText,\n fontSize: '11px',\n fontWeight: 600,\n padding: '6px 9px',\n cursor: 'pointer',\n }}\n >\n {reason.label}\n </button>\n ))}\n </div>\n ) : null}\n\n {submittedReportReason ? (\n <div\n className=\"admesh-compact-report-status\"\n style={{\n marginLeft: hasProductRail ? 0 : textColumnOffset,\n fontSize: '11px',\n color: mutedText,\n }}\n >\n Thanks for reporting this recommendation.\n </div>\n ) : null}\n\n {showConsentPrompt ? (\n <div\n style={{\n marginTop: '2px',\n border: `1px solid ${cardBorder}`,\n borderRadius: '12px',\n background: railCardBackground,\n padding: '12px',\n display: 'flex',\n flexDirection: 'column',\n gap: '10px',\n }}\n >\n <div style={{ display: 'flex', flexDirection: 'column', gap: '4px' }}>\n <div\n style={{\n fontSize: '11px',\n fontWeight: 700,\n letterSpacing: '0.06em',\n textTransform: 'uppercase',\n color: accentColor,\n }}\n >\n Confirm Agent Access\n </div>\n <div style={{ fontSize: '13px', lineHeight: 1.4, color: titleText, fontWeight: 600 }}>\n Allow {delegationBrandName || 'this brand'} to start a delegated session?\n </div>\n <div style={{ fontSize: '12px', lineHeight: 1.45, color: bodyText }}>\n The agent will only use the details you choose to share for this request.\n </div>\n </div>\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>\n <button\n type=\"button\"\n disabled={isConsentConnecting}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n if (isConsentConnecting) {\n return;\n }\n resolveConsentPrompt(false);\n }}\n style={{\n borderRadius: '10px',\n border: `1px solid ${cardBorder}`,\n background: cardBackground,\n color: titleText,\n fontSize: '12px',\n fontWeight: 600,\n padding: '8px 12px',\n cursor: isConsentConnecting ? 'not-allowed' : 'pointer',\n opacity: isConsentConnecting ? 0.65 : 1,\n }}\n >\n Not now\n </button>\n <button\n type=\"button\"\n disabled={isConsentConnecting}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n if (isConsentConnecting) {\n return;\n }\n resolveConsentPrompt(true);\n }}\n style={{\n borderRadius: '10px',\n border: 'none',\n background: accentColor,\n color: '#ffffff',\n fontSize: '12px',\n fontWeight: 700,\n padding: '8px 12px',\n cursor: isConsentConnecting ? 'wait' : 'pointer',\n opacity: isConsentConnecting ? 0.86 : 1,\n }}\n >\n {isConsentConnecting ? 'Connecting...' : 'Allow agent'}\n </button>\n </div>\n </div>\n ) : null}\n </div>\n </AdMeshViewabilityTracker>\n );\n};\n\nexport default AdMeshCompactCard;\n","import type { FC } from 'react';\nimport { logger } from '../utils/logger';\nimport type { AdMeshLayoutProps } from '../types/index';\nimport { AdMeshCompactCard } from './AdMeshCompactCard';\n\nexport const AdMeshLayout: FC<AdMeshLayoutProps> = ({\n recommendations,\n theme,\n className,\n style,\n sessionId,\n onDelegationConsent,\n onDelegationActivated,\n onStartDelegation,\n}) => {\n const validRecs = recommendations.filter(\n (rec) => rec && typeof rec === 'object' && typeof rec.recommendation_id === 'string' && rec.recommendation_id.length > 0,\n );\n\n // Validate that valid recommendations are provided\n if (!validRecs || validRecs.length === 0) {\n logger.log('[AdMeshLayout] Empty or invalid recommendations array - not rendering anything');\n return null;\n }\n\n logger.log(`[AdMeshLayout] Rendering with ${validRecs.length} valid recommendations`);\n\n // Render based on layout type (default to tail)\n const renderContent = () => {\n if (validRecs.length > 0) {\n const firstRec = validRecs[0];\n const preferredFormat = firstRec.recommendation?.format;\n \n logger.log('[AdMeshLayout] 🔍 Checking format:', {\n preferredFormat,\n recommendationKeys: Object.keys(firstRec || {})\n });\n\n if (preferredFormat === 'product_card' || preferredFormat === 'weave' || preferredFormat === 'bridge') {\n logger.warn(`[AdMeshLayout] ${preferredFormat} format requested, falling back to tail for canonical render payload`);\n }\n }\n\n return (\n <AdMeshCompactCard\n recommendations={validRecs}\n theme={theme}\n sessionId={sessionId}\n onDelegationConsent={onDelegationConsent}\n onDelegationActivated={onDelegationActivated}\n onStartDelegation={onStartDelegation}\n />\n );\n };\n\n return (\n <div\n className={`admesh-layout ${className}`}\n style={{\n fontFamily: theme?.fontFamily || '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n ...style\n }}\n >\n {renderContent()}\n </div>\n );\n};\n\nexport default AdMeshLayout;\n","/**\n * AdMesh Tracker\n *\n * Handles MRC-compliant exposure tracking for recommendations\n *\n * MRC Viewability Standards:\n * - Display Ads: 50% of pixels visible for at least 1 continuous second\n * - Large Display Ads (>242,500 pixels): 30% of pixels visible for at least 1 continuous second\n */\n\nimport { logger } from '../utils/logger';\n\nexport interface TrackerConfig {\n apiKey: string;\n debug?: boolean;\n}\n\n/**\n * MRC Viewability threshold configuration\n */\ninterface MRCThreshold {\n visibilityPercentage: number; // 50% for standard ads, 30% for large ads\n minimumDurationMs: number; // 1000ms (1 second)\n}\n\nexport class AdMeshTracker {\n private firedExposures: Set<string> = new Set();\n private debug: boolean = false;\n private mrcThreshold: MRCThreshold = {\n visibilityPercentage: 50,\n minimumDurationMs: 1000\n };\n\n constructor(config: TrackerConfig) {\n this.debug = config.debug || false;\n }\n\n /**\n * Fire an exposure tracking pixel with MRC viewability compliance\n *\n * This method should be called when an ad element becomes viewable according to MRC standards.\n * The caller is responsible for ensuring the ad meets the MRC threshold before calling this method.\n *\n * Prevents duplicate firing for the same ad in the same session.\n *\n * @param exposureUrl - The tracking pixel URL to fire\n * @param recommendationId - The recommendation ID for deduplication\n * @param sessionId - The session ID for deduplication\n */\n fireExposure(exposureUrl: string, recommendationId: string, sessionId: string): void {\n const key = `${sessionId}_${recommendationId}`;\n\n // Prevent duplicate exposures\n if (this.firedExposures.has(key)) {\n if (this.debug) {\n logger.log('[Tracker] Exposure already fired');\n }\n return;\n }\n\n this.firedExposures.add(key);\n\n try {\n // Fire the exposure pixel\n // Note: The caller should ensure MRC compliance before calling this method\n fetch(exposureUrl, { method: 'GET', keepalive: true }).catch(() => {\n if (this.debug) {\n logger.warn('[Tracker] Failed to fire exposure');\n }\n });\n\n if (this.debug) {\n logger.log('[Tracker] Fired MRC-compliant exposure');\n }\n } catch (error) {\n if (this.debug) {\n logger.error('[Tracker] Error firing exposure');\n }\n }\n }\n\n /**\n * Fire an exposure pixel with MRC viewability verification\n *\n * This method monitors an element for MRC viewability compliance before firing the exposure pixel.\n * It uses Intersection Observer API to track visibility and ensures the ad meets the threshold\n * (50% visible for 1 continuous second) before firing.\n *\n * @param exposureUrl - The tracking pixel URL to fire\n * @param recommendationId - The recommendation ID for deduplication\n * @param sessionId - The session ID for deduplication\n * @param element - The DOM element to monitor for viewability\n * @returns Promise that resolves when exposure is fired or timeout occurs\n */\n async fireExposureWithMRCCompliance(\n exposureUrl: string,\n recommendationId: string,\n sessionId: string,\n element: HTMLElement\n ): Promise<void> {\n const key = `${sessionId}_${recommendationId}`;\n\n // Prevent duplicate exposures\n if (this.firedExposures.has(key)) {\n if (this.debug) {\n logger.log('[Tracker] MRC exposure already fired');\n }\n return;\n }\n\n return new Promise((resolve) => {\n let viewableStartTime: number | null = null;\n let timeoutId: NodeJS.Timeout | null = null;\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n const visibilityPercentage = (entry.intersectionRatio * 100);\n\n if (visibilityPercentage >= this.mrcThreshold.visibilityPercentage) {\n // Ad is visible enough\n if (viewableStartTime === null) {\n // Start tracking viewable duration\n viewableStartTime = Date.now();\n\n if (this.debug) {\n logger.log('[Tracker] Ad reached MRC visibility threshold');\n }\n\n // Set timeout to fire exposure after minimum duration\n timeoutId = setTimeout(() => {\n // Fire the exposure pixel\n this.fireExposure(exposureUrl, recommendationId, sessionId);\n observer.disconnect();\n resolve();\n }, this.mrcThreshold.minimumDurationMs);\n }\n } else {\n // Ad visibility dropped below threshold\n if (viewableStartTime !== null) {\n // Reset tracking\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n viewableStartTime = null;\n\n if (this.debug) {\n logger.log('[Tracker] Ad visibility dropped below MRC threshold');\n }\n }\n }\n });\n },\n {\n threshold: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],\n rootMargin: '0px'\n }\n );\n\n observer.observe(element);\n\n // Cleanup on unmount or after reasonable timeout\n const maxWaitTime = 30000; // 30 seconds max wait\n const cleanupTimeout = setTimeout(() => {\n observer.disconnect();\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n resolve();\n }, maxWaitTime);\n\n // Store cleanup function for manual cleanup if needed\n (element as any).__admeshTrackerCleanup = () => {\n observer.disconnect();\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n clearTimeout(cleanupTimeout);\n };\n });\n }\n\n /**\n * Clear fired exposures (useful for testing or session reset)\n */\n clearFiredExposures(): void {\n this.firedExposures.clear();\n }\n\n /**\n * Get MRC threshold configuration\n */\n getMRCThreshold(): MRCThreshold {\n return { ...this.mrcThreshold };\n }\n\n /**\n * Set custom MRC threshold (for testing or special cases)\n */\n setMRCThreshold(threshold: Partial<MRCThreshold>): void {\n this.mrcThreshold = {\n ...this.mrcThreshold,\n ...threshold\n };\n }\n\n /**\n * Fire exposure pixel for sponsored followup\n * Uses same logic as regular exposure tracking\n * \n * @param exposureUrl - The tracking pixel URL to fire (can use regular exposure_url)\n * @param recommendationId - The recommendation ID for deduplication\n * @param sessionId - The session ID for deduplication\n */\n fireFollowupExposure(\n exposureUrl: string,\n recommendationId: string,\n sessionId: string\n ): void {\n // Reuse existing fireExposure() method\n this.fireExposure(exposureUrl, recommendationId, sessionId);\n }\n\n /**\n * Fire engagement tracking for sponsored followup\n * \n * @param engagementUrl - The engagement tracking URL to fire\n * @param recommendationId - The recommendation ID\n * @param sessionId - The session ID (sent in POST body for analytics joining)\n * @returns Promise that resolves when engagement is fired\n */\n fireFollowupEngagement(\n engagementUrl: string,\n _recommendationId: string,\n sessionId: string\n ): Promise<void> {\n // Use fetch with keepalive and POST method\n // Always resolve the promise even on error to prevent unhandled rejections\n return fetch(engagementUrl, {\n method: 'POST',\n keepalive: true,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ session_id: sessionId })\n }).catch((error) => {\n // Log error silently (only in debug mode) - network errors are expected and shouldn't break the flow\n if (this.debug) {\n logger.warn('[Tracker] Failed to fire followup engagement (non-critical):', error);\n }\n // Return undefined to resolve the promise successfully\n // This prevents the error from propagating to callers\n return undefined;\n }).then(() => {\n // Ensure promise always resolves with void (no return value)\n // This makes the return type consistent: Promise<void>\n });\n }\n}\n","/**\n * Extract headings directly from web pages without external scripts\n * This utility function can be used by anyone who integrates the AdMesh UI SDK\n */\n\nexport interface HeadingsExtractionResult {\n title: string;\n headings: string[];\n article_text?: string;\n url: string;\n domain: string;\n extracted_at: string;\n}\n\nfunction titleFromPath(pathname: string): string {\n const segments = pathname.split('/').filter(Boolean);\n const raw = segments[segments.length - 1] || segments[segments.length - 2] || '';\n const withoutExtension = raw.replace(/\\.[a-z0-9]+$/i, '');\n const cleaned = withoutExtension.replace(/[-_]+/g, ' ').replace(/\\s+/g, ' ').trim();\n return cleaned\n ? cleaned.replace(/\\b\\w/g, (char) => char.toUpperCase())\n : 'This page';\n}\n\n/**\n * Extract headings directly from the current web page\n * Bypasses CSP restrictions by using direct DOM access\n * \n * @returns {HeadingsExtractionResult | null} Object containing title, headings, and metadata\n */\nexport function extractHeadingsDirectly(): HeadingsExtractionResult | null {\n try {\n console.log('[AdMesh] Starting direct headings extraction...');\n \n // Clean and normalize text content\n const cleanText = (text: string) => text.replace(/\\s+/g, \" \").trim();\n\n const getArticleText = () => {\n const selectors = [\n 'article',\n 'main article',\n 'main',\n '[role=\"main\"]',\n '[data-admesh-article]',\n '.article-content',\n '.post-content',\n '.entry-content',\n '.content',\n ];\n\n const ignoredSelector = [\n 'script',\n 'style',\n 'noscript',\n 'svg',\n 'canvas',\n 'iframe',\n 'nav',\n 'header',\n 'footer',\n 'aside',\n '[aria-hidden=\"true\"]',\n '[data-admesh-ignore]',\n '.admesh-publisher-assistant-root',\n '.admesh-publisher-assistant-reactMount',\n '.admesh-publisher-assistant-floating',\n '.admesh-publisher-assistant-inline',\n ].join(',');\n\n const candidates = selectors\n .map((selector) => document.querySelector(selector))\n .filter((element): element is Element => Boolean(element));\n\n const sourceElement = candidates\n .map((element) => {\n const clone = element.cloneNode(true) as Element;\n clone.querySelectorAll(ignoredSelector).forEach((node) => node.remove());\n const text = cleanText(clone.textContent || '');\n return { element, text };\n })\n .filter((candidate) => candidate.text.length >= 200)\n .sort((a, b) => b.text.length - a.text.length)[0]?.element || document.body;\n\n const clone = sourceElement.cloneNode(true) as Element;\n clone.querySelectorAll(ignoredSelector).forEach((node) => node.remove());\n\n const paragraphs = Array.from(clone.querySelectorAll('h1, h2, h3, p, li, blockquote'))\n .map((element) => cleanText(element.textContent || ''))\n .filter((text) => text.length >= 24);\n\n const articleText = paragraphs.length > 0\n ? paragraphs.join('\\n')\n : cleanText(clone.textContent || '');\n\n return articleText.slice(0, 6000);\n };\n \n const fallbackTitle = titleFromPath(window.location.pathname || '/');\n \n // Extract title\n const title = cleanText(document.title || '') || fallbackTitle;\n \n // Extract all headings by selector and combine into single array\n const getAllHeadings = () => {\n const allHeadings: string[] = [];\n \n // Get all heading elements (h1 through h6)\n const headingElements = document.querySelectorAll('h1, h2, h3, h4, h5, h6');\n \n // Convert NodeList to array and extract text\n Array.from(headingElements).forEach(element => {\n const text = cleanText(element.textContent || '');\n if (text.length > 0) {\n allHeadings.push(text);\n }\n });\n \n return allHeadings;\n };\n \n // Extract all headings in desired format\n const headings = getAllHeadings();\n const resolvedHeadings = headings.length > 0 ? headings : [title || fallbackTitle];\n \n // Create the simplified output format\n const result: HeadingsExtractionResult = {\n title: title,\n headings: resolvedHeadings,\n article_text: getArticleText(),\n url: window.location.href,\n domain: window.location.hostname,\n extracted_at: new Date().toISOString()\n };\n \n console.log('[AdMesh] Extracted headings:', {\n title: result.title,\n headingsCount: result.headings.length,\n articleTextLength: result.article_text?.length || 0,\n domain: result.domain\n });\n \n return result;\n } catch (error) {\n console.error('[AdMesh] Error in direct headings extraction:', error);\n return null;\n }\n}\n","/**\n * ACIE (AdMesh Commercial Intent Engine) API integration\n * Provides intent analysis functionality for the AdMesh UI SDK\n */\n\nimport type { AdMeshSDKConfig } from '../sdk/AdMeshSDK';\nimport type { Suggestion } from '../components/AdMeshIntentAssistant';\nimport type { PlatformResponse } from '../types/index';\n\nexport interface CommercialIntentRequest {\n url: string;\n title?: string;\n headings?: string[];\n article_text?: string;\n domain: string;\n article_slug?: string;\n agent_id?: string;\n cpx_floor?: number;\n source: string;\n api_key: string;\n user_id?: string;\n}\n\nexport interface CommercialIntentResult {\n url: string;\n domain: string;\n suggestions: Suggestion[];\n}\n\ntype AcieRecommendationProduct = {\n product_id?: string;\n product_link?: string;\n product_click_url?: string;\n product_name?: string;\n product_description?: string;\n product_price?: string | number | null;\n product_discount?: string | number | null;\n product_currency?: string;\n product_discount_type?: string;\n product_cta_label?: string;\n product_image_url?: string;\n product_features?: string[];\n};\n\ntype AcieRecommendationPayload = {\n recommendation_id?: string;\n title?: string;\n url?: string;\n click_url?: string;\n exposure_url?: string;\n follow_up_suggestion?: string;\n followup_engagement_url?: string;\n followup_exposure_url?: string;\n preferred_format?: string;\n products?: AcieRecommendationProduct[];\n creative_input?: {\n brand_name?: string;\n product_name?: string;\n short_description?: string;\n long_description?: string;\n cta_label?: string;\n cta_url?: string;\n assets?: {\n image_urls?: string[];\n logo_url?: string;\n };\n };\n};\n\nfunction isPlatformResponse(value: unknown): value is PlatformResponse {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'recommendation_id' in value &&\n 'status' in value\n );\n}\n\nfunction normalizeAcieRecommendation(value: unknown): PlatformResponse | undefined {\n if (!value || typeof value !== 'object') {\n return undefined;\n }\n\n if (isPlatformResponse(value)) {\n return value;\n }\n\n const recommendation = value as AcieRecommendationPayload;\n if (!recommendation.recommendation_id) {\n return undefined;\n }\n\n const products = (recommendation.products || []).map((product) => ({\n product_id: product.product_id || '',\n product_link: product.product_link || product.product_click_url || recommendation.click_url || recommendation.url || '',\n product_name: product.product_name || recommendation.title || recommendation.creative_input?.product_name || '',\n product_description: product.product_description || '',\n product_price: product.product_price ?? undefined,\n product_discount: product.product_discount ?? undefined,\n product_currency: product.product_currency,\n product_discount_type: product.product_discount_type,\n product_cta_label: product.product_cta_label || recommendation.creative_input?.cta_label,\n product_image_url: product.product_image_url,\n product_features: product.product_features,\n }));\n\n return {\n spec_version: '1.0',\n recommendation_id: recommendation.recommendation_id,\n timestamp: new Date().toISOString(),\n status: 'generated',\n ttl_ms: 300000,\n recommendation: {\n format: (recommendation.preferred_format as NonNullable<PlatformResponse['recommendation']>['format']) || 'tail',\n disclosure: 'Sponsored',\n creative: {\n brand_name: recommendation.creative_input?.brand_name || '',\n headline: recommendation.title || recommendation.creative_input?.product_name || '',\n description:\n recommendation.creative_input?.short_description ||\n recommendation.creative_input?.long_description ||\n '',\n cta_text: recommendation.creative_input?.cta_label || products[0]?.product_cta_label || 'Learn more',\n follow_up_suggestion: recommendation.follow_up_suggestion,\n logo_url: recommendation.creative_input?.assets?.logo_url,\n image_urls: recommendation.creative_input?.assets?.image_urls || [],\n landing_page_url: recommendation.url || recommendation.click_url || recommendation.creative_input?.cta_url || '',\n products,\n },\n },\n tracking: {\n exposure_url: recommendation.exposure_url,\n click_url: recommendation.click_url,\n followup_exposure_url: recommendation.followup_exposure_url,\n followup_engagement_url: recommendation.followup_engagement_url,\n },\n };\n}\n\nfunction normalizeCommercialIntentResult(result: CommercialIntentResult): CommercialIntentResult {\n return {\n ...result,\n suggestions: (result.suggestions || []).map((suggestion) => ({\n ...suggestion,\n recommendation: normalizeAcieRecommendation(suggestion.recommendation),\n })),\n };\n}\n\n/**\n * Extract article slug from URL for publisher API keys\n */\nfunction extractArticleSlug(url: string): string | undefined {\n try {\n const urlObj = new URL(url);\n const pathSegments = urlObj.pathname.split('/').filter(segment => segment.length > 0);\n const articleSlug = pathSegments[pathSegments.length - 1];\n return articleSlug || undefined;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Call ACIE analyze-intent endpoint to analyze commercial intent of a page\n * \n * @param headingsData - Page data including title, headings, URL, and domain\n * @param config - AdMesh SDK configuration containing API base URL and API key\n * @returns Promise<CommercialIntentResult | null> - Intent analysis results or null on error\n */\nexport async function callAnalyzeIntentEndpoint(\n headingsData: {\n url: string;\n title?: string;\n headings?: string[];\n article_text?: string;\n domain: string;\n },\n config: AdMeshSDKConfig\n): Promise<CommercialIntentResult | null> {\n try {\n console.log('[AdMesh SDK] Starting ACIE analyze-intent call...', { url: headingsData.url });\n \n // Combine all headings into content for analysis\n const allHeadings = Array.isArray(headingsData.headings) ? headingsData.headings : [];\n const pathTopic = extractArticleSlug(headingsData.url)\n ?.replace(/[-_]+/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim();\n const fallbackHeading = pathTopic\n ? pathTopic.replace(/\\b\\w/g, (char) => char.toUpperCase())\n : undefined;\n \n // Extract article slug for publisher API keys\n const articleSlug = config.apiKey.toLowerCase().startsWith('pub_') \n ? extractArticleSlug(headingsData.url)\n : undefined;\n\n const normalizedSource = config.extension ? 'extension' : 'admesh_ui_sdk';\n const normalizedDomain = (\n headingsData.domain ||\n (typeof window !== 'undefined' ? window.location.hostname : '')\n ).trim().toLowerCase();\n \n // Prepare request payload matching CommercialIntentRequest model\n const payload: CommercialIntentRequest = {\n url: headingsData.url,\n title: headingsData.title || undefined,\n headings: allHeadings.length > 0 ? allHeadings : fallbackHeading ? [fallbackHeading] : undefined,\n article_text: headingsData.article_text?.trim() || undefined,\n domain: normalizedDomain,\n article_slug: articleSlug,\n agent_id: undefined, // Optional - can be added later if needed\n cpx_floor: undefined, // Optional - can be added later if needed\n source: normalizedSource,\n api_key: config.apiKey, // Add API key from config\n user_id: config.userId || undefined\n };\n \n console.log('[AdMesh SDK] Payload prepared:', {\n url: payload.url,\n titleLength: payload.title?.length || 0,\n headingsCount: payload.headings?.length || 0,\n articleTextLength: payload.article_text?.length || 0,\n domain: payload.domain,\n article_slug: payload.article_slug,\n source: payload.source,\n has_user_id: !!payload.user_id\n });\n \n const apiUrl = `${config.apiBaseUrl}/acie/analyze-intent`;\n console.log('[AdMesh SDK] Calling ACIE API:', apiUrl);\n \n // Make API call to ACIE endpoint\n const response = await fetch(apiUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${config.apiKey}`\n },\n body: JSON.stringify(payload)\n });\n \n console.log('[AdMesh SDK] ACIE API response received:', {\n status: response.status,\n statusText: response.statusText,\n ok: response.ok\n });\n \n if (!response.ok) {\n const errorText = await response.text();\n console.error('[AdMesh SDK] ACIE API error:', {\n status: response.status,\n statusText: response.statusText,\n errorText: errorText\n });\n throw new Error(`ACIE API error: ${response.status} - ${errorText}`);\n }\n \n const rawAnalysisResult = await response.json();\n const analysisResult = normalizeCommercialIntentResult(rawAnalysisResult as CommercialIntentResult);\n \n console.log('[AdMesh SDK] ACIE analysis completed:', {\n url: headingsData.url,\n suggestionsCount: analysisResult.suggestions.length\n });\n \n // Return the analysis result\n return analysisResult;\n \n } catch (err) {\n console.error('[AdMesh SDK] Error calling ACIE analyze-intent endpoint:', err);\n return null;\n }\n}\n","/**\n * Fetch virtual page context for GAM/Xandr ad-slot creatives.\n */\n\nimport type { HeadingsExtractionResult } from './extractHeadings';\n\nexport type PageContextSource = 'cache' | 'index' | 'httpx' | 'firecrawl' | 'degraded';\n\nexport interface PageContextApiConfig {\n apiKey: string;\n apiBaseUrl: string;\n agentDisplayId?: string;\n publisherId?: string;\n}\n\nexport interface PageContextResponse {\n context: HeadingsExtractionResult & { degraded?: boolean };\n source: PageContextSource;\n cache_hit: boolean;\n}\n\nexport async function fetchPageContext(\n url: string,\n config: PageContextApiConfig,\n): Promise<PageContextResponse> {\n const base = (config.apiBaseUrl || 'https://api.useadmesh.com').replace(/\\/$/, '');\n const params = new URLSearchParams({ url: url.trim() });\n if (config.agentDisplayId?.trim()) {\n params.set('agent_display_id', config.agentDisplayId.trim());\n }\n if (config.publisherId?.trim()) {\n params.set('publisher_id', config.publisherId.trim());\n }\n\n const response = await fetch(`${base}/publisher-assistant/page-context?${params.toString()}`, {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n Authorization: `Bearer ${config.apiKey}`,\n },\n });\n\n if (!response.ok) {\n const body = await response.text().catch(() => '');\n throw new Error(`Page context request failed (${response.status}): ${body || response.statusText}`);\n }\n\n return (await response.json()) as PageContextResponse;\n}\n","'use client';\n\nimport { useEffect, useState, useCallback, useRef, type ReactNode, type FC } from 'react';\nimport { logger } from '../utils/logger';\nimport { AdMeshSDK } from '../sdk/AdMeshSDK';\nimport { AdMeshContext, type AdMeshContextValue } from './AdMeshContext';\nimport type { AdMeshTheme, PlatformResponse, ActiveDelegationSession } from '../types/index';\nimport { extractHeadingsDirectly, type HeadingsExtractionResult } from '../utils/extractHeadings';\nimport { callAnalyzeIntentEndpoint } from '../utils/acieApi';\nimport { fetchPageContext } from '../utils/pageContextApi';\nimport type { Suggestion } from '../components/AdMeshIntentAssistant';\n\nexport type PageContextMode = 'page' | 'ad-slot' | 'auto';\n\nfunction isInIframe(): boolean {\n if (typeof window === 'undefined') {\n return false;\n }\n try {\n return window.self !== window.top;\n } catch {\n return true;\n }\n}\n\nfunction getUsableWindowHref(): string | null {\n if (typeof window === 'undefined') {\n return null;\n }\n try {\n const href = window.location.href?.trim();\n if (isResolvedArticleUrl(href)) {\n return href;\n }\n } catch {\n return null;\n }\n return null;\n}\n\nfunction isResolvedArticleUrl(value?: string): boolean {\n const trimmed = value?.trim();\n if (!trimmed || /%%[^%]+%%/.test(trimmed)) {\n return false;\n }\n try {\n const parsed = new URL(trimmed);\n return parsed.protocol === 'http:' || parsed.protocol === 'https:';\n } catch {\n return false;\n }\n}\n\nfunction titleFromUrlPath(url: string): string {\n try {\n const parsed = new URL(url);\n const segments = parsed.pathname.split('/').filter(Boolean);\n const raw = segments[segments.length - 1] || segments[segments.length - 2] || parsed.hostname;\n const cleaned = raw\n .replace(/\\.[a-z0-9]+$/i, '')\n .replace(/[-_]+/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim();\n return cleaned ? cleaned.replace(/\\b\\w/g, (char) => char.toUpperCase()) : parsed.hostname;\n } catch {\n return 'This page';\n }\n}\n\nfunction buildUrlFallbackContext(url: string): HeadingsExtractionResult {\n const parsed = new URL(url);\n const title = titleFromUrlPath(url);\n return {\n title,\n headings: [title],\n article_text: `Article URL: ${url}\\nArticle topic inferred from URL path: ${title}`,\n url,\n domain: parsed.hostname,\n extracted_at: new Date().toISOString(),\n };\n}\n\nconst DELEGATION_HEARTBEAT_INTERVAL_MS = 60_000;\nconst DELEGATION_IDLE_HEARTBEATS_BEFORE_STOP = 3;\n\nfunction resolveArticleUrlForContext(articleUrl?: string): string | null {\n const currentHref = getUsableWindowHref();\n if (currentHref) {\n return currentHref;\n }\n const trimmed = articleUrl?.trim();\n if (isResolvedArticleUrl(trimmed)) {\n return trimmed;\n }\n return null;\n}\n\nexport interface AdMeshProviderProps {\n /** AdMesh API key (required) */\n apiKey: string;\n\n /** Render a host-provided query handler without creating the publisher SDK. */\n skipSdkInitialization?: boolean;\n\n /** Session ID (required) */\n sessionId: string;\n\n /** Optional: Whether this provider is being used by the extension (optional) */\n extension?: boolean;\n\n /** Optional theme configuration */\n theme?: AdMeshTheme;\n\n /** Optional API base URL (defaults to production) */\n apiBaseUrl?: string;\n\n /** Optional user language in BCP 47 format (e.g., \"en-US\") */\n language?: string;\n\n /** Optional detailed user location */\n location?: {\n city?: string;\n state?: string;\n stateCode?: string;\n country?: string;\n countryCode?: string;\n zipcode?: string;\n latitude?: number;\n longitude?: number;\n };\n\n /** Optional anonymous hashed user ID */\n userId?: string;\n\n /** Optional AI model identifier (e.g., \"gpt-4o\") - forwarded as platform software version metadata */\n model?: string;\n\n /** Optional conversation history - forwarded in classification_input.interaction.input.messages */\n messages?: Array<{ role: string; content: string; id?: string }>;\n\n /** Pre-resolved page context (skips client/server extract) */\n pageContext?: HeadingsExtractionResult | null;\n\n /** Article URL for ad-slot / GAM (e.g. %%PAGE_URL%% macro) */\n articleUrl?: string;\n\n /** How to obtain page context: page DOM, ad-slot API, or auto-detect iframe */\n contextMode?: PageContextMode;\n\n /** Agent display id for optional content-index lookup */\n agentDisplayId?: string;\n\n /** Child components */\n children: ReactNode;\n}\n\n/**\n * AdMeshProvider - Simplified SDK integration for React applications\n *\n * Handles:\n * - SDK initialization and lifecycle management\n * - Message deduplication tracking\n * - Session and message ID management\n * - Error handling and logging\n *\n * @example\n * ```tsx\n * <AdMeshProvider\n * apiKey={process.env.NEXT_PUBLIC_ADMESH_API_KEY}\n * sessionId=\"custom-session-id\"\n * >\n * <Chat messages={messages} />\n * </AdMeshProvider>\n * \n * // Extension usage (skips intent analysis)\n * <AdMeshProvider \n * apiKey=\"pub_extension_key\"\n * sessionId=\"extension-session-id\"\n * extension={true}\n * >\n * <AdMeshIntentAssistant autoOpen={true} />\n * </AdMeshProvider>\n * ```\n */\nexport const AdMeshProvider: FC<AdMeshProviderProps> = ({\n apiKey,\n skipSdkInitialization = false,\n sessionId,\n extension,\n theme,\n apiBaseUrl,\n language,\n location,\n userId,\n model,\n messages,\n pageContext,\n articleUrl,\n contextMode = 'auto',\n agentDisplayId,\n children,\n}) => {\n const [sdk, setSdk] = useState<AdMeshSDK | null>(null);\n const [processedMessageIds, setProcessedMessageIds] = useState<Set<string>>(\n new Set()\n );\n const [recommendationResults, setRecommendationResults] = useState<\n Map<string, PlatformResponse | null>\n >(new Map());\n const [activeDelegationSession, setActiveDelegationSessionState] = useState<ActiveDelegationSession | null>(null);\n\n // Suggestion state\n const [suggestions, setSuggestions] = useState<Suggestion[]>([]);\n const [isAnalyzingIntent, setIsAnalyzingIntent] = useState(false);\n const [intentError, setIntentError] = useState<string | null>(null);\n const [isResolvingPageContext, setIsResolvingPageContext] = useState(false);\n const hasAttemptedInitialAnalysisRef = useRef(false);\n const heartbeatsSinceLastUserTurnRef = useRef(0);\n const trackedDelegationSessionIdRef = useRef<string | null>(null);\n const activeDelegationSessionRef = useRef<ActiveDelegationSession | null>(null);\n\n activeDelegationSessionRef.current = activeDelegationSession;\n\n const usesAdSlotContext =\n Boolean(pageContext) ||\n contextMode === 'ad-slot' ||\n (contextMode === 'auto' && (Boolean(articleUrl?.trim()) || isInIframe()));\n\n const resolveHeadingsForAnalysis = useCallback(async (): Promise<HeadingsExtractionResult | null> => {\n if (pageContext) {\n return pageContext;\n }\n\n if (!usesAdSlotContext) {\n return extractHeadingsDirectly();\n }\n\n const targetUrl = resolveArticleUrlForContext(articleUrl);\n if (!targetUrl) {\n logger.warn('[AdMeshProvider] Ad-slot context mode requires a real article URL');\n setIntentError('Article URL is required for ad-slot context');\n return null;\n }\n\n if (!apiKey) {\n logger.warn('[AdMeshProvider] Cannot fetch page context: missing API key');\n return buildUrlFallbackContext(targetUrl);\n }\n\n try {\n setIsResolvingPageContext(true);\n const response = await fetchPageContext(targetUrl, {\n apiKey,\n apiBaseUrl: apiBaseUrl || 'https://api.useadmesh.com',\n agentDisplayId,\n });\n logger.log('[AdMeshProvider] Page context resolved', {\n source: response.source,\n cache_hit: response.cache_hit,\n domain: response.context.domain,\n });\n return response.context;\n } catch (error) {\n logger.error('[AdMeshProvider] Failed to fetch page context:', error);\n logger.warn('[AdMeshProvider] Falling back to URL-path context for suggestions');\n return buildUrlFallbackContext(targetUrl);\n } finally {\n setIsResolvingPageContext(false);\n }\n }, [\n agentDisplayId,\n apiBaseUrl,\n apiKey,\n articleUrl,\n pageContext,\n usesAdSlotContext,\n ]);\n\n const prependSponsoredSuggestion = useCallback(\n (currentSuggestions: Suggestion[], sponsoredSuggestion: Suggestion): Suggestion[] => {\n const organicSuggestions = currentSuggestions.filter((suggestion) => !suggestion.is_sponsored).slice(0, 3);\n return [sponsoredSuggestion, ...organicSuggestions];\n },\n [],\n );\n\n const mergeOrganicSuggestions = useCallback((currentSuggestions: Suggestion[], organicSuggestions: Suggestion[]) => {\n const sponsoredSuggestion = currentSuggestions.find((suggestion) => suggestion.is_sponsored);\n const nextOrganicSuggestions = organicSuggestions.filter((suggestion) => !suggestion.is_sponsored).slice(0, 3);\n return sponsoredSuggestion ? [sponsoredSuggestion, ...nextOrganicSuggestions] : nextOrganicSuggestions;\n }, []);\n\n // Validate that sessionId is provided by platform\n useEffect(() => {\n if (!sessionId || sessionId.trim() === '') {\n logger.error('[AdMeshProvider] sessionId is required and must be provided by the platform. Use AdMeshSDK.generateSessionIdFromUrl() for URL-based detection.');\n return;\n }\n \n logger.log('[AdMeshProvider] ✅ Session ID available:', sessionId);\n }, [sessionId]);\n\n // Initialize SDK once on mount\n useEffect(() => {\n if (skipSdkInitialization) return;\n if (!apiKey) {\n logger.warn('[AdMeshProvider] ⚠️ AdMesh API key not configured');\n return;\n }\n\n if (!sessionId || sessionId.trim() === '') {\n logger.error('[AdMeshProvider] Cannot initialize SDK: sessionId is required. Use AdMeshSDK.generateSessionIdFromUrl() for URL-based detection.');\n return;\n }\n\n try {\n const sdkInstance = new AdMeshSDK({\n apiKey,\n theme,\n apiBaseUrl,\n extension,\n });\n setSdk(sdkInstance);\n logger.log('[AdMeshProvider] ✅ AdMesh SDK initialized with session:', sessionId);\n if (apiBaseUrl) {\n logger.log('[AdMeshProvider] 📍 Using custom API base URL');\n }\n } catch (error) {\n logger.error('[AdMeshProvider] Failed to initialize AdMesh SDK:', error);\n }\n\n // Cleanup on unmount\n return () => {\n logger.log('[AdMeshProvider] 🧹 Provider unmounted');\n };\n }, [apiKey, theme, apiBaseUrl, sessionId, extension, skipSdkInitialization]);\n\n // Intent analysis function\n const performIntentAnalysis = useCallback(async (prefetchedHeadingsData?: HeadingsExtractionResult | null) => {\n if (!apiKey) {\n logger.warn('[AdMeshProvider] ⚠️ Cannot perform intent analysis: missing API key');\n return;\n }\n\n // Skip intent analysis if called from extension\n if (extension) {\n logger.log('[AdMeshProvider] ℹ️ Extension mode: allowing intent analysis for any API key');\n // Don't return - continue to intent analysis for extension\n } else {\n // For non-extension usage, only allow pub_ API keys\n if (!apiKey.toLowerCase().startsWith('pub_')) {\n logger.log('[AdMeshProvider] ℹ️ Skipping auto intent analysis: API key does not start with \"pub_\"');\n return;\n }\n }\n\n try {\n setIsAnalyzingIntent(true);\n setIntentError(null);\n \n logger.log('[AdMeshProvider] 🔄 Starting automatic intent analysis...');\n \n const headingsData = prefetchedHeadingsData ?? (await resolveHeadingsForAnalysis());\n if (!headingsData) {\n logger.warn('[AdMeshProvider] ⚠️ Failed to extract headings for intent analysis');\n setIntentError('Failed to extract page content');\n return;\n }\n \n logger.log('[AdMeshProvider] 📄 Extracted headings:', {\n title: headingsData.title,\n headingsCount: headingsData.headings.length,\n articleTextLength: headingsData.article_text?.length || 0,\n domain: headingsData.domain\n });\n \n // Call ACIE API for intent analysis\n const config = {\n apiKey,\n apiBaseUrl: apiBaseUrl || 'https://api.useadmesh.com',\n extension,\n userId\n };\n \n const analysisResult = await callAnalyzeIntentEndpoint(headingsData, config);\n \n if (analysisResult) {\n logger.log('[AdMeshProvider] ✅ Intent analysis completed:', {\n suggestionsCount: analysisResult.suggestions.length,\n suggestions: (analysisResult.suggestions || []).map((suggestion) => ({\n id: suggestion.id,\n text: suggestion.text,\n is_sponsored: suggestion.is_sponsored,\n recommendationId: suggestion.recommendation?.recommendation_id || null,\n })),\n });\n \n setSuggestions((currentSuggestions) =>\n mergeOrganicSuggestions(currentSuggestions, analysisResult.suggestions || [])\n );\n } else {\n logger.warn('[AdMeshProvider] ⚠️ Intent analysis returned null');\n setIntentError('Intent analysis failed');\n setSuggestions((current) => {\n if (current.length > 0) {\n logger.log('[AdMeshProvider] ℹ️ Preserving existing suggestions after null intent analysis result');\n return current;\n }\n return [\n {\n id: \"fallback-1\",\n text: \"What are your questions about this content?\",\n type: \"information\" as const,\n is_sponsored: false,\n recommendation: undefined,\n }\n ];\n });\n }\n } catch (error) {\n logger.error('[AdMeshProvider] Error in intent analysis:', error);\n setIntentError('Intent analysis error');\n setSuggestions((current) => {\n if (current.length > 0) {\n logger.log('[AdMeshProvider] ℹ️ Preserving existing suggestions after intent analysis error');\n return current;\n }\n return [\n {\n id: \"error-fallback-1\",\n text: \"Ask me questions about this page\",\n type: \"information\" as const,\n is_sponsored: false,\n recommendation: undefined,\n }\n ];\n });\n } finally {\n setIsAnalyzingIntent(false);\n }\n }, [apiKey, apiBaseUrl, extension, userId, mergeOrganicSuggestions, resolveHeadingsForAnalysis]);\n\n const prefetchSponsoredSuggestion = useCallback(\n async (prefetchedHeadingsData?: HeadingsExtractionResult | null) => {\n if (!sdk || !apiKey) {\n return;\n }\n\n if (!apiKey.toLowerCase().startsWith('pub_')) {\n return;\n }\n\n const headingsData = prefetchedHeadingsData ?? (await resolveHeadingsForAnalysis());\n if (!headingsData) {\n logger.warn('[AdMeshProvider] ⚠️ Failed to extract page content for sponsored suggestion prefetch');\n return;\n }\n\n const query = headingsData.headings?.[0]?.trim() || headingsData.title?.trim();\n if (!query) {\n logger.warn('[AdMeshProvider] ⚠️ Skipping sponsored suggestion prefetch: no usable page query');\n return;\n }\n\n try {\n logger.log('[AdMeshProvider] 🔄 Prefetching sponsored suggestion from /aip/context...');\n const platformResult = await sdk.fetchPlatformResponse({\n query,\n sessionId,\n messageId: AdMeshSDK.createMessageId(sessionId),\n platformSurface: 'conversation',\n model,\n messages: [],\n language,\n location,\n userId,\n });\n\n const suggestionText = platformResult.recommendation?.creative?.follow_up_suggestion?.trim();\n const recommendationId = platformResult.recommendation_id;\n if (!suggestionText || !recommendationId) {\n logger.log('[AdMeshProvider] ℹ️ No sponsored follow-up suggestion returned from /aip/context');\n return;\n }\n\n const sponsoredSuggestion: Suggestion = {\n id: recommendationId,\n text: suggestionText,\n type: 'action',\n is_sponsored: true,\n recommendation: platformResult,\n metadata: {\n source: 'aip_context_prefetch',\n recommendation_id: recommendationId,\n },\n };\n\n setSuggestions((currentSuggestions) =>\n prependSponsoredSuggestion(currentSuggestions, sponsoredSuggestion)\n );\n\n logger.log('[AdMeshProvider] ✅ Sponsored suggestion prefetched from /aip/context', {\n recommendationId,\n suggestionText,\n });\n } catch (error) {\n logger.warn('[AdMeshProvider] ⚠️ Sponsored suggestion prefetch failed (non-blocking):', error);\n }\n },\n [apiKey, language, location, model, sdk, sessionId, userId, prependSponsoredSuggestion, resolveHeadingsForAnalysis],\n );\n\n // Retry intent analysis function\n const retryIntentAnalysis = useCallback(async () => {\n logger.log('[AdMeshProvider] 🔄 Manual retry of intent analysis');\n await performIntentAnalysis();\n }, [performIntentAnalysis]);\n\n // Auto-analyze intent once on mount for public API keys.\n // Empty ACIE/no_match responses are still valid outcomes and must not retrigger forever.\n useEffect(() => {\n if (!sdk || hasAttemptedInitialAnalysisRef.current) {\n return;\n }\n\n hasAttemptedInitialAnalysisRef.current = true;\n void (async () => {\n const headingsData = await resolveHeadingsForAnalysis();\n await Promise.allSettled([\n prefetchSponsoredSuggestion(headingsData),\n performIntentAnalysis(headingsData),\n ]);\n })();\n }, [sdk, performIntentAnalysis, prefetchSponsoredSuggestion, resolveHeadingsForAnalysis]);\n\n const isDelegationSessionActive = useCallback((session: ActiveDelegationSession | null) => {\n if (!session || session.status !== 'active') {\n return false;\n }\n\n const expiresAtMs = Date.parse(session.expires_at);\n if (Number.isNaN(expiresAtMs)) {\n return false;\n }\n\n return expiresAtMs > Date.now();\n }, []);\n\n const postDelegationEvent = useCallback(\n async (\n endpoint: string,\n eventType: string,\n metadata?: Record<string, unknown>,\n sessionOverride?: ActiveDelegationSession | null,\n ) => {\n const session = sessionOverride ?? activeDelegationSession;\n if (!session || !sdk) {\n logger.warn('[AdMeshProvider] ⚠️ Skipping delegation event because session or SDK is missing', {\n endpoint,\n eventType,\n hasSession: !!session,\n hasSdk: !!sdk,\n });\n return;\n }\n\n const timestamp = new Date().toISOString();\n logger.log('[AdMeshProvider] 📡 Sending delegation event', {\n endpoint,\n eventType,\n recommendationId: session.recommendation_id,\n delegationSessionId: session.delegation_session_id,\n sessionId: session.session_id,\n });\n const response = await fetch(`${sdk.getApiBaseUrl()}${endpoint}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: `Bearer ${apiKey}`,\n },\n body: JSON.stringify({\n delegation_session_id: session.delegation_session_id,\n recommendation_id: session.recommendation_id,\n session_id: session.session_id,\n event_type: eventType,\n timestamp,\n metadata: metadata || {},\n }),\n });\n\n if (!response.ok) {\n const errorBody = await response.text();\n logger.error('[AdMeshProvider] Delegation event failed', {\n endpoint,\n eventType,\n status: response.status,\n errorBody,\n recommendationId: session.recommendation_id,\n delegationSessionId: session.delegation_session_id,\n });\n throw new Error(`Delegation event failed (${response.status}): ${errorBody}`);\n }\n\n const result = await response.json();\n const updatedSession = result?.session as ActiveDelegationSession | undefined;\n logger.log('[AdMeshProvider] ✅ Delegation event acknowledged', {\n endpoint,\n eventType,\n recommendationId: session.recommendation_id,\n delegationSessionId: session.delegation_session_id,\n returnedStatus: updatedSession?.status || result?.status,\n });\n if (updatedSession) {\n setActiveDelegationSessionState(updatedSession);\n }\n },\n [activeDelegationSession, apiKey, sdk],\n );\n\n const recordDelegationUserTurn = useCallback(() => {\n heartbeatsSinceLastUserTurnRef.current = 0;\n }, []);\n\n const stopDelegationSession = useCallback(\n async (reason: string = 'user_stopped', metadata?: Record<string, unknown>) => {\n const session = activeDelegationSession;\n if (!session) {\n logger.warn('[AdMeshProvider] ⚠️ stopDelegationSession called without an active SDK delegation session');\n return;\n }\n\n logger.log('[AdMeshProvider] 🛑 Stopping delegation session', {\n reason,\n recommendationId: session.recommendation_id,\n delegationSessionId: session.delegation_session_id,\n });\n await postDelegationEvent(\n '/aip/delegation/stop',\n 'session_stopped',\n { reason, ...(metadata || {}) },\n session,\n );\n await sdk?.trackPublisherAssistantEvent({\n event_name: 'delegation_stopped',\n timestamp: new Date().toISOString(),\n session_id: session.session_id,\n recommendation_id: session.recommendation_id,\n delegation_session_id: session.delegation_session_id,\n brand_name: session.brand_name,\n status: 'stopped',\n metadata: {\n reason,\n ...(metadata || {}),\n },\n }).catch((analyticsError) => {\n logger.warn('[AdMeshProvider] ⚠️ Failed to track delegation_stopped event:', analyticsError);\n });\n heartbeatsSinceLastUserTurnRef.current = 0;\n trackedDelegationSessionIdRef.current = null;\n setActiveDelegationSessionState(null);\n logger.log('[AdMeshProvider] ✅ Delegation session cleared locally after stop');\n },\n [activeDelegationSession, postDelegationEvent, sdk],\n );\n\n const refreshDelegationActivity = useCallback(\n async (eventType: string = 'turn_completed', metadata?: Record<string, unknown>) => {\n if (eventType === 'turn_started') {\n recordDelegationUserTurn();\n }\n await postDelegationEvent('/aip/delegation/activity', eventType, metadata);\n },\n [postDelegationEvent, recordDelegationUserTurn],\n );\n\n useEffect(() => {\n const delegationSessionId = activeDelegationSession?.delegation_session_id ?? null;\n if (delegationSessionId !== trackedDelegationSessionIdRef.current) {\n trackedDelegationSessionIdRef.current = delegationSessionId;\n heartbeatsSinceLastUserTurnRef.current = 0;\n }\n }, [activeDelegationSession?.delegation_session_id]);\n\n useEffect(() => {\n const delegationSessionId = activeDelegationSession?.delegation_session_id ?? null;\n if (!delegationSessionId || !sdk) {\n return;\n }\n\n const session = activeDelegationSessionRef.current;\n if (!session || !isDelegationSessionActive(session)) {\n setActiveDelegationSessionState((prev) =>\n prev\n ? {\n ...prev,\n status: 'expired',\n }\n : null,\n );\n return;\n }\n\n const interval = window.setInterval(() => {\n const currentSession = activeDelegationSessionRef.current;\n if (!currentSession || !isDelegationSessionActive(currentSession)) {\n return;\n }\n\n heartbeatsSinceLastUserTurnRef.current += 1;\n if (heartbeatsSinceLastUserTurnRef.current >= DELEGATION_IDLE_HEARTBEATS_BEFORE_STOP) {\n logger.log('[AdMeshProvider] ⏱️ Stopping delegation after idle heartbeats', {\n delegationSessionId: currentSession.delegation_session_id,\n heartbeatsSinceLastUserTurn: heartbeatsSinceLastUserTurnRef.current,\n idleHeartbeatLimit: DELEGATION_IDLE_HEARTBEATS_BEFORE_STOP,\n });\n void stopDelegationSession('idle_timeout', {\n source: 'heartbeat_idle',\n heartbeats_without_turn: heartbeatsSinceLastUserTurnRef.current,\n }).catch((error) => {\n logger.warn('[AdMeshProvider] ⚠️ Failed to stop idle delegation session:', error);\n });\n return;\n }\n\n void postDelegationEvent('/aip/delegation/heartbeat', 'heartbeat').catch((error) => {\n logger.warn('[AdMeshProvider] ⚠️ Failed to send delegation heartbeat:', error);\n });\n }, DELEGATION_HEARTBEAT_INTERVAL_MS);\n\n return () => {\n window.clearInterval(interval);\n };\n }, [\n activeDelegationSession?.delegation_session_id,\n isDelegationSessionActive,\n postDelegationEvent,\n sdk,\n stopDelegationSession,\n ]);\n\n // Create context value\n const contextValue: AdMeshContextValue = {\n sdk,\n apiKey,\n sessionId,\n theme,\n language,\n location,\n userId,\n model,\n messages,\n processedMessageIds,\n recommendationResults,\n activeDelegationSession,\n \n // Suggestion state\n suggestions,\n isAnalyzingIntent: isAnalyzingIntent || isResolvingPageContext,\n intentError,\n \n // Methods\n markMessageAsProcessed: (messageId: string) => {\n setProcessedMessageIds((prev) => {\n const updated = new Set(prev);\n updated.add(messageId);\n return updated;\n });\n },\n \n isMessageProcessed: (messageId: string) => {\n return processedMessageIds.has(messageId);\n },\n\n setRecommendationResult: (messageId: string, result: PlatformResponse | null) => {\n setRecommendationResults((prev) => {\n const next = new Map(prev);\n next.set(messageId, result);\n return next;\n });\n setProcessedMessageIds((prev) => {\n const updated = new Set(prev);\n updated.add(messageId);\n return updated;\n });\n },\n\n getRecommendationResult: (messageId: string) => {\n return recommendationResults.get(messageId);\n },\n\n hasRecommendationResult: (messageId: string) => {\n return recommendationResults.has(messageId);\n },\n\n setActiveDelegationSession: (session: ActiveDelegationSession | null) => {\n setActiveDelegationSessionState(session);\n },\n\n getActiveDelegationSession: () => {\n if (!isDelegationSessionActive(activeDelegationSession)) {\n return null;\n }\n return activeDelegationSession;\n },\n\n hasActiveDelegationSession: () => {\n return isDelegationSessionActive(activeDelegationSession);\n },\n\n refreshDelegationActivity,\n\n stopDelegationSession,\n \n retryIntentAnalysis,\n };\n\n return (\n <AdMeshContext.Provider value={contextValue}>\n {children}\n </AdMeshContext.Provider>\n );\n};\n\nexport default AdMeshProvider;\n","/**\n * AdMesh Renderer\n * \n * Handles rendering of recommendations in the specified container\n */\n\nimport ReactDOM from 'react-dom/client';\nimport type { AdMeshRecommendationResponse, AdMeshTheme, DelegationActivationPayload } from '../types/index';\nimport { AdMeshLayout } from '../components/AdMeshLayout';\nimport { AdMeshTracker } from './AdMeshTracker';\nimport { AdMeshProvider } from '../context/AdMeshProvider';\nimport { logger } from '../utils/logger';\n\nexport interface RenderOptions {\n containerId: string;\n followups_container_id?: string;\n response: AdMeshRecommendationResponse;\n theme?: AdMeshTheme;\n tracker: AdMeshTracker;\n sessionId: string;\n apiKey: string;\n apiBaseUrl?: string;\n language?: string;\n location?: {\n city?: string;\n state?: string;\n stateCode?: string;\n country?: string;\n countryCode?: string;\n zipcode?: string;\n latitude?: number;\n longitude?: number;\n };\n userId?: string;\n model?: string;\n messages?: Array<{ role: string; content: string; id?: string }>;\n onPasteToInput?: (content: string) => void;\n onDelegationConsent?: (recommendation: import('../types/index').PlatformResponse) => boolean | Promise<boolean>;\n onDelegationActivated?: (payload: DelegationActivationPayload) => void | Promise<void>;\n onStartDelegation?: (recommendation: import('../types/index').PlatformResponse) => void | Promise<void>;\n onExecuteQuery?: (query: string) => void | Promise<void>;\n}\n\nexport class AdMeshRenderer {\n private roots: Map<string, ReactDOM.Root> = new Map();\n\n constructor() {\n // No configuration needed\n }\n\n /**\n * Render recommendations in the specified container\n */\n async render(options: RenderOptions): Promise<void> {\n try {\n logger.log('[AdMeshRenderer] 🎨 Attempting to render recommendations');\n\n // Check if we have any recommendations to render\n const recommendations = options.response.recommendations || [];\n if (recommendations.length === 0) {\n logger.log('[AdMeshRenderer] ⚠️ No recommendations to render - skipping render to avoid occupying space');\n return;\n }\n\n const container = document.getElementById(options.containerId);\n\n if (!container) {\n logger.error('[AdMeshRenderer] Container not found');\n throw new Error(`Container with ID \"${options.containerId}\" not found`);\n }\n\n logger.log('[AdMeshRenderer] ✅ Container ready');\n\n // Clean up existing root if any\n const existingRoot = this.roots.get(options.containerId);\n if (existingRoot) {\n logger.log('[AdMeshRenderer] 🧹 Cleaning up existing root');\n existingRoot.unmount();\n this.roots.delete(options.containerId);\n }\n\n // Clear the container's innerHTML to ensure React can create a fresh root\n container.innerHTML = '';\n\n // Create a new root\n const root = ReactDOM.createRoot(container);\n\n logger.log('[AdMeshRenderer] 📊 Rendering recommendations');\n\n // Get onPasteToInput from options or window object (for backward compatibility)\n // Wrap components in AdMeshProvider to provide context for hooks like useAdMesh()\n root.render(\n <AdMeshProvider\n apiKey={options.apiKey}\n sessionId={options.sessionId}\n theme={options.theme}\n apiBaseUrl={options.apiBaseUrl}\n language={options.language}\n location={options.location}\n userId={options.userId}\n model={options.model}\n messages={options.messages}\n >\n <AdMeshLayout\n recommendations={recommendations}\n theme={options.theme}\n sessionId={options.sessionId}\n onDelegationConsent={options.onDelegationConsent}\n onDelegationActivated={options.onDelegationActivated}\n onStartDelegation={options.onStartDelegation}\n />\n </AdMeshProvider>\n );\n\n // Show the container now that content is rendered (prevents empty space when no ads)\n container.style.display = 'block';\n\n logger.log('[AdMeshRenderer] ✅ Recommendations rendered successfully');\n\n // Store root for cleanup\n this.roots.set(options.containerId, root);\n\n } catch (error) {\n logger.error('[AdMeshRenderer] Error rendering recommendations');\n throw error;\n }\n }\n\n /**\n * Unmount a rendered component\n */\n unmount(containerId: string): void {\n const root = this.roots.get(containerId);\n if (root) {\n root.unmount();\n this.roots.delete(containerId);\n \n // Hide the container again to prevent empty space\n const container = document.getElementById(containerId);\n if (container) {\n container.style.display = 'none';\n }\n }\n }\n\n /**\n * Unmount all rendered components\n */\n unmountAll(): void {\n for (const [, root] of this.roots.entries()) {\n root.unmount();\n }\n this.roots.clear();\n }\n}\n","/**\n * AdMesh UI SDK - Zero-Code Integration\n * \n * Provides a simple, zero-code integration experience for platforms.\n * Handles all recommendation fetching, rendering, and tracking automatically.\n */\n\nimport type {\n AdMeshTheme,\n AdMeshRecommendationResponse,\n PlatformRequest,\n PlatformResponse,\n DelegationActivationPayload,\n ActiveDelegationSession,\n} from '../types/index';\nimport { AdMeshRenderer } from './AdMeshRenderer';\nimport { AdMeshTracker } from './AdMeshTracker';\nimport { logger } from '../utils/logger';\n\nconst normalizeCountryCode = (value?: string): string | undefined => {\n if (typeof value !== 'string') {\n return undefined;\n }\n\n const trimmed = value.trim().toUpperCase();\n return /^[A-Z]{2}$/.test(trimmed) ? trimmed : undefined;\n};\n\nexport interface AdMeshSDKConfig {\n apiKey: string;\n theme?: AdMeshTheme;\n apiBaseUrl?: string;\n /** Set true when requests originate from the browser extension */\n extension?: boolean;\n /** Optional override for extension source domain header */\n extensionSourceDomain?: string;\n /** Optional user identifier forwarded to ACIE/aip context flows */\n userId?: string;\n}\n\nexport interface ShowRecommendationsOptions {\n query: string;\n containerId: string;\n theme?: AdMeshTheme;\n\n // Optional follow-ups container (SDK will render follow-ups here if provided and followup_suggestion is present)\n followups_container_id?: string;\n\n // Session tracking (required)\n sessionId: string;\n\n // Message tracking (required)\n // messageId MUST be provided by the platform - SDK never generates it\n messageId: string;\n\n // Platform information\n // platformId is now extracted from API key by the backend\n platformSurface?: string;\n model?: string;\n messages?: Array<{ role: string; content: string }>;\n locale?: string;\n location?: {\n city?: string;\n state?: string;\n stateCode?: string;\n country?: string;\n countryCode?: string;\n zipcode?: string;\n latitude?: number;\n longitude?: number;\n };\n userId?: string;\n // latency_budget_ms removed - now fetched from agent profile by backend\n // allowed_formats removed - backend fetches from platform config (configured during onboarding)\n \n /** Legacy bridge CTA callback; prefer onStartDelegation */\n onPasteToInput?: (content: string) => void;\n\n /** Called when the SDK needs host approval before starting a delegated brand flow */\n onDelegationConsent?: (recommendation: PlatformResponse) => boolean | Promise<boolean>;\n\n /** Called with normalized delegation metadata the host can use directly */\n onDelegationActivated?: (payload: DelegationActivationPayload) => void | Promise<void>;\n\n /** Called after consent is granted so the host can create/open the delegation session */\n onStartDelegation?: (recommendation: PlatformResponse) => void | Promise<void>;\n \n /** Callback to execute query when follow-up is selected (required for follow-up functionality) */\n onExecuteQuery?: (query: string) => void | Promise<void>;\n}\n\nexport type PublisherAssistantEventName =\n | 'assistant_loaded'\n | 'assistant_opened'\n | 'suggestion_exposure'\n | 'suggestion_clicked'\n | 'query_submitted'\n | 'answer_completed'\n | 'answer_failed'\n | 'source_link_clicked'\n | 'recommendation_shown'\n | 'delegation_started'\n | 'delegation_stopped'\n | 'answer_feedback';\n\nexport interface PublisherAssistantAnalyticsEvent {\n event_name: PublisherAssistantEventName;\n timestamp: string;\n session_id: string;\n message_id?: string;\n page_url?: string;\n page_path?: string;\n article_slug?: string;\n page_title?: string;\n referrer?: string;\n device_type?: 'mobile' | 'tablet' | 'desktop' | 'unknown';\n query?: string;\n suggestion_id?: string;\n suggestion_text?: string;\n suggestion_type?: string;\n suggestion_position?: number;\n is_sponsored?: boolean;\n recommendation_id?: string;\n brand_name?: string;\n delegation_session_id?: string;\n used_capability?: string;\n status?: string;\n latency_ms?: number;\n metadata?: Record<string, unknown>;\n}\n\nexport interface SponsoredRecommendationReportEvent {\n recommendation_id: string;\n reason: string;\n session_id?: string;\n message_id?: string;\n brand_name?: string;\n platform_surface?: string;\n user_id?: string;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Main AdMesh SDK class for zero-code integration\n *\n * The SDK is stateless regarding session management. Developers must provide\n * sessionId when calling showRecommendations().\n *\n * @example\n * ```typescript\n * import { AdMeshSDK } from '@admesh/ui-sdk';\n *\n * const admesh = new AdMeshSDK({ apiKey: 'your-api-key' });\n *\n * // Generate session ID on your platform\n * const sessionId = AdMeshSDK.createSession();\n *\n * await admesh.showRecommendations({\n * query: 'best CRM for small business',\n * containerId: 'admesh-recommendations',\n * sessionId: sessionId\n * });\n * ```\n */\nexport class AdMeshSDK {\n private config: AdMeshSDKConfig;\n private apiBaseUrl: string;\n private static inFlightPlatformResponses = new Map<string, Promise<PlatformResponse>>();\n\n // OPTIMIZATION: Lazy-initialized managers (only created when needed)\n private renderer: AdMeshRenderer | null = null;\n private tracker: AdMeshTracker | null = null;\n\n constructor(config: AdMeshSDKConfig) {\n if (!config.apiKey) {\n throw new Error('AdMeshSDK: apiKey is required');\n }\n\n this.config = {\n apiKey: config.apiKey,\n theme: config.theme,\n apiBaseUrl: config.apiBaseUrl,\n extension: config.extension,\n extensionSourceDomain: config.extensionSourceDomain,\n userId: config.userId,\n };\n\n // Set API base URL with priority: config > environment variable > production default\n this.apiBaseUrl = config.apiBaseUrl ||\n (typeof window !== 'undefined' && (window as unknown as { __ADMESH_API_BASE_URL__: string }).__ADMESH_API_BASE_URL__) ||\n 'https://api.useadmesh.com';\n }\n\n /**\n * Get the API base URL\n * @returns The API base URL being used by the SDK\n */\n getApiBaseUrl(): string {\n return this.apiBaseUrl;\n }\n\n private static buildPlatformResponseCacheKey(sessionId: string, messageId: string): string {\n return `${sessionId}::${messageId}`;\n }\n\n /**\n * Resolve source domain for extension-originated requests.\n */\n private getExtensionSourceDomain(): string | undefined {\n const configuredDomain = this.config.extensionSourceDomain?.trim();\n if (configuredDomain) {\n return configuredDomain.toLowerCase();\n }\n\n if (typeof window !== 'undefined' && window.location?.hostname) {\n const hostname = window.location.hostname.trim().toLowerCase();\n return hostname || undefined;\n }\n\n return undefined;\n }\n\n /**\n * PLATFORM UTILITY: Generate a unique session ID for tracking recommendations\n * \n * IMPORTANT: This is a utility method for PLATFORMS to use. The SDK itself\n * NEVER calls this method automatically. Platforms must:\n * 1. Call this method (or generate their own sessionId)\n * 2. Store the sessionId in their own storage\n * 3. Pass sessionId to AdMeshProvider and SDK methods\n * \n * The SDK will throw an error if sessionId is not provided - it will never\n * auto-generate one.\n *\n * @returns A unique session ID (platform must store and manage this)\n */\n static createSession(): string {\n const timestamp = Date.now();\n const random = Math.random().toString(36).substring(2, 15);\n return `session_${timestamp}_${random}`;\n }\n\n /**\n * PLATFORM UTILITY: Generate session ID from URL for digital publishers\n * \n * This utility function helps platforms generate session IDs based on URL structure.\n * Platforms can call this function on page load to get a consistent session ID.\n * \n * @param url - The URL to extract session information from (defaults to current page URL)\n * @returns A session ID in format: session_{timestamp}_{article-slug}\n * \n * @example\n * ```typescript\n * // In your React component\n * const sessionId = AdMeshSDK.generateSessionIdFromUrl();\n * \n * // Or with a specific URL\n * const sessionId = AdMeshSDK.generateSessionIdFromUrl('https://techcrunch.com/2025/12/30/ai-apps/');\n * // Returns: \"session_1739534760000_ai-apps\"\n * ```\n */\n static generateSessionIdFromUrl(url?: string): string {\n const targetUrl = url || (typeof window !== 'undefined' ? window.location.href : '');\n \n if (!targetUrl) {\n // Fallback to regular session generation\n return AdMeshSDK.createSession();\n }\n\n try {\n const urlObj = new URL(targetUrl);\n const pathSegments = urlObj.pathname.split('/').filter(segment => segment.length > 0);\n const articleSlug = pathSegments[pathSegments.length - 1];\n \n if (articleSlug) {\n const timestamp = Date.now();\n return `session_${timestamp}_${articleSlug}`;\n }\n \n // Fallback if no slug found\n return AdMeshSDK.createSession();\n } catch {\n // Fallback if URL parsing fails\n return AdMeshSDK.createSession();\n }\n }\n\n /**\n * PLATFORM UTILITY: Generate a unique message ID for tracking recommendations per message\n * @returns A unique message ID (platform must provide this to SDK methods)\n */\n static createMessageId(sessionId?: string): string {\n const timestamp = Date.now();\n const random = Math.random().toString(36).substring(2, 9);\n if (sessionId) {\n return `msg_${sessionId}_${timestamp}_${random}`;\n }\n return `msg_${timestamp}_${random}`;\n }\n\n\n /**\n * OPTIMIZATION: Lazy initialize renderer on first use\n */\n private getRenderer(): AdMeshRenderer {\n if (!this.renderer) {\n this.renderer = new AdMeshRenderer();\n }\n return this.renderer;\n }\n\n /**\n * OPTIMIZATION: Lazy initialize tracker on first use\n */\n private getTracker(): AdMeshTracker {\n if (!this.tracker) {\n this.tracker = new AdMeshTracker({\n apiKey: this.config.apiKey\n });\n }\n return this.tracker;\n }\n\n private async postDelegationEvent(\n endpoint: string,\n session: ActiveDelegationSession,\n eventType: string,\n metadata?: Record<string, unknown>,\n ): Promise<ActiveDelegationSession | null> {\n const response = await fetch(`${this.apiBaseUrl}${endpoint}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: `Bearer ${this.config.apiKey}`,\n },\n body: JSON.stringify({\n delegation_session_id: session.delegation_session_id,\n recommendation_id: session.recommendation_id,\n session_id: session.session_id,\n event_type: eventType,\n timestamp: new Date().toISOString(),\n metadata: metadata || {},\n }),\n });\n\n if (!response.ok) {\n const errorBody = await response.text();\n throw new Error(`Delegation event failed (${response.status}): ${errorBody}`);\n }\n\n const result = await response.json();\n return (result?.session as ActiveDelegationSession | undefined) || null;\n }\n\n async reportDelegationTurnStarted(\n session: ActiveDelegationSession,\n metadata?: Record<string, unknown>,\n ): Promise<ActiveDelegationSession | null> {\n return this.postDelegationEvent('/aip/delegation/activity', session, 'turn_started', metadata);\n }\n\n async reportDelegationSessionStarted(\n session: ActiveDelegationSession,\n metadata?: Record<string, unknown>,\n ): Promise<ActiveDelegationSession | null> {\n return this.postDelegationEvent('/aip/delegation/activity', session, 'session_started', metadata);\n }\n\n async reportDelegationTurnCompleted(\n session: ActiveDelegationSession,\n metadata?: Record<string, unknown>,\n ): Promise<ActiveDelegationSession | null> {\n return this.postDelegationEvent('/aip/delegation/activity', session, 'turn_completed', metadata);\n }\n\n async reportDelegationToolInvocation(\n session: ActiveDelegationSession,\n metadata?: Record<string, unknown>,\n ): Promise<ActiveDelegationSession | null> {\n return this.postDelegationEvent('/aip/delegation/activity', session, 'tool_invoked', metadata);\n }\n\n async reportDelegationOutcome(\n session: ActiveDelegationSession,\n outcomeType: string,\n metadata?: Record<string, unknown>,\n ): Promise<ActiveDelegationSession | null> {\n return this.postDelegationEvent('/aip/delegation/complete', session, outcomeType, metadata);\n }\n\n async stopDelegationSession(\n session: ActiveDelegationSession,\n reason: string = 'user_stopped',\n metadata?: Record<string, unknown>,\n ): Promise<ActiveDelegationSession | null> {\n return this.postDelegationEvent('/aip/delegation/stop', session, 'session_stopped', {\n reason,\n ...(metadata || {}),\n });\n }\n\n getActiveDelegationSession(session: ActiveDelegationSession | null): ActiveDelegationSession | null {\n if (!session || session.status !== 'active') {\n return null;\n }\n\n const expiresAtMs = Date.parse(session.expires_at);\n if (Number.isNaN(expiresAtMs) || expiresAtMs <= Date.now()) {\n return null;\n }\n\n return session;\n }\n\n hasActiveDelegationSession(session: ActiveDelegationSession | null): boolean {\n return !!this.getActiveDelegationSession(session);\n }\n\n\n\n\n /**\n * Fetch and render recommendations automatically using /aip/context endpoint\n *\n * IMPORTANT: Both sessionId and messageId MUST be provided by the platform.\n * The SDK NEVER generates these automatically. Use AdMeshSDK.createSession()\n * and AdMeshSDK.createMessageId() on your platform, or generate your own IDs.\n */\n async showRecommendations(options: ShowRecommendationsOptions): Promise<void> {\n try {\n // CRITICAL: sessionId MUST be provided by platform - SDK never generates it\n if (!options.sessionId || options.sessionId.trim() === '') {\n throw new Error('sessionId is required and must be provided by the platform. The SDK never generates sessionId automatically.');\n }\n \n // CRITICAL: messageId MUST be provided by the platform - SDK never generates it\n if (!options.messageId || options.messageId.trim() === '') {\n throw new Error('messageId is required and must be provided by the platform. The SDK never generates messageId automatically.');\n }\n \n // Fetch canonical platform result from /aip/context endpoint\n // platformId is extracted from API key by the backend\n const platformResult = await this.fetchPlatformResponse({\n query: options.query,\n sessionId: options.sessionId,\n messageId: options.messageId, // Pass messageId from platform\n platformSurface: options.platformSurface,\n model: options.model,\n messages: options.messages,\n language: options.locale, // locale maps to language\n location: options.location,\n userId: options.userId ?? this.config.userId,\n // latency_budget_ms removed - now fetched from agent profile by backend\n // allowed_formats removed - backend fetches from platform config automatically\n });\n\n const response: AdMeshRecommendationResponse = {\n sessionId: options.sessionId,\n messageId: options.messageId,\n recommendations: [platformResult]\n };\n\n // Standard rendering\n const renderer = this.getRenderer();\n const tracker = this.getTracker();\n\n await renderer.render({\n containerId: options.containerId,\n followups_container_id: options.followups_container_id,\n response,\n theme: options.theme || this.config.theme,\n tracker: tracker,\n sessionId: options.sessionId,\n apiKey: this.config.apiKey,\n apiBaseUrl: this.apiBaseUrl,\n language: options.locale,\n location: options.location,\n userId: options.userId,\n model: options.model,\n messages: options.messages,\n onPasteToInput: options.onPasteToInput,\n onDelegationConsent: options.onDelegationConsent,\n onDelegationActivated: options.onDelegationActivated,\n onStartDelegation: options.onStartDelegation,\n onExecuteQuery: options.onExecuteQuery\n });\n\n // NOTE: Exposure pixels are now fired by AdMeshViewabilityTracker component\n // when ads meet MRC viewability standards (50% visible for 1 second).\n // This ensures MRC-compliant exposure tracking and proper CPX billing.\n } catch (error) {\n logger.error('[AdMeshSDK] Error showing recommendations');\n throw error;\n }\n }\n\n /**\n * Fetch the canonical PlatformResponse from `/aip/context`.\n *\n * Use this when you want the full platform response returned by the operator,\n * including `status`, `recommendation`, `tracking`, and `delegation`.\n */\n async fetchPlatformResponse(params: {\n query: string;\n sessionId: string;\n messageId?: string;\n // platformId is now extracted from API key by the backend\n platformSurface?: string;\n model?: string;\n messages?: Array<{ role: string; content: string; id?: string }>;\n language?: string;\n location?: {\n city?: string;\n state?: string;\n stateCode?: string;\n country?: string;\n countryCode?: string;\n zipcode?: string;\n latitude?: number;\n longitude?: number;\n };\n userId?: string;\n // latency_budget_ms removed - now fetched from agent profile by backend\n // allowed_formats removed - backend fetches from platform config (configured during onboarding)\n }): Promise<PlatformResponse> {\n const url = `${this.apiBaseUrl}/aip/context`;\n\n logger.log('[AdMeshSDK] 📥 fetchPlatformResponse called');\n\n // CRITICAL: sessionId MUST be provided by platform - SDK never generates it\n if (!params.sessionId || params.sessionId.trim() === '') {\n const error = new Error('sessionId is required and must be provided by the platform. The SDK never generates sessionId automatically.');\n logger.error('[AdMeshSDK] sessionId not provided by platform - cannot process request');\n throw error;\n }\n\n // CRITICAL: messageId MUST be provided by the platform - SDK never generates it\n // NEVER derive from messages array - platform must pass it explicitly\n const messageId = params.messageId;\n if (!messageId || messageId.trim() === '') {\n const error = new Error('messageId is required and must be provided by the platform. The SDK never generates messageId automatically.');\n logger.error('[AdMeshSDK] messageId not provided by platform - cannot process request');\n throw error;\n }\n\n const cacheKey = AdMeshSDK.buildPlatformResponseCacheKey(params.sessionId, messageId);\n const inFlightResponse = AdMeshSDK.inFlightPlatformResponses.get(cacheKey);\n if (inFlightResponse) {\n logger.log('[AdMeshSDK] ⏳ Reusing in-flight PlatformResponse request', {\n sessionId: params.sessionId,\n messageId,\n });\n return inFlightResponse;\n }\n \n // Calculate turn_index from messages length\n const turnIndex = params.messages ? params.messages.length : 0;\n \n // Detect device platform (web by default, could be enhanced with user agent detection)\n const devicePlatform = typeof window !== 'undefined' && window.navigator ? 'web' : 'web';\n \n // Detect form factor (could be enhanced with screen size detection)\n const formFactor = typeof window !== 'undefined' && window.innerWidth \n ? (window.innerWidth < 768 ? 'mobile' : window.innerWidth < 1024 ? 'tablet' : 'desktop')\n : 'desktop';\n const countryCode = normalizeCountryCode(params.location?.countryCode) || 'US';\n const pageContext = typeof window !== 'undefined' && window.location\n ? {\n url: window.location.href,\n origin: window.location.origin,\n referrer: document.referrer || undefined,\n host: window.location.hostname,\n }\n : undefined;\n\n // Build the canonical AIP PlatformRequest payload.\n // platform.platform_id will be normalized from the API key by the backend.\n const resolvedUserId = params.userId ?? this.config.userId;\n\n const payload: PlatformRequest = {\n spec_version: '1.0',\n message_id: messageId,\n timestamp: new Date().toISOString(),\n platform: {\n platform_id: 'placeholder',\n role: 'platform',\n software: {\n name: 'admesh_ui_sdk',\n version: params.model || '1.0.0'\n }\n },\n identity: {\n namespace: 'platform_user',\n value_hash: resolvedUserId || '',\n confidence: resolvedUserId ? 1.0 : 0.0\n },\n consent: {\n status: 'granted',\n source: 'admesh_ui_sdk',\n scope: {\n intent_based_monetization: true,\n agent_participation: true,\n measurement: true\n },\n constraints: {\n allow_identity_downstream: false\n }\n },\n classification_input: {\n type: 'interaction',\n interaction: {\n session: {\n id: params.sessionId,\n turn_index: turnIndex\n },\n surface: {\n // Accept the older embedding label without sending an invalid\n // protocol channel to /aip/context.\n channel: params.platformSurface === 'embedded_assistant'\n ? 'conversation'\n : params.platformSurface || 'conversation',\n interaction_mode: 'text',\n platform: devicePlatform,\n form_factor: formFactor,\n locale: params.language || 'en-US',\n country: countryCode,\n publisher: 'placeholder'\n },\n input: {\n query_text: params.query,\n messages: params.messages || []\n },\n context: {\n location: {\n city: params.location?.city || undefined,\n state: params.location?.state || undefined,\n state_code: params.location?.stateCode || undefined,\n country: params.location?.country || undefined,\n country_code: countryCode,\n zipcode: params.location?.zipcode || undefined,\n latitude: params.location?.latitude,\n longitude: params.location?.longitude,\n },\n page: pageContext,\n },\n }\n },\n monetization: {\n enabled: true,\n pricing_model: 'CPX',\n auction: {\n enabled: true,\n floor: {\n amount: 0,\n currency: 'USD'\n }\n }\n }\n };\n\n // Validate query before sending\n if (!payload.classification_input.interaction?.input.query_text?.trim()) {\n logger.warn('[AdMeshSDK] ⚠️ Warning: Sending request with empty query_text');\n }\n\n const jsonBody = JSON.stringify(payload);\n logger.log('[AdMeshSDK] 📤 Sending canonical request to /aip/context', {\n messageId: payload.message_id,\n specVersion: payload.spec_version,\n classificationType: payload.classification_input.type,\n platformId: payload.platform.platform_id,\n surfaceChannel: payload.classification_input.interaction?.surface.channel,\n sessionId: payload.classification_input.interaction?.session?.id\n });\n\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${this.config.apiKey}`\n };\n\n if (this.config.extension) {\n headers['X-AdMesh-Source'] = 'extension';\n\n const sourceDomain = this.getExtensionSourceDomain();\n if (sourceDomain) {\n headers['X-AdMesh-Source-Domain'] = sourceDomain;\n }\n }\n\n const requestPromise = (async () => {\n const response = await fetch(url, {\n method: 'POST',\n headers,\n body: jsonBody\n });\n\n if (!response.ok) {\n const errorData = await response.json().catch(() => ({}));\n const errorMessage = errorData.detail || `HTTP ${response.status}`;\n throw new Error(`Failed to fetch recommendation from /aip/context: ${errorMessage}`);\n }\n\n const data: PlatformResponse = await response.json();\n\n logger.log('[AdMeshSDK] 📥 Raw response from /aip/context:', {\n status: data.status,\n recommendationId: data.recommendation_id,\n hasRecommendation: !!data.recommendation,\n hasTracking: !!data.tracking,\n hasDelegation: !!data.delegation,\n topLevelKeys: Object.keys(data)\n });\n logger.log('[AdMeshSDK] 📦 Full PlatformResponse received from /aip/context', data);\n return data as PlatformResponse;\n })();\n\n AdMeshSDK.inFlightPlatformResponses.set(cacheKey, requestPromise);\n\n try {\n return await requestPromise;\n } finally {\n AdMeshSDK.inFlightPlatformResponses.delete(cacheKey);\n }\n }\n\n async trackPublisherAssistantEvent(\n event: PublisherAssistantAnalyticsEvent | PublisherAssistantAnalyticsEvent[],\n ): Promise<void> {\n const payload = Array.isArray(event) ? { events: event } : event;\n const response = await fetch(`${this.apiBaseUrl}/analytics/publisher-assistant/events`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: `Bearer ${this.config.apiKey}`,\n },\n body: JSON.stringify(payload),\n keepalive: true,\n });\n\n if (!response.ok) {\n const errorBody = await response.text().catch(() => '');\n throw new Error(`Failed to track publisher assistant analytics (${response.status}): ${errorBody}`);\n }\n }\n\n async reportSponsoredRecommendation(event: SponsoredRecommendationReportEvent): Promise<void> {\n const response = await fetch(`${this.apiBaseUrl}/analytics/recommendation-reports`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: `Bearer ${this.config.apiKey}`,\n },\n body: JSON.stringify(event),\n keepalive: true,\n });\n\n if (!response.ok) {\n const errorBody = await response.text().catch(() => '');\n throw new Error(`Failed to report sponsored recommendation (${response.status}): ${errorBody}`);\n }\n }\n\n /**\n * Fire exposure for sponsored followup\n * \n * @param exposureUrl - The exposure URL to fire (can use regular exposure_url)\n * @param recommendationId - The recommendation ID\n * @param sessionId - The session ID\n */\n fireFollowupExposure(exposureUrl: string, recommendationId: string, sessionId: string): void {\n const tracker = this.getTracker();\n tracker.fireFollowupExposure(exposureUrl, recommendationId, sessionId);\n }\n\n /**\n * Fire engagement for sponsored followup\n * \n * @param engagementUrl - The engagement URL to fire\n * @param recommendationId - The recommendation ID\n * @param sessionId - The session ID\n * @returns Promise that resolves when engagement is fired\n */\n async fireFollowupEngagement(engagementUrl: string, recommendationId: string, sessionId: string): Promise<void> {\n const tracker = this.getTracker();\n return tracker.fireFollowupEngagement(engagementUrl, recommendationId, sessionId);\n }\n}\n\nexport default AdMeshSDK;\n","import { createContext, useContext } from 'react';\nimport { AdMeshSDK } from '../sdk/AdMeshSDK';\nimport type { AdMeshTheme, PlatformResponse, ActiveDelegationSession } from '../types/index';\nimport type { Suggestion } from '../components/AdMeshIntentAssistant';\n\n/**\n * Context value provided by AdMeshProvider\n */\nexport interface AdMeshContextValue {\n // SDK instance\n sdk: AdMeshSDK | null;\n\n // Configuration\n apiKey: string;\n sessionId: string;\n theme?: AdMeshTheme;\n\n // Canonical AIP PlatformRequest inputs (optional, passed from frontend)\n language?: string; // User language in BCP 47 format (e.g., \"en-US\")\n location?: {\n city?: string;\n state?: string;\n stateCode?: string;\n country?: string;\n countryCode?: string;\n zipcode?: string;\n latitude?: number;\n longitude?: number;\n };\n userId?: string; // Anonymous hashed user ID\n model?: string; // AI model identifier (e.g., \"gpt-4o\")\n messages?: Array<{ role: string; content: string; id?: string }>; // Conversation history\n\n // Tracking state\n processedMessageIds: Set<string>;\n recommendationResults: Map<string, PlatformResponse | null>;\n activeDelegationSession: ActiveDelegationSession | null;\n\n // Suggestion state\n suggestions: Suggestion[];\n isAnalyzingIntent: boolean;\n intentError: string | null;\n\n // Methods\n markMessageAsProcessed: (messageId: string) => void;\n isMessageProcessed: (messageId: string) => boolean;\n setRecommendationResult: (messageId: string, result: PlatformResponse | null) => void;\n getRecommendationResult: (messageId: string) => PlatformResponse | null | undefined;\n hasRecommendationResult: (messageId: string) => boolean;\n setActiveDelegationSession: (session: ActiveDelegationSession | null) => void;\n getActiveDelegationSession: () => ActiveDelegationSession | null;\n hasActiveDelegationSession: () => boolean;\n refreshDelegationActivity: (eventType?: string, metadata?: Record<string, unknown>) => Promise<void>;\n stopDelegationSession: (reason?: string, metadata?: Record<string, unknown>) => Promise<void>;\n retryIntentAnalysis: () => Promise<void>;\n}\n\n/**\n * React Context for AdMesh SDK\n * \n * Provides SDK instance and tracking state to all child components\n */\nexport const AdMeshContext = createContext<AdMeshContextValue | undefined>(\n undefined\n);\n\n/**\n * Hook to access AdMesh context\n * \n * @throws Error if used outside of AdMeshProvider\n * @returns AdMeshContextValue\n */\nexport function useAdMeshContext(): AdMeshContextValue {\n const context = useContext(AdMeshContext);\n \n if (!context) {\n throw new Error(\n 'useAdMeshContext must be used within an <AdMeshProvider>. ' +\n 'Make sure your component is wrapped with <AdMeshProvider>.'\n );\n }\n \n return context;\n}\n","import { useAdMeshContext } from '../context/AdMeshContext';\n\n/**\n * Hook to access AdMesh SDK and tracking state\n *\n * Must be used within an <AdMeshProvider>\n *\n * @returns Object with SDK instance and tracking methods\n *\n * @example\n * ```tsx\n * const { sdk, sessionId, markMessageAsProcessed } = useAdMesh();\n *\n * // Use SDK to show recommendations\n * await sdk?.showRecommendations({\n * query: 'user query',\n * containerId: 'recommendations-container',\n * sessionId,\n * messageId\n * });\n *\n * // Mark message as processed to avoid duplicates\n * markMessageAsProcessed(messageId);\n * ```\n */\nexport function useAdMesh() {\n const context = useAdMeshContext();\n\n return {\n /** AdMesh SDK instance */\n sdk: context.sdk,\n\n /** API key */\n apiKey: context.apiKey,\n\n /** Session ID */\n sessionId: context.sessionId,\n\n /** Theme configuration */\n theme: context.theme,\n\n /** User language in BCP 47 format (e.g., \"en-US\") - from AdMeshProvider */\n language: context.language,\n\n /** Detailed user location from AdMeshProvider */\n location: context.location,\n\n /** Anonymous hashed user ID - from AdMeshProvider */\n userId: context.userId,\n\n /** AI model identifier (e.g., \"gpt-4o\") - from AdMeshProvider */\n model: context.model,\n\n /** Conversation history - from AdMeshProvider */\n messages: context.messages,\n\n /** Set of processed message IDs (for deduplication) */\n processedMessageIds: context.processedMessageIds,\n\n /** Ephemeral per-session recommendation results keyed by messageId */\n recommendationResults: context.recommendationResults,\n activeDelegationSession: context.activeDelegationSession,\n\n /** Mark a message as processed to prevent duplicate recommendations */\n markMessageAsProcessed: context.markMessageAsProcessed,\n\n /** Check if a message has already been processed */\n isMessageProcessed: context.isMessageProcessed,\n\n /** Store the recommendation result for a message within the current provider session */\n setRecommendationResult: context.setRecommendationResult,\n\n /** Read a stored recommendation result for a message within the current provider session */\n getRecommendationResult: context.getRecommendationResult,\n\n /** Check whether a recommendation result exists for a message within the current provider session */\n hasRecommendationResult: context.hasRecommendationResult,\n setActiveDelegationSession: context.setActiveDelegationSession,\n getActiveDelegationSession: context.getActiveDelegationSession,\n hasActiveDelegationSession: context.hasActiveDelegationSession,\n refreshDelegationActivity: context.refreshDelegationActivity,\n stopDelegationSession: context.stopDelegationSession,\n };\n}\n\nexport default useAdMesh;\n","'use client';\n\nimport type { FC } from 'react';\nimport { logger } from '../utils/logger';\nimport type { PlatformResponse, AdMeshTheme } from '../types/index';\nimport { AdMeshSDK } from '../sdk/AdMeshSDK';\nimport { AdMeshViewabilityTracker } from './AdMeshViewabilityTracker';\n\nexport interface AdMeshFollowupProps {\n recommendation: PlatformResponse;\n theme?: AdMeshTheme;\n sdk: AdMeshSDK;\n sessionId: string;\n onExecuteQuery?: (query: string) => void | Promise<void>;\n}\n\nconst PlusIcon = ({ className, size = 20 }: { className?: string; size?: number }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n >\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </svg>\n);\n\n/**\n * AdMeshFollowup - Sponsored Follow-up Component\n * \n * Displays sponsored follow-up suggestions as optional fields on any recommendation.\n * Follow-ups use the same recommendation_id as the primary ad and are rendered separately\n * in a followups_container_id. This component handles all exposure and engagement tracking\n * internally - platforms only need to provide an onExecuteQuery hook for query execution.\n * \n * @example\n * ```tsx\n * <AdMeshFollowup\n * recommendation={recommendation}\n * sdk={sdk}\n * sessionId={sessionId}\n * theme={theme}\n * onExecuteQuery={(query) => {\n * // Platform's query execution logic\n * executeQuery(query);\n * }}\n * />\n * ```\n */\nexport const AdMeshFollowup: FC<AdMeshFollowupProps> = ({\n recommendation,\n theme: _theme,\n sdk,\n sessionId,\n onExecuteQuery,\n}) => {\n const followupSuggestion =\n recommendation.recommendation?.creative?.follow_up_suggestion &&\n recommendation.tracking?.followup_engagement_url &&\n recommendation.tracking?.followup_exposure_url\n ? {\n query: recommendation.recommendation.creative.follow_up_suggestion,\n engagement_url: recommendation.tracking.followup_engagement_url,\n exposure_url: recommendation.tracking.followup_exposure_url,\n }\n : null;\n const followupQuery = followupSuggestion?.query;\n const followupEngagementUrl = followupSuggestion?.engagement_url;\n const followupExposureUrl = followupSuggestion?.exposure_url;\n const recommendationId = recommendation.recommendation_id;\n const productId = recommendation.recommendation?.offerId || recommendationId;\n\n // Validate required fields\n if (!followupQuery || !followupEngagementUrl || !followupExposureUrl) {\n logger.log('[AdMeshFollowup] Missing followup_suggestion.query, engagement_url, or exposure_url - not rendering');\n return null;\n }\n\n // Handle follow-up click/selection\n const handleFollowupClick = async () => {\n try {\n // Fire engagement tracking (SDK handles this automatically)\n if (followupEngagementUrl && recommendationId) {\n logger.log('[AdMeshFollowup] 🎯 Firing follow-up engagement tracking');\n await sdk.fireFollowupEngagement(followupEngagementUrl, recommendationId, sessionId);\n }\n\n // Execute query via platform hook\n if (onExecuteQuery && followupQuery) {\n logger.log(`[AdMeshFollowup] 🔍 Executing query: ${followupQuery}`);\n await onExecuteQuery(followupQuery);\n } else {\n logger.warn('[AdMeshFollowup] ⚠️ onExecuteQuery not provided - cannot execute query');\n }\n } catch (error) {\n logger.error('[AdMeshFollowup] Error handling follow-up click:', error);\n }\n };\n\n // Platform-native styling (matching Perplexica's \"Related\" section)\n // We use inline styles that can be overridden, but default to blending in\n\n return (\n <AdMeshViewabilityTracker\n productId={productId}\n recommendationId={recommendationId || ''}\n exposureUrl={followupExposureUrl}\n sessionId={sessionId}\n className=\"admesh-followup-container\"\n style={{\n width: '100%',\n }}\n >\n <div className=\"flex flex-col space-y-3 text-sm admesh-followup-wrapper\">\n {/* Divider matching platform style */}\n <div className=\"h-px w-full bg-[#E5E5E5] dark:bg-[#262626] admesh-divider\" />\n\n <div\n onClick={handleFollowupClick}\n className=\"cursor-pointer flex flex-row justify-between font-medium space-x-2 items-center group\"\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n handleFollowupClick();\n }\n }}\n aria-label={`Sponsored follow-up: ${followupQuery}`}\n >\n <p className=\"transition duration-200 text-[#000] dark:text-[#FFF] hover:text-[#24A0ED] admesh-followup-text\">\n {followupQuery}\n </p>\n <div className=\"flex flex-row items-center space-x-2\">\n <span className=\"text-xs text-gray-500 dark:text-gray-400 italic admesh-ad-label\">\n Ad\n </span>\n <PlusIcon\n size={20}\n className=\"text-[#24A0ED] flex-shrink-0 admesh-plus-icon\"\n />\n </div>\n </div>\n </div>\n </AdMeshViewabilityTracker>\n );\n};\n","'use client';\n\nimport { useCallback, useEffect, useState, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useAdMesh } from '../hooks/useAdMesh';\nimport { logger } from '../utils/logger';\nimport { AdMeshCompactCard } from './AdMeshCompactCard';\nimport { AdMeshFollowup } from './AdMeshFollowup';\nimport type {\n PlatformResponse,\n DelegationActivationPayload,\n ActiveDelegationSession,\n RecommendationReportPayload,\n} from '../types/index';\n\nexport interface AdMeshRecommendationsProps {\n /** Optional callback when recommendations are shown */\n onRecommendationsShown?: (messageId: string, recommendation: PlatformResponse | null) => void;\n\n /** Optional callback on error */\n onError?: (error: Error) => void;\n\n /**\n * Message ID for per-message recommendations.\n *\n * This is the primary identifier for fetching recommendations for a specific message.\n */\n messageId?: string;\n\n /**\n * User query text for generating recommendations.\n *\n * This is the query that will be used to fetch recommendations from the backend.\n * Typically the user's question or search query.\n *\n * IMPORTANT: This should be a non-empty string. If not provided or empty,\n * the component will skip rendering to prevent 400 Bad Request errors.\n * The backend requires a valid query parameter.\n */\n query?: string;\n\n /** Legacy bridge CTA callback; prefer onStartDelegation. */\n onPasteToInput?: (content: string) => void;\n\n /** Called when the SDK needs host approval before starting a delegated brand flow. */\n onDelegationConsent?: (recommendation: PlatformResponse) => boolean | Promise<boolean>;\n\n /** Called with normalized delegation metadata after consent/engagement. */\n onDelegationActivated?: (payload: DelegationActivationPayload) => void | Promise<void>;\n\n /** Called after consent is granted so the host can create/open the delegation session. */\n onStartDelegation?: (recommendation: PlatformResponse) => void | Promise<void>;\n\n /** Called when the user reports a recommendation. */\n onRecommendationReport?: (payload: RecommendationReportPayload) => void | Promise<void>;\n\n /**\n * Optional container ID for follow-up suggestions.\n * When provided and the recommendation includes a followup_suggestion,\n * the SDK will automatically render the follow-up in this container.\n */\n followups_container_id?: string;\n\n /**\n * Callback to execute query when follow-up is selected (required for follow-up functionality).\n * When a user clicks on a follow-up suggestion, this callback is invoked with the followup_suggestion.query.\n * This allows the platform to continue the conversation with the sponsored follow-up query.\n */\n onExecuteQuery?: (query: string) => void | Promise<void>;\n\n /**\n * Callback when a sponsored followup is detected.\n * This allows third-party applications to integrate the sponsored followup query into their own\n * followup suggestions UI (e.g., adding to a suggestions list, related questions section, etc.).\n * \n * When a user clicks the followup suggestion, the application should:\n * 1. Fire engagement tracking by calling the followupEngagementUrl\n * 2. Execute the followupQuery (e.g., submit it as a new user query)\n * \n * @param followupQuery - The sponsored followup query text to display to the user\n * @param followupEngagementUrl - The engagement tracking URL to call when user clicks the followup\n * @param recommendationId - The recommendation ID for tracking and correlation\n * \n * @example\n * ```tsx\n * <AdMeshRecommendations\n * onFollowupDetected={(query, engagementUrl, recId) => {\n * // Add to your suggestions list\n * setSuggestions(prev => [...prev, {\n * text: query,\n * sponsored: true,\n * engagementUrl,\n * recommendationId: recId\n * }]);\n * }}\n * />\n * ```\n */\n\n onFollowupDetected?: (\n followupSuggestion: any, // Will be updated to proper type later\n recommendationId: string,\n ) => void;\n\n /**\n * Signal indicating if the followup container is ready in the DOM.\n * \n * Useful for scenarios where the container is rendered conditionally or after a delay (e.g. streaming).\n * If provided, the component will wait until this is true before attempting to attach the portal.\n */\n isContainerReady?: boolean;\n\n /**\n * Optional user ID to override the context-provided user ID.\n * Useful for per-message or specific user tracking scenarios.\n */\n userId?: string;\n\n /**\n * Optional pre-fetched canonical platform result from an upstream backend flow.\n * When provided, the component reuses this payload and skips calling /aip/context.\n */\n initialRecommendation?: PlatformResponse;\n\n /**\n * Whether the rendered recommendation card should fire its primary exposure URL.\n * Defaults to true. Set false when the recommendation came from a sponsored follow-up click\n * and the click should only count as follow-up engagement.\n */\n triggerExposureUrl?: boolean;\n}\n\n/**\n * AdMeshRecommendations - Citation/Product Format Recommendation Display\n *\n * Displays recommendations as a separate UI component. Handles all the complexity:\n * - Uses provided messageId directly\n * - Generates container IDs for recommendations\n * - Calls SDK's showRecommendations()\n *\n * For Weave Ad Format (where AdMesh links are embedded in LLM response),\n * use WeaveAdFormatContainer component instead.\n *\n * @example\n * ```tsx\n * // Per-message recommendations with messageId\n * <AdMeshProvider apiKey={apiKey} sessionId={sessionId}>\n * {messages.map((msg) => (\n * <div key={msg.messageId}>\n * {msg.content}\n * {msg.role === 'assistant' && (\n * <AdMeshRecommendations\n * messageId={msg.messageId}\n * query={msg.userQuery}\n * />\n * )}\n * </div>\n * ))}\n * </AdMeshProvider>\n * ```\n *\n * @example\n * ```tsx\n * // Format is auto-detected from brand agent's preferred_format\n * <AdMeshProvider apiKey={apiKey} sessionId={sessionId}>\n * <Chat messages={messages} />\n * <AdMeshRecommendations\n * messageId={lastMessageId}\n * query=\"best CRM for small business\"\n * />\n * </AdMeshProvider>\n * ```\n */\nexport const AdMeshRecommendations = ({\n onRecommendationsShown,\n onError,\n messageId,\n query,\n userId: propUserId,\n initialRecommendation,\n triggerExposureUrl = true,\n followups_container_id,\n onPasteToInput,\n onDelegationConsent,\n onDelegationActivated,\n onStartDelegation,\n onRecommendationReport,\n onExecuteQuery,\n onFollowupDetected,\n isContainerReady,\n}: AdMeshRecommendationsProps) => {\n const {\n sdk,\n sessionId,\n apiKey,\n language,\n location,\n userId: contextUserId,\n model,\n messages,\n theme,\n getRecommendationResult,\n hasRecommendationResult,\n setRecommendationResult,\n activeDelegationSession,\n setActiveDelegationSession,\n hasActiveDelegationSession,\n } = useAdMesh();\n const isFilledAuctionResponse = (\n response: PlatformResponse | null | undefined,\n ): response is PlatformResponse => {\n return !!response && response.status === 'generated' && !!response.recommendation;\n };\n \n // Use prop userId if provided, otherwise context userId\n const userId = propUserId || contextUserId;\n\n const [platformResult, setPlatformResult] = useState<PlatformResponse | null>(null);\n const [detectedFormat, setDetectedFormat] = useState<string | null>(null);\n const [isLoading, setIsLoading] = useState(true);\n const [error, setError] = useState<Error | null>(null);\n\n // Track fetched messageId to prevent duplicate fetches\n const fetchedMessageIdRef = useRef<string | null>(null);\n const isFetchingRef = useRef<boolean>(false);\n const reusedInitialRecommendationRef = useRef<boolean>(false);\n\n // Use refs for callbacks to avoid dependency issues\n const onRecommendationsShownRef = useRef(onRecommendationsShown);\n const onErrorRef = useRef(onError);\n\n // Update refs when callbacks change\n useEffect(() => {\n onRecommendationsShownRef.current = onRecommendationsShown;\n onErrorRef.current = onError;\n }, [onRecommendationsShown, onError]);\n\n // Reset fetched ref when messageId changes\n useEffect(() => {\n if (fetchedMessageIdRef.current !== messageId) {\n fetchedMessageIdRef.current = null;\n reusedInitialRecommendationRef.current = false;\n setPlatformResult(null);\n setDetectedFormat(null);\n }\n }, [messageId]);\n\n const hasActiveDelegatedSessionForConversation =\n hasActiveDelegationSession() &&\n activeDelegationSession?.session_id === sessionId;\n\n useEffect(() => {\n if (!messageId || !hasRecommendationResult(messageId)) {\n return;\n }\n\n if (hasActiveDelegatedSessionForConversation) {\n return;\n }\n\n const storedResult = getRecommendationResult(messageId);\n if (!storedResult) {\n logger.log('[AdMeshRecommendations] ♻️ Reusing stored no_match result from provider state');\n setPlatformResult(null);\n setDetectedFormat(null);\n setError(null);\n setIsLoading(false);\n fetchedMessageIdRef.current = messageId;\n isFetchingRef.current = false;\n reusedInitialRecommendationRef.current = true;\n return;\n }\n\n let selectedFormat: string = storedResult.recommendation?.format || 'tail';\n if (selectedFormat === 'weave' || selectedFormat === 'product_card') {\n selectedFormat = 'tail';\n }\n\n logger.log('[AdMeshRecommendations] ♻️ Reusing stored recommendation result from provider state', {\n messageId,\n recommendationId: storedResult.recommendation_id,\n format: storedResult.recommendation?.format,\n });\n setPlatformResult(storedResult);\n setDetectedFormat(selectedFormat);\n setError(null);\n setIsLoading(false);\n fetchedMessageIdRef.current = messageId;\n isFetchingRef.current = false;\n reusedInitialRecommendationRef.current = true;\n onRecommendationsShownRef.current?.(messageId, storedResult);\n }, [getRecommendationResult, hasRecommendationResult, hasActiveDelegatedSessionForConversation, messageId]);\n\n // Reuse upstream recommendation payload when available to avoid a second /aip/context call.\n useEffect(() => {\n if (!initialRecommendation || !messageId) {\n return;\n }\n\n if (hasActiveDelegatedSessionForConversation) {\n return;\n }\n\n try {\n const canonicalResponse = initialRecommendation;\n const initialStatus = initialRecommendation.status || 'unknown';\n if (!isFilledAuctionResponse(canonicalResponse)) {\n if (initialStatus === 'no_match') {\n logger.log('[AdMeshRecommendations] ℹ️ Initial recommendation returned no_match - rendering nothing');\n setPlatformResult(null);\n setDetectedFormat(null);\n setError(null);\n setIsLoading(false);\n fetchedMessageIdRef.current = messageId;\n isFetchingRef.current = false;\n reusedInitialRecommendationRef.current = true;\n setRecommendationResult(messageId, null);\n return;\n }\n throw new Error(`Initial recommendation is not a filled auction response (status=${initialStatus})`);\n }\n\n let selectedFormat: string = canonicalResponse.recommendation?.format || 'tail';\n if (selectedFormat === 'weave' || selectedFormat === 'product_card') {\n selectedFormat = 'tail';\n }\n\n setPlatformResult(canonicalResponse);\n setDetectedFormat(selectedFormat);\n setError(null);\n setIsLoading(false);\n fetchedMessageIdRef.current = messageId;\n isFetchingRef.current = false;\n reusedInitialRecommendationRef.current = true;\n setRecommendationResult(messageId, canonicalResponse);\n onRecommendationsShownRef.current?.(messageId, canonicalResponse);\n\n logger.log('[AdMeshRecommendations] ♻️ Using initial recommendation payload, skipping /aip/context fetch');\n logger.log('[AdMeshRecommendations] ✅ Accepted initial generated recommendation payload', {\n messageId,\n recommendationId: canonicalResponse.recommendation_id,\n format: canonicalResponse.recommendation?.format,\n brandName: canonicalResponse.recommendation?.creative?.brand_name,\n headline: canonicalResponse.recommendation?.creative?.headline,\n hasTracking: !!canonicalResponse.tracking,\n });\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n reusedInitialRecommendationRef.current = false;\n logger.warn(`[AdMeshRecommendations] ⚠️ Failed to reuse initial recommendation, will fall back to fetch: ${error.message}`);\n }\n }, [hasActiveDelegatedSessionForConversation, initialRecommendation, messageId, setRecommendationResult]);\n\n // Single fetch effect - fetch recommendation once and detect format\n useEffect(() => {\n // Validate required parameters\n if (!messageId || !query || query.trim() === '') {\n logger.log('[AdMeshRecommendations] Validation failed - missing required parameters');\n setIsLoading(false);\n return;\n }\n\n if (hasActiveDelegatedSessionForConversation) {\n logger.log('[AdMeshRecommendations] ⏸️ Delegated session active, skipping /aip/context fetch', {\n messageId,\n conversationSessionId: sessionId,\n delegationSessionId: activeDelegationSession?.delegation_session_id,\n });\n setPlatformResult(null);\n setDetectedFormat(null);\n setError(null);\n setIsLoading(false);\n isFetchingRef.current = false;\n return;\n }\n\n if (!sdk?.fetchPlatformResponse) {\n logger.log('[AdMeshRecommendations] SDK fetchPlatformResponse not available');\n setIsLoading(false);\n return;\n }\n\n if (reusedInitialRecommendationRef.current) {\n logger.log('[AdMeshRecommendations] ⏭️ Initial recommendation provided, skipping duplicate fetch');\n return;\n }\n\n // Prevent duplicate fetches for the same messageId\n if (fetchedMessageIdRef.current === messageId) {\n logger.log('[AdMeshRecommendations] ⏭️ Already fetched for this messageId, skipping duplicate fetch');\n return;\n }\n\n // Prevent concurrent fetches\n if (isFetchingRef.current) {\n logger.log('[AdMeshRecommendations] ⏭️ Fetch already in progress, skipping duplicate fetch');\n return;\n }\n\n logger.log('[AdMeshRecommendations] 📤 Fetching recommendation from /aip/context (single fetch)');\n\n const fetchRecommendations = async () => {\n try {\n isFetchingRef.current = true;\n setIsLoading(true);\n setError(null);\n\n // Single fetch call\n // Note: messages is optional - only pass if available\n const result = await sdk.fetchPlatformResponse({\n query: query.trim(),\n sessionId: sessionId,\n messageId: messageId, // REQUIRED: messageId is mandatory\n language: language,\n location: location,\n userId: userId,\n model: model,\n ...(messages && messages.length > 0 && { messages }), // Optional: only pass if messages exist\n });\n const resultStatus = (result as any)?.status || 'unknown';\n if (!isFilledAuctionResponse(result)) {\n if (resultStatus === 'no_match') {\n logger.log('[AdMeshRecommendations] ℹ️ No recommendation returned from /aip/context');\n setPlatformResult(null);\n setDetectedFormat(null);\n setError(null);\n setIsLoading(false);\n isFetchingRef.current = false;\n fetchedMessageIdRef.current = messageId;\n setRecommendationResult(messageId, null);\n return;\n }\n throw new Error(`No filled recommendation returned from /aip/context (status=${resultStatus})`);\n }\n\n setPlatformResult(result);\n logger.log('[AdMeshRecommendations] ✅ Accepted fetched generated recommendation payload', {\n messageId,\n recommendationId: result.recommendation_id,\n format: result.recommendation?.format,\n brandName: result.recommendation?.creative?.brand_name,\n headline: result.recommendation?.creative?.headline,\n hasTracking: !!result.tracking,\n });\n\n let selectedFormat: string = result.recommendation?.format || 'tail';\n if (selectedFormat === 'weave' || selectedFormat === 'product_card') {\n selectedFormat = 'tail';\n }\n\n setDetectedFormat(selectedFormat);\n fetchedMessageIdRef.current = messageId; // Mark as fetched\n setRecommendationResult(messageId, result);\n logger.log('[AdMeshRecommendations] 📊 Format detection:', {\n preferred_format: result.recommendation?.format,\n selected_format: selectedFormat\n });\n\n setIsLoading(false);\n isFetchingRef.current = false;\n onRecommendationsShownRef.current?.(messageId, result);\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n // Log error but don't break the UI - network errors are expected in some scenarios\n if (error.message.includes('Failed to fetch') || error.message.includes('NetworkError')) {\n logger.warn(`[AdMeshRecommendations] ⚠️ Network error fetching recommendations(non - critical): ${error.message} `);\n } else {\n logger.error(`[AdMeshRecommendations] Error fetching recommendations: ${error.message} `);\n }\n setError(error);\n setIsLoading(false);\n isFetchingRef.current = false;\n onErrorRef.current?.(error);\n }\n };\n\n fetchRecommendations();\n }, [\n activeDelegationSession?.delegation_session_id,\n hasActiveDelegatedSessionForConversation,\n sdk,\n sessionId,\n messageId,\n query,\n language,\n location,\n userId,\n model,\n initialRecommendation,\n setRecommendationResult,\n ]); // Removed messages, onRecommendationsShown, onError from dependencies\n\n useEffect(() => {\n if (!platformResult || !onFollowupDetected) {\n return;\n }\n\n const followupSuggestion =\n platformResult.recommendation?.creative?.follow_up_suggestion &&\n platformResult.tracking?.followup_engagement_url &&\n platformResult.tracking?.followup_exposure_url\n ? {\n label: platformResult.recommendation.creative.follow_up_suggestion,\n query: platformResult.recommendation.creative.follow_up_suggestion,\n engagement_url: platformResult.tracking.followup_engagement_url,\n exposure_url: platformResult.tracking.followup_exposure_url,\n }\n : null;\n if (!followupSuggestion) {\n return;\n }\n\n onFollowupDetected(followupSuggestion, platformResult.recommendation_id);\n }, [platformResult, onFollowupDetected]);\n\n const handleSdkDelegationActivated = useCallback(\n async (payload: DelegationActivationPayload) => {\n if (!sdk || !sessionId) {\n throw new Error('AdMesh SDK activation requires an initialized session');\n }\n\n const response = await fetch(`${sdk.getApiBaseUrl()}/aip/delegation/activate`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: `Bearer ${apiKey}`,\n },\n body: JSON.stringify({\n session_id: sessionId,\n recommendation_id: payload.recommendation_id,\n metadata: payload.metadata,\n }),\n });\n\n if (!response.ok) {\n const errorBody = await response.text();\n throw new Error(`Failed to activate delegation session: ${response.status} ${errorBody}`);\n }\n\n const activation = await response.json();\n const resolvedPayload: DelegationActivationPayload = {\n ...payload,\n delegation_session_id: activation.delegation_session_id || payload.delegation_session_id,\n session_id: activation.session_id || sessionId,\n brand_id: activation.brand_id || payload.brand_id,\n brand_name: activation.brand_name || payload.brand_name,\n mcp_endpoint: activation.mcp_endpoint,\n eligibility_reason: activation.eligibility_reason || payload.eligibility_reason,\n delegate_reason: activation.delegate_reason || payload.delegate_reason,\n session_goal: activation.session_goal || payload.session_goal,\n desired_outcome_type: activation.desired_outcome_type || payload.desired_outcome_type,\n required_user_inputs: activation.required_user_inputs || payload.required_user_inputs || [],\n required_consent_types: activation.required_consent_types || payload.required_consent_types || [],\n success_outcome: activation.success_outcome || payload.success_outcome,\n fallback_message: activation.fallback_message || payload.fallback_message,\n session_mode: 'inline',\n status: activation.status || 'active',\n capabilities: activation.capabilities || payload.capabilities || [],\n allowed_data_types: activation.allowed_data_types || payload.allowed_data_types || [],\n auth_model: activation.auth_model || payload.auth_model,\n handoff_protocol: activation.handoff_protocol || payload.handoff_protocol,\n supported_actions: activation.supported_actions || payload.supported_actions || [],\n metadata: activation.metadata || payload.metadata,\n };\n\n const activeSession: ActiveDelegationSession = {\n delegation_session_id: activation.delegation_session_id,\n recommendation_id: payload.recommendation_id,\n session_id: activation.session_id || sessionId,\n brand_agent_id: activation.brand_agent_id,\n brand_id: activation.brand_id || payload.brand_id,\n brand_name: activation.brand_name || payload.brand_name || 'Brand',\n mcp_endpoint: activation.mcp_endpoint,\n status: activation.status || 'active',\n activated_at: activation.created_at,\n last_activity_at: activation.updated_at,\n expires_at: activation.expires_at || activation.updated_at,\n eligibility_reason: activation.eligibility_reason || payload.eligibility_reason,\n delegate_reason: activation.delegate_reason || payload.delegate_reason,\n session_goal: activation.session_goal || payload.session_goal,\n desired_outcome_type: activation.desired_outcome_type || payload.desired_outcome_type,\n required_user_inputs: activation.required_user_inputs || payload.required_user_inputs || [],\n required_consent_types: activation.required_consent_types || payload.required_consent_types || [],\n success_outcome: activation.success_outcome || payload.success_outcome,\n fallback_message: activation.fallback_message || payload.fallback_message,\n capabilities: activation.capabilities || payload.capabilities || [],\n allowed_data_types: activation.allowed_data_types || payload.allowed_data_types || [],\n consent_requirements: activation.consent_requirements || payload.consent_requirements || [],\n auth_model: activation.auth_model || payload.auth_model,\n handoff_protocol: activation.handoff_protocol || payload.handoff_protocol,\n supported_actions: activation.supported_actions || payload.supported_actions || [],\n metadata: activation.metadata || payload.metadata,\n };\n\n setActiveDelegationSession(activeSession);\n await sdk\n .trackPublisherAssistantEvent({\n event_name: 'delegation_started',\n timestamp: new Date().toISOString(),\n session_id: sessionId,\n recommendation_id: payload.recommendation_id,\n delegation_session_id: activation.delegation_session_id,\n brand_name: activeSession.brand_name,\n status: activation.status || 'active',\n metadata: {\n brand_agent_id: activation.brand_agent_id,\n source: 'recommendation_card',\n },\n })\n .catch((analyticsError) => {\n logger.warn('[AdMeshRecommendations] ⚠️ Failed to track delegation_started event:', analyticsError);\n });\n await sdk\n .reportDelegationSessionStarted(activeSession, {\n brand_agent_id: activation.brand_agent_id,\n brand_name: activeSession.brand_name,\n })\n .then((updatedSession) => {\n if (updatedSession) {\n setActiveDelegationSession(updatedSession);\n }\n })\n .catch((eventError) => {\n logger.warn('[AdMeshRecommendations] ⚠️ Failed to report delegation session_started event:', eventError);\n });\n\n if (onDelegationActivated) {\n try {\n await onDelegationActivated(resolvedPayload);\n } catch (callbackError) {\n logger.warn(\n '[AdMeshRecommendations] ⚠️ Host onDelegationActivated callback failed after successful delegation activation:',\n callbackError,\n );\n }\n return;\n }\n\n if (onStartDelegation) {\n try {\n await onStartDelegation({\n ...payload.platform_response,\n delegation: {\n ...payload.platform_response.delegation,\n ...resolvedPayload,\n delegation_session_id: activation.delegation_session_id,\n available: true,\n status: activation.status || 'active',\n },\n });\n } catch (callbackError) {\n logger.warn(\n '[AdMeshRecommendations] ⚠️ Host onStartDelegation callback failed after successful delegation activation:',\n callbackError,\n );\n }\n }\n },\n [\n apiKey,\n onDelegationActivated,\n onStartDelegation,\n sdk,\n sessionId,\n setActiveDelegationSession,\n ],\n );\n\n const handleRecommendationReport = useCallback(\n async (payload: RecommendationReportPayload) => {\n if (onRecommendationReport) {\n await onRecommendationReport(payload);\n return;\n }\n\n if (!sdk || !sessionId) {\n return;\n }\n\n await sdk\n .reportSponsoredRecommendation({\n session_id: sessionId,\n message_id: messageId,\n recommendation_id: payload.recommendation_id,\n reason: payload.reason,\n brand_name: payload.recommendation.recommendation?.creative?.brand_name,\n metadata: {\n reason: payload.reason,\n source: 'recommendation_card',\n },\n })\n .catch((analyticsError) => {\n logger.warn('[AdMeshRecommendations] ⚠️ Failed to report sponsored recommendation:', analyticsError);\n });\n },\n [messageId, onRecommendationReport, sdk, sessionId],\n );\n\n // Don't render anything if validation fails\n if (!messageId || !query || query.trim() === '') {\n return null;\n }\n\n // Show loading state (optional - can be removed if not needed)\n if (isLoading) {\n return null; // Or return a loading spinner if desired\n }\n\n // Show error state (optional - can be removed if not needed)\n if (error) {\n return null; // Error is already handled by onError callback\n }\n\n // Don't render if no recommendation\n if (!platformResult || !detectedFormat) {\n logger.log('[AdMeshRecommendations] 🚫 Nothing to render', {\n messageId,\n hasPlatformResult: !!platformResult,\n detectedFormat,\n isLoading,\n hasError: !!error,\n });\n return null;\n }\n\n logger.log('[AdMeshRecommendations] 🎨 Rendering recommendation component', {\n messageId,\n recommendationId: platformResult.recommendation_id,\n detectedFormat,\n brandName: platformResult.recommendation?.creative?.brand_name,\n headline: platformResult.recommendation?.creative?.headline,\n });\n\n const followupContainer =\n typeof document !== 'undefined' &&\n followups_container_id &&\n (isContainerReady ?? true)\n ? document.getElementById(followups_container_id)\n : null;\n\n return (\n <>\n <div className=\"admesh-recommendations-container\" style={{ marginTop: '1rem' }}>\n <AdMeshCompactCard\n recommendations={[platformResult]}\n theme={theme}\n sessionId={sessionId}\n triggerExposureUrl={triggerExposureUrl}\n onPasteToInput={onPasteToInput}\n onDelegationConsent={onDelegationConsent}\n onDelegationActivated={handleSdkDelegationActivated}\n onStartDelegation={onStartDelegation}\n onRecommendationReport={handleRecommendationReport}\n />\n </div>\n {followupContainer && sdk && sessionId\n ? createPortal(\n <AdMeshFollowup\n recommendation={platformResult}\n theme={theme}\n sdk={sdk}\n sessionId={sessionId}\n onExecuteQuery={onExecuteQuery}\n />,\n followupContainer,\n )\n : null}\n </>\n );\n};\n\nexport default AdMeshRecommendations;\n","/**\n * AdMesh Style Injection System\n * \n * Provides platform-agnostic, isolated styling for AdMesh components\n * that prevents interference from host platform CSS frameworks\n */\n\nconst ADMESH_STYLE_ID = 'admesh-ui-sdk-styles';\nconst ADMESH_RESET_ID = 'admesh-ui-sdk-reset';\n\n/**\n * CSS Reset for AdMesh components\n * Normalizes styles to prevent host platform CSS from affecting AdMesh components\n */\nconst ADMESH_CSS_RESET = `\n/* AdMesh UI SDK - CSS Reset & Normalization */\n.admesh-component,\n.admesh-component * {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-weight: normal;\n font-style: normal;\n line-height: 1.5;\n text-decoration: none;\n background: transparent;\n color: inherit;\n}\n\n.admesh-component {\n all: revert;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n}\n\n.admesh-component button,\n.admesh-component a {\n cursor: pointer;\n border: none;\n background: none;\n padding: 0;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n}\n\n.admesh-component a {\n text-decoration: none;\n color: inherit;\n}\n\n.admesh-component button:focus,\n.admesh-component a:focus {\n outline: none;\n}\n\n.admesh-component img {\n max-width: 100%;\n height: auto;\n display: block;\n}\n\n.admesh-component ul,\n.admesh-component ol {\n list-style: none;\n}\n\n.admesh-component table {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n.admesh-component input,\n.admesh-component textarea,\n.admesh-component select {\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n}\n\n/* Prevent Tailwind and other frameworks from affecting AdMesh */\n.admesh-component .prose,\n.admesh-component .container,\n.admesh-component .grid,\n.admesh-component .flex {\n all: revert;\n}\n\n/* Ensure AdMesh components are not affected by dark mode utilities */\n.admesh-component.dark,\n.admesh-component[data-admesh-theme=\"dark\"] {\n color-scheme: dark;\n}\n\n.admesh-component.light,\n.admesh-component[data-admesh-theme=\"light\"] {\n color-scheme: light;\n}\n`;\n\n/**\n * Core AdMesh Component Styles\n * Self-contained styles that work independently of host platform\n */\nconst ADMESH_CORE_STYLES = `\n/* AdMesh Core Component Styles */\n\n.admesh-component {\n position: relative;\n display: block;\n}\n\n/* Product Card Styles */\n.admesh-product-card {\n position: relative;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n height: 100%;\n border-radius: 0.75rem;\n background: rgb(255, 255, 255);\n border: 1px solid rgb(229, 231, 235);\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n overflow: hidden;\n}\n\n.admesh-product-card[data-admesh-theme=\"dark\"] {\n background: rgb(17, 24, 39);\n border-color: rgb(31, 41, 55);\n}\n\n.admesh-product-card:hover {\n transform: translateY(-4px);\n box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);\n border-color: rgba(99, 102, 241, 0.2);\n}\n\n.admesh-product-card__container {\n position: relative;\n padding: 1rem;\n height: 100%;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n z-index: 2;\n}\n\n.admesh-product-card__header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 0.5rem;\n margin-bottom: 0.25rem;\n}\n\n.admesh-product-card__title {\n margin: 0;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1.2;\n color: rgb(17, 24, 39);\n letter-spacing: -0.025em;\n transition: all 0.3s ease;\n}\n\n.admesh-product-card[data-admesh-theme=\"dark\"] .admesh-product-card__title {\n color: rgb(243, 244, 246);\n}\n\n.admesh-product-card:hover .admesh-product-card__title {\n transform: translateX(4px);\n}\n\n.admesh-product-card__cta {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n white-space: nowrap;\n border-radius: 0.5rem;\n font-size: 1rem;\n font-weight: 600;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n padding: 0.75rem 1.5rem;\n background: rgb(0, 0, 0);\n color: rgb(255, 255, 255);\n border: none;\n cursor: pointer;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n}\n\n.admesh-product-card[data-admesh-theme=\"dark\"] .admesh-product-card__cta {\n background: rgb(255, 255, 255);\n color: rgb(0, 0, 0);\n}\n\n.admesh-product-card__cta:hover {\n transform: translateY(-2px);\n box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);\n}\n\n.admesh-product-card__cta:active {\n transform: translateY(0);\n}\n\n/* Summary Unit Styles */\n.admesh-summary-unit {\n font-size: 1rem;\n line-height: 1.6;\n color: rgb(17, 24, 39);\n}\n\n.admesh-summary-unit[data-admesh-theme=\"dark\"] {\n color: rgb(243, 244, 246);\n}\n\n.admesh-summary-unit a {\n color: rgb(37, 99, 235);\n text-decoration: underline;\n text-decoration-color: rgb(37, 99, 235);\n text-underline-offset: 2px;\n transition: all 0.2s ease;\n font-weight: 500;\n}\n\n.admesh-summary-unit[data-admesh-theme=\"dark\"] a {\n color: rgb(96, 165, 250);\n text-decoration-color: rgb(96, 165, 250);\n}\n\n.admesh-summary-unit a:hover {\n color: rgb(29, 78, 216);\n text-decoration-color: rgb(29, 78, 216);\n}\n\n.admesh-summary-unit[data-admesh-theme=\"dark\"] a:hover {\n color: rgb(147, 197, 253);\n text-decoration-color: rgb(147, 197, 253);\n}\n\n/* Ecommerce Cards Styles */\n.admesh-ecommerce-container {\n position: relative;\n width: 100%;\n}\n\n.admesh-ecommerce-card {\n flex-shrink: 0;\n background: white;\n border: 1px solid rgb(229, 231, 235);\n border-radius: 0.5rem;\n overflow: hidden;\n transition: all 0.2s ease-in-out;\n cursor: pointer;\n position: relative;\n}\n\n.admesh-ecommerce-card[data-admesh-theme=\"dark\"] {\n background: rgb(31, 41, 55);\n border-color: rgb(55, 65, 81);\n color: white;\n}\n\n.admesh-ecommerce-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);\n}\n\n/* Badge Styles */\n.admesh-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n border-radius: 0.5rem;\n padding: 0.375rem 0.75rem;\n font-size: 0.875rem;\n font-weight: 600;\n transition: all 0.3s ease;\n position: relative;\n overflow: hidden;\n}\n\n.admesh-badge--primary {\n background: linear-gradient(135deg, rgb(99, 102, 241), rgb(79, 70, 229));\n color: white;\n box-shadow: 0 4px 6px -1px rgba(99, 102, 241, 0.3);\n}\n\n.admesh-badge--secondary {\n background: rgb(243, 244, 246);\n color: rgb(55, 65, 81);\n}\n\n.admesh-badge[data-admesh-theme=\"dark\"].admesh-badge--secondary {\n background: rgb(31, 41, 55);\n color: rgb(209, 213, 219);\n}\n\n/* Responsive */\n@media (max-width: 640px) {\n .admesh-product-card__container {\n padding: 0.75rem;\n gap: 0.5rem;\n }\n\n .admesh-product-card__title {\n font-size: 1.25rem;\n }\n\n .admesh-product-card__cta {\n padding: 0.5rem 1rem;\n font-size: 0.875rem;\n }\n}\n`;\n\n/**\n * Inject AdMesh styles into the document\n * Ensures styles are loaded only once and don't conflict with host platform\n */\nexport const injectAdMeshStyles = (): void => {\n if (typeof document === 'undefined') return;\n\n // Check if styles already injected\n if (document.getElementById(ADMESH_RESET_ID) && document.getElementById(ADMESH_STYLE_ID)) {\n return;\n }\n\n // Inject CSS Reset\n if (!document.getElementById(ADMESH_RESET_ID)) {\n const resetStyle = document.createElement('style');\n resetStyle.id = ADMESH_RESET_ID;\n resetStyle.textContent = ADMESH_CSS_RESET;\n document.head.appendChild(resetStyle);\n }\n\n // Inject Core Styles\n if (!document.getElementById(ADMESH_STYLE_ID)) {\n const coreStyle = document.createElement('style');\n coreStyle.id = ADMESH_STYLE_ID;\n coreStyle.textContent = ADMESH_CORE_STYLES;\n document.head.appendChild(coreStyle);\n }\n};\n\n/**\n * Remove AdMesh styles from the document\n * Useful for cleanup or testing\n */\nexport const removeAdMeshStyles = (): void => {\n if (typeof document === 'undefined') return;\n\n const resetStyle = document.getElementById(ADMESH_RESET_ID);\n const coreStyle = document.getElementById(ADMESH_STYLE_ID);\n\n if (resetStyle) resetStyle.remove();\n if (coreStyle) coreStyle.remove();\n};\n\n/**\n * Check if AdMesh styles are already injected\n */\nexport const areAdMeshStylesInjected = (): boolean => {\n if (typeof document === 'undefined') return false;\n return !!(document.getElementById(ADMESH_RESET_ID) && document.getElementById(ADMESH_STYLE_ID));\n};\n\n","import { useEffect } from 'react';\nimport { logger } from '../utils/logger';\nimport { injectAdMeshStyles } from '../utils/styleInjection';\n\n// Complete CSS content as a string - this will be injected automatically\nconst ADMESH_STYLES = `\n/* AdMesh UI SDK - Complete Self-Contained Styles */\n\n/* CSS Reset for AdMesh components */\n.admesh-component, .admesh-component * {\n box-sizing: border-box;\n}\n\n/* CSS Variables - Black/White Color Scheme */\n.admesh-component {\n --admesh-primary: #000000;\n --admesh-primary-hover: #333333;\n --admesh-secondary: #666666;\n --admesh-accent: #000000;\n --admesh-background: #ffffff;\n --admesh-surface: #ffffff;\n --admesh-border: #e5e7eb;\n --admesh-text: #000000;\n --admesh-text-muted: #666666;\n --admesh-text-light: #999999;\n --admesh-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --admesh-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --admesh-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --admesh-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --admesh-radius: 0.5rem;\n --admesh-radius-sm: 0.25rem;\n --admesh-radius-lg: 0.75rem;\n --admesh-radius-xl: 1rem;\n}\n\n.admesh-component[data-admesh-theme=\"dark\"] {\n --admesh-primary: #ffffff;\n --admesh-primary-hover: #e5e7eb;\n --admesh-secondary: #9ca3af;\n --admesh-accent: #ffffff;\n --admesh-background: #000000;\n --admesh-surface: #111111;\n --admesh-border: #333333;\n --admesh-text: #ffffff;\n --admesh-text-muted: #9ca3af;\n --admesh-text-light: #666666;\n --admesh-shadow: 0 1px 3px 0 rgb(255 255 255 / 0.1), 0 1px 2px -1px rgb(255 255 255 / 0.1);\n --admesh-shadow-md: 0 4px 6px -1px rgb(255 255 255 / 0.1), 0 2px 4px -2px rgb(255 255 255 / 0.1);\n --admesh-shadow-lg: 0 10px 15px -3px rgb(255 255 255 / 0.1), 0 4px 6px -4px rgb(255 255 255 / 0.1);\n --admesh-shadow-xl: 0 20px 25px -5px rgb(255 255 255 / 0.1), 0 8px 10px -6px rgb(255 255 255 / 0.1);\n}\n\n/* Layout Styles */\n.admesh-layout {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n color: var(--admesh-text);\n background-color: var(--admesh-background);\n border-radius: var(--admesh-radius);\n padding: 1.5rem;\n box-shadow: var(--admesh-shadow);\n border: 1px solid var(--admesh-border);\n /* Consistent width: 100% for all layouts except ecommerce */\n width: 100%;\n}\n\n/* Ecommerce layout exception */\n.admesh-layout--ecommerce {\n width: auto;\n}\n\n/* Citation Unit Styles */\n.admesh-citation-unit {\n width: 100%;\n}\n\n/* Inline Recommendation Styles */\n.admesh-inline-recommendation {\n width: 100%;\n}\n\n/* Simple Ad Styles */\n.admesh-simple-ad {\n width: 100%;\n}\n\n.admesh-layout__header {\n margin-bottom: 1.5rem;\n text-align: center;\n}\n\n.admesh-layout__title {\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--admesh-text);\n margin-bottom: 0.5rem;\n}\n\n.admesh-layout__subtitle {\n font-size: 0.875rem;\n color: var(--admesh-text-muted);\n}\n\n.admesh-layout__cards-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 1rem;\n margin-bottom: 1.5rem;\n}\n\n.admesh-layout__more-indicator {\n text-align: center;\n padding: 1rem;\n color: var(--admesh-text-muted);\n font-size: 0.875rem;\n}\n\n.admesh-layout__empty {\n text-align: center;\n padding: 3rem 1rem;\n}\n\n.admesh-layout__empty-content h3 {\n font-size: 1.125rem;\n font-weight: 600;\n color: var(--admesh-text-muted);\n margin-bottom: 0.5rem;\n}\n\n.admesh-layout__empty-content p {\n font-size: 0.875rem;\n color: var(--admesh-text-muted);\n}\n\n/* Product Card Styles */\n.admesh-product-card {\n background-color: var(--admesh-surface);\n border: 1px solid var(--admesh-border);\n border-radius: var(--admesh-radius);\n padding: 1.5rem;\n transition: all 0.2s ease-in-out;\n position: relative;\n overflow: hidden;\n /* Consistent width: 100% for product cards */\n width: 100%;\n}\n\n.admesh-product-card:hover {\n box-shadow: var(--admesh-shadow-lg);\n transform: translateY(-2px);\n border-color: var(--admesh-primary);\n}\n\n.admesh-product-card__header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 1rem;\n}\n\n.admesh-product-card__title {\n font-size: 1.125rem;\n font-weight: 600;\n color: var(--admesh-text);\n margin-bottom: 0.5rem;\n line-height: 1.4;\n}\n\n.admesh-product-card__reason {\n font-size: 0.875rem;\n color: var(--admesh-text-muted);\n line-height: 1.5;\n margin-bottom: 1rem;\n}\n\n.admesh-product-card__match-score {\n margin-bottom: 1rem;\n}\n\n.admesh-product-card__match-score-label {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 0.75rem;\n color: var(--admesh-text-muted);\n margin-bottom: 0.25rem;\n}\n\n.admesh-product-card__match-score-bar {\n width: 100%;\n height: 0.375rem;\n background-color: var(--admesh-border);\n border-radius: var(--admesh-radius-sm);\n overflow: hidden;\n}\n\n.admesh-product-card__match-score-fill {\n height: 100%;\n background: var(--admesh-primary);\n border-radius: var(--admesh-radius-sm);\n transition: width 0.3s ease-in-out;\n}\n\n.admesh-product-card__badges {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n margin-bottom: 1rem;\n}\n\n.admesh-product-card__badge {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n background-color: var(--admesh-primary);\n color: white;\n font-size: 0.75rem;\n font-weight: 500;\n border-radius: var(--admesh-radius-sm);\n}\n\n.admesh-product-card__badge--secondary {\n background-color: var(--admesh-secondary);\n}\n\n.admesh-product-card__keywords {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n margin-bottom: 1rem;\n}\n\n.admesh-product-card__keyword {\n padding: 0.125rem 0.375rem;\n background-color: var(--admesh-border);\n color: var(--admesh-text-muted);\n font-size: 0.75rem;\n border-radius: var(--admesh-radius-sm);\n}\n\n/* Dark mode specific enhancements */\n.admesh-component[data-admesh-theme=\"dark\"] .admesh-product-card__keyword {\n background-color: #4b5563;\n color: #d1d5db;\n}\n\n.admesh-component[data-admesh-theme=\"dark\"] .admesh-product-card:hover {\n border-color: var(--admesh-primary);\n background-color: #374151;\n}\n\n.admesh-component[data-admesh-theme=\"dark\"] .admesh-product-card__button:hover {\n background: var(--admesh-primary-hover);\n}\n\n.admesh-product-card__footer {\n display: flex;\n justify-content: flex-end;\n margin-top: 1.5rem;\n}\n\n/* Mobile-specific sidebar improvements */\n@media (max-width: 640px) {\n .admesh-sidebar {\n /* Ensure proper mobile viewport handling */\n height: 100vh !important;\n height: 100dvh !important; /* Dynamic viewport height for mobile browsers */\n max-height: 100vh !important;\n max-height: 100dvh !important;\n width: 100vw !important;\n max-width: 90vw !important;\n overflow: hidden !important;\n }\n\n .admesh-sidebar.relative {\n height: 100% !important;\n width: 100% !important;\n max-width: 100% !important;\n }\n\n /* Improve touch scrolling */\n .admesh-sidebar .overflow-y-auto {\n -webkit-overflow-scrolling: touch !important;\n overscroll-behavior: contain !important;\n scroll-behavior: smooth !important;\n }\n\n /* Prevent body scroll when sidebar is open */\n body:has(.admesh-sidebar[data-mobile-open=\"true\"]) {\n overflow: hidden !important;\n position: fixed !important;\n width: 100% !important;\n }\n}\n\n/* Tablet improvements */\n@media (min-width: 641px) and (max-width: 1024px) {\n .admesh-sidebar {\n max-width: 400px !important;\n }\n}\n\n/* Mobile responsiveness improvements for all components */\n@media (max-width: 640px) {\n /* Product cards mobile optimization */\n .admesh-card {\n padding: 0.75rem !important;\n margin-bottom: 0.75rem !important;\n }\n\n /* Inline recommendations mobile optimization */\n .admesh-inline-recommendation {\n padding: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n\n /* Conversation summary mobile optimization */\n .admesh-conversation-summary {\n padding: 1rem !important;\n }\n\n /* Percentage text mobile improvements */\n .admesh-component .text-xs {\n font-size: 0.75rem !important;\n line-height: 1rem !important;\n }\n\n .admesh-component .text-sm {\n font-size: 0.875rem !important;\n line-height: 1.25rem !important;\n }\n\n /* Button mobile improvements */\n .admesh-component button {\n padding: 0.375rem 0.75rem !important;\n font-size: 0.75rem !important;\n min-height: 2rem !important;\n touch-action: manipulation !important;\n }\n\n /* Badge mobile improvements */\n .admesh-component .rounded-full {\n padding: 0.25rem 0.5rem !important;\n font-size: 0.625rem !important;\n line-height: 1rem !important;\n }\n\n /* Progress bar mobile improvements */\n .admesh-component .bg-gray-200,\n .admesh-component .bg-slate-600 {\n height: 0.25rem !important;\n }\n\n /* Flex layout mobile improvements */\n .admesh-component .flex {\n flex-wrap: wrap !important;\n }\n\n .admesh-component .gap-2 {\n gap: 0.375rem !important;\n }\n\n .admesh-component .gap-3 {\n gap: 0.5rem !important;\n }\n}\n\n.admesh-product-card__button {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1.5rem;\n background: var(--admesh-primary);\n color: var(--admesh-background);\n font-size: 0.875rem;\n font-weight: 500;\n border: none;\n border-radius: var(--admesh-radius);\n cursor: pointer;\n transition: all 0.2s ease-in-out;\n text-decoration: none;\n}\n\n.admesh-product-card__button:hover {\n transform: translateY(-1px);\n box-shadow: var(--admesh-shadow-lg);\n}\n\n/* Utility Classes */\n.admesh-text-xs { font-size: 0.75rem; }\n.admesh-text-sm { font-size: 0.875rem; }\n.admesh-text-base { font-size: 1rem; }\n.admesh-text-lg { font-size: 1.125rem; }\n.admesh-text-xl { font-size: 1.25rem; }\n\n.admesh-font-medium { font-weight: 500; }\n.admesh-font-semibold { font-weight: 600; }\n.admesh-font-bold { font-weight: 700; }\n\n.admesh-text-muted { color: var(--admesh-text-muted); }\n\n/* Comparison Table Styles */\n.admesh-compare-table {\n width: 100%;\n border-collapse: collapse;\n background-color: var(--admesh-surface);\n border: 1px solid var(--admesh-border);\n border-radius: var(--admesh-radius);\n overflow: hidden;\n}\n\n.admesh-compare-table th,\n.admesh-compare-table td {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 1px solid var(--admesh-border);\n}\n\n.admesh-compare-table th {\n background-color: var(--admesh-background);\n font-weight: 600;\n color: var(--admesh-text);\n font-size: 0.875rem;\n}\n\n.admesh-compare-table td {\n color: var(--admesh-text);\n font-size: 0.875rem;\n}\n\n.admesh-compare-table tr:hover {\n background-color: var(--admesh-border);\n}\n\n/* Dark mode table enhancements */\n.admesh-component[data-admesh-theme=\"dark\"] .admesh-compare-table th {\n background-color: #374151;\n}\n\n.admesh-component[data-admesh-theme=\"dark\"] .admesh-compare-table tr:hover {\n background-color: #4b5563;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .admesh-layout {\n padding: 1rem;\n }\n\n .admesh-layout__cards-grid {\n grid-template-columns: 1fr;\n gap: 0.75rem;\n }\n\n .admesh-product-card {\n padding: 1rem;\n }\n\n .admesh-compare-table {\n font-size: 0.75rem;\n }\n\n .admesh-compare-table th,\n .admesh-compare-table td {\n padding: 0.5rem;\n }\n}\n\n/* Essential Utility Classes for Self-Contained SDK - High Specificity */\n.admesh-component .relative { position: relative !important; }\n.admesh-component .absolute { position: absolute !important; }\n.admesh-component .flex { display: flex !important; }\n.admesh-component .inline-flex { display: inline-flex !important; }\n.admesh-component .grid { display: grid !important; }\n.admesh-component .hidden { display: none !important; }\n.admesh-component .block { display: block !important; }\n.admesh-component .inline-block { display: inline-block !important; }\n\n/* Flexbox utilities */\n.admesh-component .flex-col { flex-direction: column !important; }\n.admesh-component .flex-row { flex-direction: row !important; }\n.admesh-component .flex-wrap { flex-wrap: wrap !important; }\n.admesh-component .items-center { align-items: center !important; }\n.admesh-component .items-start { align-items: flex-start !important; }\n.admesh-component .items-end { align-items: flex-end !important; }\n.admesh-component .justify-center { justify-content: center !important; }\n.admesh-component .justify-between { justify-content: space-between !important; }\n.admesh-component .justify-end { justify-content: flex-end !important; }\n.admesh-component .flex-1 { flex: 1 1 0% !important; }\n.admesh-component .flex-shrink-0 { flex-shrink: 0 !important; }\n\n/* Grid utilities */\n.admesh-component .grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }\n.admesh-component .grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n.admesh-component .grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }\n\n/* Spacing utilities */\n.admesh-component .gap-1 { gap: 0.25rem; }\n.admesh-component .gap-2 { gap: 0.5rem; }\n.admesh-component .gap-3 { gap: 0.75rem; }\n.admesh-component .gap-4 { gap: 1rem; }\n.admesh-component .gap-6 { gap: 1.5rem; }\n.admesh-component .gap-8 { gap: 2rem; }\n\n/* Padding utilities */\n.admesh-component .p-1 { padding: 0.25rem; }\n.admesh-component .p-2 { padding: 0.5rem; }\n.admesh-component .p-3 { padding: 0.75rem; }\n.admesh-component .p-4 { padding: 1rem; }\n.admesh-component .p-5 { padding: 1.25rem; }\n.admesh-component .p-6 { padding: 1.5rem; }\n.admesh-component .px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }\n.admesh-component .px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }\n.admesh-component .px-4 { padding-left: 1rem; padding-right: 1rem; }\n.admesh-component .py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }\n.admesh-component .py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }\n.admesh-component .py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }\n.admesh-component .pt-2 { padding-top: 0.5rem; }\n.admesh-component .pt-3 { padding-top: 0.75rem; }\n.admesh-component .pb-2 { padding-bottom: 0.5rem; }\n.admesh-component .pb-3 { padding-bottom: 0.75rem; }\n\n/* Margin utilities */\n.admesh-component .m-0 { margin: 0; }\n.admesh-component .mb-1 { margin-bottom: 0.25rem; }\n.admesh-component .mb-2 { margin-bottom: 0.5rem; }\n.admesh-component .mb-3 { margin-bottom: 0.75rem; }\n.admesh-component .mb-4 { margin-bottom: 1rem; }\n.admesh-component .mb-6 { margin-bottom: 1.5rem; }\n.admesh-component .mt-1 { margin-top: 0.25rem; }\n.admesh-component .mt-2 { margin-top: 0.5rem; }\n.admesh-component .mt-4 { margin-top: 1rem; }\n.admesh-component .mt-6 { margin-top: 1.5rem; }\n.admesh-component .mt-auto { margin-top: auto; }\n.admesh-component .ml-1 { margin-left: 0.25rem; }\n.admesh-component .mr-1 { margin-right: 0.25rem; }\n.admesh-component .mr-2 { margin-right: 0.5rem; }\n\n/* Width and height utilities */\n.admesh-component .w-2 { width: 0.5rem; }\n.admesh-component .w-3 { width: 0.75rem; }\n.admesh-component .w-4 { width: 1rem; }\n.admesh-component .w-5 { width: 1.25rem; }\n.admesh-component .w-6 { width: 1.5rem; }\n.admesh-component .w-full { width: 100%; }\n.admesh-component .w-fit { width: fit-content; }\n.admesh-component .h-2 { height: 0.5rem; }\n.admesh-component .h-3 { height: 0.75rem; }\n.admesh-component .h-4 { height: 1rem; }\n.admesh-component .h-5 { height: 1.25rem; }\n.admesh-component .h-6 { height: 1.5rem; }\n.admesh-component .h-full { height: 100%; }\n.admesh-component .min-w-0 { min-width: 0px; }\n\n/* Border utilities */\n.admesh-component .border { border-width: 1px; }\n.admesh-component .border-t { border-top-width: 1px; }\n.admesh-component .border-gray-100 { border-color: #f3f4f6; }\n.admesh-component .border-gray-200 { border-color: #e5e7eb; }\n.admesh-component .border-gray-300 { border-color: #d1d5db; }\n.admesh-component .border-blue-200 { border-color: #bfdbfe; }\n.admesh-component .border-green-200 { border-color: #bbf7d0; }\n\n/* Border radius utilities */\n.admesh-component .rounded { border-radius: 0.25rem !important; }\n.admesh-component .rounded-md { border-radius: 0.375rem !important; }\n.admesh-component .rounded-lg { border-radius: 0.5rem !important; }\n.admesh-component .rounded-xl { border-radius: 0.75rem !important; }\n.admesh-component .rounded-full { border-radius: 9999px !important; }\n\n/* Background utilities */\n.admesh-component .bg-white { background-color: #ffffff; }\n.admesh-component .bg-gray-50 { background-color: #f9fafb; }\n.admesh-component .bg-gray-100 { background-color: #f3f4f6; }\n.admesh-component .bg-blue-50 { background-color: #eff6ff; }\n.admesh-component .bg-blue-100 { background-color: #dbeafe; }\n.admesh-component .bg-green-100 { background-color: #dcfce7; }\n.admesh-component .bg-green-500 { background-color: #22c55e; }\n.admesh-component .bg-blue-500 { background-color: #3b82f6; }\n\n/* Solid backgrounds - no gradients for minimal design */\n.admesh-component .bg-primary { background-color: var(--admesh-primary); }\n.admesh-component .bg-secondary { background-color: var(--admesh-secondary); }\n.admesh-component .bg-surface { background-color: var(--admesh-surface); }\n.admesh-component .bg-background { background-color: var(--admesh-background); }\n\n/* Text utilities */\n.admesh-component .text-xs { font-size: 0.75rem; line-height: 1rem; }\n.admesh-component .text-sm { font-size: 0.875rem; line-height: 1.25rem; }\n.admesh-component .text-base { font-size: 1rem; line-height: 1.5rem; }\n.admesh-component .text-lg { font-size: 1.125rem; line-height: 1.75rem; }\n.admesh-component .text-xl { font-size: 1.25rem; line-height: 1.75rem; }\n.admesh-component .font-medium { font-weight: 500; }\n.admesh-component .font-semibold { font-weight: 600; }\n.admesh-component .font-bold { font-weight: 700; }\n.admesh-component .leading-relaxed { line-height: 1.625; }\n\n/* Text colors */\n.admesh-component .text-white { color: #ffffff; }\n.admesh-component .text-gray-400 { color: #9ca3af; }\n.admesh-component .text-gray-500 { color: #6b7280; }\n.admesh-component .text-gray-600 { color: #4b5563; }\n.admesh-component .text-gray-700 { color: #374151; }\n.admesh-component .text-gray-800 { color: #1f2937; }\n.admesh-component .text-blue-600 { color: #2563eb; }\n.admesh-component .text-blue-700 { color: #1d4ed8; }\n.admesh-component .text-green-700 { color: #15803d; }\n\n/* Shadow utilities */\n.admesh-component .shadow-sm { box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); }\n.admesh-component .shadow { box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); }\n.admesh-component .shadow-md { box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); }\n.admesh-component .shadow-lg { box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); }\n.admesh-component .shadow-xl { box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); }\n\n/* Transition utilities */\n.admesh-component .transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }\n.admesh-component .transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }\n.admesh-component .duration-200 { transition-duration: 200ms; }\n.admesh-component .duration-300 { transition-duration: 300ms; }\n\n/* Transform utilities */\n.admesh-component .hover\\\\:-translate-y-1:hover { transform: translateY(-0.25rem); }\n.admesh-component .hover\\\\:scale-105:hover { transform: scale(1.05); }\n\n/* Hover utilities */\n.admesh-component .hover\\\\:shadow-xl:hover { box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); }\n.admesh-component .hover\\\\:bg-gray-100:hover { background-color: #f3f4f6; }\n.admesh-component .hover\\\\:text-blue-800:hover { color: #1e40af; }\n\n/* Cursor utilities */\n.admesh-component .cursor-pointer { cursor: pointer; }\n\n/* Overflow utilities */\n.admesh-component .overflow-hidden { overflow: hidden; }\n.admesh-component .truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n\n/* Text decoration */\n.admesh-component .underline { text-decoration-line: underline; }\n\n/* Whitespace */\n.admesh-component .whitespace-nowrap { white-space: nowrap; }\n\n/* Dark mode utilities */\n@media (prefers-color-scheme: dark) {\n .admesh-component .dark\\\\:bg-slate-800 { background-color: #1e293b; }\n .admesh-component .dark\\\\:bg-slate-900 { background-color: #0f172a; }\n .admesh-component .dark\\\\:border-slate-700 { border-color: #334155; }\n .admesh-component .dark\\\\:text-white { color: #ffffff; }\n .admesh-component .dark\\\\:text-gray-200 { color: #e5e7eb; }\n .admesh-component .dark\\\\:text-gray-300 { color: #d1d5db; }\n .admesh-component .dark\\\\:text-gray-400 { color: #9ca3af; }\n .admesh-component .dark\\\\:text-blue-400 { color: #60a5fa; }\n}\n\n/* Responsive utilities */\n@media (min-width: 640px) {\n .admesh-component .sm\\\\:p-5 { padding: 1.25rem; }\n .admesh-component .sm\\\\:text-base { font-size: 1rem; line-height: 1.5rem; }\n .admesh-component .sm\\\\:text-lg { font-size: 1.125rem; line-height: 1.75rem; }\n .admesh-component .sm\\\\:flex-row { flex-direction: row; }\n .admesh-component .sm\\\\:items-center { align-items: center; }\n .admesh-component .sm\\\\:justify-between { justify-content: space-between; }\n}\n\n@media (min-width: 768px) {\n .admesh-component .md\\\\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n}\n\n@media (min-width: 1024px) {\n .admesh-component .lg\\\\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }\n .admesh-component .lg\\\\:col-span-1 { grid-column: span 1 / span 1; }\n}\n`;\n\nlet stylesInjected = false;\n\n/**\n * Hook to inject AdMesh styles into the document\n * Ensures platform-agnostic, isolated styling that prevents\n * interference from host platform CSS frameworks\n *\n * Usage:\n * const MyComponent = () => {\n * useAdMeshStyles();\n * return <div className=\"admesh-component\">...</div>;\n * };\n */\nexport const useAdMeshStyles = () => {\n useEffect(() => {\n if (stylesInjected) return;\n\n try {\n // Use the new style injection system for better isolation\n injectAdMeshStyles();\n\n // Also inject the legacy styles for backward compatibility\n const styleElement = document.createElement('style');\n styleElement.id = 'admesh-ui-sdk-styles-legacy';\n styleElement.textContent = ADMESH_STYLES;\n\n if (!document.getElementById('admesh-ui-sdk-styles-legacy')) {\n document.head.appendChild(styleElement);\n }\n\n stylesInjected = true;\n } catch (error) {\n logger.error('[AdMesh] Failed to inject styles');\n }\n\n // Cleanup function\n return () => {\n // Note: We don't remove styles on unmount to prevent flickering\n // Styles are designed to be persistent for the lifetime of the app\n };\n }, []);\n};\n","\"use client\";\n\nimport { Fragment, useState, useEffect, useLayoutEffect, useRef, useCallback, useMemo, type CSSProperties, type FC, type ReactNode } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { PublisherAssistantComposer } from \"./PublisherAssistantComposer\";\nimport { publisherAssistantStyles } from \"./publisherAssistantStyles\";\nimport { XIcon, SendIcon, Maximize2, Minimize2, ThumbsUp, ThumbsDown, ArrowUpRight, MessageSquare } from \"lucide-react\";\nimport type { PlatformResponse, AdMeshTheme, ChatMessage } from \"../types/index\";\nimport { AdMeshRecommendations } from \"./AdMeshRecommendations\";\nimport { useAdMesh } from \"../hooks/useAdMesh\";\nimport { useAdMeshStyles } from \"../hooks/useAdMeshStyles\";\nimport { useAdMeshContext } from \"../context/AdMeshContext\";\nimport type { PublisherAssistantAnalyticsEvent } from \"../sdk/AdMeshSDK\";\n\nconst ignoreSuggestionDropdown = () => {};\n\nfunction formatGenerationDuration(totalSeconds: number): string {\n const seconds = Math.max(1, Math.round(totalSeconds));\n if (seconds < 60) {\n return `${seconds}s`;\n }\n const minutes = Math.floor(seconds / 60);\n const remainder = seconds % 60;\n return remainder > 0 ? `${minutes}m ${remainder}s` : `${minutes}m`;\n}\n\nfunction formatGenerationDurationFromMs(durationMs: number): string {\n return formatGenerationDuration(durationMs / 1000);\n}\n\ntype AnswerFeedbackValue = 'helpful' | 'not_helpful';\n\n// Custom markdown renderer with proper styling\nconst CustomMarkdownRenderer = ({ content, theme, fontSize }: { content: string; theme: AdMeshTheme; fontSize: string }) => {\n const renderInlineFormatting = (text: string) => {\n const parts = text.split(/(\\*\\*[^*]+\\*\\*|\\[[^\\]]+\\]\\(https?:\\/\\/[^)\\s]+\\))/g);\n return parts.map((part, index) => {\n if (part.startsWith('**') && part.endsWith('**') && part.length > 4) {\n return (\n <strong key={index} style={{ fontWeight: '600', color: theme.textColor }}>\n {part.slice(2, -2)}\n </strong>\n );\n }\n const linkMatch = part.match(/^\\[([^\\]]+)\\]\\((https?:\\/\\/[^)\\s]+)\\)$/);\n if (linkMatch) {\n return (\n <a\n key={index}\n href={linkMatch[2]}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{ color: theme.primaryColor, textDecoration: 'underline', textUnderlineOffset: '2px' }}\n >\n {linkMatch[1]}\n </a>\n );\n }\n return <Fragment key={index}>{part}</Fragment>;\n });\n };\n\n const parseTableRow = (line: string) => {\n const trimmed = line.trim().replace(/^\\|/, '').replace(/\\|$/, '');\n return trimmed.split('|').map((cell) => cell.trim()).filter((cell, index, cells) => (\n cell.length > 0 || index < cells.length - 1\n ));\n };\n\n const isTableSeparator = (line: string) => {\n const cells = parseTableRow(line);\n return cells.length > 1 && cells.every((cell) => /^:?-{3,}:?$/.test(cell));\n };\n\n const splitTablePrefixHeading = (line: string) => {\n const pipeIndex = line.indexOf('|');\n if (pipeIndex <= 0) {\n return { heading: null as string | null, headerLine: line };\n }\n const prefix = line.slice(0, pipeIndex).trim();\n if (!prefix || /^[-|:\\s]+$/.test(prefix)) {\n return { heading: null, headerLine: line };\n }\n return { heading: prefix, headerLine: line.slice(pipeIndex).trim() };\n };\n\n const normalizeTableSeparator = (headerLine: string, separatorLine: string) => {\n const headerCount = parseTableRow(headerLine).length;\n const separatorCount = parseTableRow(separatorLine).length;\n if (headerCount <= 1 || headerCount === separatorCount) {\n return separatorLine;\n }\n return `| ${Array.from({ length: headerCount }, () => '---').join(' | ')} |`;\n };\n\n const normalizeTableLines = (lines: string[]) => {\n if (lines.length < 2 || !lines[0].includes('|')) {\n return { heading: null as string | null, lines };\n }\n const { heading, headerLine } = splitTablePrefixHeading(lines[0]);\n const normalizedHeader = headerLine.startsWith('|') ? headerLine : `| ${headerLine}`;\n const normalizedSeparator = normalizeTableSeparator(normalizedHeader, lines[1]);\n return {\n heading,\n lines: [normalizedHeader, normalizedSeparator, ...lines.slice(2)],\n };\n };\n\n const isMarkdownTable = (lines: string[]) => {\n if (lines.length < 2 || !lines[0].includes('|')) {\n return false;\n }\n const { lines: normalizedLines } = normalizeTableLines(lines);\n return (\n isTableSeparator(normalizedLines[1]) &&\n parseTableRow(normalizedLines[0]).length >= 2\n );\n };\n\n const expandInlineTableLine = (line: string) => {\n if (!line.includes('|')) {\n return [line];\n }\n\n let working = line.trim();\n const result: string[] = [];\n\n const pipeIndex = working.indexOf('|');\n if (pipeIndex > 0) {\n const prefix = working.slice(0, pipeIndex).trim();\n if (prefix && !/^[-|:\\s]+$/.test(prefix)) {\n result.push(prefix);\n working = working.slice(pipeIndex).trim();\n }\n }\n\n // Some models (e.g. Gemma) emit header + separator + rows on one line.\n working = working.replace(/\\|\\s*(\\|(?:\\s*:?-{3,}:?\\s*\\|)+)/g, (_match, separatorRow: string) => `\\n${separatorRow}`);\n working = working.replace(/\\|\\s*\\|\\s*(?=[A-Za-z0-9*])/g, '|\\n| ');\n working = working.replace(/\\|\\s+(?=\\|(?!\\s*:?-{3,}:?\\s*\\|)[^|\\n])/g, '|\\n');\n\n result.push(...working.split('\\n').map((part) => part.trim()).filter(Boolean));\n return result;\n };\n\n const normalizeCompactMarkdownTables = (markdown: string) => {\n const lines = markdown.split('\\n');\n const normalized: string[] = [];\n\n for (const line of lines) {\n if (!line.includes('|')) {\n normalized.push(line);\n continue;\n }\n normalized.push(...expandInlineTableLine(line));\n }\n\n return normalized.join('\\n');\n };\n\n const isolateMarkdownTables = (markdown: string) => {\n const lines = normalizeCompactMarkdownTables(markdown).split('\\n');\n const output: string[] = [];\n let index = 0;\n\n while (index < lines.length) {\n const line = lines[index];\n const nextLine = lines[index + 1] || '';\n\n if (line.includes('|') && isTableSeparator(nextLine)) {\n if (output.length > 0 && output[output.length - 1].trim()) {\n output.push('');\n }\n\n const { heading, headerLine } = splitTablePrefixHeading(line);\n if (heading) {\n output.push(heading);\n }\n output.push(headerLine, normalizeTableSeparator(headerLine, nextLine));\n index += 2;\n\n while (index < lines.length && lines[index].includes('|') && lines[index].trim()) {\n output.push(lines[index]);\n index += 1;\n }\n\n if (index < lines.length && lines[index].trim()) {\n output.push('');\n }\n continue;\n }\n\n output.push(line);\n index += 1;\n }\n\n return output.join('\\n');\n };\n\n const blocks = isolateMarkdownTables(content)\n .split(/\\n\\s*\\n/)\n .map((block) => block.trim())\n .filter(Boolean);\n\n return (\n <div style={{ margin: 0, color: theme.textColor, fontSize }}>\n {blocks.map((block, blockIndex) => {\n const lines = block.split('\\n').map((line) => line.trim()).filter(Boolean);\n const isBulletList = lines.every((line) => /^[-*]\\s+/.test(line));\n const isNumberedList = lines.every((line) => /^\\d+\\.\\s+/.test(line));\n const isHeading = lines.length === 1 && /^#{1,3}\\s+/.test(lines[0]);\n const isTable = isMarkdownTable(lines);\n\n if (isHeading) {\n const text = lines[0].replace(/^#{1,3}\\s+/, '');\n return (\n <h3\n key={blockIndex}\n style={{\n marginTop: blockIndex === 0 ? 0 : '1rem',\n marginBottom: '0.75rem',\n fontWeight: '600',\n fontSize: '1.05em',\n color: theme.textColor,\n }}\n >\n {renderInlineFormatting(text)}\n </h3>\n );\n }\n\n if (isTable) {\n const { heading, lines: tableLines } = normalizeTableLines(lines);\n const headers = parseTableRow(tableLines[0]);\n const rows = tableLines.slice(2).map(parseTableRow).filter((row) => row.length === headers.length);\n\n return (\n <div\n key={blockIndex}\n style={{\n width: '100%',\n overflowX: 'auto',\n marginBottom: '1rem',\n }}\n >\n {heading ? (\n <p\n style={{\n marginTop: blockIndex === 0 ? 0 : '1rem',\n marginBottom: '0.75rem',\n fontWeight: 600,\n color: theme.textColor,\n fontSize,\n }}\n >\n {renderInlineFormatting(heading)}\n </p>\n ) : null}\n <div\n style={{\n border: `1px solid ${theme.borderColor || 'rgba(148, 163, 184, 0.28)'}`,\n borderRadius: 8,\n overflowX: 'auto',\n }}\n >\n <table\n style={{\n width: '100%',\n minWidth: headers.length > 3 ? 520 : undefined,\n borderCollapse: 'collapse',\n color: theme.textColor,\n fontSize,\n lineHeight: 1.45,\n }}\n >\n <thead>\n <tr>\n {headers.map((header, index) => (\n <th\n key={index}\n style={{\n textAlign: 'left',\n padding: '9px 10px',\n fontWeight: 600,\n background: theme.surfaceColor || 'rgba(148, 163, 184, 0.12)',\n borderBottom: `1px solid ${theme.borderColor || 'rgba(148, 163, 184, 0.28)'}`,\n whiteSpace: 'normal',\n }}\n >\n {renderInlineFormatting(header)}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.map((row, rowIndex) => (\n <tr key={rowIndex}>\n {row.map((cell, cellIndex) => (\n <td\n key={cellIndex}\n style={{\n padding: '9px 10px',\n verticalAlign: 'top',\n borderBottom:\n rowIndex === rows.length - 1\n ? 'none'\n : `1px solid ${theme.borderColor || 'rgba(148, 163, 184, 0.18)'}`,\n whiteSpace: 'normal',\n }}\n >\n {renderInlineFormatting(cell)}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n }\n\n if (isBulletList || isNumberedList) {\n const ListTag = isNumberedList ? 'ol' : 'ul';\n return (\n <ListTag\n key={blockIndex}\n style={{\n marginBottom: '1rem',\n paddingLeft: '1.25rem',\n color: theme.textColor,\n fontSize,\n }}\n >\n {lines.map((line, lineIndex) => (\n <li key={lineIndex} style={{ marginBottom: '0.45rem' }}>\n {renderInlineFormatting(line.replace(/^([-*]|\\d+\\.)\\s+/, ''))}\n </li>\n ))}\n </ListTag>\n );\n }\n\n return (\n <p\n key={blockIndex}\n style={{\n marginBottom: '1rem',\n lineHeight: '1.6',\n color: theme.textColor,\n fontSize,\n whiteSpace: 'pre-wrap',\n }}\n >\n {lines.map((line, lineIndex) => (\n <Fragment key={lineIndex}>\n {lineIndex > 0 && <br />}\n {renderInlineFormatting(line)}\n </Fragment>\n ))}\n </p>\n );\n })}\n </div>\n );\n};\n\n// Types for the Intent Assistant\nexport interface Suggestion {\n id: string;\n text: string;\n type: 'product' | 'comparison' | 'information' | 'action';\n is_sponsored?: boolean;\n recommendation?: PlatformResponse;\n metadata?: Record<string, unknown>;\n}\n\nexport interface AssistantSourceLink {\n title?: string;\n url: string;\n}\n\nexport interface AssistantRelatedItem {\n title?: string;\n url: string;\n snippet?: string;\n image_url?: string | null;\n publisher?: string | null;\n}\n\nexport interface AssistantQueryResult {\n answer: string;\n source_links?: AssistantSourceLink[];\n related_items?: AssistantRelatedItem[];\n recommendation?: PlatformResponse | null;\n followup_suggestions?: Array<{ text: string; type?: Suggestion['type'] }>;\n}\n\nexport interface AssistantQueryContext {\n sponsoredSuggestion?: Suggestion | null;\n}\n\ntype SuggestionStyle = 'carousel' | 'stacked';\n\nfunction toCssSize(value?: number | string) {\n return value === undefined ? undefined : typeof value === 'number' ? `${value}px` : value;\n}\n\nfunction toNumericCssSize(value?: number | string) {\n if (typeof value === 'number') return value;\n if (typeof value !== 'string') return undefined;\n const numeric = Number(value.trim().replace(/px$/i, ''));\n return Number.isFinite(numeric) && numeric > 0 ? numeric : undefined;\n}\n\nexport type AdSlotBehavior = 'sticky' | 'expand';\nexport type SuggestionTrigger = 'always' | 'input';\nexport type SponsoredCreativePlacement = 'none' | 'below-input-container';\n\nexport interface AdMeshIntentAssistantProps {\n // AssistantModal Root props\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n unstable_openOnRunStart?: boolean;\n \n // UI Configuration\n layout?: 'floating' | 'inline';\n surface?: 'page' | 'ad-slot';\n /** Ad-slot only: `expand` (default) opens a full-page overlay when active; `sticky` keeps the assistant inside the slot. */\n adSlotBehavior?: AdSlotBehavior;\n /** Ad-slot compact teaser: show header row (off for short formats like 300×250, 728×90). */\n showCompactSlotHeader?: boolean;\n /** Ad-slot compact teaser: show welcome title (off for very short formats like 728×90). */\n showCompactWelcomeMessage?: boolean;\n /** Ad-slot compact teaser: show input + send row (off for very short formats like 728×90). */\n showCompactSlotInput?: boolean;\n /** Ad-slot compact teaser: show AI disclaimer (off for very short formats like 728×90). */\n showCompactSlotDisclaimer?: boolean;\n position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';\n size?: 'sm' | 'md' | 'lg' | 'xl';\n theme?: AdMeshTheme;\n className?: string;\n style?: CSSProperties;\n triggerLabel?: string;\n triggerIcon?: ReactNode;\n headerTitle?: string;\n headerIcon?: ReactNode;\n headerLogoUrl?: string | null;\n showHeader?: boolean;\n showHeaderTitle?: boolean;\n showSubtitle?: boolean;\n panelWidth?: number | string;\n panelHeight?: number | string;\n fontScale?: number;\n analyticsPageUrl?: string;\n \n // Behavior\n autoOpen?: boolean;\n showWelcomeMessage?: boolean;\n welcomeMessage?: string;\n placeholder?: string;\n adsEnabled?: boolean;\n suggestions?: Suggestion[]; // Optional - will use context suggestions if not provided\n maxSuggestions?: number;\n suggestionStyle?: SuggestionStyle;\n /** Collapsed input only: opt into a suggestions dropdown with `input`. Expanded follow-ups stay visible. */\n suggestionTrigger?: SuggestionTrigger;\n /** Preferred side for the collapsed input dropdown. Does not affect the expanded assistant. */\n suggestionPlacement?: 'below' | 'above';\n /** Opt in to the matching sponsored Tail card below the initial input container. */\n sponsoredCreativePlacement?: SponsoredCreativePlacement;\n onlyShowWhenSponsored?: boolean; // Only show modal when sponsored suggestions are available\n variant?: 'default' | 'legacy';\n queryHandler?: (query: string, context: AssistantQueryContext) => Promise<AssistantQueryResult>;\n suggestionsLoader?: () => Promise<Suggestion[]>;\n disclaimerText?: string;\n poweredByLabel?: string;\n subtitle?: string;\n relatedItemsHeading?: string;\n \n // Events\n onOpen?: () => void;\n onClose?: () => void;\n}\n\nfunction normalizeSuggestionText(value: string): string {\n return value.replace(/\\s+/g, ' ').trim();\n}\n\nfunction mergeSuggestionsPreservingOrganic(\n currentSuggestions: Suggestion[],\n nextSuggestions: Suggestion[],\n): Suggestion[] {\n const currentOrganicSuggestions = currentSuggestions\n .filter((suggestion) => !suggestion?.is_sponsored)\n .slice(0, 3);\n const nextOrganicSuggestions = nextSuggestions\n .filter((suggestion) => !suggestion?.is_sponsored)\n .slice(0, 3);\n\n const sponsoredSuggestion = nextSuggestions.find((suggestion) => suggestion?.is_sponsored);\n\n if (!sponsoredSuggestion) {\n return nextOrganicSuggestions.length ? nextOrganicSuggestions : currentOrganicSuggestions;\n }\n\n const organicSuggestions = nextOrganicSuggestions.length ? nextOrganicSuggestions : currentOrganicSuggestions;\n return [sponsoredSuggestion, ...organicSuggestions].slice(0, 4);\n}\n\nfunction buildFollowupSuggestionsFromAnswer(\n query: string,\n answer: string,\n sourceLinks?: AssistantSourceLink[],\n relatedItems?: AssistantRelatedItem[],\n): Suggestion[] {\n const seen = new Set<string>();\n const suggestions: Suggestion[] = [];\n\n const pushSuggestion = (text: string, type: Suggestion['type'] = 'information') => {\n const normalized = normalizeSuggestionText(text);\n if (!normalized) return;\n const key = normalized.toLowerCase();\n if (seen.has(key)) return;\n seen.add(key);\n suggestions.push({\n id: `followup_${suggestions.length}_${key.replace(/[^a-z0-9]+/g, '_')}`,\n text: normalized,\n type,\n is_sponsored: false,\n });\n };\n\n const topics = new Set<string>();\n\n const collectTopic = (value?: string | null) => {\n const normalized = normalizeSuggestionText(value || '');\n if (!normalized) return;\n const cleaned = normalized\n .replace(/^(how|why|what|when|where|which|who)\\s+/i, '')\n .replace(/\\?+$/g, '')\n .trim();\n if (!cleaned) return;\n topics.add(cleaned);\n };\n\n (relatedItems || []).forEach((item) => collectTopic(item?.title));\n (sourceLinks || []).forEach((item) => collectTopic(item?.title));\n\n const sentenceMatches = answer\n .split(/\\n+/)\n .map((line) => normalizeSuggestionText(line.replace(/^[-*]\\s+/, '')))\n .filter(Boolean)\n .filter((line) => line.length >= 24 && line.length <= 90);\n\n sentenceMatches.forEach((line) => {\n if (topics.size >= 6) return;\n collectTopic(line);\n });\n\n const cleanQuery = normalizeSuggestionText(query.replace(/[?.!]+$/g, ''));\n const topicList = Array.from(topics).slice(0, 3);\n const continuations = [\n topicList[0] ? `Tell me more about ${topicList[0]}` : '',\n topicList[1] ? `Show me examples related to ${topicList[1]}` : '',\n topicList[2] ? `Compare the main options for ${topicList[2]}` : '',\n `Break this down more simply`,\n `What should I look at next about ${cleanQuery}`,\n `Give me the practical takeaway here`,\n ];\n\n continuations.forEach((text, index) => {\n if (suggestions.length >= 3) return;\n pushSuggestion(text, index === 0 ? 'comparison' : 'information');\n });\n\n return suggestions.slice(0, 3);\n}\n\nfunction detectAssistantDeviceType(): PublisherAssistantAnalyticsEvent['device_type'] {\n if (typeof window === 'undefined') return 'unknown';\n const width = window.innerWidth;\n if (width < 768) return 'mobile';\n if (width < 1024) return 'tablet';\n return 'desktop';\n}\n\ntype ExpandedOverlayLayout = {\n shell: CSSProperties;\n panelWidth: string;\n panelMaxWidth: string;\n panelHeight: string;\n panelMaxHeight?: string;\n panelBorderRadius: string;\n};\n\nfunction getExpandedOverlayLayout(isMobile: boolean): ExpandedOverlayLayout {\n if (isMobile) {\n return {\n shell: {\n position: 'fixed',\n left: 0,\n right: 0,\n bottom: 0,\n width: '100%',\n maxWidth: '100%',\n height: 'calc(100dvh - env(safe-area-inset-bottom, 0px))',\n maxHeight: 'calc(100dvh - env(safe-area-inset-bottom, 0px))',\n padding: 0,\n margin: 0,\n zIndex: 2147483001,\n boxSizing: 'border-box',\n },\n panelWidth: '100%',\n panelMaxWidth: '100%',\n panelHeight: '100%',\n panelMaxHeight: '100%',\n panelBorderRadius: '0',\n };\n }\n\n return {\n shell: {\n position: 'fixed',\n left: '50%',\n bottom: '12px',\n transform: 'translateX(-50%)',\n width: 'min(960px, calc(100vw - 24px))',\n maxWidth: '100%',\n maxHeight: 'calc(100vh - 24px)',\n zIndex: 2147483001,\n boxSizing: 'border-box',\n },\n panelWidth: 'min(960px, calc(100vw - 24px))',\n panelMaxWidth: '100%',\n panelHeight: 'min(78vh, 760px)',\n panelMaxHeight: undefined,\n panelBorderRadius: '12px',\n };\n}\n\nfunction isResolvedPageUrl(value?: string) {\n const trimmed = value?.trim();\n if (!trimmed || /%%[^%]+%%/.test(trimmed)) {\n return false;\n }\n try {\n const parsed = new URL(trimmed);\n return Boolean(parsed.protocol && parsed.hostname);\n } catch {\n return false;\n }\n}\n\nfunction getUsableWindowHref() {\n try {\n const href = window.location.href?.trim();\n if (isResolvedPageUrl(href)) {\n return href;\n }\n } catch {\n return undefined;\n }\n return undefined;\n}\n\nfunction getAssistantPageContext(pageUrlOverride?: string) {\n if (typeof window === 'undefined') {\n return {\n page_url: undefined,\n page_path: undefined,\n article_slug: undefined,\n page_title: undefined,\n referrer: undefined,\n device_type: 'unknown' as const,\n };\n }\n\n const resolvedPageUrl = getUsableWindowHref()\n || (isResolvedPageUrl(pageUrlOverride) ? pageUrlOverride!.trim() : undefined);\n let page_path: string | undefined = resolvedPageUrl ? window.location.pathname || '/' : undefined;\n try {\n page_path = resolvedPageUrl ? new URL(resolvedPageUrl).pathname || '/' : undefined;\n } catch {\n page_path = getUsableWindowHref() ? window.location.pathname || '/' : undefined;\n }\n const segments = (page_path || '').split('/').filter(Boolean);\n\n return {\n page_url: resolvedPageUrl,\n page_path,\n article_slug: segments[segments.length - 1],\n page_title: document.title || undefined,\n referrer: document.referrer || undefined,\n device_type: detectAssistantDeviceType(),\n };\n}\n\nfunction buildSponsoredSuggestionFromRecommendation(recommendation?: PlatformResponse | null): Suggestion | null {\n const suggestionText = recommendation?.recommendation?.creative?.follow_up_suggestion;\n const recommendationId = recommendation?.recommendation_id;\n if (!suggestionText || !recommendationId) {\n return null;\n }\n\n return {\n id: recommendationId,\n text: normalizeSuggestionText(suggestionText),\n type: 'action',\n is_sponsored: true,\n recommendation,\n metadata: {\n source: 'assistant_query_recommendation',\n recommendation_id: recommendationId,\n },\n };\n}\n\nfunction prioritizeSponsoredSuggestions(items: Suggestion[]): Suggestion[] {\n return [...items].sort((left, right) => {\n const leftSponsored = Boolean(left.is_sponsored);\n const rightSponsored = Boolean(right.is_sponsored);\n if (leftSponsored === rightSponsored) {\n return 0;\n }\n return leftSponsored ? -1 : 1;\n });\n}\n\n// Default theme\nconst defaultTheme: AdMeshTheme = {\n mode: 'light',\n primaryColor: '#3b82f6',\n secondaryColor: '#64748b',\n backgroundColor: '#ffffff',\n surfaceColor: '#f8fafc',\n borderColor: '#e2e8f0',\n textColor: '#1e293b',\n textSecondaryColor: '#64748b',\n borderRadius: '0.5rem',\n spacing: {\n small: '0.5rem',\n medium: '1rem',\n large: '1.5rem',\n },\n shadows: {\n small: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n medium: '0 4px 6px -1px rgb(0 0 0 / 0.1)',\n large: '0 10px 15px -3px rgb(0 0 0 / 0.1)',\n },\n};\n\n// Size configurations\nconst sizeConfig = {\n sm: { width: '320px', height: '400px' },\n md: { width: '400px', height: '500px' },\n lg: { width: '480px', height: '600px' },\n xl: { width: '560px', height: '700px' },\n};\n\n// Position configurations\nconst positionConfig = {\n 'bottom-right': { bottom: '20px', right: '20px' },\n 'bottom-left': { bottom: '20px', left: '20px' },\n 'top-right': { top: '20px', right: '20px' },\n 'top-left': { top: '20px', left: '20px' },\n};\n\n// Main Assistant Component\nexport const AdMeshIntentAssistant: FC<AdMeshIntentAssistantProps> = ({\n theme: propTheme,\n className,\n style,\n triggerLabel = 'Ask Ava',\n headerTitle = 'Ask Ava',\n headerLogoUrl,\n showHeader = true,\n showHeaderTitle = true,\n showSubtitle = true,\n layout = 'floating',\n surface = 'page',\n adSlotBehavior = 'expand',\n showCompactSlotHeader = true,\n showCompactWelcomeMessage = true,\n showCompactSlotInput = true,\n showCompactSlotDisclaimer = true,\n panelWidth,\n panelHeight,\n analyticsPageUrl,\n fontScale = 1,\n position = 'bottom-right',\n size = 'md',\n // AssistantModal Root props\n defaultOpen,\n open,\n onOpenChange,\n // Behavior props\n autoOpen = false,\n showWelcomeMessage = false,\n welcomeMessage = \"Hi, I’m Ava. I’ll help you find the best options.\",\n placeholder = \"Ask me anything about products...\",\n adsEnabled = true,\n suggestions: propSuggestions, // Renamed to avoid conflict\n maxSuggestions = 6,\n suggestionStyle = 'carousel',\n suggestionTrigger = 'always',\n suggestionPlacement = 'below',\n sponsoredCreativePlacement = 'none',\n onlyShowWhenSponsored = false, // New prop to only show modal when sponsored suggestions are available\n variant = 'default',\n queryHandler,\n suggestionsLoader,\n disclaimerText,\n poweredByLabel = 'Powered by AdMesh',\n subtitle = 'Publisher Assistant',\n relatedItemsHeading = 'Related reading',\n onOpen,\n onClose,\n}) => {\n // Get AdMesh context\n const { sdk, sessionId, theme: contextTheme, apiKey, userId } = useAdMesh();\n const { \n suggestions: contextSuggestions, \n isAnalyzingIntent, \n intentError,\n retryIntentAnalysis,\n activeDelegationSession,\n hasActiveDelegationSession,\n stopDelegationSession,\n refreshDelegationActivity,\n } = useAdMeshContext();\n useAdMeshStyles();\n \n // Debug: Log context availability\n console.log('[AdMeshIntentAssistant] Context:', { \n sdk:sdk, \n sessionId, \n hasContextTheme: !!contextTheme \n });\n \n // Use prop theme or fallback to context theme or default theme\n const theme = propTheme || contextTheme || defaultTheme;\n const themeMode = theme?.mode || 'light';\n const isAdSlotSurface = surface === 'ad-slot';\n const isAdSlotCompactLayout = (forOverlay = false) =>\n isAdSlotSurface && !(forOverlay && adSlotBehavior === 'expand');\n // Use controlled or uncontrolled state based on props\n const [internalOpen, setInternalOpen] = useState(defaultOpen || autoOpen);\n const isControlled = open !== undefined;\n const isOpen = isControlled ? open : internalOpen;\n \n const [inputValue, setInputValue] = useState('');\n const [suggestionsOpen, setSuggestionsOpen] = useState(false);\n type RenderMessage = ChatMessage & {\n sourceLinks?: AssistantSourceLink[];\n relatedItems?: AssistantRelatedItem[];\n initialRecommendation?: PlatformResponse | null;\n responseTimeMs?: number;\n };\n const [messages, setMessages] = useState<RenderMessage[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [isExpanded, setIsExpanded] = useState(false);\n const [sponsoredClickedMessages, setSponsoredClickedMessages] = useState<Set<string>>(new Set());\n const [resolvedSuggestions, setResolvedSuggestions] = useState<Suggestion[]>(propSuggestions || contextSuggestions || []);\n const [loadingLabelIndex, setLoadingLabelIndex] = useState(0);\n const [generationElapsedSec, setGenerationElapsedSec] = useState(0);\n const [messageFeedback, setMessageFeedback] = useState<Record<string, AnswerFeedbackValue>>({});\n const generationStartedAtRef = useRef<number | null>(null);\n const currentMessageIsSponsored = useRef(false);\n const currentSponsoredSuggestionRef = useRef<Suggestion | null>(null);\n const suggestionButtonRefs = useRef<Map<string, HTMLButtonElement>>(new Map());\n const suggestionExposureCleanupRef = useRef<Array<() => void>>([]);\n const messagesScrollRef = useRef<HTMLDivElement>(null);\n const activeSubmittedMessageRef = useRef<HTMLDivElement>(null);\n const activeSubmittedMessageIdRef = useRef<string | null>(null);\n const shouldAnchorSubmittedMessageRef = useRef(false);\n const suppressAutoScrollToBottomRef = useRef(false);\n const adSlotRootRef = useRef<HTMLDivElement>(null);\n const messagesEndRef = useRef<HTMLDivElement>(null);\n const suggestionsScrollRef = useRef<HTMLDivElement>(null);\n const [canScrollSuggestionsLeft, setCanScrollSuggestionsLeft] = useState(false);\n const [canScrollSuggestionsRight, setCanScrollSuggestionsRight] = useState(false);\n const generationAbortRef = useRef<AbortController | null>(null);\n const activeAssistantMessageIdRef = useRef<string | null>(null);\n const canUseDirectAdMeshFetch = Boolean(apiKey?.toLowerCase().startsWith('pub_'));\n const connectedDelegationSession =\n hasActiveDelegationSession() && activeDelegationSession?.session_id === sessionId\n ? activeDelegationSession\n : null;\n const trackedSuggestionExposureKeysRef = useRef<Set<string>>(new Set());\n const trackedRecommendationKeysRef = useRef<Set<string>>(new Set());\n const loadedTrackedRef = useRef(false);\n const isAdSlotOverlayActive =\n isAdSlotSurface &&\n adSlotBehavior === 'expand' &&\n (isExpanded || isLoading);\n const [isMobileViewport, setIsMobileViewport] = useState(false);\n useEffect(() => {\n if (typeof window === 'undefined') return;\n const mediaQuery = window.matchMedia('(max-width: 767px)');\n const updateViewport = () => setIsMobileViewport(mediaQuery.matches);\n updateViewport();\n mediaQuery.addEventListener('change', updateViewport);\n return () => mediaQuery.removeEventListener('change', updateViewport);\n }, []);\n useEffect(() => {\n if (!isAdSlotOverlayActive || typeof document === 'undefined') return;\n const previousOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n return () => {\n document.body.style.overflow = previousOverflow;\n };\n }, [isAdSlotOverlayActive]);\n const shouldExpandAdSlot =\n isAdSlotSurface &&\n adSlotBehavior === 'sticky' &&\n (isExpanded || messages.length > 0 || isLoading);\n const adSlotWidthCss = toCssSize(panelWidth) ?? '100%';\n const adSlotHeightCss = toCssSize(panelHeight) ?? '100%';\n const numericAdSlotWidth = toNumericCssSize(panelWidth);\n const numericAdSlotHeight = toNumericCssSize(panelHeight);\n const isUltraCompactAdSlot = isAdSlotSurface && (numericAdSlotHeight ?? Number.POSITIVE_INFINITY) <= 60;\n\n\n const isMobileLeaderboardAdSlot =\n isAdSlotSurface &&\n (numericAdSlotWidth ?? Number.POSITIVE_INFINITY) <= 360 &&\n (numericAdSlotHeight ?? Number.POSITIVE_INFINITY) <= 120;\n\n const setSuggestionButtonRef = useCallback((suggestionId: string) => {\n return (node: HTMLButtonElement | null) => {\n if (node) {\n suggestionButtonRefs.current.set(suggestionId, node);\n } else {\n suggestionButtonRefs.current.delete(suggestionId);\n }\n };\n }, []);\n\n const trackAssistantEvent = useCallback(\n async (\n event_name: PublisherAssistantAnalyticsEvent['event_name'],\n event: Omit<Partial<PublisherAssistantAnalyticsEvent>, 'event_name' | 'timestamp' | 'session_id'> = {},\n ) => {\n if (!sdk || !sessionId) {\n return;\n }\n\n try {\n await sdk.trackPublisherAssistantEvent({\n event_name,\n timestamp: new Date().toISOString(),\n session_id: sessionId,\n ...getAssistantPageContext(analyticsPageUrl),\n ...event,\n });\n } catch (analyticsError) {\n console.warn(`[AdMeshIntentAssistant] Failed to track ${event_name}`, analyticsError);\n }\n },\n [analyticsPageUrl, sdk, sessionId],\n );\n\n const handleRecommendationShown = useCallback(\n (messageId: string, recommendation: PlatformResponse | null, query?: string) => {\n const recommendationId = recommendation?.recommendation_id;\n if (!recommendationId) {\n return;\n }\n const trackKey = `${messageId}:${recommendationId}`;\n if (trackedRecommendationKeysRef.current.has(trackKey)) {\n return;\n }\n trackedRecommendationKeysRef.current.add(trackKey);\n void trackAssistantEvent('recommendation_shown', {\n message_id: messageId,\n query,\n recommendation_id: recommendationId,\n brand_name: recommendation.recommendation?.creative?.brand_name,\n is_sponsored: true,\n });\n },\n [trackAssistantEvent],\n );\n\n const refreshSuggestionsForResponse = useCallback(\n (\n query: string,\n answer: string,\n sourceLinks?: AssistantSourceLink[],\n relatedItems?: AssistantRelatedItem[],\n recommendation?: PlatformResponse | null,\n followupSuggestions?: Array<{ text: string; type?: Suggestion['type'] }>,\n ) => {\n const generated =\n Array.isArray(followupSuggestions) && followupSuggestions.length\n ? followupSuggestions\n .map((item, index) => {\n const normalizedText = normalizeSuggestionText(item.text || '');\n if (!normalizedText) return null;\n return {\n id: `followup_llm_${index}_${normalizedText.toLowerCase().replace(/[^a-z0-9]+/g, '_')}`,\n text: normalizedText,\n type: item.type || 'information',\n is_sponsored: false,\n } satisfies Suggestion;\n })\n .filter((item): item is Suggestion => Boolean(item))\n .slice(0, 3)\n : buildFollowupSuggestionsFromAnswer(query, answer, sourceLinks, relatedItems);\n const sponsoredSuggestion = buildSponsoredSuggestionFromRecommendation(recommendation);\n const nextSuggestions = sponsoredSuggestion\n ? [sponsoredSuggestion, ...generated.slice(0, 2)]\n : generated.slice(0, 3);\n if (nextSuggestions.length) {\n setResolvedSuggestions(prioritizeSponsoredSuggestions(nextSuggestions));\n }\n },\n [],\n );\n\n const upsertSponsoredFollowupSuggestion = useCallback(\n (\n followupSuggestion: {\n query?: string;\n label?: string;\n engagement_url?: string;\n exposure_url?: string;\n },\n recommendationId: string,\n ) => {\n const suggestionText = normalizeSuggestionText(\n followupSuggestion.query || followupSuggestion.label || '',\n );\n if (!suggestionText || !recommendationId) {\n return;\n }\n\n const sponsoredSuggestion: Suggestion = {\n id: recommendationId,\n text: suggestionText,\n type: 'action',\n is_sponsored: true,\n recommendation: {\n recommendation_id: recommendationId,\n recommendation: {\n creative: {\n follow_up_suggestion: suggestionText,\n },\n },\n tracking: {\n followup_engagement_url: followupSuggestion.engagement_url,\n followup_exposure_url: followupSuggestion.exposure_url,\n },\n } as PlatformResponse,\n };\n\n setResolvedSuggestions((current) => {\n const organic = current.filter((item) => !item.is_sponsored).slice(0, 3);\n return prioritizeSponsoredSuggestions([sponsoredSuggestion, ...organic].slice(0, 4));\n });\n },\n [],\n );\n\n const scrollSubmittedMessageToTop = useCallback(() => {\n const scroller = messagesScrollRef.current;\n const activeMessage = activeSubmittedMessageRef.current;\n if (!scroller || !activeMessage) return false;\n\n const scrollerRect = scroller.getBoundingClientRect();\n const activeMessageRect = activeMessage.getBoundingClientRect();\n const targetTop = Math.max(\n 0,\n scroller.scrollTop + activeMessageRect.top - scrollerRect.top,\n );\n\n scroller.scrollTop = targetTop;\n return true;\n }, []);\n\n // New submissions pin the submitted query to the top of the active\n // message panel while the answer streams below it.\n useLayoutEffect(() => {\n if (shouldAnchorSubmittedMessageRef.current) {\n if (scrollSubmittedMessageToTop()) {\n shouldAnchorSubmittedMessageRef.current = false;\n }\n return;\n }\n\n if (suppressAutoScrollToBottomRef.current) return;\n\n messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' });\n }, [messages, scrollSubmittedMessageToTop]);\n\n useLayoutEffect(() => {\n if (!isAdSlotSurface || isAdSlotOverlayActive) return;\n const root = adSlotRootRef.current;\n if (!root) return;\n\n const mountNode = root.closest('.admesh-publisher-assistant-reactMount') as HTMLElement | null;\n const nextHeight = adSlotHeightCss;\n\n [root, mountNode].forEach((node) => {\n if (!node) return;\n node.style.width = adSlotWidthCss;\n node.style.maxWidth = adSlotWidthCss;\n node.style.height = nextHeight;\n node.style.maxHeight = nextHeight;\n node.style.overflow = 'hidden';\n node.style.boxSizing = 'border-box';\n node.dataset.admeshAdSlotExpanded = shouldExpandAdSlot ? 'true' : 'false';\n });\n\n const host = mountNode?.parentElement;\n if (host && host !== document.body && host !== document.documentElement) {\n host.style.width = adSlotWidthCss;\n host.style.maxWidth = adSlotWidthCss;\n host.style.height = nextHeight;\n host.style.maxHeight = nextHeight;\n host.style.overflow = 'hidden';\n host.style.boxSizing = 'border-box';\n }\n }, [adSlotHeightCss, adSlotWidthCss, isAdSlotOverlayActive, isAdSlotSurface, shouldExpandAdSlot]);\n\n useEffect(() => {\n if (propSuggestions && propSuggestions.length) {\n setResolvedSuggestions(propSuggestions);\n return;\n }\n if (contextSuggestions && contextSuggestions.length) {\n setResolvedSuggestions((currentSuggestions) =>\n mergeSuggestionsPreservingOrganic(currentSuggestions, contextSuggestions)\n );\n }\n }, [propSuggestions, contextSuggestions]);\n\n useEffect(() => {\n if (variant !== 'default') return;\n\n if (!suggestionsLoader) return;\n let cancelled = false;\n suggestionsLoader()\n .then((items) => {\n if (!cancelled && Array.isArray(items) && items.length) {\n setResolvedSuggestions(items);\n }\n })\n .catch((loadError) => {\n console.warn('[AdMeshIntentAssistant] Failed to load suggestions', loadError);\n });\n return () => {\n cancelled = true;\n };\n }, [suggestionsLoader, variant]);\n\n useEffect(() => {\n if (!isLoading) {\n setGenerationElapsedSec(0);\n generationStartedAtRef.current = null;\n return;\n }\n\n if (generationStartedAtRef.current == null) {\n generationStartedAtRef.current = typeof performance !== 'undefined' ? performance.now() : Date.now();\n }\n\n const tick = () => {\n const startedAt = generationStartedAtRef.current;\n if (startedAt == null) {\n return;\n }\n const now = typeof performance !== 'undefined' ? performance.now() : Date.now();\n setGenerationElapsedSec(Math.floor((now - startedAt) / 1000));\n };\n\n tick();\n const interval = window.setInterval(tick, 1000);\n return () => window.clearInterval(interval);\n }, [isLoading]);\n\n useEffect(() => {\n if (!isLoading || variant !== 'default') {\n setLoadingLabelIndex(0);\n return;\n }\n const interval = window.setInterval(() => {\n setLoadingLabelIndex((prev) => Math.min(prev + 1, 7));\n }, 3000);\n return () => window.clearInterval(interval);\n }, [isLoading, variant]);\n\n useEffect(() => {\n if (loadedTrackedRef.current || !sdk || !sessionId) {\n return;\n }\n loadedTrackedRef.current = true;\n void trackAssistantEvent('assistant_loaded', {\n metadata: {\n layout,\n surface,\n variant,\n default_open: defaultOpen || autoOpen,\n },\n });\n }, [autoOpen, defaultOpen, layout, sdk, sessionId, surface, trackAssistantEvent, variant]);\n\n // Handle open state changes\n const handleOpenChange = useCallback((newOpen: boolean) => {\n if (isControlled) {\n onOpenChange?.(newOpen);\n } else {\n setInternalOpen(newOpen);\n }\n \n if (newOpen) {\n void trackAssistantEvent('assistant_opened', {\n metadata: {\n layout,\n surface,\n ad_slot_behavior: adSlotBehavior,\n variant,\n expanded: isExpanded,\n },\n });\n onOpen?.();\n } else {\n onClose?.();\n }\n }, [isControlled, isExpanded, layout, onOpenChange, onOpen, onClose, surface, trackAssistantEvent, variant]);\n\n // Handle opening/closing\n const handleOpenClick = useCallback(() => {\n handleOpenChange(true);\n }, [handleOpenChange]);\n\n const handleCloseClick = useCallback(() => {\n handleOpenChange(false);\n }, [handleOpenChange]);\n\n const handleToggleExpand = useCallback(() => {\n setIsExpanded(prev => !prev);\n }, []);\n\n // Call backend API for assistant response with streaming using SDK\n const callAssistantAPI = useCallback(async (\n message: string,\n messageId?: string,\n onContentChunk?: (content: string) => void,\n onStreamStart?: () => void,\n sponsoredRecommendation?: PlatformResponse | null,\n signal?: AbortSignal,\n conversationHistory?: Array<{ role: 'user' | 'assistant'; content: string }>,\n ) => {\n if (!sdk) {\n console.warn('[AdMeshIntentAssistant] SDK not available - using fallback response');\n // Return a fallback response when SDK is not available\n return {\n text: \"I'm a demo assistant. The SDK is not properly configured, but I can still help with suggestions! Try clicking on one of the suggested questions above.\",\n };\n }\n \n try {\n if (connectedDelegationSession) {\n await refreshDelegationActivity('turn_started', {\n source: 'publisher_assistant',\n recommendation_id: connectedDelegationSession.recommendation_id,\n }).catch((activityError) => {\n console.warn('[AdMeshIntentAssistant] Failed to report delegation turn_started', activityError);\n });\n }\n\n // Use SDK to make the chat assistant API call\n const response = await fetch(`${sdk.getApiBaseUrl()}/api/chat/assistant`, {\n method: 'POST',\n signal,\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'text/plain',\n 'Cache-Control': 'no-cache',\n 'Authorization': `Bearer ${apiKey}`,\n },\n body: JSON.stringify({\n message,\n session_id: sessionId || 'default-session',\n message_id: messageId,\n user_id: userId,\n context: {\n timestamp: new Date().toISOString(),\n source: 'admesh-ui-sdk',\n page_context: getAssistantPageContext(analyticsPageUrl),\n conversation_history: conversationHistory,\n sponsored_recommendation: sponsoredRecommendation?.recommendation_id\n ? {\n recommendation_id: sponsoredRecommendation.recommendation_id,\n brand_name: sponsoredRecommendation.recommendation?.creative?.brand_name,\n }\n : undefined,\n active_delegation_session: connectedDelegationSession\n ? {\n delegation_session_id: connectedDelegationSession.delegation_session_id,\n recommendation_id: connectedDelegationSession.recommendation_id,\n session_id: connectedDelegationSession.session_id,\n brand_name: connectedDelegationSession.brand_name,\n mcp_endpoint: connectedDelegationSession.mcp_endpoint,\n status: connectedDelegationSession.status,\n }\n : undefined,\n }\n }),\n });\n\n if (!response.ok) {\n throw new Error(`API request failed: ${response.status} ${response.statusText}`);\n }\n\n // Handle streaming response\n const reader = response.body?.getReader();\n const decoder = new TextDecoder();\n \n if (!reader) {\n throw new Error('Response body is not readable');\n }\n\n let fullResponse = '';\n let finalSourceLinks: AssistantSourceLink[] | undefined;\n let finalRelatedItems: AssistantRelatedItem[] | undefined;\n let finalFollowupSuggestions: Array<{ text: string; type?: Suggestion['type'] }> | undefined;\n let finalUsedCapability: string | undefined;\n let finalResponseTimeMs: number | undefined;\n \n const processStream = async () => {\n try {\n while (true) {\n const { done, value } = await reader.read();\n \n if (done) break;\n \n const chunk = decoder.decode(value, { stream: true });\n const lines = chunk.split('\\n');\n \n for (const line of lines) {\n if (line.startsWith('data: ')) {\n const data = line.slice(6); // Remove 'data: ' prefix\n \n if (data.trim() === '[DONE]') {\n if (connectedDelegationSession) {\n void refreshDelegationActivity('turn_completed', {\n source: 'publisher_assistant',\n recommendation_id: connectedDelegationSession.recommendation_id,\n }).catch((activityError) => {\n console.warn('[AdMeshIntentAssistant] Failed to report delegation turn_completed', activityError);\n });\n }\n return {\n text: fullResponse,\n source_links: finalSourceLinks,\n related_items: finalRelatedItems,\n followup_suggestions: finalFollowupSuggestions,\n used_capability: finalUsedCapability,\n response_time_ms: finalResponseTimeMs,\n };\n }\n \n try {\n const parsedData = JSON.parse(data);\n \n switch (parsedData.type) {\n case 'content': {\n const content = parsedData.content || '';\n fullResponse += content;\n onContentChunk?.(content);\n break;\n }\n \n case 'final': {\n fullResponse = parsedData.reply || fullResponse;\n finalSourceLinks = Array.isArray(parsedData.source_links) ? parsedData.source_links : undefined;\n finalRelatedItems = Array.isArray(parsedData.related_items) ? parsedData.related_items : undefined;\n finalFollowupSuggestions = Array.isArray(parsedData.followup_suggestions) ? parsedData.followup_suggestions : undefined;\n finalUsedCapability = typeof parsedData.used_capability === 'string' ? parsedData.used_capability : finalUsedCapability;\n finalResponseTimeMs =\n typeof parsedData.response_time_ms === 'number' ? parsedData.response_time_ms : finalResponseTimeMs;\n break;\n }\n\n case 'followup_suggestions': {\n finalFollowupSuggestions = Array.isArray(parsedData.followup_suggestions)\n ? parsedData.followup_suggestions\n : finalFollowupSuggestions;\n break;\n }\n \n case 'error':\n throw new Error(parsedData.message || 'Unknown streaming error');\n \n case 'session_start':\n onStreamStart?.();\n console.log('Session started:', parsedData.session_id);\n break;\n }\n } catch (parseError) {\n console.warn('Failed to parse streaming chunk:', data);\n continue;\n }\n }\n }\n }\n } catch (error) {\n if (signal?.aborted) {\n return {\n text: fullResponse,\n source_links: finalSourceLinks,\n related_items: finalRelatedItems,\n followup_suggestions: finalFollowupSuggestions,\n used_capability: finalUsedCapability,\n response_time_ms: finalResponseTimeMs,\n error: 'aborted',\n };\n }\n console.error('Stream processing error:', error);\n throw error;\n } finally {\n reader.releaseLock();\n }\n \n return {\n text: fullResponse,\n source_links: finalSourceLinks,\n related_items: finalRelatedItems,\n followup_suggestions: finalFollowupSuggestions,\n used_capability: finalUsedCapability,\n response_time_ms: finalResponseTimeMs,\n };\n };\n \n return await processStream();\n \n } catch (error) {\n if (signal?.aborted) {\n return {\n text: '',\n error: 'aborted',\n };\n }\n console.error('Error calling assistant API:', error);\n // Fallback to basic response if API fails\n return {\n text: \"I'm having trouble connecting to my services right now. Please try again in a moment.\",\n error: error instanceof Error ? error.message : 'request_failed',\n };\n }\n }, [sdk, sessionId, apiKey, userId, connectedDelegationSession, refreshDelegationActivity]);\n\n const handleStopGeneration = useCallback(() => {\n const controller = generationAbortRef.current;\n if (!controller || controller.signal.aborted) return;\n controller.abort();\n setIsLoading(false);\n currentSponsoredSuggestionRef.current = null;\n currentMessageIsSponsored.current = false;\n const activeAssistantMessageId = activeAssistantMessageIdRef.current;\n if (activeAssistantMessageId) {\n setMessages(prev => prev.map(msg =>\n msg.id === activeAssistantMessageId && !msg.content.trim()\n ? { ...msg, content: 'Generation stopped.' }\n : msg\n ));\n }\n }, []);\n\n // Handle message sending with streaming\n const handleSendMessage = useCallback(async (message: string) => {\n if (!message.trim() || isLoading) return;\n const startedAt = typeof performance !== 'undefined' ? performance.now() : Date.now();\n const normalizedMessage = message.trim();\n const userMessageId = Date.now().toString();\n const generationController = new AbortController();\n const activeSponsoredSuggestion = currentSponsoredSuggestionRef.current;\n const activeSponsoredRecommendation = activeSponsoredSuggestion?.recommendation || null;\n const conversationHistory = messages\n .filter((msg) => (msg.role === 'user' || msg.role === 'assistant') && msg.content.trim())\n .slice(-6)\n .map((msg) => ({\n role: msg.role as 'user' | 'assistant',\n content: msg.content.trim().slice(0, 1200),\n }));\n\n generationAbortRef.current = generationController;\n activeAssistantMessageIdRef.current = null;\n activeSubmittedMessageIdRef.current = userMessageId;\n shouldAnchorSubmittedMessageRef.current = true;\n suppressAutoScrollToBottomRef.current = true;\n currentSponsoredSuggestionRef.current = null;\n setResolvedSuggestions((current) => current.some((suggestion) => suggestion.is_sponsored)\n ? current.filter((suggestion) => !suggestion.is_sponsored)\n : current\n );\n\n // Clear any previous errors\n setError(null);\n\n const userMessage: ChatMessage = {\n id: userMessageId,\n role: 'user',\n content: normalizedMessage,\n timestamp: new Date(),\n };\n\n void trackAssistantEvent('query_submitted', {\n message_id: userMessageId,\n query: normalizedMessage,\n });\n\n setMessages(prev => [...prev, userMessage]);\n setInputValue('');\n setIsLoading(true);\n\n if (variant === 'default' && queryHandler) {\n try {\n const assistantMessageId = (Date.now() + 1).toString();\n const initialAssistantMessage: RenderMessage = {\n id: assistantMessageId,\n role: 'assistant',\n content: '',\n timestamp: new Date(),\n recommendations: [],\n userQuery: message,\n initialRecommendation: null,\n };\n\n if (currentMessageIsSponsored.current) {\n setSponsoredClickedMessages(prev => new Set([...prev, assistantMessageId]));\n currentMessageIsSponsored.current = false;\n }\n\n setMessages(prev => [...prev, initialAssistantMessage]);\n activeAssistantMessageIdRef.current = assistantMessageId;\n\n const response = await queryHandler(normalizedMessage, {\n sponsoredSuggestion: activeSponsoredSuggestion,\n });\n if (generationController.signal.aborted) {\n currentSponsoredSuggestionRef.current = null;\n return;\n }\n const recommendation =\n response.recommendation ||\n activeSponsoredRecommendation ||\n null;\n\n console.log('[AdMeshIntentAssistant] Query handler completed:', {\n query: message,\n hasResponseRecommendation: !!response.recommendation,\n hasSponsoredSuggestionRecommendation: !!activeSponsoredRecommendation,\n finalRecommendationId: recommendation?.recommendation_id,\n });\n\n setMessages(prev => prev.map(msg =>\n msg.id === assistantMessageId\n ? {\n ...msg,\n content: response.answer,\n sourceLinks: response.source_links,\n relatedItems: response.related_items,\n initialRecommendation: recommendation,\n responseTimeMs:\n (typeof performance !== 'undefined' ? performance.now() : Date.now()) - startedAt,\n }\n : msg\n ));\n refreshSuggestionsForResponse(\n normalizedMessage,\n response.answer,\n response.source_links,\n response.related_items,\n response.recommendation || null,\n response.followup_suggestions,\n );\n void trackAssistantEvent('answer_completed', {\n message_id: assistantMessageId,\n query: normalizedMessage,\n recommendation_id: recommendation?.recommendation_id,\n brand_name: recommendation?.recommendation?.creative?.brand_name,\n latency_ms:\n (typeof performance !== 'undefined' ? performance.now() : Date.now()) - startedAt,\n status: 'completed',\n metadata: {\n variant,\n source: 'query_handler',\n },\n });\n currentSponsoredSuggestionRef.current = null;\n } catch (queryError) {\n console.error('Error sending message:', queryError);\n const errorMessage = queryError instanceof Error ? queryError.message : 'Unknown error occurred';\n setError(errorMessage);\n const errorResponse: RenderMessage = {\n id: (Date.now() + 1).toString(),\n role: 'assistant',\n content: 'Sorry, I encountered an error. Please try again.',\n timestamp: new Date(),\n };\n setMessages(prev => [...prev, errorResponse]);\n void trackAssistantEvent('answer_failed', {\n query: normalizedMessage,\n status: errorMessage,\n latency_ms:\n (typeof performance !== 'undefined' ? performance.now() : Date.now()) - startedAt,\n metadata: {\n variant,\n source: 'query_handler',\n },\n });\n currentSponsoredSuggestionRef.current = null;\n } finally {\n if (generationAbortRef.current === generationController) {\n generationAbortRef.current = null;\n activeAssistantMessageIdRef.current = null;\n setIsLoading(false);\n }\n }\n return;\n }\n\n // If SDK is not available, still show a response for demo purposes\n if (!sdk) {\n // Simulate a brief loading delay for better UX\n setTimeout(() => {\n if (generationController.signal.aborted) {\n if (generationAbortRef.current === generationController) {\n generationAbortRef.current = null;\n activeAssistantMessageIdRef.current = null;\n }\n return;\n }\n const assistantMessage: ChatMessage = {\n id: (Date.now() + 1).toString(),\n role: 'assistant',\n content: \"I'm a demo assistant. The SDK is not properly configured, but I can still help! Try clicking on the suggested questions above, or check your AdMesh API key configuration.\",\n timestamp: new Date(),\n recommendations: [],\n userQuery: message,\n };\n\n setMessages(prev => [...prev, assistantMessage]);\n if (generationAbortRef.current === generationController) {\n generationAbortRef.current = null;\n activeAssistantMessageIdRef.current = null;\n setIsLoading(false);\n }\n }, 1000);\n return;\n }\n\n try {\n // Create an initial assistant message for streaming\n const assistantMessageId = (Date.now() + 1).toString();\n const sponsoredRecommendationForMessage = activeSponsoredRecommendation;\n const initialAssistantMessage: RenderMessage = {\n id: assistantMessageId,\n role: 'assistant',\n content: '',\n timestamp: new Date(),\n recommendations: [],\n userQuery: message,\n initialRecommendation: sponsoredRecommendationForMessage,\n };\n\n // If this message was triggered by a sponsored suggestion, track it to prevent duplicate recommendations\n if (currentMessageIsSponsored.current) {\n setSponsoredClickedMessages(prev => new Set([...prev, assistantMessageId]));\n currentMessageIsSponsored.current = false; // Reset the flag\n }\n\n setMessages(prev => [...prev, initialAssistantMessage]);\n activeAssistantMessageIdRef.current = assistantMessageId;\n\n // Call the streaming backend API\n const response = await callAssistantAPI(\n normalizedMessage,\n userMessageId,\n // Callback for real-time content updates\n (contentChunk: string) => {\n setMessages(prev => prev.map(msg => \n msg.id === assistantMessageId \n ? { ...msg, content: msg.content + contentChunk }\n : msg\n ));\n },\n () => {\n setIsLoading(true);\n setLoadingLabelIndex(0);\n },\n sponsoredRecommendationForMessage,\n generationController.signal,\n conversationHistory,\n );\n if (generationController.signal.aborted) {\n if (!response.text.trim()) {\n setMessages(prev => prev.map(msg =>\n msg.id === assistantMessageId && !msg.content.trim()\n ? { ...msg, content: 'Generation stopped.' }\n : msg\n ));\n }\n void trackAssistantEvent('answer_failed', {\n message_id: assistantMessageId,\n query: normalizedMessage,\n recommendation_id: sponsoredRecommendationForMessage?.recommendation_id,\n brand_name: sponsoredRecommendationForMessage?.recommendation?.creative?.brand_name,\n latency_ms:\n (typeof performance !== 'undefined' ? performance.now() : Date.now()) - startedAt,\n status: 'aborted',\n metadata: {\n variant,\n source: 'api_chat_assistant',\n },\n });\n currentSponsoredSuggestionRef.current = null;\n return;\n }\n \n // Final update with complete response\n const resolvedResponseTimeMs =\n typeof response.response_time_ms === 'number'\n ? response.response_time_ms\n : (typeof performance !== 'undefined' ? performance.now() : Date.now()) - startedAt;\n\n setMessages(prev => prev.map(msg => \n msg.id === assistantMessageId \n ? {\n ...msg,\n content: response.text,\n sourceLinks: response.source_links,\n relatedItems: response.related_items,\n initialRecommendation: msg.initialRecommendation || sponsoredRecommendationForMessage,\n responseTimeMs: resolvedResponseTimeMs,\n }\n : msg\n ));\n refreshSuggestionsForResponse(\n normalizedMessage,\n response.text,\n response.source_links,\n response.related_items,\n null,\n response.followup_suggestions,\n );\n if (response.error) {\n void trackAssistantEvent('answer_failed', {\n message_id: assistantMessageId,\n query: normalizedMessage,\n recommendation_id: sponsoredRecommendationForMessage?.recommendation_id,\n brand_name: sponsoredRecommendationForMessage?.recommendation?.creative?.brand_name,\n latency_ms:\n (typeof performance !== 'undefined' ? performance.now() : Date.now()) - startedAt,\n status: response.error,\n metadata: {\n variant,\n source: 'api_chat_assistant',\n },\n });\n } else {\n void trackAssistantEvent('answer_completed', {\n message_id: assistantMessageId,\n query: normalizedMessage,\n recommendation_id: sponsoredRecommendationForMessage?.recommendation_id,\n brand_name: sponsoredRecommendationForMessage?.recommendation?.creative?.brand_name,\n used_capability: response.used_capability,\n latency_ms: resolvedResponseTimeMs,\n status: 'completed',\n metadata: {\n variant,\n source: 'api_chat_assistant',\n response_time_ms: resolvedResponseTimeMs,\n },\n });\n }\n currentSponsoredSuggestionRef.current = null;\n \n } catch (error) {\n console.error('Error sending message:', error);\n const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';\n setError(errorMessage);\n \n const errorResponse: ChatMessage = {\n id: (Date.now() + 1).toString(),\n role: 'assistant',\n content: 'Sorry, I encountered an error. Please try again.',\n timestamp: new Date(),\n };\n setMessages(prev => [...prev, errorResponse]);\n void trackAssistantEvent('answer_failed', {\n query: normalizedMessage,\n latency_ms:\n (typeof performance !== 'undefined' ? performance.now() : Date.now()) - startedAt,\n status: errorMessage,\n metadata: {\n variant,\n source: 'api_chat_assistant',\n },\n });\n currentSponsoredSuggestionRef.current = null;\n } finally {\n if (generationAbortRef.current === generationController) {\n generationAbortRef.current = null;\n activeAssistantMessageIdRef.current = null;\n setIsLoading(false);\n }\n }\n }, [isLoading, callAssistantAPI, queryHandler, refreshSuggestionsForResponse, sdk, trackAssistantEvent, variant]);\n\n // Use prop suggestions or fallback to context suggestions\n const suggestions = resolvedSuggestions;\n\n // Check if we have any sponsored suggestions (for onlyShowWhenSponsored logic)\n const hasSponsoredSuggestions = useMemo(\n () => suggestions.some(s => s?.is_sponsored),\n [suggestions]\n );\n\n // Filter suggestions based on the onlyShowWhenSponsored option\n const safeSuggestions = useMemo(\n () => suggestions.filter(\n (suggestion): suggestion is Suggestion => {\n const isValid = Boolean(suggestion && typeof suggestion.id === 'string');\n if (!isValid) return false;\n\n // If onlyShowWhenSponsored is true, only show suggestions if we have at least one sponsored\n if (onlyShowWhenSponsored) {\n // Return all valid suggestions, but only if we have at least one sponsored\n return hasSponsoredSuggestions;\n }\n\n // Otherwise, include all valid suggestions\n return true;\n }\n ),\n [hasSponsoredSuggestions, onlyShowWhenSponsored, suggestions]\n );\n const orderedSuggestions = useMemo(\n () => prioritizeSponsoredSuggestions(safeSuggestions),\n [safeSuggestions]\n );\n const sponsoredCreativeSuggestion = useMemo(\n () => sponsoredCreativePlacement === 'below-input-container' && adsEnabled\n ? orderedSuggestions.find((suggestion) => suggestion.is_sponsored && suggestion.recommendation) ?? null\n : null,\n [adsEnabled, orderedSuggestions, sponsoredCreativePlacement],\n );\n\n // Handle suggestion click\n const handleSuggestionClick = useCallback(async (suggestion: Suggestion) => {\n console.log('[AdMeshIntentAssistant] 🖱️ Suggestion clicked:', {\n text: suggestion.text,\n is_sponsored: suggestion.is_sponsored,\n hasRecommendation: !!suggestion.recommendation,\n recommendationId: suggestion.recommendation?.recommendation_id || undefined,\n hasFollowupEngagementUrl: !!suggestion.recommendation?.tracking?.followup_engagement_url,\n sessionId: sessionId\n });\n\n // Set sponsored flag for the next message immediately\n currentMessageIsSponsored.current = suggestion.is_sponsored || false;\n currentSponsoredSuggestionRef.current = suggestion.is_sponsored ? suggestion : null;\n const suggestionPosition = orderedSuggestions.findIndex((item) => item.id === suggestion.id);\n void trackAssistantEvent('suggestion_clicked', {\n suggestion_id: suggestion.id,\n suggestion_text: suggestion.text,\n suggestion_type: suggestion.type,\n suggestion_position: suggestionPosition >= 0 ? suggestionPosition : undefined,\n is_sponsored: suggestion.is_sponsored,\n recommendation_id: suggestion.recommendation?.recommendation_id,\n brand_name: suggestion.recommendation?.recommendation?.creative?.brand_name,\n query: suggestion.text,\n });\n \n // Send the message immediately for instant response\n handleSendMessage(suggestion.text);\n \n // Fire engagement URL for sponsored suggestions asynchronously (non-blocking)\n if (suggestion.is_sponsored && suggestion.recommendation && sdk) {\n // Use setTimeout to make this non-blocking\n setTimeout(async () => {\n try {\n const followupEngagementUrl = suggestion.recommendation!.tracking?.followup_engagement_url;\n const recommendationId = suggestion.recommendation!.recommendation_id;\n \n console.log('[AdMeshIntentAssistant] 🎯 Preparing to fire sponsored suggestion engagement:', {\n followupEngagementUrl,\n recommendationId,\n sessionId\n });\n \n if (followupEngagementUrl && recommendationId && sessionId) {\n console.log('[AdMeshIntentAssistant] 🎯 Firing sponsored suggestion engagement tracking');\n await sdk.fireFollowupEngagement(followupEngagementUrl, recommendationId, sessionId);\n console.log('[AdMeshIntentAssistant] ✅ Engagement tracking fired successfully');\n \n } else {\n console.warn('[AdMeshIntentAssistant] ⚠️ Missing required data for engagement tracking:', {\n hasFollowupEngagementUrl: !!followupEngagementUrl,\n hasRecommendationId: !!recommendationId,\n hasSessionId: !!sessionId\n });\n }\n } catch (error) {\n console.error('[AdMeshIntentAssistant] Error firing sponsored suggestion engagement:', error);\n // Don't block the user action if engagement tracking fails\n }\n }, 0); // Use setTimeout(0) to make it async but execute immediately\n } else {\n console.log('[AdMeshIntentAssistant] ℹ️ Not a sponsored suggestion or missing data, skipping engagement tracking');\n }\n }, [handleSendMessage, orderedSuggestions, sdk, sessionId, trackAssistantEvent]);\n\n // Position and size styles\n const positionStyle = positionConfig[position];\n const sizeStyle = sizeConfig[size];\n\n // Track suggestion exposure only after the suggestion is actually viewable.\n useEffect(() => {\n suggestionExposureCleanupRef.current.forEach((cleanup) => cleanup());\n suggestionExposureCleanupRef.current = [];\n\n if (typeof window === 'undefined' || typeof IntersectionObserver === 'undefined') {\n return;\n }\n\n orderedSuggestions.forEach((suggestion, index) => {\n const element = suggestionButtonRefs.current.get(suggestion.id);\n if (!element) {\n return;\n }\n\n const exposureKey = `${sessionId || 'anonymous'}:${suggestion.id}:${suggestion.is_sponsored ? 's' : 'o'}`;\n if (trackedSuggestionExposureKeysRef.current.has(exposureKey)) {\n return;\n }\n\n let viewableTimer: ReturnType<typeof setTimeout> | null = null;\n let observer: IntersectionObserver | null = null;\n\n const cleanup = () => {\n if (viewableTimer) {\n clearTimeout(viewableTimer);\n viewableTimer = null;\n }\n observer?.disconnect();\n observer = null;\n };\n\n const fireSuggestionExposure = () => {\n if (trackedSuggestionExposureKeysRef.current.has(exposureKey)) {\n cleanup();\n return;\n }\n\n trackedSuggestionExposureKeysRef.current.add(exposureKey);\n cleanup();\n\n void trackAssistantEvent('suggestion_exposure', {\n suggestion_id: suggestion.id,\n suggestion_text: suggestion.text,\n suggestion_type: suggestion.type,\n suggestion_position: index,\n is_sponsored: suggestion.is_sponsored,\n recommendation_id: suggestion.recommendation?.recommendation_id,\n brand_name: suggestion.recommendation?.recommendation?.creative?.brand_name,\n });\n\n if (sdk && sessionId && suggestion.is_sponsored && suggestion.recommendation) {\n const exposureUrl = suggestion.recommendation.tracking?.followup_exposure_url;\n const recommendationId = suggestion.recommendation.recommendation_id;\n\n if (exposureUrl && recommendationId) {\n console.log('[AdMeshIntentAssistant] 🎯 Firing viewable sponsored suggestion exposure:', {\n exposureUrl,\n recommendationId,\n suggestionText: suggestion.text,\n sessionId\n });\n\n sdk.fireFollowupExposure(exposureUrl, recommendationId, sessionId);\n } else {\n console.warn('[AdMeshIntentAssistant] ⚠️ Missing exposure URL or recommendation ID for sponsored suggestion:', {\n hasExposureUrl: !!exposureUrl,\n hasRecommendationId: !!recommendationId,\n suggestionText: suggestion.text\n });\n }\n }\n };\n\n observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n if (!entry) {\n return;\n }\n\n if (entry.intersectionRatio >= 0.5) {\n if (!viewableTimer) {\n viewableTimer = setTimeout(fireSuggestionExposure, 1000);\n }\n return;\n }\n\n if (viewableTimer) {\n clearTimeout(viewableTimer);\n viewableTimer = null;\n }\n },\n { threshold: [0, 0.25, 0.5, 0.75, 1], rootMargin: '0px' }\n );\n\n observer.observe(element);\n suggestionExposureCleanupRef.current.push(cleanup);\n });\n\n return () => {\n suggestionExposureCleanupRef.current.forEach((cleanup) => cleanup());\n suggestionExposureCleanupRef.current = [];\n };\n }, [orderedSuggestions, sdk, sessionId, trackAssistantEvent, suggestionsOpen]);\n\n // Debug log received suggestions and analysis state\n console.log('[AdMeshIntentAssistant] 📥 Received suggestions:', {\n totalSuggestions: suggestions.length,\n safeSuggestions: safeSuggestions.length,\n isAnalyzingIntent,\n hasIntentError: !!intentError,\n onlyShowWhenSponsored,\n hasSponsoredSuggestions,\n sponsoredCount: suggestions.filter(s => s?.is_sponsored).length,\n nonSponsoredCount: suggestions.filter(s => s && !s?.is_sponsored).length,\n modalShouldAppear: onlyShowWhenSponsored ? hasSponsoredSuggestions : true,\n suggestions: suggestions.map(s => ({\n id: s?.id,\n text: s?.text,\n type: s?.type,\n is_sponsored: s?.is_sponsored,\n hasRecommendation: !!s?.recommendation,\n recommendationId: s?.recommendation?.recommendation_id || undefined,\n hasFollowupEngagementUrl: !!s?.recommendation?.tracking?.followup_engagement_url\n })),\n renderedSuggestions: orderedSuggestions.map(s => ({\n id: s?.id,\n text: s?.text,\n type: s?.type,\n is_sponsored: s?.is_sponsored,\n hasRecommendation: !!s?.recommendation,\n recommendationId: s?.recommendation?.recommendation_id || undefined,\n hasFollowupEngagementUrl: !!s?.recommendation?.tracking?.followup_engagement_url\n }))\n });\n const fontSizes = {\n base: `${16 * fontScale}px`,\n sm: `${14 * fontScale}px`,\n xs: `${12 * fontScale}px`,\n };\n const genericDisclaimer = disclaimerText || 'AI-generated responses may contain errors. Please verify important information independently.';\n const loadingSteps = [\n 'Searching trusted sources...',\n 'Reviewing publisher coverage...',\n 'Checking relevant context...',\n 'Comparing supporting signals...',\n 'Identifying the strongest examples...',\n 'Organizing the most useful details...',\n 'Shaping the response for clarity...',\n 'Preparing the clearest answer...',\n 'Finishing the response...',\n ];\n\n const renderGeneratingIndicator = (options?: {\n compact?: boolean;\n accentColor?: string;\n metaColor?: string;\n includeSteps?: boolean;\n }) => {\n const accent = options?.accentColor || publisherAccent;\n const meta = options?.metaColor || publisherMeta;\n const includeSteps = options?.includeSteps ?? variant === 'default';\n const timerLabel = `${generationElapsedSec}s`;\n const statusLabel = includeSteps\n ? `${loadingSteps[loadingLabelIndex]} (${timerLabel})`\n : `Generating answer... ${timerLabel}`;\n\n return (\n <div\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: options?.compact ? '8px' : '10px',\n color: meta,\n fontSize: options?.compact ? fontSizes.xs : fontSizes.sm,\n }}\n >\n <span\n style={{\n width: options?.compact ? 8 : 9,\n height: options?.compact ? 8 : 9,\n borderRadius: 999,\n background: accent,\n animation: 'admeshPulse 1.4s ease-in-out infinite',\n boxShadow: `0 0 0 0 ${withAlpha(brandPrimary, 0.28)}`,\n flexShrink: 0,\n }}\n />\n <span>{statusLabel}</span>\n </div>\n );\n };\n\n const handleAnswerFeedback = useCallback(\n (message: RenderMessage, helpful: boolean) => {\n if (messageFeedback[message.id]) {\n return;\n }\n\n const feedbackValue: AnswerFeedbackValue = helpful ? 'helpful' : 'not_helpful';\n setMessageFeedback((prev) => ({ ...prev, [message.id]: feedbackValue }));\n void trackAssistantEvent('answer_feedback', {\n message_id: message.id,\n query: message.userQuery,\n status: feedbackValue,\n latency_ms: message.responseTimeMs,\n metadata: {\n helpful,\n },\n });\n },\n [messageFeedback, trackAssistantEvent],\n );\n\n function renderAnswerFooter(message: RenderMessage, options?: { accentColor?: string; metaColor?: string }) {\n if (message.role !== 'assistant' || !message.content.trim()) {\n return null;\n }\n\n if (isLoading && message.id === activeAssistantMessageIdRef.current) {\n return null;\n }\n\n const accent = options?.accentColor || publisherAccent;\n const meta = options?.metaColor || publisherMeta;\n const selectedFeedback = messageFeedback[message.id];\n const hasTiming = typeof message.responseTimeMs === 'number';\n\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '12px',\n marginTop: '10px',\n paddingTop: '10px',\n borderTop: `1px solid ${brandBorder}`,\n flexWrap: 'wrap',\n }}\n >\n <div\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: '8px',\n minWidth: 0,\n flex: '1 1 auto',\n flexWrap: 'wrap',\n }}\n >\n <span style={{ fontSize: fontSizes.xs, color: meta, whiteSpace: 'nowrap' }}>\n {selectedFeedback ? 'Thanks for your feedback' : 'Is this helpful?'}\n </span>\n {!selectedFeedback ? (\n <div style={{ display: 'inline-flex', alignItems: 'center', gap: '6px', flexShrink: 0 }}>\n <button\n type=\"button\"\n aria-label=\"Mark answer as helpful\"\n onClick={() => handleAnswerFeedback(message, true)}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 28,\n height: 28,\n borderRadius: '6px',\n border: `1px solid ${brandBorder}`,\n background: brandSurface,\n color: meta,\n cursor: 'pointer',\n }}\n >\n <ThumbsUp size={14} />\n </button>\n <button\n type=\"button\"\n aria-label=\"Mark answer as not helpful\"\n onClick={() => handleAnswerFeedback(message, false)}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 28,\n height: 28,\n borderRadius: '6px',\n border: `1px solid ${brandBorder}`,\n background: brandSurface,\n color: meta,\n cursor: 'pointer',\n }}\n >\n <ThumbsDown size={14} />\n </button>\n </div>\n ) : (\n <span\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 28,\n height: 28,\n borderRadius: '6px',\n background: withAlpha(accent, 0.12),\n color: accent,\n flexShrink: 0,\n }}\n >\n {selectedFeedback === 'helpful' ? <ThumbsUp size={14} /> : <ThumbsDown size={14} />}\n </span>\n )}\n </div>\n {hasTiming ? (\n <span\n style={{\n fontSize: fontSizes.xs,\n color: meta,\n whiteSpace: 'nowrap',\n flex: '0 1 auto',\n marginLeft: 'auto',\n }}\n >\n Answer Completed in {formatGenerationDurationFromMs(message.responseTimeMs!)}\n </span>\n ) : null}\n </div>\n );\n }\n\n const updateSuggestionScrollState = useCallback(() => {\n const node = suggestionsScrollRef.current;\n if (!node) return;\n const maxScrollLeft = Math.max(0, node.scrollWidth - node.clientWidth);\n setCanScrollSuggestionsLeft(node.scrollLeft > 4);\n setCanScrollSuggestionsRight(node.scrollLeft < maxScrollLeft - 4);\n }, []);\n\n useEffect(() => {\n updateSuggestionScrollState();\n window.addEventListener('resize', updateSuggestionScrollState);\n return () => window.removeEventListener('resize', updateSuggestionScrollState);\n }, [updateSuggestionScrollState, orderedSuggestions.length]);\n\n const scrollSuggestions = useCallback((direction: 'left' | 'right') => {\n const node = suggestionsScrollRef.current;\n if (!node) return;\n node.scrollBy({\n left: direction === 'left' ? -Math.max(160, Math.floor(node.clientWidth * 0.75)) : Math.max(160, Math.floor(node.clientWidth * 0.75)),\n behavior: 'smooth',\n });\n }, []);\n\n const withAlpha = (hex: string | undefined, alpha: number) => {\n if (!hex || !hex.startsWith('#')) return `rgba(15, 23, 42, ${alpha})`;\n const raw = hex.slice(1);\n const full = raw.length === 3 ? raw.split('').map((char) => `${char}${char}`).join('') : raw;\n if (full.length !== 6) return hex;\n const red = parseInt(full.slice(0, 2), 16);\n const green = parseInt(full.slice(2, 4), 16);\n const blue = parseInt(full.slice(4, 6), 16);\n return `rgba(${red}, ${green}, ${blue}, ${alpha})`;\n };\n\n const brandPrimary = theme.primaryColor || '#3F037F';\n const brandSurface = theme.surfaceColor || '#ffffff';\n const brandBackground = theme.backgroundColor || '#eef2ff';\n const brandBorder = theme.borderColor || '#e5e7eb';\n const brandText = theme.textColor || '#111827';\n const brandMuted = theme.textSecondaryColor || '#6b7280';\n const brandAccentSoft = withAlpha(brandPrimary, 0.12);\n const purpleBorderSoft = withAlpha(brandPrimary, 0.24);\n const purpleBorderStrong = withAlpha(brandPrimary, 0.38);\n const publisherSurfaceBg = brandSurface;\n const publisherAccent = brandPrimary;\n const sendButtonTextColor = theme.primaryTextColor || '#ffffff';\n const publisherMuted = brandMuted;\n const publisherMeta = brandMuted;\n const assistantSubtitle = subtitle || 'Publisher Assistant';\n const shouldShowSuggestionSkeletons = isAnalyzingIntent && orderedSuggestions.length === 0 && messages.length === 0;\n const expandedShellBackground = brandSurface;\n const expandedPanelBackground = brandSurface;\n const expandedHeaderBackground = brandSurface;\n const expandedBorder = brandBorder;\n const expandedBorderStrong = brandBorder;\n const expandedShadow = '0 16px 64px rgba(15, 23, 42, 0.14)';\n const expandedMutedText = brandMuted;\n const expandedSubtleText = brandMuted;\n const expandedUserBubble = publisherAccent;\n const expandedAssistantBubble = '#f8fafc';\n const expandedChipBackground = '#f8fafc';\n const expandedChipBorder = 'rgba(15, 23, 42, 0.08)';\n const expandedComposerBackground = brandBackground;\n const expandedComposerShadow = 'none';\n const expandedOverlay = 'rgba(15, 23, 42, 0.18)';\n\n function renderDelegationBanner(mode: 'default' | 'legacy') {\n if (!connectedDelegationSession) {\n return null;\n }\n\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '12px',\n padding: mode === 'default' ? '10px 12px' : '8px 10px',\n borderRadius: mode === 'default' ? '14px' : '12px',\n border: `1px solid ${purpleBorderSoft}`,\n background: withAlpha('#ffffff', 0.9),\n marginBottom: '4px',\n }}\n >\n <div style={{ minWidth: 0 }}>\n <div\n style={{\n color: publisherAccent,\n fontSize: fontSizes.xs,\n fontWeight: 700,\n textTransform: 'uppercase',\n letterSpacing: '0.06em',\n }}\n >\n Agent Connected\n </div>\n <div style={{ color: brandText, fontSize: fontSizes.sm, fontWeight: 600, lineHeight: 1.3 }}>\n {connectedDelegationSession.brand_name} agent is active\n </div>\n </div>\n <button\n type=\"button\"\n onClick={() => {\n void stopDelegationSession('user_stopped', { source: 'publisher_assistant' });\n }}\n style={{\n border: `1px solid ${purpleBorderSoft}`,\n borderRadius: 999,\n background: withAlpha('#ffffff', 0.92),\n color: publisherAccent,\n padding: '7px 12px',\n fontSize: fontSizes.xs,\n fontWeight: 700,\n cursor: 'pointer',\n whiteSpace: 'nowrap',\n }}\n >\n Stop\n </button>\n </div>\n );\n }\n\n function renderExpandedBranding(mode: 'default' | 'legacy', compact = isAdSlotSurface) {\n const mobileExpanded = isMobileViewport && !compact;\n const disclaimerFontSize = compact ? '9px' : mobileExpanded ? '9px' : '11px';\n\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n paddingTop: compact ? '2px' : mode === 'default' ? '2px' : '8px',\n marginTop: compact ? '0' : mode === 'default' ? '4px' : 0,\n flexShrink: 0,\n textAlign: 'center',\n width: '100%',\n }}\n >\n <div\n style={{\n color: expandedSubtleText,\n fontSize: disclaimerFontSize,\n lineHeight: mobileExpanded ? 1.3 : 1.45,\n maxWidth: '100%',\n textAlign: 'center',\n }}\n >\n {genericDisclaimer}\n </div>\n </div>\n );\n }\n\n function renderSuggestionSkeletons(mode: 'publisher' | 'legacy') {\n const skeletonWidths = mode === 'publisher' ? [180, 220, 196] : ['100%', '82%', '68%'];\n if (mode === 'publisher') {\n return (\n <div style={{ display: 'flex', alignItems: 'center', gap: '10px' }}>\n <div\n style={{\n width: 28,\n height: 28,\n borderRadius: '6px',\n background: withAlpha(brandText, 0.06),\n flexShrink: 0,\n }}\n />\n <div\n style={{\n display: 'flex',\n gap: '10px',\n overflow: 'hidden',\n flex: 1,\n }}\n >\n {skeletonWidths.map((width, index) => (\n <div\n key={`suggestion-skeleton-${index}`}\n style={{\n width,\n maxWidth: '100%',\n height: 40,\n borderRadius: '6px',\n background: withAlpha(brandText, 0.06),\n backgroundSize: '200% 100%',\n animation: 'admeshShimmer 1.4s ease-in-out infinite',\n boxShadow: 'none',\n flexShrink: 0,\n }}\n />\n ))}\n </div>\n <div\n style={{\n width: 28,\n height: 28,\n borderRadius: '6px',\n background: withAlpha(brandText, 0.06),\n flexShrink: 0,\n }}\n />\n </div>\n );\n }\n\n return (\n <div\n aria-hidden=\"true\"\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: mode === 'publisher' ? '10px' : '12px',\n }}\n >\n {skeletonWidths.map((width, index) => (\n <div\n key={`suggestion-skeleton-${index}`}\n style={{\n width,\n maxWidth: '100%',\n height: mode === 'publisher' ? 40 : 52,\n borderRadius: 999,\n background: `linear-gradient(90deg, ${withAlpha(brandPrimary, 0.08)} 0%, ${withAlpha(brandPrimary, 0.18)} 50%, ${withAlpha(brandPrimary, 0.08)} 100%)`,\n backgroundSize: '200% 100%',\n animation: 'admeshShimmer 1.4s ease-in-out infinite',\n boxShadow: mode === 'publisher' ? `0 8px 22px ${withAlpha(brandPrimary, 0.08)}` : 'none',\n }}\n />\n ))}\n </div>\n );\n }\n\n function renderPublisherSuggestions(compact = isAdSlotSurface) {\n if (isLoading) return null;\n if (shouldShowSuggestionSkeletons) {\n return renderSuggestionSkeletons('publisher');\n }\n if (!orderedSuggestions.length) return null;\n const ultraCompact = compact && isUltraCompactAdSlot;\n const visibleSuggestions = orderedSuggestions.slice(0, maxSuggestions);\n if (suggestionStyle === 'stacked') {\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: compact ? '6px' : '8px',\n flexShrink: 0,\n overflowY: 'auto',\n maxHeight: compact ? '240px' : undefined,\n paddingRight: compact ? '2px' : 0,\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n }}\n >\n {visibleSuggestions.map((suggestion) => (\n <button\n key={suggestion.id}\n className=\"admesh-publisher-suggestion\"\n data-admesh-sponsored={suggestion.is_sponsored ? \"true\" : undefined}\n ref={setSuggestionButtonRef(suggestion.id)}\n onClick={() => {\n if (variant === 'default') {\n setIsExpanded(true);\n if (layout === 'floating') {\n handleOpenChange(true);\n }\n }\n handleSuggestionClick(suggestion);\n }}\n type=\"button\"\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '8px',\n width: '100%',\n minWidth: 0,\n borderRadius: '8px',\n border: `1px solid ${suggestion.is_sponsored ? brandPrimary : brandBorder}`,\n background: suggestion.is_sponsored ? brandPrimary : brandSurface,\n color: suggestion.is_sponsored ? sendButtonTextColor : brandText,\n padding: compact ? '8px 10px' : '10px 14px',\n fontSize: compact ? '12px' : '13px',\n fontWeight: 500,\n lineHeight: 1.25,\n textAlign: 'left',\n boxShadow: 'none',\n cursor: 'pointer',\n }}\n >\n <span style={{ minWidth: 0 }}>{suggestion.text}</span>\n {adsEnabled && suggestion.is_sponsored && (\n <span\n style={{\n flexShrink: 0,\n borderRadius: '6px',\n background: withAlpha('#ffffff', 0.18),\n padding: '2px 6px',\n fontSize: '10px',\n fontWeight: 700,\n }}\n >\n Ad\n </span>\n )}\n </button>\n ))}\n </div>\n );\n }\n return (\n <div style={{ display: 'flex', alignItems: 'center', gap: ultraCompact ? '4px' : isMobileLeaderboardAdSlot ? '5px' : compact ? '6px' : '10px', flexShrink: 0 }}>\n {!ultraCompact && (\n <button\n type=\"button\"\n onClick={() => scrollSuggestions('left')}\n disabled={!canScrollSuggestionsLeft}\n aria-label=\"Scroll suggestions left\"\n style={{\n width: isMobileLeaderboardAdSlot ? 20 : compact ? 24 : 28,\n height: isMobileLeaderboardAdSlot ? 20 : compact ? 24 : 28,\n borderRadius: '6px',\n border: `1px solid ${brandBorder}`,\n background: brandSurface,\n color: '#6b7280',\n fontSize: isMobileLeaderboardAdSlot ? '13px' : undefined,\n lineHeight: 1,\n cursor: canScrollSuggestionsLeft ? 'pointer' : 'default',\n opacity: canScrollSuggestionsLeft ? 1 : 0.55,\n }}\n >\n ‹\n </button>\n )}\n <div\n ref={suggestionsScrollRef}\n onScroll={updateSuggestionScrollState}\n style={{\n display: 'flex',\n gap: ultraCompact ? '4px' : isMobileLeaderboardAdSlot ? '5px' : compact ? '6px' : '10px',\n overflowX: 'auto',\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n flex: 1,\n }}\n >\n {visibleSuggestions.map((suggestion) => (\n <button\n key={suggestion.id}\n className=\"admesh-publisher-suggestion\"\n data-admesh-sponsored={suggestion.is_sponsored ? \"true\" : undefined}\n ref={setSuggestionButtonRef(suggestion.id)}\n onClick={() => {\n if (variant === 'default') {\n setIsExpanded(true);\n if (layout === 'floating') {\n handleOpenChange(true);\n }\n }\n handleSuggestionClick(suggestion);\n }}\n type=\"button\"\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: ultraCompact ? '4px' : isMobileLeaderboardAdSlot ? '5px' : '8px',\n whiteSpace: 'nowrap',\n borderRadius: '6px',\n border: `1px solid ${suggestion.is_sponsored ? brandPrimary : brandBorder}`,\n background: suggestion.is_sponsored ? brandPrimary : brandSurface,\n color: suggestion.is_sponsored ? sendButtonTextColor : brandText,\n padding: ultraCompact ? '4px 8px' : isMobileLeaderboardAdSlot ? '5px 8px' : compact ? '7px 10px' : '8px 14px',\n fontSize: ultraCompact ? '10px' : isMobileLeaderboardAdSlot ? '11px' : compact ? '12px' : '13px',\n fontWeight: 500,\n lineHeight: ultraCompact ? 1 : isMobileLeaderboardAdSlot ? 1.1 : undefined,\n boxShadow: 'none',\n cursor: 'pointer',\n }}\n >\n <span>{suggestion.text}</span>\n {adsEnabled && suggestion.is_sponsored && (\n <sup style={{ fontSize: '10px', opacity: 0.9 }}>Ad</sup>\n )}\n </button>\n ))}\n </div>\n {!ultraCompact && (\n <button\n type=\"button\"\n onClick={() => scrollSuggestions('right')}\n disabled={!canScrollSuggestionsRight}\n aria-label=\"Scroll suggestions right\"\n style={{\n width: isMobileLeaderboardAdSlot ? 20 : compact ? 24 : 28,\n height: isMobileLeaderboardAdSlot ? 20 : compact ? 24 : 28,\n borderRadius: '6px',\n border: `1px solid ${brandBorder}`,\n background: brandSurface,\n color: '#6b7280',\n fontSize: isMobileLeaderboardAdSlot ? '13px' : undefined,\n lineHeight: 1,\n cursor: canScrollSuggestionsRight ? 'pointer' : 'default',\n opacity: canScrollSuggestionsRight ? 1 : 0.55,\n }}\n >\n ›\n </button>\n )}\n </div>\n );\n }\n\n function renderSponsoredCreativeCard(compact = isAdSlotSurface) {\n if (compact || !sponsoredCreativeSuggestion?.recommendation) return null;\n\n const messageId = `publisher-sponsored-creative-${sponsoredCreativeSuggestion.id}`;\n return (\n <div data-admesh-ad-content style={{ marginTop: '2px' }}>\n <AdMeshRecommendations\n messageId={messageId}\n query={sponsoredCreativeSuggestion.text}\n initialRecommendation={sponsoredCreativeSuggestion.recommendation}\n onFollowupDetected={upsertSponsoredFollowupSuggestion}\n onRecommendationsShown={(shownMessageId, recommendation) => {\n handleRecommendationShown(shownMessageId, recommendation, sponsoredCreativeSuggestion.text);\n }}\n onError={(recommendationError) => {\n console.error('[AdMeshIntentAssistant] Sponsored creative error:', recommendationError);\n }}\n />\n </div>\n );\n }\n\n function renderSourceLinks(message: RenderMessage) {\n if (message.relatedItems?.length) return null;\n if (!message.sourceLinks?.length) return null;\n return (\n <div style={{ display: 'flex', flexWrap: 'wrap', gap: '8px', marginTop: '16px' }}>\n <div style={{ width: '100%', fontSize: '11px', fontWeight: 600, color: brandMuted }}>Sources</div>\n {message.sourceLinks.map((link) => (\n <a\n key={`${message.id}-${link.url}`}\n href={link.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={() => {\n void trackAssistantEvent('source_link_clicked', {\n message_id: message.id,\n query: message.userQuery,\n metadata: {\n source_title: link.title,\n source_url: link.url,\n },\n });\n }}\n style={{\n color: publisherAccent,\n fontSize: fontSizes.xs,\n textDecoration: 'none',\n borderBottom: `1px solid ${withAlpha(brandPrimary, 0.18)}`,\n }}\n >\n {link.title || link.url} <ArrowUpRight size={12} style={{ display: 'inline', verticalAlign: 'middle' }} aria-hidden=\"true\" />\n </a>\n ))}\n </div>\n );\n }\n\n function renderRelatedItems(message: RenderMessage, compact = isAdSlotSurface) {\n if (!message.relatedItems?.length) return null;\n return (\n <div style={{ marginTop: '14px' }}>\n <div style={{ fontSize: '11px', fontWeight: 600, color: brandMuted, marginBottom: '8px' }}>{relatedItemsHeading}</div>\n <div\n style={{\n display: 'flex',\n gap: compact ? '8px' : '10px',\n overflowX: 'auto',\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n padding: '2px 2px 6px',\n maxWidth: '100%',\n scrollSnapType: 'x proximity',\n }}\n >\n {message.relatedItems.slice(0, 4).map((item) => (\n <a\n key={`${message.id}-${item.url}`}\n className=\"admesh-publisher-source\"\n href={item.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={() => {\n void trackAssistantEvent('source_link_clicked', {\n message_id: message.id,\n query: message.userQuery,\n metadata: {\n source_title: item.title,\n source_url: item.url,\n source_publisher: item.publisher,\n source_type: 'related_item',\n },\n });\n }}\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: compact ? '6px' : '10px',\n padding: compact ? '10px' : '14px',\n borderRadius: '8px',\n textDecoration: 'none',\n color: brandText,\n border: `1px solid ${brandBorder}`,\n background: brandSurface,\n boxShadow: 'none',\n flex: compact\n ? '0 0 min(220px, calc(100% - 8px))'\n : '0 0 min(250px, calc(100% - 16px))',\n minWidth: 0,\n maxWidth: compact ? '220px' : '250px',\n flexShrink: 0,\n scrollSnapAlign: 'start',\n boxSizing: 'border-box',\n }}\n >\n <div\n style={{\n fontSize: compact ? '12px' : '14px',\n fontWeight: 650,\n lineHeight: 1.35,\n color: brandText,\n overflowWrap: 'anywhere',\n }}\n >\n {item.title || item.url}\n </div>\n {item.publisher && (\n <div\n style={{\n fontSize: compact ? '11px' : '12px',\n color: brandMuted,\n lineHeight: 1.4,\n overflowWrap: 'anywhere',\n }}\n >\n {item.publisher}\n </div>\n )}\n </a>\n ))}\n </div>\n </div>\n );\n }\n\n function renderPublisherMessages(compact = isAdSlotSurface) {\n const messageFontSize = compact ? '13px' : '15px';\n return (\n <div\n ref={messagesScrollRef}\n style={{\n flex: compact ? '1 1 0' : 1,\n minHeight: 0,\n maxHeight: '100%',\n overflowY: 'auto',\n overscrollBehavior: 'contain',\n WebkitOverflowScrolling: 'touch',\n scrollbarWidth: 'thin',\n padding: compact ? '0 2px 4px' : isExpanded ? '16px 16px 8px' : 0,\n }}\n >\n {messages.map((message) => {\n const isActiveSubmittedMessage =\n message.role === 'user' &&\n message.id === activeSubmittedMessageIdRef.current;\n\n return (\n <div\n key={message.id}\n ref={isActiveSubmittedMessage ? activeSubmittedMessageRef : undefined}\n style={{ marginBottom: compact ? '16px' : '28px', textAlign: message.role === 'user' ? 'right' : 'left' }}\n >\n {(() => {\n const answerHasStarted = Boolean(message.content.trim());\n const shouldShowRecommendations = answerHasStarted || !isLoading;\n\n return (\n <>\n <div\n style={{\n display: message.role === 'assistant' ? 'block' : 'inline-block',\n width: message.role === 'assistant' ? '100%' : undefined,\n maxWidth: message.role === 'assistant' ? '100%' : '76%',\n padding: message.role === 'assistant' ? '4px 6px 4px 2px' : '10px 14px',\n borderRadius: message.role === 'assistant' ? 0 : '8px',\n background: message.role === 'user' ? withAlpha(brandText, 0.05) : 'transparent',\n color: brandText,\n boxShadow: 'none',\n border: 'none',\n fontSize: message.role === 'assistant' ? messageFontSize : compact ? '12px' : '13px',\n lineHeight: message.role === 'assistant' ? 1.62 : 1.4,\n }}\n >\n {message.role === 'assistant' ? (\n message.content.trim() ? (\n <CustomMarkdownRenderer content={message.content} theme={{ ...theme, textColor: brandText }} fontSize={messageFontSize} />\n ) : isLoading && message.id === activeAssistantMessageIdRef.current ? (\n renderGeneratingIndicator({ includeSteps: true })\n ) : null\n ) : (\n <p style={{ margin: 0, color: brandText }}>{message.content}</p>\n )}\n {message.role === 'assistant' && renderSourceLinks(message)}\n {message.role === 'assistant' && renderRelatedItems(message, compact)}\n {message.role === 'assistant' && renderAnswerFooter(message)}\n {message.role === 'assistant' && shouldShowRecommendations && sponsoredClickedMessages.has(message.id) && message.initialRecommendation && (\n <div data-admesh-ad-content style={{ marginTop: '14px' }}>\n <AdMeshRecommendations\n messageId={message.id}\n query={message.userQuery}\n initialRecommendation={message.initialRecommendation}\n onFollowupDetected={upsertSponsoredFollowupSuggestion}\n onRecommendationsShown={(messageId, recommendation) => {\n handleRecommendationShown(messageId, recommendation, message.userQuery);\n }}\n onError={(recommendationError) => {\n console.error('[AdMeshIntentAssistant] Recommendation error:', recommendationError);\n }}\n />\n </div>\n )}\n {message.role === 'assistant' && shouldShowRecommendations && !sponsoredClickedMessages.has(message.id) && (message.initialRecommendation || canUseDirectAdMeshFetch) && (\n <div data-admesh-ad-content style={{ marginTop: '14px' }}>\n <AdMeshRecommendations\n messageId={message.id}\n query={message.userQuery}\n initialRecommendation={message.initialRecommendation || undefined}\n onFollowupDetected={upsertSponsoredFollowupSuggestion}\n onRecommendationsShown={(messageId, recommendation) => {\n handleRecommendationShown(messageId, recommendation, message.userQuery);\n }}\n onError={(recommendationError) => {\n console.error('[AdMeshIntentAssistant] Recommendation error:', recommendationError);\n }}\n />\n </div>\n )}\n </div>\n </>\n );\n })()}\n </div>\n );\n })}\n\n {error && (\n <div role=\"alert\" style={{ color: brandText, fontSize: fontSizes.sm, border: `1px solid ${brandBorder}`, borderLeft: '3px solid #b45309', borderRadius: '6px', padding: '12px' }}>Unable to complete the answer. Please try again.</div>\n )}\n\n <div ref={messagesEndRef} />\n </div>\n );\n }\n\n if (variant === 'default') {\n const expandedOverlayBackdropStyle: CSSProperties = {\n position: 'fixed',\n inset: 0,\n background: expandedOverlay,\n backdropFilter: 'blur(2px)',\n zIndex: 2147483000,\n };\n\n function renderExpandedOverlayPortal(panel: ReactNode) {\n const overlayLayout = getExpandedOverlayLayout(isMobileViewport);\n return createPortal(\n <>\n <div style={expandedOverlayBackdropStyle} />\n <div style={overlayLayout.shell}>{panel}</div>\n </>,\n document.body,\n );\n }\n\n function renderTeaser(forOverlay = false) {\n const compact = isAdSlotCompactLayout(forOverlay);\n // Keep the article placement compact while its conversation is portaled.\n const panelExpanded = forOverlay || (compact && isExpanded);\n // Input dropdown preferences apply only to the collapsed teaser.\n const useInputSuggestions = !panelExpanded && suggestionTrigger === 'input';\n const ultraCompact = compact && !panelExpanded && isUltraCompactAdSlot;\n const showMessagesInTeaser =\n panelExpanded && !(isAdSlotSurface && adSlotBehavior === 'expand' && !forOverlay && isAdSlotOverlayActive);\n const expandedOverlayLayout = panelExpanded ? getExpandedOverlayLayout(isMobileViewport) : null;\n const mobileExpandedOverlay = Boolean(expandedOverlayLayout && isMobileViewport && !compact);\n const teaserPanelWidth = compact\n ? adSlotWidthCss\n : expandedOverlayLayout\n ? expandedOverlayLayout.panelWidth\n : layout === 'inline'\n ? '100%'\n : 'min(420px, calc(100vw - 32px))';\n const teaserPanelHeight = compact\n ? adSlotHeightCss\n : expandedOverlayLayout\n ? expandedOverlayLayout.panelHeight\n : 'auto';\n const teaserPanelMaxWidth = compact ? adSlotWidthCss : expandedOverlayLayout?.panelMaxWidth ?? '100%';\n const teaserPanelMaxHeight = compact ? adSlotHeightCss : expandedOverlayLayout?.panelMaxHeight;\n const showTeaserHeader = showHeader && !ultraCompact && panelExpanded;\n\n return (\n <div\n className=\"admesh-publisher-panel\"\n data-compact={compact ? 'true' : 'false'}\n style={{\n ['--publisher-accent' as string]: publisherAccent,\n color: brandText,\n width: teaserPanelWidth,\n maxWidth: teaserPanelMaxWidth,\n height: teaserPanelHeight,\n maxHeight: teaserPanelMaxHeight,\n boxSizing: 'border-box',\n display: 'flex',\n flexDirection: 'column',\n background: panelExpanded ? expandedShellBackground : publisherSurfaceBg,\n borderRadius: !compact && expandedOverlayLayout ? expandedOverlayLayout.panelBorderRadius : '12px',\n padding: panelExpanded ? 0 : compact ? '6px' : 0,\n boxShadow: mobileExpandedOverlay ? 'none' : panelExpanded ? expandedShadow : 'none',\n border: mobileExpandedOverlay || useInputSuggestions ? 'none' : `1px solid ${expandedBorderStrong}`,\n overflow: 'hidden',\n minHeight: compact ? 0 : undefined,\n }}\n >\n <style>{publisherAssistantStyles}</style>\n {showTeaserHeader && (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: compact ? '8px 10px' : '14px 20px',\n background: expandedHeaderBackground,\n color: brandText,\n borderBottom: `1px solid ${expandedBorder}`,\n flexShrink: 0,\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: '12px', minWidth: 0 }}>\n <div\n style={{\n width: compact ? 26 : 32,\n height: compact ? 26 : 32,\n flexShrink: 0,\n borderRadius: '6px',\n background: withAlpha(brandText, 0.04),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: 16,\n fontWeight: 700,\n color: publisherAccent,\n overflow: 'hidden',\n }}\n >\n {headerLogoUrl ? (\n <img src={headerLogoUrl} alt={`${headerTitle || 'Assistant'} logo`} style={{ width: '100%', height: '100%', objectFit: 'contain', background: brandSurface, padding: 4 }} />\n ) : (\n <MessageSquare size={compact ? 14 : 17} strokeWidth={1.5} aria-hidden=\"true\" />\n )}\n </div>\n {(showHeaderTitle || showSubtitle) && (\n <div style={{ minWidth: 0, overflowWrap: 'anywhere' }}>\n {showHeaderTitle && <div style={{ fontSize: compact ? '13px' : '14px', fontWeight: 600, lineHeight: 1.1, letterSpacing: 0 }}>{headerTitle}</div>}\n {showSubtitle && <div style={{ fontSize: compact ? '10px' : '12px', color: expandedMutedText, marginTop: '2px' }}>{assistantSubtitle}</div>}\n </div>\n )}\n </div>\n {panelExpanded && (!compact || forOverlay) && (\n <button\n type=\"button\"\n onClick={() => setIsExpanded(false)}\n aria-label=\"Minimize assistant\"\n style={{\n width: 36,\n height: 36,\n borderRadius: '8px',\n border: `1px solid ${expandedBorder}`,\n background: brandSurface,\n color: expandedMutedText,\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <Minimize2 size={16} strokeWidth={1.5} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n )}\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: ultraCompact ? '2px' : compact ? '6px' : '16px',\n minHeight: 0,\n flex: compact || panelExpanded ? '1 1 0' : undefined,\n overflow: compact || panelExpanded ? 'hidden' : undefined,\n overscrollBehavior: 'contain',\n padding: !useInputSuggestions ? (compact ? '8px' : '20px') : compact ? '4px' : '8px',\n justifyContent: !panelExpanded ? 'center' : undefined,\n background: expandedShellBackground,\n }}\n >\n {renderDelegationBanner('default')}\n {showMessagesInTeaser && renderPublisherMessages(compact)}\n {!useInputSuggestions && (\n <>\n {compact && !panelExpanded && !ultraCompact && <div aria-hidden=\"true\" style={{ flex: '1 1 auto', minHeight: 0 }} />}\n {compact && !panelExpanded && showWelcomeMessage && showCompactWelcomeMessage && messages.length === 0 && (\n <div style={{ fontSize: 15, fontWeight: 600, textAlign: 'center' }}>{welcomeMessage}</div>\n )}\n {renderPublisherSuggestions(compact)}\n </>\n )}\n {(useInputSuggestions || !compact || panelExpanded || showCompactSlotInput) && (\n <PublisherAssistantComposer\n value={inputValue}\n onChange={setInputValue}\n open={useInputSuggestions && suggestionsOpen && !isExpanded}\n onOpenChange={useInputSuggestions ? setSuggestionsOpen : ignoreSuggestionDropdown}\n suggestions={orderedSuggestions.slice(0, maxSuggestions)}\n registerSuggestion={setSuggestionButtonRef}\n loading={isLoading}\n analyzing={shouldShowSuggestionSkeletons}\n compact={compact}\n expanded={panelExpanded}\n showLogo={!panelExpanded}\n suggestionPlacement={suggestionPlacement}\n logoUrl={headerLogoUrl}\n title={headerTitle}\n placeholder={placeholder}\n colors={{ accent: publisherAccent, accentText: sendButtonTextColor, surface: expandedComposerBackground, text: brandText, muted: brandMuted, border: brandBorder }}\n onStop={handleStopGeneration}\n onSend={() => {\n currentSponsoredSuggestionRef.current = null;\n currentMessageIsSponsored.current = false;\n setIsExpanded(true);\n if (layout === 'floating') handleOpenChange(true);\n handleSendMessage(inputValue);\n }}\n onSuggestion={(suggestion) => {\n setIsExpanded(true);\n if (layout === 'floating') handleOpenChange(true);\n handleSuggestionClick(suggestion);\n }}\n />\n )}\n {panelExpanded && renderExpandedBranding('default', compact)}\n {!panelExpanded && suggestionTrigger === 'always' && renderSponsoredCreativeCard(compact)}\n </div>\n </div>\n );\n }\n\n if (layout === 'inline') {\n if (isAdSlotSurface) {\n return (\n <div\n ref={adSlotRootRef}\n className=\"admesh-component\"\n data-admesh-theme={themeMode}\n data-admesh-surface=\"ad-slot\"\n data-admesh-ad-slot-behavior={adSlotBehavior}\n data-admesh-ad-slot-expanded={shouldExpandAdSlot ? 'true' : 'false'}\n style={{\n width: adSlotWidthCss,\n height: adSlotHeightCss,\n maxWidth: adSlotWidthCss,\n maxHeight: adSlotHeightCss,\n position: 'relative',\n overflow: 'hidden',\n }}\n >\n {renderTeaser(false)}\n {isAdSlotOverlayActive &&\n typeof document !== 'undefined' &&\n renderExpandedOverlayPortal(renderTeaser(true))}\n </div>\n );\n }\n\n return (\n <div className=\"admesh-component\" data-admesh-theme={themeMode} style={{ width: '100%', position: 'relative' }}>\n {renderTeaser(false)}\n {isExpanded &&\n typeof document !== 'undefined' &&\n renderExpandedOverlayPortal(renderTeaser(true))}\n </div>\n );\n }\n\n if (!isOpen) {\n return (\n <div className=\"admesh-component\" data-admesh-theme={themeMode}>\n <button\n type=\"button\"\n onClick={handleOpenClick}\n style={{\n position: 'fixed',\n ...positionStyle,\n zIndex: 2147483000,\n border: 'none',\n borderRadius: '6px',\n background: theme.primaryColor,\n color: sendButtonTextColor,\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n fontSize: '13px',\n fontWeight: 600,\n padding: '12px 16px',\n boxShadow: '0 4px 16px rgba(15, 23, 42, 0.12)',\n cursor: 'pointer',\n }}\n >\n <MessageSquare size={16} strokeWidth={1.5} aria-hidden=\"true\" />\n {triggerLabel}\n </button>\n </div>\n );\n }\n\n return (\n <div className=\"admesh-component\" data-admesh-theme={themeMode}>\n {!isExpanded && (\n <div\n style={{\n position: 'fixed',\n ...positionStyle,\n zIndex: 2147483001,\n }}\n >\n {renderTeaser(false)}\n </div>\n )}\n {isExpanded &&\n typeof document !== 'undefined' &&\n renderExpandedOverlayPortal(renderTeaser(true))}\n </div>\n );\n }\n\n // Conditional rendering: only show if we have suggestions\n if (orderedSuggestions.length === 0 && !shouldShowSuggestionSkeletons) {\n console.log('[AdMeshIntentAssistant] No suggestions available - not rendering');\n return null;\n }\n\n if (layout === 'inline') {\n return (\n <div className=\"admesh-component\" data-admesh-theme={themeMode}>\n <div\n className={`overflow-hidden rounded-[2rem] ${className || ''}`}\n style={{\n width: toCssSize(panelWidth) ?? '100%',\n backgroundColor: '#eef2ff',\n fontSize: fontSizes.base,\n ...style,\n }}\n >\n <div\n className=\"space-y-4 rounded-[1.75rem] p-4\"\n style={{ backgroundColor: 'rgba(255, 255, 255, 0.35)' }}\n >\n {shouldShowSuggestionSkeletons ? (\n renderSuggestionSkeletons('legacy')\n ) : orderedSuggestions.length > 0 && (\n <div className=\"flex flex-col gap-3\">\n {orderedSuggestions.slice(0, maxSuggestions).map((suggestion, index) => (\n <button\n key={suggestion.id}\n ref={setSuggestionButtonRef(suggestion.id)}\n onClick={() => handleSuggestionClick(suggestion)}\n className=\"rounded-full px-5 py-4 text-left shadow-sm transition-transform duration-200 hover:scale-[1.01] active:scale-[0.99]\"\n style={{\n width: index === 0 ? '100%' : index === 1 ? '82%' : '68%',\n backgroundColor: theme.surfaceColor || '#ffffff',\n color: theme.textColor || '#1e293b',\n border: `1px solid ${theme.borderColor || '#e2e8f0'}`,\n fontSize: fontSizes.sm,\n }}\n >\n <span className=\"leading-tight\">{suggestion.text}</span>\n {adsEnabled && suggestion.is_sponsored && (\n <sup\n className=\"ml-1 rounded-full px-1.5 py-0.5\"\n style={{\n backgroundColor: theme.backgroundColor || '#ffffff',\n color: theme.textSecondaryColor || '#64748b',\n fontSize: '9px',\n lineHeight: 1,\n }}\n >\n Ad\n </sup>\n )}\n </button>\n ))}\n </div>\n )}\n\n {messages.length > 0 && (\n <div\n ref={messagesScrollRef}\n className=\"max-h-[280px] space-y-3 overflow-y-auto rounded-[1.5rem] bg-white/80 p-4\"\n style={{ color: theme.textColor, overscrollBehavior: 'contain', WebkitOverflowScrolling: 'touch' }}\n >\n {messages.map((message) => {\n const isActiveSubmittedMessage =\n message.role === 'user' &&\n message.id === activeSubmittedMessageIdRef.current;\n\n return (\n <div\n key={message.id}\n ref={isActiveSubmittedMessage ? activeSubmittedMessageRef : undefined}\n className={message.role === 'user' ? 'text-right' : 'text-left'}\n >\n <div\n className=\"inline-block max-w-[85%] rounded-2xl px-4 py-3\"\n style={{\n backgroundColor: message.role === 'user' ? theme.primaryColor : '#ffffff',\n color: message.role === 'user' ? (theme.primaryTextColor || '#ffffff') : theme.textColor,\n fontSize: fontSizes.sm,\n }}\n >\n {message.role === 'assistant' ? (\n message.content.trim() ? (\n <>\n <CustomMarkdownRenderer content={message.content} theme={theme} fontSize={fontSizes.sm} />\n {renderAnswerFooter(message, {\n accentColor: theme.primaryColor,\n metaColor: theme.textSecondaryColor,\n })}\n </>\n ) : isLoading && message.id === activeAssistantMessageIdRef.current ? (\n renderGeneratingIndicator({\n compact: true,\n accentColor: theme.primaryColor,\n metaColor: theme.textSecondaryColor,\n includeSteps: false,\n })\n ) : null\n ) : (\n <p style={{ margin: 0, lineHeight: '1.4' }}>{message.content}</p>\n )}\n </div>\n </div>\n );\n })}\n\n {isLoading && !messages.some(\n (message) =>\n message.role === 'assistant' &&\n message.id === activeAssistantMessageIdRef.current &&\n !message.content.trim(),\n ) && (\n <div className=\"text-sm\" style={{ color: theme.textSecondaryColor }}>\n {renderGeneratingIndicator({\n compact: true,\n accentColor: theme.primaryColor,\n metaColor: theme.textSecondaryColor,\n includeSteps: false,\n })}\n </div>\n )}\n\n {error && (\n <div className=\"text-sm\" style={{ color: theme.textSecondaryColor }}>\n Connection issue. Please try again.\n </div>\n )}\n\n <div ref={messagesEndRef} />\n </div>\n )}\n\n <div className=\"rounded-[1.5rem] bg-white p-3 shadow-sm\">\n <div className=\"flex items-center gap-3\">\n <input\n type=\"text\"\n value={inputValue}\n onChange={(e) => setInputValue(e.target.value)}\n onKeyPress={(e) => {\n if (e.key !== 'Enter') return;\n if (isLoading) {\n e.preventDefault();\n return;\n }\n handleSendMessage(inputValue);\n }}\n placeholder={placeholder}\n className=\"min-w-0 flex-1 rounded-full px-4 py-3 focus:outline-none\"\n style={{\n backgroundColor: theme.backgroundColor || '#ffffff',\n color: theme.textColor,\n fontSize: fontSizes.sm,\n }}\n />\n <button\n onClick={() => {\n if (isLoading) {\n handleStopGeneration();\n return;\n }\n handleSendMessage(inputValue);\n }}\n disabled={!isLoading && !inputValue.trim()}\n className=\"flex h-11 w-11 shrink-0 items-center justify-center rounded-full transition-colors disabled:cursor-not-allowed disabled:opacity-50\"\n style={{\n backgroundColor: isLoading ? '#dc2626' : theme.primaryColor,\n color: '#ffffff',\n }}\n >\n {isLoading ? <XIcon size={18} /> : <SendIcon size={18} />}\n </button>\n </div>\n </div>\n\n <div className=\"space-y-2 text-center\">\n <p style={{ color: theme.textSecondaryColor, fontSize: fontSizes.xs, fontWeight: 600 }}>\n Powered by{' '}\n <a\n href=\"https://useadmesh.com\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{ color: 'inherit', textDecoration: 'none', fontWeight: 700 }}\n >\n AdMesh\n </a>\n </p>\n <p style={{ color: theme.textSecondaryColor, fontSize: fontSizes.xs, lineHeight: 1.5 }}>\n {genericDisclaimer}\n </p>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n if (!isOpen) {\n // Floating button when closed\n return (\n <div className=\"admesh-component\" data-admesh-theme={themeMode}>\n <button\n onClick={handleOpenClick}\n className=\"flex items-center gap-2 px-4 py-3 rounded-full shadow-lg transition-all duration-200 hover:scale-105 active:scale-95\"\n style={{\n position: 'fixed',\n ...positionStyle,\n backgroundColor: theme.primaryColor,\n color: '#ffffff',\n zIndex: 9999,\n fontSize: fontSizes.base,\n ...style,\n }}\n >\n {/* {triggerIcon ?? <BotIcon size={20} />} */}\n <span className=\"font-medium\">{triggerLabel}</span>\n </button>\n </div>\n );\n }\n\n // Main assistant interface when open\n return (\n <div className=\"admesh-component\" data-admesh-theme={themeMode}>\n <div\n className={`flex flex-col overflow-hidden ${className || ''}`}\n style={{\n position: 'fixed',\n display: 'flex',\n flexDirection: 'column',\n ...(isExpanded ? {\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: 'min(1040px, calc(100vw - 40px))',\n height: 'min(84vh, 820px)',\n maxWidth: '1040px',\n maxHeight: '820px',\n } : {\n ...positionStyle,\n width: toCssSize(panelWidth) ?? sizeStyle.width,\n height: toCssSize(panelHeight) ?? sizeStyle.height,\n }),\n backgroundColor: isExpanded ? expandedShellBackground : theme.backgroundColor,\n zIndex: 9999,\n fontSize: fontSizes.base,\n borderRadius: isExpanded ? '20px' : '16px',\n border: isExpanded ? `1px solid ${expandedBorderStrong}` : '1px solid transparent',\n boxShadow: isExpanded ? expandedShadow : '0 20px 40px rgba(15, 23, 42, 0.12)',\n ...style,\n }}\n >\n {/* Header */}\n {showHeader && (\n <div\n className=\"sticky top-0 z-10 flex items-center justify-between p-4 border-b\"\n style={{ \n position: 'sticky',\n top: 0,\n zIndex: 10,\n borderColor: isExpanded ? expandedBorder : 'transparent',\n background: isExpanded ? expandedHeaderBackground : theme.backgroundColor,\n padding: isExpanded ? '18px 20px' : '16px',\n }}\n >\n <div className=\"flex items-center gap-3\">\n <div\n style={{\n width: isExpanded ? 40 : 32,\n height: isExpanded ? 40 : 32,\n borderRadius: isExpanded ? '14px' : '10px',\n background: withAlpha(brandPrimary, 0.08),\n color: publisherAccent,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: isExpanded ? '15px' : '13px',\n fontWeight: 700,\n flexShrink: 0,\n overflow: 'hidden',\n }}\n >\n {headerLogoUrl ? (\n <img src={headerLogoUrl} alt={`${headerTitle || 'Assistant'} logo`} style={{ width: '100%', height: '100%', objectFit: 'contain', background: '#ffffff', padding: 4 }} />\n ) : (\n (headerTitle || 'AA').slice(0, 2).toUpperCase()\n )}\n </div>\n {(showHeaderTitle || (showSubtitle && isExpanded)) && (\n <div>\n {showHeaderTitle && (\n <div\n className=\"font-medium\"\n style={{ color: theme.textColor, fontSize: isExpanded ? '20px' : fontSizes.base, fontWeight: 700, letterSpacing: isExpanded ? '-0.02em' : 0 }}\n >\n {headerTitle}\n </div>\n )}\n {showSubtitle && isExpanded && (\n <div style={{ color: expandedMutedText, fontSize: '12px', marginTop: '2px' }}>\n {assistantSubtitle}\n </div>\n )}\n </div>\n )}\n </div>\n <div className=\"flex items-center gap-1\">\n {!isAdSlotSurface && (\n <button\n onClick={handleToggleExpand}\n className=\"transition-colors\"\n title={isExpanded ? \"Minimize\" : \"Expand\"}\n style={{\n width: isExpanded ? 36 : 28,\n height: isExpanded ? 36 : 28,\n borderRadius: isExpanded ? '12px' : '10px',\n border: `1px solid ${isExpanded ? expandedBorder : 'transparent'}`,\n background: isExpanded ? '#ffffff' : 'transparent',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {isExpanded ? (\n <Minimize2 size={16} style={{ color: theme.textSecondaryColor }} />\n ) : (\n <Maximize2 size={16} style={{ color: theme.textSecondaryColor }} />\n )}\n </button>\n )}\n <button\n onClick={handleCloseClick}\n className=\"transition-colors\"\n style={{\n width: isExpanded ? 36 : 28,\n height: isExpanded ? 36 : 28,\n borderRadius: isExpanded ? '12px' : '10px',\n border: `1px solid ${isExpanded ? expandedBorder : 'transparent'}`,\n background: isExpanded ? '#ffffff' : 'transparent',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <XIcon size={16} style={{ color: theme.textSecondaryColor }} />\n </button>\n </div>\n </div>\n )}\n\n {/* Messages */}\n <div\n ref={messagesScrollRef}\n className=\"flex-1 min-h-0 overflow-y-auto p-4\"\n style={{\n flex: '1 1 0%',\n minHeight: 0,\n overflowY: 'auto',\n overscrollBehavior: 'contain',\n WebkitOverflowScrolling: 'touch',\n padding: isExpanded ? '20px' : '16px',\n }}\n >\n {renderDelegationBanner('legacy')}\n {showWelcomeMessage && messages.length === 0 && (\n <div className=\"mb-3\">\n <div\n className=\"inline-block p-2 rounded-lg\"\n \n >\n <p style={{ color: theme.textColor, margin: 0, fontSize: fontSizes.sm }}>{welcomeMessage}</p>\n </div>\n </div>\n )}\n\n {messages.map((message) => {\n const isActiveSubmittedMessage =\n message.role === 'user' &&\n message.id === activeSubmittedMessageIdRef.current;\n\n return (\n <div\n key={message.id}\n ref={isActiveSubmittedMessage ? activeSubmittedMessageRef : undefined}\n className=\"mb-3\"\n >\n <div\n className={message.role === 'user' ? 'inline-block max-w-[85%] ml-auto' : 'max-w-[92%]'}\n style={{\n backgroundColor: message.role === 'user' ? expandedUserBubble : 'transparent',\n color: message.role === 'user'\n ? (theme.primaryTextColor || '#ffffff')\n : theme.textColor,\n border: 'none',\n borderRadius: message.role === 'user' ? (isExpanded ? '14px' : '12px') : 0,\n padding: message.role === 'user' ? (isExpanded ? '12px 14px' : undefined) : '2px 6px 2px 2px',\n boxShadow: 'none',\n }}\n >\n {message.role === 'assistant' ? (\n message.content.trim() ? (\n <>\n <div style={{ fontSize: `calc(${fontSizes.sm} * 1.3)`, lineHeight: 1.65 }}>\n <CustomMarkdownRenderer \n content={message.content}\n theme={theme}\n fontSize={`calc(${fontSizes.sm} * 1.3)`}\n />\n </div>\n {renderAnswerFooter(message, {\n accentColor: theme.primaryColor,\n metaColor: theme.textSecondaryColor,\n })}\n </>\n ) : isLoading && message.id === activeAssistantMessageIdRef.current ? (\n renderGeneratingIndicator({\n compact: true,\n accentColor: theme.primaryColor,\n metaColor: theme.textSecondaryColor,\n includeSteps: false,\n })\n ) : null\n ) : (\n <p style={{ margin: 0, fontSize: fontSizes.sm, lineHeight: '1.4' }}>{message.content}</p>\n )}\n </div>\n \n {/* Add recommendations after assistant messages */}\n {message.role === 'assistant' && !sponsoredClickedMessages.has(message.id) && (\n <AdMeshRecommendations\n messageId={message.id}\n query={message.userQuery}\n onFollowupDetected={upsertSponsoredFollowupSuggestion}\n onRecommendationsShown={(messageId, recommendation) => {\n handleRecommendationShown(messageId, recommendation, message.userQuery);\n }}\n onError={(error) => {\n console.error(`[AdMeshIntentAssistant] Recommendations error:`, error);\n }}\n />\n )}\n \n {/* Display sponsored recommendation after assistant content if available */}\n {message.role === 'assistant' && sponsoredClickedMessages.has(message.id) && message.initialRecommendation && !isLoading && (\n <div className=\"mb-4\">\n <div className=\"text-xs text-gray-500 mb-2 font-semibold\">Sponsored Recommendation</div>\n <AdMeshRecommendations\n messageId={message.id}\n query={message.userQuery}\n initialRecommendation={message.initialRecommendation}\n onFollowupDetected={upsertSponsoredFollowupSuggestion}\n onRecommendationsShown={(messageId, recommendation) => {\n handleRecommendationShown(messageId, recommendation, message.userQuery);\n }}\n onError={(error) => {\n console.error(`[AdMeshIntentAssistant] Recommendations error:`, error);\n }}\n />\n </div>\n )}\n </div>\n );\n })}\n\n {isLoading && !messages.some(\n (message) =>\n message.role === 'assistant' &&\n message.id === activeAssistantMessageIdRef.current &&\n !message.content.trim(),\n ) && (\n <div className=\"mb-3\">\n <div\n className=\"inline-block p-2 rounded-lg\"\n style={{ backgroundColor: 'transparent' }}\n >\n {renderGeneratingIndicator({\n compact: true,\n accentColor: theme.primaryColor,\n metaColor: theme.textSecondaryColor,\n includeSteps: false,\n })}\n </div>\n </div>\n )}\n\n {error && (\n <div className=\"mb-3\">\n <div\n className=\"inline-block p-2 rounded-lg border\"\n style={{ \n backgroundColor: 'transparent',\n borderColor: 'transparent',\n color: theme.textSecondaryColor\n }}\n >\n <div className=\"flex items-center gap-2\">\n <span style={{ fontSize: fontSizes.xs }}>⚠️</span>\n <span style={{ fontSize: fontSizes.sm }}>Connection issue. Please try again.</span>\n </div>\n </div>\n </div>\n )}\n\n <div ref={messagesEndRef} />\n </div>\n\n \n\n {/* Suggestions */}\n {messages.length === 0 && shouldShowSuggestionSkeletons && (\n <div className=\"px-4 pb-2\">\n {renderSuggestionSkeletons('legacy')}\n </div>\n )}\n\n {orderedSuggestions.length > 0 && messages.length === 0 && !shouldShowSuggestionSkeletons && (\n <div className=\"px-4 pb-2\">\n <div className=\"flex flex-col gap-2\">\n {orderedSuggestions.slice(0, maxSuggestions).map((suggestion) => (\n <button\n key={suggestion.id}\n ref={setSuggestionButtonRef(suggestion.id)}\n onClick={() => handleSuggestionClick(suggestion)}\n className=\"relative flex w-full items-center text-left transition-all duration-200\"\n style={{\n backgroundColor: theme.surfaceColor || '#f8fafc',\n color: theme.textColor || '#1e293b',\n border: `1px solid ${theme.borderColor || '#e2e8f0'}`,\n fontSize: fontSizes.sm,\n padding: '10px 12px',\n borderRadius: '999px',\n fontWeight: 500,\n }}\n >\n <span className=\"leading-tight\">{suggestion.text}</span>\n {adsEnabled && suggestion.is_sponsored && (\n <sup\n className=\"absolute right-1 top-1 rounded-full px-1.5 py-0.5 tracking-wide\"\n style={{\n fontSize: '9px',\n lineHeight: 1,\n backgroundColor: theme.backgroundColor || '#ffffff',\n color: theme.textSecondaryColor || '#64748b'\n }}\n >\n Ad\n </sup>\n )}\n </button>\n ))}\n </div>\n </div>\n )}\n\n {/* Intent Analysis Error */}\n {intentError && !isAnalyzingIntent && safeSuggestions.length === 0 && (\n <div className=\"px-4 pb-2\">\n <div className=\"flex flex-col gap-2\">\n <div className=\"p-3 rounded-lg border\" style={{ \n backgroundColor: theme.surfaceColor,\n borderColor: theme.borderColor,\n color: theme.textSecondaryColor\n }}>\n <div className=\"flex items-center justify-between mb-2\">\n <span style={{ fontSize: fontSizes.sm }}>Intent analysis failed</span>\n <button\n onClick={retryIntentAnalysis}\n className=\"text-xs px-2 py-1 rounded\"\n style={{ \n backgroundColor: theme.primaryColor,\n color: '#ffffff'\n }}\n >\n Retry\n </button>\n </div>\n <span style={{ fontSize: fontSizes.xs }}>{intentError}</span>\n </div>\n </div>\n </div>\n )}\n\n {/* Input */}\n <div className=\"p-3 border-t\" style={{ borderColor: isExpanded ? expandedBorder : 'transparent', padding: isExpanded ? '18px 20px' : undefined, background: isExpanded ? expandedHeaderBackground : undefined }}>\n <div className=\"flex gap-2\" style={{ alignItems: 'center', border: `1px solid ${expandedBorder}`, borderRadius: isExpanded ? '16px' : '12px', background: expandedComposerBackground, boxShadow: isExpanded ? expandedComposerShadow : 'none', padding: isExpanded ? '8px 8px 8px 14px' : undefined }}>\n <input\n type=\"text\"\n value={inputValue}\n onChange={(e) => setInputValue(e.target.value)}\n onKeyPress={(e) => {\n if (e.key !== 'Enter') return;\n if (isLoading) {\n e.preventDefault();\n return;\n }\n handleSendMessage(inputValue);\n }}\n placeholder={placeholder}\n className=\"flex-1 px-3 py-2 rounded-lg border focus:outline-none focus:ring-2\"\n style={{\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n color: theme.textColor,\n fontSize: isExpanded ? '15px' : fontSizes.sm,\n '--tw-ring-color': theme.primaryColor,\n } as CSSProperties}\n />\n <button\n onClick={() => {\n if (isLoading) {\n handleStopGeneration();\n return;\n }\n handleSendMessage(inputValue);\n }}\n disabled={!isLoading && !inputValue.trim()}\n className=\"transition-colors disabled:opacity-50 disabled:cursor-not-allowed\"\n style={{\n backgroundColor: isLoading ? '#dc2626' : theme.primaryColor,\n color: '#ffffff',\n borderRadius: isExpanded ? '12px' : '10px',\n width: isExpanded ? '46px' : undefined,\n height: isExpanded ? '46px' : undefined,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: isExpanded ? `0 10px 20px ${withAlpha(brandPrimary, 0.18)}` : 'none',\n }}\n >\n {isLoading ? <XIcon size={14} /> : <SendIcon size={14} />}\n </button>\n </div>\n {renderExpandedBranding('legacy')}\n </div>\n </div>\n </div>\n );\n};\n\nexport default AdMeshIntentAssistant;\n","import React, { useEffect, useState } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { AdMeshIntentAssistant, type AssistantQueryResult, type Suggestion } from \"./components/AdMeshIntentAssistant\";\nimport { AdMeshProvider } from \"./context/AdMeshProvider\";\nimport type { AdMeshTheme } from \"./types\";\n\n// The publisher bundle applies the same browser shim before loading React.\nif (typeof globalThis !== \"undefined\" && typeof (globalThis as { process?: unknown }).process === \"undefined\") {\n (globalThis as { process?: { env: Record<string, string> } }).process = {\n env: { NODE_ENV: \"production\", ADMESH_ENV: \"production\" },\n };\n}\n\ntype BrandAssistantConfig = {\n slug: string;\n assistant_name: string;\n logo_url: string | null;\n support_url: string | null;\n welcome_message: string;\n suggested_questions: string[];\n};\ntype AskResult = {\n outcome: \"answered\" | \"no_answer\";\n answer: string;\n sources: Array<{ title: string; url: string }>;\n};\ntype Turn = { role: \"visitor\" | \"assistant\"; text: string };\ntype AssistantController = { unmount: () => void };\n\nconst SLUG = /^[a-z0-9](?:[a-z0-9-]{1,46}[a-z0-9])?$/;\nconst controllers = new WeakMap<HTMLScriptElement, AssistantController>();\nconst brandTheme: AdMeshTheme = {\n mode: \"light\",\n primaryColor: \"#42116e\",\n primaryTextColor: \"#ffffff\",\n secondaryColor: \"#6b5e75\",\n backgroundColor: \"#faf9fb\",\n surfaceColor: \"#ffffff\",\n borderColor: \"#e7e1ec\",\n textColor: \"#302039\",\n textSecondaryColor: \"#6b5e75\",\n borderRadius: \"16px\",\n};\n\nfunction findScript(): HTMLScriptElement | null {\n const current = document.currentScript;\n if (current instanceof HTMLScriptElement) return current;\n return Array.from(document.scripts).find((script) =>\n script.src.includes(\"/brand-assistant.js\") && script.dataset.admeshMounted !== \"true\") || null;\n}\n\nfunction normalizeConfig(value: unknown, slug: string): BrandAssistantConfig | null {\n if (!value || typeof value !== \"object\") return null;\n const config = value as Partial<BrandAssistantConfig>;\n if (config.slug !== slug || typeof config.assistant_name !== \"string\"\n || typeof config.welcome_message !== \"string\" || !Array.isArray(config.suggested_questions)) return null;\n const assistantName = config.assistant_name.trim().slice(0, 160) || \"Brand Assistant\";\n let supportUrl: string | null = null;\n if (typeof config.support_url === \"string\") {\n try {\n const parsed = new URL(config.support_url);\n if (parsed.protocol === \"https:\") supportUrl = parsed.href;\n } catch { /* Keep the assistant without an invalid action URL. */ }\n }\n const suggestions = config.suggested_questions.filter((question): question is string => typeof question === \"string\")\n .slice(0, 4).map((question) => question.slice(0, 300)).filter(Boolean);\n return {\n slug,\n assistant_name: assistantName,\n logo_url: typeof config.logo_url === \"string\" ? config.logo_url : null,\n support_url: supportUrl,\n welcome_message: config.welcome_message.slice(0, 500),\n suggested_questions: suggestions.length ? suggestions : [`What is ${assistantName}?`],\n };\n}\n\nasync function loadConfig(script: HTMLScriptElement, slug: string, apiOrigin: string): Promise<BrandAssistantConfig | null> {\n if (script.dataset.brandPreview) {\n try { return normalizeConfig(JSON.parse(script.dataset.brandPreview), slug); }\n catch { return null; }\n }\n const response = await fetch(`${apiOrigin}/api/public/brands/${encodeURIComponent(slug)}/embed/`, {\n cache: \"no-store\", headers: { Accept: \"application/json\" }, credentials: \"omit\",\n });\n if (!response.ok) return null;\n return normalizeConfig(await response.json(), slug);\n}\n\nfunction createQueryHandler(slug: string, apiOrigin: string, preview: boolean, supportUrl: string | null) {\n let history: Turn[] = [];\n let started = false;\n return async (question: string): Promise<AssistantQueryResult> => {\n if (preview) throw new Error(\"Questions become available after this profile is published.\");\n const submitted = question.trim().slice(0, 500);\n if (!submitted) throw new Error(\"Enter a question.\");\n if (!started) {\n started = true;\n void fetch(`${apiOrigin}/api/public/brands/${encodeURIComponent(slug)}/qa-start/`, {\n method: \"POST\", credentials: \"omit\", keepalive: true,\n }).catch(() => { /* Analytics never interrupts an answer. */ });\n }\n const response = await fetch(`${apiOrigin}/api/public/brands/${encodeURIComponent(slug)}/ask/`, {\n method: \"POST\", cache: \"no-store\", credentials: \"omit\",\n headers: { \"Content-Type\": \"application/json\", Accept: \"application/json\" },\n body: JSON.stringify({ question: submitted, history: history.slice(-6) }),\n signal: AbortSignal.timeout(25000),\n });\n if (!response.ok) {\n const body = await response.json().catch(() => null) as { detail?: string } | null;\n throw new Error(body?.detail || \"The Brand Agent could not answer right now. Please try again.\");\n }\n const result = await response.json() as AskResult;\n if ((result.outcome !== \"answered\" && result.outcome !== \"no_answer\")\n || typeof result.answer !== \"string\" || !Array.isArray(result.sources)) {\n throw new Error(\"The Brand Agent returned an unexpected answer. Please try again.\");\n }\n history = [...history, { role: \"visitor\", text: submitted }, { role: \"assistant\", text: result.answer }]\n .slice(-6).map((turn) => ({ ...turn, text: turn.text.slice(0, 1000) }));\n return {\n answer: result.answer,\n source_links: result.sources.filter((source) => source && typeof source.url === \"string\")\n .map((source) => ({ title: source.title, url: source.url })),\n related_items: result.outcome === \"no_answer\" && supportUrl\n ? [{ title: \"Contact the brand\", url: supportUrl }] : undefined,\n };\n };\n}\n\nfunction BrandAssistantApp({ config, mode, queryHandler, suggestions, preview }: {\n config: BrandAssistantConfig;\n mode: \"floating\" | \"inline\";\n queryHandler: ReturnType<typeof createQueryHandler>;\n suggestions: Suggestion[];\n preview: boolean;\n}) {\n const [open, setOpen] = useState(() => window.location.hash === \"#brand-assistant\");\n useEffect(() => {\n const openFromHash = () => { if (window.location.hash === \"#brand-assistant\") setOpen(true); };\n const openFromLink = (event: MouseEvent) => {\n if (event.target instanceof Element && event.target.closest('a[href=\"#brand-assistant\"]')) setOpen(true);\n };\n window.addEventListener(\"hashchange\", openFromHash);\n document.addEventListener(\"click\", openFromLink);\n return () => {\n window.removeEventListener(\"hashchange\", openFromHash);\n document.removeEventListener(\"click\", openFromLink);\n };\n }, []);\n return React.createElement(AdMeshIntentAssistant, {\n variant: \"default\", layout: mode, position: \"bottom-right\", size: \"md\",\n open, onOpenChange: setOpen,\n adsEnabled: false, onlyShowWhenSponsored: false,\n headerTitle: config.assistant_name,\n headerLogoUrl: config.logo_url,\n triggerLabel: `Ask ${config.assistant_name}`,\n subtitle: \"Brand Assistant\",\n showWelcomeMessage: true,\n welcomeMessage: config.welcome_message,\n placeholder: `Ask ${config.assistant_name} a question…`,\n disclaimerText: preview\n ? \"Private preview. Questions become available after publication.\"\n : \"Answers use this brand's approved public information. Avoid sharing personal details.\",\n poweredByLabel: \"Powered by AdMesh\",\n relatedItemsHeading: \"Need more help?\",\n suggestions,\n queryHandler,\n });\n}\n\nasync function mount() {\n const script = findScript();\n if (!script || !script.isConnected || controllers.has(script)) return;\n const slug = script.dataset.brandSlug?.trim().toLowerCase() || \"\";\n if (!SLUG.test(slug)) {\n console.error(\"[AdMesh] Brand assistant script requires a valid data-brand-slug.\");\n return;\n }\n const scriptOrigin = new URL(script.src).origin;\n const apiOrigin = scriptOrigin === \"https://embed.useadmesh.com\"\n ? \"https://useadmesh.com\" : scriptOrigin;\n const config = await loadConfig(script, slug, apiOrigin).catch(() => null);\n if (!script.isConnected) return;\n if (!config) {\n script.dispatchEvent(new Event(\"admesh:brand-assistant-unavailable\"));\n return;\n }\n const preview = Boolean(script.dataset.brandPreview);\n const mode = script.dataset.mode === \"inline\" ? \"inline\" : \"floating\";\n const target = mode === \"inline\"\n ? document.querySelector(script.dataset.target || \"#admesh-brand-assistant\")\n : document.body;\n if (!target) {\n console.error(\"[AdMesh] Brand assistant inline target was not found.\");\n return;\n }\n const mountNode = document.createElement(\"div\");\n mountNode.className = \"admesh-publisher-assistant-reactMount\";\n mountNode.dataset.brandAssistant = slug;\n target.appendChild(mountNode);\n const root = ReactDOM.createRoot(mountNode);\n const sessionId = `brand-${slug}-${crypto.randomUUID()}`;\n const suggestions: Suggestion[] = config.suggested_questions.map((text, index) => ({\n id: `brand-${index}`, text, type: \"information\",\n }));\n root.render(React.createElement(AdMeshProvider, {\n apiKey: \"\", sessionId, skipSdkInitialization: true, theme: brandTheme,\n }, React.createElement(BrandAssistantApp, {\n config, mode, suggestions, preview,\n queryHandler: createQueryHandler(slug, apiOrigin, preview, config.support_url),\n })));\n script.dataset.admeshMounted = \"true\";\n controllers.set(script, { unmount: () => { root.unmount(); mountNode.remove(); script.dataset.admeshMounted = \"false\"; } });\n script.dispatchEvent(new Event(\"admesh:brand-assistant-ready\"));\n}\n\n(window as typeof window & { AdMeshBrandAssistant?: { unmount: (script: HTMLScriptElement) => void } }).AdMeshBrandAssistant = {\n unmount(script) {\n controllers.get(script)?.unmount();\n controllers.delete(script);\n },\n};\n\nvoid mount();\n"],"names":["REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_ACTIVITY_TYPE","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","ReactNoopUpdateQueue","assign","emptyObject","Component","props","context","updater","partialState","callback","ComponentDummy","PureComponent","pureComponentPrototype","isArrayImpl","noop","ReactSharedInternals","hasOwnProperty","ReactElement","type","key","refProp","cloneAndReplaceKey","oldElement","newKey","isValidElement","object","escape","escaperLookup","match","userProvidedKeyEscapeRegex","getElementKey","element","index","resolveThenable","thenable","fulfilledValue","error","mapIntoArray","children","array","escapedPrefix","nameSoFar","invokeCallback","c","nextNamePrefix","i","mapChildren","func","result","count","child","lazyInitializer","payload","ctor","moduleObject","reportGlobalError","event","Children","forEachFunc","forEachContext","n","react_production","size","fn","config","propName","childArray","defaultValue","childrenLength","render","compare","scope","prevTransition","currentTransition","returnValue","onStartTransitionFinish","usable","action","initialState","permalink","deps","Context","value","initialValue","create","ref","passthrough","reducer","initialArg","init","subscribe","getSnapshot","getServerSnapshot","reactModule","require$$0","push","heap","node","a","parentIndex","parent","peek","pop","first","last","length","halfLength","leftIndex","left","rightIndex","right","b","diff","exports","localPerformance","localDate","initialTime","taskQueue","timerQueue","taskIdCounter","currentTask","currentPriorityLevel","isPerformingWork","isHostCallbackScheduled","isHostTimeoutScheduled","needsPaint","localSetTimeout","localClearTimeout","localSetImmediate","advanceTimers","currentTime","timer","handleTimeout","isMessageLoopRunning","schedulePerformWorkUntilDeadline","firstTimer","requestHostTimeout","taskTimeoutID","frameInterval","startTime","shouldYieldToHost","performWorkUntilDeadline","hasMoreWork","previousPriorityLevel","continuationCallback","channel","port","ms","task","fps","eventHandler","priorityLevel","options","timeout","parentPriorityLevel","schedulerModule","React","formatProdErrorMessage","code","url","Internals","m","createPortal$1","containerInfo","implementation","getCrossOriginStringAs","as","input","reactDom_production","container","previousTransition","previousUpdatePriority","href","crossOrigin","integrity","fetchPriority","form","checkDCE","err","reactDomModule","Scheduler","require$$1","ReactDOM","require$$2","isValidContainer","getNearestMountedFiber","fiber","nearestMounted","getSuspenseInstanceFromFiber","suspenseState","getActivityInstanceFromFiber","activityState","assertIsMounted","findCurrentFiberUsingSlowPath","alternate","parentA","parentB","didFindChild","child$0","findCurrentHostFiberImpl","tag","REACT_LEGACY_ELEMENT_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_CACHE_SENTINEL","REACT_CLIENT_REFERENCE","getComponentNameFromType","innerType","ReactDOMSharedInternals","sharedNotPendingObject","valueStack","createCursor","cursor","contextStackCursor","contextFiberStackCursor","rootInstanceStackCursor","hostTransitionProviderCursor","pushHostContainer","nextRootInstance","getOwnHostContext","getChildHostContextProd","popHostContainer","pushHostContext","JSCompiler_inline_result","popHostContext","HostTransitionContext","prefix","suffix","describeBuiltInComponentFrame","name","x","reentry","describeNativeComponentFrame","construct","previousPrepareStackTrace","RunInRootFrame","Fake","control","x$1","x$2","sample","namePropDescriptor","_RunInRootFrame$Deter","sampleStack","controlStack","sampleLines","controlLines","frame","describeFiber","childFiber","getStackByFiberInDevAndProd","workInProgress","info","previous","scheduleCallback$3","cancelCallback$1","shouldYield","requestPaint","now","getCurrentPriorityLevel","ImmediatePriority","UserBlockingPriority","NormalPriority$1","LowPriority","IdlePriority","log$1","unstable_setDisableYieldValue","rendererID","injectedHook","setIsStrictModeForDevtools","newIsStrictMode","clz32","clz32Fallback","log","LN2","nextTransitionUpdateLane","nextTransitionDeferredLane","nextRetryLane","getHighestPriorityLanes","lanes","pendingSyncLanes","getNextLanes","root","wipLanes","rootHasPendingCommit","pendingLanes","nextLanes","suspendedLanes","pingedLanes","nonIdlePendingLanes","checkIfRootIsPrerendering","renderLanes","computeExpirationTime","lane","claimNextRetryLane","createLaneMap","initial","laneMap","markRootUpdated$1","updateLane","markRootFinished","finishedLanes","remainingLanes","spawnedLane","updatedLanes","suspendedRetryLanes","previouslyPendingLanes","entanglements","expirationTimes","hiddenUpdates","index$7","hiddenUpdatesForLane","update","markSpawnedDeferredLane","entangledLanes","spawnedLaneIndex","markRootEntangled","rootEntangledLanes","index$8","getBumpedLaneForHydration","renderLane","getBumpedLaneForHydrationByLane","lanesToEventPriority","resolveUpdatePriority","updatePriority","getEventPriority","runWithPriority","priority","previousPriority","randomKey","internalInstanceKey","internalPropsKey","internalContainerInstanceKey","internalEventHandlersKey","internalEventHandlerListenersKey","internalEventHandlesSetKey","internalRootNodeResourcesKey","internalHoistableMarker","detachDeletedInstance","getClosestInstanceFromNode","targetNode","targetInst","parentNode","getParentHydrationBoundary","getInstanceFromNode","getNodeFromInstance","inst","getResourcesFromRoot","resources","markNodeAsHoistable","allNativeEvents","registrationNameDependencies","registerTwoPhaseEvent","registrationName","dependencies","registerDirectEvent","VALID_ATTRIBUTE_NAME_REGEX","illegalAttributeNameCache","validatedAttributeNameCache","isAttributeNameSafe","attributeName","setValueForAttribute","prefix$10","setValueForKnownAttribute","setValueForNamespacedAttribute","namespace","getToStringValue","isCheckable","elem","trackValueOnNode","valueField","currentValue","descriptor","get","set","track","updateValueIfChanged","tracker","lastValue","getActiveElement","doc","escapeSelectorAttributeValueInsideDoubleQuotesRegex","escapeSelectorAttributeValueInsideDoubleQuotes","ch","updateInput","lastDefaultValue","checked","defaultChecked","setDefaultValue","initInput","isHydrating","updateOptions","multiple","propValue","setDefaultSelected","updateTextarea","initTextarea","setTextContent","text","firstChild","unitlessNumbers","setValueForStyle","style","styleName","isCustomProperty","setValueForStyles","styles","prevStyles","styleName$16","styleName$17","isCustomElement","tagName","aliases","isJavaScriptProtocol","sanitizeURL","noop$1","currentReplayingEvent","getEventTarget","nativeEvent","restoreTarget","restoreQueue","restoreStateOfTarget","target","internalInstance","otherNode","otherProps","isInsideEventHandler","batchedUpdates$1","flushSyncWork$1","getListener","stateNode","canUseDOM","passiveBrowserEventsSupported","startText","fallbackText","getData","start","startValue","startLength","end","endValue","endLength","minEnd","getEventCharCode","keyCode","functionThatReturnsTrue","functionThatReturnsFalse","createSyntheticEvent","Interface","SyntheticBaseEvent","reactName","reactEventType","nativeEventTarget","EventInterface","SyntheticEvent","UIEventInterface","SyntheticUIEvent","lastMovementX","lastMovementY","lastMouseEvent","MouseEventInterface","getEventModifierState","SyntheticMouseEvent","DragEventInterface","SyntheticDragEvent","FocusEventInterface","SyntheticFocusEvent","AnimationEventInterface","SyntheticAnimationEvent","ClipboardEventInterface","SyntheticClipboardEvent","CompositionEventInterface","SyntheticCompositionEvent","normalizeKey","translateToKey","modifierKeyToProp","modifierStateGetter","keyArg","KeyboardEventInterface","SyntheticKeyboardEvent","PointerEventInterface","SyntheticPointerEvent","TouchEventInterface","SyntheticTouchEvent","TransitionEventInterface","SyntheticTransitionEvent","WheelEventInterface","SyntheticWheelEvent","ToggleEventInterface","SyntheticToggleEvent","END_KEYCODES","canUseCompositionEvent","documentMode","canUseTextInputEvent","useFallbackCompositionData","SPACEBAR_CHAR","hasSpaceKeypress","isFallbackCompositionEnd","domEventName","getDataFromCustomEvent","isComposing","getNativeBeforeInputChars","getFallbackBeforeInputChars","supportedInputTypes","isTextInputElement","nodeName","createAndAccumulateChangeEvent","dispatchQueue","accumulateTwoPhaseListeners","activeElement$1","activeElementInst$1","runEventInBatch","processDispatchQueue","getInstIfValueChanged","getTargetInstForChangeEvent","isInputEventSupported","JSCompiler_inline_result$jscomp$286","isSupported$jscomp$inline_427","element$jscomp$inline_428","stopWatchingForValueChange","handlePropertyChange","handleEventsForInputEventPolyfill","getTargetInstForInputEventPolyfill","getTargetInstForClickEvent","getTargetInstForInputOrChangeEvent","is","y","objectIs","shallowEqual","objA","objB","keysA","keysB","currentKey","getLeafNode","getNodeForCharacterOffset","offset","nodeEnd","containsNode","outerNode","innerNode","getActiveElementDeep","hasSelectionCapabilities","skipSelectionChangeEvent","activeElement","activeElementInst","lastSelection","mouseDown","constructSelectEvent","makePrefixMap","styleProp","eventName","prefixes","vendorPrefixes","prefixedEventNames","getVendorPrefixedEventName","prefixMap","ANIMATION_END","ANIMATION_ITERATION","ANIMATION_START","TRANSITION_RUN","TRANSITION_START","TRANSITION_CANCEL","TRANSITION_END","topLevelEventsToReactNames","simpleEventPluginEvents","registerSimpleEvent","concurrentQueues","concurrentQueuesIndex","concurrentlyUpdatedLanes","finishQueueingConcurrentUpdates","endIndex","queue","pending","markUpdateLaneFromFiberToRoot","enqueueUpdate$1","enqueueConcurrentHookUpdate","getRootForUpdatedFiber","enqueueConcurrentRenderForLane","sourceFiber","isHidden","nestedUpdateCount","rootWithNestedUpdates","emptyContextObject","FiberNode","pendingProps","mode","createFiberImplClass","shouldConstruct","createWorkInProgress","current","resetWorkInProgress","createFiberFromTypeAndProps","owner","fiberTag","isHostHoistableType","createFiberFromFragment","elements","createFiberFromText","content","createFiberFromDehydratedFragment","dehydratedNode","createFiberFromPortal","portal","CapturedStacks","createCapturedValueAtFiber","source","existing","forkStack","forkStackIndex","treeForkProvider","treeForkCount","idStack","idStackIndex","treeContextProvider","treeContextId","treeContextOverflow","pushTreeFork","totalChildren","pushTreeId","baseIdWithLeadingBit","baseLength","numberOfOverflowBits","pushMaterializedTreeId","popTreeContext","restoreSuspendedTreeContext","suspendedContext","hydrationParentFiber","nextHydratableInstance","hydrationErrors","rootOrSingletonContext","HydrationMismatchException","throwOnHydrationMismatch","queueHydrationError","prepareToHydrateHostInstance","instance","listenToNonDelegatedEvent","mediaEventTypes","checkForUnmatchedText","popToNextHostParent","popHydrationState","JSCompiler_temp","shouldSetTextContent","getNextHydratableInstanceAfterHydrationBoundary","isSingletonScope","previousHydratableOnEnteringScopedSingleton","getNextHydratable","resetHydrationState","upgradeHydrationErrorsToRecoverable","queuedErrors","workInProgressRootRecoverableErrors","valueCursor","currentlyRenderingFiber$1","lastContextDependency","pushProvider","providerFiber","nextValue","popProvider","scheduleContextWorkOnParentPath","propagationRoot","propagateContextChanges","contexts","forcePropagateEntireTree","list","nextFiber","dependency","propagateParentContextChanges","isInsidePropagationBailout","currentParent","checkIfContextChanged","currentDependencies","prepareToReadContext","readContext","readContextForConsumer","readContextDuringReconciliation","consumer","AbortControllerLocal","listeners","signal","listener","scheduleCallback$2","NormalPriority","CacheContext","createCache","releaseCache","cache","currentEntangledListeners","currentEntangledPendingCount","currentEntangledLane","currentEntangledActionThenable","entangleAsyncAction","transition","entangledListeners","requestTransitionLane","resolve","pingEngtangledActionScope","chainThenableValue","thenableWithOverride","prevOnStartTransitionFinish","globalMostRecentTransitionTime","resumedCache","peekCacheFromPool","cacheResumedFromPreviousRender","workInProgressRoot","pushTransition","offscreenWorkInProgress","prevCachePool","getSuspendedCache","cacheFromPool","SuspenseException","SuspenseyCommitException","SuspenseActionException","noopSuspenseyCommitThenable","isThenableResolved","trackUsedThenable","thenableState","checkIfUseWrappedInAsyncCatch","fulfilledThenable","rejectedThenable","suspendedThenable","resolveLazy","lazyType","getSuspendedThenable","rejectedReason","thenableState$1","thenableIndexCounter$1","unwrapThenable","coerceRef","throwOnInvalidObjectTypeImpl","returnFiber","newChild","createChildReconciler","shouldTrackSideEffects","deleteChild","childToDelete","deletions","deleteRemainingChildren","currentFirstChild","mapRemainingChildren","existingChildren","useFiber","placeChild","newFiber","lastPlacedIndex","newIndex","placeSingleChild","updateTextNode","textContent","updateElement","elementType","updateFragment","updatePortal","fragment","createChild","updateSlot","oldFiber","updateFromMap","newIdx","reconcileChildrenArray","newChildren","resultingFirstChild","previousNewFiber","nextOldFiber","reconcileChildrenIterator","step","reconcileChildFibersImpl","firstChildFiber","reconcileChildFibers","mountChildFibers","hasForceUpdate","initializeUpdateQueue","cloneUpdateQueue","createUpdate","enqueueUpdate","updateQueue","executionContext","entangleTransitions","queueLanes","enqueueCapturedUpdate","capturedUpdate","newFirst","newLast","clone","didReadFromEntangledAsyncAction","suspendIfUpdateReadFromEntangledAsyncAction","entangledActionThenable","processUpdateQueue","workInProgress$jscomp$0","instance$jscomp$0","firstBaseUpdate","lastBaseUpdate","pendingQueue","lastPendingUpdate","firstPendingUpdate","newState","isHiddenUpdate","workInProgressRootRenderLanes","workInProgressRootSkippedLanes","callCallback","commitCallbacks","callbacks","currentTreeHiddenStackCursor","prevEntangledRenderLanesCursor","pushHiddenContext","entangledRenderLanes","reuseHiddenContextOnStack","popHiddenContext","suspenseHandlerStackCursor","shellBoundary","pushPrimaryTreeSuspenseHandler","handler","suspenseStackCursor","pushDehydratedActivitySuspenseHandler","pushOffscreenSuspenseHandler","reuseSuspenseHandlerOnStack","popSuspenseHandler","findFirstSuspended","row","state","isSuspenseInstancePending","isSuspenseInstanceFallback","currentlyRenderingFiber","currentHook","workInProgressHook","didScheduleRenderPhaseUpdate","didScheduleRenderPhaseUpdateDuringThisPass","shouldDoubleInvokeUserFnsInHooksDEV","localIdCounter","thenableIndexCounter","globalClientIdCounter","throwInvalidHookError","areHookInputsEqual","nextDeps","prevDeps","renderWithHooks","secondArg","nextRenderLanes","HooksDispatcherOnMount","HooksDispatcherOnUpdate","renderWithHooksAgain","finishRenderingHooks","ContextOnlyDispatcher","didRenderTooFewHooks","didReceiveUpdate","numberOfReRenders","HooksDispatcherOnRerender","TransitionAwareHostComponent","dispatcher","maybeThenable","useThenable","checkDidRenderIdHook","didRenderIdHook","bailoutHooks","resetHooksOnUnwind","mountWorkInProgressHook","hook","updateWorkInProgressHook","nextCurrentHook","nextWorkInProgressHook","createFunctionComponentUpdateQueue","use","useMemoCache","memoCache","basicStateReducer","updateReducer","updateReducerImpl","baseQueue","baseFirst","newBaseQueueFirst","newBaseQueueLast","didReadFromEntangledAsyncAction$60","revertLane","rerenderReducer","dispatch","lastRenderPhaseUpdate","updateSyncExternalStore","isHydrating$jscomp$0","snapshotChanged","updateEffect","subscribeToStore","pushSimpleEffect","updateStoreInstance","pushStoreConsistencyCheck","renderedSnapshot","nextSnapshot","checkIfSnapshotChanged","forceStoreRerender","latestGetSnapshot","scheduleUpdateOnFiber","mountStateImpl","initialStateInitializer","updateOptimisticImpl","dispatchActionState","actionQueue","setPendingState","setState","isRenderPhaseUpdate","actionNode","runActionStateAction","prevState","handleActionReturnValue","onActionError","error$66","nextState","onActionSuccess","notifyActionListeners","actionStateReducer","oldState","mountActionState","initialStateProp","ssrFormState","JSCompiler_inline_result$jscomp$0","inRootOrSingleton","dispatchSetState","dispatchOptimisticSetState","updateActionState","stateHook","updateActionStateImpl","currentStateHook","actionStateActionEffect","rerenderActionState","updateRef","mountEffectImpl","fiberFlags","hookFlags","updateEffectImpl","mountEffect","useEffectEventImpl","componentUpdateQueue","events","updateEvent","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","refCleanup","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","nextCreate","mountDeferredValueImpl","requestDeferredLane","updateDeferredValueImpl","prevValue","startTransition","pendingState","finishedState","thenableForFinishedState","dispatchSetStateInternal","requestUpdateLane","startHostTransition","formFiber","formData","ensureFormComponentIsStateful","requestFormReset$1","existingStateHook","initialResetState","useHostTransitionStatus","updateId","updateRefresh","refreshCache","provider","root$69","dispatchReducerAction","enqueueRenderPhaseUpdate","entangleTransitionUpdate","currentState","eagerState","throwIfDuringRender","identifierPrefix","idWithLeadingBit","booleanOrThenable","applyDerivedStateFromProps","getDerivedStateFromProps","nextProps","classComponentUpdater","checkShouldComponentUpdate","oldProps","newProps","nextContext","callComponentWillReceiveProps","resolveClassComponentProps","baseProps","propName$73","defaultOnUncaughtError","defaultOnCaughtError","defaultOnRecoverableError","logUncaughtError","errorInfo","onUncaughtError","e$74","logCaughtError","boundary","onCaughtError","e$75","createRootErrorUpdate","createClassErrorUpdate","initializeClassErrorUpdate","getDerivedStateFromError","legacyErrorBoundariesThatAlreadyFailed","stack","throwException","rootRenderLanes","renderDidSuspendDelayIfPossible","workInProgressRootExitStatus","attachPingListener","wrapperError","workInProgressRootConcurrentErrors","SelectiveHydrationException","reconcileChildren","nextChildren","updateForwardRef","propsWithoutRef","bailoutOnAlreadyFinishedWork","updateMemoComponent","updateSimpleMemoComponent","checkScheduledUpdateOrContext","prevProps","updateFunctionComponent","updateOffscreenComponent","deferHiddenOffscreenComponent","bailoutOffscreenComponent","nextBaseLanes","remainingChildLanes","mountActivityChildren","mountWorkInProgressOffscreenFiber","retryActivityComponentWithoutHydrating","updateActivityComponent","didSuspend","canHydrateHydrationBoundary","dehydrated","markRef","replayFunctionComponent","updateClassComponent","contextType","unresolvedOldProps","oldContext","contextType$jscomp$0","mountHostRootWithoutHydrating","SUSPENDED_MARKER","mountSuspenseOffscreenState","getRemainingWorkInPrimaryTree","primaryTreeDidDefer","workInProgressDeferredLane","updateSuspenseComponent","showFallback","nextPrimaryChildren","mountSuspensePrimaryChildren","retrySuspenseComponentWithoutHydrating","digest","primaryChildren","offscreenProps","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","isBackwards","tail","lastContentRow","tailMode","renderState","updateSuspenseListComponent","revealOrder","suspenseContext","shouldForceFallback","attemptEarlyBailoutIfNoScheduledUpdate","state$102","didSuspendBefore","beginWork","$$typeof","getResource","getOwnerDocumentFromRootContainer","setInitialProperties","resolveSingletonInstance","canHydrateInstance","canHydrateTextInstance","markUpdate","preloadInstanceAndSuspendIfNeeded","shouldRemainOnPreviousScreen","preloadResourceAndSuspendIfNeeded","resource","preloadResource","scheduleRetryEffect","retryQueue","workInProgressSuspendedRetryLanes","cutOffTailIfNeeded","hasRenderedATailFallback","lastTailNode","lastTailNode$106","bubbleProperties","completedWork","didBailout","newChildLanes","subtreeFlags","child$107","completeWork","nextResource","ownerDocument","listenToAllSupportedEvents","workInProgressRootRenderTargetTime","unwindWork","unwindInterruptedWork","interruptedWork","commitHookEffectListMount","flags","finishedWork","lastEffect","firstEffect","captureCommitPhaseError","commitHookEffectListUnmount","nearestMountedAncestor$jscomp$0","destroy","nearestMountedAncestor","destroy_","commitClassCallbacks","safelyCallComponentWillUnmount","safelyAttachRef","instanceToUse","safelyDetachRef","error$140","commitHostMount","commitHostUpdate","domElement","updateProperties","isHostParent","getHostSibling","insertOrAppendPlacementNodeIntoContainer","before","insertOrAppendPlacementNode","commitHostSingletonAcquisition","singleton","attributes","offscreenSubtreeIsHidden","offscreenSubtreeWasHidden","needsFormReset","PossiblyWeakSet","nextEffect","commitBeforeMutationEffects","eventsEnabled","_enabled","selection","anchorOffset","focusNode","indexWithinAnchor","indexWithinFocus","next","selectionInformation","resolvedPrevProps","clearContainerSparingly","commitLayoutEffectOnFiber","finishedRoot","recursivelyTraverseLayoutEffects","error$139","commitActivityHydrationCallbacks","commitSuspenseHydrationCallbacks","retryDehydratedSuspenseBoundary","registerSuspenseInstanceRetry","prevOffscreenSubtreeWasHidden","recursivelyTraverseReappearLayoutEffects","detachFiberAfterEffects","hostParent","hostParentIsContainer","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","deletedFiber","prevHostParent","prevHostParentIsContainer","releaseSingletonInstance","clearHydrationBoundary","retryIfBlockedOn","getRetryCache","retryCache","attachSuspenseRetryListeners","wakeables","wakeable","retry","resolveRetryWakeable","recursivelyTraverseMutationEffects","root$jscomp$0","parentFiber","commitMutationEffectsOnFiber","currentHoistableRoot","commitReconciliationEffects","hoistableRoot","currentResource","maybeNodes","getHydratableHoistableCache","mountHoistable","acquireResource","tagCaches","getHoistableRoot","recursivelyResetForms","globalMostRecentFallbackTime","wasHidden","prevOffscreenSubtreeIsHidden","recursivelyTraverseDisappearLayoutEffects","display","hideOrUnhideDehydratedBoundary","hostParentFiber","parent$141","before$142","parent$143","before$144","finishedRoot$jscomp$0","includeWorkInProgressEffects","hiddenCallbacks","commitOffscreenPassiveMountEffects","previousCache","commitCachePassiveMountEffect","recursivelyTraversePassiveMountEffects","committedLanes","committedTransitions","commitPassiveMountOnFiber","_finishedWork$memoize2","id","onPostCommit","recursivelyTraverseAtomicPassiveEffects","recursivelyTraverseReconnectPassiveEffects","committedLanes$jscomp$0","committedTransitions$jscomp$0","suspenseyCommitFlag","recursivelyAccumulateSuspenseyCommit","suspendedState","accumulateSuspenseyCommitOnFiber","suspendResource","previousHoistableRoot","detachAlternateSiblings","previousFiber","recursivelyTraversePassiveUnmountEffects","commitPassiveUnmountEffectsInsideOfDeletedTree_begin","commitPassiveUnmountOnFiber","recursivelyTraverseDisconnectPassiveEffects","deletedSubtreeRoot","sibling","DefaultAsyncDispatcher","resourceType","cacheForType","PossiblyWeakMap","workInProgressSuspendedReason","workInProgressThrownValue","workInProgressRootDidSkipSuspendedSiblings","workInProgressRootIsPrerendering","workInProgressRootDidAttachPingListener","workInProgressRootInterleavedUpdatedLanes","workInProgressRootPingedLanes","workInProgressRootDidIncludeRecursiveRenderUpdate","workInProgressTransitions","pendingEffectsStatus","pendingEffectsRoot","pendingFinishedWork","pendingEffectsLanes","pendingEffectsRemainingLanes","pendingPassiveTransitions","pendingRecoverableErrors","prepareFreshStack","markRootSuspended","ensureRootIsScheduled","performWorkOnRoot","forceSync","shouldTimeSlice","exitStatus","renderRootConcurrent","renderRootSync","renderWasConcurrent","isRenderConsistentWithExternalStores","wasRootDehydrated","scheduleTimeout","commitRootWhenReady","recoverableErrors","transitions","didIncludeRenderPhaseUpdate","didSkipSuspendedSiblings","suspendedCommitReason","completedRenderStartTime","completedRenderEndTime","timeoutOffset","waitForCommitToBeReady","commitRoot","check","didAttemptEntireTree","index$6","flushSyncWorkAcrossRoots_impl","resetWorkInProgressStack","timeoutHandle","cancelTimeout","allEntangledLanes","index$4","handleThrow","thrownValue","pushDispatcher","prevDispatcher","pushAsyncDispatcher","prevAsyncDispatcher","shouldYieldForPrerendering","prevExecutionContext","unitOfWork","reason","throwAndUnwindWorkLoop","workLoopSync","thrownValue$165","performUnitOfWork","replaySuspendedUnitOfWork","hostFiber","completeUnitOfWork","workLoopConcurrentByScheduler","thrownValue$167","suspendedReason","unwindUnitOfWork","skipSiblings","flushPendingEffects","scheduleCallback$1","flushPassiveEffects","flushMutationEffects","flushLayoutEffects","flushSpawnedWork","rootMutationHasEffect","priorSelectionInformation","curFocusedElem","priorFocusedElem","priorSelectionRange","win","start$jscomp$0","end$jscomp$0","startMarker","endMarker","range","rootHasLayoutEffect","releaseRootPooledCache","onRecoverableError","recoverableError","renderPriority","captureCommitPhaseErrorOnRoot","rootFiber","pingCache","threadIDs","pingSuspendedRoot","retryTimedOutBoundary","boundaryFiber","retryLane","firstScheduledRoot","lastScheduledRoot","didScheduleMicrotask","mightHavePendingSyncWork","isFlushingWork","currentEventTransitionLane","scheduleImmediateRootScheduleTask","syncTransitionLanes","onlyLegacy","didPerformSomeWork","root$170","performSyncWorkOnRoot","processRootScheduleInImmediateTask","processRootScheduleInMicrotask","shouldAttemptEagerTransition","prev","scheduleTaskForRootDuringMicrotask","index$5","expirationTime","performWorkOnRootViaSchedulerTask","didTimeout","originalCallbackNode","workInProgressRootRenderLanes$jscomp$0","scheduleMicrotask","actionScopeLane","coerceFormActionProp","actionProp","createFormDataWithSubmitter","submitter","temp","extractEvents$1","maybeTargetInst","i$jscomp$inline_1577","eventName$jscomp$inline_1578","domEventName$jscomp$inline_1579","capitalizedEvent$jscomp$inline_1580","nonDelegatedEvents","eventSystemFlags","_dispatchQueue$i","previousInstance","i$jscomp$0","_dispatchListeners$i","currentTarget","targetElement","listenerSetKey","addTrappedEventListener","listenToNativeEvent","isCapturePhaseListener","listeningMarker","rootContainerElement","targetContainer","listenerWrapper","dispatchDiscreteEvent","dispatchContinuousEvent","dispatchEvent","dispatchEventForPluginEventSystem","targetInst$jscomp$0","ancestorInst","nodeTag","grandTag","SyntheticEventCtor","inCapturePhase","accumulateTargetOnly","reactEventName","lastHostComponent","_instance","createDispatchListener","getParent","tempB","accumulateEnterLeaveListenersForEvent","getTargetInstFunc","handleEventFunc","fallbackData","eventType","targetFiber","captureName","_instance2","common","_instance3","NORMALIZE_NEWLINES_REGEX","NORMALIZE_NULL_AND_REPLACEMENT_REGEX","normalizeMarkupForTextOrAttribute","markup","serverText","clientText","setProp","setPropOnCustomElement","hasSrc","hasSrcSet","propKey","propValue$184","lastProps","lastProp","propKey$201","propKey$217","propKey$222","propKey$227","propKey$232","isLikelyStaticResource","initiatorType","estimateBandwidth","bits","resourceEntries","entry","transferSize","duration","overlapEntry","overlapStartTime","overlapTransferSize","overlapInitiatorType","namespaceURI","parentNamespace","currentPopstateTransitionEvent","localPromise","handleErrorInNextTick","parentInstance","hydrationInstance","depth","nextNode","node$jscomp$0","nextNode$jscomp$0","suspenseInstance","anyProps","nodeType","data","targetInstance","rootContainerInstance","preloadPropsMap","preconnectsSet","previousDispatcher","flushSyncWork","requestFormReset","prefetchDNS","preconnect","preload","preloadModule","preinitScript","preinitStyle","preinitModuleScript","previousWasRendering","wasRendering","formInst","globalDocument","preconnectAs","rel","limitedEscapedHref","preloadSelector","getStyleKey","getScriptKey","getStylesheetSelectorFromKey","getScriptSelectorFromKey","precedence","adoptPreloadPropsForStylesheet","link","reject","insertStylesheet","src","scripts","adoptPreloadPropsForScript","currentProps","styles$243","resource$244","preloadStylesheet","stylesheetPropsFromRawProps","rawProps","preloadProps","styleProps","instance$249","linkInstance","nodes","prior","stylesheetProps","scriptProps","keyAttribute","caches","nodeKey","hostContext","onUnsuspend","estimatedBytesWithinLimit","insertSuspendedStylesheets","commit","stylesheetTimer","unsuspend","imgTimer","precedencesByRoot","insertStylesheetIntoRoot","precedences","FiberRootNode","hydrate","onDefaultTransitionIndicator","formState","createFiberRoot","initialChildren","hydrationCallbacks","isStrictMode","getContextForSubtree","parentComponent","updateContainerImpl","markRetryLaneImpl","markRetryLaneIfNotHydrated","attemptContinuousHydration","attemptHydrationAtCurrentPriority","blockedOn","findInstanceBlockingEvent","return_targetInst","clearIfContinuousEvent","queueIfContinuousEvent","discreteReplayableEvents","findInstanceBlockingTarget","hasScheduledReplayAttempt","queuedFocus","queuedDrag","queuedMouse","queuedPointers","queuedPointerCaptures","queuedExplicitHydrationTargets","accumulateOrCreateContinuousQueuedReplayableEvent","existingQueuedEvent","pointerId","attemptExplicitHydrationTarget","queuedTarget","attemptReplayContinuousQueuedEvent","queuedEvent","targetContainers","nextBlockedOn","nativeEventClone","attemptReplayContinuousQueuedEventInMap","map","replayUnblockedEvents","scheduleCallbackIfUnblocked","unblocked","lastScheduledReplayQueue","scheduleReplayQueueIfNeeded","formReplayingQueue","submitterOrAction","unblock","formProps","defaultOnDefaultTransitionIndicator","handleNavigate","pendingResolve","handleNavigateComplete","isCancelled","startFakeNavigation","currentEntry","ReactDOMRoot","internalRoot","ReactDOMHydrationRoot","isomorphicReactPackageVersion$jscomp$inline_1840","componentOrElement","internals$jscomp$inline_2347","hook$jscomp$inline_2348","reactDomClient_production","clientModule","jsxProd","maybeKey","reactJsxRuntime_production","jsxRuntimeModule","mergeClasses","classes","className","toKebabCase","string","toCamelCase","p1","p2","toPascalCase","camelCase","defaultAttributes","hasA11yProp","prop","Icon","forwardRef","color","strokeWidth","absoluteStrokeWidth","iconNode","rest","createElement","attrs","createLucideIcon","iconName","ArrowUpRight","ArrowUp","Flag","Maximize2","MessageSquare","Minimize2","Send","Square","ThumbsDown","ThumbsUp","X","assistantContent","publisherAssistantStyles","PublisherAssistantComposer","onChange","onSend","onStop","onSuggestion","suggestions","registerSuggestion","open","onOpenChange","loading","analyzing","compact","expanded","suggestionPlacement","showLogo","logoUrl","title","placeholder","colors","useId","composerRef","useRef","inputRef","dropdownRef","position","setPosition","useState","visible","useLayoutEffect","reposition","anchor","_a","viewportHeight","_b","viewportWidth","spaceBelow","spaceAbove","above","dismissOutside","closeOnBlur","submit","jsxs","Fragment","jsx","createPortal","buttons","_c","_d","suggestion","isProduction","logger","args","calculateMRCStandards","adWidth","adHeight","customStandards","isLargeAd","detectDeviceType","calculateVisibilityPercentage","rect","elementHeight","elementWidth","visibleTop","visibleBottom","visibleLeft","visibleRight","visibleHeight","visibleWidth","visibleArea","totalArea","calculateScrollDepth","windowHeight","documentHeight","scrollTop","scrollableHeight","getElementPosition","scrollLeft","collectContextMetrics","isDarkMode","generateSessionId","meetsViewabilityThreshold","visibilityPercentage","visibleDuration","standards","formatTimestamp","date","calculateAverage","numbers","acc","num","throttle","limit","inThrottle","globalConfig","ANALYTICS_DISABLED","useViewabilityTracker","productId","offerId","agentId","recommendationId","elementRef","customConfig","sessionId","mrcStandards","visibilityStartTime","viewableStartTime","hoverStartTime","focusStartTime","visibilityPercentages","eventBatch","batchTimeout","useCallback","message","sendEvent","additionalData","contextMetrics","flushBatch","updateVisibility","loadTime","wasVisible","isNowVisible","wasViewable","isNowViewable","viewableDuration","useEffect","observer","entries","handleScroll","handleMouseEnter","handleMouseLeave","hoverDuration","handleFocus","handleBlur","focusDuration","handleClick","sessionDuration","AdMeshViewabilityTracker","exposureUrl","triggerExposureUrl","onViewabilityChange","onVisible","onViewable","onClick","exposureFired","viewabilityState","previousViewable","previousVisible","isValidUrl","getDisplayText","asOptionalString","getCTALabel","ctaLabel","formatProductPrice","price","currency","AdMeshCompactCard","recommendations","theme","onDelegationConsent","onDelegationActivated","onStartDelegation","onRecommendationReport","firstRecommendation","recommendation","creative","tracking","delegation","brandName","headline","description","clickUrl","disclosure","relatedProducts","visibleProducts","hasProductRail","isBridgeRecommendation","hasDelegation","shouldShowDelegationButton","delegationBrandName","delegationCtaText","shouldShowPrimaryCta","compactTitle","compactSummary","normalizedBrandName","normalizedCompactTitle","shouldShowBrandEyebrow","showConsentPrompt","setShowConsentPrompt","isConsentConnecting","setIsConsentConnecting","reportMenuOpen","setReportMenuOpen","submittedReportReason","setSubmittedReportReason","consentResolverRef","resolveConsentPrompt","requestConsent","handleContainerClick","e","reportReasons","handleReportButtonClick","handleReportReasonClick","handleCardClick","handleCardKeyDown","trackDelegationEngagement","apiBaseUrl","response","handleDelegationClick","delegationPayload","logoError","setLogoError","cardBackground","cardBorder","cardShadow","_e","_g","_f","accentColor","mutedText","bodyText","titleText","railCardBackground","textColumnOffset","footerAction","_i","_h","product","productName","productLink","productPrice","productImageUrl","displayImage","hasProductLink","AdMeshLayout","validRecs","rec","renderContent","firstRec","preferredFormat","AdMeshTracker","__publicField","timeoutId","cleanupTimeout","threshold","engagementUrl","_recommendationId","titleFromPath","pathname","segments","cleaned","char","extractHeadingsDirectly","cleanText","getArticleText","selectors","ignoredSelector","selector","candidate","paragraphs","fallbackTitle","headings","allHeadings","headingElements","resolvedHeadings","isPlatformResponse","normalizeAcieRecommendation","products","_j","_k","normalizeCommercialIntentResult","extractArticleSlug","pathSegments","segment","callAnalyzeIntentEndpoint","headingsData","pathTopic","fallbackHeading","articleSlug","normalizedSource","normalizedDomain","apiUrl","errorText","rawAnalysisResult","analysisResult","fetchPageContext","base","params","body","isInIframe","getUsableWindowHref","isResolvedArticleUrl","trimmed","parsed","titleFromUrlPath","buildUrlFallbackContext","DELEGATION_HEARTBEAT_INTERVAL_MS","DELEGATION_IDLE_HEARTBEATS_BEFORE_STOP","resolveArticleUrlForContext","articleUrl","currentHref","AdMeshProvider","apiKey","skipSdkInitialization","extension","language","location","userId","model","messages","pageContext","contextMode","agentDisplayId","sdk","setSdk","processedMessageIds","setProcessedMessageIds","recommendationResults","setRecommendationResults","activeDelegationSession","setActiveDelegationSessionState","setSuggestions","isAnalyzingIntent","setIsAnalyzingIntent","intentError","setIntentError","isResolvingPageContext","setIsResolvingPageContext","hasAttemptedInitialAnalysisRef","heartbeatsSinceLastUserTurnRef","trackedDelegationSessionIdRef","activeDelegationSessionRef","usesAdSlotContext","resolveHeadingsForAnalysis","targetUrl","prependSponsoredSuggestion","currentSuggestions","sponsoredSuggestion","organicSuggestions","mergeOrganicSuggestions","nextOrganicSuggestions","sdkInstance","AdMeshSDK","performIntentAnalysis","prefetchedHeadingsData","prefetchSponsoredSuggestion","query","platformResult","suggestionText","retryIntentAnalysis","isDelegationSessionActive","session","expiresAtMs","postDelegationEvent","endpoint","metadata","sessionOverride","timestamp","errorBody","updatedSession","recordDelegationUserTurn","stopDelegationSession","analyticsError","refreshDelegationActivity","delegationSessionId","interval","currentSession","contextValue","messageId","updated","AdMeshContext","AdMeshRenderer","existingRoot","containerId","normalizeCountryCode","_AdMeshSDK","configuredDomain","random","outcomeType","renderer","cacheKey","inFlightResponse","turnIndex","devicePlatform","formFactor","countryCode","resolvedUserId","jsonBody","_m","_l","headers","sourceDomain","requestPromise","errorMessage","createContext","useAdMeshContext","useContext","useAdMesh","PlusIcon","AdMeshFollowup","_theme","onExecuteQuery","followupSuggestion","followupQuery","followupEngagementUrl","followupExposureUrl","handleFollowupClick","AdMeshRecommendations","onRecommendationsShown","onError","propUserId","initialRecommendation","followups_container_id","onPasteToInput","onFollowupDetected","isContainerReady","contextUserId","getRecommendationResult","hasRecommendationResult","setRecommendationResult","setActiveDelegationSession","hasActiveDelegationSession","isFilledAuctionResponse","setPlatformResult","detectedFormat","setDetectedFormat","isLoading","setIsLoading","setError","fetchedMessageIdRef","isFetchingRef","reusedInitialRecommendationRef","onRecommendationsShownRef","onErrorRef","hasActiveDelegatedSessionForConversation","storedResult","selectedFormat","canonicalResponse","initialStatus","resultStatus","handleSdkDelegationActivated","activation","resolvedPayload","activeSession","eventError","callbackError","handleRecommendationReport","followupContainer","ADMESH_STYLE_ID","ADMESH_RESET_ID","ADMESH_CSS_RESET","ADMESH_CORE_STYLES","injectAdMeshStyles","resetStyle","coreStyle","ADMESH_STYLES","stylesInjected","useAdMeshStyles","styleElement","ignoreSuggestionDropdown","formatGenerationDuration","totalSeconds","seconds","minutes","remainder","formatGenerationDurationFromMs","durationMs","CustomMarkdownRenderer","fontSize","renderInlineFormatting","part","linkMatch","parseTableRow","line","cell","cells","isTableSeparator","splitTablePrefixHeading","pipeIndex","normalizeTableSeparator","headerLine","separatorLine","headerCount","separatorCount","normalizeTableLines","lines","heading","normalizedHeader","normalizedSeparator","isMarkdownTable","normalizedLines","expandInlineTableLine","working","_match","separatorRow","normalizeCompactMarkdownTables","markdown","normalized","blocks","output","nextLine","block","blockIndex","isBulletList","isNumberedList","isHeading","isTable","tableLines","rows","header","rowIndex","cellIndex","ListTag","lineIndex","toCssSize","toNumericCssSize","numeric","normalizeSuggestionText","mergeSuggestionsPreservingOrganic","nextSuggestions","currentOrganicSuggestions","buildFollowupSuggestionsFromAnswer","answer","sourceLinks","relatedItems","seen","pushSuggestion","topics","collectTopic","item","cleanQuery","topicList","detectAssistantDeviceType","width","getExpandedOverlayLayout","isMobile","isResolvedPageUrl","getAssistantPageContext","pageUrlOverride","resolvedPageUrl","page_path","buildSponsoredSuggestionFromRecommendation","prioritizeSponsoredSuggestions","items","leftSponsored","rightSponsored","defaultTheme","sizeConfig","positionConfig","AdMeshIntentAssistant","propTheme","triggerLabel","headerTitle","headerLogoUrl","showHeader","showHeaderTitle","showSubtitle","layout","surface","adSlotBehavior","showCompactSlotHeader","showCompactWelcomeMessage","showCompactSlotInput","showCompactSlotDisclaimer","panelWidth","panelHeight","analyticsPageUrl","fontScale","defaultOpen","autoOpen","showWelcomeMessage","welcomeMessage","adsEnabled","propSuggestions","maxSuggestions","suggestionStyle","suggestionTrigger","sponsoredCreativePlacement","onlyShowWhenSponsored","variant","queryHandler","suggestionsLoader","disclaimerText","poweredByLabel","subtitle","relatedItemsHeading","onOpen","onClose","contextTheme","contextSuggestions","themeMode","isAdSlotSurface","isAdSlotCompactLayout","forOverlay","internalOpen","setInternalOpen","isControlled","isOpen","inputValue","setInputValue","suggestionsOpen","setSuggestionsOpen","setMessages","isExpanded","setIsExpanded","sponsoredClickedMessages","setSponsoredClickedMessages","resolvedSuggestions","setResolvedSuggestions","loadingLabelIndex","setLoadingLabelIndex","generationElapsedSec","setGenerationElapsedSec","messageFeedback","setMessageFeedback","generationStartedAtRef","currentMessageIsSponsored","currentSponsoredSuggestionRef","suggestionButtonRefs","suggestionExposureCleanupRef","messagesScrollRef","activeSubmittedMessageRef","activeSubmittedMessageIdRef","shouldAnchorSubmittedMessageRef","suppressAutoScrollToBottomRef","adSlotRootRef","messagesEndRef","suggestionsScrollRef","canScrollSuggestionsLeft","setCanScrollSuggestionsLeft","canScrollSuggestionsRight","setCanScrollSuggestionsRight","generationAbortRef","activeAssistantMessageIdRef","canUseDirectAdMeshFetch","connectedDelegationSession","trackedSuggestionExposureKeysRef","trackedRecommendationKeysRef","loadedTrackedRef","isAdSlotOverlayActive","isMobileViewport","setIsMobileViewport","mediaQuery","updateViewport","previousOverflow","shouldExpandAdSlot","adSlotWidthCss","adSlotHeightCss","numericAdSlotWidth","numericAdSlotHeight","isUltraCompactAdSlot","isMobileLeaderboardAdSlot","setSuggestionButtonRef","suggestionId","trackAssistantEvent","event_name","handleRecommendationShown","trackKey","refreshSuggestionsForResponse","followupSuggestions","generated","normalizedText","upsertSponsoredFollowupSuggestion","organic","scrollSubmittedMessageToTop","scroller","activeMessage","scrollerRect","activeMessageRect","targetTop","mountNode","nextHeight","host","cancelled","loadError","tick","startedAt","handleOpenChange","newOpen","handleOpenClick","handleCloseClick","handleToggleExpand","callAssistantAPI","onContentChunk","onStreamStart","sponsoredRecommendation","conversationHistory","activityError","reader","decoder","fullResponse","finalSourceLinks","finalRelatedItems","finalFollowupSuggestions","finalUsedCapability","finalResponseTimeMs","done","parsedData","handleStopGeneration","controller","activeAssistantMessageId","msg","handleSendMessage","normalizedMessage","userMessageId","generationController","activeSponsoredSuggestion","activeSponsoredRecommendation","userMessage","assistantMessageId","initialAssistantMessage","queryError","errorResponse","assistantMessage","sponsoredRecommendationForMessage","contentChunk","resolvedResponseTimeMs","hasSponsoredSuggestions","useMemo","s","safeSuggestions","orderedSuggestions","sponsoredCreativeSuggestion","handleSuggestionClick","suggestionPosition","positionStyle","sizeStyle","cleanup","exposureKey","viewableTimer","fireSuggestionExposure","fontSizes","genericDisclaimer","loadingSteps","renderGeneratingIndicator","accent","publisherAccent","meta","publisherMeta","includeSteps","timerLabel","statusLabel","withAlpha","brandPrimary","handleAnswerFeedback","helpful","feedbackValue","renderAnswerFooter","selectedFeedback","hasTiming","brandBorder","brandSurface","updateSuggestionScrollState","maxScrollLeft","scrollSuggestions","direction","hex","alpha","raw","full","red","green","blue","brandBackground","brandText","brandMuted","purpleBorderSoft","publisherSurfaceBg","sendButtonTextColor","assistantSubtitle","shouldShowSuggestionSkeletons","expandedShellBackground","expandedHeaderBackground","expandedBorder","expandedBorderStrong","expandedShadow","expandedMutedText","expandedSubtleText","expandedUserBubble","expandedComposerBackground","expandedComposerShadow","expandedOverlay","renderDelegationBanner","renderExpandedBranding","mobileExpanded","disclaimerFontSize","renderSuggestionSkeletons","skeletonWidths","renderPublisherSuggestions","ultraCompact","visibleSuggestions","renderSponsoredCreativeCard","shownMessageId","recommendationError","renderSourceLinks","renderRelatedItems","renderPublisherMessages","messageFontSize","isActiveSubmittedMessage","shouldShowRecommendations","renderExpandedOverlayPortal","panel","overlayLayout","expandedOverlayBackdropStyle","renderTeaser","panelExpanded","useInputSuggestions","showMessagesInTeaser","expandedOverlayLayout","mobileExpandedOverlay","teaserPanelWidth","teaserPanelHeight","teaserPanelMaxWidth","teaserPanelMaxHeight","showTeaserHeader","XIcon","SendIcon","SLUG","controllers","brandTheme","findScript","script","normalizeConfig","slug","assistantName","supportUrl","question","loadConfig","apiOrigin","createQueryHandler","preview","history","started","submitted","turn","BrandAssistantApp","setOpen","openFromHash","openFromLink","mount","scriptOrigin"],"mappings":";;;;;;;;4CAWA,IAAIA,EAAqB,OAAO,IAAI,4BAA4B,EAC9DC,EAAoB,OAAO,IAAI,cAAc,EAC7CC,EAAsB,OAAO,IAAI,gBAAgB,EACjDC,EAAyB,OAAO,IAAI,mBAAmB,EACvDC,EAAsB,OAAO,IAAI,gBAAgB,EACjDC,EAAsB,OAAO,IAAI,gBAAgB,EACjDC,EAAqB,OAAO,IAAI,eAAe,EAC/CC,EAAyB,OAAO,IAAI,mBAAmB,EACvDC,EAAsB,OAAO,IAAI,gBAAgB,EACjDC,EAAkB,OAAO,IAAI,YAAY,EACzCC,EAAkB,OAAO,IAAI,YAAY,EACzCC,EAAsB,OAAO,IAAI,gBAAgB,EACjDC,EAAwB,OAAO,SACjC,SAASC,EAAcC,EAAe,CACpC,OAAaA,IAAT,MAAuC,OAAOA,GAApB,SAA0C,MACxEA,EACGF,GAAyBE,EAAcF,CAAqB,GAC7DE,EAAc,YAAY,EACN,OAAOA,GAAtB,WAAsCA,EAAgB,KAC/D,CACA,IAAIC,EAAuB,CACvB,UAAW,UAAY,CACrB,MAAO,EACb,EACI,mBAAoB,UAAY,CAAA,EAChC,oBAAqB,UAAY,CAAA,EACjC,gBAAiB,UAAY,CAAA,GAE/BC,EAAS,OAAO,OAChBC,EAAc,CAAA,EAChB,SAASC,GAAUC,EAAOC,EAASC,EAAS,CAC1C,KAAK,MAAQF,EACb,KAAK,QAAUC,EACf,KAAK,KAAOH,EACZ,KAAK,QAAUI,GAAWN,CAC5B,CACAG,GAAU,UAAU,iBAAmB,CAAA,EACvCA,GAAU,UAAU,SAAW,SAAUI,EAAcC,EAAU,CAC/D,GACe,OAAOD,GAApB,UACe,OAAOA,GAAtB,YACQA,GAAR,KAEA,MAAM,MACJ,0GAEJ,KAAK,QAAQ,gBAAgB,KAAMA,EAAcC,EAAU,UAAU,CACvE,EACAL,GAAU,UAAU,YAAc,SAAUK,EAAU,CACpD,KAAK,QAAQ,mBAAmB,KAAMA,EAAU,aAAa,CAC/D,EACA,SAASC,IAAiB,CAAA,CAC1BA,GAAe,UAAYN,GAAU,UACrC,SAASO,GAAcN,EAAOC,EAASC,EAAS,CAC9C,KAAK,MAAQF,EACb,KAAK,QAAUC,EACf,KAAK,KAAOH,EACZ,KAAK,QAAUI,GAAWN,CAC5B,CACA,IAAIW,GAA0BD,GAAc,UAAY,IAAID,GAC5DE,GAAuB,YAAcD,GACrCT,EAAOU,GAAwBR,GAAU,SAAS,EAClDQ,GAAuB,qBAAuB,GAC9C,IAAIC,GAAc,MAAM,QACxB,SAASC,GAAO,CAAA,CAChB,IAAIC,EAAuB,CAAE,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,IAAI,EAC7DC,GAAiB,OAAO,UAAU,eACpC,SAASC,GAAaC,EAAMC,EAAKd,EAAO,CACtC,IAAIe,EAAUf,EAAM,IACpB,MAAO,CACL,SAAUnB,EACV,KAAMgC,EACN,IAAKC,EACL,IAAgBC,IAAX,OAAqBA,EAAU,KACpC,MAAOf,EAEX,CACA,SAASgB,GAAmBC,EAAYC,EAAQ,CAC9C,OAAON,GAAaK,EAAW,KAAMC,EAAQD,EAAW,KAAK,CAC/D,CACA,SAASE,GAAeC,EAAQ,CAC9B,OACe,OAAOA,GAApB,UACSA,IAAT,MACAA,EAAO,WAAavC,CAExB,CACA,SAASwC,GAAOP,EAAK,CACnB,IAAIQ,EAAgB,CAAE,IAAK,KAAM,IAAK,IAAI,EAC1C,MACE,IACAR,EAAI,QAAQ,QAAS,SAAUS,EAAO,CACpC,OAAOD,EAAcC,CAAK,CAChC,CAAK,CAEL,CACA,IAAIC,GAA6B,OACjC,SAASC,GAAcC,EAASC,EAAO,CACrC,OAAoB,OAAOD,GAApB,UAAwCA,IAAT,MAA4BA,EAAQ,KAAhB,KACtDL,GAAO,GAAKK,EAAQ,GAAG,EACvBC,EAAM,SAAS,EAAE,CACvB,CACA,SAASC,GAAgBC,EAAU,CACjC,OAAQA,EAAS,OAAM,CACrB,IAAK,YACH,OAAOA,EAAS,MAClB,IAAK,WACH,MAAMA,EAAS,OACjB,QACE,OACgB,OAAOA,EAAS,QAA7B,SACGA,EAAS,KAAKpB,EAAMA,CAAI,GACtBoB,EAAS,OAAS,UACpBA,EAAS,KACP,SAAUC,EAAgB,CACVD,EAAS,SAAvB,YACIA,EAAS,OAAS,YACnBA,EAAS,MAAQC,EACpC,EACc,SAAUC,EAAO,CACDF,EAAS,SAAvB,YACIA,EAAS,OAAS,WAAcA,EAAS,OAASE,EACtE,CACA,GACQF,EAAS,OACjB,CACQ,IAAK,YACH,OAAOA,EAAS,MAClB,IAAK,WACH,MAAMA,EAAS,MACzB,CACA,CACE,MAAMA,CACR,CACA,SAASG,EAAaC,EAAUC,EAAOC,EAAeC,EAAWhC,GAAU,CACzE,IAAIS,GAAO,OAAOoB,GACEpB,KAAhB,aAAsCA,KAAd,aAAoBoB,EAAW,MAC3D,IAAII,GAAiB,GACrB,GAAaJ,IAAT,KAAmBI,GAAiB,OAEtC,QAAQxB,GAAI,CACV,IAAK,SACL,IAAK,SACL,IAAK,SACHwB,GAAiB,GACjB,MACF,IAAK,SACH,OAAQJ,EAAS,SAAQ,CACvB,KAAKpD,EACL,KAAKC,EACHuD,GAAiB,GACjB,MACF,KAAK9C,EACH,OACG8C,GAAiBJ,EAAS,MAC3BD,EACEK,GAAeJ,EAAS,QAAQ,EAChCC,EACAC,EACAC,EACAhC,EAChB,CAEA,CACA,CACE,GAAIiC,GACF,OACGjC,GAAWA,GAAS6B,CAAQ,EAC5BI,GACQD,IAAP,GAAmB,IAAMX,GAAcQ,EAAU,CAAC,EAAIG,EACxD5B,GAAYJ,EAAQ,GACd+B,EAAgB,GACVE,IAAR,OACGF,EACCE,GAAe,QAAQb,GAA4B,KAAK,EAAI,KAChEQ,EAAa5B,GAAU8B,EAAOC,EAAe,GAAI,SAAUG,GAAG,CAC5D,OAAOA,EACnB,CAAW,GACOlC,IAAR,OACCe,GAAef,EAAQ,IACrBA,GAAWY,GACVZ,GACA+B,GACW/B,GAAS,KAAjB,MACA6B,GAAYA,EAAS,MAAQ7B,GAAS,IACnC,IACC,GAAKA,GAAS,KAAK,QAClBoB,GACA,OACE,KACRa,EAChB,GACUH,EAAM,KAAK9B,EAAQ,GACvB,EAEJiC,GAAiB,EACjB,IAAIE,GAAwBH,IAAP,GAAmB,IAAMA,EAAY,IAC1D,GAAI5B,GAAYyB,CAAQ,EACtB,QAASO,GAAI,EAAGA,GAAIP,EAAS,OAAQO,KAClCJ,EAAYH,EAASO,EAAC,EACpB3B,GAAO0B,GAAiBd,GAAcW,EAAWI,EAAC,EAClDH,IAAkBL,EACjBI,EACAF,EACAC,EACAtB,GACAT,EACV,UACaoC,GAAI9C,EAAcuC,CAAQ,EAAmB,OAAOO,IAAtB,WACvC,IACEP,EAAWO,GAAE,KAAKP,CAAQ,EAAGO,GAAI,EACjC,EAAEJ,EAAYH,EAAS,KAAI,GAAI,MAG9BG,EAAYA,EAAU,MACpBvB,GAAO0B,GAAiBd,GAAcW,EAAWI,IAAG,EACpDH,IAAkBL,EACjBI,EACAF,EACAC,EACAtB,GACAT,EACV,UACwBS,KAAb,SAAmB,CAC1B,GAAmB,OAAOoB,EAAS,MAA/B,WACF,OAAOD,EACLJ,GAAgBK,CAAQ,EACxBC,EACAC,EACAC,EACAhC,IAEJ,MAAA8B,EAAQ,OAAOD,CAAQ,EACjB,MACJ,mDACyBC,IAAtB,kBACG,qBAAuB,OAAO,KAAKD,CAAQ,EAAE,KAAK,IAAI,EAAI,IAC1DC,GACJ,4EAER,CACE,OAAOG,EACT,CACA,SAASI,EAAYR,EAAUS,EAAMzC,EAAS,CAC5C,GAAYgC,GAAR,KAAkB,OAAOA,EAC7B,IAAIU,EAAS,CAAA,EACXC,GAAQ,EACV,OAAAZ,EAAaC,EAAUU,EAAQ,GAAI,GAAI,SAAUE,GAAO,CACtD,OAAOH,EAAK,KAAKzC,EAAS4C,GAAOD,IAAO,CAC5C,CAAG,EACMD,CACT,CACA,SAASG,GAAgBC,EAAS,CAChC,GAAWA,EAAQ,UAAf,GAAwB,CAC1B,IAAIC,EAAOD,EAAQ,QACnBC,EAAOA,EAAI,EACXA,EAAK,KACH,SAAUC,EAAc,EACZF,EAAQ,UAAd,GAAgCA,EAAQ,UAAf,MAC1BA,EAAQ,QAAU,EAAKA,EAAQ,QAAUE,EACpD,EACM,SAAUlB,EAAO,EACLgB,EAAQ,UAAd,GAAgCA,EAAQ,UAAf,MAC1BA,EAAQ,QAAU,EAAKA,EAAQ,QAAUhB,EACpD,GAEWgB,EAAQ,UAAf,KAA4BA,EAAQ,QAAU,EAAKA,EAAQ,QAAUC,EACzE,CACE,GAAUD,EAAQ,UAAd,EAAuB,OAAOA,EAAQ,QAAQ,QAClD,MAAMA,EAAQ,OAChB,CACA,IAAIG,GACe,OAAO,aAAtB,WACI,YACA,SAAUnB,EAAO,CACf,GACe,OAAO,QAApB,UACe,OAAO,OAAO,YAA7B,WACA,CACA,IAAIoB,EAAQ,IAAI,OAAO,WAAW,QAAS,CACzC,QAAS,GACT,WAAY,GACZ,QACe,OAAOpB,GAApB,UACSA,IAAT,MACa,OAAOA,EAAM,SAA1B,SACI,OAAOA,EAAM,OAAO,EACpB,OAAOA,CAAK,EAClB,MAAOA,CACrB,CAAa,EACD,GAAI,CAAC,OAAO,cAAcoB,CAAK,EAAG,MAC9C,SACyB,OAAO,SAApB,UACe,OAAO,QAAQ,MAA9B,WACA,CACA,QAAQ,KAAK,oBAAqBpB,CAAK,EACvC,MACZ,CACU,QAAQ,MAAMA,CAAK,CAC7B,EACEqB,GAAW,CACT,IAAKX,EACL,QAAS,SAAUR,EAAUoB,EAAaC,EAAgB,CACxDb,EACER,EACA,UAAY,CACVoB,EAAY,MAAM,KAAM,SAAS,CAC3C,EACQC,EAER,EACI,MAAO,SAAUrB,EAAU,CACzB,IAAIsB,EAAI,EACR,OAAAd,EAAYR,EAAU,UAAY,CAChCsB,GACR,CAAO,EACMA,CACb,EACI,QAAS,SAAUtB,EAAU,CAC3B,OACEQ,EAAYR,EAAU,SAAUY,EAAO,CACrC,OAAOA,CACjB,CAAS,GAAK,CAAA,CAEd,EACI,KAAM,SAAUZ,EAAU,CACxB,GAAI,CAACd,GAAec,CAAQ,EAC1B,MAAM,MACJ,yEAEJ,OAAOA,CACb,GAEA,OAAAuB,GAAA,SAAmBhE,EACnBgE,GAAA,SAAmBJ,GACnBI,GAAA,UAAoBzD,GACpByD,GAAA,SAAmBzE,EACnByE,GAAA,SAAmBvE,EACnBuE,GAAA,cAAwBlD,GACxBkD,GAAA,WAAqBxE,EACrBwE,GAAA,SAAmBnE,EACnBmE,GAAA,gEACE9C,EACF8C,GAAA,mBAA6B,CAC3B,UAAW,KACX,EAAG,SAAUC,EAAM,CACjB,OAAO/C,EAAqB,EAAE,aAAa+C,CAAI,CACnD,GAEAD,GAAA,MAAgB,SAAUE,EAAI,CAC5B,OAAO,UAAY,CACjB,OAAOA,EAAG,MAAM,KAAM,SAAS,CACnC,CACA,EACAF,GAAA,YAAsB,UAAY,CAChC,OAAO,IACT,EACAA,GAAA,aAAuB,SAAU9B,EAASiC,EAAQ1B,EAAU,CAC1D,GAAaP,GAAT,KACF,MAAM,MACJ,wDAA0DA,EAAU,KAExE,IAAI1B,EAAQH,EAAO,GAAI6B,EAAQ,KAAK,EAClCZ,GAAMY,EAAQ,IAChB,GAAYiC,GAAR,KACF,IAAKC,MAAwBD,EAAO,MAAlB,SAA0B7C,GAAM,GAAK6C,EAAO,KAAMA,EAClE,CAAChD,GAAe,KAAKgD,EAAQC,EAAQ,GACzBA,KAAV,OACaA,KAAb,UACeA,KAAf,YACWA,KAAV,OAAiCD,EAAO,MAAlB,SACtB3D,EAAM4D,EAAQ,EAAID,EAAOC,EAAQ,GACxC,IAAIA,GAAW,UAAU,OAAS,EAClC,GAAUA,KAAN,EAAgB5D,EAAM,SAAWiC,UAC5B,EAAI2B,GAAU,CACrB,QAASC,GAAa,MAAMD,EAAQ,EAAGpB,GAAI,EAAGA,GAAIoB,GAAUpB,KAC1DqB,GAAWrB,EAAC,EAAI,UAAUA,GAAI,CAAC,EACjCxC,EAAM,SAAW6D,EACrB,CACE,OAAOjD,GAAac,EAAQ,KAAMZ,GAAKd,CAAK,CAC9C,EACAwD,GAAA,cAAwB,SAAUM,EAAc,CAC9C,OAAAA,EAAe,CACb,SAAU3E,EACV,cAAe2E,EACf,eAAgBA,EAChB,aAAc,EACd,SAAU,KACV,SAAU,MAEZA,EAAa,SAAWA,EACxBA,EAAa,SAAW,CACtB,SAAU5E,EACV,SAAU4E,GAELA,CACT,EACAN,GAAA,cAAwB,SAAU3C,EAAM8C,EAAQ1B,EAAU,CACxD,IAAI2B,EACF5D,GAAQ,CAAA,EACRc,GAAM,KACR,GAAY6C,GAAR,KACF,IAAKC,KAAwBD,EAAO,MAAlB,SAA0B7C,GAAM,GAAK6C,EAAO,KAAMA,EAClEhD,GAAe,KAAKgD,EAAQC,CAAQ,GACxBA,IAAV,OACaA,IAAb,UACeA,IAAf,aACC5D,GAAM4D,CAAQ,EAAID,EAAOC,CAAQ,GACxC,IAAIG,GAAiB,UAAU,OAAS,EACxC,GAAUA,KAAN,EAAsB/D,GAAM,SAAWiC,UAClC,EAAI8B,GAAgB,CAC3B,QAASF,GAAa,MAAME,EAAc,EAAGvB,GAAI,EAAGA,GAAIuB,GAAgBvB,KACtEqB,GAAWrB,EAAC,EAAI,UAAUA,GAAI,CAAC,EACjCxC,GAAM,SAAW6D,EACrB,CACE,GAAIhD,GAAQA,EAAK,aACf,IAAK+C,KAAcG,GAAiBlD,EAAK,aAAekD,GAC3C/D,GAAM4D,CAAQ,IAAzB,SACG5D,GAAM4D,CAAQ,EAAIG,GAAeH,CAAQ,GAChD,OAAOhD,GAAaC,EAAMC,GAAKd,EAAK,CACtC,EACAwD,GAAA,UAAoB,UAAY,CAC9B,MAAO,CAAE,QAAS,IAAI,CACxB,EACAA,GAAA,WAAqB,SAAUQ,EAAQ,CACrC,MAAO,CAAE,SAAU5E,EAAwB,OAAQ4E,CAAM,CAC3D,EACAR,GAAA,eAAyBrC,GACzBqC,GAAA,KAAe,SAAUR,EAAM,CAC7B,MAAO,CACL,SAAUzD,EACV,SAAU,CAAE,QAAS,GAAI,QAASyD,CAAI,EACtC,MAAOF,GAEX,EACAU,GAAA,KAAe,SAAU3C,EAAMoD,EAAS,CACtC,MAAO,CACL,SAAU3E,EACV,KAAMuB,EACN,QAAoBoD,IAAX,OAAqB,KAAOA,EAEzC,EACAT,GAAA,gBAA0B,SAAUU,EAAO,CACzC,IAAIC,EAAiBzD,EAAqB,EACxC0D,EAAoB,CAAA,EACtB1D,EAAqB,EAAI0D,EACzB,GAAI,CACF,IAAIC,EAAcH,EAAK,EACrBI,GAA0B5D,EAAqB,EACxC4D,KAAT,MACEA,GAAwBF,EAAmBC,CAAW,EAC3C,OAAOA,GAApB,UACWA,IAAT,MACe,OAAOA,EAAY,MAAlC,YACAA,EAAY,KAAK5D,EAAMyC,EAAiB,CAC9C,OAAWnB,GAAO,CACdmB,GAAkBnB,EAAK,CAC3B,QAAA,CACaoC,IAAT,MACWC,EAAkB,QAA3B,OACCD,EAAe,MAAQC,EAAkB,OACzC1D,EAAqB,EAAIyD,CAChC,CACA,EACAX,GAAA,yBAAmC,UAAY,CAC7C,OAAO9C,EAAqB,EAAE,gBAAe,CAC/C,EACA8C,GAAA,IAAc,SAAUe,EAAQ,CAC9B,OAAO7D,EAAqB,EAAE,IAAI6D,CAAM,CAC1C,EACAf,GAAA,eAAyB,SAAUgB,EAAQC,EAAcC,EAAW,CAClE,OAAOhE,EAAqB,EAAE,eAAe8D,EAAQC,EAAcC,CAAS,CAC9E,EACAlB,GAAA,YAAsB,SAAUpD,EAAUuE,EAAM,CAC9C,OAAOjE,EAAqB,EAAE,YAAYN,EAAUuE,CAAI,CAC1D,EACAnB,GAAA,WAAqB,SAAUoB,EAAS,CACtC,OAAOlE,EAAqB,EAAE,WAAWkE,CAAO,CAClD,EACApB,GAAA,cAAwB,UAAY,CAAA,EACpCA,GAAA,iBAA2B,SAAUqB,EAAOC,EAAc,CACxD,OAAOpE,EAAqB,EAAE,iBAAiBmE,EAAOC,CAAY,CACpE,EACAtB,GAAA,UAAoB,SAAUuB,EAAQJ,EAAM,CAC1C,OAAOjE,EAAqB,EAAE,UAAUqE,EAAQJ,CAAI,CACtD,EACAnB,GAAA,eAAyB,SAAUpD,EAAU,CAC3C,OAAOM,EAAqB,EAAE,eAAeN,CAAQ,CACvD,EACAoD,GAAA,MAAgB,UAAY,CAC1B,OAAO9C,EAAqB,EAAE,MAAK,CACrC,EACA8C,GAAA,oBAA8B,SAAUwB,EAAKD,EAAQJ,EAAM,CACzD,OAAOjE,EAAqB,EAAE,oBAAoBsE,EAAKD,EAAQJ,CAAI,CACrE,EACAnB,GAAA,mBAA6B,SAAUuB,EAAQJ,EAAM,CACnD,OAAOjE,EAAqB,EAAE,mBAAmBqE,EAAQJ,CAAI,CAC/D,EACAnB,GAAA,gBAA0B,SAAUuB,EAAQJ,EAAM,CAChD,OAAOjE,EAAqB,EAAE,gBAAgBqE,EAAQJ,CAAI,CAC5D,EACAnB,GAAA,QAAkB,SAAUuB,EAAQJ,EAAM,CACxC,OAAOjE,EAAqB,EAAE,QAAQqE,EAAQJ,CAAI,CACpD,EACAnB,GAAA,cAAwB,SAAUyB,EAAaC,EAAS,CACtD,OAAOxE,EAAqB,EAAE,cAAcuE,EAAaC,CAAO,CAClE,EACA1B,GAAA,WAAqB,SAAU0B,EAASC,EAAYC,EAAM,CACxD,OAAO1E,EAAqB,EAAE,WAAWwE,EAASC,EAAYC,CAAI,CACpE,EACA5B,GAAA,OAAiB,SAAUsB,EAAc,CACvC,OAAOpE,EAAqB,EAAE,OAAOoE,CAAY,CACnD,EACAtB,GAAA,SAAmB,SAAUiB,EAAc,CACzC,OAAO/D,EAAqB,EAAE,SAAS+D,CAAY,CACrD,EACAjB,GAAA,qBAA+B,SAC7B6B,EACAC,EACAC,EACA,CACA,OAAO7E,EAAqB,EAAE,qBAC5B2E,EACAC,EACAC,EAEJ,EACA/B,GAAA,cAAwB,UAAY,CAClC,OAAO9C,EAAqB,EAAE,cAAa,CAC7C,EACA8C,GAAA,QAAkB,kDC1hBhBgC,GAAA,QAAiBC,GAAA;;;;;;;;qDCQnB,SAASC,EAAKC,EAAMC,EAAM,CACxB,IAAIjE,GAAQgE,EAAK,OACjBA,EAAK,KAAKC,CAAI,EACdC,EAAG,KAAO,EAAIlE,IAAS,CACrB,IAAImE,GAAenE,GAAQ,IAAO,EAChCoE,GAASJ,EAAKG,EAAW,EAC3B,GAAI,EAAI7B,EAAQ8B,GAAQH,CAAI,EACzBD,EAAKG,EAAW,EAAIF,EAAQD,EAAKhE,EAAK,EAAIoE,GAAUpE,GAAQmE,OAC1D,OAAMD,CACf,CACA,CACA,SAASG,EAAKL,EAAM,CAClB,OAAaA,EAAK,SAAX,EAAoB,KAAOA,EAAK,CAAC,CAC1C,CACA,SAASM,EAAIN,EAAM,CACjB,GAAUA,EAAK,SAAX,EAAmB,OAAO,KAC9B,IAAIO,EAAQP,EAAK,CAAC,EAChBQ,GAAOR,EAAK,IAAG,EACjB,GAAIQ,KAASD,EAAO,CAClBP,EAAK,CAAC,EAAIQ,GACVN,EAAG,QACGlE,GAAQ,EAAGyE,GAAST,EAAK,OAAQU,EAAaD,KAAW,EAC7DzE,GAAQ0E,GAER,CACA,IAAIC,EAAY,GAAK3E,GAAQ,GAAK,EAChC4E,EAAOZ,EAAKW,CAAS,EACrBE,EAAaF,EAAY,EACzBG,GAAQd,EAAKa,CAAU,EACzB,GAAI,EAAIvC,EAAQsC,EAAMJ,EAAI,EACxBK,EAAaJ,IAAU,EAAInC,EAAQwC,GAAOF,CAAI,GACxCZ,EAAKhE,EAAK,EAAI8E,GACfd,EAAKa,CAAU,EAAIL,GACnBxE,GAAQ6E,IACPb,EAAKhE,EAAK,EAAI4E,EACfZ,EAAKW,CAAS,EAAIH,GAClBxE,GAAQ2E,WACNE,EAAaJ,IAAU,EAAInC,EAAQwC,GAAON,EAAI,EACpDR,EAAKhE,EAAK,EAAI8E,GAASd,EAAKa,CAAU,EAAIL,GAAQxE,GAAQ6E,MACxD,OAAMX,CACjB,CACA,CACE,OAAOK,CACT,CACA,SAASjC,EAAQ4B,EAAGa,EAAG,CACrB,IAAIC,GAAOd,EAAE,UAAYa,EAAE,UAC3B,OAAaC,KAAN,EAAaA,GAAOd,EAAE,GAAKa,EAAE,EACtC,CAEA,GADAE,EAAA,aAAuB,OACN,OAAO,aAApB,UAAkD,OAAO,YAAY,KAAlC,WAAuC,CAC5E,IAAIC,EAAmB,YACvBD,eAAuB,UAAY,CACjC,OAAOC,EAAiB,IAAG,CAC/B,CACA,KAAO,CACL,IAAIC,EAAY,KACdC,EAAcD,EAAU,IAAG,EAC7BF,eAAuB,UAAY,CACjC,OAAOE,EAAU,IAAG,EAAKC,CAC7B,CACA,CACA,IAAIC,EAAY,CAAA,EACdC,EAAa,CAAA,EACbC,EAAgB,EAChBC,EAAc,KACdC,EAAuB,EACvBC,EAAmB,GACnBC,EAA0B,GAC1BC,EAAyB,GACzBC,EAAa,GACbC,GAAiC,OAAO,YAAtB,WAAmC,WAAa,KAClEC,GAAmC,OAAO,cAAtB,WAAqC,aAAe,KACxEC,GAAoC,OAAO,aAAvB,IAAsC,aAAe,KAC3E,SAASC,GAAcC,EAAa,CAClC,QAASC,EAAQ9B,EAAKiB,CAAU,EAAYa,IAAT,MAAkB,CACnD,GAAaA,EAAM,WAAf,KAAyB7B,EAAIgB,CAAU,UAClCa,EAAM,WAAaD,EAC1B5B,EAAIgB,CAAU,EACXa,EAAM,UAAYA,EAAM,eACzBpC,EAAKsB,EAAWc,CAAK,MACpB,OACLA,EAAQ9B,EAAKiB,CAAU,CAC3B,CACA,CACA,SAASc,GAAcF,EAAa,CAGlC,GAFAN,EAAyB,GACzBK,GAAcC,CAAW,EACrB,CAACP,EACH,GAAatB,EAAKgB,CAAS,IAAvB,KACDM,EAA0B,GACzBU,IACIA,EAAuB,GAAKC,UAC/B,CACH,IAAIC,EAAalC,EAAKiB,CAAU,EACvBiB,IAAT,MACEC,GAAmBJ,GAAeG,EAAW,UAAYL,CAAW,CAC5E,CACA,CACA,IAAIG,EAAuB,GACzBI,EAAgB,GAChBC,GAAgB,EAChBC,GAAY,GACd,SAASC,IAAoB,CAC3B,OAAOf,EACH,GACA,EAAAZ,EAAQ,aAAY,EAAK0B,GAAYD,GAG3C,CACA,SAASG,IAA2B,CAElC,GADAhB,EAAa,GACTQ,EAAsB,CACxB,IAAIH,EAAcjB,EAAQ,aAAY,EACtC0B,GAAYT,EACZ,IAAIY,EAAc,GAClB,GAAI,CACF5C,EAAG,CACDyB,EAA0B,GAC1BC,IACIA,EAAyB,GAC3BG,GAAkBU,CAAa,EAC9BA,EAAgB,IACnBf,EAAmB,GACnB,IAAIqB,GAAwBtB,EAC5B,GAAI,CACFV,EAAG,CAED,IADAkB,GAAcC,CAAW,EAEvBV,EAAcnB,EAAKgB,CAAS,EACnBG,IAAT,MACA,EACEA,EAAY,eAAiBU,GAAeU,GAAiB,IAG/D,CACA,IAAInI,GAAW+G,EAAY,SAC3B,GAAmB,OAAO/G,IAAtB,WAAgC,CAClC+G,EAAY,SAAW,KACvBC,EAAuBD,EAAY,cACnC,IAAIwB,GAAuBvI,GACzB+G,EAAY,gBAAkBU,GAGhC,GADAA,EAAcjB,EAAQ,aAAY,EACf,OAAO+B,IAAtB,WAA4C,CAC9CxB,EAAY,SAAWwB,GACvBf,GAAcC,CAAW,EACzBY,EAAc,GACd,MAAM/B,CACxB,CACgBS,IAAgBnB,EAAKgB,CAAS,GAAKf,EAAIe,CAAS,EAChDY,GAAcC,CAAW,CACzC,MAAqB5B,EAAIe,CAAS,EACpBG,EAAcnB,EAAKgB,CAAS,CAC1C,CACY,GAAaG,IAAT,KAAsBsB,EAAc,OACnC,CACH,IAAIP,EAAalC,EAAKiB,CAAU,EACvBiB,IAAT,MACEC,GACEJ,GACAG,EAAW,UAAYL,GAE3BY,EAAc,EAC5B,CACA,CACU,MAAM5C,CAChB,SACWsB,EAAc,KACZC,EAAuBsB,GACvBrB,EAAmB,EAChC,CACQoB,EAAc,MACtB,CACA,QAAA,CACMA,EACIR,GAAgC,EAC/BD,EAAuB,EAClC,CACA,CACA,CACA,IAAIC,GACJ,GAAmB,OAAON,IAAtB,WACFM,GAAmC,UAAY,CAC7CN,GAAkBa,EAAwB,CAC9C,UACyB,OAAO,eAAvB,IAAuC,CAC9C,IAAII,GAAU,IAAI,eAChBC,GAAOD,GAAQ,MACjBA,GAAQ,MAAM,UAAYJ,GAC1BP,GAAmC,UAAY,CAC7CY,GAAK,YAAY,IAAI,CACzB,CACA,MACEZ,GAAmC,UAAY,CAC7CR,GAAgBe,GAA0B,CAAC,CAC/C,EACA,SAASL,GAAmB/H,EAAU0I,EAAI,CACxCV,EAAgBX,GAAgB,UAAY,CAC1CrH,EAASwG,EAAQ,cAAc,CACnC,EAAKkC,CAAE,CACP,CACAlC,EAAA,sBAAgC,EAChCA,EAAA,2BAAqC,EACrCA,EAAA,qBAA+B,EAC/BA,EAAA,wBAAkC,EAClCA,EAAA,mBAA6B,KAC7BA,EAAA,8BAAwC,EACxCA,EAAA,wBAAkC,SAAUmC,EAAM,CAChDA,EAAK,SAAW,IAClB,EACAnC,EAAA,wBAAkC,SAAUoC,EAAK,CAC/C,EAAIA,GAAO,IAAMA,EACb,QAAQ,MACN,iHACR,EACOX,GAAgB,EAAIW,EAAM,KAAK,MAAM,IAAMA,CAAG,EAAI,CACzD,EACApC,EAAA,iCAA2C,UAAY,CACrD,OAAOQ,CACT,EACAR,EAAA,cAAwB,SAAUqC,EAAc,CAC9C,OAAQ7B,EAAoB,CAC1B,IAAK,GACL,IAAK,GACL,IAAK,GACH,IAAI8B,EAAgB,EACpB,MACF,QACEA,EAAgB9B,CACtB,CACE,IAAIsB,GAAwBtB,EAC5BA,EAAuB8B,EACvB,GAAI,CACF,OAAOD,EAAY,CACvB,QAAA,CACI7B,EAAuBsB,EAC3B,CACA,EACA9B,EAAA,sBAAgC,UAAY,CAC1CY,EAAa,EACf,EACAZ,EAAA,yBAAmC,SAAUsC,EAAeD,EAAc,CACxE,OAAQC,EAAa,CACnB,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACH,MACF,QACEA,EAAgB,CACtB,CACE,IAAIR,GAAwBtB,EAC5BA,EAAuB8B,EACvB,GAAI,CACF,OAAOD,EAAY,CACvB,QAAA,CACI7B,EAAuBsB,EAC3B,CACA,EACA9B,EAAA,0BAAoC,SAClCsC,EACA9I,EACA+I,GACA,CACA,IAAItB,GAAcjB,EAAQ,aAAY,EAQtC,OAPa,OAAOuC,IAApB,UAAwCA,KAAT,MACzBA,GAAUA,GAAQ,MACnBA,GACc,OAAOA,IAApB,UAA+B,EAAIA,GAC/BtB,GAAcsB,GACdtB,IACLsB,GAAUtB,GACPqB,EAAa,CACnB,IAAK,GACH,IAAIE,GAAU,GACd,MACF,IAAK,GACHA,GAAU,IACV,MACF,IAAK,GACHA,GAAU,WACV,MACF,IAAK,GACHA,GAAU,IACV,MACF,QACEA,GAAU,GAChB,CACE,OAAAA,GAAUD,GAAUC,GACpBF,EAAgB,CACd,GAAIhC,IACJ,SAAU9G,EACV,cAAe8I,EACf,UAAWC,GACX,eAAgBC,GAChB,UAAW,IAEbD,GAAUtB,IACJqB,EAAc,UAAYC,GAC5BzD,EAAKuB,EAAYiC,CAAa,EACrBlD,EAAKgB,CAAS,IAAvB,MACEkC,IAAkBlD,EAAKiB,CAAU,IAChCM,GACIG,GAAkBU,CAAa,EAAIA,EAAgB,IACnDb,EAAyB,GAC9BY,GAAmBJ,GAAeoB,GAAUtB,EAAW,KACvDqB,EAAc,UAAYE,GAC5B1D,EAAKsB,EAAWkC,CAAa,EAC7B5B,GACED,IACEC,EAA0B,GAC5BU,IACIA,EAAuB,GAAKC,GAAgC,KAC/DiB,CACT,EACAtC,EAAA,qBAA+B2B,GAC/B3B,EAAA,sBAAgC,SAAUxG,EAAU,CAClD,IAAIiJ,EAAsBjC,EAC1B,OAAO,UAAY,CACjB,IAAIsB,GAAwBtB,EAC5BA,EAAuBiC,EACvB,GAAI,CACF,OAAOjJ,EAAS,MAAM,KAAM,SAAS,CAC3C,QAAA,CACMgH,EAAuBsB,EAC7B,CACA,CACA,kDChVEY,GAAA,QAAiB7D,GAAA;;;;;;;;4CCQnB,IAAI8D,EAAQ9D,GAAA,EACZ,SAAS+D,EAAuBC,EAAM,CACpC,IAAIC,EAAM,4BAA8BD,EACxC,GAAI,EAAI,UAAU,OAAQ,CACxBC,GAAO,WAAa,mBAAmB,UAAU,CAAC,CAAC,EACnD,QAASlH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IACpCkH,GAAO,WAAa,mBAAmB,UAAUlH,CAAC,CAAC,CACzD,CACE,MACE,yBACAiH,EACA,WACAC,EACA,gHAEJ,CACA,SAASjJ,GAAO,CAAA,CAChB,IAAIkJ,EAAY,CACZ,EAAG,CACDC,EACA,EAAG,UAAY,CACb,MAAM,MAAMJ,EAAuB,GAAG,CAAC,CAC/C,EACM,EAAG/I,EACH,EAAGA,EACH,EAAGA,EACHA,EAAAA,EACA,EAAGA,EACH,EAAGA,EACH,EAAGA,GAEL,EAAG,EACH,YAAa,MAEf3B,EAAoB,OAAO,IAAI,cAAc,EAC/C,SAAS+K,EAAe5H,EAAU6H,EAAeC,EAAgB,CAC/D,IAAIjJ,EACF,EAAI,UAAU,QAAqB,UAAU,CAAC,IAAtB,OAA0B,UAAU,CAAC,EAAI,KACnE,MAAO,CACL,SAAUhC,EACV,IAAagC,GAAR,KAAc,KAAO,GAAKA,EAC/B,SAAUmB,EACV,cAAe6H,EACf,eAAgBC,EAEpB,CACA,IAAIrJ,EACF6I,EAAM,gEACR,SAASS,EAAuBC,EAAIC,EAAO,CACzC,GAAeD,IAAX,OAAe,MAAO,GAC1B,GAAiB,OAAOC,GAApB,SACF,OAA6BA,IAAtB,kBAA8BA,EAAQ,EACjD,CACA,OAAAC,GAAA,6DACER,EACFQ,GAAA,aAAuB,SAAUlI,EAAUmI,EAAW,CACpD,IAAItJ,EACF,EAAI,UAAU,QAAqB,UAAU,CAAC,IAAtB,OAA0B,UAAU,CAAC,EAAI,KACnE,GACE,CAACsJ,GACMA,EAAU,WAAhB,GACOA,EAAU,WAAhB,GACOA,EAAU,WAAjB,GAEF,MAAM,MAAMZ,EAAuB,GAAG,CAAC,EACzC,OAAOK,EAAe5H,EAAUmI,EAAW,KAAMtJ,CAAG,CACtD,EACAqJ,GAAA,UAAoB,SAAUzG,EAAI,CAChC,IAAI2G,EAAqB3J,EAAqB,EAC5C4J,EAAyBX,EAAU,EACrC,GAAI,CACF,GAAMjJ,EAAqB,EAAI,KAAQiJ,EAAU,EAAI,EAAIjG,EAAK,OAAOA,EAAE,CAC3E,SACKhD,EAAqB,EAAI2J,EACvBV,EAAU,EAAIW,EACfX,EAAU,EAAE,EAAC,CACnB,CACA,EACAQ,GAAA,WAAqB,SAAUI,EAAMpB,EAAS,CAC/B,OAAOoB,GAApB,WACGpB,GACKA,EAAUA,EAAQ,YACnBA,EACc,OAAOA,GAApB,SAC0BA,IAAtB,kBACEA,EACA,GACF,QACLA,EAAU,KACfQ,EAAU,EAAE,EAAEY,EAAMpB,CAAO,EAC/B,EACAgB,GAAA,YAAsB,SAAUI,EAAM,CACvB,OAAOA,GAApB,UAA4BZ,EAAU,EAAE,EAAEY,CAAI,CAChD,EACAJ,GAAA,QAAkB,SAAUI,EAAMpB,EAAS,CACzC,GAAiB,OAAOoB,GAApB,UAA4BpB,GAAwB,OAAOA,EAAQ,IAA5B,SAAgC,CACzE,IAAIc,EAAKd,EAAQ,GACfqB,EAAcR,EAAuBC,EAAId,EAAQ,WAAW,EAC5DsB,EACe,OAAOtB,EAAQ,WAA5B,SAAwCA,EAAQ,UAAY,OAC9DuB,EACe,OAAOvB,EAAQ,eAA5B,SACIA,EAAQ,cACR,OACIc,IAAZ,QACIN,EAAU,EAAE,EACVY,EACa,OAAOpB,EAAQ,YAA5B,SAAyCA,EAAQ,WAAa,OAC9D,CACE,YAAaqB,EACb,UAAWC,EACX,cAAeC,CAC3B,CACA,EACqBT,IAAb,UACAN,EAAU,EAAE,EAAEY,EAAM,CAClB,YAAaC,EACb,UAAWC,EACX,cAAeC,EACf,MAAoB,OAAOvB,EAAQ,OAA5B,SAAoCA,EAAQ,MAAQ,MACrE,CAAS,CACT,CACA,EACAgB,GAAA,cAAwB,SAAUI,EAAMpB,EAAS,CAC/C,GAAiB,OAAOoB,GAApB,SACF,GAAiB,OAAOpB,GAApB,UAAwCA,IAAT,MACjC,GAAYA,EAAQ,IAAhB,MAAmCA,EAAQ,KAArB,SAAyB,CACjD,IAAIqB,EAAcR,EAChBb,EAAQ,GACRA,EAAQ,aAEVQ,EAAU,EAAE,EAAEY,EAAM,CAClB,YAAaC,EACb,UACe,OAAOrB,EAAQ,WAA5B,SAAwCA,EAAQ,UAAY,OAC9D,MAAoB,OAAOA,EAAQ,OAA5B,SAAoCA,EAAQ,MAAQ,MACrE,CAAS,CACT,OACmBA,GAAR,MAAmBQ,EAAU,EAAE,EAAEY,CAAI,CAChD,EACAJ,GAAA,QAAkB,SAAUI,EAAMpB,EAAS,CACzC,GACe,OAAOoB,GAApB,UACa,OAAOpB,GAApB,UACSA,IAAT,MACa,OAAOA,EAAQ,IAA5B,SACA,CACA,IAAIc,EAAKd,EAAQ,GACfqB,EAAcR,EAAuBC,EAAId,EAAQ,WAAW,EAC9DQ,EAAU,EAAE,EAAEY,EAAMN,EAAI,CACtB,YAAaO,EACb,UACe,OAAOrB,EAAQ,WAA5B,SAAwCA,EAAQ,UAAY,OAC9D,MAAoB,OAAOA,EAAQ,OAA5B,SAAoCA,EAAQ,MAAQ,OAC3D,KAAmB,OAAOA,EAAQ,MAA5B,SAAmCA,EAAQ,KAAO,OACxD,cACe,OAAOA,EAAQ,eAA5B,SACIA,EAAQ,cACR,OACN,eACe,OAAOA,EAAQ,gBAA5B,SACIA,EAAQ,eACR,OACN,YACe,OAAOA,EAAQ,aAA5B,SAA0CA,EAAQ,YAAc,OAClE,WACe,OAAOA,EAAQ,YAA5B,SAAyCA,EAAQ,WAAa,OAChE,MAAoB,OAAOA,EAAQ,OAA5B,SAAoCA,EAAQ,MAAQ,MACjE,CAAK,CACL,CACA,EACAgB,GAAA,cAAwB,SAAUI,EAAMpB,EAAS,CAC/C,GAAiB,OAAOoB,GAApB,SACF,GAAIpB,EAAS,CACX,IAAIqB,EAAcR,EAAuBb,EAAQ,GAAIA,EAAQ,WAAW,EACxEQ,EAAU,EAAE,EAAEY,EAAM,CAClB,GACe,OAAOpB,EAAQ,IAA5B,UAA+CA,EAAQ,KAArB,SAC9BA,EAAQ,GACR,OACN,YAAaqB,EACb,UACe,OAAOrB,EAAQ,WAA5B,SAAwCA,EAAQ,UAAY,MACtE,CAAO,CACP,MAAWQ,EAAU,EAAE,EAAEY,CAAI,CAC7B,EACAJ,GAAA,iBAA2B,SAAUQ,EAAM,CACzChB,EAAU,EAAE,EAAEgB,CAAI,CACpB,EACAR,GAAA,wBAAkC,SAAUzG,EAAImC,EAAG,CACjD,OAAOnC,EAAGmC,CAAC,CACb,EACAsE,GAAA,aAAuB,SAAU3F,EAAQC,EAAcC,EAAW,CAChE,OAAOhE,EAAqB,EAAE,aAAa8D,EAAQC,EAAcC,CAAS,CAC5E,EACAyF,GAAA,cAAwB,UAAY,CAClC,OAAOzJ,EAAqB,EAAE,wBAAuB,CACvD,EACAyJ,GAAA,QAAkB,8DC/MlB,SAASS,GAAW,CAElB,GACE,EAAA,OAAO,+BAAmC,KAC1C,OAAO,+BAA+B,UAAa,YAcrD,GAAI,CAEF,+BAA+B,SAASA,CAAQ,CAAA,OACzCC,EAAK,CAGZ,QAAQ,MAAMA,CAAG,CAAA,CAErB,CAKE,OAAAD,EAAA,EACAE,GAAA,QAAiBrF,GAAA;;;;;;;;4CCpBnB,IAAIsF,EAAYtF,GAAA,EACd8D,EAAQyB,GAAA,EACRC,EAAWC,GAAA,EACb,SAAS1B,EAAuBC,EAAM,CACpC,IAAIC,EAAM,4BAA8BD,EACxC,GAAI,EAAI,UAAU,OAAQ,CACxBC,GAAO,WAAa,mBAAmB,UAAU,CAAC,CAAC,EACnD,QAASlH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IACpCkH,GAAO,WAAa,mBAAmB,UAAUlH,CAAC,CAAC,CACzD,CACE,MACE,yBACAiH,EACA,WACAC,EACA,gHAEJ,CACA,SAASyB,EAAiBvF,EAAM,CAC9B,MAAO,EACL,CAACA,GACMA,EAAK,WAAX,GAA6BA,EAAK,WAAX,GAA8BA,EAAK,WAAZ,GAEnD,CACA,SAASwF,EAAuBC,EAAO,CACrC,IAAIzF,EAAOyF,EACTC,EAAiBD,EACnB,GAAIA,EAAM,UAAW,KAAOzF,EAAK,QAAUA,EAAOA,EAAK,WAClD,CACHyF,EAAQzF,EACR,GACGA,EAAOyF,GACCzF,EAAK,MAAQ,QAApB,IAA8B0F,EAAiB1F,EAAK,QACnDyF,EAAQzF,EAAK,aACXyF,EACX,CACE,OAAazF,EAAK,MAAX,EAAiB0F,EAAiB,IAC3C,CACA,SAASC,EAA6BF,EAAO,CAC3C,GAAWA,EAAM,MAAb,GAAkB,CACpB,IAAIG,EAAgBH,EAAM,cAI1B,GAHSG,IAAT,OACIH,EAAQA,EAAM,UACPA,IAAT,OAAmBG,EAAgBH,EAAM,gBAC9BG,IAAT,KAAwB,OAAOA,EAAc,UACrD,CACE,OAAO,IACT,CACA,SAASC,EAA6BJ,EAAO,CAC3C,GAAWA,EAAM,MAAb,GAAkB,CACpB,IAAIK,EAAgBL,EAAM,cAI1B,GAHSK,IAAT,OACIL,EAAQA,EAAM,UACPA,IAAT,OAAmBK,EAAgBL,EAAM,gBAC9BK,IAAT,KAAwB,OAAOA,EAAc,UACrD,CACE,OAAO,IACT,CACA,SAASC,EAAgBN,EAAO,CAC9B,GAAID,EAAuBC,CAAK,IAAMA,EACpC,MAAM,MAAM7B,EAAuB,GAAG,CAAC,CAC3C,CACA,SAASoC,EAA8BP,EAAO,CAC5C,IAAIQ,EAAYR,EAAM,UACtB,GAAI,CAACQ,EAAW,CAEd,GADAA,EAAYT,EAAuBC,CAAK,EAC3BQ,IAAT,KAAoB,MAAM,MAAMrC,EAAuB,GAAG,CAAC,EAC/D,OAAOqC,IAAcR,EAAQ,KAAOA,CACxC,CACE,QAASxF,EAAIwF,EAAO3E,EAAImF,IAAe,CACrC,IAAIC,EAAUjG,EAAE,OAChB,GAAaiG,IAAT,KAAkB,MACtB,IAAIC,EAAUD,EAAQ,UACtB,GAAaC,IAAT,KAAkB,CAEpB,GADArF,EAAIoF,EAAQ,OACCpF,IAAT,KAAY,CACdb,EAAIa,EACJ,QACR,CACM,KACN,CACI,GAAIoF,EAAQ,QAAUC,EAAQ,MAAO,CACnC,IAAKA,EAAUD,EAAQ,MAAOC,GAAW,CACvC,GAAIA,IAAYlG,EAAG,OAAO8F,EAAgBG,CAAO,EAAGT,EACpD,GAAIU,IAAYrF,EAAG,OAAOiF,EAAgBG,CAAO,EAAGD,EACpDE,EAAUA,EAAQ,OAC1B,CACM,MAAM,MAAMvC,EAAuB,GAAG,CAAC,CAC7C,CACI,GAAI3D,EAAE,SAAWa,EAAE,OAASb,EAAIiG,EAAWpF,EAAIqF,MAC1C,CACH,QAASC,EAAe,GAAIC,EAAUH,EAAQ,MAAOG,GAAW,CAC9D,GAAIA,IAAYpG,EAAG,CACjBmG,EAAe,GACfnG,EAAIiG,EACJpF,EAAIqF,EACJ,KACV,CACQ,GAAIE,IAAYvF,EAAG,CACjBsF,EAAe,GACftF,EAAIoF,EACJjG,EAAIkG,EACJ,KACV,CACQE,EAAUA,EAAQ,OAC1B,CACM,GAAI,CAACD,EAAc,CACjB,IAAKC,EAAUF,EAAQ,MAAOE,GAAW,CACvC,GAAIA,IAAYpG,EAAG,CACjBmG,EAAe,GACfnG,EAAIkG,EACJrF,EAAIoF,EACJ,KACZ,CACU,GAAIG,IAAYvF,EAAG,CACjBsF,EAAe,GACftF,EAAIqF,EACJlG,EAAIiG,EACJ,KACZ,CACUG,EAAUA,EAAQ,OAC5B,CACQ,GAAI,CAACD,EAAc,MAAM,MAAMxC,EAAuB,GAAG,CAAC,CAClE,CACA,CACI,GAAI3D,EAAE,YAAca,EAAG,MAAM,MAAM8C,EAAuB,GAAG,CAAC,CAClE,CACE,GAAU3D,EAAE,MAAR,EAAa,MAAM,MAAM2D,EAAuB,GAAG,CAAC,EACxD,OAAO3D,EAAE,UAAU,UAAYA,EAAIwF,EAAQQ,CAC7C,CACA,SAASK,EAAyBtG,EAAM,CACtC,IAAIuG,EAAMvG,EAAK,IACf,GAAUuG,IAAN,GAAoBA,IAAP,IAAqBA,IAAP,IAAoBA,IAAN,EAAW,OAAOvG,EAC/D,IAAKA,EAAOA,EAAK,MAAgBA,IAAT,MAAiB,CAEvC,GADAuG,EAAMD,EAAyBtG,CAAI,EACtBuG,IAAT,KAAc,OAAOA,EACzBvG,EAAOA,EAAK,OAChB,CACE,OAAO,IACT,CACA,IAAI/F,EAAS,OAAO,OAClBuM,EAA4B,OAAO,IAAI,eAAe,EACtDvN,EAAqB,OAAO,IAAI,4BAA4B,EAC5DC,EAAoB,OAAO,IAAI,cAAc,EAC7CC,EAAsB,OAAO,IAAI,gBAAgB,EACjDC,EAAyB,OAAO,IAAI,mBAAmB,EACvDC,GAAsB,OAAO,IAAI,gBAAgB,EACjDC,GAAsB,OAAO,IAAI,gBAAgB,EACjDC,GAAqB,OAAO,IAAI,eAAe,EAC/CC,GAAyB,OAAO,IAAI,mBAAmB,EACvDC,GAAsB,OAAO,IAAI,gBAAgB,EACjDgN,EAA2B,OAAO,IAAI,qBAAqB,EAC3D/M,EAAkB,OAAO,IAAI,YAAY,EACzCC,GAAkB,OAAO,IAAI,YAAY,EAEvCC,GAAsB,OAAO,IAAI,gBAAgB,EAGjD8M,GAA4B,OAAO,IAAI,2BAA2B,EAElE7M,GAAwB,OAAO,SACnC,SAASC,GAAcC,EAAe,CACpC,OAAaA,IAAT,MAAuC,OAAOA,GAApB,SAA0C,MACxEA,EACGF,IAAyBE,EAAcF,EAAqB,GAC7DE,EAAc,YAAY,EACN,OAAOA,GAAtB,WAAsCA,EAAgB,KAC/D,CACA,IAAI4M,GAAyB,OAAO,IAAI,wBAAwB,EAChE,SAASC,GAAyB3L,EAAM,CACtC,GAAYA,GAAR,KAAc,OAAO,KACzB,GAAmB,OAAOA,GAAtB,WACF,OAAOA,EAAK,WAAa0L,GACrB,KACA1L,EAAK,aAAeA,EAAK,MAAQ,KACvC,GAAiB,OAAOA,GAApB,SAA0B,OAAOA,EACrC,OAAQA,EAAI,CACV,KAAK9B,EACH,MAAO,WACT,KAAKE,GACH,MAAO,WACT,KAAKD,EACH,MAAO,aACT,KAAKK,GACH,MAAO,WACT,KAAKgN,EACH,MAAO,eACT,KAAK7M,GACH,MAAO,UACb,CACE,GAAiB,OAAOqB,GAApB,SACF,OAAQA,EAAK,SAAQ,CACnB,KAAK/B,EACH,MAAO,SACT,KAAKK,GACH,OAAO0B,EAAK,aAAe,UAC7B,KAAK3B,GACH,OAAQ2B,EAAK,SAAS,aAAe,WAAa,YACpD,KAAKzB,GACH,IAAIqN,EAAY5L,EAAK,OACrB,OAAAA,EAAOA,EAAK,YACZA,IACIA,EAAO4L,EAAU,aAAeA,EAAU,MAAQ,GACnD5L,EAAcA,IAAP,GAAc,cAAgBA,EAAO,IAAM,cAC9CA,EACT,KAAKvB,EACH,OACGmN,EAAY5L,EAAK,aAAe,KACxB4L,IAAT,KACIA,EACAD,GAAyB3L,EAAK,IAAI,GAAK,OAE/C,KAAKtB,GACHkN,EAAY5L,EAAK,SACjBA,EAAOA,EAAK,MACZ,GAAI,CACF,OAAO2L,GAAyB3L,EAAK4L,CAAS,CAAC,CACzD,MAAoB,CAAA,CACpB,CACE,OAAO,IACT,CACA,IAAIjM,GAAc,MAAM,QACtBE,EACE6I,EAAM,gEACRmD,EACEzB,EAAS,6DACX0B,GAAyB,CACvB,QAAS,GACT,KAAM,KACN,OAAQ,KACR,OAAQ,MAEVC,GAAa,CAAA,EACbjL,GAAQ,GACV,SAASkL,EAAa/I,EAAc,CAClC,MAAO,CAAE,QAASA,CAAY,CAChC,CACA,SAASmC,EAAI6G,EAAQ,CACnB,EAAInL,KACAmL,EAAO,QAAUF,GAAWjL,EAAK,EAAKiL,GAAWjL,EAAK,EAAI,KAAOA,KACvE,CACA,SAAS+D,EAAKoH,EAAQjI,EAAO,CAC3BlD,KACAiL,GAAWjL,EAAK,EAAImL,EAAO,QAC3BA,EAAO,QAAUjI,CACnB,CACA,IAAIkI,EAAqBF,EAAa,IAAI,EACxCG,GAA0BH,EAAa,IAAI,EAC3CI,GAA0BJ,EAAa,IAAI,EAC3CK,GAA+BL,EAAa,IAAI,EAClD,SAASM,GAAkB9B,EAAO+B,EAAkB,CAIlD,OAHA1H,EAAKuH,GAAyBG,CAAgB,EAC9C1H,EAAKsH,GAAyB3B,CAAK,EACnC3F,EAAKqH,EAAoB,IAAI,EACrBK,EAAiB,SAAQ,CAC/B,IAAK,GACL,IAAK,IACH/B,GAASA,EAAQ+B,EAAiB,mBAC7B/B,EAAQA,EAAM,cACbgC,GAAkBhC,CAAK,EAEzB,EACJ,MACF,QACE,GACIA,EAAQ+B,EAAiB,QAC1BA,EAAmBA,EAAiB,aAEpCA,EAAmBC,GAAkBD,CAAgB,EACnD/B,EAAQiC,GAAwBF,EAAkB/B,CAAK,MAE1D,QAAQA,EAAK,CACX,IAAK,MACHA,EAAQ,EACR,MACF,IAAK,OACHA,EAAQ,EACR,MACF,QACEA,EAAQ,CACpB,CACA,CACEpF,EAAI8G,CAAkB,EACtBrH,EAAKqH,EAAoB1B,CAAK,CAChC,CACA,SAASkC,IAAmB,CAC1BtH,EAAI8G,CAAkB,EACtB9G,EAAI+G,EAAuB,EAC3B/G,EAAIgH,EAAuB,CAC7B,CACA,SAASO,GAAgBnC,EAAO,CACrBA,EAAM,gBAAf,MAAgC3F,EAAKwH,GAA8B7B,CAAK,EACxE,IAAIpL,EAAU8M,EAAmB,QAC7BU,EAA2BH,GAAwBrN,EAASoL,EAAM,IAAI,EAC1EpL,IAAYwN,IACT/H,EAAKsH,GAAyB3B,CAAK,EACpC3F,EAAKqH,EAAoBU,CAAwB,EACrD,CACA,SAASC,GAAerC,EAAO,CAC7B2B,GAAwB,UAAY3B,IACjCpF,EAAI8G,CAAkB,EAAG9G,EAAI+G,EAAuB,GACvDE,GAA6B,UAAY7B,IACtCpF,EAAIiH,EAA4B,EAChCS,GAAsB,cAAgBhB,GAC3C,CACA,IAAIiB,GAAQC,GACZ,SAASC,GAA8BC,EAAM,CAC3C,GAAeH,KAAX,OACF,GAAI,CACF,MAAM,MAAK,CACjB,OAAaI,EAAG,CACV,IAAIzM,EAAQyM,EAAE,MAAM,KAAI,EAAG,MAAM,cAAc,EAC/CJ,GAAUrM,GAASA,EAAM,CAAC,GAAM,GAChCsM,GACE,GAAKG,EAAE,MAAM,QAAQ;AAAA,OAAU,EAC3B,iBACA,GAAKA,EAAE,MAAM,QAAQ,GAAG,EACtB,eACA,EACd,CACE,MAAO;AAAA,EAAOJ,GAASG,EAAOF,EAChC,CACA,IAAII,GAAU,GACd,SAASC,GAA6BxK,EAAIyK,EAAW,CACnD,GAAI,CAACzK,GAAMuK,GAAS,MAAO,GAC3BA,GAAU,GACV,IAAIG,EAA4B,MAAM,kBACtC,MAAM,kBAAoB,OAC1B,GAAI,CACF,IAAIC,EAAiB,CACnB,4BAA6B,UAAY,CACvC,GAAI,CACF,GAAIF,EAAW,CACb,IAAIG,EAAO,UAAY,CACrB,MAAM,MAAK,CACzB,EAMY,GALA,OAAO,eAAeA,EAAK,UAAW,QAAS,CAC7C,IAAK,UAAY,CACf,MAAM,MAAK,CAC3B,CACA,CAAa,EACgB,OAAO,SAApB,UAA+B,QAAQ,UAAW,CACpD,GAAI,CACF,QAAQ,UAAUA,EAAM,EAAE,CAC1C,OAAuBN,EAAG,CACV,IAAIO,EAAUP,CAC9B,CACc,QAAQ,UAAUtK,EAAI,CAAA,EAAI4K,CAAI,CAC5C,KAAmB,CACL,GAAI,CACFA,EAAK,KAAI,CACzB,OAAuBE,EAAK,CACZD,EAAUC,CAC1B,CACc9K,EAAG,KAAK4K,EAAK,SAAS,CACpC,CACA,KAAiB,CACL,GAAI,CACF,MAAM,MAAK,CACzB,OAAqBG,EAAK,CACZF,EAAUE,CACxB,EACaH,EAAO5K,EAAE,IACO,OAAO4K,EAAK,OAA3B,YACAA,EAAK,MAAM,UAAY,EAAE,CACvC,CACA,OAAiBI,EAAQ,CACf,GAAIA,GAAUH,GAAwB,OAAOG,EAAO,OAA3B,SACvB,MAAO,CAACA,EAAO,MAAOH,EAAQ,KAAK,CAC/C,CACQ,MAAO,CAAC,KAAM,IAAI,CAC1B,GAEIF,EAAe,4BAA4B,YACzC,8BACF,IAAIM,EAAqB,OAAO,yBAC9BN,EAAe,4BACf,QAEFM,GACEA,EAAmB,cACnB,OAAO,eACLN,EAAe,4BACf,OACA,CAAE,MAAO,6BAA6B,GAE1C,IAAIO,EAAwBP,EAAe,4BAA2B,EACpEQ,EAAcD,EAAsB,CAAC,EACrCE,EAAeF,EAAsB,CAAC,EACxC,GAAIC,GAAeC,EAAc,CAC/B,IAAIC,EAAcF,EAAY,MAAM;AAAA,CAAI,EACtCG,EAAeF,EAAa,MAAM;AAAA,CAAI,EACxC,IACEH,EAAqBN,EAAiB,EACtCA,EAAiBU,EAAY,QAC7B,CAACA,EAAYV,CAAc,EAAE,SAAS,6BAA6B,GAGnEA,IACF,KAEEM,EAAqBK,EAAa,QAClC,CAACA,EAAaL,CAAkB,EAAE,SAChC,gCAIFA,IACF,GACEN,IAAmBU,EAAY,QAC/BJ,IAAuBK,EAAa,OAEpC,IACEX,EAAiBU,EAAY,OAAS,EACpCJ,EAAqBK,EAAa,OAAS,EAC7C,GAAKX,GACL,GAAKM,GACLI,EAAYV,CAAc,IAAMW,EAAaL,CAAkB,GAG/DA,IACJ,KAEE,GAAKN,GAAkB,GAAKM,EAC5BN,IAAkBM,IAElB,GAAII,EAAYV,CAAc,IAAMW,EAAaL,CAAkB,EAAG,CACpE,GAAUN,IAAN,GAA8BM,IAAN,EAC1B,MAEKN,IACDM,IACA,EAAIA,GACFI,EAAYV,CAAc,IACxBW,EAAaL,CAAkB,EACnC,CACA,IAAIM,EACF;AAAA,EACAF,EAAYV,CAAc,EAAE,QAAQ,WAAY,MAAM,EACxD,OAAA3K,EAAG,aACDuL,EAAM,SAAS,aAAa,IAC3BA,EAAQA,EAAM,QAAQ,cAAevL,EAAG,WAAW,GAC/CuL,CACvB,OACmB,GAAKZ,GAAkB,GAAKM,GAErC,KACV,CACA,CACA,SACKV,GAAU,GAAM,MAAM,kBAAoBG,CAC/C,CACE,OAAQA,EAA4B1K,EAAKA,EAAG,aAAeA,EAAG,KAAO,IACjEoK,GAA8BM,CAAyB,EACvD,EACN,CACA,SAASc,GAAc7D,EAAO8D,EAAY,CACxC,OAAQ9D,EAAM,IAAG,CACf,IAAK,IACL,IAAK,IACL,IAAK,GACH,OAAOyC,GAA8BzC,EAAM,IAAI,EACjD,QACE,OAAOyC,GAA8B,MAAM,EAC7C,QACE,OAAOzC,EAAM,QAAU8D,GAAuBA,IAAT,KACjCrB,GAA8B,mBAAmB,EACjDA,GAA8B,UAAU,EAC9C,IAAK,IACH,OAAOA,GAA8B,cAAc,EACrD,IAAK,GACL,IAAK,IACH,OAAOI,GAA6B7C,EAAM,KAAM,EAAE,EACpD,IAAK,IACH,OAAO6C,GAA6B7C,EAAM,KAAK,OAAQ,EAAE,EAC3D,OACE,OAAO6C,GAA6B7C,EAAM,KAAM,EAAE,EACpD,QACE,OAAOyC,GAA8B,UAAU,EACjD,QACE,MAAO,EACb,CACA,CACA,SAASsB,EAA4BC,EAAgB,CACnD,GAAI,CACF,IAAIC,EAAO,GACTC,EAAW,KACb,GACGD,GAAQJ,GAAcG,EAAgBE,CAAQ,EAC5CA,EAAWF,EACXA,EAAiBA,EAAe,aAC9BA,GACP,OAAOC,CACX,OAAWtB,EAAG,CACV,MAAO;AAAA,0BAA+BA,EAAE,QAAU;AAAA,EAAOA,EAAE,KAC/D,CACA,CACA,IAAIrN,GAAiB,OAAO,UAAU,eACpC6O,EAAqBzE,EAAU,0BAC/B0E,GAAmB1E,EAAU,wBAC7B2E,GAAc3E,EAAU,qBACxB4E,EAAe5E,EAAU,sBACzB6E,GAAM7E,EAAU,aAChB8E,GAA0B9E,EAAU,iCACpC+E,GAAoB/E,EAAU,2BAC9BgF,GAAuBhF,EAAU,8BACjCiF,GAAmBjF,EAAU,wBAC7BkF,GAAclF,EAAU,qBACxBmF,GAAenF,EAAU,sBACzBoF,GAAQpF,EAAU,IAClBqF,GAAgCrF,EAAU,8BAC1CsF,GAAa,KACbC,GAAe,KACjB,SAASC,GAA2BC,EAAiB,CAEnD,GADe,OAAOL,IAAtB,YAA+BC,GAA8BI,CAAe,EACxEF,IAA+B,OAAOA,GAAa,eAAnC,WAClB,GAAI,CACFA,GAAa,cAAcD,GAAYG,CAAe,CAC5D,MAAkB,CAAA,CAClB,CACA,IAAIC,GAAQ,KAAK,MAAQ,KAAK,MAAQC,GACpCC,GAAM,KAAK,IACXC,GAAM,KAAK,IACb,SAASF,GAAc1C,EAAG,CACxB,OAAAA,KAAO,EACMA,IAAN,EAAU,GAAM,IAAO2C,GAAI3C,CAAC,EAAI4C,GAAO,GAAM,CACtD,CACA,IAAIC,GAA2B,IAC7BC,GAA6B,OAC7BC,GAAgB,QAClB,SAASC,GAAwBC,EAAO,CACtC,IAAIC,EAAmBD,EAAQ,GAC/B,GAAUC,IAAN,EAAwB,OAAOA,EACnC,OAAQD,EAAQ,CAACA,EAAK,CACpB,IAAK,GACH,MAAO,GACT,IAAK,GACH,MAAO,GACT,IAAK,GACH,MAAO,GACT,IAAK,GACH,MAAO,GACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,IACH,MAAO,IACT,IAAK,KACH,MAAO,KACT,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACH,OAAOA,EAAQ,OACjB,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOA,EAAQ,QACjB,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,UACH,OAAOA,EAAQ,SACjB,IAAK,UACH,MAAO,UACT,IAAK,WACH,MAAO,WACT,IAAK,WACH,MAAO,WACT,IAAK,WACH,MAAO,WACT,IAAK,YACH,MAAO,GACT,QACE,OAAOA,CACb,CACA,CACA,SAASE,GAAaC,EAAMC,EAAUC,EAAsB,CAC1D,IAAIC,EAAeH,EAAK,aACxB,GAAUG,IAAN,EAAoB,MAAO,GAC/B,IAAIC,EAAY,EACdC,EAAiBL,EAAK,eACtBM,EAAcN,EAAK,YACrBA,EAAOA,EAAK,UACZ,IAAIO,EAAsBJ,EAAe,UACzC,OAAMI,IAAN,GACMJ,EAAeI,EAAsB,CAACF,EAClCF,IAAN,EACKC,EAAYR,GAAwBO,CAAY,GAC/CG,GAAeC,EACXD,IAAN,EACKF,EAAYR,GAAwBU,CAAW,EAChDJ,IACEA,EAAuBK,EAAsB,CAACP,EAC1CE,IAAN,IACGE,EAAYR,GAAwBM,CAAoB,OACjEK,EAAsBJ,EAAe,CAACE,EAClCE,IAAN,EACKH,EAAYR,GAAwBW,CAAmB,EAClDD,IAAN,EACGF,EAAYR,GAAwBU,CAAW,EAChDJ,IACEA,EAAuBC,EAAe,CAACH,EACnCE,IAAN,IACGE,EAAYR,GAAwBM,CAAoB,KACxDE,IAAN,EACH,EACMH,IAAN,GACEA,IAAaG,IACNH,EAAWI,KAAlB,IACEA,EAAiBD,EAAY,CAACA,EAC/BF,EAAuBD,EAAW,CAACA,EACpCI,GAAkBH,GACRG,IAAP,KAAgCH,EAAuB,WAA9B,GAC5BD,EACAG,CACR,CACA,SAASI,GAA0BR,EAAMS,EAAa,CACpD,OAEGT,EAAK,aACJ,EAAEA,EAAK,eAAiB,CAACA,EAAK,aAC9BS,KAHF,CAKJ,CACA,SAASC,GAAsBC,EAAMlK,EAAa,CAChD,OAAQkK,EAAI,CACV,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,GACL,IAAK,IACH,OAAOlK,EAAc,IACvB,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOA,EAAc,IACvB,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,UACH,MAAO,GACT,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,YACH,MAAO,GACT,QACE,MAAO,EACb,CACA,CACA,SAASmK,IAAqB,CAC5B,IAAID,EAAOhB,GACX,OAAAA,KAAkB,GACXA,GAAgB,YAAvB,IAAqCA,GAAgB,SAC9CgB,CACT,CACA,SAASE,GAAcC,EAAS,CAC9B,QAASC,EAAU,GAAI3P,EAAI,EAAG,GAAKA,EAAGA,IAAK2P,EAAQ,KAAKD,CAAO,EAC/D,OAAOC,CACT,CACA,SAASC,GAAkBhB,EAAMiB,EAAY,CAC3CjB,EAAK,cAAgBiB,EACPA,IAAd,YACIjB,EAAK,eAAiB,EAAKA,EAAK,YAAc,EAAKA,EAAK,UAAY,EAC1E,CACA,SAASkB,GACPlB,EACAmB,EACAC,EACAC,EACAC,EACAC,EACA,CACA,IAAIC,EAAyBxB,EAAK,aAClCA,EAAK,aAAeoB,EACpBpB,EAAK,eAAiB,EACtBA,EAAK,YAAc,EACnBA,EAAK,UAAY,EACjBA,EAAK,cAAgBoB,EACrBpB,EAAK,gBAAkBoB,EACvBpB,EAAK,4BAA8BoB,EACnCpB,EAAK,oBAAsB,EAC3B,IAAIyB,EAAgBzB,EAAK,cACvB0B,EAAkB1B,EAAK,gBACvB2B,EAAgB3B,EAAK,cACvB,IACEoB,EAAiBI,EAAyB,CAACJ,EAC3C,EAAIA,GAEJ,CACA,IAAIQ,EAAU,GAAKvC,GAAM+B,CAAc,EACrCT,EAAO,GAAKiB,EACdH,EAAcG,CAAO,EAAI,EACzBF,EAAgBE,CAAO,EAAI,GAC3B,IAAIC,EAAuBF,EAAcC,CAAO,EAChD,GAAaC,IAAT,KACF,IACEF,EAAcC,CAAO,EAAI,KAAMA,EAAU,EACzCA,EAAUC,EAAqB,OAC/BD,IACA,CACA,IAAIE,EAASD,EAAqBD,CAAO,EAChCE,IAAT,OAAoBA,EAAO,MAAQ,WAC3C,CACIV,GAAkB,CAACT,CACvB,CACQU,IAAN,GAAqBU,GAAwB/B,EAAMqB,EAAa,CAAC,EAC3DE,IAAN,GACQD,IAAN,GACMtB,EAAK,MAAX,IACCA,EAAK,gBACJuB,EAAsB,EAAEC,EAAyB,CAACL,GACxD,CACA,SAASY,GAAwB/B,EAAMqB,EAAaW,EAAgB,CAClEhC,EAAK,cAAgBqB,EACrBrB,EAAK,gBAAkB,CAACqB,EACxB,IAAIY,EAAmB,GAAK5C,GAAMgC,CAAW,EAC7CrB,EAAK,gBAAkBqB,EACvBrB,EAAK,cAAciC,CAAgB,EACjCjC,EAAK,cAAciC,CAAgB,EACnC,WACCD,EAAiB,MACtB,CACA,SAASE,GAAkBlC,EAAMgC,EAAgB,CAC/C,IAAIG,EAAsBnC,EAAK,gBAAkBgC,EACjD,IAAKhC,EAAOA,EAAK,cAAemC,GAAsB,CACpD,IAAIC,EAAU,GAAK/C,GAAM8C,CAAkB,EACzCxB,EAAO,GAAKyB,EACbzB,EAAOqB,EAAmBhC,EAAKoC,CAAO,EAAIJ,IACxChC,EAAKoC,CAAO,GAAKJ,GACpBG,GAAsB,CAACxB,CAC3B,CACA,CACA,SAAS0B,GAA0BrC,EAAMS,EAAa,CACpD,IAAI6B,EAAa7B,EAAc,CAACA,EAChC,OAAA6B,GACSA,EAAa,MAApB,EAA0B,EAAIC,GAAgCD,CAAU,GAC5DA,GAActC,EAAK,eAAiBS,MAA3C,EACH,EACA6B,CACN,CACA,SAASC,GAAgC5B,EAAM,CAC7C,OAAQA,EAAI,CACV,IAAK,GACHA,EAAO,EACP,MACF,IAAK,GACHA,EAAO,EACP,MACF,IAAK,IACHA,EAAO,GACP,MACF,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,UACHA,EAAO,IACP,MACF,IAAK,WACHA,EAAO,UACP,MACF,QACEA,EAAO,CACb,CACE,OAAOA,CACT,CACA,SAAS6B,GAAqB3C,EAAO,CACnC,OAAAA,GAAS,CAACA,EACH,EAAIA,EACP,EAAIA,GACKA,EAAQ,aAAf,EACE,GACA,UACF,EACF,CACN,CACA,SAAS4C,IAAwB,CAC/B,IAAIC,EAAiBpH,EAAwB,EAC7C,OAAUoH,IAAN,EAA6BA,GACjCA,EAAiB,OAAO,MACNA,IAAX,OAA4B,GAAKC,GAAiBD,EAAe,IAAI,EAC9E,CACA,SAASE,GAAgBC,EAAUvQ,EAAI,CACrC,IAAIwQ,EAAmBxH,EAAwB,EAC/C,GAAI,CACF,OAAQA,EAAwB,EAAIuH,EAAWvQ,EAAE,CACrD,QAAA,CACIgJ,EAAwB,EAAIwH,CAChC,CACA,CACA,IAAIC,GAAY,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,MAAM,CAAC,EAChDC,GAAsB,gBAAkBD,GACxCE,GAAmB,gBAAkBF,GACrCG,GAA+B,oBAAsBH,GACrDI,GAA2B,iBAAmBJ,GAC9CK,GAAmC,oBAAsBL,GACzDM,GAA6B,kBAAoBN,GACjDO,GAA+B,oBAAsBP,GACrDQ,GAA0B,iBAAmBR,GAC/C,SAASS,GAAsBhP,EAAM,CACnC,OAAOA,EAAKwO,EAAmB,EAC/B,OAAOxO,EAAKyO,EAAgB,EAC5B,OAAOzO,EAAK2O,EAAwB,EACpC,OAAO3O,EAAK4O,EAAgC,EAC5C,OAAO5O,EAAK6O,EAA0B,CACxC,CACA,SAASI,GAA2BC,EAAY,CAC9C,IAAIC,EAAaD,EAAWV,EAAmB,EAC/C,GAAIW,EAAY,OAAOA,EACvB,QAASC,EAAaF,EAAW,WAAYE,GAAc,CACzD,GACGD,EACCC,EAAWV,EAA4B,GACvCU,EAAWZ,EAAmB,EAChC,CAEA,GADAY,EAAaD,EAAW,UAEbA,EAAW,QAApB,MACUC,IAAT,MAAgCA,EAAW,QAApB,KAExB,IACEF,EAAaG,GAA2BH,CAAU,EACzCA,IAAT,MAEA,CACA,GAAKE,EAAaF,EAAWV,EAAmB,EAAI,OAAOY,EAC3DF,EAAaG,GAA2BH,CAAU,CAC5D,CACM,OAAOC,CACb,CACID,EAAaE,EACbA,EAAaF,EAAW,UAC5B,CACE,OAAO,IACT,CACA,SAASI,GAAoBtP,EAAM,CACjC,GACGA,EAAOA,EAAKwO,EAAmB,GAAKxO,EAAK0O,EAA4B,EACtE,CACA,IAAInI,EAAMvG,EAAK,IACf,GACQuG,IAAN,GACMA,IAAN,GACOA,IAAP,IACOA,IAAP,IACOA,IAAP,IACOA,IAAP,IACMA,IAAN,EAEA,OAAOvG,CACb,CACE,OAAO,IACT,CACA,SAASuP,GAAoBC,EAAM,CACjC,IAAIjJ,EAAMiJ,EAAK,IACf,GAAUjJ,IAAN,GAAoBA,IAAP,IAAqBA,IAAP,IAAoBA,IAAN,EAAW,OAAOiJ,EAAK,UACpE,MAAM,MAAM5L,EAAuB,EAAE,CAAC,CACxC,CACA,SAAS6L,GAAqBjE,EAAM,CAClC,IAAIkE,EAAYlE,EAAKsD,EAA4B,EACjD,OAAAY,IACGA,EAAYlE,EAAKsD,EAA4B,EAC5C,CAAE,gBAAiB,IAAI,IAAO,iBAAkB,IAAI,MACjDY,CACT,CACA,SAASC,GAAoB3P,EAAM,CACjCA,EAAK+O,EAAuB,EAAI,EAClC,CACA,IAAIa,GAAkB,IAAI,IACxBC,GAA+B,CAAA,EACjC,SAASC,GAAsBC,EAAkBC,EAAc,CAC7DC,GAAoBF,EAAkBC,CAAY,EAClDC,GAAoBF,EAAmB,UAAWC,CAAY,CAChE,CACA,SAASC,GAAoBF,EAAkBC,EAAc,CAE3D,IADAH,GAA6BE,CAAgB,EAAIC,EAE/CD,EAAmB,EACnBA,EAAmBC,EAAa,OAChCD,IAEAH,GAAgB,IAAII,EAAaD,CAAgB,CAAC,CACtD,CACA,IAAIG,GAA6B,OAC7B,iZAEFC,GAA4B,CAAA,EAC5BC,GAA8B,CAAA,EAChC,SAASC,GAAoBC,EAAe,CAC1C,OAAIvV,GAAe,KAAKqV,GAA6BE,CAAa,EACzD,GACLvV,GAAe,KAAKoV,GAA2BG,CAAa,EAAU,GACtEJ,GAA2B,KAAKI,CAAa,EACvCF,GAA4BE,CAAa,EAAI,IACvDH,GAA0BG,CAAa,EAAI,GACpC,GACT,CACA,SAASC,GAAqBvQ,EAAMmI,EAAMlJ,EAAO,CAC/C,GAAIoR,GAAoBlI,CAAI,EAC1B,GAAalJ,IAAT,KAAgBe,EAAK,gBAAgBmI,CAAI,MACxC,CACH,OAAQ,OAAOlJ,EAAK,CAClB,IAAK,YACL,IAAK,WACL,IAAK,SACHe,EAAK,gBAAgBmI,CAAI,EACzB,OACF,IAAK,UACH,IAAIqI,EAAYrI,EAAK,YAAW,EAAG,MAAM,EAAG,CAAC,EAC7C,GAAgBqI,IAAZ,SAAqCA,IAAZ,QAAuB,CAClDxQ,EAAK,gBAAgBmI,CAAI,EACzB,MACZ,CACA,CACMnI,EAAK,aAAamI,EAAM,GAAKlJ,CAAK,CACxC,CACA,CACA,SAASwR,GAA0BzQ,EAAMmI,EAAMlJ,EAAO,CACpD,GAAaA,IAAT,KAAgBe,EAAK,gBAAgBmI,CAAI,MACxC,CACH,OAAQ,OAAOlJ,EAAK,CAClB,IAAK,YACL,IAAK,WACL,IAAK,SACL,IAAK,UACHe,EAAK,gBAAgBmI,CAAI,EACzB,MACR,CACInI,EAAK,aAAamI,EAAM,GAAKlJ,CAAK,CACtC,CACA,CACA,SAASyR,GAA+B1Q,EAAM2Q,EAAWxI,EAAMlJ,EAAO,CACpE,GAAaA,IAAT,KAAgBe,EAAK,gBAAgBmI,CAAI,MACxC,CACH,OAAQ,OAAOlJ,EAAK,CAClB,IAAK,YACL,IAAK,WACL,IAAK,SACL,IAAK,UACHe,EAAK,gBAAgBmI,CAAI,EACzB,MACR,CACInI,EAAK,eAAe2Q,EAAWxI,EAAM,GAAKlJ,CAAK,CACnD,CACA,CACA,SAAS2R,GAAiB3R,EAAO,CAC/B,OAAQ,OAAOA,EAAK,CAClB,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,YACH,OAAOA,EACT,IAAK,SACH,OAAOA,EACT,QACE,MAAO,EACb,CACA,CACA,SAAS4R,GAAYC,EAAM,CACzB,IAAI7V,EAAO6V,EAAK,KAChB,OACGA,EAAOA,EAAK,WACDA,EAAK,YAAW,IAA5B,UACgB7V,IAAf,YAAmCA,IAAZ,QAE5B,CACA,SAAS8V,GAAiB/Q,EAAMgR,EAAYC,EAAc,CACxD,IAAIC,EAAa,OAAO,yBACtBlR,EAAK,YAAY,UACjBgR,GAEF,GACE,CAAChR,EAAK,eAAegR,CAAU,GACf,OAAOE,EAAvB,KACe,OAAOA,EAAW,KAAjC,YACe,OAAOA,EAAW,KAAjC,WACA,CACA,IAAIC,EAAMD,EAAW,IACnBE,EAAMF,EAAW,IACnB,OAAA,OAAO,eAAelR,EAAMgR,EAAY,CACtC,aAAc,GACd,IAAK,UAAY,CACf,OAAOG,EAAI,KAAK,IAAI,CAC5B,EACM,IAAK,SAAUlS,EAAO,CACpBgS,EAAe,GAAKhS,EACpBmS,EAAI,KAAK,KAAMnS,CAAK,CAC5B,CACA,CAAK,EACD,OAAO,eAAee,EAAMgR,EAAY,CACtC,WAAYE,EAAW,UAC7B,CAAK,EACM,CACL,SAAU,UAAY,CACpB,OAAOD,CACf,EACM,SAAU,SAAUhS,EAAO,CACzBgS,EAAe,GAAKhS,CAC5B,EACM,aAAc,UAAY,CACxBe,EAAK,cAAgB,KACrB,OAAOA,EAAKgR,CAAU,CAC9B,EAEA,CACA,CACA,SAASK,GAAMrR,EAAM,CACnB,GAAI,CAACA,EAAK,cAAe,CACvB,IAAIgR,EAAaH,GAAY7Q,CAAI,EAAI,UAAY,QACjDA,EAAK,cAAgB+Q,GACnB/Q,EACAgR,EACA,GAAKhR,EAAKgR,CAAU,EAE1B,CACA,CACA,SAASM,GAAqBtR,EAAM,CAClC,GAAI,CAACA,EAAM,MAAO,GAClB,IAAIuR,EAAUvR,EAAK,cACnB,GAAI,CAACuR,EAAS,MAAO,GACrB,IAAIC,EAAYD,EAAQ,SAAQ,EAC5BtS,EAAQ,GACZ,OAAAe,IACGf,EAAQ4R,GAAY7Q,CAAI,EACrBA,EAAK,QACH,OACA,QACFA,EAAK,OACXA,EAAOf,EACAe,IAASwR,GAAaD,EAAQ,SAASvR,CAAI,EAAG,IAAM,EAC7D,CACA,SAASyR,GAAiBC,EAAK,CAE7B,GADAA,EAAMA,IAAwB,OAAO,SAAvB,IAAkC,SAAW,QACvC,OAAOA,EAAvB,IAA4B,OAAO,KACvC,GAAI,CACF,OAAOA,EAAI,eAAiBA,EAAI,IACpC,MAAc,CACV,OAAOA,EAAI,IACf,CACA,CACA,IAAIC,GAAsD,WAC1D,SAASC,GAA+C3S,EAAO,CAC7D,OAAOA,EAAM,QACX0S,GACA,SAAUE,EAAI,CACZ,MAAO,KAAOA,EAAG,WAAW,CAAC,EAAE,SAAS,EAAE,EAAI,GACpD,EAEA,CACA,SAASC,GACPhW,EACAmD,EACAf,EACA6T,EACAC,EACAC,EACAhX,EACAkN,EACA,CACArM,EAAQ,KAAO,GACPb,GAAR,MACe,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACc,OAAOA,GAArB,UACKa,EAAQ,KAAOb,EAChBa,EAAQ,gBAAgB,MAAM,EACtBmD,GAAR,KACehE,IAAb,UACSgE,IAAN,GAAsBnD,EAAQ,QAAf,IAAyBA,EAAQ,OAASmD,KAC5DnD,EAAQ,MAAQ,GAAK8U,GAAiB3R,CAAK,GAE7CnD,EAAQ,QAAU,GAAK8U,GAAiB3R,CAAK,IAC1CnD,EAAQ,MAAQ,GAAK8U,GAAiB3R,CAAK,GAElChE,IAAb,UAAiCA,IAAZ,SAAqBa,EAAQ,gBAAgB,OAAO,EACpEmD,GAAR,KACIiT,GAAgBpW,EAASb,EAAM2V,GAAiB3R,CAAK,CAAC,EAC9Cf,GAAR,KACEgU,GAAgBpW,EAASb,EAAM2V,GAAiB1S,CAAY,CAAC,EACrD6T,GAAR,MAA4BjW,EAAQ,gBAAgB,OAAO,EACzDkW,GAAR,MACUC,GAAR,OACCnW,EAAQ,eAAiB,CAAC,CAACmW,GACtBD,GAAR,OACGlW,EAAQ,QACPkW,GAA0B,OAAOA,GAAtB,YAA8C,OAAOA,GAApB,UACxC7J,GAAR,MACe,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACc,OAAOA,GAArB,UACKrM,EAAQ,KAAO,GAAK8U,GAAiBzI,CAAI,EAC1CrM,EAAQ,gBAAgB,MAAM,CACpC,CACA,SAASqW,GACPrW,EACAmD,EACAf,EACA8T,EACAC,EACAhX,EACAkN,EACAiK,EACA,CAMA,GALQnX,GAAR,MACiB,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACc,OAAOA,GAArB,YACCa,EAAQ,KAAOb,GACNgE,GAAR,MAAyBf,GAAR,KAAsB,CACzC,GACE,EACgBjD,IAAb,UAAiCA,IAAZ,SACQgE,GAAT,MAEvB,CACAoS,GAAMvV,CAAO,EACb,MACN,CACIoC,EACUA,GAAR,KAAuB,GAAK0S,GAAiB1S,CAAY,EAAI,GAC/De,EAAgBA,GAAR,KAAgB,GAAK2R,GAAiB3R,CAAK,EAAIf,EACvDkU,GAAenT,IAAUnD,EAAQ,QAAUA,EAAQ,MAAQmD,GAC3DnD,EAAQ,aAAemD,CAC3B,CACE+S,EAAkBA,GAAoBC,EACtCD,EACiB,OAAOA,GAAtB,YAA8C,OAAOA,GAApB,UAA+B,CAAC,CAACA,EACpElW,EAAQ,QAAUsW,EAActW,EAAQ,QAAU,CAAC,CAACkW,EACpDlW,EAAQ,eAAiB,CAAC,CAACkW,EACnB7J,GAAR,MACiB,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACc,OAAOA,GAArB,YACCrM,EAAQ,KAAOqM,GAClBkJ,GAAMvV,CAAO,CACf,CACA,SAASoW,GAAgBlS,EAAM/E,EAAMgE,EAAO,CAC5BhE,IAAb,UAAqBwW,GAAiBzR,EAAK,aAAa,IAAMA,GAC7DA,EAAK,eAAiB,GAAKf,IAC1Be,EAAK,aAAe,GAAKf,EAC9B,CACA,SAASoT,GAAcrS,EAAMsS,EAAUC,EAAWC,EAAoB,CAEpE,GADAxS,EAAOA,EAAK,QACRsS,EAAU,CACZA,EAAW,CAAA,EACX,QAAS1V,EAAI,EAAGA,EAAI2V,EAAU,OAAQ3V,IACpC0V,EAAS,IAAMC,EAAU3V,CAAC,CAAC,EAAI,GACjC,IAAK2V,EAAY,EAAGA,EAAYvS,EAAK,OAAQuS,IAC1C3V,EAAI0V,EAAS,eAAe,IAAMtS,EAAKuS,CAAS,EAAE,KAAK,EACtDvS,EAAKuS,CAAS,EAAE,WAAa3V,IAAMoD,EAAKuS,CAAS,EAAE,SAAW3V,GAC9DA,GAAK4V,IAAuBxS,EAAKuS,CAAS,EAAE,gBAAkB,GACtE,KAAS,CAGL,IAFAA,EAAY,GAAK3B,GAAiB2B,CAAS,EAC3CD,EAAW,KACN1V,EAAI,EAAGA,EAAIoD,EAAK,OAAQpD,IAAK,CAChC,GAAIoD,EAAKpD,CAAC,EAAE,QAAU2V,EAAW,CAC/BvS,EAAKpD,CAAC,EAAE,SAAW,GACnB4V,IAAuBxS,EAAKpD,CAAC,EAAE,gBAAkB,IACjD,MACR,CACe0V,IAAT,MAAqBtS,EAAKpD,CAAC,EAAE,WAAa0V,EAAWtS,EAAKpD,CAAC,EACjE,CACa0V,IAAT,OAAsBA,EAAS,SAAW,GAC9C,CACA,CACA,SAASG,GAAe3W,EAASmD,EAAOf,EAAc,CACpD,GACUe,GAAR,OACEA,EAAQ,GAAK2R,GAAiB3R,CAAK,EACrCA,IAAUnD,EAAQ,QAAUA,EAAQ,MAAQmD,GACpCf,GAAR,MACA,CACApC,EAAQ,eAAiBmD,IAAUnD,EAAQ,aAAemD,GAC1D,MACJ,CACEnD,EAAQ,aACEoC,GAAR,KAAuB,GAAK0S,GAAiB1S,CAAY,EAAI,EACjE,CACA,SAASwU,GAAa5W,EAASmD,EAAOf,EAAc7B,EAAU,CAC5D,GAAY4C,GAAR,KAAe,CACjB,GAAY5C,GAAR,KAAkB,CACpB,GAAY6B,GAAR,KAAsB,MAAM,MAAM0F,EAAuB,EAAE,CAAC,EAChE,GAAIhJ,GAAYyB,CAAQ,EAAG,CACzB,GAAI,EAAIA,EAAS,OAAQ,MAAM,MAAMuH,EAAuB,EAAE,CAAC,EAC/DvH,EAAWA,EAAS,CAAC,CAC7B,CACM6B,EAAe7B,CACrB,CACY6B,GAAR,OAAyBA,EAAe,IACxCe,EAAQf,CACZ,CACEA,EAAe0S,GAAiB3R,CAAK,EACrCnD,EAAQ,aAAeoC,EACvB7B,EAAWP,EAAQ,YACnBO,IAAa6B,GACJ7B,IAAP,IACSA,IAAT,OACCP,EAAQ,MAAQO,GACnBgV,GAAMvV,CAAO,CACf,CACA,SAAS6W,GAAe3S,EAAM4S,EAAM,CAClC,GAAIA,EAAM,CACR,IAAIC,EAAa7S,EAAK,WACtB,GACE6S,GACAA,IAAe7S,EAAK,WACd6S,EAAW,WAAjB,EACA,CACAA,EAAW,UAAYD,EACvB,MACN,CACA,CACE5S,EAAK,YAAc4S,CACrB,CACA,IAAIE,GAAkB,IAAI,IACxB,26BAA26B,MACz6B,GACJ,GAEA,SAASC,GAAiBC,EAAOC,EAAWhU,EAAO,CACjD,IAAIiU,EAAyBD,EAAU,QAAQ,IAAI,IAA5B,EACfhU,GAAR,MAA+B,OAAOA,GAArB,WAAqCA,IAAP,GAC3CiU,EACEF,EAAM,YAAYC,EAAW,EAAE,EACnBA,IAAZ,QACGD,EAAM,SAAW,GACjBA,EAAMC,CAAS,EAAI,GACxBC,EACEF,EAAM,YAAYC,EAAWhU,CAAK,EACrB,OAAOA,GAApB,UACQA,IAAN,GACA6T,GAAgB,IAAIG,CAAS,EACjBA,IAAZ,QACGD,EAAM,SAAW/T,EACjB+T,EAAMC,CAAS,GAAK,GAAKhU,GAAO,KAAI,EACtC+T,EAAMC,CAAS,EAAIhU,EAAQ,IACtC,CACA,SAASkU,GAAkBnT,EAAMoT,EAAQC,EAAY,CACnD,GAAYD,GAAR,MAA+B,OAAOA,GAApB,SACpB,MAAM,MAAMxP,EAAuB,EAAE,CAAC,EAExC,GADA5D,EAAOA,EAAK,MACAqT,GAAR,KAAoB,CACtB,QAASJ,KAAaI,EACpB,CAACA,EAAW,eAAeJ,CAAS,GACzBG,GAAR,MAAkBA,EAAO,eAAeH,CAAS,IAC3CA,EAAU,QAAQ,IAAI,IAA5B,EACGjT,EAAK,YAAYiT,EAAW,EAAE,EAClBA,IAAZ,QACGjT,EAAK,SAAW,GAChBA,EAAKiT,CAAS,EAAI,IAC7B,QAASK,KAAgBF,EACtBH,EAAYG,EAAOE,CAAY,EAC9BF,EAAO,eAAeE,CAAY,GAChCD,EAAWC,CAAY,IAAML,GAC7BF,GAAiB/S,EAAMsT,EAAcL,CAAS,CACxD,KACI,SAASM,KAAgBH,EACvBA,EAAO,eAAeG,CAAY,GAChCR,GAAiB/S,EAAMuT,EAAcH,EAAOG,CAAY,CAAC,CACjE,CACA,SAASC,GAAgBC,EAAS,CAChC,GAAWA,EAAQ,QAAQ,GAAG,IAA1B,GAA6B,MAAO,GACxC,OAAQA,EAAO,CACb,IAAK,iBACL,IAAK,gBACL,IAAK,YACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,gBACH,MAAO,GACT,QACE,MAAO,EACb,CACA,CACA,IAAIC,GAAU,IAAI,IAAI,CAClB,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,UAAW,KAAK,EACjB,CAAC,YAAa,YAAY,EAC1B,CAAC,cAAe,aAAa,EAC7B,CAAC,eAAgB,eAAe,EAChC,CAAC,oBAAqB,oBAAoB,EAC1C,CAAC,aAAc,aAAa,EAC5B,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,YAAa,YAAY,EAC1B,CAAC,WAAY,WAAW,EACxB,CAAC,WAAY,WAAW,EACxB,CAAC,qBAAsB,qBAAqB,EAC5C,CAAC,4BAA6B,6BAA6B,EAC3D,CAAC,eAAgB,eAAe,EAChC,CAAC,iBAAkB,iBAAiB,EACpC,CAAC,mBAAoB,mBAAmB,EACxC,CAAC,mBAAoB,mBAAmB,EACxC,CAAC,cAAe,cAAc,EAC9B,CAAC,WAAY,WAAW,EACxB,CAAC,aAAc,aAAa,EAC5B,CAAC,eAAgB,eAAe,EAChC,CAAC,aAAc,aAAa,EAC5B,CAAC,WAAY,WAAW,EACxB,CAAC,iBAAkB,kBAAkB,EACrC,CAAC,cAAe,cAAc,EAC9B,CAAC,YAAa,YAAY,EAC1B,CAAC,cAAe,cAAc,EAC9B,CAAC,aAAc,aAAa,EAC5B,CAAC,YAAa,YAAY,EAC1B,CAAC,6BAA8B,8BAA8B,EAC7D,CAAC,2BAA4B,4BAA4B,EACzD,CAAC,YAAa,aAAa,EAC3B,CAAC,eAAgB,gBAAgB,EACjC,CAAC,iBAAkB,iBAAiB,EACpC,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,YAAa,YAAY,EAC1B,CAAC,YAAa,YAAY,EAC1B,CAAC,cAAe,cAAc,EAC9B,CAAC,mBAAoB,mBAAmB,EACxC,CAAC,oBAAqB,oBAAoB,EAC1C,CAAC,aAAc,aAAa,EAC5B,CAAC,WAAY,UAAU,EACvB,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,kBAAmB,kBAAkB,EACtC,CAAC,iBAAkB,iBAAiB,EACpC,CAAC,YAAa,YAAY,EAC1B,CAAC,cAAe,cAAc,EAC9B,CAAC,wBAAyB,wBAAwB,EAClD,CAAC,yBAA0B,yBAAyB,EACpD,CAAC,kBAAmB,kBAAkB,EACtC,CAAC,mBAAoB,mBAAmB,EACxC,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,iBAAkB,iBAAiB,EACpC,CAAC,mBAAoB,mBAAmB,EACxC,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,cAAe,cAAc,EAC9B,CAAC,aAAc,aAAa,EAC5B,CAAC,iBAAkB,iBAAiB,EACpC,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,kBAAmB,kBAAkB,EACtC,CAAC,oBAAqB,oBAAoB,EAC1C,CAAC,qBAAsB,qBAAqB,EAC5C,CAAC,cAAe,cAAc,EAC9B,CAAC,eAAgB,eAAe,EAChC,CAAC,aAAc,cAAc,EAC7B,CAAC,cAAe,cAAc,EAC9B,CAAC,WAAY,WAAW,EACxB,CAAC,eAAgB,eAAe,EAChC,CAAC,gBAAiB,gBAAgB,EAClC,CAAC,eAAgB,eAAe,EAChC,CAAC,WAAY,YAAY,EACzB,CAAC,cAAe,eAAe,EAC/B,CAAC,cAAe,eAAe,EAC/B,CAAC,cAAe,cAAc,EAC9B,CAAC,cAAe,cAAc,EAC9B,CAAC,aAAc,aAAa,EAC5B,CAAC,UAAW,UAAU,CAC1B,CAAG,EACDC,GACE,2HACJ,SAASC,GAAY9P,EAAK,CACxB,OAAO6P,GAAqB,KAAK,GAAK7P,CAAG,EACrC,8FACAA,CACN,CACA,SAAS+P,IAAS,CAAA,CAClB,IAAIC,GAAwB,KAC5B,SAASC,GAAeC,EAAa,CACnC,OAAAA,EAAcA,EAAY,QAAUA,EAAY,YAAc,OAC9DA,EAAY,0BACTA,EAAcA,EAAY,yBAChBA,EAAY,WAAlB,EAA6BA,EAAY,WAAaA,CAC/D,CACA,IAAIC,GAAgB,KAClBC,GAAe,KACjB,SAASC,GAAqBC,EAAQ,CACpC,IAAIC,EAAmB/E,GAAoB8E,CAAM,EACjD,GAAIC,IAAqBD,EAASC,EAAiB,WAAY,CAC7D,IAAIja,EAAQga,EAAO3F,EAAgB,GAAK,KACxCxO,EAAG,OAAUmU,EAASC,EAAiB,UAAYA,EAAiB,KAAI,CACtE,IAAK,QAYH,GAXAvC,GACEsC,EACAha,EAAM,MACNA,EAAM,aACNA,EAAM,aACNA,EAAM,QACNA,EAAM,eACNA,EAAM,KACNA,EAAM,MAERia,EAAmBja,EAAM,KACTA,EAAM,OAAlB,SAAkCia,GAAR,KAA0B,CACtD,IAAKja,EAAQga,EAAQha,EAAM,YAAcA,EAAQA,EAAM,WAQvD,IAPAA,EAAQA,EAAM,iBACZ,eACEwX,GACE,GAAKyC,GAEP,oBAGFA,EAAmB,EACnBA,EAAmBja,EAAM,OACzBia,IACA,CACA,IAAIC,EAAYla,EAAMia,CAAgB,EACtC,GAAIC,IAAcF,GAAUE,EAAU,OAASF,EAAO,KAAM,CAC1D,IAAIG,EAAaD,EAAU7F,EAAgB,GAAK,KAChD,GAAI,CAAC8F,EAAY,MAAM,MAAM3Q,EAAuB,EAAE,CAAC,EACvDkO,GACEwC,EACAC,EAAW,MACXA,EAAW,aACXA,EAAW,aACXA,EAAW,QACXA,EAAW,eACXA,EAAW,KACXA,EAAW,KAE3B,CACA,CACU,IACEF,EAAmB,EACnBA,EAAmBja,EAAM,OACzBia,IAECC,EAAYla,EAAMia,CAAgB,EACjCC,EAAU,OAASF,EAAO,MAAQ9C,GAAqBgD,CAAS,CAC9E,CACQ,MAAMrU,EACR,IAAK,WACHwS,GAAe2B,EAAQha,EAAM,MAAOA,EAAM,YAAY,EACtD,MAAM6F,EACR,IAAK,SACFoU,EAAmBja,EAAM,MAChBia,GAAR,MACEhC,GAAc+B,EAAQ,CAAC,CAACha,EAAM,SAAUia,EAAkB,EAAE,CACxE,CACA,CACA,CACA,IAAIG,GAAuB,GAC3B,SAASC,GAAiB3W,EAAImC,EAAGa,EAAG,CAClC,GAAI0T,GAAsB,OAAO1W,EAAGmC,EAAGa,CAAC,EACxC0T,GAAuB,GACvB,GAAI,CACF,IAAI3M,EAA2B/J,EAAGmC,CAAC,EACnC,OAAO4H,CACX,QAAA,CACI,GACI2M,GAAuB,IAChBP,KAAT,MAAmCC,KAAT,QAGvBQ,GAAe,EAChBT,KACIhU,EAAIgU,GACLnW,EAAKoW,GACLA,GAAeD,GAAgB,KAChCE,GAAqBlU,CAAC,EACtBnC,IAEF,IAAKmC,EAAI,EAAGA,EAAInC,EAAG,OAAQmC,IAAKkU,GAAqBrW,EAAGmC,CAAC,CAAC,CAClE,CACA,CACA,SAAS0U,GAAYnF,EAAMO,EAAkB,CAC3C,IAAI6E,EAAYpF,EAAK,UACrB,GAAaoF,IAAT,KAAoB,OAAO,KAC/B,IAAIxa,EAAQwa,EAAUnG,EAAgB,GAAK,KAC3C,GAAarU,IAAT,KAAgB,OAAO,KAC3Bwa,EAAYxa,EAAM2V,CAAgB,EAClC9P,EAAG,OAAQ8P,EAAgB,CACzB,IAAK,UACL,IAAK,iBACL,IAAK,gBACL,IAAK,uBACL,IAAK,cACL,IAAK,qBACL,IAAK,cACL,IAAK,qBACL,IAAK,YACL,IAAK,mBACL,IAAK,gBACF3V,EAAQ,CAACA,EAAM,YACZoV,EAAOA,EAAK,KACbpV,EAAQ,EACMoV,IAAb,UACYA,IAAZ,SACaA,IAAb,UACeA,IAAf,aAEJA,EAAO,CAACpV,EACR,MAAM6F,EACR,QACEuP,EAAO,EACb,CACE,GAAIA,EAAM,OAAO,KACjB,GAAIoF,GAA4B,OAAOA,GAAtB,WACf,MAAM,MACJhR,EAAuB,IAAKmM,EAAkB,OAAO6E,CAAS,GAElE,OAAOA,CACT,CACA,IAAIC,GAAY,EACI,OAAO,OAAvB,KACgB,OAAO,OAAO,SAA9B,KACgB,OAAO,OAAO,SAAS,cAAvC,KAEFC,GAAgC,GAClC,GAAID,GACF,GAAI,CACF,IAAItR,GAAU,CAAA,EACd,OAAO,eAAeA,GAAS,UAAW,CACxC,IAAK,UAAY,CACfuR,GAAgC,EACxC,CACA,CAAK,EACD,OAAO,iBAAiB,OAAQvR,GAASA,EAAO,EAChD,OAAO,oBAAoB,OAAQA,GAASA,EAAO,CACvD,MAAc,CACVuR,GAAgC,EACpC,CACA,IAAItJ,GAAO,KACTuJ,GAAY,KACZC,GAAe,KACjB,SAASC,IAAU,CACjB,GAAID,GAAc,OAAOA,GACzB,IAAIE,EACFC,EAAaJ,GACbK,EAAcD,EAAW,OACzBE,EACAC,EAAW,UAAW9J,GAAOA,GAAK,MAAQA,GAAK,YAC/C+J,EAAYD,EAAS,OACvB,IACEJ,EAAQ,EACRA,EAAQE,GAAeD,EAAWD,CAAK,IAAMI,EAASJ,CAAK,EAC3DA,IACD,CACD,IAAIM,EAASJ,EAAcF,EAC3B,IACEG,EAAM,EACNA,GAAOG,GACPL,EAAWC,EAAcC,CAAG,IAAMC,EAASC,EAAYF,CAAG,EAC1DA,IACD,CACD,OAAQL,GAAeM,EAAS,MAAMJ,EAAO,EAAIG,EAAM,EAAIA,EAAM,MAAM,CACzE,CACA,SAASI,GAAiBzB,EAAa,CACrC,IAAI0B,EAAU1B,EAAY,QAC1B,MAAA,aAAcA,GACRA,EAAcA,EAAY,SACtBA,IAAN,GAA4B0B,IAAP,KAAmB1B,EAAc,KACrDA,EAAc0B,EACZ1B,IAAP,KAAuBA,EAAc,IAC9B,IAAMA,GAAsBA,IAAP,GAAqBA,EAAc,CACjE,CACA,SAAS2B,IAA0B,CACjC,MAAO,EACT,CACA,SAASC,IAA2B,CAClC,MAAO,EACT,CACA,SAASC,GAAqBC,EAAW,CACvC,SAASC,EACPC,EACAC,EACA9G,EACA6E,EACAkC,EACA,CACA,KAAK,WAAaF,EAClB,KAAK,YAAc7G,EACnB,KAAK,KAAO8G,EACZ,KAAK,YAAcjC,EACnB,KAAK,OAASkC,EACd,KAAK,cAAgB,KACrB,QAASlY,KAAY8X,EACnBA,EAAU,eAAe9X,CAAQ,IAC7BgY,EAAYF,EAAU9X,CAAQ,EAC/B,KAAKA,CAAQ,EAAIgY,EACdA,EAAUhC,CAAW,EACrBA,EAAYhW,CAAQ,GAC5B,YAAK,oBACKgW,EAAY,kBAApB,KACIA,EAAY,iBACLA,EAAY,cAAnB,IAEF2B,GACAC,GACJ,KAAK,qBAAuBA,GACrB,IACX,CACE,OAAA3b,EAAO8b,EAAmB,UAAW,CACnC,eAAgB,UAAY,CAC1B,KAAK,iBAAmB,GACxB,IAAIxY,EAAQ,KAAK,YACjBA,IACGA,EAAM,eACHA,EAAM,eAAc,EACN,OAAOA,EAAM,aAA3B,YAA2CA,EAAM,YAAc,IAClE,KAAK,mBAAqBoY,GACnC,EACI,gBAAiB,UAAY,CAC3B,IAAIpY,EAAQ,KAAK,YACjBA,IACGA,EAAM,gBACHA,EAAM,gBAAe,EACP,OAAOA,EAAM,cAA3B,YACCA,EAAM,aAAe,IACzB,KAAK,qBAAuBoY,GACrC,EACI,QAAS,UAAY,CAAA,EACrB,aAAcA,EAClB,CAAG,EACMI,CACT,CACA,IAAII,GAAiB,CACjB,WAAY,EACZ,QAAS,EACT,WAAY,EACZ,UAAW,SAAU5Y,EAAO,CAC1B,OAAOA,EAAM,WAAa,KAAK,IAAG,CACxC,EACI,iBAAkB,EAClB,UAAW,GAEb6Y,GAAiBP,GAAqBM,EAAc,EACpDE,GAAmBpc,EAAO,CAAA,EAAIkc,GAAgB,CAAE,KAAM,EAAG,OAAQ,EAAG,EACpEG,GAAmBT,GAAqBQ,EAAgB,EACxDE,GACAC,GACAC,GACAC,GAAsBzc,EAAO,CAAA,EAAIoc,GAAkB,CACjD,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,MAAO,EACP,MAAO,EACP,QAAS,EACT,SAAU,EACV,OAAQ,EACR,QAAS,EACT,iBAAkBM,EAClB,OAAQ,EACR,QAAS,EACT,cAAe,SAAUpZ,EAAO,CAC9B,OAAkBA,EAAM,gBAAjB,OACHA,EAAM,cAAgBA,EAAM,WAC1BA,EAAM,UACNA,EAAM,YACRA,EAAM,aAChB,EACI,UAAW,SAAUA,EAAO,CAC1B,MAAI,cAAeA,EAAcA,EAAM,WACvCA,IAAUkZ,KACPA,IAAkClZ,EAAM,OAAtB,aACbgZ,GAAgBhZ,EAAM,QAAUkZ,GAAe,QAChDD,GAAgBjZ,EAAM,QAAUkZ,GAAe,SAC/CD,GAAgBD,GAAgB,EACpCE,GAAiBlZ,GACbgZ,GACb,EACI,UAAW,SAAUhZ,EAAO,CAC1B,MAAO,cAAeA,EAAQA,EAAM,UAAYiZ,EACtD,CACA,CAAG,EACDI,GAAsBf,GAAqBa,EAAmB,EAC9DG,GAAqB5c,EAAO,CAAA,EAAIyc,GAAqB,CAAE,aAAc,EAAG,EACxEI,GAAqBjB,GAAqBgB,EAAkB,EAC5DE,GAAsB9c,EAAO,CAAA,EAAIoc,GAAkB,CAAE,cAAe,EAAG,EACvEW,GAAsBnB,GAAqBkB,EAAmB,EAC9DE,GAA0Bhd,EAAO,CAAA,EAAIkc,GAAgB,CACnD,cAAe,EACf,YAAa,EACb,cAAe,CACnB,CAAG,EACDe,GAA0BrB,GAAqBoB,EAAuB,EACtEE,GAA0Bld,EAAO,CAAA,EAAIkc,GAAgB,CACnD,cAAe,SAAU5Y,EAAO,CAC9B,MAAO,kBAAmBA,EACtBA,EAAM,cACN,OAAO,aACjB,CACA,CAAG,EACD6Z,GAA0BvB,GAAqBsB,EAAuB,EACtEE,GAA4Bpd,EAAO,CAAA,EAAIkc,GAAgB,CAAE,KAAM,EAAG,EAClEmB,GAA4BzB,GAAqBwB,EAAyB,EAC1EE,GAAe,CACb,IAAK,SACL,SAAU,IACV,KAAM,YACN,GAAI,UACJ,MAAO,aACP,KAAM,YACN,IAAK,SACL,IAAK,KACL,KAAM,cACN,KAAM,cACN,OAAQ,aACR,gBAAiB,gBAEnBC,GAAiB,CACf,EAAG,YACH,EAAG,MACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,UACJ,GAAI,MACJ,GAAI,QACJ,GAAI,WACJ,GAAI,SACJ,GAAI,IACJ,GAAI,SACJ,GAAI,WACJ,GAAI,MACJ,GAAI,OACJ,GAAI,YACJ,GAAI,UACJ,GAAI,aACJ,GAAI,YACJ,GAAI,SACJ,GAAI,SACJ,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,aACL,IAAK,QAEPC,GAAoB,CAClB,IAAK,SACL,QAAS,UACT,KAAM,UACN,MAAO,YAEX,SAASC,GAAoBC,EAAQ,CACnC,IAAI3D,EAAc,KAAK,YACvB,OAAOA,EAAY,iBACfA,EAAY,iBAAiB2D,CAAM,GAClCA,EAASF,GAAkBE,CAAM,GAChC,CAAC,CAAC3D,EAAY2D,CAAM,EACpB,EACR,CACA,SAAShB,GAAwB,CAC/B,OAAOe,EACT,CACA,IAAIE,EAAyB3d,EAAO,CAAA,EAAIoc,GAAkB,CACtD,IAAK,SAAUrC,EAAa,CAC1B,GAAIA,EAAY,IAAK,CACnB,IAAI9Y,EAAMqc,GAAavD,EAAY,GAAG,GAAKA,EAAY,IACvD,GAAuB9Y,IAAnB,eAAwB,OAAOA,CAC3C,CACM,OAAsB8Y,EAAY,OAA3B,YACDA,EAAcyB,GAAiBzB,CAAW,EACrCA,IAAP,GAAqB,QAAU,OAAO,aAAaA,CAAW,GAChDA,EAAY,OAA1B,WAA8CA,EAAY,OAAxB,QAChCwD,GAAexD,EAAY,OAAO,GAAK,eACvC,EACZ,EACI,KAAM,EACN,SAAU,EACV,QAAS,EACT,SAAU,EACV,OAAQ,EACR,QAAS,EACT,OAAQ,EACR,OAAQ,EACR,iBAAkB2C,EAClB,SAAU,SAAUpZ,EAAO,CACzB,OAAsBA,EAAM,OAArB,WAA4BkY,GAAiBlY,CAAK,EAAI,CACnE,EACI,QAAS,SAAUA,EAAO,CACxB,OAAqBA,EAAM,OAApB,WAAwCA,EAAM,OAAlB,QAC/BA,EAAM,QACN,CACV,EACI,MAAO,SAAUA,EAAO,CACtB,OAAsBA,EAAM,OAArB,WACHkY,GAAiBlY,CAAK,EACRA,EAAM,OAApB,WAAwCA,EAAM,OAAlB,QAC1BA,EAAM,QACN,CACZ,CACA,CAAG,EACDsa,EAAyBhC,GAAqB+B,CAAsB,EACpEE,EAAwB7d,EAAO,CAAA,EAAIyc,GAAqB,CACtD,UAAW,EACX,MAAO,EACP,OAAQ,EACR,SAAU,EACV,mBAAoB,EACpB,MAAO,EACP,MAAO,EACP,MAAO,EACP,YAAa,EACb,UAAW,CACf,CAAG,EACDqB,EAAwBlC,GAAqBiC,CAAqB,EAClEE,GAAsB/d,EAAO,CAAA,EAAIoc,GAAkB,CACjD,QAAS,EACT,cAAe,EACf,eAAgB,EAChB,OAAQ,EACR,QAAS,EACT,QAAS,EACT,SAAU,EACV,iBAAkBM,CACtB,CAAG,EACDsB,GAAsBpC,GAAqBmC,EAAmB,EAC9DE,GAA2Bje,EAAO,CAAA,EAAIkc,GAAgB,CACpD,aAAc,EACd,YAAa,EACb,cAAe,CACnB,CAAG,EACDgC,GAA2BtC,GAAqBqC,EAAwB,EACxEE,GAAsBne,EAAO,CAAA,EAAIyc,GAAqB,CACpD,OAAQ,SAAUnZ,EAAO,CACvB,MAAO,WAAYA,EACfA,EAAM,OACN,gBAAiBA,EACf,CAACA,EAAM,YACP,CACZ,EACI,OAAQ,SAAUA,EAAO,CACvB,MAAO,WAAYA,EACfA,EAAM,OACN,gBAAiBA,EACf,CAACA,EAAM,YACP,eAAgBA,EACd,CAACA,EAAM,WACP,CACd,EACI,OAAQ,EACR,UAAW,CACf,CAAG,EACD8a,GAAsBxC,GAAqBuC,EAAmB,EAC9DE,GAAuBre,EAAO,CAAA,EAAIkc,GAAgB,CAChD,SAAU,EACV,SAAU,CACd,CAAG,EACDoC,GAAuB1C,GAAqByC,EAAoB,EAChEE,GAAe,CAAC,EAAG,GAAI,GAAI,EAAE,EAC7BC,GAAyB5D,IAAa,qBAAsB,OAC5D6D,GAAe,KACjB7D,IACE,iBAAkB,WACjB6D,GAAe,SAAS,cAC3B,IAAIC,GAAuB9D,IAAa,cAAe,QAAU,CAAC6D,GAChEE,GACE/D,KACC,CAAC4D,IACCC,IAAgB,EAAIA,IAAgB,IAAMA,IAC/CG,GAAgB,IAChBC,GAAmB,GACrB,SAASC,GAAyBC,EAAchF,EAAa,CAC3D,OAAQgF,EAAY,CAClB,IAAK,QACH,OAAcR,GAAa,QAAQxE,EAAY,OAAO,IAA/C,GACT,IAAK,UACH,OAAeA,EAAY,UAApB,IACT,IAAK,WACL,IAAK,YACL,IAAK,WACH,MAAO,GACT,QACE,MAAO,EACb,CACA,CACA,SAASiF,GAAuBjF,EAAa,CAC3C,OAAAA,EAAcA,EAAY,OACN,OAAOA,GAApB,UAAmC,SAAUA,EAChDA,EAAY,KACZ,IACN,CACA,IAAIkF,GAAc,GAClB,SAASC,GAA0BH,EAAchF,EAAa,CAC5D,OAAQgF,EAAY,CAClB,IAAK,iBACH,OAAOC,GAAuBjF,CAAW,EAC3C,IAAK,WACH,OAAWA,EAAY,QAAnB,GAAiC,MACrC8E,GAAmB,GACZD,IACT,IAAK,YACH,OACGG,EAAehF,EAAY,KAC5BgF,IAAiBH,IAAiBC,GAAmB,KAAOE,EAEhE,QACE,OAAO,IACb,CACA,CACA,SAASI,GAA4BJ,EAAchF,EAAa,CAC9D,GAAIkF,GACF,OAA4BF,IAArB,kBACJ,CAACP,IACAM,GAAyBC,EAAchF,CAAW,GAChDgF,EAAe/D,GAAO,EACvBD,GAAeD,GAAYvJ,GAAO,KAClC0N,GAAc,GACfF,GACA,KACN,OAAQA,EAAY,CAClB,IAAK,QACH,OAAO,KACT,IAAK,WACH,GACE,EAAEhF,EAAY,SAAWA,EAAY,QAAUA,EAAY,UAC1DA,EAAY,SAAWA,EAAY,OACpC,CACA,GAAIA,EAAY,MAAQ,EAAIA,EAAY,KAAK,OAC3C,OAAOA,EAAY,KACrB,GAAIA,EAAY,MAAO,OAAO,OAAO,aAAaA,EAAY,KAAK,CAC3E,CACM,OAAO,KACT,IAAK,iBACH,OAAO4E,IAAuC5E,EAAY,SAArB,KACjC,KACAA,EAAY,KAClB,QACE,OAAO,IACb,CACA,CACA,IAAIqF,GAAsB,CACxB,MAAO,GACP,KAAM,GACN,SAAU,GACV,iBAAkB,GAClB,MAAO,GACP,MAAO,GACP,OAAQ,GACR,SAAU,GACV,MAAO,GACP,OAAQ,GACR,IAAK,GACL,KAAM,GACN,KAAM,GACN,IAAK,GACL,KAAM,IAER,SAASC,GAAmBxI,EAAM,CAChC,IAAIyI,EAAWzI,GAAQA,EAAK,UAAYA,EAAK,SAAS,YAAW,EACjE,OAAmByI,IAAZ,QACH,CAAC,CAACF,GAAoBvI,EAAK,IAAI,EAChByI,IAAf,UAGN,CACA,SAASC,GACPC,EACAjK,EACAwE,EACAI,EACA,CACAH,GACIC,GACEA,GAAa,KAAKE,CAAM,EACvBF,GAAe,CAACE,CAAM,EACxBH,GAAgBG,EACrB5E,EAAOkK,GAA4BlK,EAAM,UAAU,EACnD,EAAIA,EAAK,SACLwE,EAAc,IAAIoC,GAClB,WACA,SACA,KACApC,EACAI,GAEFqF,EAAc,KAAK,CAAE,MAAOzF,EAAa,UAAWxE,CAAI,CAAE,EAC9D,CACA,IAAImK,GAAkB,KACpBC,GAAsB,KACxB,SAASC,GAAgBJ,EAAe,CACtCK,GAAqBL,EAAe,CAAC,CACvC,CACA,SAASM,GAAsB5K,EAAY,CACzC,IAAID,EAAaK,GAAoBJ,CAAU,EAC/C,GAAImC,GAAqBpC,CAAU,EAAG,OAAOC,CAC/C,CACA,SAAS6K,GAA4BhB,EAAc7J,EAAY,CAC7D,GAAiB6J,IAAb,SAA2B,OAAO7J,CACxC,CACA,IAAI8K,GAAwB,GAC5B,GAAIpF,GAAW,CACb,IAAIqF,GACJ,GAAIrF,GAAW,CACb,IAAIsF,GAAgC,YAAa,SACjD,GAAI,CAACA,GAA+B,CAClC,IAAIC,GAA4B,SAAS,cAAc,KAAK,EAC5DA,GAA0B,aAAa,UAAW,SAAS,EAC3DD,GACiB,OAAOC,GAA0B,SAAhD,UACR,CACIF,GAAsCC,EAC1C,MAASD,GAAsC,GAC7CD,GACEC,KACC,CAAC,SAAS,cAAgB,EAAI,SAAS,aAC5C,CACA,SAASG,IAA6B,CACpCV,KACGA,GAAgB,YAAY,mBAAoBW,EAAoB,EACpEV,GAAsBD,GAAkB,KAC7C,CACA,SAASW,GAAqBtG,EAAa,CACzC,GACcA,EAAY,eAAxB,SACA+F,GAAsBH,EAAmB,EACzC,CACA,IAAIH,EAAgB,CAAA,EACpBD,GACEC,EACAG,GACA5F,EACAD,GAAeC,CAAW,GAE5BS,GAAiBoF,GAAiBJ,CAAa,CACnD,CACA,CACA,SAASc,GAAkCvB,EAAc5E,EAAQjF,EAAY,CAC7D6J,IAAd,WACKqB,GAA0B,EAC1BV,GAAkBvF,EAClBwF,GAAsBzK,EACvBwK,GAAgB,YAAY,mBAAoBW,EAAoB,GACrDtB,IAAf,YAA+BqB,GAA0B,CAC/D,CACA,SAASG,GAAmCxB,EAAc,CACxD,GACwBA,IAAtB,mBACYA,IAAZ,SACcA,IAAd,UAEA,OAAOe,GAAsBH,EAAmB,CACpD,CACA,SAASa,GAA2BzB,EAAc7J,EAAY,CAC5D,GAAgB6J,IAAZ,QAA0B,OAAOe,GAAsB5K,CAAU,CACvE,CACA,SAASuL,GAAmC1B,EAAc7J,EAAY,CACpE,GAAgB6J,IAAZ,SAAyCA,IAAb,SAC9B,OAAOe,GAAsB5K,CAAU,CAC3C,CACA,SAASwL,GAAGvS,EAAGwS,EAAG,CAChB,OAAQxS,IAAMwS,IAAYxS,IAAN,GAAW,EAAIA,IAAM,EAAIwS,IAAQxS,IAAMA,GAAKwS,IAAMA,CACxE,CACA,IAAIC,GAA0B,OAAO,OAAO,IAA7B,WAAkC,OAAO,GAAKF,GAC7D,SAASG,GAAaC,EAAMC,EAAM,CAChC,GAAIH,GAASE,EAAMC,CAAI,EAAG,MAAO,GACjC,GACe,OAAOD,GAApB,UACSA,IAAT,MACa,OAAOC,GAApB,UACSA,IAAT,KAEA,MAAO,GACT,IAAIC,EAAQ,OAAO,KAAKF,CAAI,EAC1BG,EAAQ,OAAO,KAAKF,CAAI,EAC1B,GAAIC,EAAM,SAAWC,EAAM,OAAQ,MAAO,GAC1C,IAAKA,EAAQ,EAAGA,EAAQD,EAAM,OAAQC,IAAS,CAC7C,IAAIC,EAAaF,EAAMC,CAAK,EAC5B,GACE,CAACngB,GAAe,KAAKigB,EAAMG,CAAU,GACrC,CAACN,GAASE,EAAKI,CAAU,EAAGH,EAAKG,CAAU,CAAC,EAE5C,MAAO,EACb,CACE,MAAO,EACT,CACA,SAASC,GAAYpb,EAAM,CACzB,KAAOA,GAAQA,EAAK,YAAcA,EAAOA,EAAK,WAC9C,OAAOA,CACT,CACA,SAASqb,GAA0B7P,EAAM8P,EAAQ,CAC/C,IAAItb,EAAOob,GAAY5P,CAAI,EAC3BA,EAAO,EACP,QAAS+P,EAASvb,GAAQ,CACxB,GAAUA,EAAK,WAAX,EAAqB,CAEvB,GADAub,EAAU/P,EAAOxL,EAAK,YAAY,OAC9BwL,GAAQ8P,GAAUC,GAAWD,EAC/B,MAAO,CAAE,KAAMtb,EAAM,OAAQsb,EAAS9P,CAAI,EAC5CA,EAAO+P,CACb,CACItb,EAAG,CACD,KAAOD,GAAQ,CACb,GAAIA,EAAK,YAAa,CACpBA,EAAOA,EAAK,YACZ,MAAMC,CAChB,CACQD,EAAOA,EAAK,UACpB,CACMA,EAAO,MACb,CACIA,EAAOob,GAAYpb,CAAI,CAC3B,CACA,CACA,SAASwb,GAAaC,EAAWC,EAAW,CAC1C,OAAOD,GAAaC,EAChBD,IAAcC,EACZ,GACAD,GAAmBA,EAAU,WAAhB,EACX,GACAC,GAAmBA,EAAU,WAAhB,EACXF,GAAaC,EAAWC,EAAU,UAAU,EAC5C,aAAcD,EACZA,EAAU,SAASC,CAAS,EAC5BD,EAAU,wBACR,CAAC,EAAEA,EAAU,wBAAwBC,CAAS,EAAI,IAClD,GACV,EACN,CACA,SAASC,GAAqBzX,EAAe,CAC3CA,EACUA,GAAR,MACQA,EAAc,eAAtB,MACQA,EAAc,cAAc,aAApC,KACIA,EAAc,cAAc,YAC5B,OACN,QACMpI,EAAU2V,GAAiBvN,EAAc,QAAQ,EACrDpI,aAAmBoI,EAAc,mBAEjC,CACA,GAAI,CACF,IAAI2D,EACW,OAAO/L,EAAQ,cAAc,SAAS,MAAnD,QACR,MAAkB,CACZ+L,EAA2B,EACjC,CACI,GAAIA,EAA0B3D,EAAgBpI,EAAQ,kBACjD,OACLA,EAAU2V,GAAiBvN,EAAc,QAAQ,CACrD,CACE,OAAOpI,CACT,CACA,SAAS8f,GAAyB9K,EAAM,CACtC,IAAIyI,EAAWzI,GAAQA,EAAK,UAAYA,EAAK,SAAS,YAAW,EACjE,OACEyI,IACcA,IAAZ,UACYzI,EAAK,OAAhB,QACcA,EAAK,OAAlB,UACUA,EAAK,OAAf,OACUA,EAAK,OAAf,OACeA,EAAK,OAApB,aACayI,IAAf,YACWzI,EAAK,kBAAhB,OAEN,CACA,IAAI+K,GACAhH,IAAa,iBAAkB,UAAY,IAAM,SAAS,aAC5DiH,GAAgB,KAChBC,GAAoB,KACpBC,GAAgB,KAChBC,GAAY,GACd,SAASC,GAAqBzC,EAAezF,EAAakC,EAAmB,CAC3E,IAAIxE,EACFwE,EAAkB,SAAWA,EACzBA,EAAkB,SACZA,EAAkB,WAAxB,EACEA,EACAA,EAAkB,cAC1B+F,IACUH,IAAR,MACAA,KAAkBrK,GAAiBC,CAAG,IACpCA,EAAMoK,GACR,mBAAoBpK,GAAOkK,GAAyBlK,CAAG,EAClDA,EAAM,CAAE,MAAOA,EAAI,eAAgB,IAAKA,EAAI,YAAY,GACvDA,GACCA,EAAI,eAAiBA,EAAI,cAAc,aACxC,QACA,aAAY,EACbA,EAAM,CACL,WAAYA,EAAI,WAChB,aAAcA,EAAI,aAClB,UAAWA,EAAI,UACf,YAAaA,EAAI,WAC3B,GACKsK,IAAiBlB,GAAakB,GAAetK,CAAG,IAC7CsK,GAAgBtK,EACjBA,EAAMgI,GAA4BqC,GAAmB,UAAU,EAChE,EAAIrK,EAAI,SACJsC,EAAc,IAAIoC,GAClB,WACA,SACA,KACApC,EACAkC,GAEFuD,EAAc,KAAK,CAAE,MAAOzF,EAAa,UAAWtC,EAAK,EACxDsC,EAAY,OAAS8H,KAC9B,CACA,SAASK,GAAcC,EAAWC,EAAW,CAC3C,IAAIC,EAAW,CAAA,EACf,OAAAA,EAASF,EAAU,YAAW,CAAE,EAAIC,EAAU,YAAW,EACzDC,EAAS,SAAWF,CAAS,EAAI,SAAWC,EAC5CC,EAAS,MAAQF,CAAS,EAAI,MAAQC,EAC/BC,CACT,CACA,IAAIC,GAAiB,CACjB,aAAcJ,GAAc,YAAa,cAAc,EACvD,mBAAoBA,GAAc,YAAa,oBAAoB,EACnE,eAAgBA,GAAc,YAAa,gBAAgB,EAC3D,cAAeA,GAAc,aAAc,eAAe,EAC1D,gBAAiBA,GAAc,aAAc,iBAAiB,EAC9D,iBAAkBA,GAAc,aAAc,kBAAkB,EAChE,cAAeA,GAAc,aAAc,eAAe,GAE5DK,GAAqB,CAAA,EACrBxJ,GAAQ,CAAA,EACV6B,KACI7B,GAAQ,SAAS,cAAc,KAAK,EAAE,MACxC,mBAAoB,SACjB,OAAOuJ,GAAe,aAAa,UACpC,OAAOA,GAAe,mBAAmB,UACzC,OAAOA,GAAe,eAAe,WACvC,oBAAqB,QACnB,OAAOA,GAAe,cAAc,YACxC,SAASE,GAA2BJ,EAAW,CAC7C,GAAIG,GAAmBH,CAAS,EAAG,OAAOG,GAAmBH,CAAS,EACtE,GAAI,CAACE,GAAeF,CAAS,EAAG,OAAOA,EACvC,IAAIK,EAAYH,GAAeF,CAAS,EACtCD,EACF,IAAKA,KAAaM,EAChB,GAAIA,EAAU,eAAeN,CAAS,GAAKA,KAAapJ,GACtD,OAAQwJ,GAAmBH,CAAS,EAAIK,EAAUN,CAAS,EAC/D,OAAOC,CACT,CACA,IAAIM,GAAgBF,GAA2B,cAAc,EAC3DG,GAAsBH,GAA2B,oBAAoB,EACrEI,GAAkBJ,GAA2B,gBAAgB,EAC7DK,GAAiBL,GAA2B,eAAe,EAC3DM,GAAmBN,GAA2B,iBAAiB,EAC/DO,GAAoBP,GAA2B,kBAAkB,EACjEQ,GAAiBR,GAA2B,eAAe,EAC3DS,GAA6B,IAAI,IACjCC,GACE,mnBAAmnB,MACjnB,KAENA,GAAwB,KAAK,WAAW,EACxC,SAASC,GAAoBpE,EAAchD,EAAW,CACpDkH,GAA2B,IAAIlE,EAAchD,CAAS,EACtDlG,GAAsBkG,EAAW,CAACgD,CAAY,CAAC,CACjD,CACA,IAAI1b,GACe,OAAO,aAAtB,WACI,YACA,SAAUnB,EAAO,CACf,GACe,OAAO,QAApB,UACe,OAAO,OAAO,YAA7B,WACA,CACA,IAAIoB,EAAQ,IAAI,OAAO,WAAW,QAAS,CACzC,QAAS,GACT,WAAY,GACZ,QACe,OAAOpB,GAApB,UACSA,IAAT,MACa,OAAOA,EAAM,SAA1B,SACI,OAAOA,EAAM,OAAO,EACpB,OAAOA,CAAK,EAClB,MAAOA,CACrB,CAAa,EACD,GAAI,CAAC,OAAO,cAAcoB,CAAK,EAAG,MAC9C,SACyB,OAAO,SAApB,UACe,OAAO,QAAQ,MAA9B,WACA,CACA,QAAQ,KAAK,oBAAqBpB,CAAK,EACvC,MACZ,CACU,QAAQ,MAAMA,CAAK,CAC7B,EACEkhB,GAAmB,CAAA,EACnBC,GAAwB,EACxBC,GAA2B,EAC7B,SAASC,IAAkC,CACzC,QACMC,EAAWH,GACb1gB,EAAK2gB,GAA2BD,GAAwB,EAC1D1gB,EAAI6gB,GAEJ,CACA,IAAIhY,EAAQ4X,GAAiBzgB,CAAC,EAC9BygB,GAAiBzgB,GAAG,EAAI,KACxB,IAAI8gB,EAAQL,GAAiBzgB,CAAC,EAC9BygB,GAAiBzgB,GAAG,EAAI,KACxB,IAAI0Q,EAAS+P,GAAiBzgB,CAAC,EAC/BygB,GAAiBzgB,GAAG,EAAI,KACxB,IAAIuP,EAAOkR,GAAiBzgB,CAAC,EAE7B,GADAygB,GAAiBzgB,GAAG,EAAI,KACX8gB,IAAT,MAA2BpQ,IAAT,KAAiB,CACrC,IAAIqQ,EAAUD,EAAM,QACXC,IAAT,KACKrQ,EAAO,KAAOA,GACbA,EAAO,KAAOqQ,EAAQ,KAAQA,EAAQ,KAAOrQ,GACnDoQ,EAAM,QAAUpQ,CACtB,CACUnB,IAAN,GAAcyR,GAA8BnY,EAAO6H,EAAQnB,CAAI,CACnE,CACA,CACA,SAAS0R,GAAgBpY,EAAOiY,EAAOpQ,EAAQnB,EAAM,CACnDkR,GAAiBC,IAAuB,EAAI7X,EAC5C4X,GAAiBC,IAAuB,EAAII,EAC5CL,GAAiBC,IAAuB,EAAIhQ,EAC5C+P,GAAiBC,IAAuB,EAAInR,EAC5CoR,IAA4BpR,EAC5B1G,EAAM,OAAS0G,EACf1G,EAAQA,EAAM,UACLA,IAAT,OAAmBA,EAAM,OAAS0G,EACpC,CACA,SAAS2R,GAA4BrY,EAAOiY,EAAOpQ,EAAQnB,EAAM,CAC/D,OAAA0R,GAAgBpY,EAAOiY,EAAOpQ,EAAQnB,CAAI,EACnC4R,GAAuBtY,CAAK,CACrC,CACA,SAASuY,GAA+BvY,EAAO0G,EAAM,CACnD,OAAA0R,GAAgBpY,EAAO,KAAM,KAAM0G,CAAI,EAChC4R,GAAuBtY,CAAK,CACrC,CACA,SAASmY,GAA8BK,EAAa3Q,EAAQnB,EAAM,CAChE8R,EAAY,OAAS9R,EACrB,IAAIlG,EAAYgY,EAAY,UACnBhY,IAAT,OAAuBA,EAAU,OAASkG,GAC1C,QAAS+R,EAAW,GAAI/d,EAAS8d,EAAY,OAAiB9d,IAAT,MAClDA,EAAO,YAAcgM,EACnBlG,EAAY9F,EAAO,UACX8F,IAAT,OAAuBA,EAAU,YAAckG,GACxChM,EAAO,MAAd,KACI8d,EAAc9d,EAAO,UACd8d,IAAT,MAAwBA,EAAY,YAAc,IAAMC,EAAW,KACpED,EAAc9d,EACdA,EAASA,EAAO,OACrB,OAAa8d,EAAY,MAAlB,GACD9d,EAAS8d,EAAY,UACvBC,GACW5Q,IAAT,OACE4Q,EAAW,GAAKrT,GAAMsB,CAAI,EAC3B8R,EAAc9d,EAAO,cACrB8F,EAAYgY,EAAYC,CAAQ,EACxBjY,IAAT,KACKgY,EAAYC,CAAQ,EAAI,CAAC5Q,CAAM,EAChCrH,EAAU,KAAKqH,CAAM,EACxBA,EAAO,KAAOnB,EAAO,WACxBhM,GACA,IACN,CACA,SAAS4d,GAAuBE,EAAa,CAC3C,GAAI,GAAKE,GACP,MACIA,GAAoB,EACrBC,GAAwB,KACzB,MAAMxa,EAAuB,GAAG,CAAC,EAErC,QAASzD,EAAS8d,EAAY,OAAiB9d,IAAT,MACnC8d,EAAc9d,EAAUA,EAAS8d,EAAY,OAChD,OAAaA,EAAY,MAAlB,EAAwBA,EAAY,UAAY,IACzD,CACA,IAAII,GAAqB,CAAA,EACzB,SAASC,GAAU/X,EAAKgY,EAAcrjB,EAAKsjB,EAAM,CAC/C,KAAK,IAAMjY,EACX,KAAK,IAAMrL,EACX,KAAK,QACH,KAAK,MACL,KAAK,OACL,KAAK,UACL,KAAK,KACL,KAAK,YACH,KACJ,KAAK,MAAQ,EACb,KAAK,WAAa,KAAK,IAAM,KAC7B,KAAK,aAAeqjB,EACpB,KAAK,aACH,KAAK,cACL,KAAK,YACL,KAAK,cACH,KACJ,KAAK,KAAOC,EACZ,KAAK,aAAe,KAAK,MAAQ,EACjC,KAAK,UAAY,KACjB,KAAK,WAAa,KAAK,MAAQ,EAC/B,KAAK,UAAY,IACnB,CACA,SAASC,GAAqBlY,EAAKgY,EAAcrjB,EAAKsjB,EAAM,CAC1D,OAAO,IAAIF,GAAU/X,EAAKgY,EAAcrjB,EAAKsjB,CAAI,CACnD,CACA,SAASE,GAAgBvkB,EAAW,CAClC,OAAAA,EAAYA,EAAU,UACf,EAAE,CAACA,GAAa,CAACA,EAAU,iBACpC,CACA,SAASwkB,GAAqBC,EAASL,EAAc,CACnD,IAAI9U,EAAiBmV,EAAQ,UAC7B,OAASnV,IAAT,MACMA,EAAiBgV,GACjBG,EAAQ,IACRL,EACAK,EAAQ,IACRA,EAAQ,MAETnV,EAAe,YAAcmV,EAAQ,YACrCnV,EAAe,KAAOmV,EAAQ,KAC9BnV,EAAe,UAAYmV,EAAQ,UACnCnV,EAAe,UAAYmV,EAC3BA,EAAQ,UAAYnV,IACnBA,EAAe,aAAe8U,EAC/B9U,EAAe,KAAOmV,EAAQ,KAC9BnV,EAAe,MAAQ,EACvBA,EAAe,aAAe,EAC9BA,EAAe,UAAY,MAChCA,EAAe,MAAQmV,EAAQ,MAAQ,SACvCnV,EAAe,WAAamV,EAAQ,WACpCnV,EAAe,MAAQmV,EAAQ,MAC/BnV,EAAe,MAAQmV,EAAQ,MAC/BnV,EAAe,cAAgBmV,EAAQ,cACvCnV,EAAe,cAAgBmV,EAAQ,cACvCnV,EAAe,YAAcmV,EAAQ,YACrCL,EAAeK,EAAQ,aACvBnV,EAAe,aACJ8U,IAAT,KACI,KACA,CAAE,MAAOA,EAAa,MAAO,aAAcA,EAAa,YAAY,EAC1E9U,EAAe,QAAUmV,EAAQ,QACjCnV,EAAe,MAAQmV,EAAQ,MAC/BnV,EAAe,IAAMmV,EAAQ,IAC7BnV,EAAe,WAAamV,EAAQ,WAC7BnV,CACT,CACA,SAASoV,GAAoBpV,EAAgBwC,EAAa,CACxDxC,EAAe,OAAS,SACxB,IAAImV,EAAUnV,EAAe,UAC7B,OAASmV,IAAT,MACMnV,EAAe,WAAa,EAC7BA,EAAe,MAAQwC,EACvBxC,EAAe,MAAQ,KACvBA,EAAe,aAAe,EAC9BA,EAAe,cAAgB,KAC/BA,EAAe,cAAgB,KAC/BA,EAAe,YAAc,KAC7BA,EAAe,aAAe,KAC9BA,EAAe,UAAY,OAC1BA,EAAe,WAAamV,EAAQ,WACrCnV,EAAe,MAAQmV,EAAQ,MAC/BnV,EAAe,MAAQmV,EAAQ,MAC/BnV,EAAe,aAAe,EAC9BA,EAAe,UAAY,KAC3BA,EAAe,cAAgBmV,EAAQ,cACvCnV,EAAe,cAAgBmV,EAAQ,cACvCnV,EAAe,YAAcmV,EAAQ,YACrCnV,EAAe,KAAOmV,EAAQ,KAC9B3S,EAAc2S,EAAQ,aACtBnV,EAAe,aACLwC,IAAT,KACI,KACA,CACE,MAAOA,EAAY,MACnB,aAAcA,EAAY,YACxC,GACSxC,CACT,CACA,SAASqV,GACP7jB,EACAC,EACAqjB,EACAQ,EACAP,EACAnT,EACA,CACA,IAAI2T,EAAW,EAEf,GADAD,EAAQ9jB,EACW,OAAOA,GAAtB,WAA4ByjB,GAAgBzjB,CAAI,IAAM+jB,EAAW,WAC/C,OAAO/jB,GAApB,SACP+jB,EAAWC,GACThkB,EACAsjB,EACApX,EAAmB,OACzB,EACQ,GACWlM,IAAX,QAA8BA,IAAX,QAA8BA,IAAX,OACpC,GACA,OAENgF,EAAG,OAAQhF,EAAI,CACb,KAAKrB,GACH,OACGqB,EAAOwjB,GAAqB,GAAIF,EAAcrjB,EAAKsjB,CAAI,EACvDvjB,EAAK,YAAcrB,GACnBqB,EAAK,MAAQoQ,EACdpQ,EAEJ,KAAK9B,EACH,OAAO+lB,GAAwBX,EAAa,SAAUC,EAAMnT,EAAOnQ,CAAG,EACxE,KAAK9B,EACH4lB,EAAW,EACXR,GAAQ,GACR,MACF,KAAKnlB,GACH,OACG4B,EAAOwjB,GAAqB,GAAIF,EAAcrjB,EAAKsjB,EAAO,CAAC,EAC3DvjB,EAAK,YAAc5B,GACnB4B,EAAK,MAAQoQ,EACdpQ,EAEJ,KAAKxB,GACH,OACGwB,EAAOwjB,GAAqB,GAAIF,EAAcrjB,EAAKsjB,CAAI,EACvDvjB,EAAK,YAAcxB,GACnBwB,EAAK,MAAQoQ,EACdpQ,EAEJ,KAAKwL,EACH,OACGxL,EAAOwjB,GAAqB,GAAIF,EAAcrjB,EAAKsjB,CAAI,EACvDvjB,EAAK,YAAcwL,EACnBxL,EAAK,MAAQoQ,EACdpQ,EAEJ,QACE,GAAiB,OAAOA,GAApB,UAAqCA,IAAT,KAC9B,OAAQA,EAAK,SAAQ,CACnB,KAAK1B,GACHylB,EAAW,GACX,MAAM/e,EACR,KAAK3G,GACH0lB,EAAW,EACX,MAAM/e,EACR,KAAKzG,GACHwlB,EAAW,GACX,MAAM/e,EACR,KAAKvG,EACHslB,EAAW,GACX,MAAM/e,EACR,KAAKtG,GACHqlB,EAAW,GACXD,EAAQ,KACR,MAAM9e,CACpB,CACQ+e,EAAW,GACXT,EAAe,MACb3a,EAAuB,IAAc3I,IAAT,KAAgB,OAAS,OAAOA,EAAM,EAAE,GAEtE8jB,EAAQ,IAChB,CACE,OAAA7jB,EAAMujB,GAAqBO,EAAUT,EAAcrjB,EAAKsjB,CAAI,EAC5DtjB,EAAI,YAAcD,EAClBC,EAAI,KAAO6jB,EACX7jB,EAAI,MAAQmQ,EACLnQ,CACT,CACA,SAASgkB,GAAwBC,EAAUX,EAAMnT,EAAOnQ,EAAK,CAC3D,OAAAikB,EAAWV,GAAqB,EAAGU,EAAUjkB,EAAKsjB,CAAI,EACtDW,EAAS,MAAQ9T,EACV8T,CACT,CACA,SAASC,GAAoBC,EAASb,EAAMnT,EAAO,CACjD,OAAAgU,EAAUZ,GAAqB,EAAGY,EAAS,KAAMb,CAAI,EACrDa,EAAQ,MAAQhU,EACTgU,CACT,CACA,SAASC,GAAkCC,EAAgB,CACzD,IAAI9Z,EAAQgZ,GAAqB,GAAI,KAAM,KAAM,CAAC,EAClD,OAAAhZ,EAAM,UAAY8Z,EACX9Z,CACT,CACA,SAAS+Z,GAAsBC,EAAQjB,EAAMnT,EAAO,CAClD,OAAAmT,EAAOC,GACL,EACSgB,EAAO,WAAhB,KAA2BA,EAAO,SAAW,CAAA,EAC7CA,EAAO,IACPjB,GAEFA,EAAK,MAAQnT,EACbmT,EAAK,UAAY,CACf,cAAeiB,EAAO,cACtB,gBAAiB,KACjB,eAAgBA,EAAO,gBAElBjB,CACT,CACA,IAAIkB,GAAiB,IAAI,QACzB,SAASC,GAA2B1gB,EAAO2gB,EAAQ,CACjD,GAAiB,OAAO3gB,GAApB,UAAsCA,IAAT,KAAgB,CAC/C,IAAI4gB,EAAWH,GAAe,IAAIzgB,CAAK,EACvC,OAAe4gB,IAAX,OAA4BA,GAChCD,EAAS,CACP,MAAO3gB,EACP,OAAQ2gB,EACR,MAAOpW,EAA4BoW,CAAM,GAE3CF,GAAe,IAAIzgB,EAAO2gB,CAAM,EACzBA,EACX,CACE,MAAO,CACL,MAAO3gB,EACP,OAAQ2gB,EACR,MAAOpW,EAA4BoW,CAAM,EAE7C,CACA,IAAIE,GAAY,CAAA,EACdC,GAAiB,EACjBC,GAAmB,KACnBC,GAAgB,EAChBC,GAAU,CAAA,EACVC,GAAe,EACfC,GAAsB,KACtBC,GAAgB,EAChBC,GAAsB,GACxB,SAASC,GAAa9W,EAAgB+W,EAAe,CACnDV,GAAUC,IAAgB,EAAIE,GAC9BH,GAAUC,IAAgB,EAAIC,GAC9BA,GAAmBvW,EACnBwW,GAAgBO,CAClB,CACA,SAASC,GAAWhX,EAAgB+W,EAAezkB,EAAO,CACxDmkB,GAAQC,IAAc,EAAIE,GAC1BH,GAAQC,IAAc,EAAIG,GAC1BJ,GAAQC,IAAc,EAAIC,GAC1BA,GAAsB3W,EACtB,IAAIiX,EAAuBL,GAC3B5W,EAAiB6W,GACjB,IAAIK,EAAa,GAAK9V,GAAM6V,CAAoB,EAAI,EACpDA,GAAwB,EAAE,GAAKC,GAC/B5kB,GAAS,EACT,IAAIyE,EAAS,GAAKqK,GAAM2V,CAAa,EAAIG,EACzC,GAAI,GAAKngB,EAAQ,CACf,IAAIogB,EAAuBD,EAAcA,EAAa,EACtDngB,GACEkgB,GACE,GAAKE,GAAwB,GAC/B,SAAS,EAAE,EACbF,IAAyBE,EACzBD,GAAcC,EACdP,GACG,GAAM,GAAKxV,GAAM2V,CAAa,EAAIG,EAClC5kB,GAAS4kB,EACVD,EACFJ,GAAsB9f,EAASiJ,CACnC,MACK4W,GACE,GAAK7f,EAAWzE,GAAS4kB,EAAcD,EACvCJ,GAAsB7W,CAC7B,CACA,SAASoX,GAAuBpX,EAAgB,CACrCA,EAAe,SAAxB,OACG8W,GAAa9W,EAAgB,CAAC,EAAGgX,GAAWhX,EAAgB,EAAG,CAAC,EACrE,CACA,SAASqX,GAAerX,EAAgB,CACtC,KAAOA,IAAmBuW,IACvBA,GAAmBF,GAAU,EAAEC,EAAc,EAC3CD,GAAUC,EAAc,EAAI,KAC5BE,GAAgBH,GAAU,EAAEC,EAAc,EAC1CD,GAAUC,EAAc,EAAI,KACjC,KAAOtW,IAAmB2W,IACvBA,GAAsBF,GAAQ,EAAEC,EAAY,EAC1CD,GAAQC,EAAY,EAAI,KACxBG,GAAsBJ,GAAQ,EAAEC,EAAY,EAC5CD,GAAQC,EAAY,EAAI,KACxBE,GAAgBH,GAAQ,EAAEC,EAAY,EACtCD,GAAQC,EAAY,EAAI,IAC/B,CACA,SAASY,GAA4BtX,EAAgBuX,EAAkB,CACrEd,GAAQC,IAAc,EAAIE,GAC1BH,GAAQC,IAAc,EAAIG,GAC1BJ,GAAQC,IAAc,EAAIC,GAC1BC,GAAgBW,EAAiB,GACjCV,GAAsBU,EAAiB,SACvCZ,GAAsB3W,CACxB,CACA,IAAIwX,GAAuB,KACzBC,GAAyB,KACzB9O,GAAc,GACd+O,GAAkB,KAClBC,GAAyB,GACzBC,GAA6B,MAAMzd,EAAuB,GAAG,CAAC,EAChE,SAAS0d,GAAyB7b,EAAO,CACvC,IAAItJ,EAAQ,MACVyH,EACE,IACA,EAAI,UAAU,QAAqB,UAAU,CAAC,IAAtB,QAA2B,UAAU,CAAC,EAC1D,OACA,OACJ,EACN,GAEE,MAAA2d,GAAoB5B,GAA2BxjB,EAAOsJ,CAAK,CAAC,EACtD4b,EACR,CACA,SAASG,GAA6B/b,EAAO,CAC3C,IAAIgc,EAAWhc,EAAM,UACnBxK,EAAOwK,EAAM,KACbrL,EAAQqL,EAAM,cAGhB,OAFAgc,EAASjT,EAAmB,EAAI/I,EAChCgc,EAAShT,EAAgB,EAAIrU,EACrBa,EAAI,CACV,IAAK,SACHymB,GAA0B,SAAUD,CAAQ,EAC5CC,GAA0B,QAASD,CAAQ,EAC3C,MACF,IAAK,SACL,IAAK,SACL,IAAK,QACHC,GAA0B,OAAQD,CAAQ,EAC1C,MACF,IAAK,QACL,IAAK,QACH,IAAKxmB,EAAO,EAAGA,EAAO0mB,GAAgB,OAAQ1mB,IAC5CymB,GAA0BC,GAAgB1mB,CAAI,EAAGwmB,CAAQ,EAC3D,MACF,IAAK,SACHC,GAA0B,QAASD,CAAQ,EAC3C,MACF,IAAK,MACL,IAAK,QACL,IAAK,OACHC,GAA0B,QAASD,CAAQ,EAC3CC,GAA0B,OAAQD,CAAQ,EAC1C,MACF,IAAK,UACHC,GAA0B,SAAUD,CAAQ,EAC5C,MACF,IAAK,QACHC,GAA0B,UAAWD,CAAQ,EAC7CtP,GACEsP,EACArnB,EAAM,MACNA,EAAM,aACNA,EAAM,QACNA,EAAM,eACNA,EAAM,KACNA,EAAM,KACN,IAEF,MACF,IAAK,SACHsnB,GAA0B,UAAWD,CAAQ,EAC7C,MACF,IAAK,WACHC,GAA0B,UAAWD,CAAQ,EAC3C/O,GAAa+O,EAAUrnB,EAAM,MAAOA,EAAM,aAAcA,EAAM,QAAQ,CAC9E,CACEa,EAAOb,EAAM,SACC,OAAOa,GAApB,UACc,OAAOA,GAApB,UACa,OAAOA,GAApB,UACFwmB,EAAS,cAAgB,GAAKxmB,GACvBb,EAAM,2BAAb,IACAwnB,GAAsBH,EAAS,YAAaxmB,CAAI,GACnCb,EAAM,SAAd,OACEsnB,GAA0B,eAAgBD,CAAQ,EACnDC,GAA0B,SAAUD,CAAQ,GACtCrnB,EAAM,UAAd,MAA0BsnB,GAA0B,SAAUD,CAAQ,EAC9DrnB,EAAM,aAAd,MACEsnB,GAA0B,YAAaD,CAAQ,EACzCrnB,EAAM,SAAd,OAA0BqnB,EAAS,QAAU5N,IAC5C4N,EAAW,IACXA,EAAW,GAChBA,GAAYH,GAAyB7b,EAAO,EAAE,CAChD,CACA,SAASoc,GAAoBpc,EAAO,CAClC,IAAKwb,GAAuBxb,EAAM,OAAQwb,IACxC,OAAQA,GAAqB,IAAG,CAC9B,IAAK,GACL,IAAK,IACL,IAAK,IACHG,GAAyB,GACzB,OACF,IAAK,IACL,IAAK,GACHA,GAAyB,GACzB,OACF,QACEH,GAAuBA,GAAqB,MACpD,CACA,CACA,SAASa,GAAkBrc,EAAO,CAChC,GAAIA,IAAUwb,GAAsB,MAAO,GAC3C,GAAI,CAAC7O,GAAa,OAAOyP,GAAoBpc,CAAK,EAAI2M,GAAc,GAAK,GACzE,IAAI7L,EAAMd,EAAM,IACdsc,EAWF,IAVKA,EAAwBxb,IAAN,GAAoBA,IAAP,OAC7Bwb,EAAwBxb,IAAN,KACpBwb,EAAkBtc,EAAM,KACtBsc,EACC,EAAaA,IAAX,QAA2CA,IAAb,WAChCC,GAAqBvc,EAAM,KAAMA,EAAM,aAAa,GAC1Dsc,EAAkB,CAACA,GAErBA,GAAmBb,IAA0BI,GAAyB7b,CAAK,EAC3Eoc,GAAoBpc,CAAK,EACdc,IAAP,GAAY,CAGd,GAFAd,EAAQA,EAAM,cACdA,EAAiBA,IAAT,KAAiBA,EAAM,WAAa,KACxC,CAACA,EAAO,MAAM,MAAM7B,EAAuB,GAAG,CAAC,EACnDsd,GACEe,GAAgDxc,CAAK,CAC3D,SAAoBc,IAAP,GAAY,CAGrB,GAFAd,EAAQA,EAAM,cACdA,EAAiBA,IAAT,KAAiBA,EAAM,WAAa,KACxC,CAACA,EAAO,MAAM,MAAM7B,EAAuB,GAAG,CAAC,EACnDsd,GACEe,GAAgDxc,CAAK,CAC3D,MACWc,IAAP,IACMA,EAAM2a,GACRgB,GAAiBzc,EAAM,IAAI,GACrBA,EAAQ0c,GACTA,GAA8C,KAC9CjB,GAAyBzb,GACzByb,GAAyB3a,GAC7B2a,GAAyBD,GACtBmB,GAAkB3c,EAAM,UAAU,WAAW,EAC7C,KACV,MAAO,EACT,CACA,SAAS4c,IAAsB,CAC7BnB,GAAyBD,GAAuB,KAChD7O,GAAc,EAChB,CACA,SAASkQ,IAAsC,CAC7C,IAAIC,EAAepB,GACnB,OAASoB,IAAT,OACYC,KAAT,KACIA,GAAsCD,EACvCC,GAAoC,KAAK,MACvCA,GACAD,GAELpB,GAAkB,MACdoB,CACT,CACA,SAAShB,GAAoBplB,EAAO,CACzBglB,KAAT,KACKA,GAAkB,CAAChlB,CAAK,EACzBglB,GAAgB,KAAKhlB,CAAK,CAChC,CACA,IAAIsmB,GAAcxb,EAAa,IAAI,EACjCyb,GAA4B,KAC5BC,GAAwB,KAC1B,SAASC,GAAaC,EAAexoB,EAASyoB,EAAW,CACvDhjB,EAAK2iB,GAAapoB,EAAQ,aAAa,EACvCA,EAAQ,cAAgByoB,CAC1B,CACA,SAASC,GAAY1oB,EAAS,CAC5BA,EAAQ,cAAgBooB,GAAY,QACpCpiB,EAAIoiB,EAAW,CACjB,CACA,SAASO,GAAgC7iB,EAAQ8L,EAAagX,EAAiB,CAC7E,KAAgB9iB,IAAT,MAAmB,CACxB,IAAI8F,EAAY9F,EAAO,UAOvB,IANCA,EAAO,WAAa8L,KAAiBA,GAChC9L,EAAO,YAAc8L,EACdhG,IAAT,OAAuBA,EAAU,YAAcgG,IACtChG,IAAT,OACCA,EAAU,WAAagG,KAAiBA,IACxChG,EAAU,YAAcgG,GACzB9L,IAAW8iB,EAAiB,MAChC9iB,EAASA,EAAO,MACpB,CACA,CACA,SAAS+iB,GACPzZ,EACA0Z,EACAlX,EACAmX,EACA,CACA,IAAI3d,EAAQgE,EAAe,MAE3B,IADShE,IAAT,OAAmBA,EAAM,OAASgE,GAClBhE,IAAT,MAAkB,CACvB,IAAI4d,EAAO5d,EAAM,aACjB,GAAa4d,IAAT,KAAe,CACjB,IAAIC,EAAY7d,EAAM,MACtB4d,EAAOA,EAAK,aACZpjB,EAAG,KAAgBojB,IAAT,MAAiB,CACzB,IAAIE,EAAaF,EACjBA,EAAO5d,EACP,QAAS7I,EAAI,EAAGA,EAAIumB,EAAS,OAAQvmB,IACnC,GAAI2mB,EAAW,UAAYJ,EAASvmB,CAAC,EAAG,CACtCymB,EAAK,OAASpX,EACdsX,EAAaF,EAAK,UACTE,IAAT,OAAwBA,EAAW,OAAStX,GAC5C+W,GACEK,EAAK,OACLpX,EACAxC,GAEF2Z,IAA6BE,EAAY,MACzC,MAAMrjB,CAClB,CACQojB,EAAOE,EAAW,IAC1B,CACA,SAAsB9d,EAAM,MAAb,GAAkB,CAE3B,GADA6d,EAAY7d,EAAM,OACL6d,IAAT,KAAoB,MAAM,MAAM1f,EAAuB,GAAG,CAAC,EAC/D0f,EAAU,OAASrX,EACnBoX,EAAOC,EAAU,UACRD,IAAT,OAAkBA,EAAK,OAASpX,GAChC+W,GAAgCM,EAAWrX,EAAaxC,CAAc,EACtE6Z,EAAY,IAClB,MAAWA,EAAY7d,EAAM,MACzB,GAAa6d,IAAT,KAAoBA,EAAU,OAAS7d,MAEzC,KAAK6d,EAAY7d,EAAgB6d,IAAT,MAAsB,CAC5C,GAAIA,IAAc7Z,EAAgB,CAChC6Z,EAAY,KACZ,KACV,CAEQ,GADA7d,EAAQ6d,EAAU,QACL7d,IAAT,KAAgB,CAClBA,EAAM,OAAS6d,EAAU,OACzBA,EAAY7d,EACZ,KACV,CACQ6d,EAAYA,EAAU,MAC9B,CACI7d,EAAQ6d,CACZ,CACA,CACA,SAASE,GACP5E,EACAnV,EACAwC,EACAmX,EACA,CACAxE,EAAU,KACV,QACMze,EAASsJ,EAAgBga,EAA6B,GACjDtjB,IAAT,MAEA,CACA,GAAI,CAACsjB,GACH,IAAWtjB,EAAO,MAAQ,UAAtB,EAA+BsjB,EAA6B,YAChDtjB,EAAO,MAAQ,UAAtB,EAA+B,MAC1C,GAAWA,EAAO,MAAd,GAAmB,CACrB,IAAIujB,EAAgBvjB,EAAO,UAC3B,GAAaujB,IAAT,KAAwB,MAAM,MAAM9f,EAAuB,GAAG,CAAC,EAEnE,GADA8f,EAAgBA,EAAc,cACjBA,IAAT,KAAwB,CAC1B,IAAIrpB,EAAU8F,EAAO,KACrB0a,GAAS1a,EAAO,aAAa,MAAOujB,EAAc,KAAK,IAC3C9E,IAAT,KAAmBA,EAAQ,KAAKvkB,CAAO,EAAKukB,EAAU,CAACvkB,CAAO,EACzE,CACA,SAAe8F,IAAWmH,GAA6B,QAAS,CAE1D,GADAoc,EAAgBvjB,EAAO,UACVujB,IAAT,KAAwB,MAAM,MAAM9f,EAAuB,GAAG,CAAC,EACnE8f,EAAc,cAAc,gBAC1BvjB,EAAO,cAAc,gBACXye,IAAT,KACGA,EAAQ,KAAK7W,EAAqB,EACjC6W,EAAU,CAAC7W,EAAqB,EAC7C,CACI5H,EAASA,EAAO,MACpB,CACWye,IAAT,MACEsE,GACEzZ,EACAmV,EACA3S,EACAmX,GAEJ3Z,EAAe,OAAS,MAC1B,CACA,SAASka,GAAsBC,EAAqB,CAClD,IACEA,EAAsBA,EAAoB,aACjCA,IAAT,MAEA,CACA,GACE,CAAC/I,GACC+I,EAAoB,QAAQ,cAC5BA,EAAoB,aAC5B,EAEM,MAAO,GACTA,EAAsBA,EAAoB,IAC9C,CACE,MAAO,EACT,CACA,SAASC,GAAqBpa,EAAgB,CAC5CiZ,GAA4BjZ,EAC5BkZ,GAAwB,KACxBlZ,EAAiBA,EAAe,aACvBA,IAAT,OAA4BA,EAAe,aAAe,KAC5D,CACA,SAASqa,GAAYzpB,EAAS,CAC5B,OAAO0pB,GAAuBrB,GAA2BroB,CAAO,CAClE,CACA,SAAS2pB,GAAgCC,EAAU5pB,EAAS,CAC1D,OAASqoB,KAAT,MAAsCmB,GAAqBI,CAAQ,EAC5DF,GAAuBE,EAAU5pB,CAAO,CACjD,CACA,SAAS0pB,GAAuBE,EAAU5pB,EAAS,CACjD,IAAI4E,EAAQ5E,EAAQ,cAEpB,GADAA,EAAU,CAAE,QAASA,EAAS,cAAe4E,EAAO,KAAM,IAAI,EACjD0jB,KAAT,KAAgC,CAClC,GAAasB,IAAT,KAAmB,MAAM,MAAMrgB,EAAuB,GAAG,CAAC,EAC9D+e,GAAwBtoB,EACxB4pB,EAAS,aAAe,CAAE,MAAO,EAAG,aAAc5pB,CAAO,EACzD4pB,EAAS,OAAS,MACtB,MAAStB,GAAwBA,GAAsB,KAAOtoB,EAC5D,OAAO4E,CACT,CACA,IAAIilB,GACgB,OAAO,gBAAvB,IACI,gBACA,UAAY,CACV,IAAIC,EAAY,CAAA,EACdC,EAAU,KAAK,OAAS,CACtB,QAAS,GACT,iBAAkB,SAAUnpB,EAAMopB,EAAU,CAC1CF,EAAU,KAAKE,CAAQ,CACvC,CACA,EACU,KAAK,MAAQ,UAAY,CACvBD,EAAO,QAAU,GACjBD,EAAU,QAAQ,SAAUE,EAAU,CACpC,OAAOA,EAAQ,CAC7B,CAAa,CACb,CACA,EACEC,GAAqBnf,EAAU,0BAC/Bof,GAAiBpf,EAAU,wBAC3Bqf,GAAe,CACb,SAAUjrB,GACV,SAAU,KACV,SAAU,KACV,cAAe,KACf,eAAgB,KAChB,aAAc,GAElB,SAASkrB,IAAc,CACrB,MAAO,CACL,WAAY,IAAIP,GAChB,KAAM,IAAI,IACV,SAAU,EAEd,CACA,SAASQ,GAAaC,EAAO,CAC3BA,EAAM,WACAA,EAAM,WAAZ,GACEL,GAAmBC,GAAgB,UAAY,CAC7CI,EAAM,WAAW,MAAK,CAC5B,CAAK,CACL,CACA,IAAIC,GAA4B,KAC9BC,GAA+B,EAC/BC,GAAuB,EACvBC,GAAiC,KACnC,SAASC,GAAoBC,EAAYhpB,EAAU,CACjD,GAAa2oB,KAAT,KAAoC,CACtC,IAAIM,EAAsBN,GAA4B,GACtDC,GAA+B,EAC/BC,GAAuBK,GAAqB,EAC5CJ,GAAiC,CAC/B,OAAQ,UACR,MAAO,OACP,KAAM,SAAUK,EAAS,CACvBF,EAAmB,KAAKE,CAAO,CACvC,EAEA,CACE,OAAAP,KACA5oB,EAAS,KAAKopB,GAA2BA,EAAyB,EAC3DppB,CACT,CACA,SAASopB,IAA4B,CACnC,GACQ,EAAER,KAAR,GACSD,KAAT,KACA,CACSG,KAAT,OACGA,GAA+B,OAAS,aAC3C,IAAIZ,EAAYS,GAChBA,GAA4B,KAC5BE,GAAuB,EACvBC,GAAiC,KACjC,QAASnoB,EAAI,EAAGA,EAAIunB,EAAU,OAAQvnB,OAASunB,EAAUvnB,CAAC,GAAC,CAC/D,CACA,CACA,SAAS0oB,GAAmBrpB,EAAUc,EAAQ,CAC5C,IAAIonB,EAAY,CAAA,EACdoB,EAAuB,CACrB,OAAQ,UACR,MAAO,KACP,OAAQ,KACR,KAAM,SAAUH,EAAS,CACvBjB,EAAU,KAAKiB,CAAO,CAC9B,GAEE,OAAAnpB,EAAS,KACP,UAAY,CACVspB,EAAqB,OAAS,YAC9BA,EAAqB,MAAQxoB,EAC7B,QAASH,EAAI,EAAGA,EAAIunB,EAAU,OAAQvnB,OAASunB,EAAUvnB,CAAC,GAAGG,CAAM,CACzE,EACI,SAAUZ,EAAO,CAGf,IAFAopB,EAAqB,OAAS,WAC9BA,EAAqB,OAASppB,EACzBA,EAAQ,EAAGA,EAAQgoB,EAAU,OAAQhoB,OACpCgoB,EAAUhoB,CAAK,GAAG,MAAM,CACpC,GAESopB,CACT,CACA,IAAIC,GAA8B1qB,EAAqB,EACvDA,EAAqB,EAAI,SAAUmqB,EAAYxmB,EAAa,CAC1DgnB,GAAiCzb,GAAG,EACvB,OAAOvL,GAApB,UACWA,IAAT,MACe,OAAOA,EAAY,MAAlC,YACAumB,GAAoBC,EAAYxmB,CAAW,EACpC+mB,KAAT,MACEA,GAA4BP,EAAYxmB,CAAW,CACvD,EACA,IAAIinB,GAAeze,EAAa,IAAI,EACpC,SAAS0e,IAAoB,CAC3B,IAAIC,EAAiCF,GAAa,QAClD,OAAgBE,IAAT,KACHA,EACAC,GAAmB,WACzB,CACA,SAASC,GAAeC,EAAyBC,EAAe,CACrDA,IAAT,KACIlmB,EAAK4lB,GAAcA,GAAa,OAAO,EACvC5lB,EAAK4lB,GAAcM,EAAc,IAAI,CAC3C,CACA,SAASC,IAAoB,CAC3B,IAAIC,EAAgBP,GAAiB,EACrC,OAAgBO,IAAT,KACH,KACA,CAAE,OAAQ1B,GAAa,cAAe,KAAM0B,CAAa,CAC/D,CACA,IAAIC,GAAoB,MAAMviB,EAAuB,GAAG,CAAC,EACvDwiB,GAA2B,MAAMxiB,EAAuB,GAAG,CAAC,EAC5DyiB,GAA0B,MAAMziB,EAAuB,GAAG,CAAC,EAC3D0iB,GAA8B,CAAE,KAAM,UAAY,EAAE,EACtD,SAASC,GAAmBtqB,EAAU,CACpC,OAAAA,EAAWA,EAAS,OACGA,IAAhB,aAA2CA,IAAf,UACrC,CACA,SAASuqB,GAAkBC,EAAexqB,EAAUF,EAAO,CAKzD,OAJAA,EAAQ0qB,EAAc1qB,CAAK,EAChBA,IAAX,OACI0qB,EAAc,KAAKxqB,CAAQ,EAC3BF,IAAUE,IAAaA,EAAS,KAAK4X,GAAQA,EAAM,EAAI5X,EAAWF,GAC9DE,EAAS,OAAM,CACrB,IAAK,YACH,OAAOA,EAAS,MAClB,IAAK,WACH,MACIwqB,EAAgBxqB,EAAS,OAC3ByqB,GAA8BD,CAAa,EAC3CA,EAEJ,QACE,GAAiB,OAAOxqB,EAAS,QAA7B,SAAqCA,EAAS,KAAK4X,GAAQA,EAAM,MAChE,CAEH,GADA4S,EAAgBZ,GACHY,IAAT,MAA0B,IAAMA,EAAc,oBAChD,MAAM,MAAM7iB,EAAuB,GAAG,CAAC,EACzC6iB,EAAgBxqB,EAChBwqB,EAAc,OAAS,UACvBA,EAAc,KACZ,SAAUvqB,EAAgB,CACxB,GAAkBD,EAAS,SAAvB,UAA+B,CACjC,IAAI0qB,EAAoB1qB,EACxB0qB,EAAkB,OAAS,YAC3BA,EAAkB,MAAQzqB,CACxC,CACA,EACU,SAAUC,EAAO,CACf,GAAkBF,EAAS,SAAvB,UAA+B,CACjC,IAAI2qB,EAAmB3qB,EACvB2qB,EAAiB,OAAS,WAC1BA,EAAiB,OAASzqB,CACxC,CACA,EAEA,CACM,OAAQF,EAAS,OAAM,CACrB,IAAK,YACH,OAAOA,EAAS,MAClB,IAAK,WACH,MACIwqB,EAAgBxqB,EAAS,OAC3ByqB,GAA8BD,CAAa,EAC3CA,CAEZ,CACM,MAAAI,GAAoB5qB,EACdkqB,EACZ,CACA,CACA,SAASW,GAAYC,EAAU,CAC7B,GAAI,CACF,IAAIvnB,EAAOunB,EAAS,MACpB,OAAOvnB,EAAKunB,EAAS,QAAQ,CACjC,OAAW3e,EAAG,CACV,MAAaA,IAAT,MAA2B,OAAOA,GAApB,UAAwC,OAAOA,EAAE,MAAxB,YACjCye,GAAoBze,EAAI+d,IAC5B/d,CACV,CACA,CACA,IAAIye,GAAoB,KACxB,SAASG,IAAuB,CAC9B,GAAaH,KAAT,KAA4B,MAAM,MAAMjjB,EAAuB,GAAG,CAAC,EACvE,IAAI3H,EAAW4qB,GACf,OAAAA,GAAoB,KACb5qB,CACT,CACA,SAASyqB,GAA8BO,EAAgB,CACrD,GACEA,IAAmBd,IACnBc,IAAmBZ,GAEnB,MAAM,MAAMziB,EAAuB,GAAG,CAAC,CAC3C,CACA,IAAIsjB,GAAkB,KACpBC,GAAyB,EAC3B,SAASC,GAAenrB,EAAU,CAChC,IAAIF,EAAQorB,GACZ,OAAAA,IAA0B,EACjBD,KAAT,OAA6BA,GAAkB,IACxCV,GAAkBU,GAAiBjrB,EAAUF,CAAK,CAC3D,CACA,SAASsrB,GAAU5d,EAAgB3N,EAAS,CAC1CA,EAAUA,EAAQ,MAAM,IACxB2N,EAAe,IAAiB3N,IAAX,OAAqBA,EAAU,IACtD,CACA,SAASwrB,GAA6BC,EAAaC,EAAU,CAC3D,MAAIA,EAAS,WAAahhB,EAClB,MAAM5C,EAAuB,GAAG,CAAC,GACzC2jB,EAAc,OAAO,UAAU,SAAS,KAAKC,CAAQ,EAC/C,MACJ5jB,EACE,GACsB2jB,IAAtB,kBACI,qBAAuB,OAAO,KAAKC,CAAQ,EAAE,KAAK,IAAI,EAAI,IAC1DD,CACV,GAEA,CACA,SAASE,GAAsBC,EAAwB,CACrD,SAASC,EAAYJ,EAAaK,EAAe,CAC/C,GAAIF,EAAwB,CAC1B,IAAIG,EAAYN,EAAY,UACnBM,IAAT,MACMN,EAAY,UAAY,CAACK,CAAa,EAAKL,EAAY,OAAS,IAClEM,EAAU,KAAKD,CAAa,CACtC,CACA,CACE,SAASE,EAAwBP,EAAaQ,EAAmB,CAC/D,GAAI,CAACL,EAAwB,OAAO,KACpC,KAAgBK,IAAT,MACLJ,EAAYJ,EAAaQ,CAAiB,EACvCA,EAAoBA,EAAkB,QAC3C,OAAO,IACX,CACE,SAASC,EAAqBD,EAAmB,CAC/C,QAASE,EAAmB,IAAI,IAAgBF,IAAT,MAC5BA,EAAkB,MAA3B,KACIE,EAAiB,IAAIF,EAAkB,IAAKA,CAAiB,EAC7DE,EAAiB,IAAIF,EAAkB,MAAOA,CAAiB,EAChEA,EAAoBA,EAAkB,QAC3C,OAAOE,CACX,CACE,SAASC,EAASziB,EAAO8Y,EAAc,CACrC,OAAA9Y,EAAQkZ,GAAqBlZ,EAAO8Y,CAAY,EAChD9Y,EAAM,MAAQ,EACdA,EAAM,QAAU,KACTA,CACX,CACE,SAAS0iB,EAAWC,EAAUC,EAAiBC,EAAU,CAEvD,OADAF,EAAS,MAAQE,EACZZ,GAELY,EAAWF,EAAS,UACPE,IAAT,MAECA,EAAWA,EAAS,MACrBA,EAAWD,GACLD,EAAS,OAAS,SAAWC,GAC/BC,IAERF,EAAS,OAAS,SACXC,KAVGD,EAAS,OAAS,QAAUC,EAW1C,CACE,SAASE,EAAiBH,EAAU,CAClC,OAAAV,GACWU,EAAS,YAAlB,OACCA,EAAS,OAAS,UACdA,CACX,CACE,SAASI,EAAejB,EAAa3I,EAAS6J,EAAapd,EAAO,CAChE,OAAauT,IAAT,MAA0BA,EAAQ,MAAd,GAEnBA,EAAUQ,GAAoBqJ,EAAalB,EAAY,KAAMlc,CAAK,EAClEuT,EAAQ,OAAS2I,EAClB3I,IAEJA,EAAUsJ,EAAStJ,EAAS6J,CAAW,EACvC7J,EAAQ,OAAS2I,EACV3I,EACX,CACE,SAAS8J,EAAcnB,EAAa3I,EAAS9iB,EAASuP,EAAO,CAC3D,IAAIsd,GAAc7sB,EAAQ,KAC1B,OAAI6sB,KAAgBxvB,EACXyvB,EACLrB,EACA3I,EACA9iB,EAAQ,MAAM,SACduP,EACAvP,EAAQ,KAGD8iB,IAAT,OACCA,EAAQ,cAAgB+J,IACT,OAAOA,IAApB,UACUA,KAAT,MACAA,GAAY,WAAahvB,IACzBmtB,GAAY6B,EAAW,IAAM/J,EAAQ,OAGtCA,EAAUsJ,EAAStJ,EAAS9iB,EAAQ,KAAK,EAC1CurB,GAAUzI,EAAS9iB,CAAO,EACzB8iB,EAAQ,OAAS2I,EAClB3I,IAEJA,EAAUE,GACRhjB,EAAQ,KACRA,EAAQ,IACRA,EAAQ,MACR,KACAyrB,EAAY,KACZlc,GAEFgc,GAAUzI,EAAS9iB,CAAO,EAC1B8iB,EAAQ,OAAS2I,EACV3I,EACX,CACE,SAASiK,EAAatB,EAAa3I,EAASa,EAAQpU,EAAO,CACzD,OACWuT,IAAT,MACMA,EAAQ,MAAd,GACAA,EAAQ,UAAU,gBAAkBa,EAAO,eAC3Cb,EAAQ,UAAU,iBAAmBa,EAAO,gBAGzCb,EAAUY,GAAsBC,EAAQ8H,EAAY,KAAMlc,CAAK,EAC/DuT,EAAQ,OAAS2I,EAClB3I,IAEJA,EAAUsJ,EAAStJ,EAASa,EAAO,UAAY,CAAA,CAAE,EACjDb,EAAQ,OAAS2I,EACV3I,EACX,CACE,SAASgK,EAAerB,EAAa3I,EAASkK,EAAUzd,EAAOnQ,GAAK,CAClE,OAAa0jB,IAAT,MAA0BA,EAAQ,MAAd,GAEnBA,EAAUM,GACT4J,EACAvB,EAAY,KACZlc,EACAnQ,IAED0jB,EAAQ,OAAS2I,EAClB3I,IAEJA,EAAUsJ,EAAStJ,EAASkK,CAAQ,EACpClK,EAAQ,OAAS2I,EACV3I,EACX,CACE,SAASmK,EAAYxB,EAAaC,EAAUnc,EAAO,CACjD,GACgB,OAAOmc,GAApB,UAAuCA,IAAP,IACpB,OAAOA,GAApB,UACa,OAAOA,GAApB,SAEA,OACGA,EAAWpI,GACV,GAAKoI,EACLD,EAAY,KACZlc,GAEDmc,EAAS,OAASD,EACnBC,EAEJ,GAAiB,OAAOA,GAApB,UAAyCA,IAAT,KAAmB,CACrD,OAAQA,EAAS,SAAQ,CACvB,KAAKvuB,EACH,OACGoS,EAAQyT,GACP0I,EAAS,KACTA,EAAS,IACTA,EAAS,MACT,KACAD,EAAY,KACZlc,GAEFgc,GAAUhc,EAAOmc,CAAQ,EACxBnc,EAAM,OAASkc,EAChBlc,EAEJ,KAAKnS,EACH,OACGsuB,EAAWhI,GACVgI,EACAD,EAAY,KACZlc,GAEDmc,EAAS,OAASD,EACnBC,EAEJ,KAAK7tB,GACH,OACG6tB,EAAWV,GAAYU,CAAQ,EAChCuB,EAAYxB,EAAaC,EAAUnc,CAAK,CAEpD,CACM,GAAIzQ,GAAY4sB,CAAQ,GAAK1tB,GAAc0tB,CAAQ,EACjD,OACGA,EAAWtI,GACVsI,EACAD,EAAY,KACZlc,EACA,MAEDmc,EAAS,OAASD,EACnBC,EAEJ,GAAmB,OAAOA,EAAS,MAA/B,WACF,OAAOuB,EAAYxB,EAAaH,GAAeI,CAAQ,EAAGnc,CAAK,EACjE,GAAImc,EAAS,WAAajuB,GACxB,OAAOwvB,EACLxB,EACAvD,GAAgCuD,EAAaC,CAAQ,EACrDnc,GAEJic,GAA6BC,EAAaC,CAAQ,CACxD,CACI,OAAO,IACX,CACE,SAASwB,EAAWzB,EAAa0B,EAAUzB,EAAUnc,EAAO,CAC1D,IAAInQ,GAAe+tB,IAAT,KAAoBA,EAAS,IAAM,KAC7C,GACgB,OAAOzB,GAApB,UAAuCA,IAAP,IACpB,OAAOA,GAApB,UACa,OAAOA,GAApB,SAEA,OAAgBtsB,KAAT,KACH,KACAstB,EAAejB,EAAa0B,EAAU,GAAKzB,EAAUnc,CAAK,EAChE,GAAiB,OAAOmc,GAApB,UAAyCA,IAAT,KAAmB,CACrD,OAAQA,EAAS,SAAQ,CACvB,KAAKvuB,EACH,OAAOuuB,EAAS,MAAQtsB,GACpBwtB,EAAcnB,EAAa0B,EAAUzB,EAAUnc,CAAK,EACpD,KACN,KAAKnS,EACH,OAAOsuB,EAAS,MAAQtsB,GACpB2tB,EAAatB,EAAa0B,EAAUzB,EAAUnc,CAAK,EACnD,KACN,KAAK1R,GACH,OACG6tB,EAAWV,GAAYU,CAAQ,EAChCwB,EAAWzB,EAAa0B,EAAUzB,EAAUnc,CAAK,CAE7D,CACM,GAAIzQ,GAAY4sB,CAAQ,GAAK1tB,GAAc0tB,CAAQ,EACjD,OAAgBtsB,KAAT,KACH,KACA0tB,EAAerB,EAAa0B,EAAUzB,EAAUnc,EAAO,IAAI,EACjE,GAAmB,OAAOmc,EAAS,MAA/B,WACF,OAAOwB,EACLzB,EACA0B,EACA7B,GAAeI,CAAQ,EACvBnc,GAEJ,GAAImc,EAAS,WAAajuB,GACxB,OAAOyvB,EACLzB,EACA0B,EACAjF,GAAgCuD,EAAaC,CAAQ,EACrDnc,GAEJic,GAA6BC,EAAaC,CAAQ,CACxD,CACI,OAAO,IACX,CACE,SAAS0B,EACPjB,EACAV,EACA4B,EACA3B,EACAnc,GACA,CACA,GACgB,OAAOmc,GAApB,UAAuCA,IAAP,IACpB,OAAOA,GAApB,UACa,OAAOA,GAApB,SAEA,OACGS,EAAmBA,EAAiB,IAAIkB,CAAM,GAAK,KACpDX,EAAejB,EAAaU,EAAkB,GAAKT,EAAUnc,EAAK,EAEtE,GAAiB,OAAOmc,GAApB,UAAyCA,IAAT,KAAmB,CACrD,OAAQA,EAAS,SAAQ,CACvB,KAAKvuB,EACH,OACGgvB,EACCA,EAAiB,IACNT,EAAS,MAAlB,KAAwB2B,EAAS3B,EAAS,GAC1D,GAAmB,KACPkB,EAAcnB,EAAaU,EAAkBT,EAAUnc,EAAK,EAEhE,KAAKnS,EACH,OACG+uB,EACCA,EAAiB,IACNT,EAAS,MAAlB,KAAwB2B,EAAS3B,EAAS,GAC1D,GAAmB,KACPqB,EAAatB,EAAaU,EAAkBT,EAAUnc,EAAK,EAE/D,KAAK1R,GACH,OACG6tB,EAAWV,GAAYU,CAAQ,EAChC0B,EACEjB,EACAV,EACA4B,EACA3B,EACAnc,EACd,CAEA,CACM,GAAIzQ,GAAY4sB,CAAQ,GAAK1tB,GAAc0tB,CAAQ,EACjD,OACGS,EAAmBA,EAAiB,IAAIkB,CAAM,GAAK,KACpDP,EAAerB,EAAaU,EAAkBT,EAAUnc,GAAO,IAAI,EAEvE,GAAmB,OAAOmc,EAAS,MAA/B,WACF,OAAO0B,EACLjB,EACAV,EACA4B,EACA/B,GAAeI,CAAQ,EACvBnc,IAEJ,GAAImc,EAAS,WAAajuB,GACxB,OAAO2vB,EACLjB,EACAV,EACA4B,EACAnF,GAAgCuD,EAAaC,CAAQ,EACrDnc,IAEJic,GAA6BC,EAAaC,CAAQ,CACxD,CACI,OAAO,IACX,CACE,SAAS4B,GACP7B,EACAQ,EACAsB,EACAhe,EACA,CACA,QACMie,GAAsB,KACxBC,GAAmB,KACnBN,GAAWlB,EACXoB,GAAUpB,EAAoB,EAC9ByB,GAAe,KACRP,KAAT,MAAqBE,GAASE,EAAY,OAC1CF,KACA,CACAF,GAAS,MAAQE,IACXK,GAAeP,GAAYA,GAAW,MACvCO,GAAeP,GAAS,QAC7B,IAAIb,GAAWY,EACbzB,EACA0B,GACAI,EAAYF,EAAM,EAClB9d,GAEF,GAAa+c,KAAT,KAAmB,CACZa,KAAT,OAAsBA,GAAWO,IACjC,KACR,CACM9B,GACEuB,IACSb,GAAS,YAAlB,MACAT,EAAYJ,EAAa0B,EAAQ,EACnClB,EAAoBI,EAAWC,GAAUL,EAAmBoB,EAAM,EACzDI,KAAT,KACKD,GAAsBlB,GACtBmB,GAAiB,QAAUnB,GAChCmB,GAAmBnB,GACnBa,GAAWO,EACjB,CACI,GAAIL,KAAWE,EAAY,OACzB,OACEvB,EAAwBP,EAAa0B,EAAQ,EAC7C7W,IAAemO,GAAagH,EAAa4B,EAAM,EAC/CG,GAEJ,GAAaL,KAAT,KAAmB,CACrB,KAAOE,GAASE,EAAY,OAAQF,KACjCF,GAAWF,EAAYxB,EAAa8B,EAAYF,EAAM,EAAG9d,CAAK,EACpD4d,KAAT,OACIlB,EAAoBI,EACpBc,GACAlB,EACAoB,IAEOI,KAAT,KACKD,GAAsBL,GACtBM,GAAiB,QAAUN,GAC/BM,GAAmBN,IAC1B,OAAA7W,IAAemO,GAAagH,EAAa4B,EAAM,EACxCG,EACb,CACI,IACEL,GAAWjB,EAAqBiB,EAAQ,EACxCE,GAASE,EAAY,OACrBF,KAECK,GAAeN,EACdD,GACA1B,EACA4B,GACAE,EAAYF,EAAM,EAClB9d,GAESme,KAAT,OACG9B,GACU8B,GAAa,YAAtB,MACAP,GAAS,OACEO,GAAa,MAAtB,KAA4BL,GAASK,GAAa,KAErDzB,EAAoBI,EACnBqB,GACAzB,EACAoB,IAEOI,KAAT,KACKD,GAAsBE,GACtBD,GAAiB,QAAUC,GAC/BD,GAAmBC,IAC1B,OAAA9B,GACEuB,GAAS,QAAQ,SAAUhsB,GAAO,CAChC,OAAO0qB,EAAYJ,EAAatqB,EAAK,CAC7C,CAAO,EACHmV,IAAemO,GAAagH,EAAa4B,EAAM,EACxCG,EACX,CACE,SAASG,GACPlC,EACAQ,EACAsB,EACAhe,EACA,CACA,GAAYge,GAAR,KAAqB,MAAM,MAAMzlB,EAAuB,GAAG,CAAC,EAChE,QACM0lB,GAAsB,KACxBC,GAAmB,KACnBN,GAAWlB,EACXoB,GAAUpB,EAAoB,EAC9ByB,GAAe,KACfE,GAAOL,EAAY,KAAI,EAChBJ,KAAT,MAAqB,CAACS,GAAK,KAC3BP,KAAUO,GAAOL,EAAY,KAAI,EACjC,CACAJ,GAAS,MAAQE,IACXK,GAAeP,GAAYA,GAAW,MACvCO,GAAeP,GAAS,QAC7B,IAAIb,GAAWY,EAAWzB,EAAa0B,GAAUS,GAAK,MAAOre,CAAK,EAClE,GAAa+c,KAAT,KAAmB,CACZa,KAAT,OAAsBA,GAAWO,IACjC,KACR,CACM9B,GACEuB,IACSb,GAAS,YAAlB,MACAT,EAAYJ,EAAa0B,EAAQ,EACnClB,EAAoBI,EAAWC,GAAUL,EAAmBoB,EAAM,EACzDI,KAAT,KACKD,GAAsBlB,GACtBmB,GAAiB,QAAUnB,GAChCmB,GAAmBnB,GACnBa,GAAWO,EACjB,CACI,GAAIE,GAAK,KACP,OACE5B,EAAwBP,EAAa0B,EAAQ,EAC7C7W,IAAemO,GAAagH,EAAa4B,EAAM,EAC/CG,GAEJ,GAAaL,KAAT,KAAmB,CACrB,KAAO,CAACS,GAAK,KAAMP,KAAUO,GAAOL,EAAY,KAAI,EACjDK,GAAOX,EAAYxB,EAAamC,GAAK,MAAOre,CAAK,EACvCqe,KAAT,OACI3B,EAAoBI,EAAWuB,GAAM3B,EAAmBoB,EAAM,EACvDI,KAAT,KACKD,GAAsBI,GACtBH,GAAiB,QAAUG,GAC/BH,GAAmBG,IAC1B,OAAAtX,IAAemO,GAAagH,EAAa4B,EAAM,EACxCG,EACb,CACI,IACEL,GAAWjB,EAAqBiB,EAAQ,EACxC,CAACS,GAAK,KACNP,KAAUO,GAAOL,EAAY,KAAI,EAEhCK,GAAOR,EAAcD,GAAU1B,EAAa4B,GAAQO,GAAK,MAAOre,CAAK,EAC3Dqe,KAAT,OACGhC,GACUgC,GAAK,YAAd,MACAT,GAAS,OAAgBS,GAAK,MAAd,KAAoBP,GAASO,GAAK,GAAG,EACtD3B,EAAoBI,EAAWuB,GAAM3B,EAAmBoB,EAAM,EACtDI,KAAT,KACKD,GAAsBI,GACtBH,GAAiB,QAAUG,GAC/BH,GAAmBG,IAC1B,OAAAhC,GACEuB,GAAS,QAAQ,SAAUhsB,GAAO,CAChC,OAAO0qB,EAAYJ,EAAatqB,EAAK,CAC7C,CAAO,EACHmV,IAAemO,GAAagH,EAAa4B,EAAM,EACxCG,EACX,CACE,SAASK,GACPpC,EACAQ,EACAP,EACAnc,EACA,CAMA,GALa,OAAOmc,GAApB,UACWA,IAAT,MACAA,EAAS,OAASruB,GACTquB,EAAS,MAAlB,OACCA,EAAWA,EAAS,MAAM,UACZ,OAAOA,GAApB,UAAyCA,IAAT,KAAmB,CACrD,OAAQA,EAAS,SAAQ,CACvB,KAAKvuB,EACHgH,EAAG,CACD,QAAS/E,GAAMssB,EAAS,IAAcO,IAAT,MAA8B,CACzD,GAAIA,EAAkB,MAAQ7sB,GAAK,CAEjC,GADAA,GAAMssB,EAAS,KACXtsB,KAAQ/B,GACV,GAAU4uB,EAAkB,MAAxB,EAA6B,CAC/BD,EACEP,EACAQ,EAAkB,SAEpB1c,EAAQ6c,EACNH,EACAP,EAAS,MAAM,UAEjBnc,EAAM,OAASkc,EACfA,EAAclc,EACd,MAAMpL,CAC1B,UAEkB8nB,EAAkB,cAAgB7sB,IACpB,OAAOA,IAApB,UACUA,KAAT,MACAA,GAAI,WAAavB,IACjBmtB,GAAY5rB,EAAG,IAAM6sB,EAAkB,KACzC,CACAD,EACEP,EACAQ,EAAkB,SAEpB1c,EAAQ6c,EAASH,EAAmBP,EAAS,KAAK,EAClDH,GAAUhc,EAAOmc,CAAQ,EACzBnc,EAAM,OAASkc,EACfA,EAAclc,EACd,MAAMpL,CACxB,CACgB6nB,EAAwBP,EAAaQ,CAAiB,EACtD,KAChB,MAAqBJ,EAAYJ,EAAaQ,CAAiB,EACjDA,EAAoBA,EAAkB,OACpD,CACYP,EAAS,OAASruB,GACZkS,EAAQ6T,GACRsI,EAAS,MAAM,SACfD,EAAY,KACZlc,EACAmc,EAAS,KAEVnc,EAAM,OAASkc,EACfA,EAAclc,IACbA,EAAQyT,GACR0I,EAAS,KACTA,EAAS,IACTA,EAAS,MACT,KACAD,EAAY,KACZlc,GAEFgc,GAAUhc,EAAOmc,CAAQ,EACxBnc,EAAM,OAASkc,EACfA,EAAclc,EAC/B,CACU,OAAOkd,EAAiBhB,CAAW,EACrC,KAAKruB,EACH+G,EAAG,CACD,IAAK/E,GAAMssB,EAAS,IAAcO,IAAT,MAA8B,CACrD,GAAIA,EAAkB,MAAQ7sB,GAC5B,GACQ6sB,EAAkB,MAAxB,GACAA,EAAkB,UAAU,gBAC1BP,EAAS,eACXO,EAAkB,UAAU,iBAC1BP,EAAS,eACX,CACAM,EACEP,EACAQ,EAAkB,SAEpB1c,EAAQ6c,EAASH,EAAmBP,EAAS,UAAY,CAAA,CAAE,EAC3Dnc,EAAM,OAASkc,EACfA,EAAclc,EACd,MAAMpL,CACxB,KAAuB,CACL6nB,EAAwBP,EAAaQ,CAAiB,EACtD,KAClB,MACmBJ,EAAYJ,EAAaQ,CAAiB,EAC/CA,EAAoBA,EAAkB,OACpD,CACY1c,EAAQmU,GAAsBgI,EAAUD,EAAY,KAAMlc,CAAK,EAC/DA,EAAM,OAASkc,EACfA,EAAclc,CAC1B,CACU,OAAOkd,EAAiBhB,CAAW,EACrC,KAAK5tB,GACH,OACG6tB,EAAWV,GAAYU,CAAQ,EAChCmC,GACEpC,EACAQ,EACAP,EACAnc,CACd,CAEA,CACM,GAAIzQ,GAAY4sB,CAAQ,EACtB,OAAO4B,GACL7B,EACAQ,EACAP,EACAnc,GAEJ,GAAIvR,GAAc0tB,CAAQ,EAAG,CAE3B,GADAtsB,GAAMpB,GAAc0tB,CAAQ,EACT,OAAOtsB,IAAtB,WAA2B,MAAM,MAAM0I,EAAuB,GAAG,CAAC,EACtE,OAAA4jB,EAAWtsB,GAAI,KAAKssB,CAAQ,EACrBiC,GACLlC,EACAQ,EACAP,EACAnc,EAEV,CACM,GAAmB,OAAOmc,EAAS,MAA/B,WACF,OAAOmC,GACLpC,EACAQ,EACAX,GAAeI,CAAQ,EACvBnc,GAEJ,GAAImc,EAAS,WAAajuB,GACxB,OAAOowB,GACLpC,EACAQ,EACA/D,GAAgCuD,EAAaC,CAAQ,EACrDnc,GAEJic,GAA6BC,EAAaC,CAAQ,CACxD,CACI,OAAqB,OAAOA,GAApB,UAAuCA,IAAP,IACzB,OAAOA,GAApB,UACa,OAAOA,GAApB,UACIA,EAAW,GAAKA,EACTO,IAAT,MAAoCA,EAAkB,MAAxB,GACzBD,EAAwBP,EAAaQ,EAAkB,OAAO,EAC9D1c,EAAQ6c,EAASH,EAAmBP,CAAQ,EAC5Cnc,EAAM,OAASkc,EACfA,EAAclc,IACdyc,EAAwBP,EAAaQ,CAAiB,EACtD1c,EAAQ+T,GAAoBoI,EAAUD,EAAY,KAAMlc,CAAK,EAC7DA,EAAM,OAASkc,EACfA,EAAclc,GACnBkd,EAAiBhB,CAAW,GAC5BO,EAAwBP,EAAaQ,CAAiB,CAC9D,CACE,OAAO,SAAUR,EAAaQ,EAAmBP,EAAUnc,EAAO,CAChE,GAAI,CACF8b,GAAyB,EACzB,IAAIyC,GAAkBD,GACpBpC,EACAQ,EACAP,EACAnc,GAEF,OAAA6b,GAAkB,KACX0C,EACb,OAAaxhB,GAAG,CACV,GAAIA,KAAM+d,IAAqB/d,KAAMie,GAAyB,MAAMje,GACpE,IAAI3C,GAAQgZ,GAAqB,GAAIrW,GAAG,KAAMmf,EAAY,IAAI,EAC9D,OAAA9hB,GAAM,MAAQ4F,EACd5F,GAAM,OAAS8hB,EACR9hB,EACb,QAAA,CACA,CACA,CACA,CACA,IAAIokB,GAAuBpC,GAAsB,EAAE,EACjDqC,GAAmBrC,GAAsB,EAAE,EAC3CsC,GAAiB,GACnB,SAASC,GAAsBvkB,EAAO,CACpCA,EAAM,YAAc,CAClB,UAAWA,EAAM,cACjB,gBAAiB,KACjB,eAAgB,KAChB,OAAQ,CAAE,QAAS,KAAM,MAAO,EAAG,gBAAiB,IAAI,EACxD,UAAW,KAEf,CACA,SAASwkB,GAAiBrL,EAASnV,EAAgB,CACjDmV,EAAUA,EAAQ,YAClBnV,EAAe,cAAgBmV,IAC5BnV,EAAe,YAAc,CAC5B,UAAWmV,EAAQ,UACnB,gBAAiBA,EAAQ,gBACzB,eAAgBA,EAAQ,eACxB,OAAQA,EAAQ,OAChB,UAAW,IACjB,EACA,CACA,SAASsL,GAAa/d,EAAM,CAC1B,MAAO,CAAE,KAAMA,EAAM,IAAK,EAAG,QAAS,KAAM,SAAU,KAAM,KAAM,IAAI,CACxE,CACA,SAASge,GAAc1kB,EAAO6H,EAAQnB,EAAM,CAC1C,IAAIie,EAAc3kB,EAAM,YACxB,GAAa2kB,IAAT,KAAsB,OAAO,KAEjC,GADAA,EAAcA,EAAY,QACfC,GAAmB,KAA1B,EAA8B,CAChC,IAAI1M,EAAUyM,EAAY,QAC1B,OAASzM,IAAT,KACKrQ,EAAO,KAAOA,GACbA,EAAO,KAAOqQ,EAAQ,KAAQA,EAAQ,KAAOrQ,GACnD8c,EAAY,QAAU9c,EACtBA,EAASyQ,GAAuBtY,CAAK,EACrCmY,GAA8BnY,EAAO,KAAM0G,CAAI,EACxCmB,CACX,CACE,OAAAuQ,GAAgBpY,EAAO2kB,EAAa9c,EAAQnB,CAAI,EACzC4R,GAAuBtY,CAAK,CACrC,CACA,SAAS6kB,GAAoB9e,EAAM/F,EAAO0G,EAAM,CAE9C,GADA1G,EAAQA,EAAM,YACDA,IAAT,OAAoBA,EAAQA,EAAM,QAAgB0G,EAAO,WAAd,GAAyB,CACtE,IAAIoe,EAAa9kB,EAAM,MACvB8kB,GAAc/e,EAAK,aACnBW,GAAQoe,EACR9kB,EAAM,MAAQ0G,EACduB,GAAkBlC,EAAMW,CAAI,CAChC,CACA,CACA,SAASqe,GAAsB/gB,EAAgBghB,EAAgB,CAC7D,IAAI/M,EAAQjU,EAAe,YACzBmV,EAAUnV,EAAe,UAC3B,GACWmV,IAAT,OACEA,EAAUA,EAAQ,YAAclB,IAAUkB,GAC5C,CACA,IAAI8L,EAAW,KACbC,EAAU,KAEZ,GADAjN,EAAQA,EAAM,gBACDA,IAAT,KAAgB,CAClB,EAAG,CACD,IAAIkN,EAAQ,CACV,KAAMlN,EAAM,KACZ,IAAKA,EAAM,IACX,QAASA,EAAM,QACf,SAAU,KACV,KAAM,MAECiN,IAAT,KACKD,EAAWC,EAAUC,EACrBD,EAAUA,EAAQ,KAAOC,EAC9BlN,EAAQA,EAAM,IACtB,OAAwBA,IAAT,MACAiN,IAAT,KACKD,EAAWC,EAAUF,EACrBE,EAAUA,EAAQ,KAAOF,CACpC,MAAWC,EAAWC,EAAUF,EAC5B/M,EAAQ,CACN,UAAWkB,EAAQ,UACnB,gBAAiB8L,EACjB,eAAgBC,EAChB,OAAQ/L,EAAQ,OAChB,UAAWA,EAAQ,WAErBnV,EAAe,YAAciU,EAC7B,MACJ,CACEjU,EAAiBiU,EAAM,eACdjU,IAAT,KACKiU,EAAM,gBAAkB+M,EACxBhhB,EAAe,KAAOghB,EAC3B/M,EAAM,eAAiB+M,CACzB,CACA,IAAII,GAAkC,GACtC,SAASC,IAA8C,CACrD,GAAID,GAAiC,CACnC,IAAIE,EAA0BhG,GAC9B,GAAagG,IAAT,KAAkC,MAAMA,CAChD,CACA,CACA,SAASC,GACPC,EACA7wB,EACA8wB,EACAjf,EACA,CACA4e,GAAkC,GAClC,IAAInN,EAAQuN,EAAwB,YACpClB,GAAiB,GACjB,IAAIoB,EAAkBzN,EAAM,gBAC1B0N,EAAiB1N,EAAM,eACvB2N,EAAe3N,EAAM,OAAO,QAC9B,GAAa2N,IAAT,KAAuB,CACzB3N,EAAM,OAAO,QAAU,KACvB,IAAI4N,EAAoBD,EACtBE,EAAqBD,EAAkB,KACzCA,EAAkB,KAAO,KAChBF,IAAT,KACKD,EAAkBI,EAClBH,EAAe,KAAOG,EAC3BH,EAAiBE,EACjB,IAAI1M,EAAUqM,EAAwB,UAC7BrM,IAAT,OACIA,EAAUA,EAAQ,YACnByM,EAAezM,EAAQ,eACxByM,IAAiBD,IACLC,IAAT,KACIzM,EAAQ,gBAAkB2M,EAC1BF,EAAa,KAAOE,EACxB3M,EAAQ,eAAiB0M,GAClC,CACE,GAAaH,IAAT,KAA0B,CAC5B,IAAIK,EAAW9N,EAAM,UACrB0N,EAAiB,EACjBxM,EAAU2M,EAAqBD,EAAoB,KACnDD,EAAeF,EACf,EAAG,CACD,IAAI1e,EAAa4e,EAAa,KAAO,WACnCI,EAAiBhf,IAAe4e,EAAa,KAC/C,GACEI,GACKC,GAAgCjf,KAAgBA,GAChDR,EAAcQ,KAAgBA,EACnC,CACMA,IAAN,GACEA,IAAeqY,KACd+F,GAAkC,IAC5BjM,IAAT,OACGA,EAAUA,EAAQ,KACjB,CACE,KAAM,EACN,IAAKyM,EAAa,IAClB,QAASA,EAAa,QACtB,SAAU,KACV,KAAM,IACpB,GACQprB,EAAG,CACD,IAAIwJ,GAAiBwhB,EACnB3d,GAAS+d,EACX5e,EAAarS,EACb,IAAIqnB,GAAWyJ,EACf,OAAQ5d,GAAO,IAAG,CAChB,IAAK,GAEH,GADA7D,GAAiB6D,GAAO,QACL,OAAO7D,IAAtB,WAAsC,CACxC+hB,EAAW/hB,GAAe,KAAKgY,GAAU+J,EAAU/e,CAAU,EAC7D,MAAMxM,CACtB,CACcurB,EAAW/hB,GACX,MAAMxJ,EACR,IAAK,GACHwJ,GAAe,MAASA,GAAe,MAAQ,OAAU,IAC3D,IAAK,GAMH,GALAA,GAAiB6D,GAAO,QACxBb,EACiB,OAAOhD,IAAtB,WACIA,GAAe,KAAKgY,GAAU+J,EAAU/e,CAAU,EAClDhD,GACOgD,GAAT,KAA8C,MAAMxM,EACxDurB,EAAWvxB,EAAO,GAAIuxB,EAAU/e,CAAU,EAC1C,MAAMxM,EACR,IAAK,GACH8pB,GAAiB,EAC/B,CACA,CACQtd,EAAa4e,EAAa,SACjB5e,IAAT,OACIwe,EAAwB,OAAS,GACnCQ,IAAmBR,EAAwB,OAAS,MACnDQ,EAAiB/N,EAAM,UACf+N,IAAT,KACK/N,EAAM,UAAY,CAACjR,CAAU,EAC9Bgf,EAAe,KAAKhf,CAAU,EAC5C,MACSgf,EAAiB,CAChB,KAAMhf,EACN,IAAK4e,EAAa,IAClB,QAASA,EAAa,QACtB,SAAUA,EAAa,SACvB,KAAM,MAEGzM,IAAT,MACM2M,EAAqB3M,EAAU6M,EAChCH,EAAoBE,GACpB5M,EAAUA,EAAQ,KAAO6M,EAC7BL,GAAkB3e,EAEvB,GADA4e,EAAeA,EAAa,KACfA,IAAT,KACF,CAAA,GAAMA,EAAe3N,EAAM,OAAO,QAAmB2N,IAAT,KAC1C,MAECI,EAAiBJ,EACfA,EAAeI,EAAe,KAC9BA,EAAe,KAAO,KACtB/N,EAAM,eAAiB+N,EACvB/N,EAAM,OAAO,QAAU,IAAA,CACpC,OAAa,IACAkB,IAAT,OAAqB0M,EAAoBE,GACzC9N,EAAM,UAAY4N,EAClB5N,EAAM,gBAAkB6N,EACxB7N,EAAM,eAAiBkB,EACduM,IAAT,OAA6BzN,EAAM,OAAO,MAAQ,GAClDiO,IAAkCP,EAClCH,EAAwB,MAAQG,EAChCH,EAAwB,cAAgBO,CAC5C,CACA,CACA,SAASI,GAAapxB,EAAUH,EAAS,CACvC,GAAmB,OAAOG,GAAtB,WACF,MAAM,MAAMoJ,EAAuB,IAAKpJ,CAAQ,CAAC,EACnDA,EAAS,KAAKH,CAAO,CACvB,CACA,SAASwxB,GAAgBzB,EAAa/vB,EAAS,CAC7C,IAAIyxB,EAAY1B,EAAY,UAC5B,GAAa0B,IAAT,KACF,IACE1B,EAAY,UAAY,KAAMA,EAAc,EAC5CA,EAAc0B,EAAU,OACxB1B,IAEAwB,GAAaE,EAAU1B,CAAW,EAAG/vB,CAAO,CAClD,CACA,IAAI0xB,GAA+B9kB,EAAa,IAAI,EAClD+kB,GAAiC/kB,EAAa,CAAC,EACjD,SAASglB,GAAkBxmB,EAAOpL,EAAS,CACzCoL,EAAQymB,GACRpsB,EAAKksB,GAAgCvmB,CAAK,EAC1C3F,EAAKisB,GAA8B1xB,CAAO,EAC1C6xB,GAAuBzmB,EAAQpL,EAAQ,SACzC,CACA,SAAS8xB,IAA4B,CACnCrsB,EAAKksB,GAAgCE,EAAoB,EACzDpsB,EAAKisB,GAA8BA,GAA6B,OAAO,CACzE,CACA,SAASK,IAAmB,CAC1BF,GAAuBF,GAA+B,QACtD3rB,EAAI0rB,EAA4B,EAChC1rB,EAAI2rB,EAA8B,CACpC,CACA,IAAIK,GAA6BplB,EAAa,IAAI,EAChDqlB,GAAgB,KAClB,SAASC,GAA+BC,EAAS,CAC/C,IAAI5N,EAAU4N,EAAQ,UACtB1sB,EAAK2sB,GAAqBA,GAAoB,QAAU,CAAC,EACzD3sB,EAAKusB,GAA4BG,CAAO,EAC/BF,KAAT,OACY1N,IAAT,MAA6BmN,GAA6B,UAAtC,MAERnN,EAAQ,gBAAjB,QAAmC0N,GAAgBE,EAC3D,CACA,SAASE,GAAsCjnB,EAAO,CACpD3F,EAAK2sB,GAAqBA,GAAoB,OAAO,EACrD3sB,EAAKusB,GAA4B5mB,CAAK,EAC7B6mB,KAAT,OAA2BA,GAAgB7mB,EAC7C,CACA,SAASknB,GAA6BlnB,EAAO,CACpCA,EAAM,MAAb,IACK3F,EAAK2sB,GAAqBA,GAAoB,OAAO,EACtD3sB,EAAKusB,GAA4B5mB,CAAK,EAC7B6mB,KAAT,OAA2BA,GAAgB7mB,IAC3CmnB,GAAiC,CACvC,CACA,SAASA,IAA8B,CACrC9sB,EAAK2sB,GAAqBA,GAAoB,OAAO,EACrD3sB,EAAKusB,GAA4BA,GAA2B,OAAO,CACrE,CACA,SAASQ,GAAmBpnB,EAAO,CACjCpF,EAAIgsB,EAA0B,EAC9BC,KAAkB7mB,IAAU6mB,GAAgB,MAC5CjsB,EAAIosB,EAAmB,CACzB,CACA,IAAIA,GAAsBxlB,EAAa,CAAC,EACxC,SAAS6lB,GAAmBC,EAAK,CAC/B,QAAS/sB,EAAO+sB,EAAc/sB,IAAT,MAAiB,CACpC,GAAWA,EAAK,MAAZ,GAAiB,CACnB,IAAIgtB,EAAQhtB,EAAK,cACjB,GACWgtB,IAAT,OACEA,EAAQA,EAAM,WACPA,IAAT,MACEC,GAA0BD,CAAK,GAC/BE,GAA2BF,CAAK,GAElC,OAAOhtB,CACf,SACaA,EAAK,MAAZ,KACgBA,EAAK,cAAc,cAAlC,YACiBA,EAAK,cAAc,cAAnC,aACgCA,EAAK,cAAc,cAAnD,6BACeA,EAAK,cAAc,cAAlC,aAEF,IAAWA,EAAK,MAAQ,OAApB,EAA0B,OAAOA,UACnBA,EAAK,QAAd,KAAqB,CAC9BA,EAAK,MAAM,OAASA,EACpBA,EAAOA,EAAK,MACZ,QACN,CACI,GAAIA,IAAS+sB,EAAK,MAClB,KAAgB/sB,EAAK,UAAd,MAAyB,CAC9B,GAAaA,EAAK,SAAd,MAAwBA,EAAK,SAAW+sB,EAAK,OAAO,KACxD/sB,EAAOA,EAAK,MAClB,CACIA,EAAK,QAAQ,OAASA,EAAK,OAC3BA,EAAOA,EAAK,OAChB,CACE,OAAO,IACT,CACA,IAAIiM,GAAc,EAChBkhB,GAA0B,KAC1BC,GAAc,KACdC,GAAqB,KACrBC,GAA+B,GAC/BC,GAA6C,GAC7CC,GAAsC,GACtCC,GAAiB,EACjBC,GAAuB,EACvBjH,GAAgB,KAChBkH,GAAwB,EAC1B,SAASC,IAAwB,CAC/B,MAAM,MAAMhqB,EAAuB,GAAG,CAAC,CACzC,CACA,SAASiqB,GAAmBC,EAAUC,EAAU,CAC9C,GAAaA,IAAT,KAAmB,MAAO,GAC9B,QAASnxB,EAAI,EAAGA,EAAImxB,EAAS,QAAUnxB,EAAIkxB,EAAS,OAAQlxB,IAC1D,GAAI,CAACie,GAASiT,EAASlxB,CAAC,EAAGmxB,EAASnxB,CAAC,CAAC,EAAG,MAAO,GAClD,MAAO,EACT,CACA,SAASoxB,GACPpP,EACAnV,EACAtP,EACAC,EACA6zB,EACAC,EACA,CACA,OAAAjiB,GAAciiB,EACdf,GAA0B1jB,EAC1BA,EAAe,cAAgB,KAC/BA,EAAe,YAAc,KAC7BA,EAAe,MAAQ,EACvB3O,EAAqB,EACV8jB,IAAT,MAA6BA,EAAQ,gBAAjB,KAChBuP,GACAC,GACNZ,GAAsC,GACtCU,EAAkB/zB,EAAUC,EAAO6zB,CAAS,EAC5CT,GAAsC,GACtCD,KACGW,EAAkBG,GACjB5kB,EACAtP,EACAC,EACA6zB,CACN,GACEK,GAAqB1P,CAAO,EACrBsP,CACT,CACA,SAASI,GAAqB1P,EAAS,CACrC9jB,EAAqB,EAAIyzB,GACzB,IAAIC,EAAgCpB,KAAT,MAAiCA,GAAY,OAArB,KAMnD,GALAnhB,GAAc,EACdohB,GAAqBD,GAAcD,GAA0B,KAC7DG,GAA+B,GAC/BI,GAAuB,EACvBjH,GAAgB,KACZ+H,EAAsB,MAAM,MAAM5qB,EAAuB,GAAG,CAAC,EACxDgb,IAAT,MACE6P,KACE7P,EAAUA,EAAQ,aACXA,IAAT,MACE+E,GAAsB/E,CAAO,IAC5B6P,GAAmB,IAC1B,CACA,SAASJ,GAAqB5kB,EAAgBtP,EAAWC,EAAO6zB,EAAW,CACzEd,GAA0B1jB,EAC1B,IAAIilB,EAAoB,EACxB,EAAG,CAID,GAHAnB,KAA+C9G,GAAgB,MAC/DiH,GAAuB,EACvBH,GAA6C,GACzC,IAAMmB,EAAmB,MAAM,MAAM9qB,EAAuB,GAAG,CAAC,EAGpE,GAFA8qB,GAAqB,EACrBrB,GAAqBD,GAAc,KACvB3jB,EAAe,aAAvB,KAAoC,CACtC,IAAIpN,EAAWoN,EAAe,YAC9BpN,EAAS,WAAa,KACtBA,EAAS,OAAS,KAClBA,EAAS,OAAS,KACVA,EAAS,WAAjB,OAA+BA,EAAS,UAAU,MAAQ,EAChE,CACIvB,EAAqB,EAAI6zB,GACzBtyB,EAAWlC,EAAUC,EAAO6zB,CAAS,CACzC,OAAWV,IACT,OAAOlxB,CACT,CACA,SAASuyB,IAA+B,CACtC,IAAIC,EAAa/zB,EAAqB,EACpCg0B,EAAgBD,EAAW,SAAQ,EAAG,CAAC,EACzC,OAAAC,EACiB,OAAOA,EAAc,MAApC,WACIC,GAAYD,CAAa,EACzBA,EACND,EAAaA,EAAW,SAAQ,EAAG,CAAC,GAC1BzB,KAAT,KAAuBA,GAAY,cAAgB,QAAUyB,IAC3D1B,GAAwB,OAAS,MAC7B2B,CACT,CACA,SAASE,IAAuB,CAC9B,IAAIC,EAAwBxB,KAAN,EACtB,OAAAA,GAAiB,EACVwB,CACT,CACA,SAASC,GAAatQ,EAASnV,EAAgB4B,EAAO,CACpD5B,EAAe,YAAcmV,EAAQ,YACrCnV,EAAe,OAAS,MACxBmV,EAAQ,OAAS,CAACvT,CACpB,CACA,SAAS8jB,GAAmB1lB,EAAgB,CAC1C,GAAI6jB,GAA8B,CAChC,IACE7jB,EAAiBA,EAAe,cACvBA,IAAT,MAEA,CACA,IAAIiU,EAAQjU,EAAe,MAClBiU,IAAT,OAAmBA,EAAM,QAAU,MACnCjU,EAAiBA,EAAe,IACtC,CACI6jB,GAA+B,EACnC,CACErhB,GAAc,EACdohB,GAAqBD,GAAcD,GAA0B,KAC7DI,GAA6C,GAC7CG,GAAuBD,GAAiB,EACxChH,GAAgB,IAClB,CACA,SAAS2I,IAA0B,CACjC,IAAIC,EAAO,CACT,cAAe,KACf,UAAW,KACX,UAAW,KACX,MAAO,KACP,KAAM,MAER,OAAShC,KAAT,KACKF,GAAwB,cAAgBE,GAAqBgC,EAC7DhC,GAAqBA,GAAmB,KAAOgC,EAC7ChC,EACT,CACA,SAASiC,IAA2B,CAClC,GAAalC,KAAT,KAAsB,CACxB,IAAImC,EAAkBpC,GAAwB,UAC9CoC,EACWA,IAAT,KAA2BA,EAAgB,cAAgB,IACjE,MAASA,EAAkBnC,GAAY,KACrC,IAAIoC,EACOnC,KAAT,KACIF,GAAwB,cACxBE,GAAmB,KACzB,GAAamC,IAAT,KACDnC,GAAqBmC,EACnBpC,GAAcmC,MACd,CACH,GAAaA,IAAT,KACF,MAAapC,GAAwB,YAAjC,KACI,MAAMvpB,EAAuB,GAAG,CAAC,EACnC,MAAMA,EAAuB,GAAG,CAAC,EAEzCwpB,GAAcmC,EACdA,EAAkB,CAChB,cAAenC,GAAY,cAC3B,UAAWA,GAAY,UACvB,UAAWA,GAAY,UACvB,MAAOA,GAAY,MACnB,KAAM,MAECC,KAAT,KACKF,GAAwB,cAAgBE,GACvCkC,EACDlC,GAAqBA,GAAmB,KAAOkC,CACxD,CACE,OAAOlC,EACT,CACA,SAASoC,IAAqC,CAC5C,MAAO,CAAE,WAAY,KAAM,OAAQ,KAAM,OAAQ,KAAM,UAAW,IAAI,CACxE,CACA,SAASV,GAAY9yB,EAAU,CAC7B,IAAIF,EAAQ2xB,GACZ,OAAAA,IAAwB,EACfjH,KAAT,OAA2BA,GAAgB,IAC3CxqB,EAAWuqB,GAAkBC,GAAexqB,EAAUF,CAAK,EAC3DA,EAAQoxB,IAEIE,KAAT,KACGtxB,EAAM,cACNsxB,GAAmB,QAHzB,OAIItxB,EAAQA,EAAM,UACfjB,EAAqB,EACXiB,IAAT,MAA2BA,EAAM,gBAAf,KACdoyB,GACAC,IACDnyB,CACT,CACA,SAASyzB,GAAI/wB,EAAQ,CACnB,GAAaA,IAAT,MAAgC,OAAOA,GAApB,SAA4B,CACjD,GAAmB,OAAOA,EAAO,MAA7B,WAAmC,OAAOowB,GAAYpwB,CAAM,EAChE,GAAIA,EAAO,WAAapF,GAAoB,OAAOuqB,GAAYnlB,CAAM,CACzE,CACE,MAAM,MAAMiF,EAAuB,IAAK,OAAOjF,CAAM,CAAC,CAAC,CACzD,CACA,SAASgxB,GAAa9xB,EAAM,CAC1B,IAAI+xB,EAAY,KACdxF,EAAc+C,GAAwB,YAExC,GADS/C,IAAT,OAAyBwF,EAAYxF,EAAY,WACrCwF,GAAR,KAAmB,CACrB,IAAIhR,EAAUuO,GAAwB,UAC7BvO,IAAT,OACIA,EAAUA,EAAQ,YACXA,IAAT,OACIA,EAAUA,EAAQ,UACZA,GAAR,OACGgR,EAAY,CACX,KAAMhR,EAAQ,KAAK,IAAI,SAAUtiB,EAAO,CACtC,OAAOA,EAAM,MAAK,CAChC,CAAa,EACD,MAAO,KAEnB,CAOE,GANQszB,GAAR,OAAsBA,EAAY,CAAE,KAAM,GAAI,MAAO,IAC5CxF,IAAT,OACIA,EAAcqF,GAAkC,EACjDtC,GAAwB,YAAc/C,GACzCA,EAAY,UAAYwF,EACxBxF,EAAcwF,EAAU,KAAKA,EAAU,KAAK,EAC7BxF,IAAX,OACF,IACEA,EAAcwF,EAAU,KAAKA,EAAU,KAAK,EAAI,MAAM/xB,CAAI,EAAG+gB,EAAU,EACvEA,EAAU/gB,EACV+gB,IAEAwL,EAAYxL,CAAO,EAAIlY,GAC3B,OAAAkpB,EAAU,QACHxF,CACT,CACA,SAASyF,GAAkB7C,EAAOpuB,EAAQ,CACxC,OAAsB,OAAOA,GAAtB,WAA+BA,EAAOouB,CAAK,EAAIpuB,CACxD,CACA,SAASkxB,GAAcxwB,EAAS,CAC9B,IAAI+vB,EAAOC,GAAwB,EACnC,OAAOS,GAAkBV,EAAMjC,GAAa9tB,CAAO,CACrD,CACA,SAASywB,GAAkBV,EAAMzQ,EAAStf,EAAS,CACjD,IAAIoe,EAAQ2R,EAAK,MACjB,GAAa3R,IAAT,KAAgB,MAAM,MAAM9Z,EAAuB,GAAG,CAAC,EAC3D8Z,EAAM,oBAAsBpe,EAC5B,IAAI0wB,EAAYX,EAAK,UACnBhE,EAAe3N,EAAM,QACvB,GAAa2N,IAAT,KAAuB,CACzB,GAAa2E,IAAT,KAAoB,CACtB,IAAIC,EAAYD,EAAU,KAC1BA,EAAU,KAAO3E,EAAa,KAC9BA,EAAa,KAAO4E,CAC1B,CACIrR,EAAQ,UAAYoR,EAAY3E,EAChC3N,EAAM,QAAU,IACpB,CAEE,GADA2N,EAAegE,EAAK,UACPW,IAAT,KAAoBX,EAAK,cAAgBhE,MACxC,CACHzM,EAAUoR,EAAU,KACpB,IAAIE,EAAqBD,EAAY,KACnCE,EAAmB,KACnB7iB,EAASsR,EACTwR,EAAqC,GACvC,EAAG,CACD,IAAI3jB,EAAaa,EAAO,KAAO,WAC/B,GACEb,IAAea,EAAO,MACjBoe,GAAgCjf,KAAgBA,GAChDR,GAAcQ,KAAgBA,EACnC,CACA,IAAI4jB,EAAa/iB,EAAO,WACxB,GAAU+iB,IAAN,EACOF,IAAT,OACGA,EAAmBA,EAAiB,KACnC,CACE,KAAM,EACN,WAAY,EACZ,QAAS,KACT,OAAQ7iB,EAAO,OACf,cAAeA,EAAO,cACtB,WAAYA,EAAO,WACnB,KAAM,IACtB,GACYb,IAAeqY,KACZsL,EAAqC,aAClCnkB,GAAcokB,KAAgBA,EAAY,CAClD/iB,EAASA,EAAO,KAChB+iB,IAAevL,KACZsL,EAAqC,IACxC,QACV,MACW3jB,EAAa,CACZ,KAAM,EACN,WAAYa,EAAO,WACnB,QAAS,KACT,OAAQA,EAAO,OACf,cAAeA,EAAO,cACtB,WAAYA,EAAO,WACnB,KAAM,MAEG6iB,IAAT,MACMD,EAAoBC,EAAmB1jB,EACxCwjB,EAAY5E,GACZ8E,EAAmBA,EAAiB,KAAO1jB,EAC/C0gB,GAAwB,OAASkD,EACjC1E,IAAkC0E,EACvC5jB,EAAaa,EAAO,OACpBkgB,IACEluB,EAAQ+rB,EAAc5e,CAAU,EAClC4e,EAAe/d,EAAO,cAClBA,EAAO,WACPhO,EAAQ+rB,EAAc5e,CAAU,CAC5C,MACS4jB,EAAa,CACZ,KAAM5jB,EACN,WAAYa,EAAO,WACnB,QAASA,EAAO,QAChB,OAAQA,EAAO,OACf,cAAeA,EAAO,cACtB,WAAYA,EAAO,WACnB,KAAM,MAEG6iB,IAAT,MACMD,EAAoBC,EAAmBE,EACxCJ,EAAY5E,GACZ8E,EAAmBA,EAAiB,KAAOE,EAC/ClD,GAAwB,OAAS1gB,EACjCkf,IAAkClf,EACvCa,EAASA,EAAO,IACtB,OAAsBA,IAAT,MAAmBA,IAAWsR,GAIvC,GAHSuR,IAAT,KACKF,EAAY5E,EACZ8E,EAAiB,KAAOD,EAE3B,CAACrV,GAASwQ,EAAcgE,EAAK,aAAa,IACxCZ,GAAmB,GACrB2B,IACI9wB,EAAUylB,GAA0CzlB,IAAT,OAE/C,MAAMA,EACR+vB,EAAK,cAAgBhE,EACrBgE,EAAK,UAAYY,EACjBZ,EAAK,UAAYc,EACjBzS,EAAM,kBAAoB2N,CAC9B,CACE,OAAS2E,IAAT,OAAuBtS,EAAM,MAAQ,GAC9B,CAAC2R,EAAK,cAAe3R,EAAM,QAAQ,CAC5C,CACA,SAAS4S,GAAgBhxB,EAAS,CAChC,IAAI+vB,EAAOC,GAAwB,EACjC5R,EAAQ2R,EAAK,MACf,GAAa3R,IAAT,KAAgB,MAAM,MAAM9Z,EAAuB,GAAG,CAAC,EAC3D8Z,EAAM,oBAAsBpe,EAC5B,IAAIixB,EAAW7S,EAAM,SACnB8S,EAAwB9S,EAAM,QAC9B8N,EAAW6D,EAAK,cAClB,GAAamB,IAAT,KAAgC,CAClC9S,EAAM,QAAU,KAChB,IAAIpQ,EAAUkjB,EAAwBA,EAAsB,KAC5D,GAAIhF,EAAWlsB,EAAQksB,EAAUle,EAAO,MAAM,EAAKA,EAASA,EAAO,WAC5DA,IAAWkjB,GAClB3V,GAAS2Q,EAAU6D,EAAK,aAAa,IAAMZ,GAAmB,IAC9DY,EAAK,cAAgB7D,EACZ6D,EAAK,YAAd,OAA4BA,EAAK,UAAY7D,GAC7C9N,EAAM,kBAAoB8N,CAC9B,CACE,MAAO,CAACA,EAAU+E,CAAQ,CAC5B,CACA,SAASE,GAAwBhxB,EAAWC,EAAaC,EAAmB,CAC1E,IAAI8F,EAAQ0nB,GACVkC,EAAOC,GAAwB,EAC/BoB,EAAuBte,GACzB,GAAIse,EAAsB,CACxB,GAAe/wB,IAAX,OAA8B,MAAM,MAAMiE,EAAuB,GAAG,CAAC,EACzEjE,EAAoBA,EAAiB,CACzC,MAASA,EAAoBD,EAAW,EACtC,IAAIixB,EAAkB,CAAC9V,IACpBuS,IAAeiC,GAAM,cACtB1vB,GAQF,GANAgxB,IACItB,EAAK,cAAgB1vB,EAAqB8uB,GAAmB,IACjEY,EAAOA,EAAK,MACZuB,GAAaC,GAAiB,KAAK,KAAMprB,EAAO4pB,EAAM5vB,CAAS,EAAG,CAChEA,CACJ,CAAG,EAEC4vB,EAAK,cAAgB3vB,GACrBixB,GACUtD,KAAT,MAA+BA,GAAmB,cAAc,IAAM,EACvE,CAcA,GAbA5nB,EAAM,OAAS,KACfqrB,GACE,EACA,CAAE,QAAS,MAAM,EACjBC,GAAoB,KAClB,KACAtrB,EACA4pB,EACA1vB,EACAD,GAEF,MAEWmmB,KAAT,KAA6B,MAAM,MAAMjiB,EAAuB,GAAG,CAAC,EACxE8sB,IACSzkB,GAAc,OAArB,GACA+kB,GAA0BvrB,EAAO/F,EAAaC,CAAiB,CACrE,CACE,OAAOA,CACT,CACA,SAASqxB,GAA0BvrB,EAAO/F,EAAauxB,EAAkB,CACvExrB,EAAM,OAAS,MACfA,EAAQ,CAAE,YAAa/F,EAAa,MAAOuxB,CAAgB,EAC3DvxB,EAAcytB,GAAwB,YAC7BztB,IAAT,MACMA,EAAc+vB,GAAkC,EACjDtC,GAAwB,YAAcztB,EACtCA,EAAY,OAAS,CAAC+F,CAAK,IAC1BwrB,EAAmBvxB,EAAY,OACxBuxB,IAAT,KACKvxB,EAAY,OAAS,CAAC+F,CAAK,EAC5BwrB,EAAiB,KAAKxrB,CAAK,EACrC,CACA,SAASsrB,GAAoBtrB,EAAO+J,EAAM0hB,EAAcxxB,EAAa,CACnE8P,EAAK,MAAQ0hB,EACb1hB,EAAK,YAAc9P,EACnByxB,GAAuB3hB,CAAI,GAAK4hB,GAAmB3rB,CAAK,CAC1D,CACA,SAASorB,GAAiBprB,EAAO+J,EAAM/P,EAAW,CAChD,OAAOA,EAAU,UAAY,CAC3B0xB,GAAuB3hB,CAAI,GAAK4hB,GAAmB3rB,CAAK,CAC5D,CAAG,CACH,CACA,SAAS0rB,GAAuB3hB,EAAM,CACpC,IAAI6hB,EAAoB7hB,EAAK,YAC7BA,EAAOA,EAAK,MACZ,GAAI,CACF,IAAIsT,EAAYuO,EAAiB,EACjC,MAAO,CAACxW,GAASrL,EAAMsT,CAAS,CACpC,MAAkB,CACd,MAAO,EACX,CACA,CACA,SAASsO,GAAmB3rB,EAAO,CACjC,IAAI+F,EAAOwS,GAA+BvY,EAAO,CAAC,EACzC+F,IAAT,MAAiB8lB,GAAsB9lB,EAAM/F,EAAO,CAAC,CACvD,CACA,SAAS8rB,GAAe1yB,EAAc,CACpC,IAAIwwB,EAAOD,GAAuB,EAClC,GAAmB,OAAOvwB,GAAtB,WAAoC,CACtC,IAAI2yB,EAA0B3yB,EAE9B,GADAA,EAAe2yB,EAAuB,EAClChE,GAAqC,CACvC7iB,GAA2B,EAAE,EAC7B,GAAI,CACF6mB,EAAuB,CAC/B,QAAA,CACQ7mB,GAA2B,EAAE,CACrC,CACA,CACA,CACE,OAAA0kB,EAAK,cAAgBA,EAAK,UAAYxwB,EACtCwwB,EAAK,MAAQ,CACX,QAAS,KACT,MAAO,EACP,SAAU,KACV,oBAAqBQ,GACrB,kBAAmBhxB,GAEdwwB,CACT,CACA,SAASoC,GAAqBpC,EAAMzQ,EAASvf,EAAaC,EAAS,CACjE,OAAA+vB,EAAK,UAAYhwB,EACV0wB,GACLV,EACAjC,GACe,OAAO9tB,GAAtB,WAAgCA,EAAUuwB,GAE9C,CACA,SAAS6B,GACPjsB,EACAksB,EACAC,EACAC,EACA10B,EACA,CACA,GAAI20B,GAAoBrsB,CAAK,EAAG,MAAM,MAAM7B,EAAuB,GAAG,CAAC,EAEvE,GADA6B,EAAQksB,EAAY,OACPlsB,IAAT,KAAgB,CAClB,IAAIssB,EAAa,CACf,QAAS50B,EACT,OAAQsI,EACR,KAAM,KACN,aAAc,GACd,OAAQ,UACR,MAAO,KACP,OAAQ,KACR,UAAW,CAAA,EACX,KAAM,SAAU4e,EAAU,CACxB0N,EAAW,UAAU,KAAK1N,CAAQ,CAC1C,GAEavpB,EAAqB,IAA9B,KACI82B,EAAgB,EAAE,EACjBG,EAAW,aAAe,GAC/BF,EAASE,CAAU,EACnBH,EAAkBD,EAAY,QACrBC,IAAT,MACMG,EAAW,KAAOJ,EAAY,QAAUI,EAC1CC,GAAqBL,EAAaI,CAAU,IAC1CA,EAAW,KAAOH,EAAgB,KACnCD,EAAY,QAAUC,EAAgB,KAAOG,EACtD,CACA,CACA,SAASC,GAAqBL,EAAa3xB,EAAM,CAC/C,IAAIpB,EAASoB,EAAK,OAChB7C,EAAU6C,EAAK,QACfiyB,EAAYN,EAAY,MAC1B,GAAI3xB,EAAK,aAAc,CACrB,IAAIzB,EAAiBzD,EAAqB,EACxC0D,EAAoB,CAAA,EACtB1D,EAAqB,EAAI0D,EACzB,GAAI,CACF,IAAIC,EAAcG,EAAOqzB,EAAW90B,CAAO,EACzCuB,EAA0B5D,EAAqB,EACxC4D,IAAT,MACEA,EAAwBF,EAAmBC,CAAW,EACxDyzB,GAAwBP,EAAa3xB,EAAMvB,CAAW,CAC5D,OAAatC,EAAO,CACdg2B,GAAcR,EAAa3xB,EAAM7D,CAAK,CAC5C,QAAA,CACeoC,IAAT,MACWC,EAAkB,QAA3B,OACCD,EAAe,MAAQC,EAAkB,OACzC1D,EAAqB,EAAIyD,CAClC,CACA,KACI,IAAI,CACDA,EAAiBK,EAAOqzB,EAAW90B,CAAO,EACzC+0B,GAAwBP,EAAa3xB,EAAMzB,CAAc,CACjE,OAAa6zB,EAAU,CACjBD,GAAcR,EAAa3xB,EAAMoyB,CAAQ,CAC/C,CACA,CACA,SAASF,GAAwBP,EAAa3xB,EAAMvB,EAAa,CACtDA,IAAT,MACa,OAAOA,GAApB,UACe,OAAOA,EAAY,MAAlC,WACIA,EAAY,KACV,SAAU4zB,EAAW,CACnBC,GAAgBX,EAAa3xB,EAAMqyB,CAAS,CACtD,EACQ,SAAUl2B,EAAO,CACf,OAAOg2B,GAAcR,EAAa3xB,EAAM7D,CAAK,CACvD,CACA,EACMm2B,GAAgBX,EAAa3xB,EAAMvB,CAAW,CACpD,CACA,SAAS6zB,GAAgBX,EAAaI,EAAYM,EAAW,CAC3DN,EAAW,OAAS,YACpBA,EAAW,MAAQM,EACnBE,GAAsBR,CAAU,EAChCJ,EAAY,MAAQU,EACpBN,EAAaJ,EAAY,QAChBI,IAAT,OACIM,EAAYN,EAAW,KACzBM,IAAcN,EACTJ,EAAY,QAAU,MACrBU,EAAYA,EAAU,KACvBN,EAAW,KAAOM,EACnBL,GAAqBL,EAAaU,CAAS,GACnD,CACA,SAASF,GAAcR,EAAaI,EAAY51B,EAAO,CACrD,IAAIoE,EAAOoxB,EAAY,QAEvB,GADAA,EAAY,QAAU,KACTpxB,IAAT,KAAe,CACjBA,EAAOA,EAAK,KACZ,GACGwxB,EAAW,OAAS,WAClBA,EAAW,OAAS51B,EACrBo2B,GAAsBR,CAAU,EAC/BA,EAAaA,EAAW,WACtBA,IAAexxB,EAC1B,CACEoxB,EAAY,OAAS,IACvB,CACA,SAASY,GAAsBR,EAAY,CACzCA,EAAaA,EAAW,UACxB,QAASn1B,EAAI,EAAGA,EAAIm1B,EAAW,OAAQn1B,OAASm1B,EAAWn1B,CAAC,GAAC,CAC/D,CACA,SAAS41B,GAAmBC,EAAUjH,EAAU,CAC9C,OAAOA,CACT,CACA,SAASkH,GAAiB9zB,EAAQ+zB,EAAkB,CAClD,GAAIvgB,GAAa,CACf,IAAIwgB,EAAe/M,GAAmB,UACtC,GAAa+M,IAAT,KAAuB,CACzB3yB,EAAG,CACD,IAAI4H,EAA2BslB,GAC/B,GAAI/a,GAAa,CACf,GAAI8O,GAAwB,CAC1BpgB,EAAG,CAED,QADI+xB,EAAoC3R,GAElC4R,EAAoB1R,GAClByR,EAAkC,WAAxC,GAEA,CACA,GAAI,CAACC,EAAmB,CACtBD,EAAoC,KACpC,MAAM/xB,CACxB,CAIgB,GAHA+xB,EAAoCzQ,GAClCyQ,EAAkC,aAEvBA,IAAT,KAA4C,CAC9CA,EAAoC,KACpC,MAAM/xB,CACxB,CACA,CACcgyB,EAAoBD,EAAkC,KACtDA,EACWC,IAAT,MAAsCA,IAAR,IAC1BD,EACA,IACpB,CACY,GAAIA,EAAmC,CACrC3R,GAAyBkB,GACvByQ,EAAkC,aAEpChrB,EACWgrB,EAAkC,OAA3C,KACF,MAAM5yB,CACpB,CACA,CACUqhB,GAAyBzZ,CAAwB,CAC3D,CACQA,EAA2B,EACnC,CACMA,IAA6B8qB,EAAmBC,EAAa,CAAC,EACpE,CACA,CACE,OAAAA,EAAexD,GAAuB,EACtCwD,EAAa,cAAgBA,EAAa,UAAYD,EACtD9qB,EAA2B,CACzB,QAAS,KACT,MAAO,EACP,SAAU,KACV,oBAAqB2qB,GACrB,kBAAmBG,GAErBC,EAAa,MAAQ/qB,EACrB+qB,EAAeG,GAAiB,KAC9B,KACA5F,GACAtlB,GAEFA,EAAyB,SAAW+qB,EACpC/qB,EAA2B0pB,GAAe,EAAE,EAC5CuB,EAAoBE,GAA2B,KAC7C,KACA7F,GACA,GACAtlB,EAAyB,OAE3BA,EAA2BunB,GAAuB,EAClDyD,EAAoC,CAClC,MAAOF,EACP,SAAU,KACV,OAAQ/zB,EACR,QAAS,MAEXiJ,EAAyB,MAAQgrB,EACjCD,EAAelB,GAAoB,KACjC,KACAvE,GACA0F,EACAC,EACAF,GAEFC,EAAkC,SAAWD,EAC7C/qB,EAAyB,cAAgBjJ,EAClC,CAAC+zB,EAAkBC,EAAc,EAAE,CAC5C,CACA,SAASK,GAAkBr0B,EAAQ,CACjC,IAAIs0B,EAAY5D,GAAwB,EACxC,OAAO6D,GAAsBD,EAAW9F,GAAaxuB,CAAM,CAC7D,CACA,SAASu0B,GAAsBD,EAAWE,EAAkBx0B,EAAQ,CAOlE,GANAw0B,EAAmBrD,GACjBmD,EACAE,EACAZ,IACA,CAAC,EACHU,EAAYpD,GAAcD,EAAiB,EAAE,CAAC,EAE/B,OAAOuD,GAApB,UACSA,IAAT,MACe,OAAOA,EAAiB,MAAvC,WAEA,GAAI,CACF,IAAIpG,EAAQ+B,GAAYqE,CAAgB,CAC9C,OAAahrB,EAAG,CACV,MAAIA,IAAM+d,GAAyBE,GAC7Bje,CACZ,MACO4kB,EAAQoG,EACbA,EAAmB9D,GAAwB,EAC3C,IAAIqC,EAAcyB,EAAiB,MACjC7C,EAAWoB,EAAY,SACzB,OAAA/yB,IAAWw0B,EAAiB,gBACxBjG,GAAwB,OAAS,KACnC2D,GACE,EACA,CAAE,QAAS,MAAM,EACjBuC,GAAwB,KAAK,KAAM1B,EAAa/yB,CAAM,EACtD,IACN,GACS,CAACouB,EAAOuD,EAAU2C,CAAS,CACpC,CACA,SAASG,GAAwB1B,EAAa/yB,EAAQ,CACpD+yB,EAAY,OAAS/yB,CACvB,CACA,SAAS00B,GAAoB10B,EAAQ,CACnC,IAAIs0B,EAAY5D,GAAwB,EACtC8D,EAAmBhG,GACrB,GAAagG,IAAT,KACF,OAAOD,GAAsBD,EAAWE,EAAkBx0B,CAAM,EAClE0wB,GAAwB,EACxB4D,EAAYA,EAAU,cACtBE,EAAmB9D,GAAwB,EAC3C,IAAIiB,EAAW6C,EAAiB,MAAM,SACtC,OAAAA,EAAiB,cAAgBx0B,EAC1B,CAACs0B,EAAW3C,EAAU,EAAE,CACjC,CACA,SAASO,GAAiBvqB,EAAKiJ,EAAMrQ,EAAQJ,EAAM,CACjD,OAAAwH,EAAM,CAAE,IAAKA,EAAK,OAAQpH,EAAQ,KAAMJ,EAAM,KAAMyQ,EAAM,KAAM,IAAI,EACpEA,EAAO2d,GAAwB,YACtB3d,IAAT,OACIA,EAAOigB,GAAkC,EAC1CtC,GAAwB,YAAc3d,GACzCrQ,EAASqQ,EAAK,WACLrQ,IAAT,KACKqQ,EAAK,WAAajJ,EAAI,KAAOA,GAC5BxH,EAAOI,EAAO,KACfA,EAAO,KAAOoH,EACdA,EAAI,KAAOxH,EACXyQ,EAAK,WAAajJ,GAChBA,CACT,CACA,SAASgtB,IAAY,CACnB,OAAOjE,GAAwB,EAAG,aACpC,CACA,SAASkE,GAAgBC,EAAYC,EAAWv0B,EAAQJ,EAAM,CAC5D,IAAIswB,EAAOD,GAAuB,EAClCjC,GAAwB,OAASsG,EACjCpE,EAAK,cAAgByB,GACnB,EAAI4C,EACJ,CAAE,QAAS,MAAM,EACjBv0B,EACWJ,IAAX,OAAkB,KAAOA,EAE7B,CACA,SAAS40B,GAAiBF,EAAYC,EAAWv0B,EAAQJ,EAAM,CAC7D,IAAIswB,EAAOC,GAAwB,EACnCvwB,EAAkBA,IAAX,OAAkB,KAAOA,EAChC,IAAIyQ,EAAO6f,EAAK,cAAc,KACrBjC,KAAT,MACSruB,IAAT,MACA8uB,GAAmB9uB,EAAMquB,GAAY,cAAc,IAAI,EAClDiC,EAAK,cAAgByB,GAAiB4C,EAAWlkB,EAAMrQ,EAAQJ,CAAI,GAClEouB,GAAwB,OAASsG,EAClCpE,EAAK,cAAgByB,GACpB,EAAI4C,EACJlkB,EACArQ,EACAJ,CACR,EACA,CACA,SAAS60B,GAAYz0B,EAAQJ,EAAM,CACjCy0B,GAAgB,QAAS,EAAGr0B,EAAQJ,CAAI,CAC1C,CACA,SAAS6xB,GAAazxB,EAAQJ,EAAM,CAClC40B,GAAiB,KAAM,EAAGx0B,EAAQJ,CAAI,CACxC,CACA,SAAS80B,GAAmB12B,EAAS,CACnCgwB,GAAwB,OAAS,EACjC,IAAI2G,EAAuB3G,GAAwB,YACnD,GAAa2G,IAAT,KACDA,EAAuBrE,GAAkC,EACvDtC,GAAwB,YAAc2G,EACtCA,EAAqB,OAAS,CAAC32B,CAAO,MACtC,CACH,IAAI42B,EAASD,EAAqB,OACzBC,IAAT,KACKD,EAAqB,OAAS,CAAC32B,CAAO,EACvC42B,EAAO,KAAK52B,CAAO,CAC3B,CACA,CACA,SAAS62B,GAAYx5B,EAAU,CAC7B,IAAI4E,EAAMkwB,GAAwB,EAAG,cACrC,OAAAuE,GAAmB,CAAE,IAAKz0B,EAAK,SAAU5E,CAAQ,CAAE,EAC5C,UAAY,CACjB,IAAW6vB,GAAmB,KAA1B,EAA8B,MAAM,MAAMzmB,EAAuB,GAAG,CAAC,EACzE,OAAOxE,EAAI,KAAK,MAAM,OAAQ,SAAS,CAC3C,CACA,CACA,SAAS60B,GAAsB90B,EAAQJ,EAAM,CAC3C,OAAO40B,GAAiB,EAAG,EAAGx0B,EAAQJ,CAAI,CAC5C,CACA,SAASm1B,GAAmB/0B,EAAQJ,EAAM,CACxC,OAAO40B,GAAiB,EAAG,EAAGx0B,EAAQJ,CAAI,CAC5C,CACA,SAASo1B,GAAuBh1B,EAAQC,EAAK,CAC3C,GAAmB,OAAOA,GAAtB,WAA2B,CAC7BD,EAASA,EAAM,EACf,IAAIi1B,EAAah1B,EAAID,CAAM,EAC3B,OAAO,UAAY,CACF,OAAOi1B,GAAtB,WAAmCA,EAAU,EAAKh1B,EAAI,IAAI,CAChE,CACA,CACE,GAAaA,GAAT,KACF,OACGD,EAASA,EAAM,EACfC,EAAI,QAAUD,EACf,UAAY,CACVC,EAAI,QAAU,IACtB,CAEA,CACA,SAASi1B,GAAuBj1B,EAAKD,EAAQJ,EAAM,CACjDA,EAAgBA,GAAT,KAAmCA,EAAK,OAAO,CAACK,CAAG,CAAC,EAAI,KAC/Du0B,GAAiB,EAAG,EAAGQ,GAAuB,KAAK,KAAMh1B,EAAQC,CAAG,EAAGL,CAAI,CAC7E,CACA,SAASu1B,IAAkB,CAAA,CAC3B,SAASC,GAAe/5B,EAAUuE,EAAM,CACtC,IAAIswB,EAAOC,GAAwB,EACnCvwB,EAAkBA,IAAX,OAAkB,KAAOA,EAChC,IAAIkzB,EAAY5C,EAAK,cACrB,OAAatwB,IAAT,MAAiB8uB,GAAmB9uB,EAAMkzB,EAAU,CAAC,CAAC,EACjDA,EAAU,CAAC,GACpB5C,EAAK,cAAgB,CAAC70B,EAAUuE,CAAI,EAC7BvE,EACT,CACA,SAASg6B,GAAWC,EAAY11B,EAAM,CACpC,IAAIswB,EAAOC,GAAwB,EACnCvwB,EAAkBA,IAAX,OAAkB,KAAOA,EAChC,IAAIkzB,EAAY5C,EAAK,cACrB,GAAatwB,IAAT,MAAiB8uB,GAAmB9uB,EAAMkzB,EAAU,CAAC,CAAC,EACxD,OAAOA,EAAU,CAAC,EAEpB,GADAA,EAAYwC,EAAU,EAClBjH,GAAqC,CACvC7iB,GAA2B,EAAE,EAC7B,GAAI,CACF8pB,EAAU,CAChB,QAAA,CACM9pB,GAA2B,EAAE,CACnC,CACA,CACE,OAAA0kB,EAAK,cAAgB,CAAC4C,EAAWlzB,CAAI,EAC9BkzB,CACT,CACA,SAASyC,GAAuBrF,EAAMpwB,EAAOC,EAAc,CACzD,OACaA,IAAX,SACQ+M,GAAc,cAArB,IACQyf,GAAgC,UAAvC,EAEM2D,EAAK,cAAgBpwB,GAC/BowB,EAAK,cAAgBnwB,EACrBmwB,EAAOsF,GAAmB,EAC1BxH,GAAwB,OAASkC,EACjC1D,IAAkC0D,EAC3BnwB,EACT,CACA,SAAS01B,GAAwBvF,EAAMwF,EAAW51B,EAAOC,EAAc,CACrE,OAAI2b,GAAS5b,EAAO41B,CAAS,EAAU51B,EAC1B8sB,GAA6B,UAAtC,MAECsD,EAAOqF,GAAuBrF,EAAMpwB,EAAOC,CAAY,EACxD2b,GAASwU,EAAMwF,CAAS,IAAMpG,GAAmB,IACjDY,IAGKpjB,GAAc,MAArB,IACQA,GAAc,cAArB,IACQyf,GAAgC,UAAvC,GAEM+C,GAAmB,GAAMY,EAAK,cAAgBpwB,IACxDowB,EAAOsF,GAAmB,EAC1BxH,GAAwB,OAASkC,EACjC1D,IAAkC0D,EAC3BwF,EACT,CACA,SAASC,GAAgBrvB,EAAOiY,EAAOqX,EAAcC,EAAex6B,EAAU,CAC5E,IAAI8T,EAAmBxH,EAAwB,EAC/CA,EAAwB,EAChBwH,IAAN,GAA0B,EAAIA,EAAmBA,EAAmB,EACtE,IAAI/P,EAAiBzD,EAAqB,EACxC0D,EAAoB,CAAA,EACtB1D,EAAqB,EAAI0D,EACzBw0B,GAA2BvtB,EAAO,GAAIiY,EAAOqX,CAAY,EACzD,GAAI,CACF,IAAIt2B,EAAcjE,EAAQ,EACxBkE,EAA0B5D,EAAqB,EAGjD,GAFS4D,IAAT,MACEA,EAAwBF,EAAmBC,CAAW,EAE7CA,IAAT,MACa,OAAOA,GAApB,UACe,OAAOA,EAAY,MAAlC,WACA,CACA,IAAIw2B,EAA2B3P,GAC7B7mB,EACAu2B,GAEFE,GACEzvB,EACAiY,EACAuX,EACAE,GAAkB1vB,CAAK,EAE/B,MACMyvB,GACEzvB,EACAiY,EACAsX,EACAG,GAAkB1vB,CAAK,EAE/B,OAAWtJ,EAAO,CACd+4B,GACEzvB,EACAiY,EACA,CAAE,KAAM,UAAY,CAAA,EAAI,OAAQ,WAAY,OAAQvhB,CAAK,EACzDg5B,GAAiB,EAEvB,QAAA,CACKruB,EAAwB,EAAIwH,EAClB/P,IAAT,MACWC,EAAkB,QAA3B,OACCD,EAAe,MAAQC,EAAkB,OAC3C1D,EAAqB,EAAIyD,CAChC,CACA,CACA,SAAS1D,IAAO,CAAA,CAChB,SAASu6B,GAAoBC,EAAWN,EAAcn2B,EAAQ02B,EAAU,CACtE,GAAUD,EAAU,MAAhB,EAAqB,MAAM,MAAMzxB,EAAuB,GAAG,CAAC,EAChE,IAAI8Z,EAAQ6X,GAA8BF,CAAS,EAAE,MACrDP,GACEO,EACA3X,EACAqX,EACAhuB,GACSnI,IAAT,KACI/D,GACA,UAAY,CACV,OAAA26B,GAAmBH,CAAS,EACrBz2B,EAAO02B,CAAQ,CAChC,EAEA,CACA,SAASC,GAA8BF,EAAW,CAChD,IAAII,EAAoBJ,EAAU,cAClC,GAAaI,IAAT,KAA4B,OAAOA,EACvCA,EAAoB,CAClB,cAAe1uB,GACf,UAAWA,GACX,UAAW,KACX,MAAO,CACL,QAAS,KACT,MAAO,EACP,SAAU,KACV,oBAAqB8oB,GACrB,kBAAmB9oB,IAErB,KAAM,MAER,IAAI2uB,EAAoB,CAAA,EACxB,OAAAD,EAAkB,KAAO,CACvB,cAAeC,EACf,UAAWA,EACX,UAAW,KACX,MAAO,CACL,QAAS,KACT,MAAO,EACP,SAAU,KACV,oBAAqB7F,GACrB,kBAAmB6F,GAErB,KAAM,MAERL,EAAU,cAAgBI,EAC1BJ,EAAYA,EAAU,UACbA,IAAT,OAAuBA,EAAU,cAAgBI,GAC1CA,CACT,CACA,SAASD,GAAmBH,EAAW,CACrC,IAAInC,EAAYqC,GAA8BF,CAAS,EAC9CnC,EAAU,OAAnB,OAA4BA,EAAYmC,EAAU,UAAU,eAC5DH,GACEG,EACAnC,EAAU,KAAK,MACf,CAAA,EACAiC,GAAiB,EAErB,CACA,SAASQ,IAA0B,CACjC,OAAO7R,GAAY/b,EAAqB,CAC1C,CACA,SAAS6tB,IAAW,CAClB,OAAOtG,GAAwB,EAAG,aACpC,CACA,SAASuG,IAAgB,CACvB,OAAOvG,GAAwB,EAAG,aACpC,CACA,SAASwG,GAAarwB,EAAO,CAC3B,QAASswB,EAAWtwB,EAAM,OAAiBswB,IAAT,MAAqB,CACrD,OAAQA,EAAS,IAAG,CAClB,IAAK,IACL,IAAK,GACH,IAAI5pB,EAAOgpB,GAAiB,EAC5B1vB,EAAQykB,GAAa/d,CAAI,EACzB,IAAI6pB,EAAU7L,GAAc4L,EAAUtwB,EAAO0G,CAAI,EACxC6pB,IAAT,OACG1E,GAAsB0E,EAASD,EAAU5pB,CAAI,EAC9Cme,GAAoB0L,EAASD,EAAU5pB,CAAI,GAC7C4pB,EAAW,CAAE,MAAOtR,IAAa,EACjChf,EAAM,QAAUswB,EAChB,MACR,CACIA,EAAWA,EAAS,MACxB,CACA,CACA,SAASE,GAAsBxwB,EAAOiY,EAAO9e,EAAQ,CACnD,IAAIuN,EAAOgpB,GAAiB,EAC5Bv2B,EAAS,CACP,KAAMuN,EACN,WAAY,EACZ,QAAS,KACT,OAAQvN,EACR,cAAe,GACf,WAAY,KACZ,KAAM,MAERkzB,GAAoBrsB,CAAK,EACrBywB,GAAyBxY,EAAO9e,CAAM,GACpCA,EAASkf,GAA4BrY,EAAOiY,EAAO9e,EAAQuN,CAAI,EACxDvN,IAAT,OACG0yB,GAAsB1yB,EAAQ6G,EAAO0G,CAAI,EAC1CgqB,GAAyBv3B,EAAQ8e,EAAOvR,CAAI,GACpD,CACA,SAAS4mB,GAAiBttB,EAAOiY,EAAO9e,EAAQ,CAC9C,IAAIuN,EAAOgpB,GAAiB,EAC5BD,GAAyBzvB,EAAOiY,EAAO9e,EAAQuN,CAAI,CACrD,CACA,SAAS+oB,GAAyBzvB,EAAOiY,EAAO9e,EAAQuN,EAAM,CAC5D,IAAImB,EAAS,CACX,KAAMnB,EACN,WAAY,EACZ,QAAS,KACT,OAAQvN,EACR,cAAe,GACf,WAAY,KACZ,KAAM,MAER,GAAIkzB,GAAoBrsB,CAAK,EAAGywB,GAAyBxY,EAAOpQ,CAAM,MACjE,CACH,IAAIrH,EAAYR,EAAM,UACtB,GACQA,EAAM,QAAZ,IACUQ,IAAT,MAA4BA,EAAU,QAAhB,KACrBA,EAAYyX,EAAM,oBAA+BzX,IAAT,MAE1C,GAAI,CACF,IAAImwB,EAAe1Y,EAAM,kBACvB2Y,EAAapwB,EAAUmwB,EAAcx3B,CAAM,EAG7C,GAFA0O,EAAO,cAAgB,GACvBA,EAAO,WAAa+oB,EAChBxb,GAASwb,EAAYD,CAAY,EACnC,OACEvY,GAAgBpY,EAAOiY,EAAOpQ,EAAQ,CAAC,EAC9BuY,KAAT,MAA+BrI,GAA+B,EAC9D,EAEZ,MAAsB,CACtB,QAAA,CACA,CAEI,GADA5e,EAASkf,GAA4BrY,EAAOiY,EAAOpQ,EAAQnB,CAAI,EAClDvN,IAAT,KACF,OACE0yB,GAAsB1yB,EAAQ6G,EAAO0G,CAAI,EACzCgqB,GAAyBv3B,EAAQ8e,EAAOvR,CAAI,EAC5C,EAER,CACE,MAAO,EACT,CACA,SAAS6mB,GAA2BvtB,EAAO6wB,EAAqB5Y,EAAO9e,EAAQ,CAU7E,GATAA,EAAS,CACP,KAAM,EACN,WAAYumB,GAAqB,EACjC,QAAS,KACT,OAAQvmB,EACR,cAAe,GACf,WAAY,KACZ,KAAM,MAEJkzB,GAAoBrsB,CAAK,GAC3B,GAAI6wB,EAAqB,MAAM,MAAM1yB,EAAuB,GAAG,CAAC,OAE/D0yB,EAAsBxY,GACrBrY,EACAiY,EACA9e,EACA,GAES03B,IAAT,MACEhF,GAAsBgF,EAAqB7wB,EAAO,CAAC,CAC3D,CACA,SAASqsB,GAAoBrsB,EAAO,CAClC,IAAIQ,EAAYR,EAAM,UACtB,OACEA,IAAU0nB,IACAlnB,IAAT,MAAsBA,IAAcknB,EAEzC,CACA,SAAS+I,GAAyBxY,EAAOpQ,EAAQ,CAC/CigB,GAA6CD,GAC3C,GACF,IAAI3P,EAAUD,EAAM,QACXC,IAAT,KACKrQ,EAAO,KAAOA,GACbA,EAAO,KAAOqQ,EAAQ,KAAQA,EAAQ,KAAOrQ,GACnDoQ,EAAM,QAAUpQ,CAClB,CACA,SAAS6oB,GAAyB3qB,EAAMkS,EAAOvR,EAAM,CACnD,IAAWA,EAAO,WAAd,EAAwB,CAC1B,IAAIoe,EAAa7M,EAAM,MACvB6M,GAAc/e,EAAK,aACnBW,GAAQoe,EACR7M,EAAM,MAAQvR,EACduB,GAAkBlC,EAAMW,CAAI,CAChC,CACA,CACA,IAAIoiB,GAAwB,CAC1B,YAAazK,GACb,IAAK4L,GACL,YAAa9B,GACb,WAAYA,GACZ,UAAWA,GACX,oBAAqBA,GACrB,gBAAiBA,GACjB,mBAAoBA,GACpB,QAASA,GACT,WAAYA,GACZ,OAAQA,GACR,SAAUA,GACV,cAAeA,GACf,iBAAkBA,GAClB,cAAeA,GACf,qBAAsBA,GACtB,MAAOA,GACP,wBAAyBA,GACzB,aAAcA,GACd,eAAgBA,GAChB,cAAeA,GACf,aAAcA,GACd,gBAAiBA,IAEnBW,GAAsB,eAAiBX,GACvC,IAAIO,GAAyB,CACzB,YAAarK,GACb,IAAK4L,GACL,YAAa,SAAUl1B,EAAUuE,EAAM,CACrC,OAAAqwB,GAAuB,EAAG,cAAgB,CACxC50B,EACWuE,IAAX,OAAkB,KAAOA,GAEpBvE,CACb,EACI,WAAYspB,GACZ,UAAW8P,GACX,oBAAqB,SAAUx0B,EAAKD,EAAQJ,EAAM,CAChDA,EAAgBA,GAAT,KAAmCA,EAAK,OAAO,CAACK,CAAG,CAAC,EAAI,KAC/Do0B,GACE,QACA,EACAW,GAAuB,KAAK,KAAMh1B,EAAQC,CAAG,EAC7CL,EAER,EACI,gBAAiB,SAAUI,EAAQJ,EAAM,CACvC,OAAOy0B,GAAgB,QAAS,EAAGr0B,EAAQJ,CAAI,CACrD,EACI,mBAAoB,SAAUI,EAAQJ,EAAM,CAC1Cy0B,GAAgB,EAAG,EAAGr0B,EAAQJ,CAAI,CACxC,EACI,QAAS,SAAU01B,EAAY11B,EAAM,CACnC,IAAIswB,EAAOD,GAAuB,EAClCrwB,EAAkBA,IAAX,OAAkB,KAAOA,EAChC,IAAI+jB,EAAY2R,EAAU,EAC1B,GAAIjH,GAAqC,CACvC7iB,GAA2B,EAAE,EAC7B,GAAI,CACF8pB,EAAU,CACpB,QAAA,CACU9pB,GAA2B,EAAE,CACvC,CACA,CACM,OAAA0kB,EAAK,cAAgB,CAACvM,EAAW/jB,CAAI,EAC9B+jB,CACb,EACI,WAAY,SAAUxjB,EAASC,EAAYC,EAAM,CAC/C,IAAI6vB,EAAOD,GAAuB,EAClC,GAAe5vB,IAAX,OAAiB,CACnB,IAAIX,EAAeW,EAAKD,CAAU,EAClC,GAAIiuB,GAAqC,CACvC7iB,GAA2B,EAAE,EAC7B,GAAI,CACFnL,EAAKD,CAAU,CAC3B,QAAA,CACYoL,GAA2B,EAAE,CACzC,CACA,CACA,MAAa9L,EAAeU,EACtB,OAAA8vB,EAAK,cAAgBA,EAAK,UAAYxwB,EACtCS,EAAU,CACR,QAAS,KACT,MAAO,EACP,SAAU,KACV,oBAAqBA,EACrB,kBAAmBT,GAErBwwB,EAAK,MAAQ/vB,EACbA,EAAUA,EAAQ,SAAW22B,GAAsB,KACjD,KACA9I,GACA7tB,GAEK,CAAC+vB,EAAK,cAAe/vB,CAAO,CACzC,EACI,OAAQ,SAAUJ,EAAc,CAC9B,IAAImwB,EAAOD,GAAuB,EAClC,OAAAlwB,EAAe,CAAE,QAASA,CAAY,EAC9BmwB,EAAK,cAAgBnwB,CACnC,EACI,SAAU,SAAUL,EAAc,CAChCA,EAAe0yB,GAAe1yB,CAAY,EAC1C,IAAI6e,EAAQ7e,EAAa,MACvB0xB,EAAWwC,GAAiB,KAAK,KAAM5F,GAAyBzP,CAAK,EACvE,OAAAA,EAAM,SAAW6S,EACV,CAAC1xB,EAAa,cAAe0xB,CAAQ,CAClD,EACI,cAAe+D,GACf,iBAAkB,SAAUr1B,EAAOC,EAAc,CAC/C,IAAImwB,EAAOD,GAAuB,EAClC,OAAOsF,GAAuBrF,EAAMpwB,EAAOC,CAAY,CAC7D,EACI,cAAe,UAAY,CACzB,IAAIg0B,EAAY3B,GAAe,EAAE,EACjC,OAAA2B,EAAY4B,GAAgB,KAC1B,KACA3H,GACA+F,EAAU,MACV,GACA,IAEF9D,GAAuB,EAAG,cAAgB8D,EACnC,CAAC,GAAIA,CAAS,CAC3B,EACI,qBAAsB,SAAUzzB,EAAWC,EAAaC,EAAmB,CACzE,IAAI8F,EAAQ0nB,GACVkC,EAAOD,GAAuB,EAChC,GAAIhd,GAAa,CACf,GAAezS,IAAX,OACF,MAAM,MAAMiE,EAAuB,GAAG,CAAC,EACzCjE,EAAoBA,EAAiB,CAC7C,KAAa,CAEL,GADAA,EAAoBD,EAAW,EAClBmmB,KAAT,KACF,MAAM,MAAMjiB,EAAuB,GAAG,CAAC,GAClC8nB,GAAgC,OAAvC,GACEsF,GAA0BvrB,EAAO/F,EAAaC,CAAiB,CACzE,CACM0vB,EAAK,cAAgB1vB,EACrB,IAAI6P,EAAO,CAAE,MAAO7P,EAAmB,YAAaD,CAAW,EAC/D,OAAA2vB,EAAK,MAAQ7f,EACbokB,GAAY/C,GAAiB,KAAK,KAAMprB,EAAO+J,EAAM/P,CAAS,EAAG,CAC/DA,CACR,CAAO,EACDgG,EAAM,OAAS,KACfqrB,GACE,EACA,CAAE,QAAS,MAAM,EACjBC,GAAoB,KAClB,KACAtrB,EACA+J,EACA7P,EACAD,GAEF,MAEKC,CACb,EACI,MAAO,UAAY,CACjB,IAAI0vB,EAAOD,GAAuB,EAChCmH,EAAmB1Q,GAAmB,iBACxC,GAAIzT,GAAa,CACf,IAAIvK,EAA2ByY,GAC3BkW,EAAmBnW,GACvBxY,GAEI2uB,EAAmB,EAAE,GAAM,GAAK3rB,GAAM2rB,CAAgB,EAAI,IAC1D,SAAS,EAAE,EAAI3uB,EACnB0uB,EACE,IAAMA,EAAmB,KAAO1uB,EAClCA,EAA2B4lB,KAC3B,EAAI5lB,IACD0uB,GAAoB,IAAM1uB,EAAyB,SAAS,EAAE,GACjE0uB,GAAoB,GAC5B,MACS1uB,EAA2B8lB,KACzB4I,EACC,IACAA,EACA,KACA1uB,EAAyB,SAAS,EAAE,EACpC,IACN,OAAQwnB,EAAK,cAAgBkH,CACnC,EACI,wBAAyBZ,GACzB,aAAcjD,GACd,eAAgBA,GAChB,cAAe,SAAUrzB,EAAa,CACpC,IAAIgwB,EAAOD,GAAuB,EAClCC,EAAK,cAAgBA,EAAK,UAAYhwB,EACtC,IAAIqe,EAAQ,CACV,QAAS,KACT,MAAO,EACP,SAAU,KACV,oBAAqB,KACrB,kBAAmB,MAErB,OAAA2R,EAAK,MAAQ3R,EACb2R,EAAO2D,GAA2B,KAChC,KACA7F,GACA,GACAzP,GAEFA,EAAM,SAAW2R,EACV,CAAChwB,EAAagwB,CAAI,CAC/B,EACI,aAAcM,GACd,gBAAiB,UAAY,CAC3B,OAAQP,GAAuB,EAAG,cAAgB0G,GAAa,KAC7D,KACA3I,GAER,EACI,eAAgB,SAAU3yB,EAAU,CAClC,IAAI60B,EAAOD,GAAuB,EAChChwB,EAAM,CAAE,KAAM5E,CAAQ,EACxB,OAAA60B,EAAK,cAAgBjwB,EACd,UAAY,CACjB,IAAWirB,GAAmB,KAA1B,EACF,MAAM,MAAMzmB,EAAuB,GAAG,CAAC,EACzC,OAAOxE,EAAI,KAAK,MAAM,OAAQ,SAAS,CAC/C,CACA,GAEEgvB,GAA0B,CACxB,YAAatK,GACb,IAAK4L,GACL,YAAa6E,GACb,WAAYzQ,GACZ,UAAW8M,GACX,oBAAqByD,GACrB,mBAAoBJ,GACpB,gBAAiBC,GACjB,QAASM,GACT,WAAY1E,GACZ,OAAQyD,GACR,SAAU,UAAY,CACpB,OAAOzD,GAAcD,EAAiB,CAC5C,EACI,cAAeyE,GACf,iBAAkB,SAAUr1B,EAAOC,EAAc,CAC/C,IAAImwB,EAAOC,GAAwB,EACnC,OAAOsF,GACLvF,EACAjC,GAAY,cACZnuB,EACAC,EAER,EACI,cAAe,UAAY,CACzB,IAAIu3B,EAAoB3G,GAAcD,EAAiB,EAAE,CAAC,EACxD3a,EAAQoa,GAAwB,EAAG,cACrC,MAAO,CACS,OAAOmH,GAArB,UACIA,EACA1H,GAAY0H,CAAiB,EACjCvhB,EAER,EACI,qBAAsBub,GACtB,MAAOmF,GACP,wBAAyBD,GACzB,aAAc1C,GACd,eAAgBA,GAChB,cAAe,SAAU5zB,EAAaC,EAAS,CAC7C,IAAI+vB,EAAOC,GAAwB,EACnC,OAAOmC,GAAqBpC,EAAMjC,GAAa/tB,EAAaC,CAAO,CACzE,EACI,aAAcqwB,GACd,gBAAiBkG,IAErBzH,GAAwB,eAAiB4F,GACzC,IAAIrF,GAA4B,CAC9B,YAAa7K,GACb,IAAK4L,GACL,YAAa6E,GACb,WAAYzQ,GACZ,UAAW8M,GACX,oBAAqByD,GACrB,mBAAoBJ,GACpB,gBAAiBC,GACjB,QAASM,GACT,WAAYlE,GACZ,OAAQiD,GACR,SAAU,UAAY,CACpB,OAAOjD,GAAgBT,EAAiB,CAC5C,EACE,cAAeyE,GACf,iBAAkB,SAAUr1B,EAAOC,EAAc,CAC/C,IAAImwB,EAAOC,GAAwB,EACnC,OAAgBlC,KAAT,KACHsH,GAAuBrF,EAAMpwB,EAAOC,CAAY,EAChD01B,GACEvF,EACAjC,GAAY,cACZnuB,EACAC,EAEV,EACE,cAAe,UAAY,CACzB,IAAIu3B,EAAoBnG,GAAgBT,EAAiB,EAAE,CAAC,EAC1D3a,EAAQoa,GAAwB,EAAG,cACrC,MAAO,CACS,OAAOmH,GAArB,UACIA,EACA1H,GAAY0H,CAAiB,EACjCvhB,EAEN,EACE,qBAAsBub,GACtB,MAAOmF,GACP,wBAAyBD,GACzB,aAAcrC,GACd,eAAgBA,GAChB,cAAe,SAAUj0B,EAAaC,EAAS,CAC7C,IAAI+vB,EAAOC,GAAwB,EACnC,OAAalC,KAAT,KACKqE,GAAqBpC,EAAMjC,GAAa/tB,EAAaC,CAAO,GACrE+vB,EAAK,UAAYhwB,EACV,CAACA,EAAagwB,EAAK,MAAM,QAAQ,EAC5C,EACE,aAAcM,GACd,gBAAiBkG,IAEnBlH,GAA0B,eAAiBqF,GAC3C,SAAS0C,GACPjtB,EACArM,EACAu5B,EACAC,EACA,CACAx5B,EAAOqM,EAAe,cACtBktB,EAA2BA,EAAyBC,EAAWx5B,CAAI,EACnEu5B,EACWA,GAAT,KACIv5B,EACAnD,EAAO,CAAA,EAAImD,EAAMu5B,CAAwB,EAC/CltB,EAAe,cAAgBktB,EACzBltB,EAAe,QAArB,IACGA,EAAe,YAAY,UAAYktB,EAC5C,CACA,IAAIE,GAAwB,CAC1B,gBAAiB,SAAUrnB,EAAMrS,EAAS3C,EAAU,CAClDgV,EAAOA,EAAK,gBACZ,IAAIrD,EAAOgpB,GAAiB,EAC1B7nB,EAAS4c,GAAa/d,CAAI,EAC5BmB,EAAO,QAAUnQ,EACe3C,GAAT,OAAsB8S,EAAO,SAAW9S,GAC/D2C,EAAUgtB,GAAc3a,EAAMlC,EAAQnB,CAAI,EACjChP,IAAT,OACGm0B,GAAsBn0B,EAASqS,EAAMrD,CAAI,EAC1Cme,GAAoBntB,EAASqS,EAAMrD,CAAI,EAC7C,EACE,oBAAqB,SAAUqD,EAAMrS,EAAS3C,EAAU,CACtDgV,EAAOA,EAAK,gBACZ,IAAIrD,EAAOgpB,GAAiB,EAC1B7nB,EAAS4c,GAAa/d,CAAI,EAC5BmB,EAAO,IAAM,EACbA,EAAO,QAAUnQ,EACe3C,GAAT,OAAsB8S,EAAO,SAAW9S,GAC/D2C,EAAUgtB,GAAc3a,EAAMlC,EAAQnB,CAAI,EACjChP,IAAT,OACGm0B,GAAsBn0B,EAASqS,EAAMrD,CAAI,EAC1Cme,GAAoBntB,EAASqS,EAAMrD,CAAI,EAC7C,EACE,mBAAoB,SAAUqD,EAAMhV,EAAU,CAC5CgV,EAAOA,EAAK,gBACZ,IAAIrD,EAAOgpB,GAAiB,EAC1B7nB,EAAS4c,GAAa/d,CAAI,EAC5BmB,EAAO,IAAM,EACmB9S,GAAT,OAAsB8S,EAAO,SAAW9S,GAC/DA,EAAW2vB,GAAc3a,EAAMlC,EAAQnB,CAAI,EAClC3R,IAAT,OACG82B,GAAsB92B,EAAUgV,EAAMrD,CAAI,EAC3Cme,GAAoB9vB,EAAUgV,EAAMrD,CAAI,EAC9C,GAEA,SAAS2qB,GACPrtB,EACArM,EACA25B,EACAC,EACAvE,EACAjH,EACAyL,EACA,CACA,OAAAxtB,EAAiBA,EAAe,UACV,OAAOA,EAAe,uBAArC,WACHA,EAAe,sBAAsButB,EAAUxL,EAAUyL,CAAW,EACpE75B,EAAK,WAAaA,EAAK,UAAU,qBAC/B,CAAC0d,GAAaic,EAAUC,CAAQ,GAAK,CAAClc,GAAa2X,EAAUjH,CAAQ,EACrE,EACR,CACA,SAAS0L,GACPztB,EACAgY,EACAuV,EACAC,EACA,CACAxtB,EAAiBgY,EAAS,MACX,OAAOA,EAAS,2BAA/B,YACEA,EAAS,0BAA0BuV,EAAUC,CAAW,EAC3C,OAAOxV,EAAS,kCAA/B,YACEA,EAAS,iCAAiCuV,EAAUC,CAAW,EACjExV,EAAS,QAAUhY,GACjBotB,GAAsB,oBAAoBpV,EAAUA,EAAS,MAAO,IAAI,CAC5E,CACA,SAAS0V,GAA2Bh9B,EAAWi9B,EAAW,CACxD,IAAIJ,EAAWI,EACf,GAAI,QAASA,EAAW,CACtBJ,EAAW,CAAA,EACX,QAASh5B,KAAYo5B,EACTp5B,IAAV,QAAuBg5B,EAASh5B,CAAQ,EAAIo5B,EAAUp5B,CAAQ,EACpE,CACE,GAAK7D,EAAYA,EAAU,aAAe,CACxC68B,IAAaI,IAAcJ,EAAW/8B,EAAO,CAAA,EAAI+8B,CAAQ,GACzD,QAASK,KAAel9B,EACX68B,EAASK,CAAW,IAA/B,SACGL,EAASK,CAAW,EAAIl9B,EAAUk9B,CAAW,EACtD,CACE,OAAOL,CACT,CACA,SAASM,GAAuBn7B,EAAO,CACrCmB,GAAkBnB,CAAK,CACzB,CACA,SAASo7B,GAAqBp7B,EAAO,CACnC,QAAQ,MAAMA,CAAK,CACrB,CACA,SAASq7B,GAA0Br7B,EAAO,CACxCmB,GAAkBnB,CAAK,CACzB,CACA,SAASs7B,GAAiBjsB,EAAMksB,EAAW,CACzC,GAAI,CACF,IAAIC,EAAkBnsB,EAAK,gBAC3BmsB,EAAgBD,EAAU,MAAO,CAAE,eAAgBA,EAAU,MAAO,CACxE,OAAWE,EAAM,CACb,WAAW,UAAY,CACrB,MAAMA,CACZ,CAAK,CACL,CACA,CACA,SAASC,GAAersB,EAAMssB,EAAUJ,EAAW,CACjD,GAAI,CACF,IAAIK,EAAgBvsB,EAAK,cACzBusB,EAAcL,EAAU,MAAO,CAC7B,eAAgBA,EAAU,MAC1B,cAAqBI,EAAS,MAAf,EAAqBA,EAAS,UAAY,IAC/D,CAAK,CACL,OAAWE,EAAM,CACb,WAAW,UAAY,CACrB,MAAMA,CACZ,CAAK,CACL,CACA,CACA,SAASC,GAAsBzsB,EAAMksB,EAAWvrB,EAAM,CACpD,OAAAA,EAAO+d,GAAa/d,CAAI,EACxBA,EAAK,IAAM,EACXA,EAAK,QAAU,CAAE,QAAS,IAAI,EAC9BA,EAAK,SAAW,UAAY,CAC1BsrB,GAAiBjsB,EAAMksB,CAAS,CACpC,EACSvrB,CACT,CACA,SAAS+rB,GAAuB/rB,EAAM,CACpC,OAAAA,EAAO+d,GAAa/d,CAAI,EACxBA,EAAK,IAAM,EACJA,CACT,CACA,SAASgsB,GAA2B7qB,EAAQ9B,EAAM/F,EAAOiyB,EAAW,CAClE,IAAIU,EAA2B3yB,EAAM,KAAK,yBAC1C,GAAmB,OAAO2yB,GAAtB,WAAgD,CAClD,IAAIj8B,EAAQu7B,EAAU,MACtBpqB,EAAO,QAAU,UAAY,CAC3B,OAAO8qB,EAAyBj8B,CAAK,CAC3C,EACImR,EAAO,SAAW,UAAY,CAC5BuqB,GAAersB,EAAM/F,EAAOiyB,CAAS,CAC3C,CACA,CACE,IAAIloB,EAAO/J,EAAM,UACR+J,IAAT,MACiB,OAAOA,EAAK,mBAA3B,aACClC,EAAO,SAAW,UAAY,CAC7BuqB,GAAersB,EAAM/F,EAAOiyB,CAAS,EACtB,OAAOU,GAAtB,aACYC,KAAT,KACIA,GAAyC,IAAI,IAAI,CAAC,IAAI,CAAC,EACxDA,GAAuC,IAAI,IAAI,GACrD,IAAIC,EAAQZ,EAAU,MACtB,KAAK,kBAAkBA,EAAU,MAAO,CACtC,eAAyBY,IAAT,KAAiBA,EAAQ,EACjD,CAAO,CACP,EACA,CACA,SAASC,GACP/sB,EACA+b,EACAtJ,EACAhf,EACAu5B,EACA,CAEA,GADAva,EAAY,OAAS,MAEVhf,IAAT,MACa,OAAOA,GAApB,UACe,OAAOA,EAAM,MAA5B,WACA,CAUA,GATAsoB,EAActJ,EAAY,UACjBsJ,IAAT,MACE/D,GACE+D,EACAtJ,EACAua,EACA,IAEJva,EAAcoO,GAA2B,QAC5BpO,IAAT,KAAsB,CACxB,OAAQA,EAAY,IAAG,CACrB,IAAK,IACL,IAAK,IACH,OACWqO,KAAT,KACImM,GAA+B,EACtBxa,EAAY,YAArB,MACMya,KAAN,IACCA,GAA+B,GACnCza,EAAY,OAAS,KACrBA,EAAY,OAAS,MACrBA,EAAY,MAAQua,EACrBv5B,IAAUqnB,GACLrI,EAAY,OAAS,OACpBsJ,EAActJ,EAAY,YACnBsJ,IAAT,KACKtJ,EAAY,YAAc,IAAI,IAAI,CAAChf,CAAK,CAAC,EAC1CsoB,EAAY,IAAItoB,CAAK,EACzB05B,GAAmBntB,EAAMvM,EAAOu5B,CAAe,GACnD,GAEJ,IAAK,IACH,OACGva,EAAY,OAAS,MACtBhf,IAAUqnB,GACLrI,EAAY,OAAS,OACpBsJ,EAActJ,EAAY,YACnBsJ,IAAT,MACMA,EAAc,CACd,YAAa,KACb,gBAAiB,KACjB,WAAY,IAAI,IAAI,CAACtoB,CAAK,CAAC,GAE5Bgf,EAAY,YAAcsJ,IACzBtJ,EAAcsJ,EAAY,WACnBtJ,IAAT,KACKsJ,EAAY,WAAa,IAAI,IAAI,CAACtoB,CAAK,CAAC,EACzCgf,EAAY,IAAIhf,CAAK,GAC7B05B,GAAmBntB,EAAMvM,EAAOu5B,CAAe,GACnD,EAEZ,CACM,MAAM,MAAM50B,EAAuB,IAAKqa,EAAY,GAAG,CAAC,CAC9D,CACI,OAAA0a,GAAmBntB,EAAMvM,EAAOu5B,CAAe,EAC/CC,GAA+B,EACxB,EACX,CACE,GAAIrmB,GACF,OACGmV,EAAc8E,GAA2B,QACjC9E,IAAT,OACYA,EAAY,MAAQ,SAA3B,IAAsCA,EAAY,OAAS,KAC3DA,EAAY,OAAS,MACrBA,EAAY,MAAQiR,EACrBv5B,IAAUoiB,KACN7V,EAAO,MAAM5H,EAAuB,GAAG,EAAG,CAAE,MAAO3E,EAAO,EAC5DsiB,GAAoB5B,GAA2BnU,EAAMyS,CAAW,CAAC,KAClEhf,IAAUoiB,KACPkG,EAAc,MAAM3jB,EAAuB,GAAG,EAAG,CACjD,MAAO3E,CACrB,CAAa,EACDsiB,GACE5B,GAA2B4H,EAAatJ,CAAW,CACjE,GACWzS,EAAOA,EAAK,QAAQ,UACpBA,EAAK,OAAS,MACdgtB,GAAmB,CAACA,EACpBhtB,EAAK,OAASgtB,EACdv5B,EAAQ0gB,GAA2B1gB,EAAOgf,CAAW,EACrDua,EAAkBP,GACjBzsB,EAAK,UACLvM,EACAu5B,GAEFhO,GAAsBhf,EAAMgtB,CAAe,EACrCE,KAAN,IACGA,GAA+B,IACtC,GAEJ,IAAIE,EAAe,MAAMh1B,EAAuB,GAAG,EAAG,CAAE,MAAO3E,EAAO,EAMtE,GALA25B,EAAejZ,GAA2BiZ,EAAc3a,CAAW,EAC1D4a,KAAT,KACKA,GAAqC,CAACD,CAAY,EACnDC,GAAmC,KAAKD,CAAY,EAClDF,KAAN,IAAuCA,GAA+B,GACzDnR,IAAT,KAAsB,MAAO,GACjCtoB,EAAQ0gB,GAA2B1gB,EAAOgf,CAAW,EACrDA,EAAcsJ,EACd,EAAG,CACD,OAAQtJ,EAAY,IAAG,CACrB,IAAK,GACH,OACGA,EAAY,OAAS,MACrBzS,EAAOgtB,EAAkB,CAACA,EAC1Bva,EAAY,OAASzS,EACrBA,EAAOysB,GAAsBha,EAAY,UAAWhf,EAAOuM,CAAI,EAChEgf,GAAsBvM,EAAazS,CAAI,EACvC,GAEJ,IAAK,GACH,GACI+b,EAActJ,EAAY,KAC3B2a,EAAe3a,EAAY,WACrBA,EAAY,MAAQ,OAA3B,IACkB,OAAOsJ,EAAY,0BAAlC,YACWqR,IAAT,MACgB,OAAOA,EAAa,mBAAnC,aACUP,KAAT,MACC,CAACA,GAAuC,IAAIO,CAAY,IAEhE,OACG3a,EAAY,OAAS,MACrBua,GAAmB,CAACA,EACpBva,EAAY,OAASua,EACrBA,EAAkBN,GAAuBM,CAAe,EACzDL,GACEK,EACAhtB,EACAyS,EACAhf,GAEFurB,GAAsBvM,EAAaua,CAAe,EAClD,EAEZ,CACIva,EAAcA,EAAY,MAC9B,OAAoBA,IAAT,MACT,MAAO,EACT,CACA,IAAI6a,GAA8B,MAAMl1B,EAAuB,GAAG,CAAC,EACjE6qB,GAAmB,GACrB,SAASsK,GAAkBna,EAASnV,EAAgBuvB,EAAc/sB,EAAa,CAC7ExC,EAAe,MACJmV,IAAT,KACIkL,GAAiBrgB,EAAgB,KAAMuvB,EAAc/sB,CAAW,EAChE4d,GACEpgB,EACAmV,EAAQ,MACRoa,EACA/sB,EAEV,CACA,SAASgtB,GACPra,EACAnV,EACAtP,EACAy8B,EACA3qB,EACA,CACA9R,EAAYA,EAAU,OACtB,IAAIiF,EAAMqK,EAAe,IACzB,GAAI,QAASmtB,EAAW,CACtB,IAAIsC,EAAkB,CAAA,EACtB,QAASh+B,KAAO07B,EACJ17B,IAAV,QAAkBg+B,EAAgBh+B,CAAG,EAAI07B,EAAU17B,CAAG,EAC5D,MAASg+B,EAAkBtC,EAWzB,OAVA/S,GAAqBpa,CAAc,EACnCmtB,EAAY5I,GACVpP,EACAnV,EACAtP,EACA++B,EACA95B,EACA6M,GAEF/Q,EAAM8zB,GAAoB,EACbpQ,IAAT,MAAoB,CAAC6P,IAErBS,GAAatQ,EAASnV,EAAgBwC,CAAW,EACjDktB,GAA6Bva,EAASnV,EAAgBwC,CAAW,IAErEmG,IAAelX,GAAO2lB,GAAuBpX,CAAc,EAC3DA,EAAe,OAAS,EACxBsvB,GAAkBna,EAASnV,EAAgBmtB,EAAW3qB,CAAW,EAC1DxC,EAAe,MACxB,CACA,SAAS2vB,GACPxa,EACAnV,EACAtP,EACAy8B,EACA3qB,EACA,CACA,GAAa2S,IAAT,KAAkB,CACpB,IAAI3jB,EAAOd,EAAU,KACrB,OACiB,OAAOc,GAAtB,YACA,CAACyjB,GAAgBzjB,CAAI,GACVA,EAAK,eAAhB,QACSd,EAAU,UAAnB,MAGGsP,EAAe,IAAM,GACrBA,EAAe,KAAOxO,EACvBo+B,GACEza,EACAnV,EACAxO,EACA27B,EACA3qB,CACV,IAEI2S,EAAUE,GACR3kB,EAAU,KACV,KACAy8B,EACAntB,EACAA,EAAe,KACfwC,GAEF2S,EAAQ,IAAMnV,EAAe,IAC7BmV,EAAQ,OAASnV,EACTA,EAAe,MAAQmV,EACnC,CAEE,GADA3jB,EAAO2jB,EAAQ,MACX,CAAC0a,GAA8B1a,EAAS3S,CAAW,EAAG,CACxD,IAAIstB,EAAYt+B,EAAK,cAGrB,GAFAd,EAAYA,EAAU,QACtBA,EAAqBA,IAAT,KAAqBA,EAAY2gB,GACzC3gB,EAAUo/B,EAAW3C,CAAS,GAAKhY,EAAQ,MAAQnV,EAAe,IACpE,OAAO0vB,GAA6Bva,EAASnV,EAAgBwC,CAAW,CAC9E,CACE,OAAAxC,EAAe,OAAS,EACxBmV,EAAUD,GAAqB1jB,EAAM27B,CAAS,EAC9ChY,EAAQ,IAAMnV,EAAe,IAC7BmV,EAAQ,OAASnV,EACTA,EAAe,MAAQmV,CACjC,CACA,SAASya,GACPza,EACAnV,EACAtP,EACAy8B,EACA3qB,EACA,CACA,GAAa2S,IAAT,KAAkB,CACpB,IAAI2a,EAAY3a,EAAQ,cACxB,GACE9D,GAAaye,EAAW3C,CAAS,GACjChY,EAAQ,MAAQnV,EAAe,IAE/B,GACIglB,GAAmB,GACpBhlB,EAAe,aAAemtB,EAAY2C,EAC3CD,GAA8B1a,EAAS3S,CAAW,GAE3C2S,EAAQ,MAAQ,UAAvB,IAAmC6P,GAAmB,QAEtD,QACGhlB,EAAe,MAAQmV,EAAQ,MAChCua,GAA6Bva,EAASnV,EAAgBwC,CAAW,CAE3E,CACE,OAAOutB,GACL5a,EACAnV,EACAtP,EACAy8B,EACA3qB,EAEJ,CACA,SAASwtB,GACP7a,EACAnV,EACAwC,EACA2qB,EACA,CACA,IAAIoC,EAAepC,EAAU,SAC3B3E,EAAqBrT,IAAT,KAAmBA,EAAQ,cAAgB,KASzD,GARSA,IAAT,MACWnV,EAAe,YAAxB,OACCA,EAAe,UAAY,CAC1B,YAAa,EACb,gBAAiB,KACjB,YAAa,KACb,aAAc,IACpB,GACmBmtB,EAAU,OAAvB,SAA6B,CAC/B,IAAWntB,EAAe,MAAQ,OAA9B,EAAoC,CAGtC,GAFAwoB,EACWA,IAAT,KAAqBA,EAAU,UAAYhmB,EAAcA,EAC9C2S,IAAT,KAAkB,CAEpB,IADAgY,EAAYntB,EAAe,MAAQmV,EAAQ,MACtCoa,EAAe,EAAYpC,IAAT,MACpBoC,EACCA,EAAepC,EAAU,MAAQA,EAAU,WAC1CA,EAAYA,EAAU,QAC3BA,EAAYoC,EAAe,CAAC/G,CACpC,MAAc2E,EAAY,EAAKntB,EAAe,MAAQ,KAChD,OAAOiwB,GACL9a,EACAnV,EACAwoB,EACAhmB,EACA2qB,EAER,CACI,IAAW3qB,EAAc,aAArB,EACDxC,EAAe,cAAgB,CAAE,UAAW,EAAG,UAAW,IAAI,EACpDmV,IAAT,MACEkH,GACErc,EACSwoB,IAAT,KAAqBA,EAAU,UAAY,MAEtCA,IAAT,KACIhG,GAAkBxiB,EAAgBwoB,CAAS,EAC3C9F,GAAyB,EAC7BQ,GAA6BljB,CAAc,MAE7C,QACGmtB,EAAYntB,EAAe,MAAQ,UACpCiwB,GACE9a,EACAnV,EACSwoB,IAAT,KAAqBA,EAAU,UAAYhmB,EAAcA,EACzDA,EACA2qB,CACV,CAEA,MACa3E,IAAT,MACKnM,GAAerc,EAAgBwoB,EAAU,SAAS,EACnDhG,GAAkBxiB,EAAgBwoB,CAAS,EAC3CrF,GAA0C,EACzCnjB,EAAe,cAAgB,OACtBmV,IAAT,MAAoBkH,GAAerc,EAAgB,IAAI,EACxD0iB,GAAyB,EACzBS,GAA0C,GAChD,OAAAmM,GAAkBna,EAASnV,EAAgBuvB,EAAc/sB,CAAW,EAC7DxC,EAAe,KACxB,CACA,SAASkwB,GAA0B/a,EAASnV,EAAgB,CAC1D,OAAUmV,IAAT,MAA2BA,EAAQ,MAAf,IACVnV,EAAe,YAAxB,OACCA,EAAe,UAAY,CAC1B,YAAa,EACb,gBAAiB,KACjB,YAAa,KACb,aAAc,IACpB,GACSA,EAAe,OACxB,CACA,SAASiwB,GACP9a,EACAnV,EACAmwB,EACA3tB,EACA4tB,EACA,CACA,IAAIhyB,EAA2B8d,GAAiB,EAChD,OAAA9d,EACWA,IAAT,KACI,KACA,CAAE,OAAQ2c,GAAa,cAAe,KAAM3c,CAAwB,EAC1E4B,EAAe,cAAgB,CAC7B,UAAWmwB,EACX,UAAW/xB,GAEJ+W,IAAT,MAAoBkH,GAAerc,EAAgB,IAAI,EACvD0iB,GAAyB,EACzBQ,GAA6BljB,CAAc,EAClCmV,IAAT,MACE4E,GAA8B5E,EAASnV,EAAgBwC,EAAa,EAAE,EACxExC,EAAe,WAAaowB,EACrB,IACT,CACA,SAASC,GAAsBrwB,EAAgBmtB,EAAW,CACxD,OAAAA,EAAYmD,GACV,CAAE,KAAMnD,EAAU,KAAM,SAAUA,EAAU,QAAQ,EACpDntB,EAAe,MAEjBmtB,EAAU,IAAMntB,EAAe,IAC/BA,EAAe,MAAQmtB,EACvBA,EAAU,OAASntB,EACZmtB,CACT,CACA,SAASoD,GACPpb,EACAnV,EACAwC,EACA,CACA,OAAA4d,GAAqBpgB,EAAgBmV,EAAQ,MAAO,KAAM3S,CAAW,EACrE2S,EAAUkb,GAAsBrwB,EAAgBA,EAAe,YAAY,EAC3EmV,EAAQ,OAAS,EACjBiO,GAAmBpjB,CAAc,EACjCA,EAAe,cAAgB,KACxBmV,CACT,CACA,SAASqb,GAAwBrb,EAASnV,EAAgBwC,EAAa,CACrE,IAAI2qB,EAAYntB,EAAe,aAC7BywB,GAAoBzwB,EAAe,MAAQ,OAA9B,EAEf,GADAA,EAAe,OAAS,KACXmV,IAAT,KAAkB,CACpB,GAAIxM,GAAa,CACf,GAAiBwkB,EAAU,OAAvB,SACF,OACGhY,EAAUkb,GAAsBrwB,EAAgBmtB,CAAS,EACzDntB,EAAe,MAAQ,UACxBkwB,GAA0B,KAAM/a,CAAO,EAyB3C,GAvBA8N,GAAsCjjB,CAAc,GACnDmV,EAAUsC,KACLtC,EAAUub,GACVvb,EACAwC,IAEDxC,EAAmBA,IAAT,MAA4BA,EAAQ,OAAhB,IAAuBA,EAAU,KACvDA,IAAT,OACInV,EAAe,cAAgB,CAC/B,WAAYmV,EACZ,YACWwB,KAAT,KACI,CAAE,GAAIC,GAAe,SAAUC,EAAmB,EAClD,KACN,UAAW,UACX,gBAAiB,MAElBrU,EAAcqT,GAAkCV,CAAO,EACvD3S,EAAY,OAASxC,EACrBA,EAAe,MAAQwC,EACvBgV,GAAuBxX,EACvByX,GAAyB,OAC3BtC,EAAU,KACFA,IAAT,KAAkB,MAAM0C,GAAyB7X,CAAc,EACnE,OAAAA,EAAe,MAAQ,UAChB,IACb,CACI,OAAOqwB,GAAsBrwB,EAAgBmtB,CAAS,CAC1D,CACE,IAAI3E,EAAYrT,EAAQ,cACxB,GAAaqT,IAAT,KAAoB,CACtB,IAAImI,EAAanI,EAAU,WAE3B,GADAvF,GAAsCjjB,CAAc,EAChDywB,EACF,GAAIzwB,EAAe,MAAQ,IACxBA,EAAe,OAAS,KACtBA,EAAiBuwB,GAChBpb,EACAnV,EACAwC,CACZ,UACwBxC,EAAe,gBAAxB,KACNA,EAAe,MAAQmV,EAAQ,MAC7BnV,EAAe,OAAS,IACxBA,EAAiB,SACjB,OAAM,MAAM7F,EAAuB,GAAG,CAAC,UAE3C6qB,IACCjL,GAA8B5E,EAASnV,EAAgBwC,EAAa,EAAE,EACvEiuB,GAAoBjuB,EAAc2S,EAAQ,cAA7B,EACd6P,IAAoByL,EACpB,CAEA,GADAtD,EAAY/Q,GAED+Q,IAAT,OACEwD,EAAavsB,GAA0B+oB,EAAW3qB,CAAW,EACzDmuB,IAAN,GAAoBA,IAAenI,EAAU,WAE7C,MACIA,EAAU,UAAYmI,EACxBpc,GAA+BY,EAASwb,CAAU,EAClD9I,GAAsBsF,EAAWhY,EAASwb,CAAU,EACpDtB,GAEJL,GAA+B,EAC/BhvB,EAAiBuwB,GACfpb,EACAnV,EACAwC,EAER,MACO2S,EAAUqT,EAAU,YAClB/Q,GAAyBkB,GAAkBgY,EAAW,WAAW,EACjEnZ,GAAuBxX,EACvB2I,GAAc,GACd+O,GAAkB,KAClBC,GAAyB,GACjBxC,IAAT,MACEmC,GAA4BtX,EAAgBmV,CAAO,EACpDnV,EAAiBqwB,GAAsBrwB,EAAgBmtB,CAAS,EAChEntB,EAAe,OAAS,KAC7B,OAAOA,CACX,CACE,OAAAmV,EAAUD,GAAqBC,EAAQ,MAAO,CAC5C,KAAMgY,EAAU,KAChB,SAAUA,EAAU,QACxB,CAAG,EACDhY,EAAQ,IAAMnV,EAAe,IAC7BA,EAAe,MAAQmV,EACvBA,EAAQ,OAASnV,EACVmV,CACT,CACA,SAASyb,GAAQzb,EAASnV,EAAgB,CACxC,IAAIrK,EAAMqK,EAAe,IACzB,GAAarK,IAAT,KACOwf,IAAT,MACWA,EAAQ,MAAjB,OACCnV,EAAe,OAAS,aACxB,CACH,GAAmB,OAAOrK,GAAtB,YAA0C,OAAOA,GAApB,SAC/B,MAAM,MAAMwE,EAAuB,GAAG,CAAC,GAC5Bgb,IAAT,MAAoBA,EAAQ,MAAQxf,KACtCqK,EAAe,OAAS,QAC9B,CACA,CACA,SAAS+vB,GACP5a,EACAnV,EACAtP,EACAy8B,EACA3qB,EACA,CAWA,OAVA4X,GAAqBpa,CAAc,EACnCtP,EAAY6zB,GACVpP,EACAnV,EACAtP,EACAy8B,EACA,OACA3qB,GAEF2qB,EAAY5H,GAAoB,EACnBpQ,IAAT,MAAoB,CAAC6P,IAErBS,GAAatQ,EAASnV,EAAgBwC,CAAW,EACjDktB,GAA6Bva,EAASnV,EAAgBwC,CAAW,IAErEmG,IAAewkB,GAAa/V,GAAuBpX,CAAc,EACjEA,EAAe,OAAS,EACxBsvB,GAAkBna,EAASnV,EAAgBtP,EAAW8R,CAAW,EAC1DxC,EAAe,MACxB,CACA,SAAS6wB,GACP1b,EACAnV,EACAmtB,EACAz8B,EACA8zB,EACAhiB,EACA,CAWA,OAVA4X,GAAqBpa,CAAc,EACnCA,EAAe,YAAc,KAC7BmtB,EAAYvI,GACV5kB,EACAtP,EACAy8B,EACA3I,GAEFK,GAAqB1P,CAAO,EAC5BzkB,EAAY60B,GAAoB,EACnBpQ,IAAT,MAAoB,CAAC6P,IAErBS,GAAatQ,EAASnV,EAAgBwC,CAAW,EACjDktB,GAA6Bva,EAASnV,EAAgBwC,CAAW,IAErEmG,IAAejY,GAAa0mB,GAAuBpX,CAAc,EACjEA,EAAe,OAAS,EACxBsvB,GAAkBna,EAASnV,EAAgBmtB,EAAW3qB,CAAW,EAC1DxC,EAAe,MACxB,CACA,SAAS8wB,GACP3b,EACAnV,EACAtP,EACAy8B,EACA3qB,EACA,CAEA,GADA4X,GAAqBpa,CAAc,EACtBA,EAAe,YAAxB,KAAmC,CACrC,IAAIpP,EAAUgkB,GACZmc,EAAcrgC,EAAU,YACb,OAAOqgC,GAApB,UACWA,IAAT,OACCngC,EAAUypB,GAAY0W,CAAW,GACpCngC,EAAU,IAAIF,EAAUy8B,EAAWv8B,CAAO,EAC1CoP,EAAe,cACJpP,EAAQ,QAAjB,MAAqCA,EAAQ,QAAnB,OAA2BA,EAAQ,MAAQ,KACvEA,EAAQ,QAAUw8B,GAClBptB,EAAe,UAAYpP,EAC3BA,EAAQ,gBAAkBoP,EAC1BpP,EAAUoP,EAAe,UACzBpP,EAAQ,MAAQu8B,EAChBv8B,EAAQ,MAAQoP,EAAe,cAC/BpP,EAAQ,KAAO,CAAA,EACf2vB,GAAsBvgB,CAAc,EACpC+wB,EAAcrgC,EAAU,YACxBE,EAAQ,QACO,OAAOmgC,GAApB,UAA4CA,IAAT,KAC/B1W,GAAY0W,CAAW,EACvBnc,GACNhkB,EAAQ,MAAQoP,EAAe,cAC/B+wB,EAAcrgC,EAAU,yBACT,OAAOqgC,GAAtB,aACG9D,GACCjtB,EACAtP,EACAqgC,EACA5D,GAEDv8B,EAAQ,MAAQoP,EAAe,eACnB,OAAOtP,EAAU,0BAAhC,YACiB,OAAOE,EAAQ,yBAA9B,YACgB,OAAOA,EAAQ,2BAA9B,YACgB,OAAOA,EAAQ,oBAA9B,aACAmgC,EAAcngC,EAAQ,MACT,OAAOA,EAAQ,oBAA9B,YACEA,EAAQ,mBAAkB,EACb,OAAOA,EAAQ,2BAA9B,YACEA,EAAQ,0BAAyB,EACnCmgC,IAAgBngC,EAAQ,OACtBw8B,GAAsB,oBAAoBx8B,EAASA,EAAQ,MAAO,IAAI,EACxE2wB,GAAmBvhB,EAAgBmtB,EAAWv8B,EAAS4R,CAAW,EAClE6e,GAA2C,EAC1CzwB,EAAQ,MAAQoP,EAAe,eACnB,OAAOpP,EAAQ,mBAA9B,aACGoP,EAAe,OAAS,SAC3BmtB,EAAY,EAChB,SAAsBhY,IAAT,KAAkB,CAC3BvkB,EAAUoP,EAAe,UACzB,IAAIgxB,EAAqBhxB,EAAe,cACtCstB,EAAWI,GAA2Bh9B,EAAWsgC,CAAkB,EACrEpgC,EAAQ,MAAQ08B,EAChB,IAAI2D,EAAargC,EAAQ,QACvBsgC,EAAuBxgC,EAAU,YACnCqgC,EAAcnc,GACD,OAAOsc,GAApB,UACWA,IAAT,OACCH,EAAc1W,GAAY6W,CAAoB,GACjD,IAAIhE,EAA2Bx8B,EAAU,yBACzCwgC,EACiB,OAAOhE,GAAtB,YACe,OAAOt8B,EAAQ,yBAA9B,WACFogC,EAAqBhxB,EAAe,eAAiBgxB,EACrDE,GACkB,OAAOtgC,EAAQ,kCAA9B,YACgB,OAAOA,EAAQ,2BAA9B,aACAogC,GAAsBC,IAAeF,IACrCtD,GACEztB,EACApP,EACAu8B,EACA4D,CACV,EACIzQ,GAAiB,GACjB,IAAI0I,EAAWhpB,EAAe,cAC9BpP,EAAQ,MAAQo4B,EAChBzH,GAAmBvhB,EAAgBmtB,EAAWv8B,EAAS4R,CAAW,EAClE6e,GAA2C,EAC3C4P,EAAajxB,EAAe,cAC5BgxB,GAAsBhI,IAAaiI,GAAc3Q,IAC7B,OAAO4M,GAAtB,aACED,GACCjtB,EACAtP,EACAw8B,EACAC,GAED8D,EAAajxB,EAAe,gBAC9BstB,EACChN,IACA+M,GACErtB,EACAtP,EACA48B,EACAH,EACAnE,EACAiI,EACAF,KAECG,GACiB,OAAOtgC,EAAQ,2BAA9B,YACgB,OAAOA,EAAQ,oBAA9B,aACc,OAAOA,EAAQ,oBAA9B,YACCA,EAAQ,mBAAkB,EACb,OAAOA,EAAQ,2BAA9B,YACEA,EAAQ,0BAAyB,GACtB,OAAOA,EAAQ,mBAA9B,aACGoP,EAAe,OAAS,WACX,OAAOpP,EAAQ,mBAA9B,aACEoP,EAAe,OAAS,SAC1BA,EAAe,cAAgBmtB,EAC/BntB,EAAe,cAAgBixB,GACnCrgC,EAAQ,MAAQu8B,EAChBv8B,EAAQ,MAAQqgC,EAChBrgC,EAAQ,QAAUmgC,EAClB5D,EAAYG,IACG,OAAO18B,EAAQ,mBAA9B,aACEoP,EAAe,OAAS,SAC1BmtB,EAAY,GACrB,KAAS,CACLv8B,EAAUoP,EAAe,UACzBwgB,GAAiBrL,EAASnV,CAAc,EACxC+wB,EAAc/wB,EAAe,cAC7BkxB,EAAuBxD,GAA2Bh9B,EAAWqgC,CAAW,EACxEngC,EAAQ,MAAQsgC,EAChBhE,EAA2BltB,EAAe,aAC1CgpB,EAAWp4B,EAAQ,QACnBqgC,EAAavgC,EAAU,YACvB48B,EAAW1Y,GACE,OAAOqc,GAApB,UACWA,IAAT,OACC3D,EAAWjT,GAAY4W,CAAU,GACpCD,EAAqBtgC,EAAU,0BAC9BugC,EACgB,OAAOD,GAAtB,YACe,OAAOpgC,EAAQ,yBAA9B,aACgB,OAAOA,EAAQ,kCAA9B,YACgB,OAAOA,EAAQ,2BAA9B,aACAmgC,IAAgB7D,GAA4BlE,IAAasE,IACzDG,GACEztB,EACApP,EACAu8B,EACAG,CACV,EACIhN,GAAiB,GACjB0I,EAAWhpB,EAAe,cAC1BpP,EAAQ,MAAQo4B,EAChBzH,GAAmBvhB,EAAgBmtB,EAAWv8B,EAAS4R,CAAW,EAClE6e,GAA2C,EAC3C,IAAIU,EAAW/hB,EAAe,cAC9B+wB,IAAgB7D,GAChBlE,IAAajH,GACbzB,IACUnL,IAAT,MACUA,EAAQ,eAAjB,MACA+E,GAAsB/E,EAAQ,YAAY,GACxB,OAAO6b,GAAtB,aACE/D,GACCjtB,EACAtP,EACAsgC,EACA7D,GAEDpL,EAAW/hB,EAAe,gBAC5BkxB,EACC5Q,IACA+M,GACErtB,EACAtP,EACAwgC,EACA/D,EACAnE,EACAjH,EACAuL,IAEQnY,IAAT,MACUA,EAAQ,eAAjB,MACA+E,GAAsB/E,EAAQ,YAAY,IACzC8b,GACiB,OAAOrgC,EAAQ,4BAA9B,YACgB,OAAOA,EAAQ,qBAA9B,aACc,OAAOA,EAAQ,qBAA9B,YACCA,EAAQ,oBAAoBu8B,EAAWpL,EAAUuL,CAAQ,EAC5C,OAAO18B,EAAQ,4BAA9B,YACEA,EAAQ,2BACNu8B,EACApL,EACAuL,CAClB,GAC2B,OAAO18B,EAAQ,oBAA9B,aACGoP,EAAe,OAAS,GACZ,OAAOpP,EAAQ,yBAA9B,aACGoP,EAAe,OAAS,QACX,OAAOpP,EAAQ,oBAA9B,YACEmgC,IAAgB5b,EAAQ,eACvB6T,IAAa7T,EAAQ,gBACtBnV,EAAe,OAAS,GACZ,OAAOpP,EAAQ,yBAA9B,YACGmgC,IAAgB5b,EAAQ,eACvB6T,IAAa7T,EAAQ,gBACtBnV,EAAe,OAAS,MAC1BA,EAAe,cAAgBmtB,EAC/BntB,EAAe,cAAgB+hB,GACnCnxB,EAAQ,MAAQu8B,EAChBv8B,EAAQ,MAAQmxB,EAChBnxB,EAAQ,QAAU08B,EAClBH,EAAY+D,IACG,OAAOtgC,EAAQ,oBAA9B,YACEmgC,IAAgB5b,EAAQ,eACvB6T,IAAa7T,EAAQ,gBACtBnV,EAAe,OAAS,GACZ,OAAOpP,EAAQ,yBAA9B,YACGmgC,IAAgB5b,EAAQ,eACvB6T,IAAa7T,EAAQ,gBACtBnV,EAAe,OAAS,MAC1BmtB,EAAY,GACrB,CACE,OAAAv8B,EAAUu8B,EACVyD,GAAQzb,EAASnV,CAAc,EAC/BmtB,GAAmBntB,EAAe,MAAQ,OAA9B,EACZpP,GAAWu8B,GACLv8B,EAAUoP,EAAe,UAC1BtP,EACCy8B,GAA4B,OAAOz8B,EAAU,0BAAhC,WACT,KACAE,EAAQ,OAAM,EACnBoP,EAAe,OAAS,EAChBmV,IAAT,MAAoBgY,GACdntB,EAAe,MAAQogB,GACvBpgB,EACAmV,EAAQ,MACR,KACA3S,GAEDxC,EAAe,MAAQogB,GACtBpgB,EACA,KACAtP,EACA8R,CACZ,GACU8sB,GAAkBna,EAASnV,EAAgBtP,EAAW8R,CAAW,EACpExC,EAAe,cAAgBpP,EAAQ,MACvCukB,EAAUnV,EAAe,OACzBmV,EAAUua,GACTva,EACAnV,EACAwC,CACR,EACS2S,CACT,CACA,SAASgc,GACPhc,EACAnV,EACAuvB,EACA/sB,EACA,CACA,OAAAoW,GAAmB,EACnB5Y,EAAe,OAAS,IACxBsvB,GAAkBna,EAASnV,EAAgBuvB,EAAc/sB,CAAW,EAC7DxC,EAAe,KACxB,CACA,IAAIoxB,GAAmB,CACrB,WAAY,KACZ,YAAa,KACb,UAAW,EACX,gBAAiB,MAEnB,SAASC,GAA4B7uB,EAAa,CAChD,MAAO,CAAE,UAAWA,EAAa,UAAWga,GAAiB,CAAE,CACjE,CACA,SAAS8U,GACPnc,EACAoc,EACA/uB,EACA,CACA,OAAA2S,EAAmBA,IAAT,KAAmBA,EAAQ,WAAa,CAAC3S,EAAc,EACjE+uB,IAAwBpc,GAAWqc,IAC5Brc,CACT,CACA,SAASsc,GAAwBtc,EAASnV,EAAgBwC,EAAa,CACrE,IAAI2qB,EAAYntB,EAAe,aAC7B0xB,EAAe,GACfjB,GAAoBzwB,EAAe,MAAQ,OAA9B,EACbsY,EASF,IARCA,EAAkBmY,KAChBnY,EACUnD,IAAT,MAA6BA,EAAQ,gBAAjB,KAChB,IACO6N,GAAoB,QAAU,KAArC,GACR1K,IAAqBoZ,EAAe,GAAM1xB,EAAe,OAAS,MAClEsY,GAAyBtY,EAAe,MAAQ,MAA9B,EAClBA,EAAe,OAAS,IACXmV,IAAT,KAAkB,CACpB,GAAIxM,GAAa,CA0Bf,GAzBA+oB,EACI5O,GAA+B9iB,CAAc,EAC7CmjB,GAA0C,GAC7ChO,EAAUsC,KACLtC,EAAUub,GACVvb,EACAwC,IAEDxC,EAAmBA,IAAT,MAA4BA,EAAQ,OAAhB,IAAuBA,EAAU,KACvDA,IAAT,OACInV,EAAe,cAAgB,CAC/B,WAAYmV,EACZ,YACWwB,KAAT,KACI,CAAE,GAAIC,GAAe,SAAUC,EAAmB,EAClD,KACN,UAAW,UACX,gBAAiB,MAElBrU,EAAcqT,GAAkCV,CAAO,EACvD3S,EAAY,OAASxC,EACrBA,EAAe,MAAQwC,EACvBgV,GAAuBxX,EACvByX,GAAyB,OAC3BtC,EAAU,KACFA,IAAT,KAAkB,MAAM0C,GAAyB7X,CAAc,EACnE,OAAAyjB,GAA2BtO,CAAO,EAC7BnV,EAAe,MAAQ,GACvBA,EAAe,MAAQ,UACrB,IACb,CACI,IAAI2xB,EAAsBxE,EAAU,SAEpC,OADAA,EAAYA,EAAU,SAClBuE,GAEAvO,GAA0C,EACzCuO,EAAe1xB,EAAe,KAC9B2xB,EAAsBrB,GACrB,CAAE,KAAM,SAAU,SAAUqB,CAAmB,EAC/CD,GAEDvE,EAAY1X,GACX0X,EACAuE,EACAlvB,EACA,MAEDmvB,EAAoB,OAAS3xB,EAC7BmtB,EAAU,OAASntB,EACnB2xB,EAAoB,QAAUxE,EAC9BntB,EAAe,MAAQ2xB,EACvBxE,EAAYntB,EAAe,MAC3BmtB,EAAU,cAAgBkE,GAA4B7uB,CAAW,EACjE2qB,EAAU,WAAamE,GACtBnc,EACAmD,EACA9V,GAEDxC,EAAe,cAAgBoxB,GAChClB,GAA0B,KAAM/C,CAAS,IAE7CrK,GAA+B9iB,CAAc,EACtC4xB,GAA6B5xB,EAAgB2xB,CAAmB,EAC3E,CACE,IAAInJ,EAAYrT,EAAQ,cACxB,GACWqT,IAAT,OACEmJ,EAAsBnJ,EAAU,WAAsBmJ,IAAT,MAC/C,CACA,GAAIlB,EACFzwB,EAAe,MAAQ,KAClB8iB,GAA+B9iB,CAAc,EAC7CA,EAAe,OAAS,KACxBA,EAAiB6xB,GAChB1c,EACAnV,EACAwC,CACZ,GACmBxC,EAAe,gBAAxB,MACGmjB,GAA0C,EAC1CnjB,EAAe,MAAQmV,EAAQ,MAC/BnV,EAAe,OAAS,IACxBA,EAAiB,OACjBmjB,GAA0C,EAC1CwO,EAAsBxE,EAAU,SAChCuE,EAAe1xB,EAAe,KAC9BmtB,EAAYmD,GACX,CAAE,KAAM,UAAW,SAAUnD,EAAU,QAAQ,EAC/CuE,GAEDC,EAAsBlc,GACrBkc,EACAD,EACAlvB,EACA,MAEDmvB,EAAoB,OAAS,EAC7BxE,EAAU,OAASntB,EACnB2xB,EAAoB,OAAS3xB,EAC7BmtB,EAAU,QAAUwE,EACpB3xB,EAAe,MAAQmtB,EACxB/M,GACEpgB,EACAmV,EAAQ,MACR,KACA3S,GAED2qB,EAAYntB,EAAe,MAC3BmtB,EAAU,cACTkE,GAA4B7uB,CAAW,EACxC2qB,EAAU,WAAamE,GACtBnc,EACAmD,EACA9V,GAEDxC,EAAe,cAAgBoxB,GAC/BpxB,EAAiBkwB,GAA0B,KAAM/C,CAAS,WAEhErK,GAA+B9iB,CAAc,EAC9CyjB,GAA2BkO,CAAmB,EAC9C,CAIA,GAHArZ,EACEqZ,EAAoB,aACpBA,EAAoB,YAAY,QAC9BrZ,EAAiB,IAAIwZ,EAASxZ,EAAgB,KAClDA,EAAkBwZ,EAClB3E,EAAY,MAAMhzB,EAAuB,GAAG,CAAC,EAC7CgzB,EAAU,MAAQ,GAClBA,EAAU,OAAS7U,EACnBR,GAAoB,CAAE,MAAOqV,EAAW,OAAQ,KAAM,MAAO,KAAM,EACnEntB,EAAiB6xB,GACf1c,EACAnV,EACAwC,EAER,SACOwiB,IACCjL,GAA8B5E,EAASnV,EAAgBwC,EAAa,EAAE,EACvE8V,GAAyB9V,EAAc2S,EAAQ,cAA7B,EACnB6P,IAAoB1M,EACpB,CAEA,GADAA,EAAkB8D,GAEP9D,IAAT,OACE6U,EAAY/oB,GAA0BkU,EAAiB9V,CAAW,EAC9D2qB,IAAN,GAAmBA,IAAc3E,EAAU,WAE3C,MACIA,EAAU,UAAY2E,EACxB5Y,GAA+BY,EAASgY,CAAS,EACjDtF,GAAsBvP,EAAiBnD,EAASgY,CAAS,EACzDkC,GAEJ7L,GAA0BmO,CAAmB,GAC3C3C,GAA+B,EACjChvB,EAAiB6xB,GACf1c,EACAnV,EACAwC,EAER,MACMghB,GAA0BmO,CAAmB,GACvC3xB,EAAe,OAAS,IACzBA,EAAe,MAAQmV,EAAQ,MAC/BnV,EAAiB,OAChBmV,EAAUqT,EAAU,YACrB/Q,GAAyBkB,GACxBgZ,EAAoB,aAErBna,GAAuBxX,EACvB2I,GAAc,GACd+O,GAAkB,KAClBC,GAAyB,GACjBxC,IAAT,MACEmC,GAA4BtX,EAAgBmV,CAAO,EACpDnV,EAAiB4xB,GAChB5xB,EACAmtB,EAAU,UAEXntB,EAAe,OAAS,MAC/B,OAAOA,CACX,CACE,OAAI0xB,GAEAvO,GAA0C,EACzCwO,EAAsBxE,EAAU,SAChCuE,EAAe1xB,EAAe,KAC9BwoB,EAAYrT,EAAQ,MACpB2c,EAAStJ,EAAU,QACnB2E,EAAYjY,GAAqBsT,EAAW,CAC3C,KAAM,SACN,SAAU2E,EAAU,QAC5B,CAAO,EACAA,EAAU,aAAe3E,EAAU,aAAe,SAC1CsJ,IAAT,KACKH,EAAsBzc,GACrB4c,EACAH,IAEAA,EAAsBlc,GACtBkc,EACAD,EACAlvB,EACA,MAEDmvB,EAAoB,OAAS,GACjCA,EAAoB,OAAS3xB,EAC7BmtB,EAAU,OAASntB,EACnBmtB,EAAU,QAAUwE,EACpB3xB,EAAe,MAAQmtB,EACxB+C,GAA0B,KAAM/C,CAAS,EACxCA,EAAYntB,EAAe,MAC3B2xB,EAAsBxc,EAAQ,MAAM,cAC5Bwc,IAAT,KACKA,EAAsBN,GAA4B7uB,CAAW,GAC5DkvB,EAAeC,EAAoB,UAC5BD,IAAT,MACMlJ,EAAYzN,GAAa,cAC1B2W,EACCA,EAAa,SAAWlJ,EACpB,CAAE,OAAQA,EAAW,KAAMA,CAAS,EACpCkJ,GACLA,EAAelV,GAAiB,EACpCmV,EAAsB,CACrB,UAAWA,EAAoB,UAAYnvB,EAC3C,UAAWkvB,CACvB,GACOvE,EAAU,cAAgBwE,EAC1BxE,EAAU,WAAamE,GACtBnc,EACAmD,EACA9V,GAEDxC,EAAe,cAAgBoxB,GAChClB,GAA0B/a,EAAQ,MAAOgY,CAAS,IAEtDrK,GAA+B9iB,CAAc,EAC7CwC,EAAc2S,EAAQ,MACtBA,EAAU3S,EAAY,QACtBA,EAAc0S,GAAqB1S,EAAa,CAC9C,KAAM,UACN,SAAU2qB,EAAU,QACxB,CAAG,EACD3qB,EAAY,OAASxC,EACrBwC,EAAY,QAAU,KACb2S,IAAT,OACImD,EAAkBtY,EAAe,UAC1BsY,IAAT,MACMtY,EAAe,UAAY,CAACmV,CAAO,EAAKnV,EAAe,OAAS,IAClEsY,EAAgB,KAAKnD,CAAO,GAClCnV,EAAe,MAAQwC,EACvBxC,EAAe,cAAgB,KACxBwC,EACT,CACA,SAASovB,GAA6B5xB,EAAgB+xB,EAAiB,CACrE,OAAAA,EAAkBzB,GAChB,CAAE,KAAM,UAAW,SAAUyB,CAAe,EAC5C/xB,EAAe,MAEjB+xB,EAAgB,OAAS/xB,EACjBA,EAAe,MAAQ+xB,CACjC,CACA,SAASzB,GAAkC0B,EAAgBjd,EAAM,CAC/D,OAAAid,EAAiBhd,GAAqB,GAAIgd,EAAgB,KAAMjd,CAAI,EACpEid,EAAe,MAAQ,EAChBA,CACT,CACA,SAASH,GACP1c,EACAnV,EACAwC,EACA,CACA,OAAA4d,GAAqBpgB,EAAgBmV,EAAQ,MAAO,KAAM3S,CAAW,EACrE2S,EAAUyc,GACR5xB,EACAA,EAAe,aAAa,UAE9BmV,EAAQ,OAAS,EACjBnV,EAAe,cAAgB,KACxBmV,CACT,CACA,SAAS8c,GAA4Bj2B,EAAOwG,EAAagX,EAAiB,CACxExd,EAAM,OAASwG,EACf,IAAIhG,EAAYR,EAAM,UACbQ,IAAT,OAAuBA,EAAU,OAASgG,GAC1C+W,GAAgCvd,EAAM,OAAQwG,EAAagX,CAAe,CAC5E,CACA,SAAS0Y,GACPlyB,EACAmyB,EACAC,EACAC,EACAC,EACA9b,EACA,CACA,IAAI+b,EAAcvyB,EAAe,cACxBuyB,IAAT,KACKvyB,EAAe,cAAgB,CAC9B,YAAamyB,EACb,UAAW,KACX,mBAAoB,EACpB,KAAME,EACN,KAAMD,EACN,SAAUE,EACV,cAAe9b,IAEf+b,EAAY,YAAcJ,EAC3BI,EAAY,UAAY,KACxBA,EAAY,mBAAqB,EACjCA,EAAY,KAAOF,EACnBE,EAAY,KAAOH,EACnBG,EAAY,SAAWD,EACvBC,EAAY,cAAgB/b,EACnC,CACA,SAASgc,GAA4Brd,EAASnV,EAAgBwC,EAAa,CACzE,IAAI2qB,EAAYntB,EAAe,aAC7ByyB,EAActF,EAAU,YACxBmF,EAAWnF,EAAU,KACvBA,EAAYA,EAAU,SACtB,IAAIuF,EAAkB1P,GAAoB,QACxC2P,GAA6BD,EAAkB,KAAzB,EAQxB,GAPAC,GACMD,EAAmBA,EAAkB,EAAK,EAC3C1yB,EAAe,OAAS,KACxB0yB,GAAmB,EACxBr8B,EAAK2sB,GAAqB0P,CAAe,EACzCpD,GAAkBna,EAASnV,EAAgBmtB,EAAW3qB,CAAW,EACjE2qB,EAAYxkB,GAAc6N,GAAgB,EACtC,CAACmc,GAAgCxd,IAAT,OAA2BA,EAAQ,MAAQ,OAAvB,EAC9C3e,EAAG,IAAK2e,EAAUnV,EAAe,MAAgBmV,IAAT,MAAoB,CAC1D,GAAWA,EAAQ,MAAf,GACOA,EAAQ,gBAAjB,MACE8c,GAA4B9c,EAAS3S,EAAaxC,CAAc,UACpDmV,EAAQ,MAAf,GACP8c,GAA4B9c,EAAS3S,EAAaxC,CAAc,UAChDmV,EAAQ,QAAjB,KAAwB,CAC/BA,EAAQ,MAAM,OAASA,EACvBA,EAAUA,EAAQ,MAClB,QACR,CACM,GAAIA,IAAYnV,EAAgB,MAAMxJ,EACtC,KAAgB2e,EAAQ,UAAjB,MAA4B,CACjC,GAAaA,EAAQ,SAAjB,MAA2BA,EAAQ,SAAWnV,EAChD,MAAMxJ,EACR2e,EAAUA,EAAQ,MAC1B,CACMA,EAAQ,QAAQ,OAASA,EAAQ,OACjCA,EAAUA,EAAQ,OACxB,CACE,OAAQsd,EAAW,CACjB,IAAK,WAEH,IADAjwB,EAAcxC,EAAe,MACxByyB,EAAc,KAAejwB,IAAT,MACtB2S,EAAU3S,EAAY,UACZ2S,IAAT,MACWkO,GAAmBlO,CAAO,IAAnC,OACCsd,EAAcjwB,GAChBA,EAAcA,EAAY,QAC/BA,EAAciwB,EACLjwB,IAAT,MACMiwB,EAAczyB,EAAe,MAASA,EAAe,MAAQ,OAC7DyyB,EAAcjwB,EAAY,QAAWA,EAAY,QAAU,MACjE0vB,GACElyB,EACA,GACAyyB,EACAjwB,EACA8vB,EACAnF,GAEF,MACF,IAAK,YACL,IAAK,4BAGH,IAFA3qB,EAAc,KACdiwB,EAAczyB,EAAe,MACxBA,EAAe,MAAQ,KAAeyyB,IAAT,MAAwB,CAExD,GADAtd,EAAUsd,EAAY,UACTtd,IAAT,MAA6BkO,GAAmBlO,CAAO,IAAnC,KAAsC,CAC5DnV,EAAe,MAAQyyB,EACvB,KACV,CACQtd,EAAUsd,EAAY,QACtBA,EAAY,QAAUjwB,EACtBA,EAAciwB,EACdA,EAActd,CACtB,CACM+c,GACElyB,EACA,GACAwC,EACA,KACA8vB,EACAnF,GAEF,MACF,IAAK,WACH+E,GACElyB,EACA,GACA,KACA,KACA,OACAmtB,GAEF,MACF,QACEntB,EAAe,cAAgB,IACrC,CACE,OAAOA,EAAe,KACxB,CACA,SAAS0vB,GAA6Bva,EAASnV,EAAgBwC,EAAa,CAG1E,GAFS2S,IAAT,OAAqBnV,EAAe,aAAemV,EAAQ,cAC3D+M,IAAkCliB,EAAe,OACtCwC,EAAcxC,EAAe,cAApC,EACF,GAAamV,IAAT,MACF,GACG4E,GACC5E,EACAnV,EACAwC,EACA,KAEKA,EAAcxC,EAAe,cAApC,EAEA,OAAO,SACJ,QAAO,KAChB,GAAamV,IAAT,MAAoBnV,EAAe,QAAUmV,EAAQ,MACvD,MAAM,MAAMhb,EAAuB,GAAG,CAAC,EACzC,GAAa6F,EAAe,QAAxB,KAA+B,CAIjC,IAHAmV,EAAUnV,EAAe,MACzBwC,EAAc0S,GAAqBC,EAASA,EAAQ,YAAY,EAChEnV,EAAe,MAAQwC,EAClBA,EAAY,OAASxC,EAAyBmV,EAAQ,UAAjB,MACvCA,EAAUA,EAAQ,QAChB3S,EAAcA,EAAY,QACzB0S,GAAqBC,EAASA,EAAQ,YAAY,EACnD3S,EAAY,OAASxC,EAC1BwC,EAAY,QAAU,IAC1B,CACE,OAAOxC,EAAe,KACxB,CACA,SAAS6vB,GAA8B1a,EAAS3S,EAAa,CAC3D,OAAW2S,EAAQ,MAAQ3S,KAAvB,EAA4C,IAChD2S,EAAUA,EAAQ,aACX,CAAA,EAASA,IAAT,MAAoB+E,GAAsB/E,CAAO,GAC1D,CACA,SAASyd,GACPzd,EACAnV,EACAwC,EACA,CACA,OAAQxC,EAAe,IAAG,CACxB,IAAK,GACHlC,GAAkBkC,EAAgBA,EAAe,UAAU,aAAa,EACxEmZ,GAAanZ,EAAgB+a,GAAc5F,EAAQ,cAAc,KAAK,EACtEyD,GAAmB,EACnB,MACF,IAAK,IACL,IAAK,GACHza,GAAgB6B,CAAc,EAC9B,MACF,IAAK,GACHlC,GAAkBkC,EAAgBA,EAAe,UAAU,aAAa,EACxE,MACF,IAAK,IACHmZ,GACEnZ,EACAA,EAAe,KACfA,EAAe,cAAc,OAE/B,MACF,IAAK,IACH,GAAaA,EAAe,gBAAxB,KACF,OACGA,EAAe,OAAS,IACzBijB,GAAsCjjB,CAAc,EACpD,KAEJ,MACF,IAAK,IACH,IAAI6yB,EAAY7yB,EAAe,cAC/B,GAAa6yB,IAAT,KACF,OAAaA,EAAU,aAAnB,MAEA/P,GAA+B9iB,CAAc,EAC5CA,EAAe,OAAS,IACzB,OAEOwC,EAAcxC,EAAe,MAAM,cAA1C,EACKyxB,GAAwBtc,EAASnV,EAAgBwC,CAAW,GACrEsgB,GAA+B9iB,CAAc,EAC7CmV,EAAUua,GACRva,EACAnV,EACAwC,GAEc2S,IAAT,KAAmBA,EAAQ,QAAU,MAE9C2N,GAA+B9iB,CAAc,EAC7C,MACF,IAAK,IACH,IAAI8yB,GAA0B3d,EAAQ,MAAQ,OAAvB,EAUvB,GATA0d,GAAmBrwB,EAAcxC,EAAe,cAApC,EACZ6yB,IACG9Y,GACC5E,EACAnV,EACAwC,EACA,IAEDqwB,GAAmBrwB,EAAcxC,EAAe,cAApC,GACX8yB,EAAkB,CACpB,GAAID,EACF,OAAOL,GACLrd,EACAnV,EACAwC,GAEJxC,EAAe,OAAS,GAChC,CAOM,GANA8yB,EAAmB9yB,EAAe,cACzB8yB,IAAT,OACIA,EAAiB,UAAY,KAC9BA,EAAiB,KAAO,KACxBA,EAAiB,WAAa,MACjCz8B,EAAK2sB,GAAqBA,GAAoB,OAAO,EACjD6P,EAAW,MACV,OAAO,KACd,IAAK,IACH,OACG7yB,EAAe,MAAQ,EACxBgwB,GACE7a,EACAnV,EACAwC,EACAxC,EAAe,YACzB,EAEI,IAAK,IACHmZ,GAAanZ,EAAgB+a,GAAc5F,EAAQ,cAAc,KAAK,CAC5E,CACE,OAAOua,GAA6Bva,EAASnV,EAAgBwC,CAAW,CAC1E,CACA,SAASuwB,GAAU5d,EAASnV,EAAgBwC,EAAa,CACvD,GAAa2S,IAAT,KACF,GAAIA,EAAQ,gBAAkBnV,EAAe,aAC3CglB,GAAmB,OAChB,CACH,GACE,CAAC6K,GAA8B1a,EAAS3S,CAAW,IAC5CxC,EAAe,MAAQ,OAA9B,EAEA,OACGglB,GAAmB,GACpB4N,GACEzd,EACAnV,EACAwC,CACZ,EAEMwiB,IAA0B7P,EAAQ,MAAQ,UAAvB,CACzB,MAEK6P,GAAmB,GAClBrc,KACS3I,EAAe,MAAQ,WAA9B,GACAgX,GAAWhX,EAAgBwW,GAAexW,EAAe,KAAK,EAEpE,OADAA,EAAe,MAAQ,EACfA,EAAe,IAAG,CACxB,IAAK,IACHxJ,EAAG,CACD,IAAI7F,EAAQqP,EAAe,aAG3B,GAFAmV,EAAUkI,GAAYrd,EAAe,WAAW,EAChDA,EAAe,KAAOmV,EACH,OAAOA,GAAtB,WACFF,GAAgBE,CAAO,GACjBxkB,EAAQ+8B,GAA2BvY,EAASxkB,CAAK,EAClDqP,EAAe,IAAM,EACrBA,EAAiB8wB,GAChB,KACA9wB,EACAmV,EACAxkB,EACA6R,CAChB,IACgBxC,EAAe,IAAM,EACtBA,EAAiB+vB,GAChB,KACA/vB,EACAmV,EACAxkB,EACA6R,CAChB,OACa,CACH,GAAmC2S,GAAT,KAAkB,CAC1C,IAAI6d,EAAW7d,EAAQ,SACvB,GAAI6d,IAAajjC,GAAwB,CACvCiQ,EAAe,IAAM,GACrBA,EAAiBwvB,GACf,KACAxvB,EACAmV,EACAxkB,EACA6R,GAEF,MAAMhM,CACpB,SAAuBw8B,IAAa/iC,EAAiB,CACvC+P,EAAe,IAAM,GACrBA,EAAiB2vB,GACf,KACA3vB,EACAmV,EACAxkB,EACA6R,GAEF,MAAMhM,CACpB,CACA,CACU,MAAAwJ,EAAiB7C,GAAyBgY,CAAO,GAAKA,EAChD,MAAMhb,EAAuB,IAAK6F,EAAgB,EAAE,CAAC,CACrE,CACA,CACM,OAAOA,EACT,IAAK,GACH,OAAO+vB,GACL5a,EACAnV,EACAA,EAAe,KACfA,EAAe,aACfwC,GAEJ,IAAK,GACH,OACG7R,EAAQqP,EAAe,KACvBgzB,EAAWtF,GACV/8B,EACAqP,EAAe,cAEjB8wB,GACE3b,EACAnV,EACArP,EACAqiC,EACAxwB,CACV,EAEI,IAAK,GACHhM,EAAG,CAKD,GAJAsH,GACEkC,EACAA,EAAe,UAAU,eAEdmV,IAAT,KAAkB,MAAM,MAAMhb,EAAuB,GAAG,CAAC,EAC7DxJ,EAAQqP,EAAe,aACvB,IAAIwoB,EAAYxoB,EAAe,cAC/BgzB,EAAWxK,EAAU,QACrBhI,GAAiBrL,EAASnV,CAAc,EACxCuhB,GAAmBvhB,EAAgBrP,EAAO,KAAM6R,CAAW,EAC3D,IAAIomB,EAAY5oB,EAAe,cAY/B,GAXArP,EAAQi4B,EAAU,MAClBzP,GAAanZ,EAAgB+a,GAAcpqB,CAAK,EAChDA,IAAU63B,EAAU,OAClB/O,GACEzZ,EACA,CAAC+a,EAAY,EACbvY,EACA,IAEJ6e,GAA2C,EAC3C1wB,EAAQi4B,EAAU,QACdJ,EAAU,aACZ,GACIA,EAAY,CACZ,QAAS73B,EACT,aAAc,GACd,MAAOi4B,EAAU,OAElB5oB,EAAe,YAAY,UAAYwoB,EACvCxoB,EAAe,cAAgBwoB,EAChCxoB,EAAe,MAAQ,IACvB,CACAA,EAAiBmxB,GACfhc,EACAnV,EACArP,EACA6R,GAEF,MAAMhM,CAClB,SAAqB7F,IAAUqiC,EAAU,CAC7BA,EAAW9c,GACT,MAAM/b,EAAuB,GAAG,CAAC,EACjC6F,GAEF8X,GAAoBkb,CAAQ,EAC5BhzB,EAAiBmxB,GACfhc,EACAnV,EACArP,EACA6R,GAEF,MAAMhM,CAClB,KAAiB,CAEL,OADA2e,EAAUnV,EAAe,UAAU,cAC3BmV,EAAQ,SAAQ,CACtB,IAAK,GACHA,EAAUA,EAAQ,KAClB,MACF,QACEA,EACaA,EAAQ,WAAnB,OACIA,EAAQ,cAAc,KACtBA,CACtB,CAYY,IAXAsC,GAAyBkB,GAAkBxD,EAAQ,UAAU,EAC7DqC,GAAuBxX,EACvB2I,GAAc,GACd+O,GAAkB,KAClBC,GAAyB,GACzBnV,EAAc6d,GACZrgB,EACA,KACArP,EACA6R,GAEGxC,EAAe,MAAQwC,EAAaA,GACtCA,EAAY,MAASA,EAAY,MAAQ,GAAM,KAC7CA,EAAcA,EAAY,OAC3C,KACa,CAEH,GADAoW,GAAmB,EACfjoB,IAAUqiC,EAAU,CACtBhzB,EAAiB0vB,GACfva,EACAnV,EACAwC,GAEF,MAAMhM,CAClB,CACU84B,GAAkBna,EAASnV,EAAgBrP,EAAO6R,CAAW,CACvE,CACQxC,EAAiBA,EAAe,KACxC,CACM,OAAOA,EACT,IAAK,IACH,OACE4wB,GAAQzb,EAASnV,CAAc,EACtBmV,IAAT,MACK3S,EAAcywB,GACbjzB,EAAe,KACf,KACAA,EAAe,aACf,OAECA,EAAe,cAAgBwC,EAChCmG,KACEnG,EAAcxC,EAAe,KAC9BmV,EAAUnV,EAAe,aACzBrP,EAAQuiC,GACPt1B,GAAwB,OACxC,EAAgB,cAAc4E,CAAW,EAC1B7R,EAAMoU,EAAmB,EAAI/E,EAC7BrP,EAAMqU,EAAgB,EAAImQ,EAC3Bge,GAAqBxiC,EAAO6R,EAAa2S,CAAO,EAChDjP,GAAoBvV,CAAK,EACxBqP,EAAe,UAAYrP,GAC7BqP,EAAe,cAAgBizB,GAC9BjzB,EAAe,KACfmV,EAAQ,cACRnV,EAAe,aACfmV,EAAQ,aACtB,EACQ,KAEJ,IAAK,IACH,OACEhX,GAAgB6B,CAAc,EACrBmV,IAAT,MACExM,KACEhY,EAAQqP,EAAe,UACvBozB,GACEpzB,EAAe,KACfA,EAAe,aACfpC,GAAwB,SAE3B4Z,GAAuBxX,EACvB2X,GAAyB,GACzBqb,EAAWvb,GACZgB,GAAiBzY,EAAe,IAAI,GAC9B0Y,GAA8Csa,EAC/Cvb,GAAyBkB,GAAkBhoB,EAAM,UAAU,GAC3D8mB,GAAyBub,GAChC1D,GACEna,EACAnV,EACAA,EAAe,aAAa,SAC5BwC,GAEFouB,GAAQzb,EAASnV,CAAc,EACtBmV,IAAT,OAAqBnV,EAAe,OAAS,SAC7CA,EAAe,MAEnB,IAAK,GACH,OAAamV,IAAT,MAAoBxM,MACjBqqB,EAAWriC,EAAQ8mB,MACrB9mB,EAAQ0iC,GACP1iC,EACAqP,EAAe,KACfA,EAAe,aACf2X,IAEShnB,IAAT,MACMqP,EAAe,UAAYrP,EAC5B6mB,GAAuBxX,EACvByX,GAAyBkB,GAAkBhoB,EAAM,UAAU,EAC3DgnB,GAAyB,GACzBqb,EAAW,IACXA,EAAW,IACpBA,GAAYnb,GAAyB7X,CAAc,GAErD7B,GAAgB6B,CAAc,EAC9BgzB,EAAWhzB,EAAe,KAC1BwoB,EAAYxoB,EAAe,aAC3B4oB,EAAqBzT,IAAT,KAAmBA,EAAQ,cAAgB,KACvDxkB,EAAQ63B,EAAU,SAClBjQ,GAAqBya,EAAUxK,CAAS,EACnC73B,EAAQ,KACAi4B,IAAT,MACArQ,GAAqBya,EAAUpK,CAAS,IACvC5oB,EAAe,OAAS,IACpBA,EAAe,gBAAxB,OACIgzB,EAAWzO,GACXpP,EACAnV,EACAmlB,GACA,KACA,KACA3iB,GAEDlE,GAAsB,cAAgB00B,GACzCpC,GAAQzb,EAASnV,CAAc,EAC/BsvB,GAAkBna,EAASnV,EAAgBrP,EAAO6R,CAAW,EACtDxC,EAAe,MACxB,IAAK,GACH,OAAamV,IAAT,MAAoBxM,MACjBwM,EAAU3S,EAAciV,MAC1BjV,EAAc8wB,GACb9wB,EACAxC,EAAe,aACf2X,IAESnV,IAAT,MACMxC,EAAe,UAAYwC,EAC5BgV,GAAuBxX,EACvByX,GAAyB,KACzBtC,EAAU,IACVA,EAAU,IACnBA,GAAW0C,GAAyB7X,CAAc,GAE7C,KACT,IAAK,IACH,OAAOyxB,GAAwBtc,EAASnV,EAAgBwC,CAAW,EACrE,IAAK,GACH,OACE1E,GACEkC,EACAA,EAAe,UAAU,eAE1BrP,EAAQqP,EAAe,aACfmV,IAAT,KACKnV,EAAe,MAAQogB,GACtBpgB,EACA,KACArP,EACA6R,GAEF8sB,GAAkBna,EAASnV,EAAgBrP,EAAO6R,CAAW,EACjExC,EAAe,MAEnB,IAAK,IACH,OAAOwvB,GACLra,EACAnV,EACAA,EAAe,KACfA,EAAe,aACfwC,GAEJ,IAAK,GACH,OACE8sB,GACEna,EACAnV,EACAA,EAAe,aACfwC,GAEFxC,EAAe,MAEnB,IAAK,GACH,OACEsvB,GACEna,EACAnV,EACAA,EAAe,aAAa,SAC5BwC,GAEFxC,EAAe,MAEnB,IAAK,IACH,OACEsvB,GACEna,EACAnV,EACAA,EAAe,aAAa,SAC5BwC,GAEFxC,EAAe,MAEnB,IAAK,IACH,OACGrP,EAAQqP,EAAe,aACxBmZ,GAAanZ,EAAgBA,EAAe,KAAMrP,EAAM,KAAK,EAC7D2+B,GAAkBna,EAASnV,EAAgBrP,EAAM,SAAU6R,CAAW,EACtExC,EAAe,MAEnB,IAAK,GACH,OACGgzB,EAAWhzB,EAAe,KAAK,SAC/BrP,EAAQqP,EAAe,aAAa,SACrCoa,GAAqBpa,CAAc,EAClCgzB,EAAW3Y,GAAY2Y,CAAQ,EAC/BriC,EAAQA,EAAMqiC,CAAQ,EACtBhzB,EAAe,OAAS,EACzBsvB,GAAkBna,EAASnV,EAAgBrP,EAAO6R,CAAW,EAC7DxC,EAAe,MAEnB,IAAK,IACH,OAAO2vB,GACLxa,EACAnV,EACAA,EAAe,KACfA,EAAe,aACfwC,GAEJ,IAAK,IACH,OAAOotB,GACLza,EACAnV,EACAA,EAAe,KACfA,EAAe,aACfwC,GAEJ,IAAK,IACH,OAAOgwB,GAA4Brd,EAASnV,EAAgBwC,CAAW,EACzE,IAAK,IACH,OAAOguB,GAAwBrb,EAASnV,EAAgBwC,CAAW,EACrE,IAAK,IACH,OAAOwtB,GACL7a,EACAnV,EACAwC,EACAxC,EAAe,cAEnB,IAAK,IACH,OACEoa,GAAqBpa,CAAc,EAClCrP,EAAQ0pB,GAAYU,EAAY,EACxB5F,IAAT,MACM6d,EAAW9W,GAAiB,EACrB8W,IAAT,OACIA,EAAW5W,GACZoM,EAAYxN,GAAW,EACvBgY,EAAS,YAAcxK,EACxBA,EAAU,WACDA,IAAT,OAAuBwK,EAAS,kBAAoBxwB,GACnDwwB,EAAWxK,GACbxoB,EAAe,cAAgB,CAAE,OAAQrP,EAAO,MAAOqiC,CAAQ,EAChEzS,GAAsBvgB,CAAc,EACpCmZ,GAAanZ,EAAgB+a,GAAciY,CAAQ,KAC3C7d,EAAQ,MAAQ3S,KAAvB,IACEge,GAAiBrL,EAASnV,CAAc,EACzCuhB,GAAmBvhB,EAAgB,KAAM,KAAMwC,CAAW,EAC1D6e,MACD2R,EAAW7d,EAAQ,cACnBqT,EAAYxoB,EAAe,cAC5BgzB,EAAS,SAAWriC,GACdqiC,EAAW,CAAE,OAAQriC,EAAO,MAAOA,CAAK,EACzCqP,EAAe,cAAgBgzB,EAC1BhzB,EAAe,QAArB,IACGA,EAAe,cACdA,EAAe,YAAY,UACzBgzB,GACN7Z,GAAanZ,EAAgB+a,GAAcpqB,CAAK,IAC9CA,EAAQ63B,EAAU,MACpBrP,GAAanZ,EAAgB+a,GAAcpqB,CAAK,EAChDA,IAAUqiC,EAAS,OACjBvZ,GACEzZ,EACA,CAAC+a,EAAY,EACbvY,EACA,EACpB,IACQ8sB,GACEna,EACAnV,EACAA,EAAe,aAAa,SAC5BwC,GAEFxC,EAAe,MAEnB,IAAK,IACH,MAAMA,EAAe,YAC3B,CACE,MAAM,MAAM7F,EAAuB,IAAK6F,EAAe,GAAG,CAAC,CAC7D,CACA,SAASuzB,GAAWvzB,EAAgB,CAClCA,EAAe,OAAS,CAC1B,CACA,SAASwzB,GACPxzB,EACAxO,EACA87B,EACAC,EACA/qB,EACA,CAEA,IADKhR,GAAcwO,EAAe,KAAO,MAA7B,KAAmCxO,EAAO,IAClDA,GACF,GACIwO,EAAe,OAAS,UACzBwC,EAAc,aAAeA,EAE9B,GAAIxC,EAAe,UAAU,SAAUA,EAAe,OAAS,aACtDyzB,GAA4B,EAAIzzB,EAAe,OAAS,SAE/D,OACIod,GAAoBP,GACtBF,QAED3c,EAAe,OAAS,SACjC,CACA,SAAS0zB,GAAkC1zB,EAAgB2zB,EAAU,CACnE,GAAqBA,EAAS,OAA1B,eAAyCA,EAAS,MAAM,QAAU,KAAhC,EACpC3zB,EAAe,OAAS,kBACfA,EAAe,OAAS,SAAW,CAAC4zB,GAAgBD,CAAQ,EACrE,GAAIF,GAA4B,EAAIzzB,EAAe,OAAS,SAE1D,OACIod,GAAoBP,GACtBF,EAER,CACA,SAASkX,GAAoB7zB,EAAgB8zB,EAAY,CAC9CA,IAAT,OAAwB9zB,EAAe,OAAS,GAChDA,EAAe,MAAQ,QACnB8zB,EACO9zB,EAAe,MAAtB,GAA4B2C,GAAkB,EAAK,UACpD3C,EAAe,OAAS8zB,EACxBC,IAAqCD,EAC1C,CACA,SAASE,GAAmBzB,EAAa0B,EAA0B,CACjE,GAAI,CAACtrB,GACH,OAAQ4pB,EAAY,SAAQ,CAC1B,IAAK,SACH0B,EAA2B1B,EAAY,KACvC,QAAS2B,EAAe,KAAeD,IAAT,MACnBA,EAAyB,YAAlC,OACGC,EAAeD,GACfA,EAA2BA,EAAyB,QAChDC,IAAT,KACK3B,EAAY,KAAO,KACnB2B,EAAa,QAAU,KAC5B,MACF,IAAK,YACHA,EAAe3B,EAAY,KAC3B,QAAS4B,EAAmB,KAAeD,IAAT,MACvBA,EAAa,YAAtB,OAAoCC,EAAmBD,GACpDA,EAAeA,EAAa,QACxBC,IAAT,KACIF,GAAqC1B,EAAY,OAArB,KACzBA,EAAY,KAAO,KACnBA,EAAY,KAAK,QAAU,KAC7B4B,EAAiB,QAAU,IACxC,CACA,CACA,SAASC,GAAiBC,EAAe,CACvC,IAAIC,EACSD,EAAc,YAAvB,MACAA,EAAc,UAAU,QAAUA,EAAc,MAClDE,EAAgB,EAChBC,EAAe,EACjB,GAAIF,EACF,QAASG,EAAYJ,EAAc,MAAgBI,IAAT,MACvCF,GAAiBE,EAAU,MAAQA,EAAU,WAC3CD,GAAgBC,EAAU,aAAe,SACzCD,GAAgBC,EAAU,MAAQ,SAClCA,EAAU,OAASJ,EACnBI,EAAYA,EAAU,YAE3B,KAAKA,EAAYJ,EAAc,MAAgBI,IAAT,MACnCF,GAAiBE,EAAU,MAAQA,EAAU,WAC3CD,GAAgBC,EAAU,aAC1BD,GAAgBC,EAAU,MAC1BA,EAAU,OAASJ,EACnBI,EAAYA,EAAU,QAC7B,OAAAJ,EAAc,cAAgBG,EAC9BH,EAAc,WAAaE,EACpBD,CACT,CACA,SAASI,GAAavf,EAASnV,EAAgBwC,EAAa,CAC1D,IAAI+qB,EAAWvtB,EAAe,aAE9B,OADAqX,GAAerX,CAAc,EACrBA,EAAe,IAAG,CACxB,IAAK,IACL,IAAK,IACL,IAAK,GACL,IAAK,IACL,IAAK,GACL,IAAK,GACL,IAAK,IACL,IAAK,GACL,IAAK,IACH,OAAOo0B,GAAiBp0B,CAAc,EAAG,KAC3C,IAAK,GACH,OAAOo0B,GAAiBp0B,CAAc,EAAG,KAC3C,IAAK,GACH,OAAAwC,EAAcxC,EAAe,UAC7ButB,EAAW,KACFpY,IAAT,OAAqBoY,EAAWpY,EAAQ,cAAc,OACtDnV,EAAe,cAAc,QAAUutB,IACpCvtB,EAAe,OAAS,MAC3BsZ,GAAYyB,EAAY,EACxB7c,GAAgB,EAChBsE,EAAY,iBACRA,EAAY,QAAUA,EAAY,eACnCA,EAAY,eAAiB,OACnB2S,IAAT,MAA6BA,EAAQ,QAAjB,QACtBkD,GAAkBrY,CAAc,EAC5BuzB,GAAWvzB,CAAc,EAChBmV,IAAT,MACCA,EAAQ,cAAc,eACdnV,EAAe,MAAQ,OAA9B,IACAA,EAAe,OAAS,KAC1B6Y,OACNub,GAAiBp0B,CAAc,EACxB,KACT,IAAK,IACH,IAAIxO,EAAOwO,EAAe,KACxB20B,EAAe30B,EAAe,cAChC,OAASmV,IAAT,MACKoe,GAAWvzB,CAAc,EACjB20B,IAAT,MACKP,GAAiBp0B,CAAc,EAChC0zB,GAAkC1zB,EAAgB20B,CAAY,IAC7DP,GAAiBp0B,CAAc,EAChCwzB,GACExzB,EACAxO,EACA,KACA+7B,EACA/qB,CAChB,IACUmyB,EACEA,IAAiBxf,EAAQ,eACtBoe,GAAWvzB,CAAc,EAC1Bo0B,GAAiBp0B,CAAc,EAC/B0zB,GAAkC1zB,EAAgB20B,CAAY,IAC7DP,GAAiBp0B,CAAc,EAC/BA,EAAe,OAAS,YACzBmV,EAAUA,EAAQ,cACpBA,IAAYoY,GAAYgG,GAAWvzB,CAAc,EACjDo0B,GAAiBp0B,CAAc,EAC/BwzB,GACExzB,EACAxO,EACA2jB,EACAoY,EACA/qB,CACd,GACa,KACT,IAAK,IAIH,GAHAnE,GAAe2B,CAAc,EAC7BwC,EAAc5E,GAAwB,QACtCpM,EAAOwO,EAAe,KACTmV,IAAT,MAA4BnV,EAAe,WAAvB,KACtBmV,EAAQ,gBAAkBoY,GAAYgG,GAAWvzB,CAAc,MAC5D,CACH,GAAI,CAACutB,EAAU,CACb,GAAavtB,EAAe,YAAxB,KACF,MAAM,MAAM7F,EAAuB,GAAG,CAAC,EACzC,OAAAi6B,GAAiBp0B,CAAc,EACxB,IACjB,CACQmV,EAAUzX,EAAmB,QAC7B2a,GAAkBrY,CAAc,EAC5B+X,GAA6B/X,CAAuB,GAClDmV,EAAUie,GAAyB5hC,EAAM+7B,EAAU/qB,CAAW,EAC/DxC,EAAe,UAAYmV,EAC5Boe,GAAWvzB,CAAc,EACrC,CACM,OAAAo0B,GAAiBp0B,CAAc,EACxB,KACT,IAAK,GAGH,GAFA3B,GAAe2B,CAAc,EAC7BxO,EAAOwO,EAAe,KACTmV,IAAT,MAA4BnV,EAAe,WAAvB,KACtBmV,EAAQ,gBAAkBoY,GAAYgG,GAAWvzB,CAAc,MAC5D,CACH,GAAI,CAACutB,EAAU,CACb,GAAavtB,EAAe,YAAxB,KACF,MAAM,MAAM7F,EAAuB,GAAG,CAAC,EACzC,OAAAi6B,GAAiBp0B,CAAc,EACxB,IACjB,CAEQ,GADA20B,EAAej3B,EAAmB,QAC9B2a,GAAkBrY,CAAc,EAClC+X,GAA6B/X,CAA4B,MACtD,CACH,IAAI40B,EAAgB1B,GAClBt1B,GAAwB,SAE1B,OAAQ+2B,EAAY,CAClB,IAAK,GACHA,EAAeC,EAAc,gBAC3B,6BACApjC,GAEF,MACF,IAAK,GACHmjC,EAAeC,EAAc,gBAC3B,qCACApjC,GAEF,MACF,QACE,OAAQA,EAAI,CACV,IAAK,MACHmjC,EAAeC,EAAc,gBAC3B,6BACApjC,GAEF,MACF,IAAK,OACHmjC,EAAeC,EAAc,gBAC3B,qCACApjC,GAEF,MACF,IAAK,SACHmjC,EAAeC,EAAc,cAAc,KAAK,EAChDD,EAAa,UAAY,qBACzBA,EAAeA,EAAa,YAC1BA,EAAa,YAEf,MACF,IAAK,SACHA,EACe,OAAOpH,EAAS,IAA7B,SACIqH,EAAc,cAAc,SAAU,CACpC,GAAIrH,EAAS,GACd,EACDqH,EAAc,cAAc,QAAQ,EAC1CrH,EAAS,SACJoH,EAAa,SAAW,GACzBpH,EAAS,OAASoH,EAAa,KAAOpH,EAAS,MACnD,MACF,QACEoH,EACe,OAAOpH,EAAS,IAA7B,SACIqH,EAAc,cAAcpjC,EAAM,CAAE,GAAI+7B,EAAS,EAAE,CAAE,EACrDqH,EAAc,cAAcpjC,CAAI,CACxD,CACA,CACUmjC,EAAa5vB,EAAmB,EAAI/E,EACpC20B,EAAa3vB,EAAgB,EAAIuoB,EACjC/2B,EAAG,IACDo+B,EAAgB50B,EAAe,MACtB40B,IAAT,MAEA,CACA,GAAUA,EAAc,MAApB,GAAiCA,EAAc,MAApB,EAC7BD,EAAa,YAAYC,EAAc,SAAS,UAE1CA,EAAc,MAApB,GACOA,EAAc,MAArB,IACSA,EAAc,QAAvB,KACA,CACAA,EAAc,MAAM,OAASA,EAC7BA,EAAgBA,EAAc,MAC9B,QACd,CACY,GAAIA,IAAkB50B,EAAgB,MAAMxJ,EAC5C,KAAgBo+B,EAAc,UAAvB,MAAkC,CACvC,GACWA,EAAc,SAAvB,MACAA,EAAc,SAAW50B,EAEzB,MAAMxJ,EACRo+B,EAAgBA,EAAc,MAC5C,CACYA,EAAc,QAAQ,OAASA,EAAc,OAC7CA,EAAgBA,EAAc,OAC1C,CACU50B,EAAe,UAAY20B,EAC3Bn+B,EAAG,OACA28B,GAAqBwB,EAAcnjC,EAAM+7B,CAAQ,EAAG/7B,EACjE,CACY,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,WACH+7B,EAAW,CAAC,CAACA,EAAS,UACtB,MAAM/2B,EACR,IAAK,MACH+2B,EAAW,GACX,MAAM/2B,EACR,QACE+2B,EAAW,EACzB,CACUA,GAAYgG,GAAWvzB,CAAc,CAC/C,CACA,CACM,OAAAo0B,GAAiBp0B,CAAc,EAC/BwzB,GACExzB,EACAA,EAAe,KACNmV,IAAT,KAAmB,KAAOA,EAAQ,cAClCnV,EAAe,aACfwC,GAEK,KACT,IAAK,GACH,GAAI2S,GAAmBnV,EAAe,WAAvB,KACbmV,EAAQ,gBAAkBoY,GAAYgG,GAAWvzB,CAAc,MAC5D,CACH,GAAiB,OAAOutB,GAApB,UAAyCvtB,EAAe,YAAxB,KAClC,MAAM,MAAM7F,EAAuB,GAAG,CAAC,EAEzC,GADAgb,EAAUvX,GAAwB,QAC9Bya,GAAkBrY,CAAc,EAAG,CAKrC,GAJAmV,EAAUnV,EAAe,UACzBwC,EAAcxC,EAAe,cAC7ButB,EAAW,KACX/7B,EAAOgmB,GACMhmB,IAAT,KACF,OAAQA,EAAK,IAAG,CACd,IAAK,IACL,IAAK,GACH+7B,EAAW/7B,EAAK,aAChC,CACU2jB,EAAQpQ,EAAmB,EAAI/E,EAC/BmV,EACE,CAAA,EAAAA,EAAQ,YAAc3S,GACZ+qB,IAAT,MAA4BA,EAAS,2BAAhB,IACtBpV,GAAsBhD,EAAQ,UAAW3S,CAAW,GAGtD2S,GAAW0C,GAAyB7X,EAAgB,EAAE,CAChE,MACWmV,EACC+d,GAAkC/d,CAAO,EAAE,eACzCoY,GAEDpY,EAAQpQ,EAAmB,EAAI/E,EAC/BA,EAAe,UAAYmV,CACxC,CACM,OAAAif,GAAiBp0B,CAAc,EACxB,KACT,IAAK,IAEH,GADAwC,EAAcxC,EAAe,cAChBmV,IAAT,MAA6BA,EAAQ,gBAAjB,KAAgC,CAEtD,GADAoY,EAAWlV,GAAkBrY,CAAc,EAC9BwC,IAAT,KAAsB,CACxB,GAAa2S,IAAT,KAAkB,CACpB,GAAI,CAACoY,EAAU,MAAM,MAAMpzB,EAAuB,GAAG,CAAC,EAGtD,GAFAgb,EAAUnV,EAAe,cACzBmV,EAAmBA,IAAT,KAAmBA,EAAQ,WAAa,KAC9C,CAACA,EAAS,MAAM,MAAMhb,EAAuB,GAAG,CAAC,EACrDgb,EAAQpQ,EAAmB,EAAI/E,CAC3C,MACY4Y,GAAmB,GACV5Y,EAAe,MAAQ,OAA9B,IACGA,EAAe,cAAgB,MACjCA,EAAe,OAAS,EAC7Bo0B,GAAiBp0B,CAAc,EAC/BmV,EAAU,EACpB,MACW3S,EAAcqW,GAAmC,EACvC1D,IAAT,MACWA,EAAQ,gBAAjB,OACCA,EAAQ,cAAc,gBAAkB3S,GAC1C2S,EAAU,GACf,GAAI,CAACA,EACH,OAAInV,EAAe,MAAQ,KAClBojB,GAAmBpjB,CAAc,EAAGA,IAC7CojB,GAAmBpjB,CAAc,EAC1B,MAET,IAAWA,EAAe,MAAQ,OAA9B,EACF,MAAM,MAAM7F,EAAuB,GAAG,CAAC,CACjD,CACM,OAAAi6B,GAAiBp0B,CAAc,EACxB,KACT,IAAK,IAEH,GADAutB,EAAWvtB,EAAe,cAEfmV,IAAT,MACUA,EAAQ,gBAAjB,MACUA,EAAQ,cAAc,aAA/B,KACF,CAEA,GADA3jB,EAAO6mB,GAAkBrY,CAAc,EAC1ButB,IAAT,MAA8BA,EAAS,aAAlB,KAA8B,CACrD,GAAapY,IAAT,KAAkB,CACpB,GAAI,CAAC3jB,EAAM,MAAM,MAAM2I,EAAuB,GAAG,CAAC,EAGlD,GAFA3I,EAAOwO,EAAe,cACtBxO,EAAgBA,IAAT,KAAgBA,EAAK,WAAa,KACrC,CAACA,EAAM,MAAM,MAAM2I,EAAuB,GAAG,CAAC,EAClD3I,EAAKuT,EAAmB,EAAI/E,CACxC,MACY4Y,GAAmB,GACV5Y,EAAe,MAAQ,OAA9B,IACGA,EAAe,cAAgB,MACjCA,EAAe,OAAS,EAC7Bo0B,GAAiBp0B,CAAc,EAC/BxO,EAAO,EACjB,MACWA,EAAOqnB,GAAmC,EAChC1D,IAAT,MACWA,EAAQ,gBAAjB,OACCA,EAAQ,cAAc,gBAAkB3jB,GAC1CA,EAAO,GACZ,GAAI,CAACA,EACH,OAAIwO,EAAe,MAAQ,KAClBojB,GAAmBpjB,CAAc,EAAGA,IAC7CojB,GAAmBpjB,CAAc,EAC1B,KAEjB,CAEM,OADAojB,GAAmBpjB,CAAc,GACtBA,EAAe,MAAQ,OAA9B,GACMA,EAAe,MAAQwC,EAAcxC,IAC/CwC,EAAuB+qB,IAAT,KACdpY,EAAmBA,IAAT,MAA6BA,EAAQ,gBAAjB,KAC9B3S,IACI+qB,EAAWvtB,EAAe,MAC3BxO,EAAO,KACC+7B,EAAS,YAAlB,MACWA,EAAS,UAAU,gBAA5B,MACSA,EAAS,UAAU,cAAc,YAA1C,OACC/7B,EAAO+7B,EAAS,UAAU,cAAc,UAAU,MACpDoH,EAAe,KACPpH,EAAS,gBAAlB,MACWA,EAAS,cAAc,YAAhC,OACCoH,EAAepH,EAAS,cAAc,UAAU,MACnDoH,IAAiBnjC,IAAS+7B,EAAS,OAAS,OAC9C/qB,IAAgB2S,GACd3S,IACCxC,EAAe,MAAM,OAAS,MACjC6zB,GAAoB7zB,EAAgBA,EAAe,WAAW,EAC9Do0B,GAAiBp0B,CAAc,EACxB,MACT,IAAK,GACH,OACE9B,GAAgB,EACPiX,IAAT,MACE0f,GAA2B70B,EAAe,UAAU,aAAa,EACnEo0B,GAAiBp0B,CAAc,EAC/B,KAEJ,IAAK,IACH,OACEsZ,GAAYtZ,EAAe,IAAI,EAAGo0B,GAAiBp0B,CAAc,EAAG,KAExE,IAAK,IAGH,GAFApJ,EAAIosB,EAAmB,EACvBuK,EAAWvtB,EAAe,cACbutB,IAAT,KAAmB,OAAO6G,GAAiBp0B,CAAc,EAAG,KAGhE,GAFAxO,GAAcwO,EAAe,MAAQ,OAA9B,EACP20B,EAAepH,EAAS,UACXoH,IAAT,KACF,GAAInjC,EAAMwiC,GAAmBzG,EAAU,EAAE,MACpC,CACH,GACQ0B,KAAN,GACU9Z,IAAT,OAA2BA,EAAQ,MAAQ,OAAvB,EAErB,IAAKA,EAAUnV,EAAe,MAAgBmV,IAAT,MAAoB,CAEvD,GADAwf,EAAetR,GAAmBlO,CAAO,EAC5Bwf,IAAT,KAAuB,CAQzB,IAPA30B,EAAe,OAAS,IACxBg0B,GAAmBzG,EAAU,EAAE,EAC/BpY,EAAUwf,EAAa,YACvB30B,EAAe,YAAcmV,EAC7B0e,GAAoB7zB,EAAgBmV,CAAO,EAC3CnV,EAAe,aAAe,EAC9BmV,EAAU3S,EACLA,EAAcxC,EAAe,MAAgBwC,IAAT,MACvC4S,GAAoB5S,EAAa2S,CAAO,EACrC3S,EAAcA,EAAY,QAC/B,OAAAnM,EACE2sB,GACCA,GAAoB,QAAU,EAAK,GAEtCra,IACEmO,GAAa9W,EAAgButB,EAAS,aAAa,EAC9CvtB,EAAe,KACtC,CACcmV,EAAUA,EAAQ,OAChC,CACmBoY,EAAS,OAAlB,MACEhtB,GAAG,EAAKu0B,KACN90B,EAAe,OAAS,IACzBxO,EAAO,GACRwiC,GAAmBzG,EAAU,EAAE,EAC9BvtB,EAAe,MAAQ,QACpC,KACW,CACH,GAAI,CAACxO,EACH,GACI2jB,EAAUkO,GAAmBsR,CAAY,EAAaxf,IAAT,MAE/C,GACInV,EAAe,OAAS,IACzBxO,EAAO,GACP2jB,EAAUA,EAAQ,YAClBnV,EAAe,YAAcmV,EAC9B0e,GAAoB7zB,EAAgBmV,CAAO,EAC3C6e,GAAmBzG,EAAU,EAAE,EACtBA,EAAS,OAAlB,MACeA,EAAS,WAAtB,UACA,CAACoH,EAAa,WACd,CAAChsB,GAEH,OAAOyrB,GAAiBp0B,CAAc,EAAG,SAE3C,GAAIO,KAAQgtB,EAAS,mBACnBuH,IACctyB,IAAd,YACExC,EAAe,OAAS,IACzBxO,EAAO,GACRwiC,GAAmBzG,EAAU,EAAE,EAC9BvtB,EAAe,MAAQ,SAC9ButB,EAAS,aACHoH,EAAa,QAAU30B,EAAe,MACvCA,EAAe,MAAQ20B,IACtBxf,EAAUoY,EAAS,KACZpY,IAAT,KACKA,EAAQ,QAAUwf,EAClB30B,EAAe,MAAQ20B,EAC3BpH,EAAS,KAAOoH,EAC7B,CACM,OAAapH,EAAS,OAAlB,MAECpY,EAAUoY,EAAS,KACnBA,EAAS,UAAYpY,EACrBoY,EAAS,KAAOpY,EAAQ,QACxBoY,EAAS,mBAAqBhtB,GAAG,EACjC4U,EAAQ,QAAU,KAClB3S,EAAcwgB,GAAoB,QACnC3sB,EACE2sB,GACAxxB,EAAQgR,EAAc,EAAK,EAAIA,EAAc,GAE/CmG,IAAemO,GAAa9W,EAAgButB,EAAS,aAAa,EAClEpY,IAEJif,GAAiBp0B,CAAc,EACxB,MACT,IAAK,IACL,IAAK,IACH,OACEojB,GAAmBpjB,CAAc,EACjC2iB,GAAgB,EACf4K,EAAoBvtB,EAAe,gBAAxB,KACHmV,IAAT,KACcA,EAAQ,gBAAjB,OAAoCoY,IACpCvtB,EAAe,OAAS,MACzButB,IAAavtB,EAAe,OAAS,MACzCutB,GACW/qB,EAAc,aAArB,IACOxC,EAAe,MAAQ,OAA9B,IACCo0B,GAAiBp0B,CAAc,EAChCA,EAAe,aAAe,IAAMA,EAAe,OAAS,OAC5Do0B,GAAiBp0B,CAAc,EAClCwC,EAAcxC,EAAe,YACrBwC,IAAT,MACEqxB,GAAoB7zB,EAAgBwC,EAAY,UAAU,EAC3DA,EAAc,KACN2S,IAAT,MACWA,EAAQ,gBAAjB,MACSA,EAAQ,cAAc,YAA/B,OACC3S,EAAc2S,EAAQ,cAAc,UAAU,MAChDoY,EAAW,KACHvtB,EAAe,gBAAxB,MACWA,EAAe,cAAc,YAAtC,OACCutB,EAAWvtB,EAAe,cAAc,UAAU,MACrDutB,IAAa/qB,IAAgBxC,EAAe,OAAS,MAC5CmV,IAAT,MAAoBve,EAAIqlB,EAAY,EACpC,KAEJ,IAAK,IACH,OACGzZ,EAAc,KACN2S,IAAT,OAAqB3S,EAAc2S,EAAQ,cAAc,OACzDnV,EAAe,cAAc,QAAUwC,IACpCxC,EAAe,OAAS,MAC3BsZ,GAAYyB,EAAY,EACxBqZ,GAAiBp0B,CAAc,EAC/B,KAEJ,IAAK,IACH,OAAO,KACT,IAAK,IACH,OAAO,IACb,CACE,MAAM,MAAM7F,EAAuB,IAAK6F,EAAe,GAAG,CAAC,CAC7D,CACA,SAAS+0B,GAAW5f,EAASnV,EAAgB,CAE3C,OADAqX,GAAerX,CAAc,EACrBA,EAAe,IAAG,CACxB,IAAK,GACH,OACGmV,EAAUnV,EAAe,MAC1BmV,EAAU,OACJnV,EAAe,MAASmV,EAAU,OAAU,IAAMnV,GACpD,KAER,IAAK,GACH,OACEsZ,GAAYyB,EAAY,EACxB7c,GAAgB,EACfiX,EAAUnV,EAAe,OACnBmV,EAAU,SAAjB,IAAkCA,EAAU,OAAjB,GACrBnV,EAAe,MAASmV,EAAU,OAAU,IAAMnV,GACpD,KAER,IAAK,IACL,IAAK,IACL,IAAK,GACH,OAAO3B,GAAe2B,CAAc,EAAG,KACzC,IAAK,IACH,GAAaA,EAAe,gBAAxB,KAAuC,CAEzC,GADAojB,GAAmBpjB,CAAc,EACpBA,EAAe,YAAxB,KACF,MAAM,MAAM7F,EAAuB,GAAG,CAAC,EACzCye,GAAmB,CAC3B,CACM,OAAAzD,EAAUnV,EAAe,MAClBmV,EAAU,OACXnV,EAAe,MAASmV,EAAU,OAAU,IAAMnV,GACpD,KACN,IAAK,IAGH,GAFAojB,GAAmBpjB,CAAc,EACjCmV,EAAUnV,EAAe,cACZmV,IAAT,MAA6BA,EAAQ,aAAjB,KAA6B,CACnD,GAAanV,EAAe,YAAxB,KACF,MAAM,MAAM7F,EAAuB,GAAG,CAAC,EACzCye,GAAmB,CAC3B,CACM,OAAAzD,EAAUnV,EAAe,MAClBmV,EAAU,OACXnV,EAAe,MAASmV,EAAU,OAAU,IAAMnV,GACpD,KACN,IAAK,IACH,OAAOpJ,EAAIosB,EAAmB,EAAG,KACnC,IAAK,GACH,OAAO9kB,GAAgB,EAAI,KAC7B,IAAK,IACH,OAAOob,GAAYtZ,EAAe,IAAI,EAAG,KAC3C,IAAK,IACL,IAAK,IACH,OACEojB,GAAmBpjB,CAAc,EACjC2iB,GAAgB,EACPxN,IAAT,MAAoBve,EAAIqlB,EAAY,EACnC9G,EAAUnV,EAAe,MAC1BmV,EAAU,OACJnV,EAAe,MAASmV,EAAU,OAAU,IAAMnV,GACpD,KAER,IAAK,IACH,OAAOsZ,GAAYyB,EAAY,EAAG,KACpC,IAAK,IACH,OAAO,KACT,QACE,OAAO,IACb,CACA,CACA,SAASia,GAAsB7f,EAAS8f,EAAiB,CAEvD,OADA5d,GAAe4d,CAAe,EACtBA,EAAgB,IAAG,CACzB,IAAK,GACH3b,GAAYyB,EAAY,EACxB7c,GAAgB,EAChB,MACF,IAAK,IACL,IAAK,IACL,IAAK,GACHG,GAAe42B,CAAe,EAC9B,MACF,IAAK,GACH/2B,GAAgB,EAChB,MACF,IAAK,IACM+2B,EAAgB,gBAAzB,MACE7R,GAAmB6R,CAAe,EACpC,MACF,IAAK,IACH7R,GAAmB6R,CAAe,EAClC,MACF,IAAK,IACHr+B,EAAIosB,EAAmB,EACvB,MACF,IAAK,IACH1J,GAAY2b,EAAgB,IAAI,EAChC,MACF,IAAK,IACL,IAAK,IACH7R,GAAmB6R,CAAe,EAClCtS,GAAgB,EACPxN,IAAT,MAAoBve,EAAIqlB,EAAY,EACpC,MACF,IAAK,IACH3C,GAAYyB,EAAY,CAC9B,CACA,CACA,SAASma,GAA0BC,EAAOC,EAAc,CACtD,GAAI,CACF,IAAIzU,EAAcyU,EAAa,YAC7BC,EAAsB1U,IAAT,KAAuBA,EAAY,WAAa,KAC/D,GAAa0U,IAAT,KAAqB,CACvB,IAAIC,EAAcD,EAAW,KAC7B1U,EAAc2U,EACd,EAAG,CACD,IAAK3U,EAAY,IAAMwU,KAAWA,EAAO,CACvCE,EAAa,OACb,IAAI3/B,EAASirB,EAAY,OACvB5a,EAAO4a,EAAY,KACrB0U,EAAa3/B,EAAM,EACnBqQ,EAAK,QAAUsvB,CACzB,CACQ1U,EAAcA,EAAY,IAClC,OAAeA,IAAgB2U,EAC/B,CACA,OAAW5iC,EAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,CAAK,CACpE,CACA,CACA,SAAS8iC,GACPL,EACAC,EACAK,EACA,CACA,GAAI,CACF,IAAI9U,EAAcyU,EAAa,YAC7BC,EAAsB1U,IAAT,KAAuBA,EAAY,WAAa,KAC/D,GAAa0U,IAAT,KAAqB,CACvB,IAAIC,EAAcD,EAAW,KAC7B1U,EAAc2U,EACd,EAAG,CACD,IAAK3U,EAAY,IAAMwU,KAAWA,EAAO,CACvC,IAAIpvB,EAAO4a,EAAY,KACrB+U,EAAU3vB,EAAK,QACjB,GAAe2vB,IAAX,OAAoB,CACtB3vB,EAAK,QAAU,OACfsvB,EAAaD,EACb,IAAIO,EAAyBF,EAC3BG,EAAWF,EACb,GAAI,CACFE,EAAQ,CACtB,OAAqBljC,EAAO,CACd6iC,GACEF,EACAM,EACAjjC,EAEhB,CACA,CACA,CACQiuB,EAAcA,EAAY,IAClC,OAAeA,IAAgB2U,EAC/B,CACA,OAAW5iC,EAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,CAAK,CACpE,CACA,CACA,SAASmjC,GAAqBT,EAAc,CAC1C,IAAIzU,EAAcyU,EAAa,YAC/B,GAAazU,IAAT,KAAsB,CACxB,IAAI3I,EAAWod,EAAa,UAC5B,GAAI,CACFhT,GAAgBzB,EAAa3I,CAAQ,CAC3C,OAAatlB,EAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,CAAK,CACtE,CACA,CACA,CACA,SAASojC,GACP3gB,EACAwgB,EACA3d,EACA,CACAA,EAAS,MAAQ0V,GACfvY,EAAQ,KACRA,EAAQ,eAEV6C,EAAS,MAAQ7C,EAAQ,cACzB,GAAI,CACF6C,EAAS,qBAAoB,CACjC,OAAWtlB,EAAO,CACd6iC,GAAwBpgB,EAASwgB,EAAwBjjC,CAAK,CAClE,CACA,CACA,SAASqjC,GAAgB5gB,EAASwgB,EAAwB,CACxD,GAAI,CACF,IAAIhgC,EAAMwf,EAAQ,IAClB,GAAaxf,IAAT,KAAc,CAChB,OAAQwf,EAAQ,IAAG,CACjB,IAAK,IACL,IAAK,IACL,IAAK,GACH,IAAI6gB,EAAgB7gB,EAAQ,UAC5B,MACF,IAAK,IACH6gB,EAAgB7gB,EAAQ,UACxB,MACF,QACE6gB,EAAgB7gB,EAAQ,SAClC,CACqB,OAAOxf,GAAtB,WACKwf,EAAQ,WAAaxf,EAAIqgC,CAAa,EACtCrgC,EAAI,QAAUqgC,CACzB,CACA,OAAWtjC,EAAO,CACd6iC,GAAwBpgB,EAASwgB,EAAwBjjC,CAAK,CAClE,CACA,CACA,SAASujC,GAAgB9gB,EAASwgB,EAAwB,CACxD,IAAIhgC,EAAMwf,EAAQ,IAChBwV,EAAaxV,EAAQ,WACvB,GAAaxf,IAAT,KACF,GAAmB,OAAOg1B,GAAtB,WACF,GAAI,CACFA,EAAU,CAClB,OAAej4B,EAAO,CACd6iC,GAAwBpgB,EAASwgB,EAAwBjjC,CAAK,CACtE,QAAA,CACSyiB,EAAQ,WAAa,KACnBA,EAAUA,EAAQ,UACXA,GAAR,OAAoBA,EAAQ,WAAa,KACnD,SAC4B,OAAOxf,GAAtB,WACP,GAAI,CACFA,EAAI,IAAI,CAChB,OAAeugC,EAAW,CAClBX,GAAwBpgB,EAASwgB,EAAwBO,CAAS,CAC1E,MACSvgC,EAAI,QAAU,IACvB,CACA,SAASwgC,GAAgBf,EAAc,CACrC,IAAI5jC,EAAO4jC,EAAa,KACtBzkC,EAAQykC,EAAa,cACrBpd,EAAWod,EAAa,UAC1B,GAAI,CACF5+B,EAAG,OAAQhF,EAAI,CACb,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,WACHb,EAAM,WAAaqnB,EAAS,MAAK,EACjC,MAAMxhB,EACR,IAAK,MACH7F,EAAM,IACDqnB,EAAS,IAAMrnB,EAAM,IACtBA,EAAM,SAAWqnB,EAAS,OAASrnB,EAAM,OACrD,CACA,OAAW+B,EAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,CAAK,CACpE,CACA,CACA,SAAS0jC,GAAiBhB,EAAc7H,EAAUD,EAAU,CAC1D,GAAI,CACF,IAAI+I,EAAajB,EAAa,UAC9BkB,GAAiBD,EAAYjB,EAAa,KAAM9H,EAAUC,CAAQ,EAClE8I,EAAWrxB,EAAgB,EAAIuoB,CACnC,OAAW76B,EAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,CAAK,CACpE,CACA,CACA,SAAS6jC,GAAav6B,EAAO,CAC3B,OACQA,EAAM,MAAZ,GACMA,EAAM,MAAZ,GACOA,EAAM,MAAb,IACQA,EAAM,MAAb,IAAoByc,GAAiBzc,EAAM,IAAI,GAC1CA,EAAM,MAAZ,CAEJ,CACA,SAASw6B,GAAex6B,EAAO,CAC7BxF,EAAG,OAAS,CACV,KAAgBwF,EAAM,UAAf,MAA0B,CAC/B,GAAaA,EAAM,SAAf,MAAyBu6B,GAAav6B,EAAM,MAAM,EAAG,OAAO,KAChEA,EAAQA,EAAM,MACpB,CAEI,IADAA,EAAM,QAAQ,OAASA,EAAM,OAE3BA,EAAQA,EAAM,QACRA,EAAM,MAAZ,GAAyBA,EAAM,MAAZ,GAA0BA,EAAM,MAAb,IAEtC,CAGA,GAFWA,EAAM,MAAb,IAAoByc,GAAiBzc,EAAM,IAAI,GAC/CA,EAAM,MAAQ,GACLA,EAAM,QAAf,MAA8BA,EAAM,MAAZ,EAAiB,SAASxF,EAChDwF,EAAM,MAAM,OAASA,EAASA,EAAQA,EAAM,KACxD,CACI,GAAI,EAAEA,EAAM,MAAQ,GAAI,OAAOA,EAAM,SACzC,CACA,CACA,SAASy6B,GAAyClgC,EAAMmgC,EAAQhgC,EAAQ,CACtE,IAAIoG,EAAMvG,EAAK,IACf,GAAUuG,IAAN,GAAmBA,IAAN,EACdvG,EAAOA,EAAK,UACXmgC,GACWhgC,EAAO,WAAb,EACGA,EAAO,KACIA,EAAO,WAAlB,OACEA,EAAO,cAAc,KACrBA,GACJ,aAAaH,EAAMmgC,CAAM,GACzBA,EACMhgC,EAAO,WAAb,EACIA,EAAO,KACIA,EAAO,WAAlB,OACEA,EAAO,cAAc,KACrBA,EACRggC,EAAO,YAAYngC,CAAI,EACtBG,EAASA,EAAO,oBACPA,GAAT,MACUggC,EAAO,UAAhB,OACCA,EAAO,QAAUtsB,aAEpBtN,IAAN,IACQA,IAAP,IACC2b,GAAiBliB,EAAK,IAAI,IACxBG,EAASH,EAAK,UAAamgC,EAAS,MACvCngC,EAAOA,EAAK,MACJA,IAAT,MAEA,IACEkgC,GAAyClgC,EAAMmgC,EAAQhgC,CAAM,EAC3DH,EAAOA,EAAK,QACLA,IAAT,MAGAkgC,GAAyClgC,EAAMmgC,EAAQhgC,CAAM,EAC1DH,EAAOA,EAAK,OACrB,CACA,SAASogC,GAA4BpgC,EAAMmgC,EAAQhgC,EAAQ,CACzD,IAAIoG,EAAMvG,EAAK,IACf,GAAUuG,IAAN,GAAmBA,IAAN,EACdvG,EAAOA,EAAK,UACXmgC,EAAShgC,EAAO,aAAaH,EAAMmgC,CAAM,EAAIhgC,EAAO,YAAYH,CAAI,UAEhEuG,IAAN,IACQA,IAAP,IAAc2b,GAAiBliB,EAAK,IAAI,IAAMG,EAASH,EAAK,WAC5DA,EAAOA,EAAK,MACJA,IAAT,MAEA,IACEogC,GAA4BpgC,EAAMmgC,EAAQhgC,CAAM,EAAGH,EAAOA,EAAK,QACtDA,IAAT,MAGAogC,GAA4BpgC,EAAMmgC,EAAQhgC,CAAM,EAAIH,EAAOA,EAAK,OACtE,CACA,SAASqgC,GAA+BxB,EAAc,CACpD,IAAIyB,EAAYzB,EAAa,UAC3BzkC,EAAQykC,EAAa,cACvB,GAAI,CACF,QACM5jC,EAAO4jC,EAAa,KAAM0B,EAAaD,EAAU,WACrDC,EAAW,QAGXD,EAAU,oBAAoBC,EAAW,CAAC,CAAC,EAC7C3D,GAAqB0D,EAAWrlC,EAAMb,CAAK,EAC3CkmC,EAAU9xB,EAAmB,EAAIqwB,EACjCyB,EAAU7xB,EAAgB,EAAIrU,CAClC,OAAW+B,EAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,CAAK,CACpE,CACA,CACA,IAAIqkC,GAA2B,GAC7BC,GAA4B,GAC5BC,GAAiB,GACjBC,GAAiC,OAAO,SAAtB,WAAgC,QAAU,IAC5DC,GAAa,KACf,SAASC,GAA4Br1B,EAAMqH,EAAY,CAIrD,GAHArH,EAAOA,EAAK,cACZs1B,GAAgBC,GAChBv1B,EAAOmQ,GAAqBnQ,CAAI,EAC5BoQ,GAAyBpQ,CAAI,EAAG,CAClC,GAAI,mBAAoBA,EACtB,IAAIuW,EAAkB,CACpB,MAAOvW,EAAK,eACZ,IAAKA,EAAK,mBAGZvL,EAAG,CACD8hB,GACIA,EAAkBvW,EAAK,gBACvBuW,EAAgB,aAClB,OACF,IAAIif,EACFjf,EAAgB,cAAgBA,EAAgB,aAAY,EAC9D,GAAIif,GAAmBA,EAAU,aAAhB,EAA4B,CAC3Cjf,EAAkBif,EAAU,WAC5B,IAAIC,EAAeD,EAAU,aAC3BE,EAAYF,EAAU,UACxBA,EAAYA,EAAU,YACtB,GAAI,CACFjf,EAAgB,SAAUmf,EAAU,QAChD,MAAyB,CACbnf,EAAkB,KAClB,MAAM9hB,CAClB,CACU,IAAIO,EAAS,EACX0U,EAAQ,GACRG,EAAM,GACN8rB,EAAoB,EACpBC,EAAmB,EACnBphC,EAAOwL,EACP4D,EAAa,KACftO,EAAG,OAAS,CACV,QAASugC,EACPrhC,IAAS+hB,GACAkf,IAAN,GAA4BjhC,EAAK,WAAX,IACtBkV,EAAQ1U,EAASygC,GACpBjhC,IAASkhC,GACAF,IAAN,GAAyBhhC,EAAK,WAAX,IACnBqV,EAAM7U,EAASwgC,GACZhhC,EAAK,WAAX,IAAwBQ,GAAUR,EAAK,UAAU,SACnCqhC,EAAOrhC,EAAK,cAAtB,MACJoP,EAAapP,EACbA,EAAOqhC,EAET,OAAS,CACP,GAAIrhC,IAASwL,EAAM,MAAM1K,EAOzB,GANAsO,IAAe2S,GACb,EAAEof,IAAsBF,IACvB/rB,EAAQ1U,GACX4O,IAAe8xB,GACb,EAAEE,IAAqBJ,IACtB3rB,EAAM7U,IACK6gC,EAAOrhC,EAAK,eAAtB,KAAoC,MACxCA,EAAOoP,EACPA,EAAapP,EAAK,UAChC,CACYA,EAAOqhC,CACnB,CACUtf,EACS7M,IAAP,IAAuBG,IAAP,GAAa,KAAO,CAAE,MAAOH,EAAO,IAAKG,CAAG,CACxE,MAAe0M,EAAkB,IACjC,CACIA,EAAkBA,GAAmB,CAAE,MAAO,EAAG,IAAK,CAAC,CAC3D,MAASA,EAAkB,KAGzB,IAFAuf,GAAuB,CAAE,YAAa91B,EAAM,eAAgBuW,CAAe,EAC3Egf,GAAW,GACNH,GAAa/tB,EAAqB+tB,KAAT,MAC5B,GACI/tB,EAAa+tB,GACdp1B,EAAOqH,EAAW,OACZA,EAAW,aAAe,QAAjC,GAAmDrH,IAAT,KAEzCA,EAAK,OAASqH,EAAc+tB,GAAap1B,MAE1C,MAAgBo1B,KAAT,MAAuB,CAI5B,OAHA/tB,EAAa+tB,GACbM,EAAYruB,EAAW,UACvBrH,EAAOqH,EAAW,MACVA,EAAW,IAAG,CACpB,IAAK,GACH,IACSrH,EAAO,KAAd,IACEA,EAAOqH,EAAW,YACnBrH,EAAgBA,IAAT,KAAgBA,EAAK,OAAS,KAC7BA,IAAT,MAEA,IACEuW,EAAkB,EAClBA,EAAkBvW,EAAK,OACvBuW,IAECkf,EAAez1B,EAAKuW,CAAe,EACjCkf,EAAa,IAAI,KAAOA,EAAa,SAC5C,MACF,IAAK,IACL,IAAK,IACH,MACF,IAAK,GACH,IAAWz1B,EAAO,QAAd,GAAgC01B,IAAT,KAAoB,CAC7C11B,EAAO,OACPuW,EAAkBlP,EAClBouB,EAAeC,EAAU,cACzBA,EAAYA,EAAU,cACtBF,EAAYjf,EAAgB,UAC5B,GAAI,CACF,IAAIwf,GAAoBpK,GACtBpV,EAAgB,KAChBkf,GAEFz1B,EAAOw1B,EAAU,wBACfO,GACAL,GAEFF,EAAU,oCAAsCx1B,CAChE,OAAuBrP,GAAO,CACd6iC,GACEjd,EACAA,EAAgB,OAChB5lB,GAElB,CACA,CACY,MACF,IAAK,GACH,IAAWqP,EAAO,QAAd,GACF,GACIA,EAAOqH,EAAW,UAAU,cAC7BkP,EAAkBvW,EAAK,SAClBuW,IAAN,EAEAyf,GAAwBh2B,CAAI,UACfuW,IAAN,EACP,OAAQvW,EAAK,SAAQ,CACnB,IAAK,OACL,IAAK,OACL,IAAK,OACHg2B,GAAwBh2B,CAAI,EAC5B,MACF,QACEA,EAAK,YAAc,EACvC,EACY,MACF,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,GACL,IAAK,GACL,IAAK,IACH,MACF,QACE,IAAWA,EAAO,QAAd,EAAqB,MAAM,MAAM5H,EAAuB,GAAG,CAAC,CAC5E,CAEQ,GADA4H,EAAOqH,EAAW,QACLrH,IAAT,KAAe,CACjBA,EAAK,OAASqH,EAAW,OACzB+tB,GAAap1B,EACb,KACV,CACQo1B,GAAa/tB,EAAW,MAChC,CACA,CACA,SAAS4uB,GAA0BC,EAAc9iB,EAASigB,EAAc,CACtE,IAAID,EAAQC,EAAa,MACzB,OAAQA,EAAa,IAAG,CACtB,IAAK,GACL,IAAK,IACL,IAAK,IACH8C,GAAiCD,EAAc7C,CAAY,EAC3DD,EAAQ,GAAKD,GAA0B,EAAGE,CAAY,EACtD,MACF,IAAK,GAEH,GADA8C,GAAiCD,EAAc7C,CAAY,EACvDD,EAAQ,EACV,GAAM8C,EAAe7C,EAAa,UAAqBjgB,IAAT,KAC5C,GAAI,CACF8iB,EAAa,kBAAiB,CAC1C,OAAmBvlC,EAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,CAAK,CAC5E,KACa,CACH,IAAIo9B,EAAYpC,GACd0H,EAAa,KACbjgB,EAAQ,eAEVA,EAAUA,EAAQ,cAClB,GAAI,CACF8iB,EAAa,mBACXnI,EACA3a,EACA8iB,EAAa,oCAE3B,OAAmBE,EAAW,CAClB5C,GACEH,EACAA,EAAa,OACb+C,EAEd,CACA,CACMhD,EAAQ,IAAMU,GAAqBT,CAAY,EAC/CD,EAAQ,KAAOY,GAAgBX,EAAcA,EAAa,MAAM,EAChE,MACF,IAAK,GAEH,GADA8C,GAAiCD,EAAc7C,CAAY,EAEzDD,EAAQ,KACN8C,EAAe7C,EAAa,YAAuB6C,IAAT,MAC5C,CAEA,GADA9iB,EAAU,KACGigB,EAAa,QAAtB,KACF,OAAQA,EAAa,MAAM,IAAG,CAC5B,IAAK,IACL,IAAK,GACHjgB,EAAUigB,EAAa,MAAM,UAC7B,MACF,IAAK,GACHjgB,EAAUigB,EAAa,MAAM,SAC3C,CACQ,GAAI,CACFhT,GAAgB6V,EAAc9iB,CAAO,CAC/C,OAAiBziB,EAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,CAAK,CAC1E,CACA,CACM,MACF,IAAK,IACMyiB,IAAT,MACEggB,EAAQ,GACRyB,GAA+BxB,CAAY,EAC/C,IAAK,IACL,IAAK,GACH8C,GAAiCD,EAAc7C,CAAY,EAClDjgB,IAAT,MAAoBggB,EAAQ,GAAKgB,GAAgBf,CAAY,EAC7DD,EAAQ,KAAOY,GAAgBX,EAAcA,EAAa,MAAM,EAChE,MACF,IAAK,IACH8C,GAAiCD,EAAc7C,CAAY,EAC3D,MACF,IAAK,IACH8C,GAAiCD,EAAc7C,CAAY,EAC3DD,EAAQ,GAAKiD,GAAiCH,EAAc7C,CAAY,EACxE,MACF,IAAK,IACH8C,GAAiCD,EAAc7C,CAAY,EAC3DD,EAAQ,GAAKkD,GAAiCJ,EAAc7C,CAAY,EACxED,EAAQ,KACJ8C,EAAe7C,EAAa,cACrB6C,IAAT,OACIA,EAAeA,EAAa,WACrBA,IAAT,OACI7C,EAAekD,GAAgC,KAC/C,KACAlD,GAEFmD,GAA8BN,EAAc7C,CAAY,KAC9D,MACF,IAAK,IAEH,GADAD,EAAiBC,EAAa,gBAAtB,MAAuC2B,GAC3C,CAAC5B,EAAO,CACVhgB,EACYA,IAAT,MAA6BA,EAAQ,gBAAjB,MACrB6hB,GACFlH,EAAYiH,GACZ,IAAIyB,EAAgCxB,GACpCD,GAA2B5B,GAC1B6B,GAA4B7hB,IAAY,CAACqjB,EACtCC,GACER,EACA7C,GACOA,EAAa,aAAe,QAAnC,CACd,EACY8C,GAAiCD,EAAc7C,CAAY,EAC/D2B,GAA2BjH,EAC3BkH,GAA4BwB,CACpC,CACM,MACF,IAAK,IACH,MACF,QACEN,GAAiCD,EAAc7C,CAAY,CACjE,CACA,CACA,SAASsD,GAAwB18B,EAAO,CACtC,IAAIQ,EAAYR,EAAM,UACbQ,IAAT,OACIR,EAAM,UAAY,KAAO08B,GAAwBl8B,CAAS,GAC9DR,EAAM,MAAQ,KACdA,EAAM,UAAY,KAClBA,EAAM,QAAU,KACVA,EAAM,MAAZ,IACIQ,EAAYR,EAAM,UACXQ,IAAT,MAAsB+I,GAAsB/I,CAAS,GACvDR,EAAM,UAAY,KAClBA,EAAM,OAAS,KACfA,EAAM,aAAe,KACrBA,EAAM,cAAgB,KACtBA,EAAM,cAAgB,KACtBA,EAAM,aAAe,KACrBA,EAAM,UAAY,KAClBA,EAAM,YAAc,IACtB,CACA,IAAI28B,GAAa,KACfC,GAAwB,GAC1B,SAASC,GACPZ,EACAtC,EACAj/B,EACA,CACA,IAAKA,EAASA,EAAO,MAAgBA,IAAT,MAC1BoiC,GAA6Bb,EAActC,EAAwBj/B,CAAM,EACtEA,EAASA,EAAO,OACvB,CACA,SAASoiC,GACPb,EACAtC,EACAoD,EACA,CACA,GAAI93B,IAA+B,OAAOA,GAAa,sBAAnC,WAClB,GAAI,CACFA,GAAa,qBAAqBD,GAAY+3B,CAAY,CAChE,MAAkB,CAAA,CAChB,OAAQA,EAAa,IAAG,CACtB,IAAK,IACH/B,IACEf,GAAgB8C,EAAcpD,CAAsB,EACtDkD,GACEZ,EACAtC,EACAoD,GAEFA,EAAa,cACTA,EAAa,cAAc,QAC3BA,EAAa,YACXA,EAAeA,EAAa,UAC9BA,EAAa,WAAW,YAAYA,CAAY,GACpD,MACF,IAAK,IACH/B,IACEf,GAAgB8C,EAAcpD,CAAsB,EACtD,IAAIqD,EAAiBL,GACnBM,EAA4BL,GAC9BngB,GAAiBsgB,EAAa,IAAI,IAC9BJ,GAAaI,EAAa,UAAaH,GAAwB,IACnEC,GACEZ,EACAtC,EACAoD,GAEFG,GAAyBH,EAAa,SAAS,EAC/CJ,GAAaK,EACbJ,GAAwBK,EACxB,MACF,IAAK,GACHjC,IACEf,GAAgB8C,EAAcpD,CAAsB,EACxD,IAAK,GAWH,GAVAqD,EAAiBL,GACjBM,EAA4BL,GAC5BD,GAAa,KACbE,GACEZ,EACAtC,EACAoD,GAEFJ,GAAaK,EACbJ,GAAwBK,EACXN,KAAT,KACF,GAAIC,GACF,GAAI,EACKD,GAAW,WAAjB,EACGA,GAAW,KACAA,GAAW,WAAtB,OACEA,GAAW,cAAc,KACzBA,IACJ,YAAYI,EAAa,SAAS,CAChD,OAAmBrmC,EAAO,CACd6iC,GACEwD,EACApD,EACAjjC,EAEd,KAEU,IAAI,CACFimC,GAAW,YAAYI,EAAa,SAAS,CACzD,OAAmBrmC,EAAO,CACd6iC,GACEwD,EACApD,EACAjjC,EAEd,CACM,MACF,IAAK,IACMimC,KAAT,OACGC,IACKX,EAAeU,GACjBQ,GACQlB,EAAa,WAAnB,EACIA,EAAa,KACFA,EAAa,WAAxB,OACEA,EAAa,cAAc,KAC3BA,EACNc,EAAa,WAEfK,GAAiBnB,CAAY,GAC7BkB,GAAuBR,GAAYI,EAAa,SAAS,GAC/D,MACF,IAAK,GACHC,EAAiBL,GACjBM,EAA4BL,GAC5BD,GAAaI,EAAa,UAAU,cACpCH,GAAwB,GACxBC,GACEZ,EACAtC,EACAoD,GAEFJ,GAAaK,EACbJ,GAAwBK,EACxB,MACF,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,IACHzD,GAA4B,EAAGuD,EAAcpD,CAAsB,EACnEqB,IACExB,GAA4B,EAAGuD,EAAcpD,CAAsB,EACrEkD,GACEZ,EACAtC,EACAoD,GAEF,MACF,IAAK,GACH/B,KACGf,GAAgB8C,EAAcpD,CAAsB,EACpDqD,EAAiBD,EAAa,UAChB,OAAOC,EAAe,sBAArC,YACElD,GACEiD,EACApD,EACAqD,CACZ,GACMH,GACEZ,EACAtC,EACAoD,GAEF,MACF,IAAK,IACHF,GACEZ,EACAtC,EACAoD,GAEF,MACF,IAAK,IACH/B,IACGgC,EAAiBhC,KACT+B,EAAa,gBAAtB,KACFF,GACEZ,EACAtC,EACAoD,GAEF/B,GAA4BgC,EAC5B,MACF,QACEH,GACEZ,EACAtC,EACAoD,EAER,CACA,CACA,SAASX,GAAiCH,EAAc7C,EAAc,CACpE,GACWA,EAAa,gBAAtB,OACE6C,EAAe7C,EAAa,UACrB6C,IAAT,OACIA,EAAeA,EAAa,cAAyBA,IAAT,OAChD,CACAA,EAAeA,EAAa,WAC5B,GAAI,CACFmB,GAAiBnB,CAAY,CACnC,OAAavlC,EAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,CAAK,CACtE,CACA,CACA,CACA,SAAS2lC,GAAiCJ,EAAc7C,EAAc,CACpE,GACWA,EAAa,gBAAtB,OACE6C,EAAe7C,EAAa,UACrB6C,IAAT,OACIA,EAAeA,EAAa,cACrBA,IAAT,OACIA,EAAeA,EAAa,WAAsBA,IAAT,QAE/C,GAAI,CACFmB,GAAiBnB,CAAY,CACnC,OAAavlC,EAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,CAAK,CACtE,CACA,CACA,SAAS2mC,GAAcjE,EAAc,CACnC,OAAQA,EAAa,IAAG,CACtB,IAAK,IACL,IAAK,IACL,IAAK,IACH,IAAIkE,EAAalE,EAAa,UAC9B,OAASkE,IAAT,OACGA,EAAalE,EAAa,UAAY,IAAI8B,IACtCoC,EACT,IAAK,IACH,OACGlE,EAAeA,EAAa,UAC5BkE,EAAalE,EAAa,YAClBkE,IAAT,OACGA,EAAalE,EAAa,YAAc,IAAI8B,IAC/CoC,EAEJ,QACE,MAAM,MAAMn/B,EAAuB,IAAKi7B,EAAa,GAAG,CAAC,CAC/D,CACA,CACA,SAASmE,GAA6BnE,EAAcoE,EAAW,CAC7D,IAAIF,EAAaD,GAAcjE,CAAY,EAC3CoE,EAAU,QAAQ,SAAUC,EAAU,CACpC,GAAI,CAACH,EAAW,IAAIG,CAAQ,EAAG,CAC7BH,EAAW,IAAIG,CAAQ,EACvB,IAAIC,EAAQC,GAAqB,KAAK,KAAMvE,EAAcqE,CAAQ,EAClEA,EAAS,KAAKC,EAAOA,CAAK,CAChC,CACA,CAAG,CACH,CACA,SAASE,GAAmCC,EAAeC,EAAa,CACtE,IAAI1b,EAAY0b,EAAY,UAC5B,GAAa1b,IAAT,KACF,QAASjrB,EAAI,EAAGA,EAAIirB,EAAU,OAAQjrB,IAAK,CACzC,IAAIgrB,EAAgBC,EAAUjrB,CAAC,EAC7B4O,EAAO83B,EACP/b,EAAcgc,EACdpjC,EAASonB,EACXtnB,EAAG,KAAgBE,IAAT,MAAmB,CAC3B,OAAQA,EAAO,IAAG,CAChB,IAAK,IACH,GAAI+hB,GAAiB/hB,EAAO,IAAI,EAAG,CACjCiiC,GAAajiC,EAAO,UACpBkiC,GAAwB,GACxB,MAAMpiC,CACpB,CACY,MACF,IAAK,GACHmiC,GAAajiC,EAAO,UACpBkiC,GAAwB,GACxB,MAAMpiC,EACR,IAAK,GACL,IAAK,GACHmiC,GAAajiC,EAAO,UAAU,cAC9BkiC,GAAwB,GACxB,MAAMpiC,CAClB,CACQE,EAASA,EAAO,MACxB,CACM,GAAaiiC,KAAT,KAAqB,MAAM,MAAMx+B,EAAuB,GAAG,CAAC,EAChE2+B,GAA6B/2B,EAAM+b,EAAaK,CAAa,EAC7Dwa,GAAa,KACbC,GAAwB,GACxB72B,EAAOoc,EAAc,UACZpc,IAAT,OAAkBA,EAAK,OAAS,MAChCoc,EAAc,OAAS,IAC7B,CACE,GAAI2b,EAAY,aAAe,MAC7B,IAAKA,EAAcA,EAAY,MAAgBA,IAAT,MACpCC,GAA6BD,EAAaD,CAAa,EACpDC,EAAcA,EAAY,OACnC,CACA,IAAIE,GAAuB,KAC3B,SAASD,GAA6B3E,EAAcrzB,EAAM,CACxD,IAAIoT,EAAUigB,EAAa,UACzBD,EAAQC,EAAa,MACvB,OAAQA,EAAa,IAAG,CACtB,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,IACHwE,GAAmC73B,EAAMqzB,CAAY,EACrD6E,GAA4B7E,CAAY,EACxCD,EAAQ,IACLK,GAA4B,EAAGJ,EAAcA,EAAa,MAAM,EACjEF,GAA0B,EAAGE,CAAY,EACzCI,GAA4B,EAAGJ,EAAcA,EAAa,MAAM,GAClE,MACF,IAAK,GACHwE,GAAmC73B,EAAMqzB,CAAY,EACrD6E,GAA4B7E,CAAY,EACxCD,EAAQ,MACL6B,IACU7hB,IAAT,MACA8gB,GAAgB9gB,EAASA,EAAQ,MAAM,GAC3CggB,EAAQ,IACN4B,KACE3B,EAAeA,EAAa,YACrBA,IAAT,OACID,EAAQC,EAAa,UACdD,IAAT,OACIhgB,EAAUigB,EAAa,OAAO,gBAC/BA,EAAa,OAAO,gBACVjgB,IAAT,KAAmBggB,EAAQhgB,EAAQ,OAAOggB,CAAK,KACvD,MACF,IAAK,IACH,IAAI+E,EAAgBF,GAOpB,GANAJ,GAAmC73B,EAAMqzB,CAAY,EACrD6E,GAA4B7E,CAAY,EACxCD,EAAQ,MACL6B,IACU7hB,IAAT,MACA8gB,GAAgB9gB,EAASA,EAAQ,MAAM,GACvCggB,EAAQ,EAAG,CACb,IAAIgF,EAA2BhlB,IAAT,KAAmBA,EAAQ,cAAgB,KAEjE,GADAggB,EAAQC,EAAa,cACRjgB,IAAT,KACF,GAAaggB,IAAT,KACF,GAAaC,EAAa,YAAtB,KAAiC,CACnC5+B,EAAG,CACD2+B,EAAQC,EAAa,KACrBjgB,EAAUigB,EAAa,cACvB8E,EAAgBA,EAAc,eAAiBA,EAC/C7iC,EAAG,OAAQ89B,EAAK,CACd,IAAK,QACHgF,EACED,EAAc,qBAAqB,OAAO,EAAE,CAAC,GAE7C,CAACC,GACDA,EAAgB70B,EAAuB,GACvC60B,EAAgBp1B,EAAmB,GAEjCo1B,EAAgB,eADlB,8BAEAA,EAAgB,aAAa,UAAU,KAEtCA,EAAkBD,EAAc,cAAc/E,CAAK,EAClD+E,EAAc,KAAK,aACjBC,EACAD,EAAc,cAAc,cAAc,IAEhD/G,GAAqBgH,EAAiBhF,EAAOhgB,CAAO,EACpDglB,EAAgBp1B,EAAmB,EAAIqwB,EACvClvB,GAAoBi0B,CAAe,EACnChF,EAAQgF,EACR,MAAM3jC,EACR,IAAK,OACH,IAAI4jC,EAAaC,GACf,OACA,OACAH,GACA,IAAI/E,GAAShgB,EAAQ,MAAQ,GAAG,EAClC,GAAIilB,GACF,QAASjnC,EAAI,EAAGA,EAAIinC,EAAW,OAAQjnC,IACrC,GACIgnC,EAAkBC,EAAWjnC,CAAC,EAChCgnC,EAAgB,aAAa,MAAM,KACxBhlB,EAAQ,MAAhB,MAA+BA,EAAQ,OAAf,GACrB,KACAA,EAAQ,OACZglB,EAAgB,aAAa,KAAK,KACvBhlB,EAAQ,KAAhB,KAAsB,KAAOA,EAAQ,MACxCglB,EAAgB,aAAa,OAAO,KACzBhlB,EAAQ,OAAhB,KAAwB,KAAOA,EAAQ,QAC1CglB,EAAgB,aAAa,aAAa,KAC/BhlB,EAAQ,aAAhB,KACG,KACAA,EAAQ,aAChB,CACAilB,EAAW,OAAOjnC,EAAG,CAAC,EACtB,MAAMkE,CAChC,EACoB8iC,EAAkBD,EAAc,cAAc/E,CAAK,EACnDhC,GAAqBgH,EAAiBhF,EAAOhgB,CAAO,EACpD+kB,EAAc,KAAK,YAAYC,CAAe,EAC9C,MACF,IAAK,OACH,GACGC,EAAaC,GACZ,OACA,UACAH,GACA,IAAI/E,GAAShgB,EAAQ,SAAW,GAAG,GAErC,IAAKhiB,EAAI,EAAGA,EAAIinC,EAAW,OAAQjnC,IACjC,GACIgnC,EAAkBC,EAAWjnC,CAAC,EAChCgnC,EAAgB,aAAa,SAAS,KAC3BhlB,EAAQ,SAAhB,KACG,KACA,GAAKA,EAAQ,UACjBglB,EAAgB,aAAa,MAAM,KACxBhlB,EAAQ,MAAhB,KAAuB,KAAOA,EAAQ,OACzCglB,EAAgB,aAAa,UAAU,KAC5BhlB,EAAQ,UAAhB,KACG,KACAA,EAAQ,WACdglB,EAAgB,aAAa,YAAY,KAC9BhlB,EAAQ,WAAhB,KACG,KACAA,EAAQ,YACdglB,EAAgB,aAAa,SAAS,KAC3BhlB,EAAQ,SAAhB,KACG,KACAA,EAAQ,SAChB,CACAilB,EAAW,OAAOjnC,EAAG,CAAC,EACtB,MAAMkE,CAChC,EACoB8iC,EAAkBD,EAAc,cAAc/E,CAAK,EACnDhC,GAAqBgH,EAAiBhF,EAAOhgB,CAAO,EACpD+kB,EAAc,KAAK,YAAYC,CAAe,EAC9C,MACF,QACE,MAAM,MAAMhgC,EAAuB,IAAKg7B,CAAK,CAAC,CAClE,CACgBgF,EAAgBp1B,EAAmB,EAAIqwB,EACvClvB,GAAoBi0B,CAAe,EACnChF,EAAQgF,CACxB,CACc/E,EAAa,UAAYD,CACvC,MACcmF,GACEJ,EACA9E,EAAa,KACbA,EAAa,gBAGjBA,EAAa,UAAYmF,GACvBL,EACA/E,EACAC,EAAa,oBAGjB+E,IAAoBhF,GACNgF,IAAT,KACYhlB,EAAQ,YAAjB,OACEA,EAAUA,EAAQ,UACpBA,EAAQ,WAAW,YAAYA,CAAO,GACtCglB,EAAgB,QACXhF,IAAT,KACImF,GACEJ,EACA9E,EAAa,KACbA,EAAa,SACjC,EACkBmF,GACEL,EACA/E,EACAC,EAAa,gBAEVD,IAAT,MACSC,EAAa,YAAtB,MACAgB,GACEhB,EACAA,EAAa,cACbjgB,EAAQ,cAExB,CACM,MACF,IAAK,IACHykB,GAAmC73B,EAAMqzB,CAAY,EACrD6E,GAA4B7E,CAAY,EACxCD,EAAQ,MACL6B,IACU7hB,IAAT,MACA8gB,GAAgB9gB,EAASA,EAAQ,MAAM,GAClCA,IAAT,MACEggB,EAAQ,GACRiB,GACEhB,EACAA,EAAa,cACbjgB,EAAQ,eAEZ,MACF,IAAK,GAOH,GANAykB,GAAmC73B,EAAMqzB,CAAY,EACrD6E,GAA4B7E,CAAY,EACxCD,EAAQ,MACL6B,IACU7hB,IAAT,MACA8gB,GAAgB9gB,EAASA,EAAQ,MAAM,GACvCigB,EAAa,MAAQ,GAAI,CAC3B8E,EAAgB9E,EAAa,UAC7B,GAAI,CACFlsB,GAAegxB,EAAe,EAAE,CAC1C,OAAiBxnC,GAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,EAAK,CAC1E,CACA,CACMyiC,EAAQ,GACEC,EAAa,WAArB,OACE8E,EAAgB9E,EAAa,cAC/BgB,GACEhB,EACA8E,EACS/kB,IAAT,KAAmBA,EAAQ,cAAgB+kB,CACrD,GACM/E,EAAQ,OAAS8B,GAAiB,IAClC,MACF,IAAK,GAGH,GAFA2C,GAAmC73B,EAAMqzB,CAAY,EACrD6E,GAA4B7E,CAAY,EACpCD,EAAQ,EAAG,CACb,GAAaC,EAAa,YAAtB,KACF,MAAM,MAAMj7B,EAAuB,GAAG,CAAC,EACzCg7B,EAAQC,EAAa,cACrBjgB,EAAUigB,EAAa,UACvB,GAAI,CACFjgB,EAAQ,UAAYggB,CAC9B,OAAiBziC,GAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,EAAK,CAC1E,CACA,CACM,MACF,IAAK,GAOH,GANA8nC,GAAY,KACZN,EAAgBF,GAChBA,GAAuBS,GAAiB14B,EAAK,aAAa,EAC1D63B,GAAmC73B,EAAMqzB,CAAY,EACrD4E,GAAuBE,EACvBD,GAA4B7E,CAAY,EACpCD,EAAQ,GAAchgB,IAAT,MAAoBA,EAAQ,cAAc,aACzD,GAAI,CACFikB,GAAiBr3B,EAAK,aAAa,CAC7C,OAAiBrP,GAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,EAAK,CAC1E,CACMukC,KACIA,GAAiB,GAAKyD,GAAsBtF,CAAY,GAC5D,MACF,IAAK,GACHD,EAAQ6E,GACRA,GAAuBS,GACrBrF,EAAa,UAAU,eAEzBwE,GAAmC73B,EAAMqzB,CAAY,EACrD6E,GAA4B7E,CAAY,EACxC4E,GAAuB7E,EACvB,MACF,IAAK,IACHyE,GAAmC73B,EAAMqzB,CAAY,EACrD6E,GAA4B7E,CAAY,EACxC,MACF,IAAK,IACHwE,GAAmC73B,EAAMqzB,CAAY,EACrD6E,GAA4B7E,CAAY,EACxCD,EAAQ,IACJA,EAAQC,EAAa,YACdD,IAAT,OACIC,EAAa,YAAc,KAC7BmE,GAA6BnE,EAAcD,CAAK,IACpD,MACF,IAAK,IACHyE,GAAmC73B,EAAMqzB,CAAY,EACrD6E,GAA4B7E,CAAY,EACxCA,EAAa,MAAM,MAAQ,MACfA,EAAa,gBAAtB,OACWjgB,IAAT,MAA6BA,EAAQ,gBAAjB,QACtBwlB,GAA+Bp6B,GAAG,GACrC40B,EAAQ,IACJA,EAAQC,EAAa,YACdD,IAAT,OACIC,EAAa,YAAc,KAC7BmE,GAA6BnE,EAAcD,CAAK,IACpD,MACF,IAAK,IACH+E,EAAyB9E,EAAa,gBAAtB,KAChB,IAAIwF,EAAqBzlB,IAAT,MAA6BA,EAAQ,gBAAjB,KAClC0lB,EAA+B9D,GAC/ByB,EAAgCxB,GAOlC,GANAD,GAA2B8D,GAAgCX,EAC3DlD,GAA4BwB,GAAiCoC,EAC7DhB,GAAmC73B,EAAMqzB,CAAY,EACrD4B,GAA4BwB,EAC5BzB,GAA2B8D,EAC3BZ,GAA4B7E,CAAY,EACpCD,EAAQ,KACV3+B,EAAG,IACDuL,EAAOqzB,EAAa,UAClBrzB,EAAK,YAAcm4B,EACfn4B,EAAK,YAAc,GACnBA,EAAK,YAAc,EACvBm4B,IACY/kB,IAAT,MACCylB,GACA7D,IACAC,IACA8D,GAA0C1F,CAAY,GAC1DjgB,EAAU,KACVpT,EAAOqzB,IAGT,CACA,GAAUrzB,EAAK,MAAX,GAAyBA,EAAK,MAAZ,IACpB,GAAaoT,IAAT,KAAkB,CACpBylB,EAAYzlB,EAAUpT,EACtB,GAAI,CACF,GAAMo4B,EAAkBS,EAAU,UAAYV,EAC3CE,EAAaD,EAAgB,MACb,OAAOC,EAAW,aAAjC,WACIA,EAAW,YAAY,UAAW,OAAQ,WAAW,EACpDA,EAAW,QAAU,WACzB,CACHjnC,EAAIynC,EAAU,UACd,IAAIjoB,EAAYioB,EAAU,cAAc,MACtCG,EAEWpoB,GAAT,MACAA,EAAU,eAAe,SAAS,EAC9BA,EAAU,QACV,KACRxf,EAAE,MAAM,QACE4nC,GAAR,MAAiC,OAAOA,GAArB,UACf,IACC,GAAKA,GAAS,KAAI,CAC3C,CACA,OAAuBroC,GAAO,CACd6iC,GAAwBqF,EAAWA,EAAU,OAAQloC,EAAK,CAC1E,CACA,UAC2BqP,EAAK,MAAX,GACT,GAAaoT,IAAT,KAAkB,CACpBylB,EAAY74B,EACZ,GAAI,CACF64B,EAAU,UAAU,UAAYV,EAC5B,GACAU,EAAU,aAC9B,OAAuBloC,GAAO,CACd6iC,GAAwBqF,EAAWA,EAAU,OAAQloC,EAAK,CAC1E,CACA,UAC4BqP,EAAK,MAAZ,IACT,GAAaoT,IAAT,KAAkB,CACpBylB,EAAY74B,EACZ,GAAI,CACF,IAAIiW,EAAW4iB,EAAU,UACzBV,EACIc,GAA+BhjB,EAAU,EAAE,EAC3CgjB,GAA+BJ,EAAU,UAAW,EAAE,CAC1E,OAAuBloC,GAAO,CACd6iC,GAAwBqF,EAAWA,EAAU,OAAQloC,EAAK,CAC1E,CACA,WAEqBqP,EAAK,MAAZ,IAA0BA,EAAK,MAAZ,IACVA,EAAK,gBAAd,MACAA,IAASqzB,IACFrzB,EAAK,QAAd,KACA,CACAA,EAAK,MAAM,OAASA,EACpBA,EAAOA,EAAK,MACZ,QACZ,CACU,GAAIA,IAASqzB,EAAc,MAAM5+B,EACjC,KAAgBuL,EAAK,UAAd,MAAyB,CAC9B,GAAaA,EAAK,SAAd,MAAwBA,EAAK,SAAWqzB,EAAc,MAAM5+B,EAChE2e,IAAYpT,IAASoT,EAAU,MAC/BpT,EAAOA,EAAK,MACxB,CACUoT,IAAYpT,IAASoT,EAAU,MAC/BpT,EAAK,QAAQ,OAASA,EAAK,OAC3BA,EAAOA,EAAK,OACtB,CACMozB,EAAQ,IACJA,EAAQC,EAAa,YACdD,IAAT,OACIhgB,EAAUggB,EAAM,WACThgB,IAAT,OACIggB,EAAM,WAAa,KACrBoE,GAA6BnE,EAAcjgB,CAAO,KACxD,MACF,IAAK,IACHykB,GAAmC73B,EAAMqzB,CAAY,EACrD6E,GAA4B7E,CAAY,EACxCD,EAAQ,IACJA,EAAQC,EAAa,YACdD,IAAT,OACIC,EAAa,YAAc,KAC7BmE,GAA6BnE,EAAcD,CAAK,IACpD,MACF,IAAK,IACH,MACF,IAAK,IACH,MACF,QACEyE,GAAmC73B,EAAMqzB,CAAY,EACnD6E,GAA4B7E,CAAY,CAChD,CACA,CACA,SAAS6E,GAA4B7E,EAAc,CACjD,IAAID,EAAQC,EAAa,MACzB,GAAID,EAAQ,EAAG,CACb,GAAI,CACF,QACM8F,EAAiBnB,EAAc1E,EAAa,OACvC0E,IAAT,MAEA,CACA,GAAIvD,GAAauD,CAAW,EAAG,CAC7BmB,EAAkBnB,EAClB,KACV,CACQA,EAAcA,EAAY,MAClC,CACM,GAAYmB,GAAR,KAAyB,MAAM,MAAM9gC,EAAuB,GAAG,CAAC,EACpE,OAAQ8gC,EAAgB,IAAG,CACzB,IAAK,IACH,IAAIvkC,EAASukC,EAAgB,UAC3BvE,EAASF,GAAepB,CAAY,EACtCuB,GAA4BvB,EAAcsB,EAAQhgC,CAAM,EACxD,MACF,IAAK,GACH,IAAIwkC,EAAaD,EAAgB,UACjCA,EAAgB,MAAQ,KACrB/xB,GAAegyB,EAAY,EAAE,EAAID,EAAgB,OAAS,KAC7D,IAAIE,EAAa3E,GAAepB,CAAY,EAC5CuB,GAA4BvB,EAAc+F,EAAYD,CAAU,EAChE,MACF,IAAK,GACL,IAAK,GACH,IAAIE,EAAaH,EAAgB,UAAU,cACzCI,EAAa7E,GAAepB,CAAY,EAC1CqB,GACErB,EACAiG,EACAD,GAEF,MACF,QACE,MAAM,MAAMjhC,EAAuB,GAAG,CAAC,CACjD,CACA,OAAazH,EAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,CAAK,CACtE,CACI0iC,EAAa,OAAS,EAC1B,CACED,EAAQ,OAASC,EAAa,OAAS,MACzC,CACA,SAASsF,GAAsBZ,EAAa,CAC1C,GAAIA,EAAY,aAAe,KAC7B,IAAKA,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAC5D,IAAI99B,EAAQ89B,EACZY,GAAsB1+B,CAAK,EACrBA,EAAM,MAAZ,GAAmBA,EAAM,MAAQ,MAAQA,EAAM,UAAU,MAAK,EAC9D89B,EAAcA,EAAY,OAChC,CACA,CACA,SAAS5B,GAAiCn2B,EAAM+3B,EAAa,CAC3D,GAAIA,EAAY,aAAe,KAC7B,IAAKA,EAAcA,EAAY,MAAgBA,IAAT,MACpC9B,GAA0Bj2B,EAAM+3B,EAAY,UAAWA,CAAW,EAC/DA,EAAcA,EAAY,OACnC,CACA,SAASgB,GAA0ChB,EAAa,CAC9D,IAAKA,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAC5D,IAAI1E,EAAe0E,EACnB,OAAQ1E,EAAa,IAAG,CACtB,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,IACHI,GAA4B,EAAGJ,EAAcA,EAAa,MAAM,EAChE0F,GAA0C1F,CAAY,EACtD,MACF,IAAK,GACHa,GAAgBb,EAAcA,EAAa,MAAM,EACjD,IAAIpd,EAAWod,EAAa,UACb,OAAOpd,EAAS,sBAA/B,YACE8d,GACEV,EACAA,EAAa,OACbpd,GAEJ8iB,GAA0C1F,CAAY,EACtD,MACF,IAAK,IACH8D,GAAyB9D,EAAa,SAAS,EACjD,IAAK,IACL,IAAK,GACHa,GAAgBb,EAAcA,EAAa,MAAM,EACjD0F,GAA0C1F,CAAY,EACtD,MACF,IAAK,IACMA,EAAa,gBAAtB,MACE0F,GAA0C1F,CAAY,EACxD,MACF,IAAK,IACH0F,GAA0C1F,CAAY,EACtD,MACF,QACE0F,GAA0C1F,CAAY,CAC9D,CACI0E,EAAcA,EAAY,OAC9B,CACA,CACA,SAASrB,GACP6C,EACAxB,EACAyB,EACA,CAGA,IAFAA,EACEA,IAAuCzB,EAAY,aAAe,QAAlC,EAC7BA,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAC5D,IAAI3kB,EAAU2kB,EAAY,UACxB7B,EAAeqD,EACflG,EAAe0E,EACf3E,EAAQC,EAAa,MACvB,OAAQA,EAAa,IAAG,CACtB,IAAK,GACL,IAAK,IACL,IAAK,IACHqD,GACER,EACA7C,EACAmG,GAEFrG,GAA0B,EAAGE,CAAY,EACzC,MACF,IAAK,GAQH,GAPAqD,GACER,EACA7C,EACAmG,GAEFpmB,EAAUigB,EACV6C,EAAe9iB,EAAQ,UACJ,OAAO8iB,EAAa,mBAAnC,WACF,GAAI,CACFA,EAAa,kBAAiB,CAC1C,OAAmBvlC,EAAO,CACd6iC,GAAwBpgB,EAASA,EAAQ,OAAQziB,CAAK,CAClE,CAGQ,GAFAyiB,EAAUigB,EACV6C,EAAe9iB,EAAQ,YACV8iB,IAAT,KAAuB,CACzB,IAAIjgB,EAAW7C,EAAQ,UACvB,GAAI,CACF,IAAIqmB,EAAkBvD,EAAa,OAAO,gBAC1C,GAAauD,IAAT,KACF,IACEvD,EAAa,OAAO,gBAAkB,KAAMA,EAAe,EAC3DA,EAAeuD,EAAgB,OAC/BvD,IAEA9V,GAAaqZ,EAAgBvD,CAAY,EAAGjgB,CAAQ,CACpE,OAAmBtlB,EAAO,CACd6iC,GAAwBpgB,EAASA,EAAQ,OAAQziB,CAAK,CAClE,CACA,CACQ6oC,GACEpG,EAAQ,IACRU,GAAqBT,CAAY,EACnCW,GAAgBX,EAAcA,EAAa,MAAM,EACjD,MACF,IAAK,IACHwB,GAA+BxB,CAAY,EAC7C,IAAK,IACL,IAAK,GACHqD,GACER,EACA7C,EACAmG,GAEFA,GACWpmB,IAAT,MACAggB,EAAQ,GACRgB,GAAgBf,CAAY,EAC9BW,GAAgBX,EAAcA,EAAa,MAAM,EACjD,MACF,IAAK,IACHqD,GACER,EACA7C,EACAmG,GAEF,MACF,IAAK,IACH9C,GACER,EACA7C,EACAmG,GAEFA,GACEpG,EAAQ,GACRiD,GAAiCH,EAAc7C,CAAY,EAC7D,MACF,IAAK,IACHqD,GACER,EACA7C,EACAmG,GAEFA,GACEpG,EAAQ,GACRkD,GAAiCJ,EAAc7C,CAAY,EAC7D,MACF,IAAK,IACMA,EAAa,gBAAtB,MACEqD,GACER,EACA7C,EACAmG,GAEJxF,GAAgBX,EAAcA,EAAa,MAAM,EACjD,MACF,IAAK,IACH,MACF,QACEqD,GACER,EACA7C,EACAmG,EAEV,CACIzB,EAAcA,EAAY,OAC9B,CACA,CACA,SAAS2B,GAAmCtmB,EAASigB,EAAc,CACjE,IAAIsG,EAAgB,KACXvmB,IAAT,MACWA,EAAQ,gBAAjB,MACSA,EAAQ,cAAc,YAA/B,OACCumB,EAAgBvmB,EAAQ,cAAc,UAAU,MACnDA,EAAU,KACDigB,EAAa,gBAAtB,MACWA,EAAa,cAAc,YAApC,OACCjgB,EAAUigB,EAAa,cAAc,UAAU,MAClDjgB,IAAYumB,IACDvmB,GAAR,MAAmBA,EAAQ,WACpBumB,GAAR,MAAyBzgB,GAAaygB,CAAa,EACvD,CACA,SAASC,GAA8BxmB,EAASigB,EAAc,CAC5DjgB,EAAU,KACDigB,EAAa,YAAtB,OACGjgB,EAAUigB,EAAa,UAAU,cAAc,OAClDA,EAAeA,EAAa,cAAc,MAC1CA,IAAiBjgB,IACdigB,EAAa,WAAoBjgB,GAAR,MAAmB8F,GAAa9F,CAAO,EACrE,CACA,SAASymB,GACP75B,EACA+3B,EACA+B,EACAC,EACA,CACA,GAAIhC,EAAY,aAAe,MAC7B,IAAKA,EAAcA,EAAY,MAAgBA,IAAT,MACpCiC,GACEh6B,EACA+3B,EACA+B,EACAC,GAEChC,EAAcA,EAAY,OACnC,CACA,SAASiC,GACP9D,EACA7C,EACAyG,EACAC,EACA,CACA,IAAI3G,EAAQC,EAAa,MACzB,OAAQA,EAAa,IAAG,CACtB,IAAK,GACL,IAAK,IACL,IAAK,IACHwG,GACE3D,EACA7C,EACAyG,EACAC,GAEF3G,EAAQ,MAAQD,GAA0B,EAAGE,CAAY,EACzD,MACF,IAAK,GACHwG,GACE3D,EACA7C,EACAyG,EACAC,GAEF,MACF,IAAK,GACHF,GACE3D,EACA7C,EACAyG,EACAC,GAEF3G,EAAQ,OACJ8C,EAAe,KACR7C,EAAa,YAAtB,OACG6C,EAAe7C,EAAa,UAAU,cAAc,OACtDA,EAAeA,EAAa,cAAc,MAC3CA,IAAiB6C,IACd7C,EAAa,WACN6C,GAAR,MAAwBhd,GAAagd,CAAY,IACrD,MACF,IAAK,IACH,GAAI9C,EAAQ,KAAM,CAChByG,GACE3D,EACA7C,EACAyG,EACAC,GAEF7D,EAAe7C,EAAa,UAC5B,GAAI,CACF,IAAI4G,EAAyB5G,EAAa,cACxC6G,EAAKD,EAAuB,GAC5BE,EAAeF,EAAuB,aACzB,OAAOE,GAAtB,YACEA,EACED,EACS7G,EAAa,YAAtB,KAAkC,QAAU,SAC5C6C,EAAa,sBACb,GAEd,OAAiBvlC,EAAO,CACd6iC,GAAwBH,EAAcA,EAAa,OAAQ1iC,CAAK,CAC1E,CACA,MACQkpC,GACE3D,EACA7C,EACAyG,EACAC,GAEJ,MACF,IAAK,IACHF,GACE3D,EACA7C,EACAyG,EACAC,GAEF,MACF,IAAK,IACHF,GACE3D,EACA7C,EACAyG,EACAC,GAEF,MACF,IAAK,IACH,MACF,IAAK,IACHE,EAAyB5G,EAAa,UACtC6G,EAAK7G,EAAa,UACTA,EAAa,gBAAtB,KACI4G,EAAuB,YAAc,EACnCJ,GACE3D,EACA7C,EACAyG,EACAC,CACd,EACYK,GAAwClE,EAAc7C,CAAY,EACpE4G,EAAuB,YAAc,EACnCJ,GACE3D,EACA7C,EACAyG,EACAC,CACd,GACcE,EAAuB,aAAe,EACxCI,GACEnE,EACA7C,EACAyG,EACAC,GACO1G,EAAa,aAAe,SAAnC,GAA6C,EAC3D,GACMD,EAAQ,MAAQsG,GAAmCQ,EAAI7G,CAAY,EACnE,MACF,IAAK,IACHwG,GACE3D,EACA7C,EACAyG,EACAC,GAEF3G,EAAQ,MACNwG,GAA8BvG,EAAa,UAAWA,CAAY,EACpE,MACF,QACEwG,GACE3D,EACA7C,EACAyG,EACAC,EAER,CACA,CACA,SAASM,GACPd,EACAxB,EACAuC,EACAC,EACAf,EACA,CAIA,IAHAA,EACEA,KACQzB,EAAY,aAAe,SAAlC,GAA4C,IAC1CA,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAC5D,IAAI7B,EAAeqD,EACjBlG,EAAe0E,EACf+B,EAAiBQ,EACjBP,EAAuBQ,EACvBnH,EAAQC,EAAa,MACvB,OAAQA,EAAa,IAAG,CACtB,IAAK,GACL,IAAK,IACL,IAAK,IACHgH,GACEnE,EACA7C,EACAyG,EACAC,EACAP,GAEFrG,GAA0B,EAAGE,CAAY,EACzC,MACF,IAAK,IACH,MACF,IAAK,IACH,IAAIpd,EAAWod,EAAa,UACnBA,EAAa,gBAAtB,KACIpd,EAAS,YAAc,EACrBokB,GACEnE,EACA7C,EACAyG,EACAC,EACAP,CAChB,EACcY,GACElE,EACA7C,CAChB,GACcpd,EAAS,aAAe,EAC1BokB,GACEnE,EACA7C,EACAyG,EACAC,EACAP,CACd,GACQA,GACEpG,EAAQ,MACRsG,GACErG,EAAa,UACbA,GAEJ,MACF,IAAK,IACHgH,GACEnE,EACA7C,EACAyG,EACAC,EACAP,GAEFA,GACEpG,EAAQ,MACRwG,GAA8BvG,EAAa,UAAWA,CAAY,EACpE,MACF,QACEgH,GACEnE,EACA7C,EACAyG,EACAC,EACAP,EAEV,CACIzB,EAAcA,EAAY,OAC9B,CACA,CACA,SAASqC,GACPb,EACAxB,EACA,CACA,GAAIA,EAAY,aAAe,MAC7B,IAAKA,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAC5D,IAAI7B,EAAeqD,EACjBlG,EAAe0E,EACf3E,EAAQC,EAAa,MACvB,OAAQA,EAAa,IAAG,CACtB,IAAK,IACH+G,GAAwClE,EAAc7C,CAAY,EAClED,EAAQ,MACNsG,GACErG,EAAa,UACbA,GAEJ,MACF,IAAK,IACH+G,GAAwClE,EAAc7C,CAAY,EAClED,EAAQ,MACNwG,GAA8BvG,EAAa,UAAWA,CAAY,EACpE,MACF,QACE+G,GAAwClE,EAAc7C,CAAY,CAC5E,CACM0E,EAAcA,EAAY,OAChC,CACA,CACA,IAAIyC,GAAsB,KAC1B,SAASC,GACP1C,EACA+B,EACAY,EACA,CACA,GAAI3C,EAAY,aAAeyC,GAC7B,IAAKzC,EAAcA,EAAY,MAAgBA,IAAT,MACpC4C,GACE5C,EACA+B,EACAY,GAEC3C,EAAcA,EAAY,OACnC,CACA,SAAS4C,GACP1gC,EACA6/B,EACAY,EACA,CACA,OAAQzgC,EAAM,IAAG,CACf,IAAK,IACHwgC,GACExgC,EACA6/B,EACAY,GAEFzgC,EAAM,MAAQugC,IACHvgC,EAAM,gBAAf,MACA2gC,GACEF,EACAzC,GACAh+B,EAAM,cACNA,EAAM,eAEV,MACF,IAAK,GACHwgC,GACExgC,EACA6/B,EACAY,GAEF,MACF,IAAK,GACL,IAAK,GACH,IAAIG,EAAwB5C,GAC5BA,GAAuBS,GAAiBz+B,EAAM,UAAU,aAAa,EACrEwgC,GACExgC,EACA6/B,EACAY,GAEFzC,GAAuB4C,EACvB,MACF,IAAK,IACM5gC,EAAM,gBAAf,OACI4gC,EAAwB5gC,EAAM,UACvB4gC,IAAT,MACSA,EAAsB,gBAA/B,MACMA,EAAwBL,GACzBA,GAAsB,SACvBC,GACExgC,EACA6/B,EACAY,GAEDF,GAAsBK,GACvBJ,GACExgC,EACA6/B,EACAY,CACd,GACM,MACF,QACED,GACExgC,EACA6/B,EACAY,EAER,CACA,CACA,SAASI,GAAwB/C,EAAa,CAC5C,IAAIgD,EAAgBhD,EAAY,UAChC,GACWgD,IAAT,OACEhD,EAAcgD,EAAc,MAAiBhD,IAAT,MACtC,CACAgD,EAAc,MAAQ,KACtB,GACGA,EAAgBhD,EAAY,QAC1BA,EAAY,QAAU,KACtBA,EAAcgD,QACHhD,IAAT,KACX,CACA,CACA,SAASiD,GAAyCjD,EAAa,CAC7D,IAAI1b,EAAY0b,EAAY,UAC5B,IAAWA,EAAY,MAAQ,MAA3B,EAAgC,CAClC,GAAa1b,IAAT,KACF,QAASjrB,EAAI,EAAGA,EAAIirB,EAAU,OAAQjrB,IAAK,CACzC,IAAIgrB,EAAgBC,EAAUjrB,CAAC,EAC/BgkC,GAAahZ,EACb6e,GACE7e,EACA2b,EAEV,CACI+C,GAAwB/C,CAAW,CACvC,CACE,GAAIA,EAAY,aAAe,MAC7B,IAAKA,EAAcA,EAAY,MAAgBA,IAAT,MACpCmD,GAA4BnD,CAAW,EACpCA,EAAcA,EAAY,OACnC,CACA,SAASmD,GAA4B7H,EAAc,CACjD,OAAQA,EAAa,IAAG,CACtB,IAAK,GACL,IAAK,IACL,IAAK,IACH2H,GAAyC3H,CAAY,EACrDA,EAAa,MAAQ,MACnBI,GAA4B,EAAGJ,EAAcA,EAAa,MAAM,EAClE,MACF,IAAK,GACH2H,GAAyC3H,CAAY,EACrD,MACF,IAAK,IACH2H,GAAyC3H,CAAY,EACrD,MACF,IAAK,IACH,IAAIpd,EAAWod,EAAa,UACnBA,EAAa,gBAAtB,MACApd,EAAS,YAAc,IACbod,EAAa,SAAtB,MAAuCA,EAAa,OAAO,MAA3B,KAC3Bpd,EAAS,aAAe,GAC1BklB,GAA4C9H,CAAY,GACxD2H,GAAyC3H,CAAY,EACzD,MACF,QACE2H,GAAyC3H,CAAY,CAC3D,CACA,CACA,SAAS8H,GAA4CpD,EAAa,CAChE,IAAI1b,EAAY0b,EAAY,UAC5B,IAAWA,EAAY,MAAQ,MAA3B,EAAgC,CAClC,GAAa1b,IAAT,KACF,QAASjrB,EAAI,EAAGA,EAAIirB,EAAU,OAAQjrB,IAAK,CACzC,IAAIgrB,EAAgBC,EAAUjrB,CAAC,EAC/BgkC,GAAahZ,EACb6e,GACE7e,EACA2b,EAEV,CACI+C,GAAwB/C,CAAW,CACvC,CACE,IAAKA,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAE5D,OADA1b,EAAY0b,EACJ1b,EAAU,IAAG,CACnB,IAAK,GACL,IAAK,IACL,IAAK,IACHoX,GAA4B,EAAGpX,EAAWA,EAAU,MAAM,EAC1D8e,GAA4C9e,CAAS,EACrD,MACF,IAAK,IACHjrB,EAAIirB,EAAU,UACdjrB,EAAE,YAAc,IACZA,EAAE,aAAe,GACnB+pC,GAA4C9e,CAAS,GACvD,MACF,QACE8e,GAA4C9e,CAAS,CAC7D,CACI0b,EAAcA,EAAY,OAC9B,CACA,CACA,SAASkD,GACPG,EACAxH,EACA,CACA,KAAgBwB,KAAT,MAAuB,CAC5B,IAAIn7B,EAAQm7B,GACZ,OAAQn7B,EAAM,IAAG,CACf,IAAK,GACL,IAAK,IACL,IAAK,IACHw5B,GAA4B,EAAGx5B,EAAO25B,CAAsB,EAC5D,MACF,IAAK,IACL,IAAK,IACH,GACW35B,EAAM,gBAAf,MACSA,EAAM,cAAc,YAA7B,KACA,CACA,IAAIkf,EAAQlf,EAAM,cAAc,UAAU,KAClCkf,GAAR,MAAiBA,EAAM,UACjC,CACQ,MACF,IAAK,IACHD,GAAajf,EAAM,cAAc,KAAK,CAC9C,CAEI,GADAkf,EAAQlf,EAAM,MACDkf,IAAT,KAAiBA,EAAM,OAASlf,EAASm7B,GAAajc,OAExD1kB,EAAG,IAAKwF,EAAQmhC,EAA6BhG,KAAT,MAAuB,CACzDjc,EAAQic,GACR,IAAIiG,EAAUliB,EAAM,QAClB4C,EAAc5C,EAAM,OAEtB,GADAwd,GAAwBxd,CAAK,EACzBA,IAAUlf,EAAO,CACnBm7B,GAAa,KACb,MAAM3gC,CAChB,CACQ,GAAa4mC,IAAT,KAAkB,CACpBA,EAAQ,OAAStf,EACjBqZ,GAAaiG,EACb,MAAM5mC,CAChB,CACQ2gC,GAAarZ,CACrB,CACA,CACA,CACA,IAAIuf,GAAyB,CACzB,gBAAiB,SAAUC,EAAc,CACvC,IAAIpiB,EAAQb,GAAYU,EAAY,EAClCwiB,EAAeriB,EAAM,KAAK,IAAIoiB,CAAY,EAC5C,OAAWC,IAAX,SACIA,EAAeD,EAAY,EAC7BpiB,EAAM,KAAK,IAAIoiB,EAAcC,CAAY,GACpCA,CACb,EACI,YAAa,UAAY,CACvB,OAAOljB,GAAYU,EAAY,EAAE,WAAW,MAClD,GAEEyiB,GAAiC,OAAO,SAAtB,WAAgC,QAAU,IAC5D5c,GAAmB,EACnBxE,GAAqB,KACrBpc,GAAiB,KACjBiiB,GAAgC,EAChCwb,GAAgC,EAChCC,GAA4B,KAC5BC,GAA6C,GAC7CC,GAAmC,GACnCC,GAA0C,GAC1Cpb,GAAuB,EACvBwM,GAA+B,EAC/B/M,GAAiC,EACjC4b,GAA4C,EAC5CC,GAAgC,EAChCvM,GAA6B,EAC7BuC,GAAoC,EACpC3E,GAAqC,KACrCrW,GAAsC,KACtCilB,GAAoD,GACpDrD,GAA+B,EAC/B3e,GAAiC,EACjC8Y,GAAqC,IACrCmJ,GAA4B,KAC5BrP,GAAyC,KACzCsP,GAAuB,EACvBC,GAAqB,KACrBC,GAAsB,KACtBC,GAAsB,EACtBC,GAA+B,EAC/BC,GAA4B,KAC5BC,GAA2B,KAC3B9pB,GAAoB,EACpBC,GAAwB,KAC1B,SAAS+W,IAAoB,CAC3B,OAAc9K,GAAmB,KAA1B,GAAsCqB,KAAN,EACnCA,GAAgC,CAACA,GACxB5wB,EAAqB,IAA9B,KACEqqB,GAAqB,EACrBlX,GAAqB,CAC7B,CACA,SAAS0mB,IAAsB,CAC7B,GAAUsG,KAAN,EACF,IAAWvP,GAAgC,aAAvC,GAAqDtZ,GAAa,CACpE,IAAIjG,EAAOjB,GACXA,KAA+B,GACxBA,GAA6B,WAApC,IACGA,GAA6B,QAChC+vB,GAA6B9uB,CACnC,MAAW8uB,GAA6B,UACtC,OAAA9uB,EAAOkgB,GAA2B,QACzBlgB,IAAT,OAAkBA,EAAK,OAAS,IACzB8uB,EACT,CACA,SAAS3J,GAAsB9lB,EAAM/F,EAAO0G,EAAM,EAE7CX,IAASqa,KACDqhB,KAAN,GACOA,KAAN,IACK17B,EAAK,sBAAd,QAEA08B,GAAkB18B,EAAM,CAAC,EACvB28B,GACE38B,EACAkgB,GACAuP,GACA,KAENzuB,GAAkBhB,EAAMW,CAAI,IACjBke,GAAmB,KAA1B,GAAgC7e,IAASqa,MAC3Cra,IAASqa,MACCwE,GAAmB,KAA1B,IACEkd,IAA6Cp7B,GAC1CusB,KAAN,GACEyP,GACE38B,EACAkgB,GACAuP,GACA,EACV,GACMmN,GAAsB58B,CAAI,EAChC,CACA,SAAS68B,GAAkB/E,EAAej4B,EAAOi9B,EAAW,CAC1D,IAAWje,GAAmB,KAA1B,EAA8B,MAAM,MAAMzmB,EAAuB,GAAG,CAAC,EACzE,IAAI2kC,EACC,CAACD,IACOj9B,EAAQ,OAAf,IACOA,EAAQi4B,EAAc,gBAA7B,GACFt3B,GAA0Bs3B,EAAej4B,CAAK,EAChDm9B,EAAaD,EACTE,GAAqBnF,EAAej4B,CAAK,EACzCq9B,GAAepF,EAAej4B,EAAO,EAAE,EAC3Cs9B,EAAsBJ,EACxB,EAAG,CACD,GAAUC,IAAN,EAAkB,CACpBnB,IACE,CAACkB,GACDJ,GAAkB7E,EAAej4B,EAAO,EAAG,EAAE,EAC/C,KACN,KAAW,CAEL,GADAi9B,EAAYhF,EAAc,QAAQ,UAEhCqF,GACA,CAACC,GAAqCN,CAAS,EAC/C,CACAE,EAAaE,GAAepF,EAAej4B,EAAO,EAAE,EACpDs9B,EAAsB,GACtB,QACR,CACM,GAAUH,IAAN,EAAkB,CAEpB,GADAG,EAAsBt9B,EAClBi4B,EAAc,2BAA6BqF,EAC7C,IAAI9gC,EAA2B,OAE9BA,EAA2By7B,EAAc,aAAe,WACtDz7B,EACOA,IAAN,EACIA,EACAA,EAA2B,UACzB,UACA,EACZ,GAAUA,IAAN,EAAgC,CAClCwD,EAAQxD,EACR5H,EAAG,CACD,IAAIuL,EAAO83B,EACXkF,EAAa3P,GACb,IAAIgQ,EAAoBr9B,EAAK,QAAQ,cAAc,aAQnD,GAPAq9B,IACGX,GAAkB18B,EAAM3D,CAAwB,EAAE,OAAS,KAC9DA,EAA2B6gC,GACzBl9B,EACA3D,EACA,IAEQA,IAAN,EAAgC,CAClC,GACEy/B,IACA,CAACuB,EACD,CACAr9B,EAAK,4BAA8Bm9B,EACnCpB,IACEoB,EACFH,EAAa,EACb,MAAMvoC,CACtB,CACc0oC,EAAsBnmB,GACtBA,GAAsCgmB,EAC7BG,IAAT,OACYnmB,KAAT,KACIA,GAAsCmmB,EACvCnmB,GAAoC,KAAK,MACvCA,GACAmmB,CACtB,EACA,CACYH,EAAa3gC,CACzB,CAEU,GADA8gC,EAAsB,GACZH,IAAN,EAAkB,QAChC,CACA,CACM,GAAUA,IAAN,EAAkB,CACpBN,GAAkB5E,EAAe,CAAC,EAClC6E,GAAkB7E,EAAej4B,EAAO,EAAG,EAAE,EAC7C,KACR,CACMpL,EAAG,CAGD,OAFAsoC,EAAkBjF,EAClBqF,EAAsBH,EACdG,EAAmB,CACzB,IAAK,GACL,IAAK,GACH,MAAM,MAAM/kC,EAAuB,GAAG,CAAC,EACzC,IAAK,GACH,IAAKyH,EAAQ,WAAaA,EAAO,MACnC,IAAK,GACH88B,GACEI,EACAl9B,EACA4vB,GACA,CAACmM,IAEH,MAAMnnC,EACR,IAAK,GACHuiB,GAAsC,KACtC,MACF,IAAK,GACL,IAAK,GACH,MACF,QACE,MAAM,MAAM5e,EAAuB,GAAG,CAAC,CACnD,CACQ,IACGyH,EAAQ,YAAcA,IACrBm9B,EAAapE,GAA+B,IAAMp6B,GAAG,EACvD,GAAKw+B,GACL,CAOA,GANAL,GACEI,EACAl9B,EACA4vB,GACA,CAACmM,IAEO77B,GAAag9B,EAAiB,EAAG,EAAE,IAAzC,EAA4C,MAAMtoC,EACtD6nC,GAAsBz8B,EACtBk9B,EAAgB,cAAgBO,GAC9BC,GAAoB,KAClB,KACAR,EACAD,EACA9lB,GACAklB,GACAD,GACAp8B,EACA4vB,GACAsM,GACA/J,GACA4J,GACAuB,EACA,YACA,GACA,GAEFH,GAEF,MAAMvoC,CAChB,CACQ8oC,GACER,EACAD,EACA9lB,GACAklB,GACAD,GACAp8B,EACA4vB,GACAsM,GACA/J,GACA4J,GACAuB,EACA,KACA,GACA,EAEV,CACA,CACI,KACJ,OAAW,IACTP,GAAsB9E,CAAa,CACrC,CACA,SAASyF,GACPv9B,EACAqzB,EACAmK,EACAC,EACAC,EACA79B,EACAwB,EACAC,EACAC,EACAo8B,EACAX,EACAY,EACAC,EACAC,EACA,CAGA,GAFA99B,EAAK,cAAgB,GACrB49B,EAAwBvK,EAAa,aAEnCuK,EAAwB,OACVA,EAAwB,YAAtC,SACA,CACAA,EAAwB,CACtB,YAAa,KACb,MAAO,EACP,SAAU,EACV,SAAU,EACV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IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,cACL,IAAK,YACL,IAAK,aACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,cACL,IAAK,WACL,IAAK,aACL,IAAK,eACL,IAAK,SACL,IAAK,kBACL,IAAK,YACL,IAAK,mBACL,IAAK,iBACL,IAAK,oBACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,OACL,IAAK,mBACL,IAAK,QACL,IAAK,aACL,IAAK,WACL,IAAK,SACL,IAAK,cACH,MAAO,GACT,IAAK,OACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,eACH,MAAO,GACT,IAAK,UACH,OAAQ/O,GAAuB,EAAE,CAC/B,KAAKC,GACH,MAAO,GACT,KAAKC,GACH,MAAO,GACT,KAAKC,GACL,KAAKC,GACH,MAAO,IACT,KAAKC,GACH,MAAO,WACT,QACE,MAAO,GACjB,CACI,QACE,MAAO,GACb,CACA,CACA,IAAIkwC,GAA4B,GAC9BC,GAAc,KACdC,GAAa,KACbC,GAAc,KACdC,GAAiB,IAAI,IACrBC,GAAwB,IAAI,IAC5BC,GAAiC,CAAA,EACjCR,GACE,sPAAsP,MACpP,KAEN,SAASF,GAAuBphC,EAAchF,EAAa,CACzD,OAAQgF,EAAY,CAClB,IAAK,UACL,IAAK,WACHyhC,GAAc,KACd,MACF,IAAK,YACL,IAAK,YACHC,GAAa,KACb,MACF,IAAK,YACL,IAAK,WACHC,GAAc,KACd,MACF,IAAK,cACL,IAAK,aACHC,GAAe,OAAO5mC,EAAY,SAAS,EAC3C,MACF,IAAK,oBACL,IAAK,qBACH6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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA+FnBC,GAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyNdC,GAAqB,IAAY,CAC5C,GAAI,EAAA,OAAO,SAAa,MAGpB,EAAA,SAAS,eAAeH,EAAe,GAAK,SAAS,eAAeD,EAAe,GAKvF,CAAA,GAAI,CAAC,SAAS,eAAeC,EAAe,EAAG,CAC7C,MAAMI,EAAa,SAAS,cAAc,OAAO,EACjDA,EAAW,GAAKJ,GAChBI,EAAW,YAAcH,GACzB,SAAS,KAAK,YAAYG,CAAU,CACtC,CAGA,GAAI,CAAC,SAAS,eAAeL,EAAe,EAAG,CAC7C,MAAMM,EAAY,SAAS,cAAc,OAAO,EAChDA,EAAU,GAAKN,GACfM,EAAU,YAAcH,GACxB,SAAS,KAAK,YAAYG,CAAS,CACrC,CAAA,CACF,ECxVMC,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA8pBtB,IAAIC,GAAiB,GAad,MAAMC,GAAkB,IAAM,CACnC5U,EAAAA,UAAU,IAAM,CACd,GAAI,CAAA2U,GAEJ,CAAA,GAAI,CAEFJ,GAAA,EAGA,MAAMM,EAAe,SAAS,cAAc,OAAO,EACnDA,EAAa,GAAK,8BAClBA,EAAa,YAAcH,GAEtB,SAAS,eAAe,6BAA6B,GACxD,SAAS,KAAK,YAAYG,CAAY,EAGxCF,GAAiB,EACnB,MAAgB,CACdrZ,EAAO,MAAM,kCAAkC,CACjD,CAGA,MAAO,IAAM,CAGb,CAAA,CACF,EAAG,CAAA,CAAE,CACP,EC9rBMwZ,GAA2B,IAAM,CAAC,EAExC,SAASC,GAAyBC,EAA8B,CAC9D,MAAMC,EAAU,KAAK,IAAI,EAAG,KAAK,MAAMD,CAAY,CAAC,EACpD,GAAIC,EAAU,GACZ,MAAO,GAAGA,CAAO,IAEnB,MAAMC,EAAU,KAAK,MAAMD,EAAU,EAAE,EACjCE,EAAYF,EAAU,GAC5B,OAAOE,EAAY,EAAI,GAAGD,CAAO,KAAKC,CAAS,IAAM,GAAGD,CAAO,GACjE,CAEA,SAASE,GAA+BC,EAA4B,CAClE,OAAON,GAAyBM,EAAa,GAAI,CACnD,CAKA,MAAMC,GAAyB,CAAC,CAAE,QAAA19C,EAAS,MAAAqqC,EAAO,SAAAsT,KAA0E,CAC1H,MAAMC,EAA0BrqD,GAChBA,EAAK,MAAM,mDAAmD,EAC/D,IAAI,CAACsqD,EAAMnhE,IAAU,CAChC,GAAImhE,EAAK,WAAW,IAAI,GAAKA,EAAK,SAAS,IAAI,GAAKA,EAAK,OAAS,EAChE,OACE1a,EAAAA,IAAC,SAAA,CAAmB,MAAO,CAAE,WAAY,MAAO,MAAOkH,EAAM,SAAA,EAC1D,SAAAwT,EAAK,MAAM,EAAG,EAAE,GADNnhE,CAEb,EAGJ,MAAMohE,EAAYD,EAAK,MAAM,wCAAwC,EACrE,OAAIC,EAEA3a,EAAAA,IAAC,IAAA,CAEC,KAAM2a,EAAU,CAAC,EACjB,OAAO,SACP,IAAI,sBACJ,MAAO,CAAE,MAAOzT,EAAM,aAAc,eAAgB,YAAa,oBAAqB,KAAA,EAErF,WAAU,CAAC,CAAA,EANP3tD,CAAA,EAUJymD,EAAAA,IAACD,EAAAA,SAAA,CAAsB,SAAA2a,CAAA,EAARnhE,CAAa,CACrC,CAAC,EAGGqhE,EAAiBC,GACLA,EAAK,KAAA,EAAO,QAAQ,MAAO,EAAE,EAAE,QAAQ,MAAO,EAAE,EACjD,MAAM,GAAG,EAAE,IAAKC,GAASA,EAAK,KAAA,CAAM,EAAE,OAAO,CAACA,EAAMvhE,EAAOwhE,IACxED,EAAK,OAAS,GAAKvhE,EAAQwhE,EAAM,OAAS,CAC3C,EAGGC,EAAoBH,GAAiB,CACzC,MAAME,EAAQH,EAAcC,CAAI,EAChC,OAAOE,EAAM,OAAS,GAAKA,EAAM,MAAOD,GAAS,cAAc,KAAKA,CAAI,CAAC,CAC3E,EAEMG,EAA2BJ,GAAiB,CAChD,MAAMK,EAAYL,EAAK,QAAQ,GAAG,EAClC,GAAIK,GAAa,EACf,MAAO,CAAE,QAAS,KAAuB,WAAYL,CAAA,EAEvD,MAAMr1D,EAASq1D,EAAK,MAAM,EAAGK,CAAS,EAAE,KAAA,EACxC,MAAI,CAAC11D,GAAU,aAAa,KAAKA,CAAM,EAC9B,CAAE,QAAS,KAAM,WAAYq1D,CAAA,EAE/B,CAAE,QAASr1D,EAAQ,WAAYq1D,EAAK,MAAMK,CAAS,EAAE,MAAK,CACnE,EAEMC,EAA0B,CAACC,EAAoBC,IAA0B,CAC7E,MAAMC,EAAcV,EAAcQ,CAAU,EAAE,OACxCG,EAAiBX,EAAcS,CAAa,EAAE,OACpD,OAAIC,GAAe,GAAKA,IAAgBC,EAC/BF,EAEF,KAAK,MAAM,KAAK,CAAE,OAAQC,GAAe,IAAM,KAAK,EAAE,KAAK,KAAK,CAAC,IAC1E,EAEME,EAAuBC,GAAoB,CAC/C,GAAIA,EAAM,OAAS,GAAK,CAACA,EAAM,CAAC,EAAE,SAAS,GAAG,EAC5C,MAAO,CAAE,QAAS,KAAuB,MAAAA,CAAA,EAE3C,KAAM,CAAE,QAAAC,EAAS,WAAAN,CAAA,EAAeH,EAAwBQ,EAAM,CAAC,CAAC,EAC1DE,EAAmBP,EAAW,WAAW,GAAG,EAAIA,EAAa,KAAKA,CAAU,GAC5EQ,GAAsBT,EAAwBQ,EAAkBF,EAAM,CAAC,CAAC,EAC9E,MAAO,CACL,QAAAC,EACA,MAAO,CAACC,EAAkBC,GAAqB,GAAGH,EAAM,MAAM,CAAC,CAAC,CAAA,CAEpE,EAEMI,EAAmBJ,GAAoB,CAC3C,GAAIA,EAAM,OAAS,GAAK,CAACA,EAAM,CAAC,EAAE,SAAS,GAAG,EAC5C,MAAO,GAET,KAAM,CAAE,MAAOK,GAAoBN,EAAoBC,CAAK,EAC5D,OACET,EAAiBc,EAAgB,CAAC,CAAC,GACnClB,EAAckB,EAAgB,CAAC,CAAC,EAAE,QAAU,CAEhD,EAEMC,EAAyBlB,GAAiB,CAC9C,GAAI,CAACA,EAAK,SAAS,GAAG,EACpB,MAAO,CAACA,CAAI,EAGd,IAAImB,EAAUnB,EAAK,KAAA,EACnB,MAAMtgE,EAAmB,CAAA,EAEnB2gE,EAAYc,EAAQ,QAAQ,GAAG,EACrC,GAAId,EAAY,EAAG,CACjB,MAAM11D,GAASw2D,EAAQ,MAAM,EAAGd,CAAS,EAAE,KAAA,EACvC11D,IAAU,CAAC,aAAa,KAAKA,EAAM,IACrCjL,EAAO,KAAKiL,EAAM,EAClBw2D,EAAUA,EAAQ,MAAMd,CAAS,EAAE,KAAA,EAEvC,CAGA,OAAAc,EAAUA,EAAQ,QAAQ,mCAAoC,CAACC,GAAQC,KAAyB;AAAA,EAAKA,EAAY,EAAE,EACnHF,EAAUA,EAAQ,QAAQ,8BAA+B;AAAA,GAAO,EAChEA,EAAUA,EAAQ,QAAQ,0CAA2C;AAAA,CAAK,EAE1EzhE,EAAO,KAAK,GAAGyhE,EAAQ,MAAM;AAAA,CAAI,EAAE,IAAKtB,IAASA,GAAK,KAAA,CAAM,EAAE,OAAO,OAAO,CAAC,EACtEngE,CACT,EAEM4hE,EAAkCC,GAAqB,CAC3D,MAAMX,EAAQW,EAAS,MAAM;AAAA,CAAI,EAC3BC,EAAuB,CAAA,EAE7B,UAAWxB,KAAQY,EAAO,CACxB,GAAI,CAACZ,EAAK,SAAS,GAAG,EAAG,CACvBwB,EAAW,KAAKxB,CAAI,EACpB,QACF,CACAwB,EAAW,KAAK,GAAGN,EAAsBlB,CAAI,CAAC,CAChD,CAEA,OAAOwB,EAAW,KAAK;AAAA,CAAI,CAC7B,EAyCMC,GAvCyBF,GAAqB,CAClD,MAAMX,EAAQU,EAA+BC,CAAQ,EAAE,MAAM;AAAA,CAAI,EAC3DG,EAAmB,CAAA,EACzB,IAAIhjE,EAAQ,EAEZ,KAAOA,EAAQkiE,EAAM,QAAQ,CAC3B,MAAMZ,GAAOY,EAAMliE,CAAK,EAClBijE,GAAWf,EAAMliE,EAAQ,CAAC,GAAK,GAErC,GAAIshE,GAAK,SAAS,GAAG,GAAKG,EAAiBwB,EAAQ,EAAG,CAChDD,EAAO,OAAS,GAAKA,EAAOA,EAAO,OAAS,CAAC,EAAE,QACjDA,EAAO,KAAK,EAAE,EAGhB,KAAM,CAAE,QAAAb,GAAS,WAAAN,IAAeH,EAAwBJ,EAAI,EAO5D,IANIa,IACFa,EAAO,KAAKb,EAAO,EAErBa,EAAO,KAAKnB,GAAYD,EAAwBC,GAAYoB,EAAQ,CAAC,EACrEjjE,GAAS,EAEFA,EAAQkiE,EAAM,QAAUA,EAAMliE,CAAK,EAAE,SAAS,GAAG,GAAKkiE,EAAMliE,CAAK,EAAE,QACxEgjE,EAAO,KAAKd,EAAMliE,CAAK,CAAC,EACxBA,GAAS,EAGPA,EAAQkiE,EAAM,QAAUA,EAAMliE,CAAK,EAAE,QACvCgjE,EAAO,KAAK,EAAE,EAEhB,QACF,CAEAA,EAAO,KAAK1B,EAAI,EAChBthE,GAAS,CACX,CAEA,OAAOgjE,EAAO,KAAK;AAAA,CAAI,CACzB,GAEqC1/C,CAAO,EACzC,MAAM,SAAS,EACf,IAAK4/C,GAAUA,EAAM,KAAA,CAAM,EAC3B,OAAO,OAAO,EAEjB,OACEzc,EAAAA,IAAC,MAAA,CAAI,MAAO,CAAE,OAAQ,EAAG,MAAOkH,EAAM,UAAW,SAAAsT,GAC9C,SAAA8B,EAAO,IAAI,CAACG,EAAOC,IAAe,CACjC,MAAMjB,EAAQgB,EAAM,MAAM;AAAA,CAAI,EAAE,IAAK5B,IAASA,GAAK,KAAA,CAAM,EAAE,OAAO,OAAO,EACnE8B,EAAelB,EAAM,MAAOZ,IAAS,WAAW,KAAKA,EAAI,CAAC,EAC1D+B,GAAiBnB,EAAM,MAAOZ,IAAS,YAAY,KAAKA,EAAI,CAAC,EAC7DgC,GAAYpB,EAAM,SAAW,GAAK,aAAa,KAAKA,EAAM,CAAC,CAAC,EAC5DqB,GAAUjB,EAAgBJ,CAAK,EAErC,GAAIoB,GAAW,CACb,MAAMzsD,GAAOqrD,EAAM,CAAC,EAAE,QAAQ,aAAc,EAAE,EAC9C,OACEzb,EAAAA,IAAC,KAAA,CAEC,MAAO,CACL,UAAW0c,IAAe,EAAI,EAAI,OAClC,aAAc,UACd,WAAY,MACZ,SAAU,SACV,MAAOxV,EAAM,SAAA,EAGd,WAAuB92C,EAAI,CAAA,EATvBssD,CAAA,CAYX,CAEA,GAAII,GAAS,CACX,KAAM,CAAE,QAAApB,GAAS,MAAOqB,EAAA,EAAevB,EAAoBC,CAAK,EAC1D/F,EAAUkF,EAAcmC,GAAW,CAAC,CAAC,EACrCC,EAAOD,GAAW,MAAM,CAAC,EAAE,IAAInC,CAAa,EAAE,OAAQrwC,IAAQA,GAAI,SAAWmrC,EAAQ,MAAM,EAEjG,OACE5V,EAAAA,KAAC,MAAA,CAEC,MAAO,CACL,MAAO,OACP,UAAW,OACX,aAAc,MAAA,EAGf,SAAA,CAAA4b,GACC1b,EAAAA,IAAC,IAAA,CACC,MAAO,CACL,UAAW0c,IAAe,EAAI,EAAI,OAClC,aAAc,UACd,WAAY,IACZ,MAAOxV,EAAM,UACb,SAAAsT,CAAA,EAGD,WAAuBkB,EAAO,CAAA,CAAA,EAE/B,KACJ1b,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,OAAQ,aAAakH,EAAM,aAAe,2BAA2B,GACrE,aAAc,EACd,UAAW,MAAA,EAGf,SAAApH,EAAAA,KAAC,QAAA,CACC,MAAO,CACL,MAAO,OACP,SAAU4V,EAAQ,OAAS,EAAI,IAAM,OACrC,eAAgB,WAChB,MAAOxO,EAAM,UACb,SAAAsT,EACA,WAAY,IAAA,EAGd,SAAA,CAAAxa,EAAAA,IAAC,SACC,SAAAA,EAAAA,IAAC,KAAA,CACE,WAAQ,IAAI,CAACid,GAAQ1jE,KACpBymD,EAAAA,IAAC,KAAA,CAEC,MAAO,CACL,UAAW,OACX,QAAS,WACT,WAAY,IACZ,WAAYkH,EAAM,cAAgB,4BAClC,aAAc,aAAaA,EAAM,aAAe,2BAA2B,GAC3E,WAAY,QAAA,EAGb,WAAuB+V,EAAM,CAAA,EAVzB1jE,EAAA,CAYR,EACH,CAAA,CACF,EACAymD,EAAAA,IAAC,QAAA,CACE,SAAAgd,EAAK,IAAI,CAACzyC,GAAK2yC,KACdld,EAAAA,IAAC,KAAA,CACE,SAAAz1B,GAAI,IAAI,CAACuwC,GAAMqC,KACdnd,EAAAA,IAAC,KAAA,CAEC,MAAO,CACL,QAAS,WACT,cAAe,MACf,aACEkd,KAAaF,EAAK,OAAS,EACvB,OACA,aAAa9V,EAAM,aAAe,2BAA2B,GACnE,WAAY,QAAA,EAGb,WAAuB4T,EAAI,CAAA,EAXvBqC,EAAA,CAaR,CAAA,EAhBMD,EAiBT,CACD,CAAA,CACH,CAAA,CAAA,CAAA,CACF,CAAA,CACA,CAAA,EA/EKR,CAAA,CAkFX,CAEA,GAAIC,GAAgBC,GAAgB,CAClC,MAAMQ,GAAUR,GAAiB,KAAO,KACxC,OACE5c,EAAAA,IAACod,GAAA,CAEC,MAAO,CACL,aAAc,OACd,YAAa,UACb,MAAOlW,EAAM,UACb,SAAAsT,CAAA,EAGD,SAAAiB,EAAM,IAAI,CAACZ,GAAMwC,IAChBrd,MAAC,KAAA,CAAmB,MAAO,CAAE,aAAc,WACxC,SAAAya,EAAuBI,GAAK,QAAQ,mBAAoB,EAAE,CAAC,CAAA,EADrDwC,CAET,CACD,CAAA,EAZIX,CAAA,CAeX,CAEA,OACE1c,EAAAA,IAAC,IAAA,CAEC,MAAO,CACL,aAAc,OACd,WAAY,MACZ,MAAOkH,EAAM,UACb,SAAAsT,EACA,WAAY,UAAA,EAGb,WAAM,IAAI,CAACK,GAAMwC,KAChBvd,EAAAA,KAACC,WAAA,CACE,SAAA,CAAAsd,GAAY,SAAM,KAAA,CAAA,CAAG,EACrB5C,EAAuBI,EAAI,CAAA,CAAA,EAFfwC,EAGf,CACD,CAAA,EAdIX,CAAA,CAiBX,CAAC,CAAA,CACH,CAEJ,EAuCA,SAASY,GAAU7gE,EAAyB,CAC1C,OAAOA,IAAU,OAAY,OAAY,OAAOA,GAAU,SAAW,GAAGA,CAAK,KAAOA,CACtF,CAEA,SAAS8gE,GAAiB9gE,EAAyB,CACjD,GAAI,OAAOA,GAAU,SAAU,OAAOA,EACtC,GAAI,OAAOA,GAAU,SAAU,OAC/B,MAAM+gE,EAAU,OAAO/gE,EAAM,KAAA,EAAO,QAAQ,OAAQ,EAAE,CAAC,EACvD,OAAO,OAAO,SAAS+gE,CAAO,GAAKA,EAAU,EAAIA,EAAU,MAC7D,CAyEA,SAASC,GAAwBhhE,EAAuB,CACtD,OAAOA,EAAM,QAAQ,OAAQ,GAAG,EAAE,KAAA,CACpC,CAEA,SAASihE,GACPtL,EACAuL,EACc,CACd,MAAMC,EAA4BxL,EAC/B,OAAQ/R,GAAe,EAACA,GAAA,MAAAA,EAAY,aAAY,EAChD,MAAM,EAAG,CAAC,EACPmS,EAAyBmL,EAC5B,OAAQtd,GAAe,EAACA,GAAA,MAAAA,EAAY,aAAY,EAChD,MAAM,EAAG,CAAC,EAEPgS,EAAsBsL,EAAgB,KAAMtd,GAAeA,GAAY,YAAY,EAEzF,GAAI,CAACgS,EACH,OAAOG,EAAuB,OAASA,EAAyBoL,EAGlE,MAAMtL,EAAqBE,EAAuB,OAASA,EAAyBoL,EACpF,MAAO,CAACvL,EAAqB,GAAGC,CAAkB,EAAE,MAAM,EAAG,CAAC,CAChE,CAEA,SAASuL,GACP/K,EACAgL,EACAC,EACAC,EACc,CACd,MAAMC,MAAW,IACXvgB,EAA4B,CAAA,EAE5BwgB,EAAiB,CAAC9tD,EAAc3X,EAA2B,gBAAkB,CACjF,MAAM4jE,EAAaoB,GAAwBrtD,CAAI,EAC/C,GAAI,CAACisD,EAAY,OACjB,MAAM3jE,EAAM2jE,EAAW,YAAA,EACnB4B,EAAK,IAAIvlE,CAAG,IAChBulE,EAAK,IAAIvlE,CAAG,EACZglD,EAAY,KAAK,CACf,GAAI,YAAYA,EAAY,MAAM,IAAIhlD,EAAI,QAAQ,cAAe,GAAG,CAAC,GACrE,KAAM2jE,EACN,KAAA5jE,EACA,aAAc,EAAA,CACf,EACH,EAEM0lE,MAAa,IAEbC,EAAgB3hE,GAA0B,CAC9C,MAAM4/D,EAAaoB,GAAwBhhE,GAAS,EAAE,EACtD,GAAI,CAAC4/D,EAAY,OACjB,MAAMvP,EAAUuP,EACb,QAAQ,2CAA4C,EAAE,EACtD,QAAQ,QAAS,EAAE,EACnB,KAAA,EACEvP,GACLqR,EAAO,IAAIrR,CAAO,CACpB,GAECkR,GAAgB,CAAA,GAAI,QAASK,GAASD,EAAaC,GAAM,KAAK,CAAC,GAC/DN,GAAe,CAAA,GAAI,QAASM,GAASD,EAAaC,GAAM,KAAK,CAAC,EAEvCP,EACrB,MAAM,KAAK,EACX,IAAKjD,GAAS4C,GAAwB5C,EAAK,QAAQ,WAAY,EAAE,CAAC,CAAC,EACnE,OAAO,OAAO,EACd,OAAQA,GAASA,EAAK,QAAU,IAAMA,EAAK,QAAU,EAAE,EAE1C,QAASA,GAAS,CAC5BsD,EAAO,MAAQ,GACnBC,EAAavD,CAAI,CACnB,CAAC,EAED,MAAMyD,EAAab,GAAwB3K,EAAM,QAAQ,WAAY,EAAE,CAAC,EAClEyL,EAAY,MAAM,KAAKJ,CAAM,EAAE,MAAM,EAAG,CAAC,EAU/C,MATsB,CACpBI,EAAU,CAAC,EAAI,sBAAsBA,EAAU,CAAC,CAAC,GAAK,GACtDA,EAAU,CAAC,EAAI,+BAA+BA,EAAU,CAAC,CAAC,GAAK,GAC/DA,EAAU,CAAC,EAAI,gCAAgCA,EAAU,CAAC,CAAC,GAAK,GAChE,8BACA,oCAAoCD,CAAU,GAC9C,qCAAA,EAGY,QAAQ,CAACluD,EAAM7W,IAAU,CACjCmkD,EAAY,QAAU,GAC1BwgB,EAAe9tD,EAAM7W,IAAU,EAAI,aAAe,aAAa,CACjE,CAAC,EAEMmkD,EAAY,MAAM,EAAG,CAAC,CAC/B,CAEA,SAAS8gB,IAA6E,CACpF,GAAI,OAAO,OAAW,IAAa,MAAO,UAC1C,MAAMC,EAAQ,OAAO,WACrB,OAAIA,EAAQ,IAAY,SACpBA,EAAQ,KAAa,SAClB,SACT,CAWA,SAASC,GAAyBC,EAA0C,CAC1E,OAAIA,EACK,CACL,MAAO,CACL,SAAU,QACV,KAAM,EACN,MAAO,EACP,OAAQ,EACR,MAAO,OACP,SAAU,OACV,OAAQ,kDACR,UAAW,kDACX,QAAS,EACT,OAAQ,EACR,OAAQ,WACR,UAAW,YAAA,EAEb,WAAY,OACZ,cAAe,OACf,YAAa,OACb,eAAgB,OAChB,kBAAmB,GAAA,EAIhB,CACL,MAAO,CACL,SAAU,QACV,KAAM,MACN,OAAQ,OACR,UAAW,mBACX,MAAO,iCACP,SAAU,OACV,UAAW,qBACX,OAAQ,WACR,UAAW,YAAA,EAEb,WAAY,iCACZ,cAAe,OACf,YAAa,mBACb,eAAgB,OAChB,kBAAmB,MAAA,CAEvB,CAEA,SAASC,GAAkBniE,EAAgB,CACzC,MAAM+yD,EAAU/yD,GAAO,KAAA,EACvB,GAAI,CAAC+yD,GAAW,YAAY,KAAKA,CAAO,EACtC,MAAO,GAET,GAAI,CACF,MAAMC,EAAS,IAAI,IAAID,CAAO,EAC9B,MAAO,GAAQC,EAAO,UAAYA,EAAO,SAC3C,MAAQ,CACN,MAAO,EACT,CACF,CAEA,SAASH,IAAsB,OAC7B,GAAI,CACF,MAAMntD,GAAOi9C,EAAA,OAAO,SAAS,OAAhB,KAAA,OAAAA,EAAsB,KAAA,EACnC,GAAIwf,GAAkBz8D,CAAI,EACxB,OAAOA,CAEX,MAAQ,CACN,MACF,CAEF,CAEA,SAAS08D,GAAwBC,EAA0B,CACzD,GAAI,OAAO,OAAW,IACpB,MAAO,CACL,SAAU,OACV,UAAW,OACX,aAAc,OACd,WAAY,OACZ,SAAU,OACV,YAAa,SAAA,EAIjB,MAAMC,EAAkBzP,OAClBsP,GAAkBE,CAAe,EAAIA,EAAiB,OAAS,QACrE,IAAIE,EAAgCD,EAAkB,OAAO,SAAS,UAAY,IAAM,OACxF,GAAI,CACFC,EAAYD,EAAkB,IAAI,IAAIA,CAAe,EAAE,UAAY,IAAM,MAC3E,MAAQ,CACNC,EAAY1P,GAAA,EAAwB,OAAO,SAAS,UAAY,IAAM,MACxE,CACA,MAAMzC,GAAYmS,GAAa,IAAI,MAAM,GAAG,EAAE,OAAO,OAAO,EAE5D,MAAO,CACL,SAAUD,EACV,UAAAC,EACA,aAAcnS,EAASA,EAAS,OAAS,CAAC,EAC1C,WAAY,SAAS,OAAS,OAC9B,SAAU,SAAS,UAAY,OAC/B,YAAa2R,GAAA,CAA0B,CAE3C,CAEA,SAASS,GAA2CzX,EAA6D,SAC/G,MAAMwL,GAAiB1T,GAAAF,EAAAoI,GAAgB,iBAAhB,YAAApI,EAAgC,WAAhC,YAAAE,EAA0C,qBAC3DkE,EAAmBgE,GAAgB,kBACzC,MAAI,CAACwL,GAAkB,CAACxP,EACf,KAGF,CACL,GAAIA,EACJ,KAAMia,GAAwBzK,CAAc,EAC5C,KAAM,SACN,aAAc,GACd,eAAAxL,EACA,SAAU,CACR,OAAQ,iCACR,kBAAmBhE,CAAA,CACrB,CAEJ,CAEA,SAAS0b,GAA+BC,EAAmC,CACzE,MAAO,CAAC,GAAGA,CAAK,EAAE,KAAK,CAAChhE,EAAME,IAAU,CACtC,MAAM+gE,EAAgB,EAAQjhE,EAAK,aAC7BkhE,EAAiB,CAAA,CAAQhhE,EAAM,aACrC,OAAI+gE,IAAkBC,EACb,EAEFD,EAAgB,GAAK,CAC9B,CAAC,CACH,CAGA,MAAME,GAA4B,CAChC,KAAM,QACN,aAAc,UACd,eAAgB,UAChB,gBAAiB,UACjB,aAAc,UACd,YAAa,UACb,UAAW,UACX,mBAAoB,UACpB,aAAc,SACd,QAAS,CACP,MAAO,SACP,OAAQ,OACR,MAAO,QAAA,EAET,QAAS,CACP,MAAO,gCACP,OAAQ,kCACR,MAAO,mCAAA,CAEX,EAGMC,GAAa,CACjB,GAAI,CAAE,MAAO,QAAS,OAAQ,OAAA,EAC9B,GAAI,CAAE,MAAO,QAAS,OAAQ,OAAA,EAC9B,GAAI,CAAE,MAAO,QAAS,OAAQ,OAAA,EAC9B,GAAI,CAAE,MAAO,QAAS,OAAQ,OAAA,CAChC,EAGMC,GAAiB,CACrB,eAAgB,CAAE,OAAQ,OAAQ,MAAO,MAAA,EACzC,cAAe,CAAE,OAAQ,OAAQ,KAAM,MAAA,EACvC,YAAa,CAAE,IAAK,OAAQ,MAAO,MAAA,EACnC,WAAY,CAAE,IAAK,OAAQ,KAAM,MAAA,CACnC,EAGaC,GAAwD,CAAC,CACpE,MAAOC,EACP,UAAAxkB,EACA,MAAA1qC,EACA,aAAAmvD,EAAe,UACf,YAAAC,EAAc,UACd,cAAAC,EACA,WAAAC,EAAa,GACb,gBAAAC,EAAkB,GAClB,aAAAC,EAAe,GACf,OAAAC,EAAS,WACT,QAAAC,EAAU,OACV,eAAAC,EAAiB,SACjB,sBAAAC,EAAwB,GACxB,0BAAAC,EAA4B,GAC5B,qBAAAC,EAAuB,GACvB,0BAAAC,EAA4B,GAC5B,WAAAC,EACA,YAAAC,GACA,iBAAAC,GACA,UAAAC,GAAY,EACZ,SAAA9hB,GAAW,eACX,KAAAxjD,GAAO,KAEP,YAAAulE,EACA,KAAAhjB,EACA,aAAAC,GAEA,SAAAgjB,GAAW,GACX,mBAAAC,GAAqB,GACrB,eAAAC,GAAiB,8DACjB,YAAAziB,GAAc,oCACd,WAAA0iB,GAAa,GACb,YAAaC,GACb,eAAAC,GAAiB,EACjB,gBAAAC,EAAkB,WAClB,kBAAAC,EAAoB,SACpB,oBAAAljB,GAAsB,QACtB,2BAAAmjB,GAA6B,OAC7B,sBAAAC,GAAwB,GACxB,QAAAC,EAAU,UACV,aAAAC,EACA,kBAAAC,EACA,eAAAC,EACA,eAAAC,GAAiB,oBACjB,SAAAC,GAAW,sBACX,oBAAAC,GAAsB,kBACtB,OAAAC,GACA,QAAAC,EACF,IAAM,CAEJ,KAAM,CAAE,IAAAlR,GAAK,UAAAlN,GAAW,MAAOqe,GAAc,OAAA9R,GAAQ,OAAAK,EAAA,EAAW0F,GAAA,EAC1D,CACJ,YAAagM,GACb,kBAAA3Q,GACA,YAAAE,GACA,oBAAAyB,EACA,wBAAA9B,GACA,2BAAAsG,EACA,sBAAA5D,GACA,0BAAAE,EAAA,EACEgC,GAAA,EACJ8D,GAAA,EAGA,QAAQ,IAAI,mCAAoC,CAC9C,IAAAhJ,GACA,UAAAlN,GACA,gBAAiB,CAAC,CAACqe,EAAA,CACpB,EAGD,MAAM9a,EAAQwY,GAAasC,IAAgB1C,GACrC4C,GAAYhb,GAAO,MAAQ,QAC3Bib,GAAkBjC,IAAY,UAC9BkC,GAAwB,CAACC,EAAa,KAC1CF,IAAmB,EAAEE,GAAclC,IAAmB,UAElD,CAACmC,GAAcC,EAAe,EAAIxjB,EAAAA,SAAS6hB,GAAeC,EAAQ,EAClE2B,GAAe5kB,IAAS,OACxB6kB,GAASD,GAAe5kB,EAAO0kB,GAE/B,CAACI,GAAYC,EAAa,EAAI5jB,EAAAA,SAAS,EAAE,EACzC,CAAC6jB,GAAiBC,EAAkB,EAAI9jB,EAAAA,SAAS,EAAK,EAOtD,CAAC0R,GAAUqS,EAAW,EAAI/jB,EAAAA,SAA0B,CAAA,CAAE,EACtD,CAAC+Y,GAAWC,EAAY,EAAIhZ,EAAAA,SAAS,EAAK,EAC1C,CAACplD,GAAOq+D,EAAQ,EAAIjZ,EAAAA,SAAwB,IAAI,EAChD,CAACgkB,GAAYC,EAAa,EAAIjkB,EAAAA,SAAS,EAAK,EAC5C,CAACkkB,GAA0BC,EAA2B,EAAInkB,EAAAA,SAAsB,IAAI,GAAK,EACzF,CAACokB,GAAqBC,EAAsB,EAAIrkB,EAAAA,SAAuBkiB,IAAmBgB,IAAsB,EAAE,EAClH,CAACoB,GAAmBC,EAAoB,EAAIvkB,EAAAA,SAAS,CAAC,EACtD,CAACwkB,GAAsBC,EAAuB,EAAIzkB,EAAAA,SAAS,CAAC,EAC5D,CAAC0kB,GAAiBC,EAAkB,EAAI3kB,EAAAA,SAA8C,CAAA,CAAE,EACxF4kB,GAAyBjlB,EAAAA,OAAsB,IAAI,EACnDklB,GAA4BllB,EAAAA,OAAO,EAAK,EACxCmlB,GAAgCnlB,EAAAA,OAA0B,IAAI,EAC9DolB,GAAuBplB,EAAAA,OAAuC,IAAI,GAAK,EACvEqlB,GAA+BrlB,EAAAA,OAA0B,EAAE,EAC3DslB,GAAoBtlB,EAAAA,OAAuB,IAAI,EAC/CulB,GAA4BvlB,EAAAA,OAAuB,IAAI,EACvDwlB,GAA8BxlB,EAAAA,OAAsB,IAAI,EACxDylB,GAAkCzlB,EAAAA,OAAO,EAAK,EAC9C0lB,GAAgC1lB,EAAAA,OAAO,EAAK,EAC5C2lB,GAAgB3lB,EAAAA,OAAuB,IAAI,EAC3C4lB,GAAiB5lB,EAAAA,OAAuB,IAAI,EAC5C6lB,GAAuB7lB,EAAAA,OAAuB,IAAI,EAClD,CAAC8lB,GAA0BC,EAA2B,EAAI1lB,EAAAA,SAAS,EAAK,EACxE,CAAC2lB,GAA2BC,EAA4B,EAAI5lB,EAAAA,SAAS,EAAK,EAC1E6lB,GAAqBlmB,EAAAA,OAA+B,IAAI,EACxDmmB,GAA8BnmB,EAAAA,OAAsB,IAAI,EACxDomB,GAA0B,GAAQ5U,IAAA,MAAAA,GAAQ,YAAA,EAAc,WAAW,SACnE6U,GACJtN,KAAgCtG,IAAyB,aAAexN,GACpEwN,GACA,KACA6T,GAAmCtmB,EAAAA,OAAoB,IAAI,GAAK,EAChEumB,GAA+BvmB,EAAAA,OAAoB,IAAI,GAAK,EAC5DwmB,GAAmBxmB,EAAAA,OAAO,EAAK,EAC/BymB,GACJhD,IACAhC,IAAmB,WAClB4C,IAAcjL,IACX,CAACsN,GAAkBC,EAAmB,EAAItmB,EAAAA,SAAS,EAAK,EAC9DkG,EAAAA,UAAU,IAAM,CACd,GAAI,OAAO,OAAW,IAAa,OACnC,MAAMqgB,EAAa,OAAO,WAAW,oBAAoB,EACnDC,EAAiB,IAAMF,GAAoBC,EAAW,OAAO,EACnE,OAAAC,EAAA,EACAD,EAAW,iBAAiB,SAAUC,CAAc,EAC7C,IAAMD,EAAW,oBAAoB,SAAUC,CAAc,CACtE,EAAG,CAAA,CAAE,EACLtgB,EAAAA,UAAU,IAAM,CACd,GAAI,CAACkgB,IAAyB,OAAO,SAAa,IAAa,OAC/D,MAAMK,EAAmB,SAAS,KAAK,MAAM,SAC7C,OAAA,SAAS,KAAK,MAAM,SAAW,SACxB,IAAM,CACX,SAAS,KAAK,MAAM,SAAWA,CACjC,CACF,EAAG,CAACL,EAAqB,CAAC,EAC1B,MAAMM,GACJtD,IACAhC,IAAmB,WAClB4C,IAActS,GAAS,OAAS,GAAKqH,IAClC4N,GAAiBpI,GAAUkD,CAAU,GAAK,OAC1CmF,GAAkBrI,GAAUmD,EAAW,GAAK,OAC5CmF,GAAqBrI,GAAiBiD,CAAU,EAChDqF,GAAsBtI,GAAiBkD,EAAW,EAClDqF,GAAuB3D,KAAoB0D,IAAuB,OAAO,oBAAsB,GAG/FE,GACJ5D,KACCyD,IAAsB,OAAO,oBAAsB,MACnDC,IAAuB,OAAO,oBAAsB,IAEjDG,GAAyB5hB,cAAa6hB,GAClCzoE,GAAmC,CACrCA,EACFsmE,GAAqB,QAAQ,IAAImC,EAAczoE,CAAI,EAEnDsmE,GAAqB,QAAQ,OAAOmC,CAAY,CAEpD,EACC,CAAA,CAAE,EAECC,GAAsB9hB,EAAAA,YAC1B,MACE+hB,EACAprE,EAAoG,KACjG,CACH,GAAI,GAAC81D,IAAO,CAAClN,IAIb,GAAI,CACF,MAAMkN,GAAI,6BAA6B,CACrC,WAAAsV,EACA,UAAW,IAAI,KAAA,EAAO,YAAA,EACtB,WAAYxiB,GACZ,GAAGkb,GAAwB6B,EAAgB,EAC3C,GAAG3lE,CAAA,CACJ,CACH,OAAS+4D,EAAgB,CACvB,QAAQ,KAAK,2CAA2CqS,CAAU,GAAIrS,CAAc,CACtF,CACF,EACA,CAAC4M,GAAkB7P,GAAKlN,EAAS,CAAA,EAG7ByiB,GAA4BhiB,EAAAA,YAChC,CAACgQ,EAAmB5M,EAAyCsL,IAAmB,SAC9E,MAAMtP,GAAmBgE,GAAgB,kBACzC,GAAI,CAAChE,GACH,OAEF,MAAM6iB,GAAW,GAAGjS,CAAS,IAAI5Q,EAAgB,GAC7CyhB,GAA6B,QAAQ,IAAIoB,EAAQ,IAGrDpB,GAA6B,QAAQ,IAAIoB,EAAQ,EAC5CH,GAAoB,uBAAwB,CAC/C,WAAY9R,EACZ,MAAAtB,EACA,kBAAmBtP,GACnB,YAAYlE,GAAAF,EAAAoI,EAAe,iBAAf,YAAApI,EAA+B,WAA/B,YAAAE,EAAyC,WACrD,aAAc,EAAA,CACf,EACH,EACA,CAAC4mB,EAAmB,CAAA,EAGhBI,GAAgCliB,EAAAA,YACpC,CACE0O,EACAgL,EACAC,EACAC,EACAxW,EACA+e,KACG,CACH,MAAMC,GACJ,MAAM,QAAQD,EAAmB,GAAKA,GAAoB,OACtDA,GACG,IAAI,CAAClI,GAAM9kE,KAAU,CACpB,MAAMktE,GAAiBhJ,GAAwBY,GAAK,MAAQ,EAAE,EAC9D,OAAKoI,GACE,CACL,GAAI,gBAAgBltE,EAAK,IAAIktE,GAAe,cAAc,QAAQ,cAAe,GAAG,CAAC,GACrF,KAAMA,GACN,KAAMpI,GAAK,MAAQ,cACnB,aAAc,EAAA,EALY,IAO9B,CAAC,EACA,OAAQA,IAA6B,CAAA,CAAQA,EAAK,EAClD,MAAM,EAAG,CAAC,EACbR,GAAmC/K,EAAOgL,EAAQC,EAAaC,CAAY,EAC3E3L,GAAsB4M,GAA2CzX,CAAc,EAC/EmW,GAAkBtL,GACpB,CAACA,GAAqB,GAAGmU,GAAU,MAAM,EAAG,CAAC,CAAC,EAC9CA,GAAU,MAAM,EAAG,CAAC,EACpB7I,GAAgB,QAClByF,GAAuBlE,GAA+BvB,EAAe,CAAC,CAE1E,EACA,CAAA,CAAC,EAGG+I,GAAoCtiB,EAAAA,YACxC,CACEkS,EAMA9S,IACG,CACH,MAAMwP,EAAiByK,GACrBnH,EAAmB,OAASA,EAAmB,OAAS,EAAA,EAE1D,GAAI,CAACtD,GAAkB,CAACxP,EACtB,OAGF,MAAM6O,EAAkC,CACtC,GAAI7O,EACJ,KAAMwP,EACN,KAAM,SACN,aAAc,GACd,eAAgB,CACd,kBAAmBxP,EACnB,eAAgB,CACd,SAAU,CACR,qBAAsBwP,CAAA,CACxB,EAEF,SAAU,CACR,wBAAyBsD,EAAmB,eAC5C,sBAAuBA,EAAmB,YAAA,CAC5C,CACF,EAGF8M,GAAwBhnD,GAAY,CAClC,MAAMuqD,GAAUvqD,EAAQ,OAAQiiD,IAAS,CAACA,GAAK,YAAY,EAAE,MAAM,EAAG,CAAC,EACvE,OAAOa,GAA+B,CAAC7M,EAAqB,GAAGsU,EAAO,EAAE,MAAM,EAAG,CAAC,CAAC,CACrF,CAAC,CACH,EACA,CAAA,CAAC,EAGGC,GAA8BxiB,EAAAA,YAAY,IAAM,CACpD,MAAMyiB,EAAW7C,GAAkB,QAC7B8C,EAAgB7C,GAA0B,QAChD,GAAI,CAAC4C,GAAY,CAACC,EAAe,MAAO,GAExC,MAAMC,EAAeF,EAAS,sBAAA,EACxBG,EAAoBF,EAAc,sBAAA,EAClCG,EAAY,KAAK,IACrB,EACAJ,EAAS,UAAYG,EAAkB,IAAMD,EAAa,GAAA,EAG5D,OAAAF,EAAS,UAAYI,EACd,EACT,EAAG,CAAA,CAAE,EAILhoB,EAAAA,gBAAgB,IAAM,OACpB,GAAIklB,GAAgC,QAAS,CACvCyC,OACFzC,GAAgC,QAAU,IAE5C,MACF,CAEIC,GAA8B,UAElChlB,EAAAklB,GAAe,UAAf,MAAAllB,EAAwB,eAAe,CAAE,SAAU,UACrD,EAAG,CAACqR,GAAUmW,EAA2B,CAAC,EAE1C3nB,EAAAA,gBAAgB,IAAM,CACpB,GAAI,CAACkjB,IAAmBgD,GAAuB,OAC/C,MAAMn8D,EAAOq7D,GAAc,QAC3B,GAAI,CAACr7D,EAAM,OAEX,MAAMk+D,EAAYl+D,EAAK,QAAQ,wCAAwC,EACjEm+D,EAAaxB,GAEnB,CAAC38D,EAAMk+D,CAAS,EAAE,QAAS1pE,GAAS,CAC7BA,IACLA,EAAK,MAAM,MAAQkoE,GACnBloE,EAAK,MAAM,SAAWkoE,GACtBloE,EAAK,MAAM,OAAS2pE,EACpB3pE,EAAK,MAAM,UAAY2pE,EACvB3pE,EAAK,MAAM,SAAW,SACtBA,EAAK,MAAM,UAAY,aACvBA,EAAK,QAAQ,qBAAuBioE,GAAqB,OAAS,QACpE,CAAC,EAED,MAAM2B,EAAOF,GAAW,cACpBE,GAAQA,IAAS,SAAS,MAAQA,IAAS,SAAS,kBACtDA,EAAK,MAAM,MAAQ1B,GACnB0B,EAAK,MAAM,SAAW1B,GACtB0B,EAAK,MAAM,OAASD,EACpBC,EAAK,MAAM,UAAYD,EACvBC,EAAK,MAAM,SAAW,SACtBA,EAAK,MAAM,UAAY,aAE3B,EAAG,CAACzB,GAAiBD,GAAgBP,GAAuBhD,GAAiBsD,EAAkB,CAAC,EAEhGxgB,EAAAA,UAAU,IAAM,CACd,GAAIgc,IAAmBA,GAAgB,OAAQ,CAC7CmC,GAAuBnC,EAAe,EACtC,MACF,CACIgB,IAAsBA,GAAmB,QAC3CmB,GAAwBhR,GACtBsL,GAAkCtL,EAAoB6P,EAAkB,CAAA,CAG9E,EAAG,CAAChB,GAAiBgB,EAAkB,CAAC,EAExChd,EAAAA,UAAU,IAAM,CAGd,GAFIsc,IAAY,WAEZ,CAACE,EAAmB,OACxB,IAAI4F,EAAY,GAChB,OAAA5F,EAAA,EACG,KAAMtC,GAAU,CACX,CAACkI,GAAa,MAAM,QAAQlI,CAAK,GAAKA,EAAM,QAC9CiE,GAAuBjE,CAAK,CAEhC,CAAC,EACA,MAAOmI,GAAc,CACpB,QAAQ,KAAK,qDAAsDA,CAAS,CAC9E,CAAC,EACI,IAAM,CACXD,EAAY,EACd,CACF,EAAG,CAAC5F,EAAmBF,CAAO,CAAC,EAE/Btc,EAAAA,UAAU,IAAM,CACd,GAAI,CAAC6S,GAAW,CACd0L,GAAwB,CAAC,EACzBG,GAAuB,QAAU,KACjC,MACF,CAEIA,GAAuB,SAAW,OACpCA,GAAuB,QAAU,OAAO,YAAgB,IAAc,YAAY,IAAA,EAAQ,KAAK,IAAA,GAGjG,MAAM4D,EAAO,IAAM,CACjB,MAAMC,EAAY7D,GAAuB,QACzC,GAAI6D,GAAa,KACf,OAEF,MAAMhgE,EAAM,OAAO,YAAgB,IAAc,YAAY,IAAA,EAAQ,KAAK,IAAA,EAC1Eg8D,GAAwB,KAAK,OAAOh8D,EAAMggE,GAAa,GAAI,CAAC,CAC9D,EAEAD,EAAA,EACA,MAAMtT,EAAW,OAAO,YAAYsT,EAAM,GAAI,EAC9C,MAAO,IAAM,OAAO,cAActT,CAAQ,CAC5C,EAAG,CAAC6D,EAAS,CAAC,EAEd7S,EAAAA,UAAU,IAAM,CACd,GAAI,CAAC6S,IAAayJ,IAAY,UAAW,CACvC+B,GAAqB,CAAC,EACtB,MACF,CACA,MAAMrP,EAAW,OAAO,YAAY,IAAM,CACxCqP,GAAsBx3B,GAAS,KAAK,IAAIA,EAAO,EAAG,CAAC,CAAC,CACtD,EAAG,GAAI,EACP,MAAO,IAAM,OAAO,cAAcmoB,CAAQ,CAC5C,EAAG,CAAC6D,GAAWyJ,CAAO,CAAC,EAEvBtc,EAAAA,UAAU,IAAM,CACVigB,GAAiB,SAAW,CAACrU,IAAO,CAAClN,KAGzCuhB,GAAiB,QAAU,GACtBgB,GAAoB,mBAAoB,CAC3C,SAAU,CACR,OAAAjG,EACA,QAAAC,EACA,QAAAqB,EACA,aAAcX,GAAeC,EAAA,CAC/B,CACD,EACH,EAAG,CAACA,GAAUD,EAAaX,EAAQpP,GAAKlN,GAAWuc,EAASgG,GAAqB3E,CAAO,CAAC,EAGzF,MAAMkG,GAAmBrjB,cAAasjB,GAAqB,CACrDlF,GACF3kB,KAAe6pB,GAEfnF,GAAgBmF,CAAO,EAGrBA,GACGxB,GAAoB,mBAAoB,CAC3C,SAAU,CACR,OAAAjG,EACA,QAAAC,EACA,iBAAkBC,EAClB,QAAAoB,EACA,SAAUwB,EAAA,CACZ,CACD,EACDjB,KAAAA,GAEAC,KAAAA,CAEJ,EAAG,CAACS,GAAcO,GAAY9C,EAAQpiB,GAAcikB,GAAQC,GAAS7B,EAASgG,GAAqB3E,CAAO,CAAC,EAGrGoG,GAAkBvjB,EAAAA,YAAY,IAAM,CACxCqjB,GAAiB,EAAI,CACvB,EAAG,CAACA,EAAgB,CAAC,EAEfG,GAAmBxjB,EAAAA,YAAY,IAAM,CACzCqjB,GAAiB,EAAK,CACxB,EAAG,CAACA,EAAgB,CAAC,EAEfI,GAAqBzjB,EAAAA,YAAY,IAAM,CAC3C4e,GAAcl3B,GAAQ,CAACA,CAAI,CAC7B,EAAG,CAAA,CAAE,EAGCg8B,GAAmB1jB,cAAY,MACnCC,EACA+P,EACA2T,EACAC,EACAC,EACArmD,GACAsmD,KACG,cACH,GAAI,CAACrX,GACH,eAAQ,KAAK,qEAAqE,EAE3E,CACL,KAAM,wJAAA,EAIV,GAAI,CACEkU,IACF,MAAMhR,GAA0B,eAAgB,CAC9C,OAAQ,sBACR,kBAAmBgR,GAA2B,iBAAA,CAC/C,EAAE,MAAOoD,IAAkB,CAC1B,QAAQ,KAAK,mEAAoEA,EAAa,CAChG,CAAC,EAIH,MAAMhe,GAAW,MAAM,MAAM,GAAG0G,GAAI,cAAA,CAAe,sBAAuB,CACxE,OAAQ,OACR,OAAAjvC,GACA,QAAS,CACP,eAAgB,mBAChB,OAAU,aACV,gBAAiB,WACjB,cAAiB,UAAUsuC,EAAM,EAAA,EAEnC,KAAM,KAAK,UAAU,CACnB,QAAA7L,EACA,WAAYV,IAAa,kBACzB,WAAYyQ,EACZ,QAAS7D,GACT,QAAS,CACP,UAAW,IAAI,KAAA,EAAO,YAAA,EACtB,OAAQ,gBACR,aAAcsO,GAAwB6B,EAAgB,EACtD,qBAAsBwH,GACtB,yBAA0BD,GAAA,MAAAA,EAAyB,kBAC/C,CACE,kBAAmBA,EAAwB,kBAC3C,YAAY3oB,IAAAF,GAAA6oB,EAAwB,iBAAxB,KAAA,OAAA7oB,GAAwC,WAAxC,KAAA,OAAAE,GAAkD,UAAA,EAEhE,OACJ,0BAA2BylB,GACvB,CACE,sBAAuBA,GAA2B,sBAClD,kBAAmBA,GAA2B,kBAC9C,WAAYA,GAA2B,WACvC,WAAYA,GAA2B,WACvC,aAAcA,GAA2B,aACzC,OAAQA,GAA2B,MAAA,EAErC,MAAA,CACN,CACD,CAAA,CACF,EAED,GAAI,CAAC5a,GAAS,GACZ,MAAM,IAAI,MAAM,uBAAuBA,GAAS,MAAM,IAAIA,GAAS,UAAU,EAAE,EAIjF,MAAMie,IAASjoB,GAAAgK,GAAS,OAAT,YAAAhK,GAAe,UAAA,EACxBkoB,GAAU,IAAI,YAEpB,GAAI,CAACD,GACH,MAAM,IAAI,MAAM,+BAA+B,EAGjD,IAAIE,GAAe,GACfC,GACAC,GACAC,GACAC,GACAC,GA2GJ,OAAO,MAzGe,SAAY,CAChC,GAAI,CACF,OAAa,CACX,KAAM,CAAE,KAAAC,GAAM,MAAAnsE,EAAA,EAAU,MAAM2rE,GAAO,KAAA,EAErC,GAAIQ,GAAM,MAGV,MAAMnN,GADQ4M,GAAQ,OAAO5rE,GAAO,CAAE,OAAQ,GAAM,EAChC,MAAM;AAAA,CAAI,EAE9B,UAAWo+D,MAAQY,GACjB,GAAIZ,GAAK,WAAW,QAAQ,EAAG,CAC7B,MAAMloB,GAAOkoB,GAAK,MAAM,CAAC,EAEzB,GAAIloB,GAAK,KAAA,IAAW,SAClB,OAAIoyB,IACGhR,GAA0B,iBAAkB,CAC/C,OAAQ,sBACR,kBAAmBgR,GAA2B,iBAAA,CAC/C,EAAE,MAAOoD,IAAkB,CAC1B,QAAQ,KAAK,qEAAsEA,EAAa,CAClG,CAAC,EAEI,CACL,KAAMG,GACN,aAAcC,GACd,cAAeC,GACf,qBAAsBC,GACtB,gBAAiBC,GACjB,iBAAkBC,EAAA,EAItB,GAAI,CACF,MAAME,GAAa,KAAK,MAAMl2B,EAAI,EAElC,OAAQk2B,GAAW,KAAA,CACjB,IAAK,UAAW,CACd,MAAMhsD,GAAUgsD,GAAW,SAAW,GACtCP,IAAgBzrD,GAChBkrD,IAAiBlrD,EAAAA,EACjB,KACF,CAEA,IAAK,QAAS,CACZyrD,GAAeO,GAAW,OAASP,GACnCC,GAAmB,MAAM,QAAQM,GAAW,YAAY,EAAIA,GAAW,aAAe,OACtFL,GAAoB,MAAM,QAAQK,GAAW,aAAa,EAAIA,GAAW,cAAgB,OACzFJ,GAA2B,MAAM,QAAQI,GAAW,oBAAoB,EAAIA,GAAW,qBAAuB,OAC9GH,GAAsB,OAAOG,GAAW,iBAAoB,SAAWA,GAAW,gBAAkBH,GACpGC,GACE,OAAOE,GAAW,kBAAqB,SAAWA,GAAW,iBAAmBF,GAClF,KACF,CAEA,IAAK,uBAAwB,CAC3BF,GAA2B,MAAM,QAAQI,GAAW,oBAAoB,EACpEA,GAAW,qBACXJ,GACJ,KACF,CAEA,IAAK,QACH,MAAM,IAAI,MAAMI,GAAW,SAAW,yBAAyB,EAEjE,IAAK,gBACHb,IAAAA,EACA,QAAQ,IAAI,mBAAoBa,GAAW,UAAU,EACrD,KAAA,CAEN,MAAqB,CACnB,QAAQ,KAAK,mCAAoCl2B,EAAI,EACrD,QACF,CACF,CAEJ,CACF,OAASh5C,GAAO,CACd,GAAIioB,IAAA,MAAAA,GAAQ,QACV,MAAO,CACL,KAAM0mD,GACN,aAAcC,GACd,cAAeC,GACf,qBAAsBC,GACtB,gBAAiBC,GACjB,iBAAkBC,GAClB,MAAO,SAAA,EAGX,MAAA,QAAQ,MAAM,2BAA4BhvE,EAAK,EACzCA,EACR,QAAA,CACEyuE,GAAO,YAAA,CACT,CAEA,MAAO,CACL,KAAME,GACN,aAAcC,GACd,cAAeC,GACf,qBAAsBC,GACtB,gBAAiBC,GACjB,iBAAkBC,EAAA,CAEtB,GAEa,CAEf,OAAShvE,GAAO,CACd,OAAIioB,IAAA,MAAAA,GAAQ,QACH,CACL,KAAM,GACN,MAAO,SAAA,GAGX,QAAQ,MAAM,+BAAgCjoB,EAAK,EAE5C,CACL,KAAM,wFACN,MAAOA,cAAiB,MAAQA,GAAM,QAAU,gBAAA,EAEpD,CACF,EAAG,CAACk3D,GAAKlN,GAAWuM,GAAQK,GAAQwU,GAA4BhR,EAAyB,CAAC,EAEpF+U,GAAuB1kB,EAAAA,YAAY,IAAM,CAC7C,MAAM2kB,EAAanE,GAAmB,QACtC,GAAI,CAACmE,GAAcA,EAAW,OAAO,QAAS,OAC9CA,EAAW,MAAA,EACXhR,GAAa,EAAK,EAClB8L,GAA8B,QAAU,KACxCD,GAA0B,QAAU,GACpC,MAAMoF,EAA2BnE,GAA4B,QACzDmE,GACFlG,MAAoBh3B,EAAK,IAAIm9B,GAC3BA,EAAI,KAAOD,GAA4B,CAACC,EAAI,QAAQ,KAAA,EAChD,CAAE,GAAGA,EAAK,QAAS,uBACnBA,CAAA,CACL,CAEL,EAAG,CAAA,CAAE,EAGCC,GAAoB9kB,cAAY,MAAOC,GAAoB,yBAC/D,GAAI,CAACA,EAAQ,KAAA,GAAUyT,GAAW,OAClC,MAAM0P,GAAY,OAAO,YAAgB,IAAc,YAAY,IAAA,EAAQ,KAAK,IAAA,EAC1E2B,GAAoB9kB,EAAQ,KAAA,EAC5B+kB,GAAgB,KAAK,IAAA,EAAM,SAAA,EAC3BC,GAAuB,IAAI,gBAC3BC,GAA4BzF,GAA8B,QAC1D0F,GAAgCD,IAA2B,gBAAkB,KAC7EpB,GAAsBzX,GACzB,OAAQwY,KAASA,GAAI,OAAS,QAAUA,GAAI,OAAS,cAAgBA,GAAI,QAAQ,MAAM,EACvF,MAAM,EAAE,EACR,IAAKA,KAAS,CACb,KAAMA,GAAI,KACV,QAASA,GAAI,QAAQ,OAAO,MAAM,EAAG,IAAI,CAAA,EACzC,EAEJrE,GAAmB,QAAUyE,GAC7BxE,GAA4B,QAAU,KACtCX,GAA4B,QAAUkF,GACtCjF,GAAgC,QAAU,GAC1CC,GAA8B,QAAU,GACxCP,GAA8B,QAAU,KACxCT,GAAwBhnD,IAAYA,GAAQ,KAAMikC,IAAeA,GAAW,YAAY,EACpFjkC,GAAQ,OAAQikC,IAAe,CAACA,GAAW,YAAY,EACvDjkC,EAAA,EAIJ47C,GAAS,IAAI,EAEb,MAAMwR,GAA2B,CAC/B,GAAIJ,GACJ,KAAM,OACN,QAASD,GACT,cAAe,IAAK,EAYtB,GATKjD,GAAoB,kBAAmB,CAC1C,WAAYkD,GACZ,MAAOD,EAAA,CACR,EAEDrG,GAAYh3B,IAAQ,CAAC,GAAGA,GAAM09B,EAAW,CAAC,EAC1C7G,GAAc,EAAE,EAChB5K,GAAa,EAAI,EAEbwJ,IAAY,WAAaC,EAAc,CACzC,GAAI,CACF,MAAMiI,IAAsB,KAAK,IAAA,EAAQ,GAAG,SAAA,EACtCC,GAAyC,CAC7C,GAAID,GACJ,KAAM,YACN,QAAS,GACT,cAAe,KACf,gBAAiB,CAAA,EACjB,UAAWplB,EACX,sBAAuB,IAAA,EAGrBuf,GAA0B,UAC5BV,GAA4Bp3B,QAAY,IAAI,CAAC,GAAGA,GAAM29B,EAAkB,CAAC,CAAC,EAC1E7F,GAA0B,QAAU,IAGtCd,GAAYh3B,IAAQ,CAAC,GAAGA,GAAM49B,EAAuB,CAAC,EACtD7E,GAA4B,QAAU4E,GAEtC,MAAMtf,GAAW,MAAMqX,EAAa2H,GAAmB,CACrD,oBAAqBG,EAAA,CACtB,EACD,GAAID,GAAqB,OAAO,QAAS,CACvCxF,GAA8B,QAAU,KACxC,MACF,CACA,MAAMrc,GACJ2C,GAAS,gBACTof,IACA,KAEF,QAAQ,IAAI,mDAAoD,CAC9D,MAAOllB,EACP,0BAA2B,CAAC,CAAC8F,GAAS,eACtC,qCAAsC,CAAC,CAACof,GACxC,sBAAuB/hB,IAAgB,iBAAA,CACxC,EAEDsb,OAAoBh3B,GAAK,IAAIm9B,IAC3BA,GAAI,KAAOQ,GACP,CACE,GAAGR,GACH,QAAS9e,GAAS,OAClB,YAAaA,GAAS,aACtB,aAAcA,GAAS,cACvB,sBAAuB3C,GACvB,gBACG,OAAO,YAAgB,IAAc,YAAY,IAAA,EAAQ,KAAK,OAASggB,EAAA,EAE5EyB,EAAA,CACL,EACD3C,GACE6C,GACAhf,GAAS,OACTA,GAAS,aACTA,GAAS,cACTA,GAAS,gBAAkB,KAC3BA,GAAS,oBAAA,EAEN+b,GAAoB,mBAAoB,CAC3C,WAAYuD,GACZ,MAAON,GACP,kBAAmB3hB,IAAgB,kBACnC,YAAYlI,GAAAF,EAAAoI,IAAgB,iBAAhB,KAAA,OAAApI,EAAgC,WAAhC,KAAA,OAAAE,EAA0C,WACtD,YACG,OAAO,YAAgB,IAAc,YAAY,MAAQ,KAAK,IAAA,GAASkoB,GAC1E,OAAQ,YACR,SAAU,CACR,QAAAjG,EACA,OAAQ,eAAA,CACV,CACD,EACDsC,GAA8B,QAAU,IAC1C,OAAS8F,GAAY,CACnB,QAAQ,MAAM,yBAA0BA,EAAU,EAClD,MAAM9T,GAAe8T,cAAsB,MAAQA,GAAW,QAAU,yBACxE3R,GAASnC,EAAY,EACrB,MAAM+T,GAA+B,CACnC,IAAK,KAAK,IAAA,EAAQ,GAAG,SAAA,EACrB,KAAM,YACN,QAAS,mDACT,cAAe,IAAK,EAEtB9G,GAAYh3B,IAAQ,CAAC,GAAGA,GAAM89B,EAAa,CAAC,EACvC1D,GAAoB,gBAAiB,CACxC,MAAOiD,GACP,OAAQtT,GACR,YACG,OAAO,YAAgB,IAAc,YAAY,MAAQ,KAAK,IAAA,GAAS2R,GAC1E,SAAU,CACR,QAAAjG,EACA,OAAQ,eAAA,CACV,CACD,EACDsC,GAA8B,QAAU,IAC1C,QAAA,CACMe,GAAmB,UAAYyE,KACjCzE,GAAmB,QAAU,KAC7BC,GAA4B,QAAU,KACtC9M,GAAa,EAAK,EAEtB,CACA,MACF,CAGA,GAAI,CAAClH,GAAK,CAER,WAAW,IAAM,CACf,GAAIwY,GAAqB,OAAO,QAAS,CACnCzE,GAAmB,UAAYyE,KACjCzE,GAAmB,QAAU,KAC7BC,GAA4B,QAAU,MAExC,MACF,CACA,MAAMgF,GAAgC,CACpC,IAAK,KAAK,IAAA,EAAQ,GAAG,SAAA,EACrB,KAAM,YACN,QAAS,6KACT,cAAe,KACf,gBAAiB,CAAA,EACjB,UAAWxlB,CAAA,EAGbye,GAAYh3B,IAAQ,CAAC,GAAGA,GAAM+9B,EAAgB,CAAC,EAC3CjF,GAAmB,UAAYyE,KACjCzE,GAAmB,QAAU,KAC7BC,GAA4B,QAAU,KACtC9M,GAAa,EAAK,EAEtB,EAAG,GAAI,EACP,MACF,CAEA,GAAI,CAEF,MAAM0R,IAAsB,KAAK,IAAA,EAAQ,GAAG,SAAA,EACtCK,GAAoCP,GACpCG,GAAyC,CAC7C,GAAID,GACJ,KAAM,YACN,QAAS,GACT,cAAe,KACf,gBAAiB,CAAA,EACjB,UAAWplB,EACX,sBAAuBylB,EAAA,EAIrBlG,GAA0B,UAC5BV,GAA4Bp3B,QAAY,IAAI,CAAC,GAAGA,GAAM29B,EAAkB,CAAC,CAAC,EAC1E7F,GAA0B,QAAU,IAGtCd,GAAYh3B,IAAQ,CAAC,GAAGA,GAAM49B,EAAuB,CAAC,EACtD7E,GAA4B,QAAU4E,GAGtC,MAAMtf,GAAW,MAAM2d,GACrBqB,GACAC,GAECW,IAAyB,CACxBjH,OAAoBh3B,GAAK,IAAIm9B,IAC3BA,GAAI,KAAOQ,GACP,CAAE,GAAGR,GAAK,QAASA,GAAI,QAAUc,EAAA,EACjCd,EAAA,CACL,CACH,EACA,IAAM,CACJlR,GAAa,EAAI,EACjBuL,GAAqB,CAAC,CACxB,EACAwG,GACAT,GAAqB,OACrBnB,EAAA,EAEF,GAAImB,GAAqB,OAAO,QAAS,CAClClf,GAAS,KAAK,QACjB2Y,OAAoBh3B,GAAK,IAAIm9B,IAC3BA,GAAI,KAAOQ,IAAsB,CAACR,GAAI,QAAQ,KAAA,EAC1C,CAAE,GAAGA,GAAK,QAAS,uBACnBA,EAAA,CACL,EAEE/C,GAAoB,gBAAiB,CACxC,WAAYuD,GACZ,MAAON,GACP,kBAAmBW,IAAmC,kBACtD,YAAY1pB,GAAAD,EAAA2pB,IAAmC,iBAAnC,KAAA,OAAA3pB,EAAmD,WAAnD,YAAAC,EAA6D,WACzE,YACG,OAAO,YAAgB,IAAc,YAAY,MAAQ,KAAK,IAAA,GAASonB,GAC1E,OAAQ,UACR,SAAU,CACR,QAAAjG,EACA,OAAQ,oBAAA,CACV,CACD,EACDsC,GAA8B,QAAU,KACxC,MACF,CAGA,MAAMmG,GACJ,OAAO7f,GAAS,kBAAqB,SACjCA,GAAS,kBACR,OAAO,YAAgB,IAAc,YAAY,IAAA,EAAQ,KAAK,OAASqd,GAE9E1E,OAAoBh3B,GAAK,IAAIm9B,IAC3BA,GAAI,KAAOQ,GACP,CACE,GAAGR,GACH,QAAS9e,GAAS,KAClB,YAAaA,GAAS,aACtB,aAAcA,GAAS,cACvB,sBAAuB8e,GAAI,uBAAyBa,GACpD,eAAgBE,EAAA,EAElBf,EAAA,CACL,EACD3C,GACE6C,GACAhf,GAAS,KACTA,GAAS,aACTA,GAAS,cACT,KACAA,GAAS,oBAAA,EAEPA,GAAS,MACN+b,GAAoB,gBAAiB,CACxC,WAAYuD,GACZ,MAAON,GACP,kBAAmBW,IAAmC,kBACtD,YAAYjf,IAAAF,GAAAmf,IAAmC,iBAAnC,KAAA,OAAAnf,GAAmD,WAAnD,KAAA,OAAAE,GAA6D,WACzE,YACG,OAAO,YAAgB,IAAc,YAAY,MAAQ,KAAK,IAAA,GAAS2c,GAC1E,OAAQrd,GAAS,MACjB,SAAU,CACR,QAAAoX,EACA,OAAQ,oBAAA,CACV,CACD,EAEI2E,GAAoB,mBAAoB,CAC3C,WAAYuD,GACZ,MAAON,GACP,kBAAmBW,IAAmC,kBACtD,YAAYxe,IAAAV,GAAAkf,IAAmC,iBAAnC,KAAA,OAAAlf,GAAmD,WAAnD,KAAA,OAAAU,GAA6D,WACzE,gBAAiBnB,GAAS,gBAC1B,WAAY6f,GACZ,OAAQ,YACR,SAAU,CACR,QAAAzI,EACA,OAAQ,qBACR,iBAAkByI,EAAA,CACpB,CACD,EAEHnG,GAA8B,QAAU,IAE1C,OAASlqE,GAAO,CACd,QAAQ,MAAM,yBAA0BA,EAAK,EAC7C,MAAMk8D,GAAel8D,cAAiB,MAAQA,GAAM,QAAU,yBAC9Dq+D,GAASnC,EAAY,EAErB,MAAM+T,GAA6B,CACjC,IAAK,KAAK,IAAA,EAAQ,GAAG,SAAA,EACrB,KAAM,YACN,QAAS,mDACT,cAAe,IAAK,EAEtB9G,GAAYh3B,IAAQ,CAAC,GAAGA,GAAM89B,EAAa,CAAC,EACvC1D,GAAoB,gBAAiB,CACxC,MAAOiD,GACP,YACG,OAAO,YAAgB,IAAc,YAAY,MAAQ,KAAK,IAAA,GAAS3B,GAC1E,OAAQ3R,GACR,SAAU,CACR,QAAA0L,EACA,OAAQ,oBAAA,CACV,CACD,EACDsC,GAA8B,QAAU,IAC1C,QAAA,CACMe,GAAmB,UAAYyE,KACjCzE,GAAmB,QAAU,KAC7BC,GAA4B,QAAU,KACtC9M,GAAa,EAAK,EAEtB,CACF,EAAG,CAACD,GAAWgQ,GAAkBtG,EAAc8E,GAA+BzV,GAAKqV,GAAqB3E,CAAO,CAAC,EAG1G7jB,GAAcylB,GAGd8G,GAA0BC,EAAAA,QAC9B,IAAMxsB,GAAY,KAAKysB,GAAKA,GAAG,YAAY,EAC3C,CAACzsB,EAAW,CAAA,EAIR0sB,GAAkBF,EAAAA,QACtB,IAAMxsB,GAAY,OACf2C,GACyBA,GAAc,OAAOA,EAAW,IAAO,SAI3DihB,GAEK2I,GAIF,GATc,EAUvB,EAEF,CAACA,GAAyB3I,GAAuB5jB,EAAW,CAAA,EAExD2sB,GAAqBH,EAAAA,QACzB,IAAMhL,GAA+BkL,EAAe,EACpD,CAACA,EAAe,CAAA,EAEZE,GAA8BJ,EAAAA,QAClC,IAAM7I,KAA+B,yBAA2BL,GAC5DqJ,GAAmB,KAAMhqB,GAAeA,EAAW,cAAgBA,EAAW,cAAc,GAAK,KACjG,KACJ,CAAC2gB,GAAYqJ,GAAoBhJ,EAA0B,CAAA,EAIvDkJ,GAAwBnmB,cAAY,MAAO/D,GAA2B,sBAC1E,QAAQ,IAAI,8DAAmD,CAC7D,KAAMA,EAAW,KACjB,aAAcA,EAAW,aACzB,kBAAmB,CAAC,CAACA,EAAW,eAChC,mBAAkBjB,EAAAiB,EAAW,iBAAX,KAAA,OAAAjB,EAA2B,oBAAqB,OAClE,yBAA0B,CAAC,GAACe,GAAAb,EAAAe,EAAW,iBAAX,KAAA,OAAAf,EAA2B,WAA3B,MAAAa,EAAqC,yBACjE,UAAAwD,EAAA,CACD,EAGDigB,GAA0B,QAAUvjB,EAAW,cAAgB,GAC/DwjB,GAA8B,QAAUxjB,EAAW,aAAeA,EAAa,KAC/E,MAAMmqB,GAAqBH,GAAmB,UAAWhM,IAASA,GAAK,KAAOhe,EAAW,EAAE,EACtF6lB,GAAoB,qBAAsB,CAC7C,cAAe7lB,EAAW,GAC1B,gBAAiBA,EAAW,KAC5B,gBAAiBA,EAAW,KAC5B,oBAAqBmqB,IAAsB,EAAIA,GAAqB,OACpE,aAAcnqB,EAAW,aACzB,mBAAmBD,EAAAC,EAAW,iBAAX,KAAA,OAAAD,EAA2B,kBAC9C,YAAYwK,IAAAC,IAAAF,GAAAtK,EAAW,iBAAX,KAAA,OAAAsK,GAA2B,iBAA3B,YAAAE,GAA2C,WAA3C,KAAA,OAAAD,GAAqD,WACjE,MAAOvK,EAAW,IAAA,CACnB,EAGD6oB,GAAkB7oB,EAAW,IAAI,EAG7BA,EAAW,cAAgBA,EAAW,gBAAkBwQ,GAE1D,WAAW,SAAY,QACrB,GAAI,CACF,MAAM2F,IAAwBpX,GAAAiB,EAAW,eAAgB,WAA3B,KAAA,OAAAjB,GAAqC,wBAC7DoE,GAAmBnD,EAAW,eAAgB,kBAEpD,QAAQ,IAAI,uFAAiF,CAC3F,sBAAAmW,GACA,iBAAAhT,GACA,UAAAG,EAAA,CACD,EAEG6S,IAAyBhT,IAAoBG,IAC/C,QAAQ,IAAI,mFAA4E,EACxF,MAAMkN,GAAI,uBAAuB2F,GAAuBhT,GAAkBG,EAAS,EACnF,QAAQ,IAAI,uEAAkE,GAG9E,QAAQ,KAAK,sFAA6E,CACxF,yBAA0B,CAAC,CAAC6S,GAC5B,oBAAqB,CAAC,CAAChT,GACvB,aAAc,CAAC,CAACG,EAAA,CACjB,CAEL,OAAShqD,GAAO,CACd,QAAQ,MAAM,wEAAyEA,EAAK,CAE9F,CACF,EAAG,CAAC,EAEJ,QAAQ,IAAI,+GAAqG,CAErH,EAAG,CAACuvE,GAAmBmB,GAAoBxZ,GAAKlN,GAAWuiB,EAAmB,CAAC,EAGzEuE,GAAgBjL,GAAe3gB,EAAQ,EACvC6rB,GAAYnL,GAAWlkE,EAAI,EAGjC4pD,EAAAA,UAAU,IAAM,CAId,GAHA8e,GAA6B,QAAQ,QAAS4G,GAAYA,GAAS,EACnE5G,GAA6B,QAAU,CAAA,EAEnC,EAAA,OAAO,OAAW,KAAe,OAAO,qBAAyB,KAIrE,OAAAsG,GAAmB,QAAQ,CAAChqB,EAAY9mD,IAAU,CAChD,MAAMD,EAAUwqE,GAAqB,QAAQ,IAAIzjB,EAAW,EAAE,EAC9D,GAAI,CAAC/mD,EACH,OAGF,MAAMsxE,EAAc,GAAGjnB,IAAa,WAAW,IAAItD,EAAW,EAAE,IAAIA,EAAW,aAAe,IAAM,GAAG,GACvG,GAAI2kB,GAAiC,QAAQ,IAAI4F,CAAW,EAC1D,OAGF,IAAIC,EAAsD,KACtD3lB,GAAwC,KAE5C,MAAMylB,GAAU,IAAM,CAChBE,IACF,aAAaA,CAAa,EAC1BA,EAAgB,MAElB3lB,IAAU,WAAA,EACVA,GAAW,IACb,EAEM4lB,GAAyB,IAAM,oBACnC,GAAI9F,GAAiC,QAAQ,IAAI4F,CAAW,EAAG,CAC7DD,GAAA,EACA,MACF,CAeA,GAbA3F,GAAiC,QAAQ,IAAI4F,CAAW,EACxDD,GAAA,EAEKzE,GAAoB,sBAAuB,CAC9C,cAAe7lB,EAAW,GAC1B,gBAAiBA,EAAW,KAC5B,gBAAiBA,EAAW,KAC5B,oBAAqB9mD,EACrB,aAAc8mD,EAAW,aACzB,mBAAmBjB,GAAAiB,EAAW,iBAAX,YAAAjB,GAA2B,kBAC9C,YAAYgB,IAAAD,IAAAb,GAAAe,EAAW,iBAAX,KAAA,OAAAf,GAA2B,iBAA3B,KAAA,OAAAa,GAA2C,WAA3C,KAAA,OAAAC,GAAqD,UAAA,CAClE,EAEGyQ,IAAOlN,IAAatD,EAAW,cAAgBA,EAAW,eAAgB,CAC5E,MAAMyF,IAAc6E,GAAAtK,EAAW,eAAe,WAA1B,KAAA,OAAAsK,GAAoC,sBAClDnH,GAAmBnD,EAAW,eAAe,kBAE/CyF,IAAetC,IACjB,QAAQ,IAAI,mFAA6E,CACvF,YAAAsC,GACA,iBAAAtC,GACA,eAAgBnD,EAAW,KAC3B,UAAAsD,EAAA,CACD,EAEDkN,GAAI,qBAAqB/K,GAAatC,GAAkBG,EAAS,GAEjE,QAAQ,KAAK,2GAAkG,CAC7G,eAAgB,CAAC,CAACmC,GAClB,oBAAqB,CAAC,CAACtC,GACvB,eAAgBnD,EAAW,IAAA,CAC5B,CAEL,CACF,EAEA6E,GAAW,IAAI,qBACZC,IAAY,CACX,MAAM7T,GAAQ6T,GAAQ,CAAC,EACvB,GAAK7T,GAIL,CAAA,GAAIA,GAAM,mBAAqB,GAAK,CAC7Bu5B,IACHA,EAAgB,WAAWC,GAAwB,GAAI,GAEzD,MACF,CAEID,IACF,aAAaA,CAAa,EAC1BA,EAAgB,KAAA,CAEpB,EACA,CAAE,UAAW,CAAC,EAAG,IAAM,GAAK,IAAM,CAAC,EAAG,WAAY,KAAA,CAAM,EAG1D3lB,GAAS,QAAQ5rD,CAAO,EACxByqE,GAA6B,QAAQ,KAAK4G,EAAO,CACnD,CAAC,EAEM,IAAM,CACX5G,GAA6B,QAAQ,QAAS4G,GAAYA,GAAS,EACnE5G,GAA6B,QAAU,CAAA,CACzC,CACF,EAAG,CAACsG,GAAoBxZ,GAAKlN,GAAWuiB,GAAqBtD,EAAe,CAAC,EAG7E,QAAQ,IAAI,0DAAoD,CAC9D,iBAAkBllB,GAAY,OAC9B,gBAAiB0sB,GAAgB,OACjC,kBAAA9Y,GACA,eAAgB,CAAC,CAACE,GAClB,sBAAA8P,GACA,wBAAA2I,GACA,eAAgBvsB,GAAY,OAAOysB,GAAKA,GAAG,YAAY,EAAE,OACzD,kBAAmBzsB,GAAY,OAAOysB,GAAKA,GAAK,EAACA,GAAA,MAAAA,EAAG,aAAY,EAAE,OAClE,kBAAmB7I,GAAwB2I,GAA0B,GACrE,YAAavsB,GAAY,IAAIysB,GAAA,WAAM,MAAA,CACjC,GAAIA,GAAG,GACP,KAAMA,GAAG,KACT,KAAMA,GAAG,KACT,aAAcA,GAAG,aACjB,kBAAmB,CAAC,EAACA,GAAA,MAAAA,EAAG,gBACxB,mBAAkB/qB,EAAA+qB,GAAG,iBAAH,KAAA,OAAA/qB,EAAmB,oBAAqB,OAC1D,yBAA0B,CAAC,GAACe,GAAAb,EAAA6qB,GAAG,iBAAH,KAAA,OAAA7qB,EAAmB,WAAnB,MAAAa,EAA6B,wBAAA,CAAA,CACzD,EACF,oBAAqBkqB,GAAmB,IAAIF,GAAA,WAAM,MAAA,CAChD,GAAIA,GAAG,GACP,KAAMA,GAAG,KACT,KAAMA,GAAG,KACT,aAAcA,GAAG,aACjB,kBAAmB,CAAC,EAACA,GAAA,MAAAA,EAAG,gBACxB,mBAAkB/qB,EAAA+qB,GAAG,iBAAH,KAAA,OAAA/qB,EAAmB,oBAAqB,OAC1D,yBAA0B,CAAC,GAACe,GAAAb,EAAA6qB,GAAG,iBAAH,KAAA,OAAA7qB,EAAmB,WAAnB,MAAAa,EAA6B,wBAAA,CAAA,CACzD,CAAA,CACH,EACD,MAAM4qB,GAAY,CAChB,KAAM,GAAG,GAAKpK,EAAS,KACvB,GAAI,GAAG,GAAKA,EAAS,KACrB,GAAI,GAAG,GAAKA,EAAS,IAAA,EAEjBqK,GAAoBtJ,GAAkB,gGACtCuJ,GAAe,CACnB,+BACA,kCACA,+BACA,kCACA,wCACA,wCACA,sCACA,mCACA,2BAAA,EAGIC,GAA6BnqE,GAK7B,CACJ,MAAMoqE,EAASpqE,GAAS,aAAeqqE,GACjCC,EAAOtqE,GAAS,WAAauqE,GAC7BC,EAAexqE,GAAS,cAAgBwgE,IAAY,UACpDiK,EAAa,GAAGjI,EAAoB,IACpCkI,GAAcF,EAChB,GAAGN,GAAa5H,EAAiB,CAAC,KAAKmI,CAAU,IACjD,wBAAwBA,CAAU,GAEtC,OACE1rB,EAAAA,KAAC,MAAA,CACC,MAAO,CACL,QAAS,cACT,WAAY,SACZ,IAAK/+C,GAAA,MAAAA,EAAS,QAAU,MAAQ,OAChC,MAAOsqE,EACP,SAAUtqE,GAAA,MAAAA,EAAS,QAAUgqE,GAAU,GAAKA,GAAU,EAAA,EAGxD,SAAA,CAAA/qB,EAAAA,IAAC,OAAA,CACC,MAAO,CACL,MAAOj/C,GAAA,MAAAA,EAAS,QAAU,EAAI,EAC9B,OAAQA,GAAA,MAAAA,EAAS,QAAU,EAAI,EAC/B,aAAc,IACd,WAAYoqE,EACZ,UAAW,wCACX,UAAW,WAAWO,GAAUC,GAAc,GAAI,CAAC,GACnD,WAAY,CAAA,CACd,CAAA,EAEF3rB,EAAAA,IAAC,QAAM,SAAAyrB,EAAA,CAAY,CAAA,CAAA,CAAA,CAGzB,EAEMG,GAAuBxnB,EAAAA,YAC3B,CAACC,EAAwBwnB,IAAqB,CAC5C,GAAIpI,GAAgBpf,EAAQ,EAAE,EAC5B,OAGF,MAAMynB,EAAqCD,EAAU,UAAY,cACjEnI,GAAoB53B,IAAU,CAAE,GAAGA,EAAM,CAACuY,EAAQ,EAAE,EAAGynB,CAAA,EAAgB,EAClE5F,GAAoB,kBAAmB,CAC1C,WAAY7hB,EAAQ,GACpB,MAAOA,EAAQ,UACf,OAAQynB,EACR,WAAYznB,EAAQ,eACpB,SAAU,CACR,QAAAwnB,CAAA,CACF,CACD,CACH,EACA,CAACpI,GAAiByC,EAAmB,CAAA,EAGvC,SAAS6F,GAAmB1nB,EAAwBtjD,EAAwD,CAK1G,GAJIsjD,EAAQ,OAAS,aAAe,CAACA,EAAQ,QAAQ,QAIjDyT,IAAazT,EAAQ,KAAOwgB,GAA4B,QAC1D,OAAO,KAGT,MAAMsG,EAASpqE,GAAS,aAAeqqE,GACjCC,EAAOtqE,GAAS,WAAauqE,GAC7BU,EAAmBvI,GAAgBpf,EAAQ,EAAE,EAC7C4nB,GAAY,OAAO5nB,EAAQ,gBAAmB,SAEpD,OACEvE,EAAAA,KAAC,MAAA,CACC,MAAO,CACL,QAAS,OACT,WAAY,SACZ,eAAgB,gBAChB,IAAK,OACL,UAAW,OACX,WAAY,OACZ,UAAW,aAAaosB,EAAW,GACnC,SAAU,MAAA,EAGZ,SAAA,CAAApsB,EAAAA,KAAC,MAAA,CACC,MAAO,CACL,QAAS,cACT,WAAY,SACZ,IAAK,MACL,SAAU,EACV,KAAM,WACN,SAAU,MAAA,EAGZ,SAAA,CAAAE,EAAAA,IAAC,OAAA,CAAK,MAAO,CAAE,SAAU+qB,GAAU,GAAI,MAAOM,EAAM,WAAY,UAC7D,SAAAW,EAAmB,2BAA6B,mBACnD,EACEA,EA0CAhsB,EAAAA,IAAC,OAAA,CACC,MAAO,CACL,QAAS,cACT,WAAY,SACZ,eAAgB,SAChB,MAAO,GACP,OAAQ,GACR,aAAc,MACd,WAAY0rB,GAAUP,EAAQ,GAAI,EAClC,MAAOA,EACP,WAAY,CAAA,EAGb,SAAAa,IAAqB,UAAYhsB,EAAAA,IAAC/C,GAAA,CAAS,KAAM,GAAI,EAAK+C,EAAAA,IAAChD,GAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,EAtDnF8C,EAAAA,KAAC,MAAA,CAAI,MAAO,CAAE,QAAS,cAAe,WAAY,SAAU,IAAK,MAAO,WAAY,GAClF,SAAA,CAAAE,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,aAAW,yBACX,QAAS,IAAM4rB,GAAqBvnB,EAAS,EAAI,EACjD,MAAO,CACL,QAAS,cACT,WAAY,SACZ,eAAgB,SAChB,MAAO,GACP,OAAQ,GACR,aAAc,MACd,OAAQ,aAAa6nB,EAAW,GAChC,WAAYC,GACZ,MAAOd,EACP,OAAQ,SAAA,EAGV,SAAArrB,EAAAA,IAAC/C,GAAA,CAAS,KAAM,EAAA,CAAI,CAAA,CAAA,EAEtB+C,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,aAAW,6BACX,QAAS,IAAM4rB,GAAqBvnB,EAAS,EAAK,EAClD,MAAO,CACL,QAAS,cACT,WAAY,SACZ,eAAgB,SAChB,MAAO,GACP,OAAQ,GACR,aAAc,MACd,OAAQ,aAAa6nB,EAAW,GAChC,WAAYC,GACZ,MAAOd,EACP,OAAQ,SAAA,EAGV,SAAArrB,EAAAA,IAAChD,GAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CACxB,CAAA,CACF,CAgBA,CAAA,CAAA,EAGHivB,GACCnsB,EAAAA,KAAC,OAAA,CACC,MAAO,CACL,SAAUirB,GAAU,GACpB,MAAOM,EACP,WAAY,SACZ,KAAM,WACN,WAAY,MAAA,EAEf,SAAA,CAAA,uBACsBhR,GAA+BhW,EAAQ,cAAe,CAAA,CAAA,CAAA,EAE3E,IAAA,CAAA,CAAA,CAGV,CAEA,MAAM+nB,GAA8BhoB,EAAAA,YAAY,IAAM,CACpD,MAAM5mD,EAAO+mE,GAAqB,QAClC,GAAI,CAAC/mE,EAAM,OACX,MAAM6uE,EAAgB,KAAK,IAAI,EAAG7uE,EAAK,YAAcA,EAAK,WAAW,EACrEinE,GAA4BjnE,EAAK,WAAa,CAAC,EAC/CmnE,GAA6BnnE,EAAK,WAAa6uE,EAAgB,CAAC,CAClE,EAAG,CAAA,CAAE,EAELpnB,EAAAA,UAAU,KACRmnB,GAAA,EACA,OAAO,iBAAiB,SAAUA,EAA2B,EACtD,IAAM,OAAO,oBAAoB,SAAUA,EAA2B,GAC5E,CAACA,GAA6B/B,GAAmB,MAAM,CAAC,EAE3D,MAAMiC,GAAoBloB,cAAamoB,GAAgC,CACrE,MAAM/uE,EAAO+mE,GAAqB,QAC7B/mE,GACLA,EAAK,SAAS,CACZ,KAAM+uE,IAAc,OAAS,CAAC,KAAK,IAAI,IAAK,KAAK,MAAM/uE,EAAK,YAAc,GAAI,CAAC,EAAI,KAAK,IAAI,IAAK,KAAK,MAAMA,EAAK,YAAc,GAAI,CAAC,EACpI,SAAU,QAAA,CACX,CACH,EAAG,CAAA,CAAE,EAECkuE,GAAY,CAACc,EAAyBC,IAAkB,CAC5D,GAAI,CAACD,GAAO,CAACA,EAAI,WAAW,GAAG,EAAG,MAAO,oBAAoBC,CAAK,IAClE,MAAMC,EAAMF,EAAI,MAAM,CAAC,EACjBG,EAAOD,EAAI,SAAW,EAAIA,EAAI,MAAM,EAAE,EAAE,IAAK3f,IAAS,GAAGA,EAAI,GAAGA,EAAI,EAAE,EAAE,KAAK,EAAE,EAAI2f,EACzF,GAAIC,EAAK,SAAW,EAAG,OAAOH,EAC9B,MAAMI,EAAM,SAASD,EAAK,MAAM,EAAG,CAAC,EAAG,EAAE,EACnCE,GAAQ,SAASF,EAAK,MAAM,EAAG,CAAC,EAAG,EAAE,EACrCG,GAAO,SAASH,EAAK,MAAM,EAAG,CAAC,EAAG,EAAE,EAC1C,MAAO,QAAQC,CAAG,KAAKC,EAAK,KAAKC,EAAI,KAAKL,CAAK,GACjD,EAEMd,GAAezkB,EAAM,cAAgB,UACrCilB,GAAejlB,EAAM,cAAgB,UACrC6lB,GAAkB7lB,EAAM,iBAAmB,UAC3CglB,GAAchlB,EAAM,aAAe,UACnC8lB,GAAY9lB,EAAM,WAAa,UAC/B+lB,GAAa/lB,EAAM,oBAAsB,UACvBwkB,GAAUC,GAAc,GAAI,EACpD,MAAMuB,GAAmBxB,GAAUC,GAAc,GAAI,EAC1BD,GAAUC,GAAc,GAAI,EACvD,MAAMwB,GAAqBhB,GACrBf,GAAkBO,GAClByB,GAAsBlmB,EAAM,kBAAoB,UAEhDokB,GAAgB2B,GAChBI,GAAoBzL,IAAY,sBAChC0L,GAAgChc,IAAqB+Y,GAAmB,SAAW,GAAK5Z,GAAS,SAAW,EAC5G8c,GAA0BpB,GAE1BqB,GAA2BrB,GAC3BsB,GAAiBvB,GACjBwB,GAAuBxB,GACvByB,GAAiB,qCACjBC,GAAoBX,GACpBY,GAAqBZ,GACrBa,GAAqB1C,GAIrB2C,GAA6BhB,GAC7BiB,GAAyB,OACzBC,GAAkB,yBAExB,SAASC,GAAuBlyD,EAA4B,CAC1D,OAAK+oD,GAKHjlB,EAAAA,KAAC,MAAA,CACC,MAAO,CACL,QAAS,OACT,WAAY,SACZ,eAAgB,gBAChB,IAAK,OACL,QAAS9jC,IAAS,UAAY,YAAc,WAC5C,aAAcA,IAAS,UAAY,OAAS,OAC5C,OAAQ,aAAakxD,EAAgB,GACrC,WAAYxB,GAAU,UAAW,EAAG,EACpC,aAAc,KAAA,EAGhB,SAAA,CAAA5rB,EAAAA,KAAC,MAAA,CAAI,MAAO,CAAE,SAAU,GACtB,SAAA,CAAAE,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,MAAOorB,GACP,SAAUL,GAAU,GACpB,WAAY,IACZ,cAAe,YACf,cAAe,QAAA,EAElB,SAAA,iBAAA,CAAA,EAGDjrB,EAAAA,KAAC,MAAA,CAAI,MAAO,CAAE,MAAOktB,GAAW,SAAUjC,GAAU,GAAI,WAAY,IAAK,WAAY,KAClF,SAAA,CAAAhG,GAA2B,WAAW,kBAAA,CAAA,CACzC,CAAA,EACF,EACA/kB,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAM,CACR6T,GAAsB,eAAgB,CAAE,OAAQ,sBAAuB,CAC9E,EACA,MAAO,CACL,OAAQ,aAAaqZ,EAAgB,GACrC,aAAc,IACd,WAAYxB,GAAU,UAAW,GAAI,EACrC,MAAON,GACP,QAAS,WACT,SAAUL,GAAU,GACpB,WAAY,IACZ,OAAQ,UACR,WAAY,QAAA,EAEf,SAAA,MAAA,CAAA,CAED,CAAA,CAAA,EAnDK,IAsDX,CAEA,SAASoD,GAAuBnyD,EAA4BgiC,EAAUmkB,GAAiB,CACrF,MAAMiM,EAAiBhJ,IAAoB,CAACpnB,EACtCqwB,EAAqBrwB,GAAkBowB,EAAR,MAAiC,OAEtE,OACEpuB,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,QAAS,OACT,WAAY,SACZ,eAAgB,SAChB,WAAYhC,GAAkBhiC,IAAS,UAAjB,MAAqC,MAC3D,UAAWgiC,EAAU,IAAMhiC,IAAS,UAAY,MAAQ,EACxD,WAAY,EACZ,UAAW,SACX,MAAO,MAAA,EAGT,SAAAgkC,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,MAAO6tB,GACP,SAAUQ,EACV,WAAYD,EAAiB,IAAM,KACnC,SAAU,OACV,UAAW,QAAA,EAGZ,SAAApD,EAAA,CAAA,CACH,CAAA,CAGN,CAEA,SAASsD,GAA0BtyD,EAA8B,CAC/D,MAAMuyD,EAAiBvyD,IAAS,YAAc,CAAC,IAAK,IAAK,GAAG,EAAI,CAAC,OAAQ,MAAO,KAAK,EACrF,OAAIA,IAAS,YAET8jC,OAAC,MAAA,CAAI,MAAO,CAAE,QAAS,OAAQ,WAAY,SAAU,IAAK,MAAA,EACxD,SAAA,CAAAE,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,MAAO,GACP,OAAQ,GACR,aAAc,MACd,WAAY0rB,GAAUsB,GAAW,GAAI,EACrC,WAAY,CAAA,CACd,CAAA,EAEFhtB,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,QAAS,OACT,IAAK,OACL,SAAU,SACV,KAAM,CAAA,EAGP,SAAAuuB,EAAe,IAAI,CAAC9P,EAAOllE,IAC1BymD,EAAAA,IAAC,MAAA,CAEC,MAAO,CACL,MAAAye,EACA,SAAU,OACV,OAAQ,GACR,aAAc,MACd,WAAYiN,GAAUsB,GAAW,GAAI,EACrC,eAAgB,YAChB,UAAW,0CACX,UAAW,OACX,WAAY,CAAA,CACd,EAXK,uBAAuBzzE,CAAK,EAAA,CAapC,CAAA,CAAA,EAEHymD,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,MAAO,GACP,OAAQ,GACR,aAAc,MACd,WAAY0rB,GAAUsB,GAAW,GAAI,EACrC,WAAY,CAAA,CACd,CAAA,CACF,EACF,EAKFhtB,EAAAA,IAAC,MAAA,CACC,cAAY,OACZ,MAAO,CACL,QAAS,OACT,cAAe,SACf,IAAKhkC,IAAS,YAAc,OAAS,MAAA,EAGtC,SAAAuyD,EAAe,IAAI,CAAC9P,EAAOllE,IAC1BymD,EAAAA,IAAC,MAAA,CAEC,MAAO,CACL,MAAAye,EACA,SAAU,OACV,OAAQziD,IAAS,YAAc,GAAK,GACpC,aAAc,IACd,WAAY,0BAA0B0vD,GAAUC,GAAc,GAAI,CAAC,QAAQD,GAAUC,GAAc,GAAI,CAAC,SAASD,GAAUC,GAAc,GAAI,CAAC,SAC9I,eAAgB,YAChB,UAAW,0CACX,UAAW3vD,IAAS,YAAc,cAAc0vD,GAAUC,GAAc,GAAI,CAAC,GAAK,MAAA,CACpF,EAVK,uBAAuBpyE,CAAK,EAAA,CAYpC,CAAA,CAAA,CAGP,CAEA,SAASi1E,GAA2BxwB,EAAUmkB,GAAiB,CAC7D,GAAIrK,GAAW,OAAO,KACtB,GAAIwV,GACF,OAAOgB,GAA0B,WAAW,EAE9C,GAAI,CAACjE,GAAmB,OAAQ,OAAO,KACvC,MAAMoE,EAAezwB,GAAW8nB,GAC1B4I,EAAqBrE,GAAmB,MAAM,EAAGnJ,EAAc,EACrE,OAAIC,IAAoB,UAEpBnhB,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,QAAS,OACT,cAAe,SACf,IAAKhC,EAAU,MAAQ,MACvB,WAAY,EACZ,UAAW,OACX,UAAWA,EAAU,QAAU,OAC/B,aAAcA,EAAU,MAAQ,EAChC,eAAgB,OAChB,gBAAiB,MAAA,EAGlB,SAAA0wB,EAAmB,IAAKruB,GACvBP,EAAAA,KAAC,SAAA,CAEC,UAAU,8BACV,wBAAuBO,EAAW,aAAe,OAAS,OAC1D,IAAK2lB,GAAuB3lB,EAAW,EAAE,EACzC,QAAS,IAAM,CACTkhB,IAAY,YACdyB,GAAc,EAAI,EACd/C,IAAW,YACbwH,GAAiB,EAAI,GAGzB8C,GAAsBlqB,CAAU,CAClC,EACA,KAAK,SACL,MAAO,CACL,QAAS,OACT,WAAY,SACZ,eAAgB,gBAChB,IAAK,MACL,MAAO,OACP,SAAU,EACV,aAAc,MACd,OAAQ,aAAaA,EAAW,aAAesrB,GAAeO,EAAW,GACzE,WAAY7rB,EAAW,aAAesrB,GAAeQ,GACrD,MAAO9rB,EAAW,aAAe+sB,GAAsBJ,GACvD,QAAShvB,EAAU,WAAa,YAChC,SAAUA,EAAU,OAAS,OAC7B,WAAY,IACZ,WAAY,KACZ,UAAW,OACX,UAAW,OACX,OAAQ,SAAA,EAGV,SAAA,CAAAgC,MAAC,QAAK,MAAO,CAAE,SAAU,CAAA,EAAM,WAAW,KAAK,EAC9CghB,IAAc3gB,EAAW,cACxBL,EAAAA,IAAC,OAAA,CACC,MAAO,CACL,WAAY,EACZ,aAAc,MACd,WAAY0rB,GAAU,UAAW,GAAI,EACrC,QAAS,UACT,SAAU,OACV,WAAY,GAAA,EAEf,SAAA,IAAA,CAAA,CAED,CAAA,EA/CGrrB,EAAW,EAAA,CAkDnB,CAAA,CAAA,SAKJ,MAAA,CAAI,MAAO,CAAE,QAAS,OAAQ,WAAY,SAAU,IAAKouB,EAAe,MAAQ1I,GAA4B,MAAQ/nB,EAAU,MAAQ,OAAQ,WAAY,GACxJ,SAAA,CAAA,CAACywB,GACAzuB,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAMssB,GAAkB,MAAM,EACvC,SAAU,CAAC9H,GACX,aAAW,0BACX,MAAO,CACL,MAAOuB,GAA4B,GAAK/nB,EAAU,GAAK,GACvD,OAAQ+nB,GAA4B,GAAK/nB,EAAU,GAAK,GACxD,aAAc,MACd,OAAQ,aAAakuB,EAAW,GAChC,WAAYC,GACZ,MAAO,UACP,SAAUpG,GAA4B,OAAS,OAC/C,WAAY,EACZ,OAAQvB,GAA2B,UAAY,UAC/C,QAASA,GAA2B,EAAI,GAAA,EAE3C,SAAA,QAAA,CAAA,EAIHxkB,EAAAA,IAAC,MAAA,CACC,IAAKukB,GACL,SAAU6H,GACV,MAAO,CACL,QAAS,OACT,IAAKqC,EAAe,MAAQ1I,GAA4B,MAAQ/nB,EAAU,MAAQ,OAClF,UAAW,OACX,eAAgB,OAChB,gBAAiB,OACjB,KAAM,CAAA,EAGP,SAAA0wB,EAAmB,IAAKruB,GACvBP,EAAAA,KAAC,SAAA,CAEC,UAAU,8BACV,wBAAuBO,EAAW,aAAe,OAAS,OAC1D,IAAK2lB,GAAuB3lB,EAAW,EAAE,EACzC,QAAS,IAAM,CACTkhB,IAAY,YACdyB,GAAc,EAAI,EACd/C,IAAW,YACbwH,GAAiB,EAAI,GAGzB8C,GAAsBlqB,CAAU,CAClC,EACA,KAAK,SACL,MAAO,CACL,QAAS,cACT,WAAY,SACZ,IAAKouB,EAAe,MAAQ1I,GAA4B,MAAQ,MAChE,WAAY,SACZ,aAAc,MACd,OAAQ,aAAa1lB,EAAW,aAAesrB,GAAeO,EAAW,GACzE,WAAY7rB,EAAW,aAAesrB,GAAeQ,GACrD,MAAO9rB,EAAW,aAAe+sB,GAAsBJ,GACvD,QAASyB,EAAe,UAAY1I,GAA4B,UAAY/nB,EAAU,WAAa,WACnG,SAAUywB,EAAe,OAAS1I,GAA4B,OAAS/nB,EAAU,OAAS,OAC1F,WAAY,IACZ,WAAYywB,EAAe,EAAI1I,GAA4B,IAAM,OACjE,UAAW,OACX,OAAQ,SAAA,EAGV,SAAA,CAAA/lB,EAAAA,IAAC,OAAA,CAAM,WAAW,IAAA,CAAK,EACtBghB,IAAc3gB,EAAW,cACxBL,EAAAA,IAAC,MAAA,CAAI,MAAO,CAAE,SAAU,OAAQ,QAAS,EAAA,EAAO,SAAA,IAAA,CAAE,CAAA,CAAA,EAjC/CK,EAAW,EAAA,CAoCnB,CAAA,CAAA,EAEF,CAACouB,GACAzuB,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAMssB,GAAkB,OAAO,EACxC,SAAU,CAAC5H,GACX,aAAW,2BACX,MAAO,CACL,MAAOqB,GAA4B,GAAK/nB,EAAU,GAAK,GACvD,OAAQ+nB,GAA4B,GAAK/nB,EAAU,GAAK,GACxD,aAAc,MACd,OAAQ,aAAakuB,EAAW,GAChC,WAAYC,GACZ,MAAO,UACP,SAAUpG,GAA4B,OAAS,OAC/C,WAAY,EACZ,OAAQrB,GAA4B,UAAY,UAChD,QAASA,GAA4B,EAAI,GAAA,EAE5C,SAAA,QAAA,CAAA,CAED,EAEJ,CAEJ,CAEA,SAASiK,GAA4B3wB,EAAUmkB,GAAiB,CAC9D,GAAInkB,GAAW,EAACssB,IAAA,MAAAA,GAA6B,gBAAgB,OAAO,KAEpE,MAAMlW,EAAY,gCAAgCkW,GAA4B,EAAE,GAChF,OACEtqB,MAAC,OAAI,yBAAsB,GAAC,MAAO,CAAE,UAAW,OAC9C,SAAAA,EAAAA,IAAC2W,GAAA,CACC,UAAAvC,EACA,MAAOkW,GAA4B,KACnC,sBAAuBA,GAA4B,eACnD,mBAAoB5D,GACpB,uBAAwB,CAACkI,EAAgBpnB,IAAmB,CAC1D4e,GAA0BwI,EAAgBpnB,EAAgB8iB,GAA4B,IAAI,CAC5F,EACA,QAAUuE,GAAwB,CAChC,QAAQ,MAAM,oDAAqDA,CAAmB,CACxF,CAAA,CAAA,EAEJ,CAEJ,CAEA,SAASC,GAAkBzqB,EAAwB,SAEjD,OADIjF,EAAAiF,EAAQ,eAAR,MAAAjF,EAAsB,QACtB,GAACE,EAAA+E,EAAQ,cAAR,MAAA/E,EAAqB,QAAe,KAEvCQ,EAAAA,KAAC,MAAA,CAAI,MAAO,CAAE,QAAS,OAAQ,SAAU,OAAQ,IAAK,MAAO,UAAW,MAAA,EACtE,SAAA,CAAAE,EAAAA,IAAC,MAAA,CAAI,MAAO,CAAE,MAAO,OAAQ,SAAU,OAAQ,WAAY,IAAK,MAAOitB,EAAA,EAAc,SAAA,UAAO,EAC3F5oB,EAAQ,YAAY,IAAK7P,GACxBsL,EAAAA,KAAC,IAAA,CAEC,KAAMtL,EAAK,IACX,OAAO,SACP,IAAI,sBACJ,QAAS,IAAM,CACR0xB,GAAoB,sBAAuB,CAC9C,WAAY7hB,EAAQ,GACpB,MAAOA,EAAQ,UACf,SAAU,CACR,aAAc7P,EAAK,MACnB,WAAYA,EAAK,GAAA,CACnB,CACD,CACH,EACA,MAAO,CACL,MAAO42B,GACP,SAAUL,GAAU,GACpB,eAAgB,OAChB,aAAc,aAAaW,GAAUC,GAAc,GAAI,CAAC,EAAA,EAGzD,SAAA,CAAAn3B,EAAK,OAASA,EAAK,IAAI,IAACwL,EAAAA,IAACxD,GAAA,CAAa,KAAM,GAAI,MAAO,CAAE,QAAS,SAAU,cAAe,UAAY,cAAY,MAAA,CAAO,CAAA,CAAA,EArBtH,GAAG6H,EAAQ,EAAE,IAAI7P,EAAK,GAAG,EAAA,CAuBjC,CAAA,EACH,CAEJ,CAEA,SAASu6B,GAAmB1qB,EAAwBrG,EAAUmkB,GAAiB,OAC7E,OAAK/iB,EAAAiF,EAAQ,eAAR,MAAAjF,EAAsB,cAExB,MAAA,CAAI,MAAO,CAAE,UAAW,QACvB,SAAA,CAAAY,EAAAA,IAAC,MAAA,CAAI,MAAO,CAAE,SAAU,OAAQ,WAAY,IAAK,MAAOitB,GAAY,aAAc,KAAA,EAAU,SAAApL,GAAoB,EAChH7hB,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,QAAS,OACT,IAAKhC,EAAU,MAAQ,OACvB,UAAW,OACX,eAAgB,OAChB,gBAAiB,OACjB,QAAS,cACT,SAAU,OACV,eAAgB,aAAA,EAGjB,SAAAqG,EAAQ,aAAa,MAAM,EAAG,CAAC,EAAE,IAAKga,GACrCve,EAAAA,KAAC,IAAA,CAEC,UAAU,0BACV,KAAMue,EAAK,IACX,OAAO,SACP,IAAI,sBACJ,QAAS,IAAM,CACR6H,GAAoB,sBAAuB,CAC9C,WAAY7hB,EAAQ,GACpB,MAAOA,EAAQ,UACf,SAAU,CACR,aAAcga,EAAK,MACnB,WAAYA,EAAK,IACjB,iBAAkBA,EAAK,UACvB,YAAa,cAAA,CACf,CACD,CACH,EACA,MAAO,CACL,QAAS,OACT,cAAe,SACf,IAAKrgB,EAAU,MAAQ,OACvB,QAASA,EAAU,OAAS,OAC5B,aAAc,MACd,eAAgB,OAChB,MAAOgvB,GACP,OAAQ,aAAad,EAAW,GAChC,WAAYC,GACZ,UAAW,OACX,KAAMnuB,EACF,mCACA,oCACJ,SAAU,EACV,SAAUA,EAAU,QAAU,QAC9B,WAAY,EACZ,gBAAiB,QACjB,UAAW,YAAA,EAGb,SAAA,CAAAgC,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,SAAUhC,EAAU,OAAS,OAC7B,WAAY,IACZ,WAAY,KACZ,MAAOgvB,GACP,aAAc,UAAA,EAGf,SAAA3O,EAAK,OAASA,EAAK,GAAA,CAAA,EAErBA,EAAK,WACJre,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,SAAUhC,EAAU,OAAS,OAC7B,MAAOivB,GACP,WAAY,IACZ,aAAc,UAAA,EAGf,SAAA5O,EAAK,SAAA,CAAA,CACR,CAAA,EA3DG,GAAGha,EAAQ,EAAE,IAAIga,EAAK,GAAG,EAAA,CA8DjC,CAAA,CAAA,CACH,EACF,EAlFwC,IAoF5C,CAEA,SAAS2Q,GAAwBhxB,EAAUmkB,GAAiB,CAC1D,MAAM8M,EAAkBjxB,EAAU,OAAS,OAC3C,OACE8B,EAAAA,KAAC,MAAA,CACC,IAAKkkB,GACL,MAAO,CACL,KAAMhmB,EAAU,QAAU,EAC1B,UAAW,EACX,UAAW,OACX,UAAW,OACX,mBAAoB,UACpB,wBAAyB,QACzB,eAAgB,OAChB,QAASA,EAAU,YAAc+kB,GAAa,gBAAkB,CAAA,EAGjE,SAAA,CAAAtS,GAAS,IAAKpM,GAAY,CACzB,MAAM6qB,EACJ7qB,EAAQ,OAAS,QACjBA,EAAQ,KAAO6f,GAA4B,QAE7C,OACElkB,EAAAA,IAAC,MAAA,CAEC,IAAKkvB,EAA2BjL,GAA4B,OAC5D,MAAO,CAAE,aAAcjmB,EAAU,OAAS,OAAQ,UAAWqG,EAAQ,OAAS,OAAS,QAAU,MAAA,EAE/F,UAAA,IAAM,CAER,MAAM8qB,EADmB,CAAA,CAAQ9qB,EAAQ,QAAQ,QACK,CAACyT,GAEvD,OACE9X,MAAAD,EAAAA,SAAA,CACJ,SAAAD,EAAAA,KAAC,MAAA,CACC,MAAO,CACL,QAASuE,EAAQ,OAAS,YAAc,QAAU,eAClD,MAAOA,EAAQ,OAAS,YAAc,OAAS,OAC/C,SAAUA,EAAQ,OAAS,YAAc,OAAS,MAClD,QAASA,EAAQ,OAAS,YAAc,kBAAoB,YAC5D,aAAcA,EAAQ,OAAS,YAAc,EAAI,MACjD,WAAYA,EAAQ,OAAS,OAASqnB,GAAUsB,GAAW,GAAI,EAAI,cACnE,MAAOA,GACP,UAAW,OACX,OAAQ,OACR,SAAU3oB,EAAQ,OAAS,YAAc4qB,EAAkBjxB,EAAU,OAAS,OAC9E,WAAYqG,EAAQ,OAAS,YAAc,KAAO,GAAA,EAGnD,SAAA,CAAAA,EAAQ,OAAS,YAChBA,EAAQ,QAAQ,aACbkW,GAAA,CAAuB,QAASlW,EAAQ,QAAS,MAAO,CAAE,GAAG6C,EAAO,UAAW8lB,IAAa,SAAUiC,CAAA,CAAiB,EACtHnX,IAAazT,EAAQ,KAAOwgB,GAA4B,QAC1DqG,GAA0B,CAAE,aAAc,EAAA,CAAM,EAC9C,WAEH,IAAA,CAAE,MAAO,CAAE,OAAQ,EAAG,MAAO8B,EAAA,EAAc,WAAQ,QAAQ,EAE7D3oB,EAAQ,OAAS,aAAeyqB,GAAkBzqB,CAAO,EACzDA,EAAQ,OAAS,aAAe0qB,GAAmB1qB,EAASrG,CAAO,EACnEqG,EAAQ,OAAS,aAAe0nB,GAAmB1nB,CAAO,EAC1DA,EAAQ,OAAS,aAAe8qB,GAA6BlM,GAAyB,IAAI5e,EAAQ,EAAE,GAAKA,EAAQ,uBAChHrE,EAAAA,IAAC,OAAI,yBAAsB,GAAC,MAAO,CAAE,UAAW,QAC9C,SAAAA,EAAAA,IAAC2W,GAAA,CACC,UAAWtS,EAAQ,GACnB,MAAOA,EAAQ,UACf,sBAAuBA,EAAQ,sBAC/B,mBAAoBqiB,GACpB,uBAAwB,CAACtS,GAAW5M,KAAmB,CACrD4e,GAA0BhS,GAAW5M,GAAgBnD,EAAQ,SAAS,CACxE,EACA,QAAUwqB,IAAwB,CAChC,QAAQ,MAAM,gDAAiDA,EAAmB,CACpF,CAAA,CAAA,EAEJ,EAEDxqB,EAAQ,OAAS,aAAe8qB,GAA6B,CAAClM,GAAyB,IAAI5e,EAAQ,EAAE,IAAMA,EAAQ,uBAAyBygB,WAC1I,MAAA,CAAI,yBAAsB,GAAC,MAAO,CAAE,UAAW,QAC9C,SAAA9kB,EAAAA,IAAC2W,GAAA,CACC,UAAWtS,EAAQ,GACnB,MAAOA,EAAQ,UACf,sBAAuBA,EAAQ,uBAAyB,OACxD,mBAAoBqiB,GACpB,uBAAwB,CAACtS,GAAW5M,KAAmB,CACrD4e,GAA0BhS,GAAW5M,GAAgBnD,EAAQ,SAAS,CACxE,EACA,QAAUwqB,IAAwB,CAChC,QAAQ,MAAM,gDAAiDA,EAAmB,CACpF,CAAA,CAAA,CACF,CACF,CAAA,CAAA,CAAA,EAGA,CAEJ,GAAA,CAAG,EAxEIxqB,EAAQ,EAAA,CA2EnB,CAAC,EAEA1qD,UACE,MAAA,CAAI,KAAK,QAAQ,MAAO,CAAE,MAAOqzE,GAAW,SAAUjC,GAAU,GAAI,OAAQ,aAAamB,EAAW,GAAI,WAAY,oBAAqB,aAAc,MAAO,QAAS,MAAA,EAAU,SAAA,kDAAA,CAAgD,EAGpOlsB,EAAAA,IAAC,MAAA,CAAI,IAAKskB,EAAA,CAAgB,CAAA,CAAA,CAAA,CAGhC,CAEA,GAAI/C,IAAY,UAAW,CASzB,IAAS6N,EAAT,SAAqCC,EAAkB,CACrD,MAAMC,EAAgB5Q,GAAyB0G,EAAgB,EAC/D,OAAOnlB,GAAAA,aACLH,OAAAC,EAAAA,SAAA,CACE,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,MAAOuvB,CAAA,CAA8B,EAC1CvvB,EAAAA,IAAC,MAAA,CAAI,MAAOsvB,EAAc,MAAQ,SAAAD,CAAA,CAAM,CAAA,EAC1C,EACA,SAAS,IAAA,CAEb,EAESG,EAAT,SAAsBnN,EAAa,GAAO,CACxC,MAAMrkB,EAAUokB,GAAsBC,CAAU,EAE1CoN,GAAgBpN,GAAerkB,GAAW+kB,GAE1C2M,GAAsB,CAACD,IAAiBrO,IAAsB,QAC9DqN,GAAezwB,GAAW,CAACyxB,IAAiB3J,GAC5C6J,GACJF,IAAiB,EAAEtN,IAAmBhC,IAAmB,UAAY,CAACkC,GAAc8C,IAChFyK,GAAwBH,GAAgB/Q,GAAyB0G,EAAgB,EAAI,KACrFyK,GAAwB,CAAA,EAAQD,IAAyBxK,IAAoB,CAACpnB,GAC9E8xB,GAAmB9xB,EACrB0nB,GACAkK,GACEA,GAAsB,WACtB3P,IAAW,SACT,OACA,iCACF8P,GAAoB/xB,EACtB2nB,GACAiK,GACEA,GAAsB,YACtB,OACAI,GAAsBhyB,EAAU0nB,GAAiBkK,IAAuB,eAAiB,OACzFK,GAAuBjyB,EAAU2nB,GAAkBiK,IAAuB,eAC1EM,GAAmBpQ,GAAc,CAAC2O,IAAgBgB,GAExD,OACA3vB,EAAAA,KAAC,MAAA,CACC,UAAU,yBACV,eAAc9B,EAAU,OAAS,QACjC,MAAO,CACJ,qBAAiCotB,GAClC,MAAO4B,GACP,MAAO8C,GACP,SAAUE,GACV,OAAQD,GACR,UAAWE,GACX,UAAW,aACX,QAAS,OACT,cAAe,SACf,WAAYR,GAAgBlC,GAA0BJ,GACtD,aAAc,CAACnvB,GAAW4xB,GAAwBA,GAAsB,kBAAoB,OAC5F,QAASH,GAAgB,EAAIzxB,EAAU,MAAQ,EAC/C,UAAW6xB,GAAwB,OAASJ,GAAgB9B,GAAiB,OAC7E,OAAQkC,IAAyBH,GAAsB,OAAS,aAAahC,EAAoB,GACjG,SAAU,SACV,UAAW1vB,EAAU,EAAI,MAAA,EAG3B,SAAA,CAAAgC,EAAAA,IAAC,SAAO,SAAA5C,EAAA,CAAyB,EAChC8yB,IACCpwB,EAAAA,KAAC,MAAA,CACC,MAAO,CACL,QAAS,OACT,WAAY,SACZ,eAAgB,gBAChB,QAAS9B,EAAU,WAAa,YAChC,WAAYwvB,GACZ,MAAOR,GACP,aAAc,aAAaS,EAAc,GACzC,WAAY,CAAA,EAGd,SAAA,CAAA3tB,EAAAA,KAAC,MAAA,CAAI,MAAO,CAAE,QAAS,OAAQ,WAAY,SAAU,IAAK,OAAQ,SAAU,CAAA,EAC1E,SAAA,CAAAE,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,MAAOhC,EAAU,GAAK,GACtB,OAAQA,EAAU,GAAK,GACvB,WAAY,EACZ,aAAc,MACd,WAAY0tB,GAAUsB,GAAW,GAAI,EACrC,QAAS,OACT,WAAY,SACZ,eAAgB,SAChB,SAAU,GACV,WAAY,IACZ,MAAO5B,GACP,SAAU,QAAA,EAGX,SAAAvL,EACC7f,MAAC,MAAA,CAAI,IAAK6f,EAAe,IAAK,GAAGD,GAAe,WAAW,QAAS,MAAO,CAAE,MAAO,OAAQ,OAAQ,OAAQ,UAAW,UAAW,WAAYuM,GAAc,QAAS,CAAA,EAAK,EAE1KnsB,MAACpD,GAAA,CAAc,KAAMoB,EAAU,GAAK,GAAI,YAAa,IAAK,cAAY,MAAA,CAAO,CAAA,CAAA,GAG/E+hB,GAAmBC,IACnBlgB,EAAAA,KAAC,MAAA,CAAI,MAAO,CAAE,SAAU,EAAG,aAAc,UAAA,EACtC,SAAA,CAAAigB,GAAmB/f,EAAAA,IAAC,MAAA,CAAI,MAAO,CAAE,SAAUhC,EAAU,OAAS,OAAQ,WAAY,IAAK,WAAY,IAAK,cAAe,GAAM,SAAA4hB,EAAY,EACzII,GAAgBhgB,EAAAA,IAAC,MAAA,CAAI,MAAO,CAAE,SAAUhC,EAAU,OAAS,OAAQ,MAAO4vB,GAAmB,UAAW,KAAA,EAAU,SAAAP,EAAA,CAAkB,CAAA,CAAA,CACvI,CAAA,EAEJ,EACCoC,KAAkB,CAACzxB,GAAWqkB,IAC7BriB,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAMgjB,GAAc,EAAK,EAClC,aAAW,qBACX,MAAO,CACL,MAAO,GACP,OAAQ,GACR,aAAc,MACd,OAAQ,aAAayK,EAAc,GACnC,WAAYtB,GACZ,MAAOyB,GACP,OAAQ,UACR,QAAS,OACT,WAAY,SACZ,eAAgB,QAAA,EAGlB,eAAC/wB,GAAA,CAAU,KAAM,GAAI,YAAa,IAAK,cAAY,MAAA,CAAO,CAAA,CAAA,CAC5D,CAAA,CAAA,EAINiD,EAAAA,KAAC,MAAA,CACC,MAAO,CACL,QAAS,OACT,cAAe,SACf,IAAK2uB,GAAe,MAAQzwB,EAAU,MAAQ,OAC9C,UAAW,EACX,KAAMA,GAAWyxB,GAAgB,QAAU,OAC3C,SAAUzxB,GAAWyxB,GAAgB,SAAW,OAChD,mBAAoB,UACpB,QAAUC,GAAmD1xB,EAAU,MAAQ,MAA9CA,EAAU,MAAQ,OACnD,eAAiByxB,GAA2B,OAAX,SACjC,WAAYlC,EAAA,EAGb,SAAA,CAAAW,GAAuB,SAAS,EAChCyB,IAAwBX,GAAwBhxB,CAAO,EACvD,CAAC0xB,IACA5vB,EAAAA,KAAAC,EAAAA,SAAA,CACG,SAAA,CAAA/B,GAAW,CAACyxB,IAAiB,CAAChB,UAAiB,MAAA,CAAI,cAAY,OAAO,MAAO,CAAE,KAAM,WAAY,UAAW,GAAK,EACjHzwB,GAAW,CAACyxB,IAAiB3O,IAAsBT,GAA6B5P,GAAS,SAAW,GACnGzQ,EAAAA,IAAC,OAAI,MAAO,CAAE,SAAU,GAAI,WAAY,IAAK,UAAW,QAAA,EAAa,SAAA+gB,GAAe,EAErFyN,GAA2BxwB,CAAO,CAAA,EACrC,GAEA0xB,IAAuB,CAAC1xB,GAAWyxB,IAAiBnP,IACtDtgB,EAAAA,IAAC3C,GAAA,CACC,MAAOqlB,GACP,SAAUC,GACV,KAAM+M,IAAuB9M,IAAmB,CAACG,GACjD,aAAc2M,GAAsB7M,GAAqB9I,GACzD,YAAasQ,GAAmB,MAAM,EAAGnJ,EAAc,EACvD,mBAAoB8E,GACpB,QAASlO,GACT,UAAWwV,GACX,QAAAtvB,EACA,SAAUyxB,GACV,SAAU,CAACA,GACX,oBAAAvxB,GACA,QAAS2hB,EACT,MAAOD,EACP,YAAAthB,GACA,OAAQ,CAAE,OAAQ8sB,GAAiB,WAAYgC,GAAqB,QAASW,GAA4B,KAAMf,GAAW,MAAOC,GAAY,OAAQf,EAAA,EACrJ,OAAQpD,GACR,OAAQ,IAAM,CACZjF,GAA8B,QAAU,KACxCD,GAA0B,QAAU,GACpCZ,GAAc,EAAI,EACd/C,IAAW,YAAYwH,GAAiB,EAAI,EAChDyB,GAAkBxG,EAAU,CAC9B,EACA,aAAeriB,IAAe,CAC5B2iB,GAAc,EAAI,EACd/C,IAAW,YAAYwH,GAAiB,EAAI,EAChD8C,GAAsBlqB,EAAU,CAClC,CAAA,CAAA,EAGDovB,IAAiBtB,GAAuB,UAAWnwB,CAAO,EAC1D,CAACyxB,IAAiBrO,IAAsB,UAAYuN,GAA4B3wB,CAAO,CAAA,CAAA,CAAA,CAC1F,CAAA,CAAA,CAGJ,EAvMA,MAAMuxB,EAA8C,CAClD,SAAU,QACV,MAAO,EACP,WAAYtB,GACZ,eAAgB,YAChB,OAAQ,SAAA,EAoMV,OAAIhO,IAAW,SACTkC,GAEAriB,EAAAA,KAAC,MAAA,CACC,IAAKukB,GACL,UAAU,mBACV,oBAAmBnC,GACnB,sBAAoB,UACpB,+BAA8B/B,EAC9B,+BAA8BsF,GAAqB,OAAS,QAC5D,MAAO,CACL,MAAOC,GACP,OAAQC,GACR,SAAUD,GACV,UAAWC,GACX,SAAU,WACV,SAAU,QAAA,EAGX,SAAA,CAAA6J,EAAa,EAAK,EAClBrK,IACC,OAAO,SAAa,KACpBiK,EAA4BI,EAAa,EAAI,CAAC,CAAA,CAAA,CAAA,EAMpD1vB,EAAAA,KAAC,MAAA,CAAI,UAAU,mBAAmB,oBAAmBoiB,GAAW,MAAO,CAAE,MAAO,OAAQ,SAAU,UAAA,EAC/F,SAAA,CAAAsN,EAAa,EAAK,EAClBzM,IACC,OAAO,SAAa,KACpBqM,EAA4BI,EAAa,EAAI,CAAC,CAAA,EAClD,EAIC/M,GAgCH3iB,EAAAA,KAAC,MAAA,CAAI,UAAU,mBAAmB,oBAAmBoiB,GAClD,SAAA,CAAA,CAACa,IACA/iB,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,SAAU,QACV,GAAGyqB,GACH,OAAQ,UAAA,EAGT,WAAa,EAAK,CAAA,CAAA,EAGtB1H,IACC,OAAO,SAAa,KACpBqM,EAA4BI,EAAa,EAAI,CAAC,CAAA,EAClD,EA7CExvB,EAAAA,IAAC,MAAA,CAAI,UAAU,mBAAmB,oBAAmBkiB,GACnD,SAAApiB,EAAAA,KAAC,SAAA,CACC,KAAK,SACL,QAAS6nB,GACT,MAAO,CACL,SAAU,QACV,GAAG8C,GACH,OAAQ,UACR,OAAQ,OACR,aAAc,MACd,WAAYvjB,EAAM,aAClB,MAAOkmB,GACP,QAAS,OACT,WAAY,SACZ,IAAK,MACL,SAAU,OACV,WAAY,IACZ,QAAS,YACT,UAAW,oCACX,OAAQ,SAAA,EAGV,SAAA,CAAAptB,MAACpD,IAAc,KAAM,GAAI,YAAa,IAAK,cAAY,OAAO,EAC7D+iB,CAAA,CAAA,CAAA,EAEL,CAsBN,CAGA,OAAI0K,GAAmB,SAAW,GAAK,CAACiD,IACtC,QAAQ,IAAI,kEAAkE,EACvE,MAGLrN,IAAW,SAEXjgB,EAAAA,IAAC,MAAA,CAAI,UAAU,mBAAmB,oBAAmBkiB,GACnD,SAAAliB,EAAAA,IAAC,MAAA,CACC,UAAW,kCAAkC9E,GAAa,EAAE,GAC5D,MAAO,CACL,MAAOoiB,GAAUkD,CAAU,GAAK,OAChC,gBAAiB,UACjB,SAAUuK,GAAU,KACpB,GAAGv6D,CAAA,EAGL,SAAAsvC,EAAAA,KAAC,MAAA,CACC,UAAU,kCACV,MAAO,CAAE,gBAAiB,2BAAA,EAEzB,SAAA,CAAAwtB,GACCgB,GAA0B,QAAQ,EAChCjE,GAAmB,OAAS,SAC7B,MAAA,CAAI,UAAU,sBACZ,SAAAA,GAAmB,MAAM,EAAGnJ,EAAc,EAAE,IAAI,CAAC7gB,EAAY9mD,IAC5DumD,EAAAA,KAAC,SAAA,CAEC,IAAKkmB,GAAuB3lB,EAAW,EAAE,EACzC,QAAS,IAAMkqB,GAAsBlqB,CAAU,EAC/C,UAAU,sHACV,MAAO,CACL,MAAO9mD,IAAU,EAAI,OAASA,IAAU,EAAI,MAAQ,MACpD,gBAAiB2tD,EAAM,cAAgB,UACvC,MAAOA,EAAM,WAAa,UAC1B,OAAQ,aAAaA,EAAM,aAAe,SAAS,GACnD,SAAU6jB,GAAU,EAAA,EAGtB,SAAA,CAAA/qB,EAAAA,IAAC,OAAA,CAAK,UAAU,gBAAiB,SAAAK,EAAW,KAAK,EAChD2gB,IAAc3gB,EAAW,cACxBL,EAAAA,IAAC,MAAA,CACC,UAAU,kCACV,MAAO,CACL,gBAAiBkH,EAAM,iBAAmB,UAC1C,MAAOA,EAAM,oBAAsB,UACnC,SAAU,MACV,WAAY,CAAA,EAEf,SAAA,IAAA,CAAA,CAED,CAAA,EAxBG7G,EAAW,EAAA,CA2BnB,EACH,EAGDoQ,GAAS,OAAS,GACjB3Q,EAAAA,KAAC,MAAA,CACC,IAAKkkB,GACL,UAAU,2EACV,MAAO,CAAE,MAAO9c,EAAM,UAAW,mBAAoB,UAAW,wBAAyB,OAAA,EAExF,SAAA,CAAAuJ,GAAS,IAAKpM,GAAY,CACzB,MAAM6qB,EACJ7qB,EAAQ,OAAS,QACjBA,EAAQ,KAAO6f,GAA4B,QAE7C,OACElkB,EAAAA,IAAC,MAAA,CAEC,IAAKkvB,EAA2BjL,GAA4B,OAC5D,UAAW5f,EAAQ,OAAS,OAAS,aAAe,YAEtD,SAAArE,EAAAA,IAAC,MAAA,CACC,UAAU,iDACV,MAAO,CACL,gBAAiBqE,EAAQ,OAAS,OAAS6C,EAAM,aAAe,UAChE,MAAO7C,EAAQ,OAAS,OAAU6C,EAAM,kBAAoB,UAAaA,EAAM,UAC/E,SAAU6jB,GAAU,EAAA,EAGrB,WAAQ,OAAS,YAChB1mB,EAAQ,QAAQ,OACdvE,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAAC,MAACua,IAAuB,QAASlW,EAAQ,QAAS,MAAA6C,EAAc,SAAU6jB,GAAU,GAAI,EACvFgB,GAAmB1nB,EAAS,CAC3B,YAAa6C,EAAM,aACnB,UAAWA,EAAM,kBAAA,CAClB,CAAA,CAAA,CACH,EACE4Q,IAAazT,EAAQ,KAAOwgB,GAA4B,QAC1DqG,GAA0B,CACxB,QAAS,GACT,YAAahkB,EAAM,aACnB,UAAWA,EAAM,mBACjB,aAAc,EAAA,CACf,EACC,KAEJlH,EAAAA,IAAC,IAAA,CAAE,MAAO,CAAE,OAAQ,EAAG,WAAY,KAAA,EAAU,WAAQ,OAAA,CAAQ,CAAA,CAAA,CAEjE,EAhCOqE,EAAQ,EAAA,CAmCnB,CAAC,EAEAyT,IAAa,CAACrH,GAAS,KACrBpM,GACCA,EAAQ,OAAS,aACjBA,EAAQ,KAAOwgB,GAA4B,SAC3C,CAACxgB,EAAQ,QAAQ,KAAA,CAAK,GAExBrE,MAAC,MAAA,CAAI,UAAU,UAAU,MAAO,CAAE,MAAOkH,EAAM,oBAC5C,SAAAgkB,GAA0B,CACzB,QAAS,GACT,YAAahkB,EAAM,aACnB,UAAWA,EAAM,mBACjB,aAAc,EAAA,CACf,EACH,EAGDvtD,IACCqmD,EAAAA,IAAC,MAAA,CAAI,UAAU,UAAU,MAAO,CAAE,MAAOkH,EAAM,kBAAA,EAAsB,SAAA,qCAAA,CAErE,EAGFlH,EAAAA,IAAC,MAAA,CAAI,IAAKskB,EAAA,CAAgB,CAAA,CAAA,CAAA,QAI7B,MAAA,CAAI,UAAU,0CACb,SAAAxkB,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAE,EAAAA,IAAC,QAAA,CACC,KAAK,OACL,MAAO0iB,GACP,SAAW/Y,GAAMgZ,GAAchZ,EAAE,OAAO,KAAK,EAC7C,WAAaA,GAAM,CACjB,GAAIA,EAAE,MAAQ,QACd,CAAA,GAAImO,GAAW,CACbnO,EAAE,eAAA,EACF,MACF,CACAuf,GAAkBxG,EAAU,CAAA,CAC9B,EACA,YAAApkB,GACA,UAAU,2DACV,MAAO,CACL,gBAAiB4I,EAAM,iBAAmB,UAC1C,MAAOA,EAAM,UACb,SAAU6jB,GAAU,EAAA,CACtB,CAAA,EAEF/qB,EAAAA,IAAC,SAAA,CACC,QAAS,IAAM,CACb,GAAI8X,GAAW,CACbgR,GAAA,EACA,MACF,CACAI,GAAkBxG,EAAU,CAC9B,EACA,SAAU,CAAC5K,IAAa,CAAC4K,GAAW,KAAA,EACpC,UAAU,qIACV,MAAO,CACL,gBAAiB5K,GAAY,UAAY5Q,EAAM,aAC/C,MAAO,SAAA,EAGR,SAAA4Q,SAAaqY,GAAA,CAAM,KAAM,GAAI,EAAKnwB,EAAAA,IAACowB,GAAA,CAAS,KAAM,EAAA,CAAI,CAAA,CAAA,CACzD,CAAA,CACF,CAAA,CACF,EAEAtwB,EAAAA,KAAC,MAAA,CAAI,UAAU,wBACb,SAAA,CAAAA,EAAAA,KAAC,IAAA,CAAE,MAAO,CAAE,MAAOoH,EAAM,mBAAoB,SAAU6jB,GAAU,GAAI,WAAY,GAAA,EAAO,SAAA,CAAA,aAC3E,IACX/qB,EAAAA,IAAC,IAAA,CACC,KAAK,wBACL,OAAO,SACP,IAAI,sBACJ,MAAO,CAAE,MAAO,UAAW,eAAgB,OAAQ,WAAY,GAAA,EAChE,SAAA,QAAA,CAAA,CAED,EACF,EACAA,EAAAA,IAAC,IAAA,CAAE,MAAO,CAAE,MAAOkH,EAAM,mBAAoB,SAAU6jB,GAAU,GAAI,WAAY,GAAA,EAC9E,SAAAC,EAAA,CACH,CAAA,CAAA,CACF,CAAA,CAAA,CAAA,CACF,CAAA,EAEJ,EAICvI,GA0BHziB,EAAAA,IAAC,MAAA,CAAI,UAAU,mBAAmB,oBAAmBkiB,GACnD,SAAApiB,EAAAA,KAAC,MAAA,CACC,UAAW,iCAAiC5E,GAAa,EAAE,GAC3D,MAAO,CACL,SAAU,QACV,QAAS,OACT,cAAe,SACf,GAAI6nB,GAAa,CACf,IAAK,MACL,KAAM,MACN,UAAW,wBACX,MAAO,kCACP,OAAQ,mBACR,SAAU,SACV,UAAW,OAAA,EACT,CACF,GAAG0H,GACH,MAAOnN,GAAUkD,CAAU,GAAKkK,GAAU,MAC1C,OAAQpN,GAAUmD,EAAW,GAAKiK,GAAU,MAAA,EAE9C,gBAAiB3H,GAAawK,GAA0BrmB,EAAM,gBAC9D,OAAQ,KACR,SAAU6jB,GAAU,KACpB,aAAchI,GAAa,OAAS,OACpC,OAAQA,GAAa,aAAa2K,EAAoB,GAAK,wBAC3D,UAAW3K,GAAa4K,GAAiB,qCACzC,GAAGn9D,CAAA,EAIJ,SAAA,CAAAsvD,GACDhgB,EAAAA,KAAC,MAAA,CACC,UAAU,mEACV,MAAO,CACL,SAAU,SACV,IAAK,EACL,OAAQ,GACR,YAAaijB,GAAa0K,GAAiB,cAC3C,WAAY1K,GAAayK,GAA2BtmB,EAAM,gBAC1D,QAAS6b,GAAa,YAAc,MAAA,EAGtC,SAAA,CAAAjjB,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAE,EAAAA,IAAC,MAAA,CACC,MAAO,CACL,MAAO+iB,GAAa,GAAK,GACzB,OAAQA,GAAa,GAAK,GAC1B,aAAcA,GAAa,OAAS,OACpC,WAAY2I,GAAUC,GAAc,GAAI,EACxC,MAAOP,GACP,QAAS,OACT,WAAY,SACZ,eAAgB,SAChB,SAAUrI,GAAa,OAAS,OAChC,WAAY,IACZ,WAAY,EACZ,SAAU,QAAA,EAGX,SAAAlD,EACC7f,EAAAA,IAAC,MAAA,CAAI,IAAK6f,EAAe,IAAK,GAAGD,GAAe,WAAW,QAAS,MAAO,CAAE,MAAO,OAAQ,OAAQ,OAAQ,UAAW,UAAW,WAAY,UAAW,QAAS,CAAA,CAAE,CAAG,GAEtKA,GAAe,MAAM,MAAM,EAAG,CAAC,EAAE,YAAA,CAAY,CAAA,GAGhDG,GAAoBC,GAAgB+C,KACpCjjB,EAAAA,KAAC,MAAA,CACE,SAAA,CAAAigB,GACC/f,EAAAA,IAAC,MAAA,CACC,UAAU,cACV,MAAO,CAAE,MAAOkH,EAAM,UAAW,SAAU6b,GAAa,OAASgI,GAAU,KAAM,WAAY,IAAK,cAAehI,GAAa,UAAY,CAAA,EAEzI,SAAAnD,CAAA,CAAA,EAGJI,GAAgB+C,IACf/iB,EAAAA,IAAC,MAAA,CAAI,MAAO,CAAE,MAAO4tB,GAAmB,SAAU,OAAQ,UAAW,KAAA,EAClE,SAAAP,EAAA,CACH,CAAA,CAAA,CAEJ,CAAA,EAEJ,EACAvtB,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACZ,SAAA,CAAA,CAACqiB,IACAniB,EAAAA,IAAC,SAAA,CACC,QAAS6nB,GACT,UAAU,oBACV,MAAO9E,GAAa,WAAa,SACjC,MAAO,CACL,MAAOA,GAAa,GAAK,GACzB,OAAQA,GAAa,GAAK,GAC1B,aAAcA,GAAa,OAAS,OACpC,OAAQ,aAAaA,GAAa0K,GAAiB,aAAa,GAChE,WAAY1K,GAAa,UAAY,cACrC,QAAS,OACT,WAAY,SACZ,eAAgB,QAAA,EAGjB,SAAAA,SACElmB,GAAA,CAAU,KAAM,GAAI,MAAO,CAAE,MAAOqK,EAAM,oBAAsB,EAEjElH,EAAAA,IAACrD,IAAU,KAAM,GAAI,MAAO,CAAE,MAAOuK,EAAM,mBAAmB,CAAG,CAAA,CAAA,EAIvElH,EAAAA,IAAC,SAAA,CACC,QAAS4nB,GACT,UAAU,oBACV,MAAO,CACL,MAAO7E,GAAa,GAAK,GACzB,OAAQA,GAAa,GAAK,GAC1B,aAAcA,GAAa,OAAS,OACpC,OAAQ,aAAaA,GAAa0K,GAAiB,aAAa,GAChE,WAAY1K,GAAa,UAAY,cACrC,QAAS,OACT,WAAY,SACZ,eAAgB,QAAA,EAGlB,SAAA/iB,EAAAA,IAACmwB,IAAM,KAAM,GAAI,MAAO,CAAE,MAAOjpB,EAAM,mBAAmB,CAAG,CAAA,CAAA,CAC/D,CAAA,CACF,CAAA,CAAA,CAAA,EAKFpH,EAAAA,KAAC,MAAA,CACC,IAAKkkB,GACL,UAAU,qCACV,MAAO,CACL,KAAM,SACN,UAAW,EACX,UAAW,OACX,mBAAoB,UACpB,wBAAyB,QACzB,QAASjB,GAAa,OAAS,MAAA,EAGhC,SAAA,CAAAmL,GAAuB,QAAQ,EAC/BpN,IAAsBrQ,GAAS,SAAW,GACzCzQ,EAAAA,IAAC,MAAA,CAAI,UAAU,OACb,SAAAA,EAAAA,IAAC,MAAA,CACC,UAAU,8BAGV,SAAAA,EAAAA,IAAC,IAAA,CAAE,MAAO,CAAE,MAAOkH,EAAM,UAAW,OAAQ,EAAG,SAAU6jB,GAAU,EAAA,EAAO,SAAAhK,EAAA,CAAe,CAAA,CAAA,EAE7F,EAGDtQ,GAAS,IAAKpM,GAAY,CACzB,MAAM6qB,EACJ7qB,EAAQ,OAAS,QACjBA,EAAQ,KAAO6f,GAA4B,QAE7C,OACEpkB,EAAAA,KAAC,MAAA,CAEC,IAAKovB,EAA2BjL,GAA4B,OAC5D,UAAU,OAEZ,SAAA,CAAAjkB,EAAAA,IAAC,MAAA,CACC,UAAWqE,EAAQ,OAAS,OAAS,mCAAqC,cAC1E,MAAO,CACL,gBAAiBA,EAAQ,OAAS,OAASypB,GAAqB,cAChE,MAAOzpB,EAAQ,OAAS,OACnB6C,EAAM,kBAAoB,UAC3BA,EAAM,UACV,OAAQ,OACR,aAAc7C,EAAQ,OAAS,OAAU0e,GAAa,OAAS,OAAU,EACzE,QAAS1e,EAAQ,OAAS,OAAU0e,GAAa,YAAc,OAAa,kBAC5E,UAAW,MAAA,EAGZ,WAAQ,OAAS,YAChB1e,EAAQ,QAAQ,OACdvE,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,MAAO,CAAE,SAAU,QAAQ+qB,GAAU,EAAE,UAAW,WAAY,IAAA,EACjE,SAAA/qB,EAAAA,IAACua,GAAA,CACC,QAASlW,EAAQ,QACjB,MAAA6C,EACA,SAAU,QAAQ6jB,GAAU,EAAE,SAAA,CAAA,EAElC,EACCgB,GAAmB1nB,EAAS,CAC3B,YAAa6C,EAAM,aACnB,UAAWA,EAAM,kBAAA,CAClB,CAAA,CAAA,CACH,EACE4Q,IAAazT,EAAQ,KAAOwgB,GAA4B,QAC1DqG,GAA0B,CACxB,QAAS,GACT,YAAahkB,EAAM,aACnB,UAAWA,EAAM,mBACjB,aAAc,EAAA,CACf,EACC,KAEJlH,MAAC,IAAA,CAAE,MAAO,CAAE,OAAQ,EAAG,SAAU+qB,GAAU,GAAI,WAAY,KAAA,EAAU,WAAQ,OAAA,CAAQ,CAAA,CAAA,EAKxF1mB,EAAQ,OAAS,aAAe,CAAC4e,GAAyB,IAAI5e,EAAQ,EAAE,GACrErE,EAAAA,IAAC2W,GAAA,CACC,UAAWtS,EAAQ,GACnB,MAAOA,EAAQ,UACf,mBAAoBqiB,GACpB,uBAAwB,CAACtS,EAAW5M,IAAmB,CACrD4e,GAA0BhS,EAAW5M,EAAgBnD,EAAQ,SAAS,CACxE,EACF,QAAU1qD,GAAU,CAClB,QAAQ,MAAM,iDAAkDA,CAAK,CACvE,CAAA,CAAA,EAKH0qD,EAAQ,OAAS,aAAe4e,GAAyB,IAAI5e,EAAQ,EAAE,GAAKA,EAAQ,uBAAyB,CAACyT,IAC7GhY,OAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAE,EAAAA,IAAC,MAAA,CAAI,UAAU,2CAA2C,SAAA,2BAAwB,EAClFA,EAAAA,IAAC2W,GAAA,CACC,UAAWtS,EAAQ,GACnB,MAAOA,EAAQ,UACf,sBAAuBA,EAAQ,sBAC/B,mBAAoBqiB,GACpB,uBAAwB,CAACtS,EAAW5M,IAAmB,CACrD4e,GAA0BhS,EAAW5M,EAAgBnD,EAAQ,SAAS,CACxE,EACA,QAAU1qD,GAAU,CAClB,QAAQ,MAAM,iDAAkDA,CAAK,CACvE,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CAAA,EA5EK0qD,EAAQ,EAAA,CAgFnB,CAAC,EAEAyT,IAAa,CAACrH,GAAS,KACrBpM,GACCA,EAAQ,OAAS,aACjBA,EAAQ,KAAOwgB,GAA4B,SAC3C,CAACxgB,EAAQ,QAAQ,KAAA,CAAK,GAExBrE,EAAAA,IAAC,MAAA,CAAI,UAAU,OACb,SAAAA,EAAAA,IAAC,MAAA,CACC,UAAU,8BACV,MAAO,CAAE,gBAAiB,aAAA,EAEzB,SAAAkrB,GAA0B,CACzB,QAAS,GACT,YAAahkB,EAAM,aACnB,UAAWA,EAAM,mBACjB,aAAc,EAAA,CACf,CAAA,CAAA,EAEL,EAGDvtD,IACDqmD,EAAAA,IAAC,MAAA,CAAI,UAAU,OACb,SAAAA,EAAAA,IAAC,MAAA,CACC,UAAU,qCACV,MAAO,CACL,gBAAiB,cACjB,YAAa,cACb,MAAOkH,EAAM,kBAAA,EAGf,SAAApH,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAE,MAAC,QAAK,MAAO,CAAE,SAAU+qB,GAAU,EAAA,EAAM,SAAA,eAAE,EACzC/qB,MAAC,QAAK,MAAO,CAAE,SAAU+qB,GAAU,EAAA,EAAM,SAAA,qCAAA,CAAmC,CAAA,CAAA,CAC9E,CAAA,CAAA,EAEJ,EAGF/qB,EAAAA,IAAC,MAAA,CAAI,IAAKskB,EAAA,CAAgB,CAAA,CAAA,CAAA,EAM3B7T,GAAS,SAAW,GAAK6c,IACxBttB,EAAAA,IAAC,OAAI,UAAU,YACZ,SAAAsuB,GAA0B,QAAQ,CAAA,CACrC,EAGDjE,GAAmB,OAAS,GAAK5Z,GAAS,SAAW,GAAK,CAAC6c,IAC1DttB,EAAAA,IAAC,MAAA,CAAI,UAAU,YACb,SAAAA,EAAAA,IAAC,MAAA,CAAI,UAAU,sBACZ,SAAAqqB,GAAmB,MAAM,EAAGnJ,EAAc,EAAE,IAAK7gB,GAC9CP,EAAAA,KAAC,SAAA,CAEC,IAAKkmB,GAAuB3lB,EAAW,EAAE,EACzC,QAAS,IAAMkqB,GAAsBlqB,CAAU,EAC/C,UAAU,0EACV,MAAO,CACL,gBAAiB6G,EAAM,cAAgB,UACvC,MAAOA,EAAM,WAAa,UAC1B,OAAQ,aAAaA,EAAM,aAAe,SAAS,GACnD,SAAU6jB,GAAU,GACpB,QAAS,YACT,aAAc,QACd,WAAY,GAAA,EAGd,SAAA,CAAA/qB,EAAAA,IAAC,OAAA,CAAK,UAAU,gBAAiB,SAAAK,EAAW,KAAK,EAChD2gB,IAAc3gB,EAAW,cACxBL,EAAAA,IAAC,MAAA,CACC,UAAU,kEACV,MAAO,CACL,SAAU,MACV,WAAY,EACZ,gBAAiBkH,EAAM,iBAAmB,UAC1C,MAAOA,EAAM,oBAAsB,SAAA,EAEtC,SAAA,IAAA,CAAA,CAED,CAAA,EA1BG7G,EAAW,EAAA,CA6BnB,EACH,CAAA,CACJ,EAIDmR,IAAe,CAACF,IAAqB8Y,GAAgB,SAAW,SAC9D,MAAA,CAAI,UAAU,YACb,SAAApqB,EAAAA,IAAC,OAAI,UAAU,sBACb,gBAAC,MAAA,CAAI,UAAU,wBAAwB,MAAO,CAC5C,gBAAiBkH,EAAM,aACvB,YAAaA,EAAM,YACnB,MAAOA,EAAM,kBAAA,EAEb,SAAA,CAAApH,EAAAA,KAAC,MAAA,CAAI,UAAU,yCACb,SAAA,CAAAE,MAAC,QAAK,MAAO,CAAE,SAAU+qB,GAAU,EAAA,EAAM,SAAA,yBAAsB,EAC/D/qB,EAAAA,IAAC,SAAA,CACC,QAASiT,EACT,UAAU,4BACV,MAAO,CACL,gBAAiB/L,EAAM,aACvB,MAAO,SAAA,EAEV,SAAA,OAAA,CAAA,CAED,EACF,EACAlH,MAAC,QAAK,MAAO,CAAE,SAAU+qB,GAAU,EAAA,EAAO,SAAAvZ,EAAA,CAAY,CAAA,CAAA,CACxD,EACF,EACF,SAID,MAAA,CAAI,UAAU,eAAe,MAAO,CAAE,YAAauR,GAAa0K,GAAiB,cAAe,QAAS1K,GAAa,YAAc,OAAW,WAAYA,GAAayK,GAA2B,QAClM,SAAA,CAAA1tB,EAAAA,KAAC,MAAA,CAAI,UAAU,aAAa,MAAO,CAAE,WAAY,SAAU,OAAQ,aAAa2tB,EAAc,GAAI,aAAc1K,GAAa,OAAS,OAAQ,WAAYgL,GAA4B,UAAWhL,GAAaiL,GAAyB,OAAQ,QAASjL,GAAa,mBAAqB,MAAA,EACxR,SAAA,CAAA/iB,EAAAA,IAAC,QAAA,CACC,KAAK,OACL,MAAO0iB,GACP,SAAW/Y,GAAMgZ,GAAchZ,EAAE,OAAO,KAAK,EAC7C,WAAaA,GAAM,CACjB,GAAIA,EAAE,MAAQ,QACd,CAAA,GAAImO,GAAW,CACbnO,EAAE,eAAA,EACF,MACF,CACAuf,GAAkBxG,EAAU,CAAA,CAC9B,EACA,YAAApkB,GACA,UAAU,qEACV,MAAO,CACL,gBAAiB,cACjB,YAAa,cACb,MAAO4I,EAAM,UACb,SAAU6b,GAAa,OAASgI,GAAU,GAC1C,kBAAmB7jB,EAAM,YAAA,CAC3B,CAAA,EAEFlH,EAAAA,IAAC,SAAA,CACC,QAAS,IAAM,CACb,GAAI8X,GAAW,CACbgR,GAAA,EACA,MACF,CACAI,GAAkBxG,EAAU,CAC9B,EACA,SAAU,CAAC5K,IAAa,CAAC4K,GAAW,KAAA,EACpC,UAAU,oEACV,MAAO,CACL,gBAAiB5K,GAAY,UAAY5Q,EAAM,aAC/C,MAAO,UACP,aAAc6b,GAAa,OAAS,OACpC,MAAOA,GAAa,OAAS,OAC7B,OAAQA,GAAa,OAAS,OAC9B,QAAS,OACT,WAAY,SACZ,eAAgB,SAChB,UAAWA,GAAa,eAAe2I,GAAUC,GAAc,GAAI,CAAC,GAAK,MAAA,EAG1E,SAAA7T,SAAaqY,GAAA,CAAM,KAAM,GAAI,EAAKnwB,EAAAA,IAACowB,GAAA,CAAS,KAAM,EAAA,CAAI,CAAA,CAAA,CACzD,EACF,EACCjC,GAAuB,QAAQ,CAAA,CAAA,CAClC,CAAA,CAAA,CAAA,EAEJ,EAnbEnuB,EAAAA,IAAC,MAAA,CAAI,UAAU,mBAAmB,oBAAmBkiB,GACnD,SAAAliB,EAAAA,IAAC,SAAA,CACC,QAAS2nB,GACT,UAAU,uHACV,MAAO,CACL,SAAU,QACV,GAAG8C,GACH,gBAAiBvjB,EAAM,aACvB,MAAO,UACP,OAAQ,KACR,SAAU6jB,GAAU,KACpB,GAAGv6D,CAAA,EAIL,SAAAwvC,EAAAA,IAAC,OAAA,CAAK,UAAU,cAAe,SAAA2f,CAAA,CAAa,CAAA,CAAA,EAEhD,CAoaN,ECxwHI,OAAO,WAAe,KAAe,OAAQ,WAAqC,QAAY,MAC/F,WAA6D,QAAU,CACtE,IAAK,CAAE,SAAU,aAAc,WAAY,YAAA,CAAa,GAoB5D,MAAM0Q,GAAO,yCACPC,OAAkB,QAClBC,GAA0B,CAC9B,KAAM,QACN,aAAc,UACd,iBAAkB,UAClB,eAAgB,UAChB,gBAAiB,UACjB,aAAc,UACd,YAAa,UACb,UAAW,UACX,mBAAoB,UACpB,aAAc,MAChB,EAEA,SAASC,IAAuC,CAC9C,MAAMp0D,EAAU,SAAS,cACzB,OAAIA,aAAmB,kBAA0BA,EAC1C,MAAM,KAAK,SAAS,OAAO,EAAE,KAAMq0D,GACxCA,EAAO,IAAI,SAAS,qBAAqB,GAAKA,EAAO,QAAQ,gBAAkB,MAAM,GAAK,IAC9F,CAEA,SAASC,GAAgBj0E,EAAgBk0E,EAA2C,CAClF,GAAI,CAACl0E,GAAS,OAAOA,GAAU,SAAU,OAAO,KAChD,MAAMlB,EAASkB,EACf,GAAIlB,EAAO,OAASo1E,GAAQ,OAAOp1E,EAAO,gBAAmB,UACtD,OAAOA,EAAO,iBAAoB,UAAY,CAAC,MAAM,QAAQA,EAAO,mBAAmB,EAAG,OAAO,KACxG,MAAMq1E,EAAgBr1E,EAAO,eAAe,KAAA,EAAO,MAAM,EAAG,GAAG,GAAK,kBACpE,IAAIs1E,EAA4B,KAChC,GAAI,OAAOt1E,EAAO,aAAgB,SAChC,GAAI,CACF,MAAMk0D,EAAS,IAAI,IAAIl0D,EAAO,WAAW,EACrCk0D,EAAO,WAAa,WAAUohB,EAAaphB,EAAO,KACxD,MAAQ,CAA0D,CAEpE,MAAM/R,EAAcniD,EAAO,oBAAoB,OAAQu1E,GAAiC,OAAOA,GAAa,QAAQ,EACjH,MAAM,EAAG,CAAC,EAAE,IAAKA,GAAaA,EAAS,MAAM,EAAG,GAAG,CAAC,EAAE,OAAO,OAAO,EACvE,MAAO,CACL,KAAAH,EACA,eAAgBC,EAChB,SAAU,OAAOr1E,EAAO,UAAa,SAAWA,EAAO,SAAW,KAClE,YAAas1E,EACb,gBAAiBt1E,EAAO,gBAAgB,MAAM,EAAG,GAAG,EACpD,oBAAqBmiD,EAAY,OAASA,EAAc,CAAC,WAAWkzB,CAAa,GAAG,CAAA,CAExF,CAEA,eAAeG,GAAWN,EAA2BE,EAAcK,EAAyD,CAC1H,GAAIP,EAAO,QAAQ,aACjB,GAAI,CAAE,OAAOC,GAAgB,KAAK,MAAMD,EAAO,QAAQ,YAAY,EAAGE,CAAI,CAAG,MACvE,CAAE,OAAO,IAAM,CAEvB,MAAMxmB,EAAW,MAAM,MAAM,GAAG6mB,CAAS,sBAAsB,mBAAmBL,CAAI,CAAC,UAAW,CAChG,MAAO,WAAY,QAAS,CAAE,OAAQ,kBAAA,EAAsB,YAAa,MAAA,CAC1E,EACD,OAAKxmB,EAAS,GACPumB,GAAgB,MAAMvmB,EAAS,KAAA,EAAQwmB,CAAI,EADzB,IAE3B,CAEA,SAASM,GAAmBN,EAAcK,EAAmBE,EAAkBL,EAA2B,CACxG,IAAIM,EAAkB,CAAA,EAClBC,EAAU,GACd,MAAO,OAAON,GAAoD,CAChE,GAAII,EAAS,MAAM,IAAI,MAAM,6DAA6D,EAC1F,MAAMG,EAAYP,EAAS,KAAA,EAAO,MAAM,EAAG,GAAG,EAC9C,GAAI,CAACO,EAAW,MAAM,IAAI,MAAM,mBAAmB,EAC9CD,IACHA,EAAU,GACL,MAAM,GAAGJ,CAAS,sBAAsB,mBAAmBL,CAAI,CAAC,aAAc,CACjF,OAAQ,OAAQ,YAAa,OAAQ,UAAW,EAAA,CACjD,EAAE,MAAM,IAAM,CAA8C,CAAC,GAEhE,MAAMxmB,EAAW,MAAM,MAAM,GAAG6mB,CAAS,sBAAsB,mBAAmBL,CAAI,CAAC,QAAS,CAC9F,OAAQ,OAAQ,MAAO,WAAY,YAAa,OAChD,QAAS,CAAE,eAAgB,mBAAoB,OAAQ,kBAAA,EACvD,KAAM,KAAK,UAAU,CAAE,SAAUU,EAAW,QAASF,EAAQ,MAAM,EAAE,EAAG,EACxE,OAAQ,YAAY,QAAQ,IAAK,CAAA,CAClC,EACD,GAAI,CAAChnB,EAAS,GAAI,CAChB,MAAMiF,EAAO,MAAMjF,EAAS,OAAO,MAAM,IAAM,IAAI,EACnD,MAAM,IAAI,MAAMiF,GAAM,QAAU,+DAA+D,CACjG,CACA,MAAM70D,EAAS,MAAM4vD,EAAS,KAAA,EAC9B,GAAK5vD,EAAO,UAAY,YAAcA,EAAO,UAAY,aAClD,OAAOA,EAAO,QAAW,UAAY,CAAC,MAAM,QAAQA,EAAO,OAAO,EACvE,MAAM,IAAI,MAAM,kEAAkE,EAEpF,OAAA42E,EAAU,CAAC,GAAGA,EAAS,CAAE,KAAM,UAAW,KAAME,CAAA,EAAa,CAAE,KAAM,YAAa,KAAM92E,EAAO,MAAA,CAAQ,EACpG,MAAM,EAAE,EAAE,IAAK+2E,IAAU,CAAE,GAAGA,EAAM,KAAMA,EAAK,KAAK,MAAM,EAAG,GAAI,GAAI,EACjE,CACL,OAAQ/2E,EAAO,OACf,aAAcA,EAAO,QAAQ,OAAQ6iB,GAAWA,GAAU,OAAOA,EAAO,KAAQ,QAAQ,EACrF,IAAKA,IAAY,CAAE,MAAOA,EAAO,MAAO,IAAKA,EAAO,GAAA,EAAM,EAC7D,cAAe7iB,EAAO,UAAY,aAAes2E,EAC7C,CAAC,CAAE,MAAO,oBAAqB,IAAKA,CAAA,CAAY,EAAI,MAAA,CAE5D,CACF,CAEA,SAASU,GAAkB,CAAE,OAAAh2E,EAAQ,KAAAygB,EAAM,aAAAwlD,EAAc,YAAA9jB,EAAa,QAAAwzB,GAMnE,CACD,KAAM,CAACtzB,EAAM4zB,CAAO,EAAIzyB,EAAAA,SAAS,IAAM,OAAO,SAAS,OAAS,kBAAkB,EAClFkG,OAAAA,EAAAA,UAAU,IAAM,CACd,MAAMwsB,EAAe,IAAM,CAAM,OAAO,SAAS,OAAS,sBAA4B,EAAI,CAAG,EACvFC,EAAgB32E,GAAsB,CACtCA,EAAM,kBAAkB,SAAWA,EAAM,OAAO,QAAQ,4BAA4B,GAAGy2E,EAAQ,EAAI,CACzG,EACA,OAAA,OAAO,iBAAiB,aAAcC,CAAY,EAClD,SAAS,iBAAiB,QAASC,CAAY,EACxC,IAAM,CACX,OAAO,oBAAoB,aAAcD,CAAY,EACrD,SAAS,oBAAoB,QAASC,CAAY,CACpD,CACF,EAAG,CAAA,CAAE,EACEvwE,GAAM,cAAcs+D,GAAuB,CAChD,QAAS,UAAW,OAAQzjD,EAAM,SAAU,eAAgB,KAAM,KAClE,KAAA4hC,EAAM,aAAc4zB,EACpB,WAAY,GAAO,sBAAuB,GAC1C,YAAaj2E,EAAO,eACpB,cAAeA,EAAO,SACtB,aAAc,OAAOA,EAAO,cAAc,GAC1C,SAAU,kBACV,mBAAoB,GACpB,eAAgBA,EAAO,gBACvB,YAAa,OAAOA,EAAO,cAAc,oBACzC,eAAgB21E,EACZ,iEACA,wFACJ,eAAgB,oBAChB,oBAAqB,kBACrB,YAAAxzB,EACA,aAAA8jB,CAAA,CACD,CACH,CAEA,eAAemQ,IAAQ,OACrB,MAAMlB,EAASD,GAAA,EACf,GAAI,CAACC,GAAU,CAACA,EAAO,aAAeH,GAAY,IAAIG,CAAM,EAAG,OAC/D,MAAME,IAAOvxB,EAAAqxB,EAAO,QAAQ,YAAf,YAAArxB,EAA0B,KAAA,EAAO,YAAA,IAAiB,GAC/D,GAAI,CAACixB,GAAK,KAAKM,CAAI,EAAG,CACpB,QAAQ,MAAM,mEAAmE,EACjF,MACF,CACA,MAAMiB,EAAe,IAAI,IAAInB,EAAO,GAAG,EAAE,OACnCO,EAAYY,IAAiB,8BAC/B,wBAA0BA,EACxBr2E,EAAS,MAAMw1E,GAAWN,EAAQE,EAAMK,CAAS,EAAE,MAAM,IAAM,IAAI,EACzE,GAAI,CAACP,EAAO,YAAa,OACzB,GAAI,CAACl1E,EAAQ,CACXk1E,EAAO,cAAc,IAAI,MAAM,oCAAoC,CAAC,EACpE,MACF,CACA,MAAMS,EAAU,CAAA,CAAQT,EAAO,QAAQ,aACjCz0D,EAAOy0D,EAAO,QAAQ,OAAS,SAAW,SAAW,WACrD7+D,EAASoK,IAAS,SACpB,SAAS,cAAcy0D,EAAO,QAAQ,QAAU,yBAAyB,EACzE,SAAS,KACb,GAAI,CAAC7+D,EAAQ,CACX,QAAQ,MAAM,uDAAuD,EACrE,MACF,CACA,MAAMs1D,EAAY,SAAS,cAAc,KAAK,EAC9CA,EAAU,UAAY,wCACtBA,EAAU,QAAQ,eAAiByJ,EACnC/+D,EAAO,YAAYs1D,CAAS,EAC5B,MAAMl+D,EAAOnG,GAAS,WAAWqkE,CAAS,EACpCvjB,EAAY,SAASgtB,CAAI,IAAI,OAAO,YAAY,GAChDjzB,EAA4BniD,EAAO,oBAAoB,IAAI,CAAC6U,EAAM7W,KAAW,CACjF,GAAI,SAASA,CAAK,GAAI,KAAA6W,EAAM,KAAM,aAAA,EAClC,EACFpH,EAAK,OAAO7H,GAAM,cAAc8uD,GAAgB,CAC9C,OAAQ,GAAI,UAAAtM,EAAW,sBAAuB,GAAM,MAAO4sB,EAAA,EAC1DpvE,GAAM,cAAcowE,GAAmB,CACxC,OAAAh2E,EAAQ,KAAAygB,EAAM,YAAA0hC,EAAa,QAAAwzB,EAC3B,aAAcD,GAAmBN,EAAMK,EAAWE,EAAS31E,EAAO,WAAW,CAAA,CAC9E,CAAC,CAAC,EACHk1E,EAAO,QAAQ,cAAgB,OAC/BH,GAAY,IAAIG,EAAQ,CAAE,QAAS,IAAM,CAAEznE,EAAK,QAAA,EAAWk+D,EAAU,OAAA,EAAUuJ,EAAO,QAAQ,cAAgB,OAAS,EAAG,EAC1HA,EAAO,cAAc,IAAI,MAAM,8BAA8B,CAAC,CAChE,CAEC,OAAuG,qBAAuB,CAC7H,QAAQA,EAAQ,QACdrxB,EAAAkxB,GAAY,IAAIG,CAAM,IAAtB,MAAArxB,EAAyB,QAAA,EACzBkxB,GAAY,OAAOG,CAAM,CAC3B,CACF,EAEKkB,GAAA","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]}
|