hdrify-react 1.2.2 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -16
- package/dist/HdrifyCanvas.d.ts +1 -1
- package/dist/HdrifyCanvas.d.ts.map +1 -1
- package/dist/HdrifyCanvas.js +5 -30
- package/dist/HdrifyCanvas.js.map +1 -1
- package/dist/ImageViewer.d.ts +75 -0
- package/dist/ImageViewer.d.ts.map +1 -0
- package/dist/ImageViewer.js +199 -0
- package/dist/ImageViewer.js.map +1 -0
- package/dist/capture.d.ts +21 -0
- package/dist/capture.d.ts.map +1 -0
- package/dist/capture.js +50 -0
- package/dist/capture.js.map +1 -0
- package/dist/decode.d.ts +7 -0
- package/dist/decode.d.ts.map +1 -0
- package/dist/decode.js +23 -0
- package/dist/decode.js.map +1 -0
- package/dist/element.d.ts +51 -0
- package/dist/element.d.ts.map +1 -0
- package/dist/element.js +212 -0
- package/dist/element.js.map +1 -0
- package/dist/image-viewer.js +159 -0
- package/dist/image-viewer.js.map +7 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/progress.d.ts +19 -0
- package/dist/progress.d.ts.map +1 -0
- package/dist/progress.js +47 -0
- package/dist/progress.js.map +1 -0
- package/dist/readiness.d.ts +15 -0
- package/dist/readiness.d.ts.map +1 -0
- package/dist/readiness.js +46 -0
- package/dist/readiness.js.map +1 -0
- package/dist/styles.d.ts +6 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/styles.js +84 -0
- package/dist/styles.js.map +1 -0
- package/package.json +37 -13
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../node_modules/.pnpm/react@19.3.1/node_modules/react/cjs/react.production.js", "../../../node_modules/.pnpm/react@19.3.1/node_modules/react/index.js", "../../../node_modules/.pnpm/scheduler@0.28.0/node_modules/scheduler/cjs/scheduler.production.js", "../../../node_modules/.pnpm/scheduler@0.28.0/node_modules/scheduler/index.js", "../../../node_modules/.pnpm/react-dom@19.3.1_react@19.3.1/node_modules/react-dom/cjs/react-dom.production.js", "../../../node_modules/.pnpm/react-dom@19.3.1_react@19.3.1/node_modules/react-dom/index.js", "../../../node_modules/.pnpm/react-dom@19.3.1_react@19.3.1/node_modules/react-dom/cjs/react-dom-client.production.js", "../../../node_modules/.pnpm/react-dom@19.3.1_react@19.3.1/node_modules/react-dom/client.js", "../../../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js", "../../../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js", "../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js", "../../../node_modules/.pnpm/jpeg-js@0.4.4/node_modules/jpeg-js/lib/encoder.js", "../../../node_modules/.pnpm/jpeg-js@0.4.4/node_modules/jpeg-js/lib/decoder.js", "../../../node_modules/.pnpm/jpeg-js@0.4.4/node_modules/jpeg-js/index.js", "../../../node_modules/.pnpm/react@19.3.1/node_modules/react/cjs/react-jsx-runtime.production.js", "../../../node_modules/.pnpm/react@19.3.1/node_modules/react/jsx-runtime.js", "../src/element.ts", "../../hdrify/src/color/chromaticities.ts", "../../hdrify/src/color/colorSpaces.ts", "../../hdrify/src/color/matrixConversion.ts", "../../hdrify/src/color/srgb.ts", "../../hdrify/src/color/transfer.ts", "../../hdrify/src/color/convert.ts", "../../hdrify/src/exr/exrConstants.ts", "../../hdrify/src/exr/halfFloat.ts", "../../hdrify/src/exr/b44Codec.ts", "../../hdrify/src/exr/decompressB44.ts", "../../../node_modules/.pnpm/fflate@0.8.3/node_modules/fflate/esm/browser.js", "../../hdrify/src/exr/dwaClassify.ts", "../../hdrify/src/exr/exrDsp.ts", "../../hdrify/src/exr/decompressRle.ts", "../../hdrify/src/exr/dwaLuts.ts", "../../hdrify/src/exr/pizHuffman.ts", "../../hdrify/src/exr/decompressDwa.ts", "../../hdrify/src/exr/decompressPiz.ts", "../../hdrify/src/exr/decompressPxr24.ts", "../../hdrify/src/exr/decompressZip.ts", "../../hdrify/src/exr/exrChannelSemantics.ts", "../../hdrify/src/exr/exrHeader.ts", "../../hdrify/src/exr/readExr.ts", "../../hdrify/src/hdrifyImage.ts", "../../hdrify/src/exr/writeExrOffsetTable.ts", "../../hdrify/src/gainmap/readJpegGainMap/decodeGainMapCpu.ts", "../../hdrify/src/tonemapping/mappers.ts", "../../hdrify/src/gainmap/gainMapEncoder.ts", "../../hdrify/src/gainmap/ensureBuffer.ts", "../../hdrify/src/gainmap/jpegEncoder.ts", "../../hdrify/src/gainmap/libultrahdr/srgbIccProfile.ts", "../../hdrify/src/gainmap/libultrahdr/defaultIccProfile.ts", "../../hdrify/src/gainmap/libultrahdr/iccFromJpeg.ts", "../../hdrify/src/gainmap/readJpegGainMap.ts", "../../hdrify/src/gainmap/readJpegGainMap/extractXmp.ts", "../../hdrify/src/gainmap/readJpegGainMap/mpfExtractor.ts", "../../hdrify/src/gainmap/libultrahdr/mpf-generator.ts", "../../hdrify/src/tonemapping/validateColorSpace.ts", "../../hdrify/src/tonemapping/applyToneMapping.ts", "../../hdrify/src/hdr/readHdr.ts", "../src/capture.ts", "../src/ImageViewer.tsx", "../src/decode.ts", "../src/HdrifyCanvas.tsx", "../src/progress.ts", "../src/readiness.ts", "../src/styles.ts"],
|
|
4
|
+
"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 REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\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 thenable = ctor();\n thenable.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1),\n (payload._result = moduleObject),\n void 0 === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = moduleObject));\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2),\n (payload._result = error),\n void 0 === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n );\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = thenable));\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 };\nfunction startTransition(scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition.types =\n null !== prevTransition ? prevTransition.types : null;\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}\nfunction addTransitionType(type) {\n var transition = ReactSharedInternals.T;\n if (null !== transition) {\n var transitionTypes = transition.types;\n null === transitionTypes\n ? (transition.types = [type])\n : -1 === transitionTypes.indexOf(type) && transitionTypes.push(type);\n } else startTransition(addTransitionType.bind(null, type));\n}\nvar 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.ViewTransition = REACT_VIEW_TRANSITION_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.addTransitionType = addTransitionType;\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 = startTransition;\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.3.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\"),\n REACT_RECOVERABLE_TYPE = Symbol.for(\"react.recoverable\"),\n REACT_OPTIMISTIC_KEY = Symbol.for(\"react.optimistic_key\");\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:\n null == key\n ? null\n : key === REACT_OPTIMISTIC_KEY\n ? REACT_OPTIMISTIC_KEY\n : \"\" + 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.browser = function (reason) {\n return { $$typeof: REACT_RECOVERABLE_TYPE, _reason: reason };\n};\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 fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : 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 nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : 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.3.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 for (var node = fiber, nextNode = node; nextNode && !nextNode.alternate; )\n (node = nextNode),\n 0 !== (node.flags & 4098) && (fiber = node.return),\n (nextNode = node.return);\n for (; node.return; ) node = node.return;\n return 3 === node.tag ? fiber : 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}\nfunction traverseVisibleInstancesAndTextInstances(\n child,\n searchWithinHosts,\n fn,\n a,\n b,\n c\n) {\n for (; null !== child; ) {\n if (\n ((5 === child.tag || 27 === child.tag || 6 === child.tag) &&\n fn(child, a, b, c)) ||\n ((22 !== child.tag || null === child.memoizedState) &&\n (searchWithinHosts || (5 !== child.tag && 27 !== child.tag)) &&\n traverseVisibleInstancesAndTextInstances(\n child.child,\n searchWithinHosts,\n fn,\n a,\n b,\n c\n ))\n )\n return !0;\n child = child.sibling;\n }\n return !1;\n}\nfunction getFragmentParentInstanceOrContainerFiber(fiber) {\n for (fiber = fiber.return; null !== fiber; ) {\n if (3 === fiber.tag || 5 === fiber.tag || 27 === fiber.tag) return fiber;\n fiber = fiber.return;\n }\n return null;\n}\nfunction fiberIsPortaledIntoHost(fiber) {\n var foundPortalParent = !1;\n for (fiber = fiber.return; null !== fiber; ) {\n 4 === fiber.tag && (foundPortalParent = !0);\n if (3 === fiber.tag || 5 === fiber.tag || 27 === fiber.tag) break;\n fiber = fiber.return;\n }\n return foundPortalParent;\n}\nfunction getFragmentInstanceOrTextInstanceSiblings(fiber) {\n var result = [null, null],\n parentHostFiber = getFragmentParentInstanceOrContainerFiber(fiber);\n if (null === parentHostFiber) return result;\n findFragmentInstanceOrTextInstanceSiblings(\n result,\n fiber,\n parentHostFiber.child,\n { foundSelf: !1 }\n );\n return result;\n}\nfunction findFragmentInstanceOrTextInstanceSiblings(\n result,\n self,\n child,\n state\n) {\n for (; null !== child; ) {\n if (child === self) state.foundSelf = !0;\n else if (5 === child.tag || 27 === child.tag || 6 === child.tag) {\n if (state.foundSelf) return (result[1] = child), !0;\n result[0] = child;\n } else if (\n (22 !== child.tag || null === child.memoizedState) &&\n findFragmentInstanceOrTextInstanceSiblings(\n result,\n self,\n child.child,\n state\n )\n )\n return !0;\n child = child.sibling;\n }\n return !1;\n}\nfunction getInstanceFromHostFiber(fiber) {\n switch (fiber.tag) {\n case 5:\n case 27:\n case 6:\n return fiber.stateNode;\n case 3:\n return fiber.stateNode.containerInfo;\n default:\n throw Error(formatProdErrorMessage(559));\n }\n}\nvar searchTarget = null,\n searchBoundary = null;\nfunction isFiberPrecedingCheck(child, target, boundary) {\n return child === boundary\n ? !0\n : child === target\n ? ((searchTarget = child), !0)\n : !1;\n}\nfunction isFiberFollowingCheck(child, target, boundary) {\n return child === boundary\n ? ((searchBoundary = child), !1)\n : child === target\n ? (null !== searchBoundary && (searchTarget = child), !0)\n : !1;\n}\nfunction getParentForFragmentAncestors(inst) {\n if (null === inst) return null;\n do inst = null === inst ? null : inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag && 3 !== inst.tag);\n return inst ? inst : null;\n}\nfunction getLowestCommonAncestor(instA, instB, getParent) {\n for (var depthA = 0, tempA = instA; tempA; tempA = getParent(tempA)) depthA++;\n tempA = 0;\n for (var tempB = instB; tempB; tempB = getParent(tempB)) tempA++;\n for (; 0 < depthA - tempA; ) (instA = getParent(instA)), depthA--;\n for (; 0 < tempA - depthA; ) (instB = getParent(instB)), tempA--;\n for (; depthA--; ) {\n if (instA === instB || (null !== instB && instA === instB.alternate))\n return instA;\n instA = getParent(instA);\n instB = getParent(instB);\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\"),\n REACT_LEGACY_HIDDEN_TYPE = Symbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_RECOVERABLE_TYPE = Symbol.for(\"react.recoverable\"),\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 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 case REACT_VIEW_TRANSITION_TYPE:\n return \"ViewTransition\";\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 var stateHook = fiber.memoizedState;\n null !== stateHook &&\n ((HostTransitionContext._currentValue = stateHook.memoizedState),\n push(hostTransitionProviderCursor, fiber));\n stateHook = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(stateHook, fiber.type);\n stateHook !== 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 Fake = !1;\n try {\n var prevProps = Object.getOwnPropertyDescriptor(\n fn.prototype,\n \"props\"\n );\n Object.defineProperty(fn.prototype, \"props\", {\n configurable: !0,\n set: function () {\n throw Error();\n }\n });\n Fake = !0;\n new fn();\n } finally {\n Fake &&\n (void 0 !== prevProps\n ? Object.defineProperty(fn.prototype, \"props\", prevProps)\n : delete fn.prototype.props);\n }\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 case 30:\n return describeBuiltInComponentFrame(\"ViewTransition\");\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 & -lanes;\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 getEntangledLanes(root, renderLanes) {\n 0 !== (renderLanes & 8) && (renderLanes |= renderLanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= renderLanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n renderLanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n return renderLanes;\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,\n internalLoadPendingKey = \"__reactLoad$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst;\n if ((targetInst = targetNode[internalInstanceKey])) 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}\nfunction clearPendingLoadOnNode(node) {\n node[internalLoadPendingKey] = void 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}\nvar viewTransitionMutationContext = !1;\nfunction pushMutationContext() {\n var prev = viewTransitionMutationContext;\n viewTransitionMutationContext = !1;\n return prev;\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}\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 ? \"number\" === type && element.value == value\n ? setDefaultValue(element, getToStringValue(element.value))\n : setDefaultValue(element, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, 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, value) {\n node.defaultValue !== \"\" + value && (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 (viewTransitionMutationContext = !0));\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 (viewTransitionMutationContext = !0));\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 [\"maskType\", \"mask-type\"],\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 SubmitEventInterface = assign({}, EventInterface, { submitter: 0 }),\n SyntheticSubmitEvent = createSyntheticEvent(SubmitEventInterface),\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 source: 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$318;\n if (canUseDOM) {\n var isSupported$jscomp$inline_474 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_474) {\n var element$jscomp$inline_475 = document.createElement(\"div\");\n element$jscomp$inline_475.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_474 =\n \"function\" === typeof element$jscomp$inline_475.oninput;\n }\n JSCompiler_inline_result$jscomp$318 = isSupported$jscomp$inline_474;\n } else JSCompiler_inline_result$jscomp$318 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$318 &&\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 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$20) {\n return doc.body;\n }\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 fullscreenChange fullscreenError 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 globalClientIdCounter$1 = 0;\nfunction getViewTransitionName(props, instance) {\n if (null != props.name && \"auto\" !== props.name) return props.name;\n if (null !== instance.autoName) return instance.autoName;\n props = pendingEffectsRoot.identifierPrefix;\n var globalClientId = globalClientIdCounter$1++;\n props = \"_\" + props + \"t_\" + globalClientId.toString(32) + \"_\";\n return (instance.autoName = props);\n}\nfunction getClassNameByType(classByType) {\n if (null == classByType || \"string\" === typeof classByType)\n return classByType;\n var className = null,\n activeTypes = pendingTransitionTypes;\n if (null !== activeTypes)\n for (var i = 0; i < activeTypes.length; i++) {\n var match = classByType[activeTypes[i]];\n if (null != match) {\n if (\"none\" === match) return \"none\";\n className = null == className ? match : className + (\" \" + match);\n }\n }\n return null == className ? classByType.default : className;\n}\nfunction getViewTransitionClassName(defaultClass, eventClass) {\n defaultClass = getClassNameByType(defaultClass);\n eventClass = getClassNameByType(eventClass);\n return null == eventClass\n ? \"auto\" === defaultClass\n ? null\n : defaultClass\n : \"auto\" === eventClass\n ? null\n : eventClass;\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 & 1206910976;\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 &= 1206910978;\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 owner) shouldConstruct(owner) && (fiberTag = 1);\n else if (\"string\" === typeof owner)\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 (owner) {\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 case REACT_LEGACY_HIDDEN_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return (\n (type = mode | 32),\n (type = createFiberImplClass(30, pendingProps, key, type)),\n (type.elementType = REACT_VIEW_TRANSITION_TYPE),\n (type.lanes = lanes),\n (type.stateNode = {\n autoName: null,\n paired: null,\n clones: null,\n ref: null\n }),\n type\n );\n default:\n if (\"object\" === typeof owner && null !== owner)\n switch (owner.$$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\n 13 === fiber.tag &&\n null !== fiber.memoizedState &&\n null === fiber.memoizedState.dehydrated\n ? ((fiber.lanes |= renderLanes),\n (nextFiber = fiber.alternate),\n null !== nextFiber && (nextFiber.lanes |= renderLanes),\n scheduleContextWorkOnParentPath(\n fiber.return,\n renderLanes,\n workInProgress\n ),\n (nextFiber = fiber.child),\n (nextFiber = null !== nextFiber ? nextFiber.sibling : null))\n : (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 return null !== current;\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}\nfunction queueTransitionTypes(root, transitionTypes) {\n if (0 !== (root.pendingLanes & 4194048)) {\n var queued = root.transitionTypes;\n null === queued && (queued = root.transitionTypes = []);\n for (root = 0; root < transitionTypes.length; root++) {\n var transitionType = transitionTypes[root];\n -1 === queued.indexOf(transitionType) && queued.push(transitionType);\n }\n }\n}\nvar entangledTransitionTypes = null;\nfunction claimQueuedTransitionTypes(root) {\n var claimed = root.transitionTypes;\n root.transitionTypes = null;\n return claimed;\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 ((entangledTransitionTypes = null), 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 if (null !== entangledTransitionTypes)\n for (var root$28 = firstScheduledRoot; null !== root$28; )\n queueTransitionTypes(root$28, entangledTransitionTypes),\n (root$28 = root$28.next);\n root$28 = transition.types;\n if (null !== root$28) {\n for (var root$29 = firstScheduledRoot; null !== root$29; )\n queueTransitionTypes(root$29, root$28), (root$29 = root$29.next);\n if (0 !== currentEntangledLane) {\n root$29 = entangledTransitionTypes;\n null === root$29 && (root$29 = entangledTransitionTypes = []);\n for (var i = 0; i < root$28.length; i++) {\n var transitionType = root$28[i];\n -1 === root$29.indexOf(transitionType) && root$29.push(transitionType);\n }\n }\n }\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 thenableState = thenable.reason;\n checkIfUseWrappedInAsyncCatch(thenableState);\n if (void 0 === thenableState && !(\"reason\" in thenable))\n throw Error(formatProdErrorMessage(600));\n throw thenableState;\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.index, currentFirstChild)\n : existingChildren.set(currentFirstChild.key, 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 |= 2), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 134217730;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 134217730);\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 (\n (returnFiber = updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n )),\n coerceRef(returnFiber, element),\n returnFiber\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 ((newFiber = nextOldFiber.alternate),\n null !== newFiber &&\n oldFiber.delete(null === newFiber.key ? newIdx : newFiber.key)),\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 ((nextOldFiber = step.alternate),\n null !== nextOldFiber &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n )),\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 void 0 === newChild.props.ref &&\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 coerceRef(lanes, newChild);\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 coerceRef(lanes, newChild),\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();\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 pushSuspenseListContext(fiber, newContext) {\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n push(suspenseStackCursor, newContext);\n}\nfunction popSuspenseListContext(fiber) {\n pop(suspenseStackCursor);\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n}\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 \"independent\" !== 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_RECOVERABLE_TYPE) return;\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$64 = !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$64 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$64 = !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$64 &&\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 subscribe =\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook &&\n 0 !== (workInProgressHook.memoizedState.tag & 1));\n pushSimpleEffect(\n subscribe ? 9 : 8,\n { destroy: void 0 },\n updateStoreInstance.bind(null, fiber, hook, getServerSnapshot, getSnapshot),\n null\n );\n if (subscribe) {\n fiber.flags |= 2048;\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 currentTransition.types =\n null !== prevTransition ? prevTransition.types : null;\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$70) {\n onActionError(actionQueue, node, error$70);\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 & 106) ||\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 currentTransition.types =\n null !== prevTransition ? prevTransition.types : null;\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$73 = enqueueUpdate(provider, fiber, lane);\n null !== root$73 &&\n (scheduleUpdateOnFiber(root$73, provider, lane),\n entangleTransitions(root$73, 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 useEffectEvent: throwInvalidHookError\n },\n 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 useEffectEvent: updateEvent\n },\n 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 useEffectEvent: updateEvent\n };\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$77 in Component)\n void 0 === newProps[propName$77] &&\n (newProps[propName$77] = Component[propName$77]);\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$78) {\n setTimeout(function () {\n throw e$78;\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$79) {\n setTimeout(function () {\n throw e$79;\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 case 19:\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 returnFiber = sourceFiber.type;\n wrapperError = sourceFiber.stateNode;\n if (\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 break;\n case 22:\n if (null !== sourceFiber.memoizedState)\n return (sourceFiber.flags |= 65536), !1;\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(),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack());\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 (current.memoizedState = { baseLanes: 0, cachePool: null }),\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 if (null === currentTreeHiddenStackCursor.current) {\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 }\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 |= 134221824);\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();\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 didSuspend = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(),\n (showFallback = workInProgress.mode),\n (didSuspend = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: didSuspend },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (didSuspend.return = workInProgress),\n (nextProps.return = workInProgress),\n (didSuspend.sibling = nextProps),\n (workInProgress.child = didSuspend),\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, didSuspend);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated$96 = prevState.dehydrated;\n if (null !== dehydrated$96)\n return updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n JSCompiler_temp,\n nextProps,\n dehydrated$96,\n prevState,\n renderLanes\n );\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(),\n (showFallback = nextProps.fallback),\n (didSuspend = workInProgress.mode),\n (prevState = current.child),\n (dehydrated$96 = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 1206910976),\n null !== dehydrated$96\n ? (showFallback = createWorkInProgress(dehydrated$96, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n didSuspend,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2)),\n (showFallback.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = showFallback),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (showFallback = current.child.memoizedState),\n null === showFallback\n ? (showFallback = mountSuspenseOffscreenState(renderLanes))\n : ((didSuspend = showFallback.cachePool),\n null !== didSuspend\n ? ((prevState = CacheContext._currentValue),\n (didSuspend =\n didSuspend.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : didSuspend))\n : (didSuspend = getSuspendedCache()),\n (showFallback = {\n baseLanes: showFallback.baseLanes | renderLanes,\n cachePool: didSuspend\n })),\n (nextProps.memoizedState = showFallback),\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 updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n didPrimaryChildrenDefer,\n nextProps,\n suspenseInstance,\n suspenseState,\n renderLanes\n) {\n if (didSuspend) {\n if (workInProgress.flags & 256)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )\n );\n if (null !== workInProgress.memoizedState)\n return (\n reuseSuspenseHandlerOnStack(),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n null\n );\n reuseSuspenseHandlerOnStack();\n suspenseInstance = nextProps.fallback;\n suspenseState = workInProgress.mode;\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n suspenseState\n );\n suspenseInstance = createFiberFromFragment(\n suspenseInstance,\n suspenseState,\n renderLanes,\n null\n );\n suspenseInstance.flags |= 2;\n nextProps.return = workInProgress;\n suspenseInstance.return = workInProgress;\n nextProps.sibling = suspenseInstance;\n workInProgress.child = nextProps;\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n nextProps = workInProgress.child;\n nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes);\n nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n didPrimaryChildrenDefer,\n renderLanes\n );\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return bailoutOffscreenComponent(null, nextProps);\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n if (isSuspenseInstanceFallback(suspenseInstance)) {\n didPrimaryChildrenDefer =\n suspenseInstance.nextSibling && suspenseInstance.nextSibling.dataset;\n if (didPrimaryChildrenDefer) var digest = didPrimaryChildrenDefer.dgst;\n didPrimaryChildrenDefer = digest;\n \"\" !== didPrimaryChildrenDefer &&\n ((nextProps = Error(formatProdErrorMessage(419))),\n (nextProps.stack = \"\"),\n (nextProps.digest = didPrimaryChildrenDefer),\n queueHydrationError({ value: nextProps, source: null, stack: null }));\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n }\n didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1);\n didPrimaryChildrenDefer = 0 !== (renderLanes & current.childLanes);\n if (didReceiveUpdate || didPrimaryChildrenDefer) {\n if (null !== currentTreeHiddenStackCursor.current)\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n didPrimaryChildrenDefer = workInProgressRoot;\n if (\n null !== didPrimaryChildrenDefer &&\n ((nextProps = getBumpedLaneForHydration(\n didPrimaryChildrenDefer,\n renderLanes\n )),\n 0 !== nextProps && nextProps !== suspenseState.retryLane)\n )\n throw (\n ((suspenseState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(didPrimaryChildrenDefer, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(suspenseInstance) ||\n renderDidSuspendDelayIfPossible();\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n }\n if (isSuspenseInstancePending(suspenseInstance))\n return (\n (workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n null\n );\n current = suspenseState.treeContext;\n nextHydratableInstance = getNextHydratable(suspenseInstance.nextSibling);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !1;\n null !== current && restoreSuspendedTreeContext(workInProgress, current);\n workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n );\n workInProgress.flags |= 134221824;\n return workInProgress;\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 findLastContentRow(firstChild) {\n for (var lastContentRow = null; null !== firstChild; ) {\n var currentRow = firstChild.alternate;\n null !== currentRow &&\n null === findFirstSuspended(currentRow) &&\n (lastContentRow = firstChild);\n firstChild = firstChild.sibling;\n }\n return lastContentRow;\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 reverseChildren(fiber) {\n var row = fiber.child;\n for (fiber.child = null; null !== row; ) {\n var nextRow = row.sibling;\n row.sibling = fiber.child;\n fiber.child = row;\n row = nextRow;\n }\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 if (workInProgress.flags & 128)\n return pushSuspenseListContext(workInProgress, suspenseContext), null;\n var shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n pushSuspenseListContext(workInProgress, suspenseContext);\n \"backwards\" === revealOrder && null !== current\n ? (reverseChildren(current),\n reconcileChildren(current, workInProgress, nextProps, renderLanes),\n reverseChildren(current))\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 \"backwards\":\n renderLanes = findLastContentRow(workInProgress.child);\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling),\n (renderLanes.sibling = null),\n reverseChildren(workInProgress));\n initSuspenseListRenderState(\n workInProgress,\n !0,\n revealOrder,\n null,\n tailMode,\n nextProps\n );\n break;\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 case \"independent\":\n workInProgress.memoizedState = null;\n break;\n default:\n (renderLanes = findLastContentRow(workInProgress.child)),\n null === renderLanes\n ? ((revealOrder = workInProgress.child),\n (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 }\n return workInProgress.child;\n}\nfunction updateContextProvider(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n pushProvider(workInProgress, workInProgress.type, newProps.value);\n reconcileChildren(current, workInProgress, newProps.children, renderLanes);\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$108 = workInProgress.memoizedState;\n if (null !== state$108) {\n if (null !== state$108.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n state$108 = propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n );\n var primaryChildLanes = workInProgress.child.childLanes;\n if (state$108 || 0 !== (renderLanes & primaryChildLanes))\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 if (workInProgress.flags & 128)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n primaryChildLanes = 0 !== (current.flags & 128);\n state$108 = 0 !== (renderLanes & workInProgress.childLanes);\n state$108 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$108 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (primaryChildLanes) {\n if (state$108)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n primaryChildLanes = workInProgress.memoizedState;\n null !== primaryChildLanes &&\n ((primaryChildLanes.rendering = null),\n (primaryChildLanes.tail = null),\n (primaryChildLanes.lastEffect = null));\n pushSuspenseListContext(workInProgress, suspenseStackCursor.current);\n if (state$108) 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 } else if ($$typeof === REACT_CONTEXT_TYPE) {\n workInProgress.tag = 10;\n workInProgress.type = current;\n workInProgress = updateContextProvider(\n null,\n workInProgress,\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) | 134221824),\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 (workInProgress.stateNode = createHoistableInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current,\n workInProgress\n ))\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 (props = workInProgress.pendingProps),\n markRef(current, workInProgress),\n reconcileChildren(current, workInProgress, props, renderLanes),\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 updateContextProvider(current, workInProgress, renderLanes);\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 30:\n return (\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n autoName: null,\n paired: null,\n clones: null,\n ref: null\n }),\n (props = workInProgress.pendingProps),\n null != props.name && \"auto\" !== props.name\n ? (workInProgress.flags |= null === current ? 18882560 : 18874368)\n : isHydrating && pushMaterializedTreeId(workInProgress),\n null !== current && current.memoizedProps.name !== props.name\n ? (workInProgress.flags |= 4194816)\n : markRef(current, workInProgress),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\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 var JSCompiler_temp;\n if ((JSCompiler_temp = 0 !== (workInProgress.mode & 32)))\n JSCompiler_temp =\n null === oldProps\n ? maySuspendCommit(type, newProps)\n : maySuspendCommit(type, newProps) &&\n (newProps.src !== oldProps.src ||\n newProps.srcSet !== oldProps.srcSet);\n if (JSCompiler_temp) {\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 \"visible\":\n break;\n case \"collapsed\":\n for (\n var tailNode = renderState.tail, lastTailNode = null;\n null !== tailNode;\n\n )\n null !== tailNode.alternate && (lastTailNode = tailNode),\n (tailNode = tailNode.sibling);\n null === lastTailNode\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode.sibling = null);\n break;\n default:\n hasRenderedATailFallback = renderState.tail;\n for (tailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (tailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === tailNode\n ? (renderState.tail = null)\n : (tailNode.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$113 = completedWork.child; null !== child$113; )\n (newChildLanes |= child$113.lanes | child$113.childLanes),\n (subtreeFlags |= child$113.subtreeFlags & 1206910976),\n (subtreeFlags |= child$113.flags & 1206910976),\n (child$113.return = completedWork),\n (child$113 = child$113.sibling);\n else\n for (child$113 = completedWork.child; null !== child$113; )\n (newChildLanes |= child$113.lanes | child$113.childLanes),\n (subtreeFlags |= child$113.subtreeFlags),\n (subtreeFlags |= child$113.flags),\n (child$113.return = completedWork),\n (child$113 = child$113.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 workInProgress.subtreeFlags &= -33554433;\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 workInProgress.subtreeFlags &= -33554433;\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 workInProgress.subtreeFlags &= -33554433;\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 workInProgress.subtreeFlags &= -33554433;\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 (workInProgress.flags |= 67108864),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n popSuspenseListContext(workInProgress);\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 pushSuspenseListContext(\n workInProgress,\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 \"collapsed\" !== newProps.tailMode &&\n \"visible\" !== 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 current = newProps.tail;\n a: {\n for (renderLanes = current; null !== renderLanes; ) {\n if (null !== renderLanes.alternate) {\n renderLanes = !1;\n break a;\n }\n renderLanes = renderLanes.sibling;\n }\n renderLanes = !0;\n }\n newProps.rendering = current;\n newProps.tail = current.sibling;\n newProps.renderingStartTime = now();\n current.sibling = null;\n nextResource = suspenseStackCursor.current;\n nextResource = type ? (nextResource & 1) | 2 : nextResource & 1;\n \"visible\" === newProps.tailMode ||\n \"collapsed\" === newProps.tailMode ||\n !renderLanes ||\n isHydrating\n ? pushSuspenseListContext(workInProgress, nextResource)\n : ((renderLanes = nextResource),\n push(suspenseHandlerStackCursor, workInProgress),\n push(suspenseStackCursor, renderLanes),\n null === shellBoundary && (shellBoundary = workInProgress));\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount);\n return 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 (\n (workInProgress.flags |= 33554432),\n bubbleProperties(workInProgress),\n null\n );\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 (\n popSuspenseListContext(workInProgress),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128),\n (current = workInProgress.memoizedState),\n null !== current &&\n ((current.rendering = null), (current.tail = null)),\n (workInProgress.flags |= 4),\n workInProgress)\n : null\n );\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 popSuspenseListContext(interruptedWork);\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 var instance = current.stateNode,\n name = getViewTransitionName(current.memoizedProps, instance);\n if (null === instance.ref || instance.ref.name !== name)\n instance.ref = createViewTransitionInstance(name);\n instanceToUse = instance.ref;\n break;\n case 7:\n if (null === current.stateNode) {\n var fragmentInstance = new FragmentInstance(current);\n traverseVisibleInstancesAndTextInstances(\n current.child,\n !1,\n addFragmentHandleToFiber,\n fragmentInstance,\n void 0,\n void 0\n );\n current.stateNode = fragmentInstance;\n }\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$148) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$148);\n }\n else ref.current = null;\n}\nfunction commitNewChildToFragmentInstances(fiber, parentFragmentInstances) {\n if (\n (5 === fiber.tag || 27 === fiber.tag || 6 === fiber.tag) &&\n null === fiber.alternate &&\n null !== parentFragmentInstances\n )\n for (var i = 0; i < parentFragmentInstances.length; i++)\n commitNewChildToFragmentInstance(\n fiber.stateNode,\n parentFragmentInstances[i]\n );\n}\nfunction commitFragmentInstanceInsertionEffects(fiber) {\n for (var parent = fiber.return; null !== parent; ) {\n isFragmentInstanceParent(parent) &&\n commitNewChildToFragmentInstance(fiber.stateNode, parent.stateNode);\n if (isFragmentInstanceHostBoundary(parent)) break;\n parent = parent.return;\n }\n}\nfunction commitFragmentInstanceDeletionEffects(fiber) {\n for (var parent = fiber.return; null !== parent; ) {\n isFragmentInstanceParent(parent) &&\n deleteChildFromFragmentInstance(fiber.stateNode, parent.stateNode);\n if (isFragmentInstanceHostBoundary(parent)) break;\n parent = parent.return;\n }\n}\nfunction isFragmentInstanceHostBoundary(fiber) {\n return 5 === fiber.tag || 3 === fiber.tag || 27 === fiber.tag;\n}\nfunction isFragmentInstanceParent(fiber) {\n return fiber && 7 === fiber.tag && null !== fiber.stateNode;\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(\n node,\n before,\n parent,\n parentFragmentInstances\n) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (tag = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(tag, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(tag),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1)),\n commitNewChildToFragmentInstances(node, parentFragmentInstances),\n (viewTransitionMutationContext = !0);\n else if (\n 4 !== tag &&\n (27 === tag &&\n (commitNewChildToFragmentInstances(node, parentFragmentInstances),\n (parentFragmentInstances = null),\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null))),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(\n node,\n before,\n parent,\n parentFragmentInstances\n ),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(\n node,\n before,\n parent,\n parentFragmentInstances\n ),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(\n node,\n before,\n parent,\n parentFragmentInstances\n) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (tag = node.stateNode),\n before ? parent.insertBefore(tag, before) : parent.appendChild(tag),\n commitNewChildToFragmentInstances(node, parentFragmentInstances),\n (viewTransitionMutationContext = !0);\n else if (\n 4 !== tag &&\n (27 === tag &&\n (commitNewChildToFragmentInstances(node, parentFragmentInstances),\n (parentFragmentInstances = null),\n isSingletonScope(node.type) && (parent = node.stateNode)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(\n node,\n before,\n parent,\n parentFragmentInstances\n ),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(\n node,\n before,\n parent,\n parentFragmentInstances\n ),\n (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 shouldStartViewTransition = !1,\n appearingViewTransitions = null;\nfunction trackEnterViewTransitions(placement) {\n if (30 === placement.tag || 0 !== (placement.subtreeFlags & 33554432))\n shouldStartViewTransition = !0;\n}\nvar viewTransitionCancelableChildren = null;\nfunction pushViewTransitionCancelableScope() {\n var prevChildren = viewTransitionCancelableChildren;\n viewTransitionCancelableChildren = null;\n return prevChildren;\n}\nvar viewTransitionHostInstanceIdx = 0;\nfunction applyViewTransitionToHostInstances(\n fiber,\n name,\n className,\n collectMeasurements,\n stopAtNestedViewTransitions\n) {\n viewTransitionHostInstanceIdx = 0;\n return applyViewTransitionToHostInstancesRecursive(\n fiber.child,\n name,\n className,\n collectMeasurements,\n stopAtNestedViewTransitions\n );\n}\nfunction applyViewTransitionToHostInstancesRecursive(\n child,\n name,\n className,\n collectMeasurements,\n stopAtNestedViewTransitions\n) {\n for (var inViewport = !1; null !== child; ) {\n if (5 === child.tag) {\n var instance = child.stateNode;\n if (null !== collectMeasurements) {\n var measurement = measureInstance(instance);\n collectMeasurements.push(measurement);\n measurement.view && (inViewport = !0);\n } else\n inViewport || (measureInstance(instance).view && (inViewport = !0));\n shouldStartViewTransition = !0;\n applyViewTransitionName(\n instance,\n 0 === viewTransitionHostInstanceIdx\n ? name\n : name + \"_\" + viewTransitionHostInstanceIdx,\n className\n );\n viewTransitionHostInstanceIdx++;\n } else if (22 !== child.tag || null === child.memoizedState)\n (30 === child.tag && stopAtNestedViewTransitions) ||\n (applyViewTransitionToHostInstancesRecursive(\n child.child,\n name,\n className,\n collectMeasurements,\n stopAtNestedViewTransitions\n ) &&\n (inViewport = !0));\n child = child.sibling;\n }\n return inViewport;\n}\nfunction restoreViewTransitionOnHostInstances(\n child,\n stopAtNestedViewTransitions\n) {\n for (; null !== child; ) {\n if (5 === child.tag)\n restoreViewTransitionName(child.stateNode, child.memoizedProps);\n else if (22 !== child.tag || null === child.memoizedState)\n (30 === child.tag && stopAtNestedViewTransitions) ||\n restoreViewTransitionOnHostInstances(\n child.child,\n stopAtNestedViewTransitions\n );\n child = child.sibling;\n }\n}\nfunction commitAppearingPairViewTransitions(placement) {\n if (0 !== (placement.subtreeFlags & 18874368))\n for (placement = placement.child; null !== placement; ) {\n if (22 !== placement.tag || null === placement.memoizedState)\n if (\n (commitAppearingPairViewTransitions(placement),\n 30 === placement.tag &&\n 0 !== (placement.flags & 18874368) &&\n placement.stateNode.paired)\n ) {\n var props = placement.memoizedProps;\n if (null == props.name || \"auto\" === props.name)\n throw Error(formatProdErrorMessage(544));\n var name = props.name;\n props = getViewTransitionClassName(props.default, props.share);\n \"none\" !== props &&\n (applyViewTransitionToHostInstances(\n placement,\n name,\n props,\n null,\n !1\n ) ||\n restoreViewTransitionOnHostInstances(placement.child, !1));\n }\n placement = placement.sibling;\n }\n}\nfunction commitEnterViewTransitions(placement, gesture) {\n if (30 === placement.tag) {\n var state = placement.stateNode,\n props = placement.memoizedProps,\n name = getViewTransitionName(props, state),\n className = getViewTransitionClassName(\n props.default,\n state.paired ? props.share : props.enter\n );\n \"none\" !== className\n ? applyViewTransitionToHostInstances(placement, name, className, null, !1)\n ? (commitAppearingPairViewTransitions(placement),\n state.paired ||\n gesture ||\n scheduleViewTransitionEvent(placement, props.onEnter))\n : restoreViewTransitionOnHostInstances(placement.child, !1)\n : commitAppearingPairViewTransitions(placement);\n } else if (0 !== (placement.subtreeFlags & 33554432))\n for (placement = placement.child; null !== placement; )\n commitEnterViewTransitions(placement, gesture),\n (placement = placement.sibling);\n else commitAppearingPairViewTransitions(placement);\n}\nfunction commitDeletedPairViewTransitions(deletion) {\n if (\n null !== appearingViewTransitions &&\n 0 !== appearingViewTransitions.size\n ) {\n var pairs = appearingViewTransitions;\n if (0 !== (deletion.subtreeFlags & 18874368))\n for (deletion = deletion.child; null !== deletion; ) {\n if (22 !== deletion.tag || null === deletion.memoizedState) {\n if (30 === deletion.tag && 0 !== (deletion.flags & 18874368)) {\n var props = deletion.memoizedProps,\n name = props.name;\n if (null != name && \"auto\" !== name) {\n var pair = pairs.get(name);\n if (void 0 !== pair) {\n var className = getViewTransitionClassName(\n props.default,\n props.share\n );\n \"none\" !== className &&\n (applyViewTransitionToHostInstances(\n deletion,\n name,\n className,\n null,\n !1\n )\n ? ((className = deletion.stateNode),\n (pair.paired = className),\n (className.paired = pair),\n scheduleViewTransitionEvent(deletion, props.onShare))\n : restoreViewTransitionOnHostInstances(deletion.child, !1));\n pairs.delete(name);\n if (0 === pairs.size) break;\n }\n }\n }\n commitDeletedPairViewTransitions(deletion);\n }\n deletion = deletion.sibling;\n }\n }\n}\nfunction commitExitViewTransitions(deletion) {\n if (30 === deletion.tag) {\n var props = deletion.memoizedProps,\n name = getViewTransitionName(props, deletion.stateNode),\n pair =\n null !== appearingViewTransitions\n ? appearingViewTransitions.get(name)\n : void 0,\n className = getViewTransitionClassName(\n props.default,\n void 0 !== pair ? props.share : props.exit\n );\n \"none\" !== className &&\n (applyViewTransitionToHostInstances(deletion, name, className, null, !1)\n ? void 0 !== pair\n ? ((className = deletion.stateNode),\n (pair.paired = className),\n (className.paired = pair),\n appearingViewTransitions.delete(name),\n scheduleViewTransitionEvent(deletion, props.onShare))\n : scheduleViewTransitionEvent(deletion, props.onExit)\n : restoreViewTransitionOnHostInstances(deletion.child, !1));\n null !== appearingViewTransitions &&\n commitDeletedPairViewTransitions(deletion);\n } else if (0 !== (deletion.subtreeFlags & 33554432))\n for (deletion = deletion.child; null !== deletion; )\n commitExitViewTransitions(deletion), (deletion = deletion.sibling);\n else\n null !== appearingViewTransitions &&\n commitDeletedPairViewTransitions(deletion);\n}\nfunction commitNestedViewTransitions(changedParent) {\n for (changedParent = changedParent.child; null !== changedParent; ) {\n if (30 === changedParent.tag) {\n var props = changedParent.memoizedProps,\n name = getViewTransitionName(props, changedParent.stateNode);\n props = getViewTransitionClassName(props.default, props.update);\n changedParent.flags &= -5;\n \"none\" !== props &&\n applyViewTransitionToHostInstances(\n changedParent,\n name,\n props,\n (changedParent.memoizedState = []),\n !1\n );\n } else\n 0 !== (changedParent.subtreeFlags & 33554432) &&\n commitNestedViewTransitions(changedParent);\n changedParent = changedParent.sibling;\n }\n}\nfunction restorePairedViewTransitions(parent) {\n if (0 !== (parent.subtreeFlags & 18874368))\n for (parent = parent.child; null !== parent; ) {\n if (22 !== parent.tag || null === parent.memoizedState) {\n if (30 === parent.tag && 0 !== (parent.flags & 18874368)) {\n var instance = parent.stateNode;\n null !== instance.paired &&\n ((instance.paired = null),\n restoreViewTransitionOnHostInstances(parent.child, !1));\n }\n restorePairedViewTransitions(parent);\n }\n parent = parent.sibling;\n }\n}\nfunction restoreEnterOrExitViewTransitions(fiber) {\n if (30 === fiber.tag)\n (fiber.stateNode.paired = null),\n restoreViewTransitionOnHostInstances(fiber.child, !1),\n restorePairedViewTransitions(fiber);\n else if (0 !== (fiber.subtreeFlags & 33554432))\n for (fiber = fiber.child; null !== fiber; )\n restoreEnterOrExitViewTransitions(fiber), (fiber = fiber.sibling);\n else restorePairedViewTransitions(fiber);\n}\nfunction restoreNestedViewTransitions(changedParent) {\n for (changedParent = changedParent.child; null !== changedParent; )\n 30 === changedParent.tag\n ? restoreViewTransitionOnHostInstances(changedParent.child, !1)\n : 0 !== (changedParent.subtreeFlags & 33554432) &&\n restoreNestedViewTransitions(changedParent),\n (changedParent = changedParent.sibling);\n}\nfunction measureViewTransitionHostInstancesRecursive(\n parentViewTransition,\n child,\n newName,\n oldName,\n className,\n previousMeasurements,\n stopAtNestedViewTransitions\n) {\n for (var inViewport = !1; null !== child; ) {\n if (5 === child.tag) {\n var instance = child.stateNode;\n if (\n null !== previousMeasurements &&\n viewTransitionHostInstanceIdx < previousMeasurements.length\n ) {\n var previousMeasurement =\n previousMeasurements[viewTransitionHostInstanceIdx],\n nextMeasurement = measureInstance(instance);\n if (previousMeasurement.view || nextMeasurement.view) inViewport = !0;\n var JSCompiler_temp;\n if ((JSCompiler_temp = 0 === (parentViewTransition.flags & 4)))\n if (nextMeasurement.clip) JSCompiler_temp = !0;\n else {\n JSCompiler_temp = previousMeasurement.rect;\n var newRect = nextMeasurement.rect;\n JSCompiler_temp =\n JSCompiler_temp.y !== newRect.y ||\n JSCompiler_temp.x !== newRect.x ||\n JSCompiler_temp.height !== newRect.height ||\n JSCompiler_temp.width !== newRect.width;\n }\n JSCompiler_temp && (parentViewTransition.flags |= 4);\n nextMeasurement.abs\n ? (nextMeasurement = !previousMeasurement.abs)\n : ((previousMeasurement = previousMeasurement.rect),\n (nextMeasurement = nextMeasurement.rect),\n (nextMeasurement =\n previousMeasurement.height !== nextMeasurement.height ||\n previousMeasurement.width !== nextMeasurement.width));\n nextMeasurement && (parentViewTransition.flags |= 32);\n } else parentViewTransition.flags |= 32;\n 0 !== (parentViewTransition.flags & 4) &&\n applyViewTransitionName(\n instance,\n 0 === viewTransitionHostInstanceIdx\n ? newName\n : newName + \"_\" + viewTransitionHostInstanceIdx,\n className\n );\n (inViewport && 0 !== (parentViewTransition.flags & 4)) ||\n (null === viewTransitionCancelableChildren &&\n (viewTransitionCancelableChildren = []),\n viewTransitionCancelableChildren.push(\n instance,\n 0 === viewTransitionHostInstanceIdx\n ? oldName\n : oldName + \"_\" + viewTransitionHostInstanceIdx,\n child.memoizedProps\n ));\n viewTransitionHostInstanceIdx++;\n } else if (22 !== child.tag || null === child.memoizedState)\n 30 === child.tag && stopAtNestedViewTransitions\n ? (parentViewTransition.flags |= child.flags & 32)\n : measureViewTransitionHostInstancesRecursive(\n parentViewTransition,\n child.child,\n newName,\n oldName,\n className,\n previousMeasurements,\n stopAtNestedViewTransitions\n ) && (inViewport = !0);\n child = child.sibling;\n }\n return inViewport;\n}\nfunction measureNestedViewTransitions(changedParent, gesture) {\n for (changedParent = changedParent.child; null !== changedParent; ) {\n if (30 === changedParent.tag) {\n var props = changedParent.memoizedProps,\n state = changedParent.stateNode,\n name = getViewTransitionName(props, state),\n className = getViewTransitionClassName(props.default, props.update);\n if (gesture) {\n state = state.clones;\n var previousMeasurements =\n null === state ? null : state.map(measureClonedInstance);\n } else\n (previousMeasurements = changedParent.memoizedState),\n (changedParent.memoizedState = null);\n state = changedParent;\n var child = changedParent.child;\n viewTransitionHostInstanceIdx = 0;\n name = measureViewTransitionHostInstancesRecursive(\n state,\n child,\n name,\n name,\n className,\n previousMeasurements,\n !1\n );\n 0 !== (changedParent.flags & 4) &&\n name &&\n (gesture || scheduleViewTransitionEvent(changedParent, props.onUpdate));\n } else\n 0 !== (changedParent.subtreeFlags & 33554432) &&\n measureNestedViewTransitions(changedParent, gesture);\n changedParent = changedParent.sibling;\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n offscreenDirectParentIsHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null,\n viewTransitionContextChanged = !1,\n inUpdateViewTransition = !1,\n rootViewTransitionAffected = !1,\n rootViewTransitionNameCanceled = !1;\nfunction commitBeforeMutationEffects(root, firstChild, committedLanes) {\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$21) {\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 committedLanes = (committedLanes & 335544064) === committedLanes;\n nextEffect = firstChild;\n for (firstChild = committedLanes ? 9270 : 1024; null !== nextEffect; ) {\n root = nextEffect;\n if (\n committedLanes &&\n ((JSCompiler_temp = root.deletions), null !== JSCompiler_temp)\n )\n for (\n anchorOffset = 0;\n anchorOffset < JSCompiler_temp.length;\n anchorOffset++\n )\n committedLanes &&\n commitExitViewTransitions(JSCompiler_temp[anchorOffset]);\n if (null === root.alternate && 0 !== (root.flags & 2))\n committedLanes && trackEnterViewTransitions(root),\n commitBeforeMutationEffects_complete(committedLanes);\n else {\n if (22 === root.tag)\n if (((JSCompiler_temp = root.alternate), null !== root.memoizedState)) {\n null !== JSCompiler_temp &&\n null === JSCompiler_temp.memoizedState &&\n committedLanes &&\n commitExitViewTransitions(JSCompiler_temp);\n commitBeforeMutationEffects_complete(committedLanes);\n continue;\n } else if (\n null !== JSCompiler_temp &&\n null !== JSCompiler_temp.memoizedState\n ) {\n committedLanes && trackEnterViewTransitions(root);\n commitBeforeMutationEffects_complete(committedLanes);\n continue;\n }\n JSCompiler_temp = root.child;\n 0 !== (root.subtreeFlags & firstChild) && null !== JSCompiler_temp\n ? ((JSCompiler_temp.return = root), (nextEffect = JSCompiler_temp))\n : (committedLanes && commitNestedViewTransitions(root),\n commitBeforeMutationEffects_complete(committedLanes));\n }\n }\n appearingViewTransitions = null;\n}\nfunction commitBeforeMutationEffects_complete(\n isViewTransitionEligible$jscomp$0\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect,\n isViewTransitionEligible = isViewTransitionEligible$jscomp$0,\n current = fiber.alternate,\n flags = fiber.flags;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (flags & 1024) && null !== current) {\n isViewTransitionEligible = void 0;\n flags = current.memoizedProps;\n current = current.memoizedState;\n var instance = fiber.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n fiber.type,\n flags\n );\n isViewTransitionEligible = instance.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n current\n );\n instance.__reactInternalSnapshotBeforeUpdate =\n isViewTransitionEligible;\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n }\n break;\n case 3:\n if (0 !== (flags & 1024))\n if (\n ((current = fiber.stateNode.containerInfo),\n (isViewTransitionEligible = current.nodeType),\n 9 === isViewTransitionEligible)\n )\n clearContainerSparingly(current);\n else if (1 === isViewTransitionEligible)\n switch (current.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(current);\n break;\n default:\n current.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 case 30:\n isViewTransitionEligible &&\n null !== current &&\n ((isViewTransitionEligible = getViewTransitionName(\n current.memoizedProps,\n current.stateNode\n )),\n (flags = fiber.memoizedProps),\n (flags = getViewTransitionClassName(flags.default, flags.update)),\n \"none\" !== flags &&\n applyViewTransitionToHostInstances(\n current,\n isViewTransitionEligible,\n flags,\n (current.memoizedState = []),\n !0\n ));\n break;\n default:\n if (0 !== (flags & 1024)) throw Error(formatProdErrorMessage(163));\n }\n current = fiber.sibling;\n if (null !== current) {\n current.return = fiber.return;\n nextEffect = current;\n break;\n }\n nextEffect = fiber.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$146) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$146\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 var newOffscreenSubtreeWasHidden =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n current = offscreenSubtreeIsHidden;\n prevProps = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = newOffscreenSubtreeWasHidden) && !prevProps\n ? ((flags = 2),\n 0 !== (finishedWork.subtreeFlags & 8772) && (flags |= 1),\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n flags\n ))\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = current;\n offscreenSubtreeWasHidden = prevProps;\n }\n break;\n case 30:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 7:\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction hideOrUnhideAllChildren(parentFiber, isHidden) {\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n hideOrUnhideAllChildrenOnFiber(parentFiber, isHidden),\n (parentFiber = parentFiber.sibling);\n}\nfunction hideOrUnhideAllChildrenOnFiber(fiber, isHidden) {\n switch (fiber.tag) {\n case 5:\n case 26:\n try {\n var instance = fiber.stateNode;\n if (isHidden) {\n var style = instance.style;\n \"function\" === typeof style.setProperty\n ? style.setProperty(\"display\", \"none\", \"important\")\n : (style.display = \"none\");\n } else {\n var instance$jscomp$0 = fiber.stateNode,\n styleProp = fiber.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n instance$jscomp$0.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n hideOrUnhideNearestPortals(fiber, isHidden);\n break;\n case 6:\n try {\n (fiber.stateNode.nodeValue = isHidden ? \"\" : fiber.memoizedProps),\n (viewTransitionMutationContext = !0);\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n break;\n case 18:\n try {\n var instance$jscomp$1 = fiber.stateNode;\n isHidden\n ? hideOrUnhideDehydratedBoundary(instance$jscomp$1, !0)\n : hideOrUnhideDehydratedBoundary(fiber.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n break;\n case 22:\n case 23:\n null === fiber.memoizedState && hideOrUnhideAllChildren(fiber, isHidden);\n break;\n default:\n hideOrUnhideAllChildren(fiber, isHidden);\n }\n}\nfunction hideOrUnhideNearestPortals(parentFiber, isHidden$jscomp$0) {\n if (parentFiber.subtreeFlags & 67108864)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n a: {\n var fiber = parentFiber,\n isHidden = isHidden$jscomp$0;\n switch (fiber.tag) {\n case 4:\n hideOrUnhideAllChildrenOnFiber(fiber, isHidden);\n break a;\n case 22:\n null === fiber.memoizedState &&\n hideOrUnhideNearestPortals(fiber, isHidden);\n break a;\n default:\n hideOrUnhideNearestPortals(fiber, isHidden);\n }\n }\n parentFiber = parentFiber.sibling;\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 !offscreenSubtreeWasHidden &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n commitFragmentInstanceDeletionEffects(deletedFiber);\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(\n deletedFiber.stateNode,\n deletedFiber.type,\n deletedFiber.memoizedProps\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor),\n commitFragmentInstanceDeletionEffects(deletedFiber);\n case 6:\n 6 === deletedFiber.tag &&\n commitFragmentInstanceDeletionEffects(deletedFiber);\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 (viewTransitionMutationContext = !0);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode),\n (viewTransitionMutationContext = !0);\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 case 30:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 7:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\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, lanes) {\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, lanes),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root, lanes) {\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 if (\n flags & 4 &&\n ((current = finishedWork.updateQueue),\n (current = null !== current ? current.events : null),\n null !== current)\n )\n for (var ii = 0; ii < current.length; ii++) {\n var _eventPayloads$ii2 = current[ii];\n _eventPayloads$ii2.ref.impl = _eventPayloads$ii2.nextImpl;\n }\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\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, lanes);\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 ((root = finishedWork.callbacks),\n null !== root &&\n ((lanes = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === lanes ? root : lanes.concat(root)))));\n break;\n case 26:\n ii = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4)\n if (\n ((flags = null !== current ? current.memoizedState : null),\n (lanes = finishedWork.memoizedState),\n null === current)\n )\n if (null === lanes)\n if (null === finishedWork.stateNode)\n if (offscreenSubtreeIsHidden)\n finishedWork.stateNode = createHoistableInstance(\n finishedWork.type,\n finishedWork.memoizedProps,\n root.containerInfo,\n finishedWork\n );\n else {\n a: {\n root = finishedWork.type;\n lanes = finishedWork.memoizedProps;\n flags = ii.ownerDocument || ii;\n b: switch (root) {\n case \"title\":\n current = flags.getElementsByTagName(\"title\")[0];\n if (\n !current ||\n current[internalHoistableMarker] ||\n current[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" === current.namespaceURI ||\n current.hasAttribute(\"itemprop\")\n )\n (current = flags.createElement(root)),\n flags.head.insertBefore(\n current,\n flags.querySelector(\"head > title\")\n );\n setInitialProperties(current, root, lanes);\n current[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(current);\n root = current;\n break a;\n case \"link\":\n if (\n (ii = getHydratableHoistableCache(\n \"link\",\n \"href\",\n flags\n ).get(root + (lanes.href || \"\")))\n )\n for (\n _eventPayloads$ii2 = 0;\n _eventPayloads$ii2 < ii.length;\n _eventPayloads$ii2++\n )\n if (\n ((current = ii[_eventPayloads$ii2]),\n current.getAttribute(\"href\") ===\n (null == lanes.href || \"\" === lanes.href\n ? null\n : lanes.href) &&\n current.getAttribute(\"rel\") ===\n (null == lanes.rel ? null : lanes.rel) &&\n current.getAttribute(\"title\") ===\n (null == lanes.title ? null : lanes.title) &&\n current.getAttribute(\"crossorigin\") ===\n (null == lanes.crossOrigin\n ? null\n : lanes.crossOrigin))\n ) {\n ii.splice(_eventPayloads$ii2, 1);\n break b;\n }\n current = flags.createElement(root);\n setInitialProperties(current, root, lanes);\n flags.head.appendChild(current);\n break;\n case \"meta\":\n if (\n (ii = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n flags\n ).get(root + (lanes.content || \"\")))\n )\n for (\n _eventPayloads$ii2 = 0;\n _eventPayloads$ii2 < ii.length;\n _eventPayloads$ii2++\n )\n if (\n ((current = ii[_eventPayloads$ii2]),\n current.getAttribute(\"content\") ===\n (null == lanes.content\n ? null\n : \"\" + lanes.content) &&\n current.getAttribute(\"name\") ===\n (null == lanes.name ? null : lanes.name) &&\n current.getAttribute(\"property\") ===\n (null == lanes.property\n ? null\n : lanes.property) &&\n current.getAttribute(\"http-equiv\") ===\n (null == lanes.httpEquiv\n ? null\n : lanes.httpEquiv) &&\n current.getAttribute(\"charset\") ===\n (null == lanes.charSet ? null : lanes.charSet))\n ) {\n ii.splice(_eventPayloads$ii2, 1);\n break b;\n }\n current = flags.createElement(root);\n setInitialProperties(current, root, lanes);\n flags.head.appendChild(current);\n break;\n default:\n throw Error(formatProdErrorMessage(468, root));\n }\n current[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(current);\n root = current;\n }\n finishedWork.stateNode = root;\n }\n else\n offscreenSubtreeIsHidden ||\n mountHoistable(ii, finishedWork.type, finishedWork.stateNode);\n else\n finishedWork.stateNode = acquireResource(\n ii,\n lanes,\n finishedWork.memoizedProps\n );\n else\n flags !== lanes\n ? (null === flags\n ? ((root = current.stateNode),\n null === root ||\n offscreenSubtreeWasHidden ||\n root.parentNode.removeChild(root))\n : flags.count--,\n null === lanes\n ? offscreenSubtreeIsHidden ||\n mountHoistable(ii, finishedWork.type, finishedWork.stateNode)\n : acquireResource(ii, lanes, finishedWork.memoizedProps))\n : null === lanes &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\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 ii = offscreenDirectParentIsHidden;\n offscreenDirectParentIsHidden = !1;\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n offscreenDirectParentIsHidden = ii;\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n root = finishedWork.stateNode;\n try {\n setTextContent(root, \"\"), (viewTransitionMutationContext = !0);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((root = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n root,\n null !== current ? current.memoizedProps : root\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n root = finishedWork.memoizedProps;\n lanes = finishedWork.stateNode;\n try {\n (lanes.nodeValue = root), (viewTransitionMutationContext = !0);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n viewTransitionMutationContext = !1;\n tagCaches = null;\n ii = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n currentHoistableRoot = ii;\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 viewTransitionMutationContext = !1;\n break;\n case 4:\n flags = offscreenDirectParentIsHidden;\n offscreenDirectParentIsHidden = offscreenSubtreeIsHidden;\n current = pushMutationContext();\n ii = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = ii;\n viewTransitionMutationContext &&\n inUpdateViewTransition &&\n (rootViewTransitionAffected = !0);\n viewTransitionMutationContext = current;\n offscreenDirectParentIsHidden = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((root = finishedWork.updateQueue),\n null !== root &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, root)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\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 ((root = finishedWork.updateQueue),\n null !== root &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, root)));\n break;\n case 22:\n ii = null !== finishedWork.memoizedState;\n _eventPayloads$ii2 = null !== current && null !== current.memoizedState;\n var prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden,\n prevOffscreenDirectParentIsHidden$166 = offscreenDirectParentIsHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || ii;\n offscreenDirectParentIsHidden =\n prevOffscreenDirectParentIsHidden$166 || ii;\n offscreenSubtreeWasHidden =\n prevOffscreenSubtreeWasHidden || _eventPayloads$ii2;\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenDirectParentIsHidden = prevOffscreenDirectParentIsHidden$166;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n flags & 8192 &&\n ((root = finishedWork.stateNode),\n (root._visibility = ii ? root._visibility & -2 : root._visibility | 1),\n !ii ||\n null === current ||\n _eventPayloads$ii2 ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n ((root = _eventPayloads$ii2 || offscreenSubtreeWasHidden),\n (lanes = offscreenSubtreeIsHidden),\n (current = offscreenSubtreeWasHidden),\n (offscreenSubtreeIsHidden = ii || offscreenSubtreeIsHidden),\n (offscreenSubtreeWasHidden = root),\n recursivelyTraverseDisappearLayoutEffects(finishedWork, 2),\n (offscreenSubtreeIsHidden = lanes),\n (offscreenSubtreeWasHidden = current)),\n (!ii && offscreenDirectParentIsHidden) ||\n hideOrUnhideAllChildren(finishedWork, ii));\n flags & 4 &&\n ((root = finishedWork.updateQueue),\n null !== root &&\n ((lanes = root.retryQueue),\n null !== lanes &&\n ((root.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, lanes))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((root = finishedWork.updateQueue),\n null !== root &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, root)));\n break;\n case 30:\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags = pushMutationContext();\n ii = inUpdateViewTransition;\n _eventPayloads$ii2 = (lanes & 335544064) === lanes;\n prevOffscreenSubtreeIsHidden = finishedWork.memoizedProps;\n inUpdateViewTransition =\n _eventPayloads$ii2 &&\n \"none\" !==\n getViewTransitionClassName(\n prevOffscreenSubtreeIsHidden.default,\n prevOffscreenSubtreeIsHidden.update\n );\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n _eventPayloads$ii2 &&\n null !== current &&\n viewTransitionMutationContext &&\n (finishedWork.flags |= 4);\n inUpdateViewTransition = ii;\n viewTransitionMutationContext = flags;\n break;\n case 21:\n break;\n case 7:\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return)),\n current &&\n null !== current.stateNode &&\n (current.stateNode._fragmentFiber = finishedWork);\n default:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes),\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 parentFiber = null;\n for (var parent = finishedWork.return; null !== parent; ) {\n if (isFragmentInstanceParent(parent)) {\n var fragmentInstance = parent.stateNode;\n null === parentFiber\n ? (parentFiber = [fragmentInstance])\n : parentFiber.push(fragmentInstance);\n }\n if (isFragmentInstanceHostBoundary(parent)) break;\n parent = parent.return;\n }\n var JSCompiler_inline_result = parentFiber;\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent$jscomp$0 = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(\n finishedWork,\n before,\n parent$jscomp$0,\n JSCompiler_inline_result\n );\n break;\n case 5:\n var parent$149 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$149, \"\"), (hostParentFiber.flags &= -33));\n var before$150 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(\n finishedWork,\n before$150,\n parent$149,\n JSCompiler_inline_result\n );\n break;\n case 3:\n case 4:\n var parent$151 = hostParentFiber.stateNode.containerInfo,\n before$152 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$152,\n parent$151,\n JSCompiler_inline_result\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 &&\n fiber.flags & 1024 &&\n ((fiber = fiber.stateNode),\n (_enabled = !0),\n fiber.reset(),\n (_enabled = !1));\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAfterMutationEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 9270)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitAfterMutationEffectsOnFiber(parentFiber, root),\n (parentFiber = parentFiber.sibling);\n else measureNestedViewTransitions(parentFiber, !1);\n}\nfunction commitAfterMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate;\n if (null === current) commitEnterViewTransitions(finishedWork, !1);\n else\n switch (finishedWork.tag) {\n case 3:\n rootViewTransitionNameCanceled = viewTransitionContextChanged = !1;\n pushViewTransitionCancelableScope();\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\n if (!viewTransitionContextChanged && !rootViewTransitionAffected) {\n finishedWork = viewTransitionCancelableChildren;\n if (null !== finishedWork)\n for (var i = 0; i < finishedWork.length; i += 3) {\n current = finishedWork[i];\n var oldName = finishedWork[i + 1];\n restoreViewTransitionName(current, finishedWork[i + 2]);\n current = current.ownerDocument.documentElement;\n null !== current &&\n current.animate(\n { opacity: [0, 0], pointerEvents: [\"none\", \"none\"] },\n {\n duration: 0,\n fill: \"forwards\",\n pseudoElement: \"::view-transition-group(\" + oldName + \")\"\n }\n );\n }\n finishedWork = root.containerInfo;\n finishedWork =\n 9 === finishedWork.nodeType\n ? finishedWork.documentElement\n : finishedWork.ownerDocument.documentElement;\n null !== finishedWork &&\n \"\" === finishedWork.style.viewTransitionName &&\n ((finishedWork.style.viewTransitionName = \"none\"),\n finishedWork.animate(\n { opacity: [0, 0], pointerEvents: [\"none\", \"none\"] },\n {\n duration: 0,\n fill: \"forwards\",\n pseudoElement: \"::view-transition-group(root)\"\n }\n ),\n finishedWork.animate(\n { width: [0, 0], height: [0, 0] },\n {\n duration: 0,\n fill: \"forwards\",\n pseudoElement: \"::view-transition\"\n }\n ));\n rootViewTransitionNameCanceled = !0;\n }\n viewTransitionCancelableChildren = null;\n break;\n case 5:\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\n break;\n case 4:\n i = viewTransitionContextChanged;\n viewTransitionContextChanged = !1;\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\n viewTransitionContextChanged && (rootViewTransitionAffected = !0);\n viewTransitionContextChanged = i;\n break;\n case 22:\n null === finishedWork.memoizedState &&\n (null !== current.memoizedState\n ? commitEnterViewTransitions(finishedWork, !1)\n : recursivelyTraverseAfterMutationEffects(root, finishedWork));\n break;\n case 30:\n i = viewTransitionContextChanged;\n oldName = pushViewTransitionCancelableScope();\n viewTransitionContextChanged = !1;\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\n viewTransitionContextChanged && (finishedWork.flags |= 4);\n var props = finishedWork.memoizedProps,\n state = finishedWork.stateNode;\n root = getViewTransitionName(props, state);\n state = getViewTransitionName(current.memoizedProps, state);\n var className = getViewTransitionClassName(props.default, props.update);\n \"none\" === className\n ? (root = !1)\n : ((props = current.memoizedState),\n (current.memoizedState = null),\n (current = finishedWork.child),\n (viewTransitionHostInstanceIdx = 0),\n (root = measureViewTransitionHostInstancesRecursive(\n finishedWork,\n current,\n root,\n state,\n className,\n props,\n !0\n )),\n viewTransitionHostInstanceIdx !==\n (null === props ? 0 : props.length) &&\n (finishedWork.flags |= 32));\n 0 !== (finishedWork.flags & 4) && root\n ? (scheduleViewTransitionEvent(\n finishedWork,\n finishedWork.memoizedProps.onUpdate\n ),\n (viewTransitionCancelableChildren = oldName))\n : null !== oldName &&\n (oldName.push.apply(oldName, viewTransitionCancelableChildren),\n (viewTransitionCancelableChildren = oldName));\n viewTransitionContextChanged = 0 !== (finishedWork.flags & 32) ? !0 : i;\n break;\n default:\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\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(\n parentFiber,\n layoutEffectTraversalFlags$jscomp$0\n) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber,\n layoutEffectTraversalFlags = layoutEffectTraversalFlags$jscomp$0;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\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(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 27:\n 0 !== (layoutEffectTraversalFlags & 2) &&\n releaseSingletonInstance(\n finishedWork.stateNode,\n finishedWork.type,\n finishedWork.memoizedProps\n );\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n (5 !== finishedWork.tag && 27 !== finishedWork.tag) ||\n commitFragmentInstanceDeletionEffects(finishedWork);\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 6:\n commitFragmentInstanceDeletionEffects(finishedWork);\n break;\n case 26:\n safelyDetachRef(finishedWork, finishedWork.return);\n instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState ||\n null === instance ||\n offscreenSubtreeWasHidden ||\n instance.parentNode.removeChild(instance);\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 30:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 7:\n safelyDetachRef(finishedWork, finishedWork.return);\n default:\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n layoutEffectTraversalFlags\n) {\n layoutEffectTraversalFlags =\n 0 !== (parentFiber.subtreeFlags & 8772)\n ? layoutEffectTraversalFlags\n : layoutEffectTraversalFlags & -2;\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 includeWorkInProgressEffects = 0 !== (layoutEffectTraversalFlags & 1);\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\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 0 !== (layoutEffectTraversalFlags & 2) &&\n commitHostSingletonAcquisition(finishedWork);\n case 5:\n (5 !== finishedWork.tag && 27 !== finishedWork.tag) ||\n commitFragmentInstanceInsertionEffects(finishedWork);\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 6:\n commitFragmentInstanceInsertionEffects(finishedWork);\n break;\n case 26:\n instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState ||\n null === instance ||\n offscreenSubtreeIsHidden ||\n mountHoistable(\n getHoistableRoot(instance.ownerDocument),\n finishedWork.type,\n instance\n );\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\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 layoutEffectTraversalFlags\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\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 layoutEffectTraversalFlags\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 7:\n safelyAttachRef(finishedWork, finishedWork.return);\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\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 var isViewTransitionEligible =\n (committedLanes & 335544064) === committedLanes;\n if (parentFiber.subtreeFlags & (isViewTransitionEligible ? 10262 : 10256))\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n else isViewTransitionEligible && restoreNestedViewTransitions(parentFiber);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var isViewTransitionEligible =\n (committedLanes & 335544064) === committedLanes;\n isViewTransitionEligible &&\n null === finishedWork.alternate &&\n null !== finishedWork.return &&\n null !== finishedWork.return.alternate &&\n restoreEnterOrExitViewTransitions(finishedWork);\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 isViewTransitionEligible &&\n rootViewTransitionNameCanceled &&\n ((finishedRoot = finishedRoot.containerInfo),\n (finishedRoot =\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot),\n \"root\" === finishedRoot.style.viewTransitionName &&\n (finishedRoot.style.viewTransitionName = \"\"),\n (finishedRoot = finishedRoot.ownerDocument.documentElement),\n null !== finishedRoot &&\n \"none\" === finishedRoot.style.viewTransitionName &&\n (finishedRoot.style.viewTransitionName = \"\"));\n flags & 2048 &&\n ((flags = null),\n null !== finishedWork.alternate &&\n (flags = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== flags &&\n (finishedWork.refCount++, null != flags && releaseCache(flags)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags = 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 flags.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 ? (isViewTransitionEligible &&\n null !== id &&\n null === id.memoizedState &&\n restoreEnterOrExitViewTransitions(id),\n _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n ))\n : (isViewTransitionEligible &&\n null !== id &&\n null !== id.memoizedState &&\n restoreEnterOrExitViewTransitions(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 case 30:\n isViewTransitionEligible &&\n ((flags = finishedWork.alternate),\n null !== flags &&\n (restoreViewTransitionOnHostInstances(flags.child, !0),\n restoreViewTransitionOnHostInstances(finishedWork.child, !0)));\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\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 : ((fiber = fiber.stateNode),\n (committedLanes & 335544128) === committedLanes &&\n suspendInstance(suspendedState, fiber)));\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n ((fiber = fiber.stateNode),\n (committedLanes & 335544128) === committedLanes &&\n suspendInstance(suspendedState, fiber));\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 case 30:\n if (\n 0 !== (fiber.flags & suspenseyCommitFlag) &&\n ((previousHoistableRoot = fiber.memoizedProps.name),\n null != previousHoistableRoot && \"auto\" !== previousHoistableRoot)\n ) {\n var state = fiber.stateNode;\n state.paired = null;\n null === appearingViewTransitions &&\n (appearingViewTransitions = new Map());\n appearingViewTransitions.set(previousHoistableRoot, state);\n }\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 pendingViewTransition = null,\n pendingViewTransitionEvents = null,\n pendingTransitionTypes = 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 scheduleViewTransitionEvent(fiber, callback) {\n if (null != callback) {\n var state = fiber.stateNode,\n instance = state.ref;\n null === instance &&\n (instance = state.ref =\n createViewTransitionInstance(\n getViewTransitionName(fiber.memoizedProps, state)\n ));\n null === pendingViewTransitionEvents && (pendingViewTransitionEvents = []);\n pendingViewTransitionEvents.push(callback.bind(null, instance));\n }\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 (\n 2 !== JSCompiler_inline_result &&\n 6 !== JSCompiler_inline_result\n ) {\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 && (lanes & 62914560) !== lanes)\n 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 completeRootWhenReady.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 completeRootWhenReady(\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 completeRootWhenReady(\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 var subtreeFlags = finishedWork.subtreeFlags,\n isViewTransitionEligible = (lanes & 335544064) === lanes;\n suspendedCommitReason = null;\n if (\n isViewTransitionEligible ||\n subtreeFlags & 8192 ||\n 16785408 === (subtreeFlags & 16785408)\n )\n if (\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 (appearingViewTransitions = null),\n accumulateSuspenseyCommitOnFiber(\n finishedWork,\n lanes,\n suspendedCommitReason\n ),\n isViewTransitionEligible &&\n ((subtreeFlags = suspendedCommitReason),\n (isViewTransitionEligible = root.containerInfo),\n (isViewTransitionEligible = (\n 9 === isViewTransitionEligible.nodeType\n ? isViewTransitionEligible\n : isViewTransitionEligible.ownerDocument\n ).__reactViewTransition),\n null != isViewTransitionEligible &&\n (subtreeFlags.count++,\n (subtreeFlags.waitingForViewTransition = !0),\n (subtreeFlags = onUnsuspend.bind(subtreeFlags)),\n isViewTransitionEligible.finished.then(subtreeFlags, subtreeFlags))),\n (subtreeFlags =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now()\n : 0),\n (subtreeFlags = waitForCommitToBeReady(\n suspendedCommitReason,\n subtreeFlags\n )),\n null !== subtreeFlags)\n ) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = subtreeFlags(\n completeRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n completeRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason\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 = getEntangledLanes(root, suspendedLanes);\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 entangledRenderLanes = getEntangledLanes(root, 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$184) {\n handleThrow(root, thrownValue$184);\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$186) {\n handleThrow(root, thrownValue$186);\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 var fiber = next;\n fiber === hydrationParentFiber &&\n (isHydrating\n ? (popToNextHostParent(fiber),\n 5 === fiber.tag &&\n null != fiber.stateNode &&\n (nextHydratableInstance = fiber.stateNode))\n : (popToNextHostParent(fiber), (isHydrating = !0)));\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 completeRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedState\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 root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n commitRoot(\n root,\n finishedWork,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n suspendedState\n );\n }\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n suspendedState\n) {\n var remainingLanes = finishedWork.lanes | finishedWork.childLanes;\n pendingEffectsRemainingLanes = remainingLanes;\n remainingLanes |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n pendingViewTransitionEvents = null;\n (lanes & 335544064) === lanes\n ? ((pendingTransitionTypes = claimQueuedTransitionTypes(root)),\n (spawnedLane = 10262))\n : ((pendingTransitionTypes = null), (spawnedLane = 10256));\n 0 !== (finishedWork.subtreeFlags & spawnedLane) ||\n 0 !== (finishedWork.flags & spawnedLane)\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 shouldStartViewTransition = !1;\n spawnedLane = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || spawnedLane) {\n spawnedLane = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n updatedLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n suspendedRetryLanes = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = suspendedRetryLanes),\n (ReactDOMSharedInternals.p = updatedLanes),\n (ReactSharedInternals.T = spawnedLane);\n }\n }\n pendingEffectsStatus = 1;\n shouldStartViewTransition\n ? (pendingViewTransition = startViewTransition(\n suspendedState,\n root.containerInfo,\n pendingTransitionTypes,\n flushMutationEffects,\n flushLayoutEffects,\n flushAfterMutationEffects,\n flushSpawnedWork,\n flushPassiveEffects,\n reportViewTransitionError,\n null,\n null\n ))\n : (flushMutationEffects(), flushLayoutEffects(), flushSpawnedWork());\n}\nfunction reportViewTransitionError(error) {\n if (0 !== pendingEffectsStatus) {\n var onRecoverableError = pendingEffectsRoot.onRecoverableError;\n onRecoverableError(error, { componentStack: null });\n }\n}\nfunction flushAfterMutationEffects() {\n 3 === pendingEffectsStatus &&\n ((pendingEffectsStatus = 0),\n commitAfterMutationEffectsOnFiber(pendingFinishedWork, pendingEffectsRoot),\n (pendingEffectsStatus = 4));\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\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 inUpdateViewTransition = rootViewTransitionAffected = !1;\n commitMutationEffectsOnFiber(finishedWork, root, lanes);\n lanes = selectionInformation;\n var curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = lanes.focusedElem,\n priorSelectionRange = lanes.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 var committedViewTransition = pendingViewTransition;\n pendingViewTransition = null;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors,\n passiveSubtreeMask = (lanes & 335544064) === lanes ? 10262 : 10256;\n 0 !== (finishedWork.subtreeFlags & passiveSubtreeMask) ||\n 0 !== (finishedWork.flags & passiveSubtreeMask)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n passiveSubtreeMask = root.pendingLanes;\n 0 === passiveSubtreeMask && (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 passiveSubtreeMask = 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 = passiveSubtreeMask);\n }\n }\n recoverableErrors = pendingViewTransitionEvents;\n onRecoverableError = pendingTransitionTypes;\n pendingTransitionTypes = null;\n if (\n null !== recoverableErrors &&\n ((pendingViewTransitionEvents = null),\n null === onRecoverableError && (onRecoverableError = []),\n null !== committedViewTransition)\n )\n for (\n recoverableError = 0;\n recoverableError < recoverableErrors.length;\n recoverableError++\n )\n (finishedWork = (0, recoverableErrors[recoverableError])(\n onRecoverableError\n )),\n void 0 !== finishedWork &&\n committedViewTransition.finished.finally(finishedWork);\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n passiveSubtreeMask = root.pendingLanes;\n 0 !== (lanes & 261930) && 0 !== (passiveSubtreeMask & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = null));\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 null !== pendingViewTransition &&\n (pendingViewTransition.skipTransition(), (pendingViewTransition = null));\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)\n ? prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes)\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$190 = firstScheduledRoot; null !== root$190; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$190.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$190.suspendedLanes,\n pingedLanes = root$190.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$190, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$190,\n root$190 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$190.cancelPendingCommit ||\n -1 !== root$190.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$190, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$190, JSCompiler_inline_result));\n root$190 = root$190.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 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 = new FormData(nativeEventTarget, submitter);\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 = new FormData(nativeEventTarget, submitter)),\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_1667 = 0;\n i$jscomp$inline_1667 < simpleEventPluginEvents.length;\n i$jscomp$inline_1667++\n) {\n var eventName$jscomp$inline_1668 =\n simpleEventPluginEvents[i$jscomp$inline_1667],\n domEventName$jscomp$inline_1669 =\n eventName$jscomp$inline_1668.toLowerCase(),\n capitalizedEvent$jscomp$inline_1670 =\n eventName$jscomp$inline_1668[0].toUpperCase() +\n eventName$jscomp$inline_1668.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1669,\n \"on\" + capitalizedEvent$jscomp$inline_1670\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 \"submit\":\n SyntheticEventCtor = SyntheticSubmitEvent;\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 SyntheticEventCtor =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n reactName =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n SyntheticEventCtor &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (reactName || SyntheticEventCtor) {\n reactEventType =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (SyntheticEventCtor = nativeEventTarget.ownerDocument)\n ? SyntheticEventCtor.defaultView ||\n SyntheticEventCtor.parentWindow\n : window;\n if (reactName) {\n if (\n ((SyntheticEventCtor =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (reactName = targetInst),\n (SyntheticEventCtor = SyntheticEventCtor\n ? getClosestInstanceFromNode(SyntheticEventCtor)\n : null),\n null !== SyntheticEventCtor &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(SyntheticEventCtor)),\n (inCapturePhase = SyntheticEventCtor.tag),\n SyntheticEventCtor !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n SyntheticEventCtor = null;\n } else (reactName = null), (SyntheticEventCtor = targetInst);\n if (reactName !== SyntheticEventCtor) {\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 == reactName\n ? reactEventType\n : getNodeFromInstance(reactName);\n lastHostComponent =\n null == SyntheticEventCtor\n ? reactEventType\n : getNodeFromInstance(SyntheticEventCtor);\n reactEventType = new inCapturePhase(\n _instance,\n instance + \"leave\",\n reactName,\n nativeEvent,\n nativeEventTarget\n );\n reactEventType.target = accumulateTargetOnly;\n reactEventType.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n inCapturePhase =\n reactName && SyntheticEventCtor\n ? getLowestCommonAncestor(\n reactName,\n SyntheticEventCtor,\n getParent\n )\n : null;\n null !== reactName &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactEventType,\n reactName,\n inCapturePhase,\n !1\n );\n null !== SyntheticEventCtor &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n SyntheticEventCtor,\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 }\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 if (\"string\" === typeof value)\n \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value);\n else if (\"number\" === typeof value || \"bigint\" === typeof value)\n \"body\" !== tag && setTextContent(domElement, \"\" + value);\n else return;\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 return;\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 return;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n return;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n return;\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 (null != prevValue ? prevValue.__html : void 0) !== key &&\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 \"credentialless\":\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 return;\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 else return;\n }\n viewTransitionMutationContext = !0;\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n return;\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 (null != prevValue ? prevValue.__html : void 0) !== key &&\n (domElement.innerHTML = key);\n }\n }\n break;\n case \"children\":\n if (\"string\" === typeof value) setTextContent(domElement, value);\n else if (\"number\" === typeof value || \"bigint\" === typeof value)\n setTextContent(domElement, \"\" + value);\n else return;\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n return;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n return;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n return;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n return;\n case \"innerText\":\n case \"textContent\":\n return;\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 (prevValue = key.slice(2, props ? key.length - 7 : void 0)),\n (tag = domElement[internalPropsKey] || null),\n (tag = null != tag ? tag[key] : null),\n \"function\" === typeof tag &&\n domElement.removeEventListener(prevValue, tag, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof tag &&\n null !== tag &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(prevValue, value, props);\n break a;\n }\n viewTransitionMutationContext = !0;\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n return;\n }\n viewTransitionMutationContext = !0;\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$204 = props[hasSrc];\n if (null != propValue$204)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$204;\n break;\n case \"type\":\n propValue = propValue$204;\n break;\n case \"checked\":\n checked = propValue$204;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$204;\n break;\n case \"value\":\n propKey = propValue$204;\n break;\n case \"defaultValue\":\n defaultValue = propValue$204;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$204)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$204, 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$204 in props)\n props.hasOwnProperty(propValue$204) &&\n ((hasSrc = props[propValue$204]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$204,\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}\nvar emptyProps = {};\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$221 in nextProps) {\n var propKey = nextProps[propKey$221];\n lastProp = lastProps[propKey$221];\n if (\n nextProps.hasOwnProperty(propKey$221) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$221) {\n case \"type\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n type = propKey;\n break;\n case \"name\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n name = propKey;\n break;\n case \"checked\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n checked = propKey;\n break;\n case \"defaultChecked\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n defaultChecked = propKey;\n break;\n case \"value\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n value = propKey;\n break;\n case \"defaultValue\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\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$221,\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$221 = 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 type !== lastDefaultValue && (viewTransitionMutationContext = !0);\n propKey$221 = type;\n break;\n case \"defaultValue\":\n type !== lastDefaultValue && (viewTransitionMutationContext = !0);\n defaultValue = type;\n break;\n case \"multiple\":\n type !== lastDefaultValue && (viewTransitionMutationContext = !0),\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$221\n ? updateOptions(domElement, !!lastProps, propKey$221, !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$221 = 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 name !== type && (viewTransitionMutationContext = !0);\n propKey$221 = name;\n break;\n case \"defaultValue\":\n name !== type && (viewTransitionMutationContext = !0);\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$221, propKey);\n return;\n case \"option\":\n for (var propKey$237 in lastProps)\n if (\n ((propKey$221 = lastProps[propKey$237]),\n lastProps.hasOwnProperty(propKey$237) &&\n null != propKey$221 &&\n !nextProps.hasOwnProperty(propKey$237))\n )\n switch (propKey$237) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$237,\n null,\n nextProps,\n propKey$221\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$221 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$221 !== propKey &&\n (null != propKey$221 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n propKey$221 !== propKey && (viewTransitionMutationContext = !0);\n domElement.selected =\n propKey$221 &&\n \"function\" !== typeof propKey$221 &&\n \"symbol\" !== typeof propKey$221;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$221,\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$242 in lastProps)\n (propKey$221 = lastProps[propKey$242]),\n lastProps.hasOwnProperty(propKey$242) &&\n null != propKey$221 &&\n !nextProps.hasOwnProperty(propKey$242) &&\n setProp(domElement, tag, propKey$242, null, nextProps, propKey$221);\n for (checked in nextProps)\n if (\n ((propKey$221 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$221 !== propKey &&\n (null != propKey$221 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$221)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$221,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$247 in lastProps)\n (propKey$221 = lastProps[propKey$247]),\n lastProps.hasOwnProperty(propKey$247) &&\n void 0 !== propKey$221 &&\n !nextProps.hasOwnProperty(propKey$247) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$247,\n void 0,\n nextProps,\n propKey$221\n );\n for (defaultChecked in nextProps)\n (propKey$221 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$221 === propKey ||\n (void 0 === propKey$221 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$221,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$252 in lastProps)\n (propKey$221 = lastProps[propKey$252]),\n lastProps.hasOwnProperty(propKey$252) &&\n null != propKey$221 &&\n !nextProps.hasOwnProperty(propKey$252) &&\n setProp(domElement, tag, propKey$252, null, nextProps, propKey$221);\n for (lastProp in nextProps)\n (propKey$221 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$221 === propKey ||\n (null == propKey$221 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$221, 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 createHoistableInstance(\n type,\n props,\n rootContainerInstance,\n internalInstanceHandle\n) {\n rootContainerInstance = getOwnerDocumentFromRootContainer(\n rootContainerInstance\n ).createElement(type);\n rootContainerInstance[internalInstanceKey] = internalInstanceHandle;\n rootContainerInstance[internalPropsKey] = props;\n setInitialProperties(rootContainerInstance, type, props);\n markNodeAsHoistable(rootContainerInstance);\n return rootContainerInstance;\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 localRequestAnimationFrame =\n \"function\" === typeof requestAnimationFrame\n ? requestAnimationFrame\n : scheduleTimeout,\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 clearSingletonPreambleContribution(\n parentInstance.ownerDocument.documentElement\n );\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n clearSingletonPreambleContribution(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 clearSingletonPreambleContribution(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 applyViewTransitionName(instance, name, className) {\n name = CSS.escape(name) !== name ? \"r-\" + btoa(name).replace(/=/g, \"\") : name;\n instance.style.viewTransitionName = name;\n null != className && (instance.style.viewTransitionClass = className);\n className = getComputedStyle(instance);\n if (\"inline\" === className.display) {\n name = instance.getClientRects();\n if (1 === name.length) var JSCompiler_inline_result = 1;\n else\n for (var i = (JSCompiler_inline_result = 0); i < name.length; i++) {\n var rect = name[i];\n 0 < rect.width && 0 < rect.height && JSCompiler_inline_result++;\n }\n 1 === JSCompiler_inline_result &&\n ((instance = instance.style),\n (instance.display = 1 === name.length ? \"inline-block\" : \"block\"),\n (instance.marginTop = \"-\" + className.paddingTop),\n (instance.marginBottom = \"-\" + className.paddingBottom));\n }\n}\nfunction restoreViewTransitionName(instance, props) {\n instance = instance.style;\n props = props.style;\n var viewTransitionName =\n null != props\n ? props.hasOwnProperty(\"viewTransitionName\")\n ? props.viewTransitionName\n : props.hasOwnProperty(\"view-transition-name\")\n ? props[\"view-transition-name\"]\n : null\n : null;\n instance.viewTransitionName =\n null == viewTransitionName || \"boolean\" === typeof viewTransitionName\n ? \"\"\n : (\"\" + viewTransitionName).trim();\n viewTransitionName =\n null != props\n ? props.hasOwnProperty(\"viewTransitionClass\")\n ? props.viewTransitionClass\n : props.hasOwnProperty(\"view-transition-class\")\n ? props[\"view-transition-class\"]\n : null\n : null;\n instance.viewTransitionClass =\n null == viewTransitionName || \"boolean\" === typeof viewTransitionName\n ? \"\"\n : (\"\" + viewTransitionName).trim();\n \"inline-block\" === instance.display &&\n (null == props\n ? (instance.display = instance.margin = \"\")\n : ((viewTransitionName = props.display),\n (instance.display =\n null == viewTransitionName || \"boolean\" === typeof viewTransitionName\n ? \"\"\n : viewTransitionName),\n (viewTransitionName = props.margin),\n null != viewTransitionName\n ? (instance.margin = viewTransitionName)\n : ((viewTransitionName = props.hasOwnProperty(\"marginTop\")\n ? props.marginTop\n : props[\"margin-top\"]),\n (instance.marginTop =\n null == viewTransitionName ||\n \"boolean\" === typeof viewTransitionName\n ? \"\"\n : viewTransitionName),\n (props = props.hasOwnProperty(\"marginBottom\")\n ? props.marginBottom\n : props[\"margin-bottom\"]),\n (instance.marginBottom =\n null == props || \"boolean\" === typeof props ? \"\" : props))));\n}\nfunction createMeasurement(rect, computedStyle, element) {\n element = element.ownerDocument.defaultView;\n return {\n rect: rect,\n abs:\n \"absolute\" === computedStyle.position ||\n \"fixed\" === computedStyle.position,\n clip:\n \"none\" !== computedStyle.clipPath ||\n \"visible\" !== computedStyle.overflow ||\n \"none\" !== computedStyle.filter ||\n \"none\" !== computedStyle.mask ||\n \"none\" !== computedStyle.mask ||\n \"0px\" !== computedStyle.borderRadius,\n view:\n 0 <= rect.bottom &&\n 0 <= rect.right &&\n rect.top <= element.innerHeight &&\n rect.left <= element.innerWidth\n };\n}\nfunction measureInstance(instance) {\n var rect = instance.getBoundingClientRect(),\n computedStyle = getComputedStyle(instance);\n return createMeasurement(rect, computedStyle, instance);\n}\nfunction measureClonedInstance(instance) {\n var measuredRect = instance.getBoundingClientRect();\n measuredRect = new DOMRect(\n measuredRect.x + 2e4,\n measuredRect.y + 2e4,\n measuredRect.width,\n measuredRect.height\n );\n var computedStyle = getComputedStyle(instance);\n return createMeasurement(measuredRect, computedStyle, instance);\n}\nfunction forceLayout(ownerDocument) {\n return ownerDocument.documentElement.clientHeight;\n}\nfunction waitForImageToLoad(resolve) {\n this.addEventListener(\"load\", resolve);\n this.addEventListener(\"error\", resolve);\n}\nfunction startViewTransition(\n suspendedState,\n rootContainer,\n transitionTypes,\n mutationCallback,\n layoutCallback,\n afterMutationCallback,\n spawnedWorkCallback,\n passiveCallback,\n errorCallback\n) {\n var ownerDocument =\n 9 === rootContainer.nodeType ? rootContainer : rootContainer.ownerDocument;\n try {\n var transition = ownerDocument.startViewTransition({\n update: function () {\n var ownerWindow = ownerDocument.defaultView,\n pendingNavigation =\n ownerWindow.navigation && ownerWindow.navigation.transition,\n previousFontLoadingStatus = ownerDocument.fonts.status;\n mutationCallback();\n var blockingPromises = [];\n \"loaded\" === previousFontLoadingStatus &&\n (forceLayout(ownerDocument),\n \"loading\" === ownerDocument.fonts.status &&\n blockingPromises.push(ownerDocument.fonts.ready));\n previousFontLoadingStatus = blockingPromises.length;\n if (null !== suspendedState)\n for (\n var suspenseyImages = suspendedState.suspenseyImages,\n imgBytes = 0,\n i = 0;\n i < suspenseyImages.length;\n i++\n ) {\n var suspenseyImage = suspenseyImages[i];\n if (!suspenseyImage.complete) {\n var rect = suspenseyImage.getBoundingClientRect();\n if (\n 0 < rect.bottom &&\n 0 < rect.right &&\n rect.top < ownerWindow.innerHeight &&\n rect.left < ownerWindow.innerWidth\n ) {\n imgBytes += estimateImageBytes(suspenseyImage);\n if (imgBytes > estimatedBytesWithinLimit) {\n blockingPromises.length = previousFontLoadingStatus;\n break;\n }\n suspenseyImage = new Promise(\n waitForImageToLoad.bind(suspenseyImage)\n );\n blockingPromises.push(suspenseyImage);\n }\n }\n }\n if (0 < blockingPromises.length)\n return (\n (ownerWindow = Promise.race([\n Promise.all(blockingPromises),\n new Promise(function (resolve) {\n return setTimeout(resolve, 500);\n })\n ]).then(layoutCallback, layoutCallback)),\n (pendingNavigation\n ? Promise.allSettled([pendingNavigation.finished, ownerWindow])\n : ownerWindow\n ).then(afterMutationCallback, afterMutationCallback)\n );\n layoutCallback();\n if (pendingNavigation)\n return pendingNavigation.finished.then(\n afterMutationCallback,\n afterMutationCallback\n );\n afterMutationCallback();\n },\n types: transitionTypes\n });\n ownerDocument.__reactViewTransition = transition;\n var viewTransitionAnimations = [];\n transition.ready.then(\n function () {\n for (\n var animations = ownerDocument.documentElement.getAnimations({\n subtree: !0\n }),\n i = 0;\n i < animations.length;\n i++\n ) {\n var animation = animations[i],\n effect = animation.effect,\n pseudoElement = effect.pseudoElement;\n if (\n null != pseudoElement &&\n pseudoElement.startsWith(\"::view-transition\")\n ) {\n viewTransitionAnimations.push(animation);\n animation = effect.getKeyframes();\n for (\n var height = (pseudoElement = void 0),\n unchangedDimensions = !0,\n j = 0;\n j < animation.length;\n j++\n ) {\n var keyframe = animation[j],\n w = keyframe.width;\n if (void 0 === pseudoElement) pseudoElement = w;\n else if (pseudoElement !== w) {\n unchangedDimensions = !1;\n break;\n }\n w = keyframe.height;\n if (void 0 === height) height = w;\n else if (height !== w) {\n unchangedDimensions = !1;\n break;\n }\n delete keyframe.width;\n delete keyframe.height;\n \"none\" === keyframe.transform && delete keyframe.transform;\n }\n unchangedDimensions &&\n void 0 !== pseudoElement &&\n void 0 !== height &&\n (effect.setKeyframes(animation),\n (unchangedDimensions = getComputedStyle(\n effect.target,\n effect.pseudoElement\n )),\n unchangedDimensions.width !== pseudoElement ||\n unchangedDimensions.height !== height) &&\n ((unchangedDimensions = animation[0]),\n (unchangedDimensions.width = pseudoElement),\n (unchangedDimensions.height = height),\n (unchangedDimensions = animation[animation.length - 1]),\n (unchangedDimensions.width = pseudoElement),\n (unchangedDimensions.height = height),\n effect.setKeyframes(animation));\n }\n }\n spawnedWorkCallback();\n },\n function (error) {\n ownerDocument.__reactViewTransition === transition &&\n (ownerDocument.__reactViewTransition = null);\n try {\n if (\"object\" === typeof error && null !== error)\n switch (error.name) {\n case \"InvalidStateError\":\n if (\n \"View transition was skipped because document visibility state is hidden.\" ===\n error.message ||\n \"Skipping view transition because document visibility state has become hidden.\" ===\n error.message ||\n \"Skipping view transition because viewport size changed.\" ===\n error.message ||\n \"Transition was aborted because of invalid state\" ===\n error.message\n )\n error = null;\n }\n null !== error && errorCallback(error);\n } finally {\n mutationCallback(), layoutCallback(), spawnedWorkCallback();\n }\n }\n );\n transition.finished.finally(function () {\n for (var i = 0; i < viewTransitionAnimations.length; i++)\n viewTransitionAnimations[i].cancel();\n ownerDocument.__reactViewTransition === transition &&\n (ownerDocument.__reactViewTransition = null);\n passiveCallback();\n });\n return transition;\n } catch (x) {\n return mutationCallback(), layoutCallback(), spawnedWorkCallback(), null;\n }\n}\nfunction ViewTransitionPseudoElement(pseudo, name) {\n this._scope = document.documentElement;\n this._selector = \"::view-transition-\" + pseudo + \"(\" + name + \")\";\n}\nViewTransitionPseudoElement.prototype.animate = function (keyframes, options) {\n options =\n \"number\" === typeof options ? { duration: options } : assign({}, options);\n options.pseudoElement = this._selector;\n return this._scope.animate(keyframes, options);\n};\nViewTransitionPseudoElement.prototype.getAnimations = function () {\n for (\n var scope = this._scope,\n selector = this._selector,\n animations = scope.getAnimations({ subtree: !0 }),\n result = [],\n i = 0;\n i < animations.length;\n i++\n ) {\n var effect = animations[i].effect;\n null !== effect &&\n effect.target === scope &&\n effect.pseudoElement === selector &&\n result.push(animations[i]);\n }\n return result;\n};\nViewTransitionPseudoElement.prototype.getComputedStyle = function () {\n return getComputedStyle(this._scope, this._selector);\n};\nfunction createViewTransitionInstance(name) {\n return {\n name: name,\n group: new ViewTransitionPseudoElement(\"group\", name),\n imagePair: new ViewTransitionPseudoElement(\"image-pair\", name),\n old: new ViewTransitionPseudoElement(\"old\", name),\n new: new ViewTransitionPseudoElement(\"new\", name)\n };\n}\nfunction FragmentInstance(fragmentFiber) {\n this._fragmentFiber = fragmentFiber;\n this._observers = this._eventListeners = null;\n}\nFragmentInstance.prototype.addEventListener = function (\n type,\n listener,\n optionsOrUseCapture\n) {\n var signal = null,\n cleanup = null;\n if (\n null != optionsOrUseCapture &&\n \"boolean\" !== typeof optionsOrUseCapture &&\n ((signal = optionsOrUseCapture.signal || null),\n null !== signal && signal.aborted)\n )\n return;\n null === this._eventListeners && (this._eventListeners = []);\n var listeners = this._eventListeners;\n if (\n -1 === indexOfEventListener(listeners, type, listener, optionsOrUseCapture)\n ) {\n var fragmentInstance = this,\n attachedListener = listener;\n null != optionsOrUseCapture &&\n \"boolean\" !== typeof optionsOrUseCapture &&\n !0 === optionsOrUseCapture.once &&\n (attachedListener = function (event) {\n fragmentInstance.removeEventListener(\n type,\n listener,\n optionsOrUseCapture\n );\n \"function\" === typeof listener\n ? listener.call(this, event)\n : listener.handleEvent(event);\n });\n null !== signal &&\n ((cleanup = fragmentInstance.removeEventListener.bind(\n fragmentInstance,\n type,\n listener,\n optionsOrUseCapture\n )),\n signal.addEventListener(\"abort\", cleanup, { once: !0 }),\n (cleanup = signal.removeEventListener.bind(signal, \"abort\", cleanup)));\n signal = getAttachOptions(optionsOrUseCapture);\n listeners.push({\n type: type,\n listener: listener,\n optionsOrUseCapture: optionsOrUseCapture,\n attachedListener: attachedListener,\n cleanup: cleanup\n });\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n addEventListenerToChild,\n type,\n attachedListener,\n signal\n );\n }\n this._eventListeners = listeners;\n};\nfunction addEventListenerToChild(child, type, listener, optionsOrUseCapture) {\n getInstanceFromHostFiber(child).addEventListener(\n type,\n listener,\n optionsOrUseCapture\n );\n return !1;\n}\nFragmentInstance.prototype.removeEventListener = function (\n type,\n listener,\n optionsOrUseCapture\n) {\n var listeners = this._eventListeners;\n if (\n null !== listeners &&\n ((listener = indexOfEventListener(\n listeners,\n type,\n listener,\n optionsOrUseCapture\n )),\n -1 !== listener)\n ) {\n var _listeners$index = listeners[listener];\n optionsOrUseCapture = _listeners$index.attachedListener;\n var cleanup = _listeners$index.cleanup;\n _listeners$index = getAttachOptions(_listeners$index.optionsOrUseCapture);\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n removeEventListenerFromChild,\n type,\n optionsOrUseCapture,\n _listeners$index\n );\n listeners.splice(listener, 1);\n null !== cleanup && cleanup();\n }\n};\nfunction removeEventListenerFromChild(\n child,\n type,\n listener,\n optionsOrUseCapture\n) {\n getInstanceFromHostFiber(child).removeEventListener(\n type,\n listener,\n optionsOrUseCapture\n );\n return !1;\n}\nfunction getAttachOptions(opts) {\n return null != opts &&\n \"boolean\" !== typeof opts &&\n (!0 === opts.once || opts.signal instanceof AbortSignal)\n ? { capture: opts.capture, passive: opts.passive }\n : opts;\n}\nfunction normalizeListenerOptions(opts) {\n return null == opts\n ? \"c=0\"\n : \"boolean\" === typeof opts\n ? \"c=\" + (opts ? \"1\" : \"0\")\n : \"c=\" + (opts.capture ? \"1\" : \"0\");\n}\nfunction indexOfEventListener(\n eventListeners,\n type,\n listener,\n optionsOrUseCapture\n) {\n if (0 === eventListeners.length) return -1;\n optionsOrUseCapture = normalizeListenerOptions(optionsOrUseCapture);\n for (var i = 0; i < eventListeners.length; i++) {\n var item = eventListeners[i];\n if (\n item.type === type &&\n item.listener === listener &&\n normalizeListenerOptions(item.optionsOrUseCapture) === optionsOrUseCapture\n )\n return i;\n }\n return -1;\n}\nFragmentInstance.prototype.dispatchEvent = function (event) {\n var parentHostFiber = getFragmentParentInstanceOrContainerFiber(\n this._fragmentFiber\n );\n if (null === parentHostFiber) return !0;\n parentHostFiber = getInstanceFromHostFiber(parentHostFiber);\n var eventListeners = this._eventListeners;\n if (\n (null !== eventListeners && 0 < eventListeners.length) ||\n !event.bubbles\n ) {\n var temp =\n 9 === parentHostFiber.nodeType\n ? parentHostFiber.createComment(\"\")\n : document.createTextNode(\"\");\n if (eventListeners)\n for (var i = 0; i < eventListeners.length; i++) {\n var _eventListeners$i = eventListeners[i];\n temp.addEventListener(\n _eventListeners$i.type,\n _eventListeners$i.attachedListener,\n getAttachOptions(_eventListeners$i.optionsOrUseCapture)\n );\n }\n parentHostFiber.appendChild(temp);\n event = temp.dispatchEvent(event);\n if (eventListeners)\n for (i = 0; i < eventListeners.length; i++)\n (_eventListeners$i = eventListeners[i]),\n temp.removeEventListener(\n _eventListeners$i.type,\n _eventListeners$i.attachedListener,\n getAttachOptions(_eventListeners$i.optionsOrUseCapture)\n );\n parentHostFiber.removeChild(temp);\n return event;\n }\n return parentHostFiber.dispatchEvent(event);\n};\nFragmentInstance.prototype.focus = function (focusOptions) {\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !0,\n setFocusOnFiberIfFocusable,\n focusOptions,\n void 0,\n void 0\n );\n};\nfunction setFocusOnFiberIfFocusable(fiber, focusOptions) {\n if (6 === fiber.tag) return !1;\n fiber = getInstanceFromHostFiber(fiber);\n return setFocusIfFocusable(fiber, focusOptions);\n}\nFragmentInstance.prototype.focusLast = function (focusOptions) {\n var children = [];\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !0,\n collectChildren,\n children,\n void 0,\n void 0\n );\n for (\n var i = children.length - 1;\n 0 <= i && !setFocusOnFiberIfFocusable(children[i], focusOptions);\n i--\n );\n};\nfunction collectChildren(child, collection) {\n collection.push(child);\n return !1;\n}\nFragmentInstance.prototype.blur = function () {\n var parentHostFiber = getFragmentParentInstanceOrContainerFiber(\n this._fragmentFiber\n );\n null !== parentHostFiber &&\n ((parentHostFiber = getInstanceFromHostFiber(parentHostFiber)),\n (parentHostFiber =\n getOwnerDocumentFromRootContainer(parentHostFiber).activeElement),\n null !== parentHostFiber &&\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n blurActiveElementWithinFragment,\n parentHostFiber,\n void 0,\n void 0\n ));\n};\nfunction blurActiveElementWithinFragment(child, activeElement) {\n if (6 === child.tag) return !1;\n child = getInstanceFromHostFiber(child);\n return child === activeElement || child.contains(activeElement)\n ? (activeElement.blur(), !0)\n : !1;\n}\nFragmentInstance.prototype.observeUsing = function (observer) {\n null === this._observers && (this._observers = new Set());\n this._observers.add(observer);\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n observeChild,\n observer,\n void 0,\n void 0\n );\n};\nfunction observeChild(child, observer) {\n if (6 === child.tag) return !1;\n child = getInstanceFromHostFiber(child);\n observer.observe(child);\n return !1;\n}\nFragmentInstance.prototype.unobserveUsing = function (observer) {\n var observers = this._observers;\n if (null !== observers && observers.has(observer)) {\n observers.delete(observer);\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n unobserveChild,\n observer,\n void 0,\n void 0\n );\n for (\n var i = (observers = 0);\n i < pendingIntersectionUnobserves.length;\n i++\n ) {\n var pending = pendingIntersectionUnobserves[i];\n pending.fragmentInstance === this && pending.observer === observer\n ? observer.unobserve(pending.instance)\n : (pendingIntersectionUnobserves[observers++] = pending);\n }\n pendingIntersectionUnobserves.length = observers;\n }\n};\nfunction unobserveChild(child, observer) {\n if (6 === child.tag) return !1;\n child = getInstanceFromHostFiber(child);\n observer.unobserve(child);\n return !1;\n}\nvar pendingIntersectionUnobserves = [],\n intersectionUnobserveScheduled = !1;\nfunction schedulePendingIntersectionUnobserve(\n fragmentInstance,\n observer,\n instance\n) {\n pendingIntersectionUnobserves.push({\n fragmentInstance: fragmentInstance,\n observer: observer,\n instance: instance\n });\n intersectionUnobserveScheduled ||\n ((intersectionUnobserveScheduled = !0),\n requestPostPaintCallback(function () {\n intersectionUnobserveScheduled = !1;\n var pending = pendingIntersectionUnobserves;\n pendingIntersectionUnobserves = [];\n for (var i = 0; i < pending.length; i++) {\n var item = pending[i];\n item.observer.unobserve(item.instance);\n }\n }));\n}\nFragmentInstance.prototype.getClientRects = function () {\n var rects = [];\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n collectClientRects,\n rects,\n void 0,\n void 0\n );\n return rects;\n};\nfunction collectClientRects(child, rects) {\n if (6 === child.tag) {\n child = child.stateNode;\n var range = child.ownerDocument.createRange();\n range.selectNodeContents(child);\n rects.push.apply(rects, range.getClientRects());\n } else\n (child = getInstanceFromHostFiber(child)),\n rects.push.apply(rects, child.getClientRects());\n return !1;\n}\nFragmentInstance.prototype.getRootNode = function (getRootNodeOptions) {\n var parentHostFiber = getFragmentParentInstanceOrContainerFiber(\n this._fragmentFiber\n );\n return null === parentHostFiber\n ? this\n : getInstanceFromHostFiber(parentHostFiber).getRootNode(getRootNodeOptions);\n};\nFragmentInstance.prototype.compareDocumentPosition = function (otherNode) {\n var parentHostFiber = getFragmentParentInstanceOrContainerFiber(\n this._fragmentFiber\n );\n if (null === parentHostFiber) return Node.DOCUMENT_POSITION_DISCONNECTED;\n var children = [];\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n collectChildren,\n children,\n void 0,\n void 0\n );\n var parentHostInstance = getInstanceFromHostFiber(parentHostFiber);\n if (0 === children.length) {\n children = parentHostInstance;\n if (fiberIsPortaledIntoHost(this._fragmentFiber)) {\n a: {\n for (\n parentHostFiber = this._fragmentFiber.return;\n null !== parentHostFiber;\n\n ) {\n if (4 === parentHostFiber.tag) {\n parentHostFiber = parentHostFiber.stateNode.containerInfo;\n break a;\n }\n if (\n 3 === parentHostFiber.tag ||\n 5 === parentHostFiber.tag ||\n 27 === parentHostFiber.tag\n )\n break;\n parentHostFiber = parentHostFiber.return;\n }\n parentHostFiber = null;\n }\n null != parentHostFiber && (children = parentHostFiber);\n }\n parentHostFiber = this._fragmentFiber;\n var result = (parentHostInstance =\n children.compareDocumentPosition(otherNode));\n children === otherNode\n ? (result = Node.DOCUMENT_POSITION_CONTAINS)\n : parentHostInstance & Node.DOCUMENT_POSITION_CONTAINED_BY &&\n ((children =\n getFragmentInstanceOrTextInstanceSiblings(parentHostFiber)[1]),\n null === children\n ? (result = Node.DOCUMENT_POSITION_PRECEDING)\n : ((otherNode =\n getInstanceFromHostFiber(children).compareDocumentPosition(\n otherNode\n )),\n (result =\n 0 === otherNode || otherNode & Node.DOCUMENT_POSITION_FOLLOWING\n ? Node.DOCUMENT_POSITION_FOLLOWING\n : Node.DOCUMENT_POSITION_PRECEDING)));\n return (result |= Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC);\n }\n parentHostFiber = getInstanceFromHostFiber(children[0]);\n result = getInstanceFromHostFiber(children[children.length - 1]);\n var parentHostInstanceFromDOM = fiberIsPortaledIntoHost(this._fragmentFiber)\n ? parentHostFiber.parentElement\n : parentHostInstance;\n if (null == parentHostInstanceFromDOM)\n return Node.DOCUMENT_POSITION_DISCONNECTED;\n parentHostInstance =\n parentHostInstanceFromDOM.compareDocumentPosition(parentHostFiber) &\n Node.DOCUMENT_POSITION_CONTAINED_BY;\n parentHostInstanceFromDOM =\n parentHostInstanceFromDOM.compareDocumentPosition(result) &\n Node.DOCUMENT_POSITION_CONTAINED_BY;\n var firstResult = parentHostFiber.compareDocumentPosition(otherNode),\n lastResult = result.compareDocumentPosition(otherNode),\n otherNodeIsWithinFirstOrLastChild =\n firstResult & Node.DOCUMENT_POSITION_CONTAINED_BY ||\n lastResult & Node.DOCUMENT_POSITION_CONTAINED_BY;\n lastResult =\n parentHostInstance &&\n parentHostInstanceFromDOM &&\n firstResult & Node.DOCUMENT_POSITION_FOLLOWING &&\n lastResult & Node.DOCUMENT_POSITION_PRECEDING;\n parentHostFiber =\n (parentHostInstance && parentHostFiber === otherNode) ||\n (parentHostInstanceFromDOM && result === otherNode) ||\n otherNodeIsWithinFirstOrLastChild ||\n lastResult\n ? Node.DOCUMENT_POSITION_CONTAINED_BY\n : (!parentHostInstance && parentHostFiber === otherNode) ||\n (!parentHostInstanceFromDOM && result === otherNode)\n ? Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\n : firstResult;\n return parentHostFiber & Node.DOCUMENT_POSITION_DISCONNECTED ||\n parentHostFiber & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC ||\n validateDocumentPositionWithFiberTree(\n parentHostFiber,\n this._fragmentFiber,\n children[0],\n children[children.length - 1],\n otherNode\n )\n ? parentHostFiber\n : Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC;\n};\nfunction validateDocumentPositionWithFiberTree(\n documentPosition,\n fragmentFiber,\n precedingBoundaryFiber,\n followingBoundaryFiber,\n otherNode\n) {\n var otherFiber = getClosestInstanceFromNode(otherNode);\n if (documentPosition & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n if ((precedingBoundaryFiber = !!otherFiber))\n a: {\n for (; null !== otherFiber; ) {\n if (\n 7 === otherFiber.tag &&\n (otherFiber === fragmentFiber ||\n otherFiber.alternate === fragmentFiber)\n ) {\n precedingBoundaryFiber = !0;\n break a;\n }\n otherFiber = otherFiber.return;\n }\n precedingBoundaryFiber = !1;\n }\n return precedingBoundaryFiber;\n }\n if (documentPosition & Node.DOCUMENT_POSITION_CONTAINS) {\n if (null === otherFiber)\n return (\n (otherFiber = otherNode.ownerDocument),\n otherNode === otherFiber ||\n otherNode === otherFiber.documentElement ||\n otherNode === otherFiber.body\n );\n a: {\n otherFiber = fragmentFiber;\n for (\n fragmentFiber =\n getFragmentParentInstanceOrContainerFiber(fragmentFiber);\n null !== otherFiber;\n\n ) {\n if (\n !(\n (5 !== otherFiber.tag &&\n 3 !== otherFiber.tag &&\n 27 !== otherFiber.tag) ||\n (otherFiber !== fragmentFiber &&\n otherFiber.alternate !== fragmentFiber)\n )\n ) {\n otherFiber = !0;\n break a;\n }\n otherFiber = otherFiber.return;\n }\n otherFiber = !1;\n }\n return otherFiber;\n }\n return documentPosition & Node.DOCUMENT_POSITION_PRECEDING\n ? ((fragmentFiber = !!otherFiber) &&\n !(fragmentFiber = otherFiber === precedingBoundaryFiber) &&\n ((fragmentFiber = getLowestCommonAncestor(\n precedingBoundaryFiber,\n otherFiber,\n getParentForFragmentAncestors\n )),\n null === fragmentFiber\n ? (fragmentFiber = !1)\n : (traverseVisibleInstancesAndTextInstances(\n fragmentFiber,\n !0,\n isFiberPrecedingCheck,\n otherFiber,\n precedingBoundaryFiber\n ),\n (otherFiber = searchTarget),\n (searchTarget = null),\n (fragmentFiber = null !== otherFiber))),\n fragmentFiber)\n : documentPosition & Node.DOCUMENT_POSITION_FOLLOWING\n ? ((fragmentFiber = !!otherFiber) &&\n !(fragmentFiber = otherFiber === followingBoundaryFiber) &&\n ((fragmentFiber = getLowestCommonAncestor(\n followingBoundaryFiber,\n otherFiber,\n getParentForFragmentAncestors\n )),\n null === fragmentFiber\n ? (fragmentFiber = !1)\n : (traverseVisibleInstancesAndTextInstances(\n fragmentFiber,\n !0,\n isFiberFollowingCheck,\n otherFiber,\n followingBoundaryFiber\n ),\n (otherFiber = searchTarget),\n (searchBoundary = searchTarget = null),\n (fragmentFiber = null !== otherFiber))),\n fragmentFiber)\n : !1;\n}\nfunction scrollTextNodeIntoView(textNode, resolvedAlignToTop) {\n var range = textNode.ownerDocument.createRange();\n range.selectNodeContents(textNode);\n textNode = range.getBoundingClientRect();\n window.scrollTo(\n window.scrollX + textNode.left,\n resolvedAlignToTop\n ? window.scrollY + textNode.top\n : window.scrollY + textNode.bottom - window.innerHeight\n );\n}\nFragmentInstance.prototype.scrollIntoView = function (alignToTop) {\n if (\"object\" === typeof alignToTop) throw Error(formatProdErrorMessage(566));\n var children = [];\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n collectChildren,\n children,\n void 0,\n void 0\n );\n var resolvedAlignToTop = !1 !== alignToTop;\n if (0 === children.length) {\n var hostSiblings = getFragmentInstanceOrTextInstanceSiblings(\n this._fragmentFiber\n );\n hostSiblings = resolvedAlignToTop\n ? hostSiblings[1] ||\n hostSiblings[0] ||\n getFragmentParentInstanceOrContainerFiber(this._fragmentFiber)\n : hostSiblings[0] || hostSiblings[1];\n if (null === hostSiblings) return;\n if (6 === hostSiblings.tag) {\n alignToTop = getInstanceFromHostFiber(hostSiblings);\n scrollTextNodeIntoView(alignToTop, resolvedAlignToTop);\n return;\n }\n hostSiblings = getInstanceFromHostFiber(hostSiblings);\n if (9 !== hostSiblings.nodeType) {\n if (11 === hostSiblings.nodeType) {\n resolvedAlignToTop = \"host\" in hostSiblings ? hostSiblings.host : null;\n null !== resolvedAlignToTop &&\n resolvedAlignToTop.scrollIntoView(alignToTop);\n return;\n }\n hostSiblings.scrollIntoView(alignToTop);\n }\n }\n for (\n hostSiblings = resolvedAlignToTop ? children.length - 1 : 0;\n hostSiblings !== (resolvedAlignToTop ? -1 : children.length);\n\n ) {\n var child = children[hostSiblings];\n 6 === child.tag\n ? ((child = getInstanceFromHostFiber(child)),\n scrollTextNodeIntoView(child, resolvedAlignToTop))\n : getInstanceFromHostFiber(child).scrollIntoView(alignToTop);\n hostSiblings += resolvedAlignToTop ? -1 : 1;\n }\n};\nfunction addFragmentHandleToFiber(child, fragmentInstance) {\n child = getInstanceFromHostFiber(child);\n addFragmentHandleToInstance(child, fragmentInstance);\n return !1;\n}\nfunction addFragmentHandleToInstance(instance, fragmentInstance) {\n null == instance.reactFragments && (instance.reactFragments = new Set());\n instance.reactFragments.add(fragmentInstance);\n}\nfunction commitNewChildToFragmentInstance(childInstance, fragmentInstance) {\n var eventListeners = fragmentInstance._eventListeners;\n if (null !== eventListeners)\n for (var i$jscomp$0 = 0; i$jscomp$0 < eventListeners.length; i$jscomp$0++) {\n var _eventListeners$i3 = eventListeners[i$jscomp$0];\n childInstance.addEventListener(\n _eventListeners$i3.type,\n _eventListeners$i3.attachedListener,\n getAttachOptions(_eventListeners$i3.optionsOrUseCapture)\n );\n }\n 3 !== childInstance.nodeType &&\n ((eventListeners = fragmentInstance._observers),\n null !== eventListeners &&\n eventListeners.forEach(function (observer) {\n for (\n var writeIdx = 0, i = 0;\n i < pendingIntersectionUnobserves.length;\n i++\n ) {\n var pending = pendingIntersectionUnobserves[i];\n if (\n pending.fragmentInstance !== fragmentInstance ||\n pending.observer !== observer ||\n pending.instance !== childInstance\n )\n pendingIntersectionUnobserves[writeIdx++] = pending;\n }\n pendingIntersectionUnobserves.length = writeIdx;\n observer.observe(childInstance);\n }),\n addFragmentHandleToInstance(childInstance, fragmentInstance));\n}\nfunction deleteChildFromFragmentInstance(childInstance, fragmentInstance) {\n var eventListeners = fragmentInstance._eventListeners;\n if (null !== eventListeners)\n for (var i = 0; i < eventListeners.length; i++) {\n var _eventListeners$i4 = eventListeners[i];\n childInstance.removeEventListener(\n _eventListeners$i4.type,\n _eventListeners$i4.attachedListener,\n getAttachOptions(_eventListeners$i4.optionsOrUseCapture)\n );\n }\n 3 !== childInstance.nodeType &&\n ((eventListeners = fragmentInstance._observers),\n null !== eventListeners &&\n eventListeners.forEach(function (observer) {\n \"string\" === typeof observer.rootMargin\n ? schedulePendingIntersectionUnobserve(\n fragmentInstance,\n observer,\n childInstance\n )\n : observer.unobserve(childInstance);\n }),\n null != childInstance.reactFragments &&\n childInstance.reactFragments.delete(fragmentInstance));\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 setFocusIfFocusable(node, focusOptions) {\n function handleFocus() {\n didFocus = !0;\n }\n if (node.ownerDocument.activeElement === node) return !0;\n var didFocus = !1;\n try {\n node.ownerDocument.addEventListener(\"focus\", handleFocus, !0),\n (node.focus || HTMLElement.prototype.focus).call(node, focusOptions);\n } finally {\n node.ownerDocument.removeEventListener(\"focus\", handleFocus, !0);\n }\n return didFocus;\n}\nfunction requestPostPaintCallback(callback) {\n localRequestAnimationFrame(function () {\n localRequestAnimationFrame(function (time) {\n return callback(time);\n });\n });\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, type, props) {\n for (var propKey in props) {\n var propValue = props[propKey];\n props.hasOwnProperty(propKey) &&\n null != propValue &&\n setProp(instance, type, propKey, null, emptyProps, propValue);\n }\n null != props.dangerouslySetInnerHTML && (instance.textContent = \"\");\n instance.onclick === noop$1 && (instance.onclick = null);\n detachDeletedInstance(instance);\n}\nfunction clearSingletonPreambleContribution(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 if (\"function\" === typeof container.getRootNode) {\n var rootNode = container.getRootNode();\n if (9 === rootNode.nodeType || 11 === rootNode.nodeType) return rootNode;\n }\n return 9 === container.nodeType ? container : 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 if (\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 )\n ) {\n var instance = ownerDocument.createElement(\"link\");\n setInitialProperties(instance, \"link\", href);\n \"style\" === as &&\n ((instance[internalLoadPendingKey] = !0),\n (instance.onload = instance.onerror =\n function () {\n clearPendingLoadOnNode(instance);\n }));\n markNodeAsHoistable(instance);\n ownerDocument.head.appendChild(instance);\n }\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 ? ((pendingProps = getStyleKey(pendingProps.href)),\n (currentProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = currentProps.get(pendingProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n currentProps.set(pendingProps, 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$268 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$269 = styles$268.get(type);\n resource$269 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$269 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$268.set(type, resource$269),\n (styles$268 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n ))\n ? styles$268._p ||\n ((resource$269.instance = styles$268),\n (resource$269.state.loading = 5))\n : ((styles$268 = preloadPropsMap.get(type)),\n styles$268 ||\n ((styles$268 = {\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, styles$268)),\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n styles$268,\n resource$269.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$269;\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 ? ((pendingProps = getScriptKey(pendingProps)),\n (currentProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = currentProps.get(pendingProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n currentProps.set(pendingProps, 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 if (\n (key = ownerDocument.querySelector(\n 'link[rel=\"preload\"][as=\"style\"][' + key + \"]\"\n ))\n ) {\n if (!0 !== key[internalLoadPendingKey]) {\n state.loading = 1;\n return;\n }\n } else\n (key = ownerDocument.createElement(\"link\")),\n (key[internalLoadPendingKey] = !0),\n (key.onload = key.onerror = clearPendingLoadOnNode.bind(null, key)),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key);\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}\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$274 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$274)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$274),\n markNodeAsHoistable(instance$274),\n instance$274\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$274 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$274);\n var linkInstance = instance$274;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$274, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$274, props.precedence, hoistableRoot);\n return (resource.instance = instance$274);\n case \"script\":\n instance$274 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$274)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$274)))\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 maySuspendCommit(type, props) {\n return (\n \"img\" === type &&\n null != props.src &&\n \"\" !== props.src &&\n null == props.onLoad &&\n \"lazy\" !== props.loading\n );\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nfunction estimateImageBytes(instance) {\n return (\n (instance.width || 100) *\n (instance.height || 100) *\n (\"number\" === typeof devicePixelRatio ? devicePixelRatio : 1) *\n 0.25\n );\n}\nfunction suspendInstance(state, instance) {\n \"function\" === typeof instance.decode &&\n (state.imgCount++,\n instance.complete ||\n ((state.imgBytes += estimateImageBytes(instance)),\n state.suspenseyImages.push(instance)),\n (state = onUnsuspendImg.bind(state)),\n instance.decode().then(state, state));\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 checkIfFullyUnsuspended(state) {\n if (0 === state.count && (0 === state.imgCount || !state.waitingForImages))\n if (state.stylesheets) insertSuspendedStylesheets(state, state.stylesheets);\n else if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n}\nfunction onUnsuspend() {\n this.count--;\n checkIfFullyUnsuspended(this);\n}\nfunction onUnsuspendImg() {\n this.imgCount--;\n checkIfFullyUnsuspended(this);\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.transitionTypes = null;\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 \"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 \"fullscreenerror\":\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 \"resize\":\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_2043 = React.version;\nif (\n \"19.3.1\" !==\n isomorphicReactPackageVersion$jscomp$inline_2043\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_2043,\n \"19.3.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_2586 = {\n bundleType: 0,\n version: \"19.3.1\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.3.1\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2587 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2587.isDisabled &&\n hook$jscomp$inline_2587.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2587.inject(\n internals$jscomp$inline_2586\n )),\n (injectedHook = hook$jscomp$inline_2587);\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.3.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", "'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n", "/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n", "/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n", "/*\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*\nJPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009\n\nBasic GUI blocking jpeg encoder\n*/\n\nvar btoa = btoa || function(buf) {\n return Buffer.from(buf).toString('base64');\n};\n\nfunction JPEGEncoder(quality) {\n var self = this;\n\tvar fround = Math.round;\n\tvar ffloor = Math.floor;\n\tvar YTable = new Array(64);\n\tvar UVTable = new Array(64);\n\tvar fdtbl_Y = new Array(64);\n\tvar fdtbl_UV = new Array(64);\n\tvar YDC_HT;\n\tvar UVDC_HT;\n\tvar YAC_HT;\n\tvar UVAC_HT;\n\t\n\tvar bitcode = new Array(65535);\n\tvar category = new Array(65535);\n\tvar outputfDCTQuant = new Array(64);\n\tvar DU = new Array(64);\n\tvar byteout = [];\n\tvar bytenew = 0;\n\tvar bytepos = 7;\n\t\n\tvar YDU = new Array(64);\n\tvar UDU = new Array(64);\n\tvar VDU = new Array(64);\n\tvar clt = new Array(256);\n\tvar RGB_YUV_TABLE = new Array(2048);\n\tvar currentQuality;\n\t\n\tvar ZigZag = [\n\t\t\t 0, 1, 5, 6,14,15,27,28,\n\t\t\t 2, 4, 7,13,16,26,29,42,\n\t\t\t 3, 8,12,17,25,30,41,43,\n\t\t\t 9,11,18,24,31,40,44,53,\n\t\t\t10,19,23,32,39,45,52,54,\n\t\t\t20,22,33,38,46,51,55,60,\n\t\t\t21,34,37,47,50,56,59,61,\n\t\t\t35,36,48,49,57,58,62,63\n\t\t];\n\t\n\tvar std_dc_luminance_nrcodes = [0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0];\n\tvar std_dc_luminance_values = [0,1,2,3,4,5,6,7,8,9,10,11];\n\tvar std_ac_luminance_nrcodes = [0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,0x7d];\n\tvar std_ac_luminance_values = [\n\t\t\t0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,\n\t\t\t0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,\n\t\t\t0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,\n\t\t\t0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,\n\t\t\t0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,\n\t\t\t0x17,0x18,0x19,0x1a,0x25,0x26,0x27,0x28,\n\t\t\t0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,\n\t\t\t0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,\n\t\t\t0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,\n\t\t\t0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,\n\t\t\t0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,\n\t\t\t0x7a,0x83,0x84,0x85,0x86,0x87,0x88,0x89,\n\t\t\t0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,\n\t\t\t0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,\n\t\t\t0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,\n\t\t\t0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,\n\t\t\t0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,\n\t\t\t0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,\n\t\t\t0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,\n\t\t\t0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,\n\t\t\t0xf9,0xfa\n\t\t];\n\t\n\tvar std_dc_chrominance_nrcodes = [0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0];\n\tvar std_dc_chrominance_values = [0,1,2,3,4,5,6,7,8,9,10,11];\n\tvar std_ac_chrominance_nrcodes = [0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,0x77];\n\tvar std_ac_chrominance_values = [\n\t\t\t0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,\n\t\t\t0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,\n\t\t\t0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,\n\t\t\t0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,\n\t\t\t0x15,0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,\n\t\t\t0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,\n\t\t\t0x27,0x28,0x29,0x2a,0x35,0x36,0x37,0x38,\n\t\t\t0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,\n\t\t\t0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,\n\t\t\t0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,\n\t\t\t0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,\n\t\t\t0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,\n\t\t\t0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,\n\t\t\t0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,\n\t\t\t0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,\n\t\t\t0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,\n\t\t\t0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,\n\t\t\t0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,\n\t\t\t0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,\n\t\t\t0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,\n\t\t\t0xf9,0xfa\n\t\t];\n\t\n\tfunction initQuantTables(sf){\n\t\t\tvar YQT = [\n\t\t\t\t16, 11, 10, 16, 24, 40, 51, 61,\n\t\t\t\t12, 12, 14, 19, 26, 58, 60, 55,\n\t\t\t\t14, 13, 16, 24, 40, 57, 69, 56,\n\t\t\t\t14, 17, 22, 29, 51, 87, 80, 62,\n\t\t\t\t18, 22, 37, 56, 68,109,103, 77,\n\t\t\t\t24, 35, 55, 64, 81,104,113, 92,\n\t\t\t\t49, 64, 78, 87,103,121,120,101,\n\t\t\t\t72, 92, 95, 98,112,100,103, 99\n\t\t\t];\n\t\t\t\n\t\t\tfor (var i = 0; i < 64; i++) {\n\t\t\t\tvar t = ffloor((YQT[i]*sf+50)/100);\n\t\t\t\tif (t < 1) {\n\t\t\t\t\tt = 1;\n\t\t\t\t} else if (t > 255) {\n\t\t\t\t\tt = 255;\n\t\t\t\t}\n\t\t\t\tYTable[ZigZag[i]] = t;\n\t\t\t}\n\t\t\tvar UVQT = [\n\t\t\t\t17, 18, 24, 47, 99, 99, 99, 99,\n\t\t\t\t18, 21, 26, 66, 99, 99, 99, 99,\n\t\t\t\t24, 26, 56, 99, 99, 99, 99, 99,\n\t\t\t\t47, 66, 99, 99, 99, 99, 99, 99,\n\t\t\t\t99, 99, 99, 99, 99, 99, 99, 99,\n\t\t\t\t99, 99, 99, 99, 99, 99, 99, 99,\n\t\t\t\t99, 99, 99, 99, 99, 99, 99, 99,\n\t\t\t\t99, 99, 99, 99, 99, 99, 99, 99\n\t\t\t];\n\t\t\tfor (var j = 0; j < 64; j++) {\n\t\t\t\tvar u = ffloor((UVQT[j]*sf+50)/100);\n\t\t\t\tif (u < 1) {\n\t\t\t\t\tu = 1;\n\t\t\t\t} else if (u > 255) {\n\t\t\t\t\tu = 255;\n\t\t\t\t}\n\t\t\t\tUVTable[ZigZag[j]] = u;\n\t\t\t}\n\t\t\tvar aasf = [\n\t\t\t\t1.0, 1.387039845, 1.306562965, 1.175875602,\n\t\t\t\t1.0, 0.785694958, 0.541196100, 0.275899379\n\t\t\t];\n\t\t\tvar k = 0;\n\t\t\tfor (var row = 0; row < 8; row++)\n\t\t\t{\n\t\t\t\tfor (var col = 0; col < 8; col++)\n\t\t\t\t{\n\t\t\t\t\tfdtbl_Y[k] = (1.0 / (YTable [ZigZag[k]] * aasf[row] * aasf[col] * 8.0));\n\t\t\t\t\tfdtbl_UV[k] = (1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0));\n\t\t\t\t\tk++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction computeHuffmanTbl(nrcodes, std_table){\n\t\t\tvar codevalue = 0;\n\t\t\tvar pos_in_table = 0;\n\t\t\tvar HT = new Array();\n\t\t\tfor (var k = 1; k <= 16; k++) {\n\t\t\t\tfor (var j = 1; j <= nrcodes[k]; j++) {\n\t\t\t\t\tHT[std_table[pos_in_table]] = [];\n\t\t\t\t\tHT[std_table[pos_in_table]][0] = codevalue;\n\t\t\t\t\tHT[std_table[pos_in_table]][1] = k;\n\t\t\t\t\tpos_in_table++;\n\t\t\t\t\tcodevalue++;\n\t\t\t\t}\n\t\t\t\tcodevalue*=2;\n\t\t\t}\n\t\t\treturn HT;\n\t\t}\n\t\t\n\t\tfunction initHuffmanTbl()\n\t\t{\n\t\t\tYDC_HT = computeHuffmanTbl(std_dc_luminance_nrcodes,std_dc_luminance_values);\n\t\t\tUVDC_HT = computeHuffmanTbl(std_dc_chrominance_nrcodes,std_dc_chrominance_values);\n\t\t\tYAC_HT = computeHuffmanTbl(std_ac_luminance_nrcodes,std_ac_luminance_values);\n\t\t\tUVAC_HT = computeHuffmanTbl(std_ac_chrominance_nrcodes,std_ac_chrominance_values);\n\t\t}\n\t\n\t\tfunction initCategoryNumber()\n\t\t{\n\t\t\tvar nrlower = 1;\n\t\t\tvar nrupper = 2;\n\t\t\tfor (var cat = 1; cat <= 15; cat++) {\n\t\t\t\t//Positive numbers\n\t\t\t\tfor (var nr = nrlower; nr<nrupper; nr++) {\n\t\t\t\t\tcategory[32767+nr] = cat;\n\t\t\t\t\tbitcode[32767+nr] = [];\n\t\t\t\t\tbitcode[32767+nr][1] = cat;\n\t\t\t\t\tbitcode[32767+nr][0] = nr;\n\t\t\t\t}\n\t\t\t\t//Negative numbers\n\t\t\t\tfor (var nrneg =-(nrupper-1); nrneg<=-nrlower; nrneg++) {\n\t\t\t\t\tcategory[32767+nrneg] = cat;\n\t\t\t\t\tbitcode[32767+nrneg] = [];\n\t\t\t\t\tbitcode[32767+nrneg][1] = cat;\n\t\t\t\t\tbitcode[32767+nrneg][0] = nrupper-1+nrneg;\n\t\t\t\t}\n\t\t\t\tnrlower <<= 1;\n\t\t\t\tnrupper <<= 1;\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction initRGBYUVTable() {\n\t\t\tfor(var i = 0; i < 256;i++) {\n\t\t\t\tRGB_YUV_TABLE[i] \t\t= 19595 * i;\n\t\t\t\tRGB_YUV_TABLE[(i+ 256)>>0] \t= 38470 * i;\n\t\t\t\tRGB_YUV_TABLE[(i+ 512)>>0] \t= 7471 * i + 0x8000;\n\t\t\t\tRGB_YUV_TABLE[(i+ 768)>>0] \t= -11059 * i;\n\t\t\t\tRGB_YUV_TABLE[(i+1024)>>0] \t= -21709 * i;\n\t\t\t\tRGB_YUV_TABLE[(i+1280)>>0] \t= 32768 * i + 0x807FFF;\n\t\t\t\tRGB_YUV_TABLE[(i+1536)>>0] \t= -27439 * i;\n\t\t\t\tRGB_YUV_TABLE[(i+1792)>>0] \t= - 5329 * i;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// IO functions\n\t\tfunction writeBits(bs)\n\t\t{\n\t\t\tvar value = bs[0];\n\t\t\tvar posval = bs[1]-1;\n\t\t\twhile ( posval >= 0 ) {\n\t\t\t\tif (value & (1 << posval) ) {\n\t\t\t\t\tbytenew |= (1 << bytepos);\n\t\t\t\t}\n\t\t\t\tposval--;\n\t\t\t\tbytepos--;\n\t\t\t\tif (bytepos < 0) {\n\t\t\t\t\tif (bytenew == 0xFF) {\n\t\t\t\t\t\twriteByte(0xFF);\n\t\t\t\t\t\twriteByte(0);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\twriteByte(bytenew);\n\t\t\t\t\t}\n\t\t\t\t\tbytepos=7;\n\t\t\t\t\tbytenew=0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\tfunction writeByte(value)\n\t\t{\n\t\t\t//byteout.push(clt[value]); // write char directly instead of converting later\n byteout.push(value);\n\t\t}\n\t\n\t\tfunction writeWord(value)\n\t\t{\n\t\t\twriteByte((value>>8)&0xFF);\n\t\t\twriteByte((value )&0xFF);\n\t\t}\n\t\t\n\t\t// DCT & quantization core\n\t\tfunction fDCTQuant(data, fdtbl)\n\t\t{\n\t\t\tvar d0, d1, d2, d3, d4, d5, d6, d7;\n\t\t\t/* Pass 1: process rows. */\n\t\t\tvar dataOff=0;\n\t\t\tvar i;\n\t\t\tvar I8 = 8;\n\t\t\tvar I64 = 64;\n\t\t\tfor (i=0; i<I8; ++i)\n\t\t\t{\n\t\t\t\td0 = data[dataOff];\n\t\t\t\td1 = data[dataOff+1];\n\t\t\t\td2 = data[dataOff+2];\n\t\t\t\td3 = data[dataOff+3];\n\t\t\t\td4 = data[dataOff+4];\n\t\t\t\td5 = data[dataOff+5];\n\t\t\t\td6 = data[dataOff+6];\n\t\t\t\td7 = data[dataOff+7];\n\t\t\t\t\n\t\t\t\tvar tmp0 = d0 + d7;\n\t\t\t\tvar tmp7 = d0 - d7;\n\t\t\t\tvar tmp1 = d1 + d6;\n\t\t\t\tvar tmp6 = d1 - d6;\n\t\t\t\tvar tmp2 = d2 + d5;\n\t\t\t\tvar tmp5 = d2 - d5;\n\t\t\t\tvar tmp3 = d3 + d4;\n\t\t\t\tvar tmp4 = d3 - d4;\n\t\n\t\t\t\t/* Even part */\n\t\t\t\tvar tmp10 = tmp0 + tmp3;\t/* phase 2 */\n\t\t\t\tvar tmp13 = tmp0 - tmp3;\n\t\t\t\tvar tmp11 = tmp1 + tmp2;\n\t\t\t\tvar tmp12 = tmp1 - tmp2;\n\t\n\t\t\t\tdata[dataOff] = tmp10 + tmp11; /* phase 3 */\n\t\t\t\tdata[dataOff+4] = tmp10 - tmp11;\n\t\n\t\t\t\tvar z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */\n\t\t\t\tdata[dataOff+2] = tmp13 + z1; /* phase 5 */\n\t\t\t\tdata[dataOff+6] = tmp13 - z1;\n\t\n\t\t\t\t/* Odd part */\n\t\t\t\ttmp10 = tmp4 + tmp5; /* phase 2 */\n\t\t\t\ttmp11 = tmp5 + tmp6;\n\t\t\t\ttmp12 = tmp6 + tmp7;\n\t\n\t\t\t\t/* The rotator is modified from fig 4-8 to avoid extra negations. */\n\t\t\t\tvar z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */\n\t\t\t\tvar z2 = 0.541196100 * tmp10 + z5; /* c2-c6 */\n\t\t\t\tvar z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */\n\t\t\t\tvar z3 = tmp11 * 0.707106781; /* c4 */\n\t\n\t\t\t\tvar z11 = tmp7 + z3;\t/* phase 5 */\n\t\t\t\tvar z13 = tmp7 - z3;\n\t\n\t\t\t\tdata[dataOff+5] = z13 + z2;\t/* phase 6 */\n\t\t\t\tdata[dataOff+3] = z13 - z2;\n\t\t\t\tdata[dataOff+1] = z11 + z4;\n\t\t\t\tdata[dataOff+7] = z11 - z4;\n\t\n\t\t\t\tdataOff += 8; /* advance pointer to next row */\n\t\t\t}\n\t\n\t\t\t/* Pass 2: process columns. */\n\t\t\tdataOff = 0;\n\t\t\tfor (i=0; i<I8; ++i)\n\t\t\t{\n\t\t\t\td0 = data[dataOff];\n\t\t\t\td1 = data[dataOff + 8];\n\t\t\t\td2 = data[dataOff + 16];\n\t\t\t\td3 = data[dataOff + 24];\n\t\t\t\td4 = data[dataOff + 32];\n\t\t\t\td5 = data[dataOff + 40];\n\t\t\t\td6 = data[dataOff + 48];\n\t\t\t\td7 = data[dataOff + 56];\n\t\t\t\t\n\t\t\t\tvar tmp0p2 = d0 + d7;\n\t\t\t\tvar tmp7p2 = d0 - d7;\n\t\t\t\tvar tmp1p2 = d1 + d6;\n\t\t\t\tvar tmp6p2 = d1 - d6;\n\t\t\t\tvar tmp2p2 = d2 + d5;\n\t\t\t\tvar tmp5p2 = d2 - d5;\n\t\t\t\tvar tmp3p2 = d3 + d4;\n\t\t\t\tvar tmp4p2 = d3 - d4;\n\t\n\t\t\t\t/* Even part */\n\t\t\t\tvar tmp10p2 = tmp0p2 + tmp3p2;\t/* phase 2 */\n\t\t\t\tvar tmp13p2 = tmp0p2 - tmp3p2;\n\t\t\t\tvar tmp11p2 = tmp1p2 + tmp2p2;\n\t\t\t\tvar tmp12p2 = tmp1p2 - tmp2p2;\n\t\n\t\t\t\tdata[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */\n\t\t\t\tdata[dataOff+32] = tmp10p2 - tmp11p2;\n\t\n\t\t\t\tvar z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */\n\t\t\t\tdata[dataOff+16] = tmp13p2 + z1p2; /* phase 5 */\n\t\t\t\tdata[dataOff+48] = tmp13p2 - z1p2;\n\t\n\t\t\t\t/* Odd part */\n\t\t\t\ttmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */\n\t\t\t\ttmp11p2 = tmp5p2 + tmp6p2;\n\t\t\t\ttmp12p2 = tmp6p2 + tmp7p2;\n\t\n\t\t\t\t/* The rotator is modified from fig 4-8 to avoid extra negations. */\n\t\t\t\tvar z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */\n\t\t\t\tvar z2p2 = 0.541196100 * tmp10p2 + z5p2; /* c2-c6 */\n\t\t\t\tvar z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */\n\t\t\t\tvar z3p2 = tmp11p2 * 0.707106781; /* c4 */\n\t\n\t\t\t\tvar z11p2 = tmp7p2 + z3p2;\t/* phase 5 */\n\t\t\t\tvar z13p2 = tmp7p2 - z3p2;\n\t\n\t\t\t\tdata[dataOff+40] = z13p2 + z2p2; /* phase 6 */\n\t\t\t\tdata[dataOff+24] = z13p2 - z2p2;\n\t\t\t\tdata[dataOff+ 8] = z11p2 + z4p2;\n\t\t\t\tdata[dataOff+56] = z11p2 - z4p2;\n\t\n\t\t\t\tdataOff++; /* advance pointer to next column */\n\t\t\t}\n\t\n\t\t\t// Quantize/descale the coefficients\n\t\t\tvar fDCTQuant;\n\t\t\tfor (i=0; i<I64; ++i)\n\t\t\t{\n\t\t\t\t// Apply the quantization and scaling factor & Round to nearest integer\n\t\t\t\tfDCTQuant = data[i]*fdtbl[i];\n\t\t\t\toutputfDCTQuant[i] = (fDCTQuant > 0.0) ? ((fDCTQuant + 0.5)|0) : ((fDCTQuant - 0.5)|0);\n\t\t\t\t//outputfDCTQuant[i] = fround(fDCTQuant);\n\n\t\t\t}\n\t\t\treturn outputfDCTQuant;\n\t\t}\n\t\t\n\t\tfunction writeAPP0()\n\t\t{\n\t\t\twriteWord(0xFFE0); // marker\n\t\t\twriteWord(16); // length\n\t\t\twriteByte(0x4A); // J\n\t\t\twriteByte(0x46); // F\n\t\t\twriteByte(0x49); // I\n\t\t\twriteByte(0x46); // F\n\t\t\twriteByte(0); // = \"JFIF\",'\\0'\n\t\t\twriteByte(1); // versionhi\n\t\t\twriteByte(1); // versionlo\n\t\t\twriteByte(0); // xyunits\n\t\t\twriteWord(1); // xdensity\n\t\t\twriteWord(1); // ydensity\n\t\t\twriteByte(0); // thumbnwidth\n\t\t\twriteByte(0); // thumbnheight\n\t\t}\n\n\t\tfunction writeAPP1(exifBuffer) {\n\t\t\tif (!exifBuffer) return;\n\n\t\t\twriteWord(0xFFE1); // APP1 marker\n\n\t\t\tif (exifBuffer[0] === 0x45 &&\n\t\t\t\t\texifBuffer[1] === 0x78 &&\n\t\t\t\t\texifBuffer[2] === 0x69 &&\n\t\t\t\t\texifBuffer[3] === 0x66) {\n\t\t\t\t// Buffer already starts with EXIF, just use it directly\n\t\t\t\twriteWord(exifBuffer.length + 2); // length is buffer + length itself!\n\t\t\t} else {\n\t\t\t\t// Buffer doesn't start with EXIF, write it for them\n\t\t\t\twriteWord(exifBuffer.length + 5 + 2); // length is buffer + EXIF\\0 + length itself!\n\t\t\t\twriteByte(0x45); // E\n\t\t\t\twriteByte(0x78); // X\n\t\t\t\twriteByte(0x69); // I\n\t\t\t\twriteByte(0x66); // F\n\t\t\t\twriteByte(0); // = \"EXIF\",'\\0'\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < exifBuffer.length; i++) {\n\t\t\t\twriteByte(exifBuffer[i]);\n\t\t\t}\n\t\t}\n\n\t\tfunction writeSOF0(width, height)\n\t\t{\n\t\t\twriteWord(0xFFC0); // marker\n\t\t\twriteWord(17); // length, truecolor YUV JPG\n\t\t\twriteByte(8); // precision\n\t\t\twriteWord(height);\n\t\t\twriteWord(width);\n\t\t\twriteByte(3); // nrofcomponents\n\t\t\twriteByte(1); // IdY\n\t\t\twriteByte(0x11); // HVY\n\t\t\twriteByte(0); // QTY\n\t\t\twriteByte(2); // IdU\n\t\t\twriteByte(0x11); // HVU\n\t\t\twriteByte(1); // QTU\n\t\t\twriteByte(3); // IdV\n\t\t\twriteByte(0x11); // HVV\n\t\t\twriteByte(1); // QTV\n\t\t}\n\t\n\t\tfunction writeDQT()\n\t\t{\n\t\t\twriteWord(0xFFDB); // marker\n\t\t\twriteWord(132);\t // length\n\t\t\twriteByte(0);\n\t\t\tfor (var i=0; i<64; i++) {\n\t\t\t\twriteByte(YTable[i]);\n\t\t\t}\n\t\t\twriteByte(1);\n\t\t\tfor (var j=0; j<64; j++) {\n\t\t\t\twriteByte(UVTable[j]);\n\t\t\t}\n\t\t}\n\t\n\t\tfunction writeDHT()\n\t\t{\n\t\t\twriteWord(0xFFC4); // marker\n\t\t\twriteWord(0x01A2); // length\n\t\n\t\t\twriteByte(0); // HTYDCinfo\n\t\t\tfor (var i=0; i<16; i++) {\n\t\t\t\twriteByte(std_dc_luminance_nrcodes[i+1]);\n\t\t\t}\n\t\t\tfor (var j=0; j<=11; j++) {\n\t\t\t\twriteByte(std_dc_luminance_values[j]);\n\t\t\t}\n\t\n\t\t\twriteByte(0x10); // HTYACinfo\n\t\t\tfor (var k=0; k<16; k++) {\n\t\t\t\twriteByte(std_ac_luminance_nrcodes[k+1]);\n\t\t\t}\n\t\t\tfor (var l=0; l<=161; l++) {\n\t\t\t\twriteByte(std_ac_luminance_values[l]);\n\t\t\t}\n\t\n\t\t\twriteByte(1); // HTUDCinfo\n\t\t\tfor (var m=0; m<16; m++) {\n\t\t\t\twriteByte(std_dc_chrominance_nrcodes[m+1]);\n\t\t\t}\n\t\t\tfor (var n=0; n<=11; n++) {\n\t\t\t\twriteByte(std_dc_chrominance_values[n]);\n\t\t\t}\n\t\n\t\t\twriteByte(0x11); // HTUACinfo\n\t\t\tfor (var o=0; o<16; o++) {\n\t\t\t\twriteByte(std_ac_chrominance_nrcodes[o+1]);\n\t\t\t}\n\t\t\tfor (var p=0; p<=161; p++) {\n\t\t\t\twriteByte(std_ac_chrominance_values[p]);\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction writeCOM(comments)\n\t\t{\n\t\t\tif (typeof comments === \"undefined\" || comments.constructor !== Array) return;\n\t\t\tcomments.forEach(e => {\n\t\t\t\tif (typeof e !== \"string\") return;\n\t\t\t\twriteWord(0xFFFE); // marker\n\t\t\t\tvar l = e.length;\n\t\t\t\twriteWord(l + 2); // length itself as well\n\t\t\t\tvar i;\n\t\t\t\tfor (i = 0; i < l; i++)\n\t\t\t\t\twriteByte(e.charCodeAt(i));\n\t\t\t});\n\t\t}\n\t\n\t\tfunction writeSOS()\n\t\t{\n\t\t\twriteWord(0xFFDA); // marker\n\t\t\twriteWord(12); // length\n\t\t\twriteByte(3); // nrofcomponents\n\t\t\twriteByte(1); // IdY\n\t\t\twriteByte(0); // HTY\n\t\t\twriteByte(2); // IdU\n\t\t\twriteByte(0x11); // HTU\n\t\t\twriteByte(3); // IdV\n\t\t\twriteByte(0x11); // HTV\n\t\t\twriteByte(0); // Ss\n\t\t\twriteByte(0x3f); // Se\n\t\t\twriteByte(0); // Bf\n\t\t}\n\t\t\n\t\tfunction processDU(CDU, fdtbl, DC, HTDC, HTAC){\n\t\t\tvar EOB = HTAC[0x00];\n\t\t\tvar M16zeroes = HTAC[0xF0];\n\t\t\tvar pos;\n\t\t\tvar I16 = 16;\n\t\t\tvar I63 = 63;\n\t\t\tvar I64 = 64;\n\t\t\tvar DU_DCT = fDCTQuant(CDU, fdtbl);\n\t\t\t//ZigZag reorder\n\t\t\tfor (var j=0;j<I64;++j) {\n\t\t\t\tDU[ZigZag[j]]=DU_DCT[j];\n\t\t\t}\n\t\t\tvar Diff = DU[0] - DC; DC = DU[0];\n\t\t\t//Encode DC\n\t\t\tif (Diff==0) {\n\t\t\t\twriteBits(HTDC[0]); // Diff might be 0\n\t\t\t} else {\n\t\t\t\tpos = 32767+Diff;\n\t\t\t\twriteBits(HTDC[category[pos]]);\n\t\t\t\twriteBits(bitcode[pos]);\n\t\t\t}\n\t\t\t//Encode ACs\n\t\t\tvar end0pos = 63; // was const... which is crazy\n\t\t\tfor (; (end0pos>0)&&(DU[end0pos]==0); end0pos--) {};\n\t\t\t//end0pos = first element in reverse order !=0\n\t\t\tif ( end0pos == 0) {\n\t\t\t\twriteBits(EOB);\n\t\t\t\treturn DC;\n\t\t\t}\n\t\t\tvar i = 1;\n\t\t\tvar lng;\n\t\t\twhile ( i <= end0pos ) {\n\t\t\t\tvar startpos = i;\n\t\t\t\tfor (; (DU[i]==0) && (i<=end0pos); ++i) {}\n\t\t\t\tvar nrzeroes = i-startpos;\n\t\t\t\tif ( nrzeroes >= I16 ) {\n\t\t\t\t\tlng = nrzeroes>>4;\n\t\t\t\t\tfor (var nrmarker=1; nrmarker <= lng; ++nrmarker)\n\t\t\t\t\t\twriteBits(M16zeroes);\n\t\t\t\t\tnrzeroes = nrzeroes&0xF;\n\t\t\t\t}\n\t\t\t\tpos = 32767+DU[i];\n\t\t\t\twriteBits(HTAC[(nrzeroes<<4)+category[pos]]);\n\t\t\t\twriteBits(bitcode[pos]);\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif ( end0pos != I63 ) {\n\t\t\t\twriteBits(EOB);\n\t\t\t}\n\t\t\treturn DC;\n\t\t}\n\n\t\tfunction initCharLookupTable(){\n\t\t\tvar sfcc = String.fromCharCode;\n\t\t\tfor(var i=0; i < 256; i++){ ///// ACHTUNG // 255\n\t\t\t\tclt[i] = sfcc(i);\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis.encode = function(image,quality) // image data object\n\t\t{\n\t\t\tvar time_start = new Date().getTime();\n\t\t\t\n\t\t\tif(quality) setQuality(quality);\n\t\t\t\n\t\t\t// Initialize bit writer\n\t\t\tbyteout = new Array();\n\t\t\tbytenew=0;\n\t\t\tbytepos=7;\n\t\n\t\t\t// Add JPEG headers\n\t\t\twriteWord(0xFFD8); // SOI\n\t\t\twriteAPP0();\n\t\t\twriteCOM(image.comments);\n\t\t\twriteAPP1(image.exifBuffer);\n\t\t\twriteDQT();\n\t\t\twriteSOF0(image.width,image.height);\n\t\t\twriteDHT();\n\t\t\twriteSOS();\n\n\t\n\t\t\t// Encode 8x8 macroblocks\n\t\t\tvar DCY=0;\n\t\t\tvar DCU=0;\n\t\t\tvar DCV=0;\n\t\t\t\n\t\t\tbytenew=0;\n\t\t\tbytepos=7;\n\t\t\t\n\t\t\t\n\t\t\tthis.encode.displayName = \"_encode_\";\n\n\t\t\tvar imageData = image.data;\n\t\t\tvar width = image.width;\n\t\t\tvar height = image.height;\n\n\t\t\tvar quadWidth = width*4;\n\t\t\tvar tripleWidth = width*3;\n\t\t\t\n\t\t\tvar x, y = 0;\n\t\t\tvar r, g, b;\n\t\t\tvar start,p, col,row,pos;\n\t\t\twhile(y < height){\n\t\t\t\tx = 0;\n\t\t\t\twhile(x < quadWidth){\n\t\t\t\tstart = quadWidth * y + x;\n\t\t\t\tp = start;\n\t\t\t\tcol = -1;\n\t\t\t\trow = 0;\n\t\t\t\t\n\t\t\t\tfor(pos=0; pos < 64; pos++){\n\t\t\t\t\trow = pos >> 3;// /8\n\t\t\t\t\tcol = ( pos & 7 ) * 4; // %8\n\t\t\t\t\tp = start + ( row * quadWidth ) + col;\t\t\n\t\t\t\t\t\n\t\t\t\t\tif(y+row >= height){ // padding bottom\n\t\t\t\t\t\tp-= (quadWidth*(y+1+row-height));\n\t\t\t\t\t}\n\n\t\t\t\t\tif(x+col >= quadWidth){ // padding right\t\n\t\t\t\t\t\tp-= ((x+col) - quadWidth +4)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tr = imageData[ p++ ];\n\t\t\t\t\tg = imageData[ p++ ];\n\t\t\t\t\tb = imageData[ p++ ];\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t/* // calculate YUV values dynamically\n\t\t\t\t\tYDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80\n\t\t\t\t\tUDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));\n\t\t\t\t\tVDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));\n\t\t\t\t\t*/\n\t\t\t\t\t\n\t\t\t\t\t// use lookup table (slightly faster)\n\t\t\t\t\tYDU[pos] = ((RGB_YUV_TABLE[r] + RGB_YUV_TABLE[(g + 256)>>0] + RGB_YUV_TABLE[(b + 512)>>0]) >> 16)-128;\n\t\t\t\t\tUDU[pos] = ((RGB_YUV_TABLE[(r + 768)>>0] + RGB_YUV_TABLE[(g + 1024)>>0] + RGB_YUV_TABLE[(b + 1280)>>0]) >> 16)-128;\n\t\t\t\t\tVDU[pos] = ((RGB_YUV_TABLE[(r + 1280)>>0] + RGB_YUV_TABLE[(g + 1536)>>0] + RGB_YUV_TABLE[(b + 1792)>>0]) >> 16)-128;\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tDCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);\n\t\t\t\tDCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);\n\t\t\t\tDCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);\n\t\t\t\tx+=32;\n\t\t\t\t}\n\t\t\t\ty+=8;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t////////////////////////////////////////////////////////////////\n\t\n\t\t\t// Do the bit alignment of the EOI marker\n\t\t\tif ( bytepos >= 0 ) {\n\t\t\t\tvar fillbits = [];\n\t\t\t\tfillbits[1] = bytepos+1;\n\t\t\t\tfillbits[0] = (1<<(bytepos+1))-1;\n\t\t\t\twriteBits(fillbits);\n\t\t\t}\n\t\n\t\t\twriteWord(0xFFD9); //EOI\n\n\t\t\tif (typeof module === 'undefined') return new Uint8Array(byteout);\n return Buffer.from(byteout);\n\n\t\t\tvar jpegDataUri = 'data:image/jpeg;base64,' + btoa(byteout.join(''));\n\t\t\t\n\t\t\tbyteout = [];\n\t\t\t\n\t\t\t// benchmarking\n\t\t\tvar duration = new Date().getTime() - time_start;\n \t\t//console.log('Encoding time: '+ duration + 'ms');\n \t\t//\n\t\t\t\n\t\t\treturn jpegDataUri\t\t\t\n\t}\n\t\n\tfunction setQuality(quality){\n\t\tif (quality <= 0) {\n\t\t\tquality = 1;\n\t\t}\n\t\tif (quality > 100) {\n\t\t\tquality = 100;\n\t\t}\n\t\t\n\t\tif(currentQuality == quality) return // don't recalc if unchanged\n\t\t\n\t\tvar sf = 0;\n\t\tif (quality < 50) {\n\t\t\tsf = Math.floor(5000 / quality);\n\t\t} else {\n\t\t\tsf = Math.floor(200 - quality*2);\n\t\t}\n\t\t\n\t\tinitQuantTables(sf);\n\t\tcurrentQuality = quality;\n\t\t//console.log('Quality set to: '+quality +'%');\n\t}\n\t\n\tfunction init(){\n\t\tvar time_start = new Date().getTime();\n\t\tif(!quality) quality = 50;\n\t\t// Create tables\n\t\tinitCharLookupTable()\n\t\tinitHuffmanTbl();\n\t\tinitCategoryNumber();\n\t\tinitRGBYUVTable();\n\t\t\n\t\tsetQuality(quality);\n\t\tvar duration = new Date().getTime() - time_start;\n \t//console.log('Initialization '+ duration + 'ms');\n\t}\n\t\n\tinit();\n\t\n};\n\nif (typeof module !== 'undefined') {\n\tmodule.exports = encode;\n} else if (typeof window !== 'undefined') {\n\twindow['jpeg-js'] = window['jpeg-js'] || {};\n\twindow['jpeg-js'].encode = encode;\n}\n\nfunction encode(imgData, qu) {\n if (typeof qu === 'undefined') qu = 50;\n var encoder = new JPEGEncoder(qu);\n\tvar data = encoder.encode(imgData, qu);\n return {\n data: data,\n width: imgData.width,\n height: imgData.height,\n };\n}\n\n// helper function to get the imageData of an existing image on the current page.\nfunction getImageDataFromImage(idOrElement){\n\tvar theImg = (typeof(idOrElement)=='string')? document.getElementById(idOrElement):idOrElement;\n\tvar cvs = document.createElement('canvas');\n\tcvs.width = theImg.width;\n\tcvs.height = theImg.height;\n\tvar ctx = cvs.getContext(\"2d\");\n\tctx.drawImage(theImg,0,0);\n\t\n\treturn (ctx.getImageData(0, 0, cvs.width, cvs.height));\n}\n", "/* -*- tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\n/*\n Copyright 2011 notmasteryet\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\n// - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n// (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n// - The JFIF specification can be found in the JPEG File Interchange Format\n// (www.w3.org/Graphics/JPEG/jfif3.pdf)\n// - The Adobe Application-Specific JPEG markers in the Supporting the DCT Filters\n// in PostScript Level 2, Technical Note #5116\n// (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n\nvar JpegImage = (function jpegImage() {\n \"use strict\";\n var dctZigZag = new Int32Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63\n ]);\n\n var dctCos1 = 4017 // cos(pi/16)\n var dctSin1 = 799 // sin(pi/16)\n var dctCos3 = 3406 // cos(3*pi/16)\n var dctSin3 = 2276 // sin(3*pi/16)\n var dctCos6 = 1567 // cos(6*pi/16)\n var dctSin6 = 3784 // sin(6*pi/16)\n var dctSqrt2 = 5793 // sqrt(2)\n var dctSqrt1d2 = 2896 // sqrt(2) / 2\n\n function constructor() {\n }\n\n function buildHuffmanTable(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({children: [], index: 0});\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error('Could not recreate Huffman Table');\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = {children: [], index: 0});\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push(q = {children: [], index: 0});\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n\n function decodeScan(data, offset,\n frame, components, resetInterval,\n spectralStart, spectralEnd,\n successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 0xFF) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error(\"unexpected marker: \" + ((bitsData << 8) | nextByte).toString(16));\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === 'number')\n return node;\n if (typeof node !== 'object')\n throw new Error(\"invalid huffman sequence\");\n }\n return null;\n }\n function receive(length) {\n var n = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null) return;\n n = (n << 1) | bit;\n length--;\n }\n return n;\n }\n function receiveAndExtend(length) {\n var n = receive(length);\n if (n >= 1 << (length - 1))\n return n;\n return n + (-1 << length) + 1;\n }\n function decodeBaseline(component, zz) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0]= (component.pred += diff);\n var k = 1;\n while (k < 64) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n zz[z] = receiveAndExtend(s);\n k++;\n }\n }\n function decodeDCFirst(component, zz) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : (receiveAndExtend(t) << successive);\n zz[0] = (component.pred += diff);\n }\n function decodeDCSuccessive(component, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k = spectralStart, e = spectralEnd;\n while (k <= e) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component, zz) {\n var k = spectralStart, e = spectralEnd, r = 0;\n while (k <= e) {\n var z = dctZigZag[k];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: // initial state\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error(\"invalid ACn encoding\");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3: // set value for a zero item\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component, decode, mcu, row, col) {\n var mcuRow = (mcu / mcusPerLine) | 0;\n var mcuCol = mcu % mcusPerLine;\n var blockRow = mcuRow * component.v + row;\n var blockCol = mcuCol * component.h + col;\n // If the block is missing and we're in tolerant mode, just skip it.\n if (component.blocks[blockRow] === undefined && opts.tolerantDecoding)\n return;\n decode(component, component.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component, decode, mcu) {\n var blockRow = (mcu / component.blocksPerLine) | 0;\n var blockCol = mcu % component.blocksPerLine;\n // If the block is missing and we're in tolerant mode, just skip it.\n if (component.blocks[blockRow] === undefined && opts.tolerantDecoding)\n return;\n decode(component, component.blocks[blockRow][blockCol]);\n }\n\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval) resetInterval = mcuExpected;\n\n var h, v;\n while (mcu < mcuExpected) {\n // reset interval stuff\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n\n // If we've reached our expected MCU's, stop decoding\n if (mcu === mcuExpected) break;\n }\n }\n\n if (mcu === mcuExpected) {\n // Skip trailing bytes at the end of the scan - until we reach the next marker\n do {\n if (data[offset] === 0xFF) {\n if (data[offset + 1] !== 0x00) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n\n // find marker\n bitsCount = 0;\n marker = (data[offset] << 8) | data[offset + 1];\n if (marker < 0xFF00) {\n throw new Error(\"marker was not found\");\n }\n\n if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx\n offset += 2;\n }\n else\n break;\n }\n\n return offset - startOffset;\n }\n\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n // Only 1 used per invocation of this function and garbage collected after invocation, so no need to account for its memory footprint.\n var R = new Int32Array(64), r = new Uint8Array(64);\n\n // A port of poppler's IDCT method which in turn is taken from:\n // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n // \"Practical Fast 1-D DCT Algorithms with 11 Multiplications\",\n // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n // 988-991.\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i;\n\n // dequant\n for (i = 0; i < 64; i++)\n p[i] = zz[i] * qt[i];\n\n // inverse DCT on rows\n for (i = 0; i < 8; ++i) {\n var row = 8 * i;\n\n // check for all-zero AC coefficients\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 &&\n p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 &&\n p[7 + row] == 0) {\n t = (dctSqrt2 * p[0 + row] + 512) >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p[0 + row] + 128) >> 8;\n v1 = (dctSqrt2 * p[4 + row] + 128) >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = (dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128) >> 8;\n v7 = (dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128) >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n\n // stage 3\n t = (v0 - v1+ 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (i = 0; i < 8; ++i) {\n var col = i;\n\n // check for all-zero AC coefficients\n if (p[1*8 + col] == 0 && p[2*8 + col] == 0 && p[3*8 + col] == 0 &&\n p[4*8 + col] == 0 && p[5*8 + col] == 0 && p[6*8 + col] == 0 &&\n p[7*8 + col] == 0) {\n t = (dctSqrt2 * dataIn[i+0] + 8192) >> 14;\n p[0*8 + col] = t;\n p[1*8 + col] = t;\n p[2*8 + col] = t;\n p[3*8 + col] = t;\n p[4*8 + col] = t;\n p[5*8 + col] = t;\n p[6*8 + col] = t;\n p[7*8 + col] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p[0*8 + col] + 2048) >> 12;\n v1 = (dctSqrt2 * p[4*8 + col] + 2048) >> 12;\n v2 = p[2*8 + col];\n v3 = p[6*8 + col];\n v4 = (dctSqrt1d2 * (p[1*8 + col] - p[7*8 + col]) + 2048) >> 12;\n v7 = (dctSqrt1d2 * (p[1*8 + col] + p[7*8 + col]) + 2048) >> 12;\n v5 = p[3*8 + col];\n v6 = p[5*8 + col];\n\n // stage 3\n t = (v0 - v1 + 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[0*8 + col] = v0 + v7;\n p[7*8 + col] = v0 - v7;\n p[1*8 + col] = v1 + v6;\n p[6*8 + col] = v1 - v6;\n p[2*8 + col] = v2 + v5;\n p[5*8 + col] = v2 - v5;\n p[3*8 + col] = v3 + v4;\n p[4*8 + col] = v3 - v4;\n }\n\n // convert to 8-bit integers\n for (i = 0; i < 64; ++i) {\n var sample = 128 + ((p[i] + 8) >> 4);\n dataOut[i] = sample < 0 ? 0 : sample > 0xFF ? 0xFF : sample;\n }\n }\n\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", path, true);\n xhr.responseType = \"arraybuffer\";\n xhr.onload = (function() {\n // TODO catch parse error\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }).bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1000 * 1000;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = (data[offset] << 8) | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length = readUint16();\n var array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame) {\n // According to the JPEG standard, the sampling factor must be between 1 and 4\n // See https://github.com/libjpeg-turbo/libjpeg-turbo/blob/9abeff46d87bd201a952e276f3e4339556a403a3/libjpeg.txt#L1138-L1146\n var maxH = 1, maxV = 1;\n var component, componentId;\n for (componentId in frame.components) {\n if (frame.components.hasOwnProperty(componentId)) {\n component = frame.components[componentId];\n if (maxH < component.h) maxH = component.h;\n if (maxV < component.v) maxV = component.v;\n }\n }\n var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / maxH);\n var mcusPerColumn = Math.ceil(frame.scanLines / 8 / maxV);\n for (componentId in frame.components) {\n if (frame.components.hasOwnProperty(componentId)) {\n component = frame.components[componentId];\n var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / maxH);\n var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / maxV);\n var blocksPerLineForMcu = mcusPerLine * component.h;\n var blocksPerColumnForMcu = mcusPerColumn * component.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n\n // Each block is a Int32Array of length 64 (4 x 64 = 256 bytes)\n requestMemoryAllocation(blocksToAllocate * 256);\n\n for (var i = 0; i < blocksPerColumnForMcu; i++) {\n var row = [];\n for (var j = 0; j < blocksPerLineForMcu; j++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n component.blocks = blocks;\n }\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 0xFFD8) { // SOI (Start of Image)\n throw new Error(\"SOI not found\");\n }\n\n fileMarker = readUint16();\n while (fileMarker != 0xFFD9) { // EOI (End of image)\n var i, j, l;\n switch(fileMarker) {\n case 0xFF00: break;\n case 0xFFE0: // APP0 (Application Specific)\n case 0xFFE1: // APP1\n case 0xFFE2: // APP2\n case 0xFFE3: // APP3\n case 0xFFE4: // APP4\n case 0xFFE5: // APP5\n case 0xFFE6: // APP6\n case 0xFFE7: // APP7\n case 0xFFE8: // APP8\n case 0xFFE9: // APP9\n case 0xFFEA: // APP10\n case 0xFFEB: // APP11\n case 0xFFEC: // APP12\n case 0xFFED: // APP13\n case 0xFFEE: // APP14\n case 0xFFEF: // APP15\n case 0xFFFE: // COM (Comment)\n var appData = readDataBlock();\n\n if (fileMarker === 0xFFFE) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n\n if (fileMarker === 0xFFE0) {\n if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 &&\n appData[3] === 0x46 && appData[4] === 0) { // 'JFIF\\x00'\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xFFE1) {\n if (appData[0] === 0x45 &&\n appData[1] === 0x78 &&\n appData[2] === 0x69 &&\n appData[3] === 0x66 &&\n appData[4] === 0) { // 'EXIF\\x00'\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n\n if (fileMarker === 0xFFEE) {\n if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F &&\n appData[3] === 0x62 && appData[4] === 0x65 && appData[5] === 0) { // 'Adobe\\x00'\n adobe = {\n version: appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n\n case 0xFFDB: // DQT (Define Quantization Tables)\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if ((quantizationTableSpec >> 4) === 0) { // 8 bit values\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if ((quantizationTableSpec >> 4) === 1) { //16 bit\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error(\"DQT: invalid table spec\");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xFFC1: // SOF1 (Start of Frame, Extended DCT)\n case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT)\n readUint16(); // skip data length\n frame = {};\n frame.extended = (fileMarker === 0xFFC1);\n frame.progressive = (fileMarker === 0xFFC2);\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n\n if ( h <= 0 || v <= 0 ) {\n throw new Error('Invalid sampling factor, expected values above 0');\n }\n\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h: h,\n v: v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n\n case 0xFFC4: // DHT (Define Huffman Tables)\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength;) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += (codeLengths[j] = data[offset]);\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n\n ((huffmanTableSpec >> 4) === 0 ?\n huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] =\n buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xFFDD: // DRI (Define Restart Interval)\n readUint16(); // skip data length\n resetInterval = readUint16();\n break;\n\n case 0xFFDC: // Number of Lines marker\n readUint16() // skip data length\n readUint16() // Ignore this data since it represents the image height\n break;\n \n case 0xFFDA: // SOS (Start of Scan)\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset,\n frame, components, resetInterval,\n spectralStart, spectralEnd,\n successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n\n case 0xFFFF: // Fill bytes\n if (data[offset] !== 0xFF) { // Avoid skipping a valid marker.\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 0xFF &&\n data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {\n // could be incorrect encoding -- last 0xFF byte of the previous\n // block was eaten by the encoder\n offset -= 3;\n break;\n }\n else if (fileMarker === 0xE0 || fileMarker == 0xE1) {\n // Recover from malformed APP1 markers popular in some phone models.\n // See https://github.com/eugeneware/jpeg-js/issues/82\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 0xFF) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error(\"unknown JPEG marker \" + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error(\"only single frame JPEGs supported\");\n\n // set each frame's components quantization table\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | (x * component1.scaleX * scaleX)];\n\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n // PDF might compress two component data in custom colorspace\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];\n component2Line = component2.lines[0 | (y * component2.scaleY * scaleY)];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | (x * component1.scaleX * scaleX)];\n data[offset++] = Y;\n Y = component2Line[0 | (x * component2.scaleX * scaleX)];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n // The default transform for three components is true\n colorTransform = true;\n // The adobe transform marker overrides any previous setting\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== 'undefined')\n colorTransform = !!this.opts.colorTransform;\n\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];\n component2Line = component2.lines[0 | (y * component2.scaleY * scaleY)];\n component3Line = component3.lines[0 | (y * component3.scaleY * scaleY)];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | (x * component1.scaleX * scaleX)];\n G = component2Line[0 | (x * component2.scaleX * scaleX)];\n B = component3Line[0 | (x * component3.scaleX * scaleX)];\n } else {\n Y = component1Line[0 | (x * component1.scaleX * scaleX)];\n Cb = component2Line[0 | (x * component2.scaleX * scaleX)];\n Cr = component3Line[0 | (x * component3.scaleX * scaleX)];\n\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error('Unsupported color mode (4 components)');\n // The default transform for four components is false\n colorTransform = false;\n // The adobe transform marker overrides any previous setting\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== 'undefined')\n colorTransform = !!this.opts.colorTransform;\n\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)];\n component2Line = component2.lines[0 | (y * component2.scaleY * scaleY)];\n component3Line = component3.lines[0 | (y * component3.scaleY * scaleY)];\n component4Line = component4.lines[0 | (y * component4.scaleY * scaleY)];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | (x * component1.scaleX * scaleX)];\n M = component2Line[0 | (x * component2.scaleX * scaleX)];\n Ye = component3Line[0 | (x * component3.scaleX * scaleX)];\n K = component4Line[0 | (x * component4.scaleX * scaleX)];\n } else {\n Y = component1Line[0 | (x * component1.scaleX * scaleX)];\n Cb = component2Line[0 | (x * component2.scaleX * scaleX)];\n Cr = component3Line[0 | (x * component3.scaleX * scaleX)];\n K = component4Line[0 | (x * component4.scaleX * scaleX)];\n\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255-C;\n data[offset++] = 255-M;\n data[offset++] = 255-Ye;\n data[offset++] = 255-K;\n }\n }\n break;\n default:\n throw new Error('Unsupported color mode');\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error('Unsupported color mode');\n }\n }\n };\n\n\n // We cap the amount of memory used by jpeg-js to avoid unexpected OOMs from untrusted content.\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n\n constructor.resetMaxMemoryUsage = function (maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n\n constructor.getBytesAllocated = function () {\n return totalBytesAllocated;\n };\n\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n\n return constructor;\n})();\n\nif (typeof module !== 'undefined') {\n\tmodule.exports = decode;\n} else if (typeof window !== 'undefined') {\n\twindow['jpeg-js'] = window['jpeg-js'] || {};\n\twindow['jpeg-js'].decode = decode;\n}\n\nfunction decode(jpegData, userOpts = {}) {\n var defaultOpts = {\n // \"undefined\" means \"Choose whether to transform colors based on the image\u2019s color model.\"\n colorTransform: undefined,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100, // Don't decode more than 100 megapixels\n maxMemoryUsageInMB: 512, // Don't decode if memory footprint is more than 512MB\n };\n\n var opts = {...defaultOpts, ...userOpts};\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n // If this constructor ever supports async decoding this will need to be done differently.\n // Until then, treating as singleton limit is fine.\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n\n var channels = (opts.formatAsRGBA) ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ?\n new Uint8Array(bytesNeeded) :\n Buffer.alloc(bytesNeeded)\n };\n if(decoder.comments.length > 0) {\n image[\"comments\"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error(\"Could not allocate enough memory for the image. \" +\n \"Required: \" + bytesNeeded);\n } \n \n if (err instanceof ReferenceError) {\n if (err.message === \"Buffer is not defined\") {\n throw new Error(\"Buffer is not globally defined in this environment. \" +\n \"Consider setting useTArray to true\");\n }\n }\n throw err;\n }\n\n decoder.copyToImageData(image, opts.formatAsRGBA);\n\n return image;\n}\n", "var encode = require('./lib/encoder'),\n decode = require('./lib/decoder');\n\nmodule.exports = {\n encode: encode,\n decode: decode\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", "import type { HdrifyImage } from 'hdrify';\nimport { createElement } from 'react';\nimport { createRoot, type Root } from 'react-dom/client';\nimport { captureImage, type ImageViewerCaptureOptions } from './capture.js';\nimport {\n DEFAULT_IMAGE_VIEWER_SETTINGS,\n type ImageFit,\n ImageViewer,\n type ImageViewerSettings,\n type SettingsPanelMode,\n TONE_MAPPING_OPTIONS,\n} from './ImageViewer.js';\nimport { ViewerReadiness } from './readiness.js';\n\nconst HOST_CSS = ':host{display:block;height:480px;position:relative;min-width:0}:host([hidden]){display:none}';\n\nfunction oneOf<T extends string>(value: string | null, allowed: readonly T[]): T | undefined {\n return allowed.find((option) => option === value);\n}\n\n// Importing this module on an SSR server is safe; registration occurs only in a browser.\n// oxlint-disable-next-line typescript/no-extraneous-class\nconst ElementBase = typeof HTMLElement === 'undefined' ? (class {} as typeof HTMLElement) : HTMLElement;\n\n/**\n * `<image-viewer>`: displays an EXR, HDR or gain map JPEG with tone mapping. A web component wrapping\n * {@link ImageViewer}; it works in plain HTML and any framework.\n *\n * Attributes: `src`, `tone-mapping`, `exposure` (stops), `fit`, `settings-panel`, `exposure-control`.\n * Events: `progress` ({@link ImageViewerProgress}), `load` (`{ image }`), `error` (`{ message, error }`),\n * `settingschange` (`{ settings }`). Children with `slot=\"progress-bar\"` replace the default loading bar.\n */\nexport class ImageViewerElement extends ElementBase {\n static observedAttributes = ['src', 'tone-mapping', 'exposure', 'fit', 'settings-panel', 'exposure-control'];\n #root?: Root;\n #mount?: HTMLDivElement;\n #generation = 0;\n #reflecting = false;\n #image?: HdrifyImage;\n #data?: ArrayBuffer | Uint8Array;\n #settings: ImageViewerSettings = { ...DEFAULT_IMAGE_VIEWER_SETTINGS };\n #readiness = new ViewerReadiness();\n /** Incremented on every source change, so callbacks from a superseded load are ignored. */\n #revision = 0;\n /** The image currently drawn, for toBlob(). */\n #shown?: HdrifyImage;\n /** The source of the current load: what ImageViewer loads, by precedence. */\n #source?: unknown;\n\n /** URL to load; reflects the `src` attribute. */\n get src(): string {\n return this.getAttribute('src') ?? '';\n }\n set src(value: string) {\n this.setAttribute('src', value);\n }\n /** A decoded image to display; takes precedence over `data` and `src`. */\n get image(): HdrifyImage | undefined {\n return this.#image;\n }\n set image(value: HdrifyImage | undefined) {\n this.#image = value;\n this.#sourceChanged();\n this.#render();\n }\n /** Encoded EXR, HDR or gain map JPEG bytes; takes precedence over `src`. */\n get data(): ArrayBuffer | Uint8Array | undefined {\n return this.#data;\n }\n set data(value: ArrayBuffer | Uint8Array | undefined) {\n this.#data = value;\n this.#sourceChanged();\n this.#render();\n }\n /** The current display settings. Assign a partial object to change them. */\n get settings(): ImageViewerSettings {\n return { ...this.#settings };\n }\n set settings(patch: Partial<ImageViewerSettings>) {\n const next = { ...this.#settings, ...patch };\n this.#reflect([\n ['tone-mapping', next.toneMapping],\n ['exposure', String(next.exposure)],\n ['fit', next.fit],\n ]);\n this.#settings = next;\n this.#render();\n }\n\n connectedCallback(): void {\n ++this.#generation;\n if (!this.shadowRoot) {\n const shadow = this.attachShadow({ mode: 'open' });\n const style = document.createElement('style');\n style.textContent = HOST_CSS;\n this.#mount = document.createElement('div');\n this.#mount.style.height = '100%';\n shadow.append(style, this.#mount);\n }\n // A moved element keeps its React root and image; a new root loads the source again.\n if (!this.#root) {\n this.#root = createRoot(this.#mount!);\n this.#sourceChanged(true);\n }\n this.#render();\n }\n\n /**\n * Resolve once the current source is loaded and drawn (immediately with no source). If the source changes first,\n * it waits for the new source instead. Rejects with the load's error, or if the element is disconnected.\n */\n whenReady(): Promise<void> {\n return this.#readiness.whenReady();\n }\n\n /**\n * Wait for {@link whenReady}, then encode the tone-mapped image with the current settings, at the image's own\n * size unless `width`/`height` are given. Only the image is included, not the viewer's controls.\n */\n async toBlob(options?: ImageViewerCaptureOptions): Promise<Blob> {\n await this.whenReady();\n if (!this.#shown) throw new Error('No image is loaded.');\n return captureImage(this.#shown, this.#settings.toneMapping, 2 ** this.#settings.exposure, options);\n }\n\n disconnectedCallback(): void {\n const generation = ++this.#generation;\n // A parent React tree may be removing this element right now: unmount after that commit, and keep the root\n // if the element is moved (disconnected and reconnected synchronously).\n queueMicrotask(() => {\n if (generation !== this.#generation || this.isConnected) return;\n this.#root?.unmount();\n this.#root = undefined;\n this.#readiness.disconnect();\n ++this.#revision;\n });\n }\n\n attributeChangedCallback(name: string): void {\n if (this.#reflecting) return;\n if (name === 'src') this.#sourceChanged();\n const exposure = this.getAttribute('exposure');\n const toneMapping = oneOf(\n this.getAttribute('tone-mapping'),\n TONE_MAPPING_OPTIONS.map((option) => option.value),\n );\n const fit = oneOf<ImageFit>(this.getAttribute('fit'), ['contain', 'actual']);\n if (toneMapping) this.#settings.toneMapping = toneMapping;\n if (fit) this.#settings.fit = fit;\n if (exposure !== null && Number.isFinite(Number(exposure))) this.#settings.exposure = Number(exposure);\n this.#render();\n }\n\n // Mark a new load synchronously, so whenReady() called right after a change waits for the new source.\n #sourceChanged(reload = false): void {\n const source = this.#image ?? this.#data ?? this.getAttribute('src') ?? undefined;\n // Setting the same source again does not reload, so it must not start waiting for a load either.\n if (!this.#root || (source === this.#source && !reload)) return;\n this.#source = source;\n ++this.#revision;\n this.#shown = undefined;\n this.#readiness.pending();\n this.setAttribute('aria-busy', String(source !== undefined));\n if (source === undefined) this.#readiness.finish();\n }\n\n // Write attributes without re-entering attributeChangedCallback.\n #reflect(entries: [string, string][]): void {\n this.#reflecting = true;\n try {\n for (const [name, value] of entries) if (this.getAttribute(name) !== value) this.setAttribute(name, value);\n } finally {\n this.#reflecting = false;\n }\n }\n\n #dispatch(type: string, detail: unknown): void {\n this.dispatchEvent(new CustomEvent(type, { detail, bubbles: true, composed: true }));\n }\n\n #render(): void {\n const exposureControl = this.getAttribute('exposure-control');\n const revision = this.#revision;\n const current = () => revision === this.#revision;\n this.#root?.render(\n createElement(ImageViewer, {\n src: this.getAttribute('src') ?? undefined,\n data: this.#data,\n image: this.#image,\n ...this.#settings,\n settingsPanel: oneOf<SettingsPanelMode>(this.getAttribute('settings-panel'), ['open', 'closed', 'hidden']),\n exposureControl: exposureControl !== null && exposureControl !== 'false',\n style: { height: '100%' },\n onProgress: (progress) => {\n if (!current()) return;\n this.setAttribute('aria-busy', String(progress.totalProgress < 1));\n this.#dispatch('progress', progress);\n },\n onLoad: (image) => {\n if (!current()) return;\n this.#shown = image;\n this.setAttribute('aria-busy', 'false');\n this.#readiness.finish();\n this.#dispatch('load', { image });\n },\n onError: (error) => {\n if (!current()) return;\n this.setAttribute('aria-busy', 'false');\n this.#readiness.finish(error);\n this.#dispatch('error', { message: error.message, error });\n },\n onSettingsChange: (settings) => {\n this.settings = settings;\n this.#dispatch('settingschange', { settings: this.settings });\n },\n onSettingsPanelChange: (mode) => this.#reflect([['settings-panel', mode]]),\n }),\n );\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'image-viewer': ImageViewerElement;\n }\n}\n\nif (typeof customElements !== 'undefined' && !customElements.get('image-viewer'))\n customElements.define('image-viewer', ImageViewerElement);\n", "/**\n * CIE xy chromaticity coordinates for RGB color spaces.\n * Used to compute RGB \u2194 XYZ transformation matrices (Bruce Lindbloom method).\n */\n\nexport interface Chromaticities {\n redX: number;\n redY: number;\n greenX: number;\n greenY: number;\n blueX: number;\n blueY: number;\n whiteX: number;\n whiteY: number;\n}\n\n/** Rec. 709 / sRGB chromaticities (ITU-R BT.709, D65 white) */\nexport const CHROMATICITIES_REC709: Chromaticities = {\n redX: 0.64,\n redY: 0.33,\n greenX: 0.3,\n greenY: 0.6,\n blueX: 0.15,\n blueY: 0.06,\n whiteX: 0.3127,\n whiteY: 0.329,\n};\n\n/** Display P3 / P3-D65 chromaticities (Apple Display P3, D65 white) */\nexport const CHROMATICITIES_P3: Chromaticities = {\n redX: 0.68,\n redY: 0.32,\n greenX: 0.265,\n greenY: 0.69,\n blueX: 0.15,\n blueY: 0.06,\n whiteX: 0.3127,\n whiteY: 0.329,\n};\n\n/** Rec. 2020 chromaticities (ITU-R BT.2020, D65 white) */\nexport const CHROMATICITIES_REC2020: Chromaticities = {\n redX: 0.708,\n redY: 0.292,\n greenX: 0.17,\n greenY: 0.797,\n blueX: 0.131,\n blueY: 0.046,\n whiteX: 0.3127,\n whiteY: 0.329,\n};\n", "/**\n * Linear and display-referred color space types.\n * Linear spaces have no transfer function; display spaces have gamma/curve encoding.\n */\n\nimport type { Chromaticities } from './chromaticities.js';\nimport { CHROMATICITIES_P3, CHROMATICITIES_REC709, CHROMATICITIES_REC2020 } from './chromaticities.js';\n\n/** Linear light color spaces (no transfer function, scene-referred RGB) */\nexport type LinearColorSpace = 'linear-rec709' | 'linear-p3' | 'linear-rec2020';\n\n/** Display-referred color spaces (with transfer function) */\nexport type DisplayColorSpace = 'display-srgb' | 'display-p3' | 'display-rec2020';\n\n/** All linear color spaces */\nexport const LINEAR_COLOR_SPACES: readonly LinearColorSpace[] = [\n 'linear-rec709',\n 'linear-p3',\n 'linear-rec2020',\n] as const;\n\n/** All display color spaces */\nexport const DISPLAY_COLOR_SPACES: readonly DisplayColorSpace[] = [\n 'display-srgb',\n 'display-p3',\n 'display-rec2020',\n] as const;\n\n/** Chromaticities for each linear color space (for matrix building). */\nexport const LINEAR_TO_CHROMATICITIES: Record<LinearColorSpace, Chromaticities> = {\n 'linear-rec709': CHROMATICITIES_REC709,\n 'linear-p3': CHROMATICITIES_P3,\n 'linear-rec2020': CHROMATICITIES_REC2020,\n};\n\n/** Chromaticities for each display color space. */\nexport const DISPLAY_TO_CHROMATICITIES: Record<DisplayColorSpace, Chromaticities> = {\n 'display-srgb': CHROMATICITIES_REC709,\n 'display-p3': CHROMATICITIES_P3,\n 'display-rec2020': CHROMATICITIES_REC2020,\n};\n\n/** Display color space that corresponds to each linear space. */\nexport const LINEAR_TO_DISPLAY: Record<LinearColorSpace, DisplayColorSpace> = {\n 'linear-rec709': 'display-srgb',\n 'linear-p3': 'display-p3',\n 'linear-rec2020': 'display-rec2020',\n};\n\n/** Linear color space that corresponds to each display space. */\nexport const DISPLAY_TO_LINEAR: Record<DisplayColorSpace, LinearColorSpace> = {\n 'display-srgb': 'linear-rec709',\n 'display-p3': 'linear-p3',\n 'display-rec2020': 'linear-rec2020',\n};\n\n/** Tolerance for matching chromaticities (CIE xy) */\nconst CHROMATICITY_TOLERANCE = 0.01;\n\nfunction chromaticitiesMatch(a: { x: number; y: number }, b: { x: number; y: number }): boolean {\n return Math.abs(a.x - b.x) <= CHROMATICITY_TOLERANCE && Math.abs(a.y - b.y) <= CHROMATICITY_TOLERANCE;\n}\n\n/**\n * Map chromaticities to LinearColorSpace if they match a known space.\n * Returns undefined if no match (caller should default to linear-rec709).\n */\nexport function chromaticitiesToLinearColorSpace(ch: {\n redX: number;\n redY: number;\n greenX: number;\n greenY: number;\n blueX: number;\n blueY: number;\n whiteX: number;\n whiteY: number;\n}): LinearColorSpace | undefined {\n const red = { x: ch.redX, y: ch.redY };\n const green = { x: ch.greenX, y: ch.greenY };\n const blue = { x: ch.blueX, y: ch.blueY };\n const white = { x: ch.whiteX, y: ch.whiteY };\n\n for (const space of LINEAR_COLOR_SPACES) {\n const known = LINEAR_TO_CHROMATICITIES[space];\n if (\n chromaticitiesMatch(red, { x: known.redX, y: known.redY }) &&\n chromaticitiesMatch(green, { x: known.greenX, y: known.greenY }) &&\n chromaticitiesMatch(blue, { x: known.blueX, y: known.blueY }) &&\n chromaticitiesMatch(white, { x: known.whiteX, y: known.whiteY })\n ) {\n return space;\n }\n }\n return;\n}\n", "/**\n * RGB \u2194 XYZ matrix conversion from chromaticities (Bruce Lindbloom method).\n * Converts linear RGB between color spaces via XYZ as intermediate.\n * Precomputed linear-to-linear matrices are built once at module load.\n */\n\nimport type { Chromaticities } from './chromaticities.js';\nimport type { LinearColorSpace } from './colorSpaces.js';\nimport { LINEAR_TO_CHROMATICITIES } from './colorSpaces.js';\n\n/** 3\u00D73 row-major matrix: M[row][col] */\nexport type Mat3 = [[number, number, number], [number, number, number], [number, number, number]];\n\n/**\n * Build RGB \u2192 XYZ matrix from chromaticities.\n * Assumes linear RGB in [0, 1] and D65-like white point.\n * See http://www.brucelindbloom.com/Eqn_RGB_XYZ_Matrix.html\n */\nexport function chromaticitiesToRgbXyzMatrix(ch: Chromaticities): Mat3 {\n const xr = ch.redX / ch.redY;\n const yr = 1;\n const zr = (1 - ch.redX - ch.redY) / ch.redY;\n\n const xg = ch.greenX / ch.greenY;\n const yg = 1;\n const zg = (1 - ch.greenX - ch.greenY) / ch.greenY;\n\n const xb = ch.blueX / ch.blueY;\n const yb = 1;\n const zb = (1 - ch.blueX - ch.blueY) / ch.blueY;\n\n const xw = ch.whiteX / ch.whiteY;\n const yw = 1;\n const zw = (1 - ch.whiteX - ch.whiteY) / ch.whiteY;\n\n const det = xr * (yg * zb - yb * zg) - xg * (yr * zb - yb * zr) + xb * (yr * zg - yg * zr);\n const sr = (xw * (yg * zb - yb * zg) - xg * (yw * zb - yb * zw) + xb * (yw * zg - yg * zw)) / det;\n const sg = (xr * (yw * zb - yb * zw) - xw * (yr * zb - yb * zr) + xb * (yr * zw - yw * zr)) / det;\n const sb = (xr * (yg * zw - yw * zg) - xg * (yr * zw - yw * zr) + xw * (yr * zg - yg * zr)) / det;\n\n return [\n [sr * xr, sg * xg, sb * xb],\n [sr * yr, sg * yg, sb * yb],\n [sr * zr, sg * zg, sb * zb],\n ];\n}\n\n/**\n * Build XYZ \u2192 RGB matrix from chromaticities.\n * Inverse of chromaticitiesToRgbXyzMatrix; converts CIE XYZ to linear RGB.\n */\nexport function chromaticitiesToXyzRgbMatrix(ch: Chromaticities): Mat3 {\n return invert3(chromaticitiesToRgbXyzMatrix(ch));\n}\n\n/**\n * Build matrix to convert linear RGB from space A to space B.\n * RGB_B = M * RGB_A (apply as matrix-vector multiply).\n */\nexport function buildLinearToLinearMatrix(from: Chromaticities, to: Chromaticities): Mat3 {\n const mFrom = chromaticitiesToRgbXyzMatrix(from);\n const mTo = chromaticitiesToRgbXyzMatrix(to);\n const mToInv = invert3(mTo);\n return multiply3(mToInv, mFrom);\n}\n\nfunction multiply3(a: Mat3, b: Mat3): Mat3 {\n return [\n [\n a[0][0] * b[0][0] + a[0][1] * b[1][0] + a[0][2] * b[2][0],\n a[0][0] * b[0][1] + a[0][1] * b[1][1] + a[0][2] * b[2][1],\n a[0][0] * b[0][2] + a[0][1] * b[1][2] + a[0][2] * b[2][2],\n ],\n [\n a[1][0] * b[0][0] + a[1][1] * b[1][0] + a[1][2] * b[2][0],\n a[1][0] * b[0][1] + a[1][1] * b[1][1] + a[1][2] * b[2][1],\n a[1][0] * b[0][2] + a[1][1] * b[1][2] + a[1][2] * b[2][2],\n ],\n [\n a[2][0] * b[0][0] + a[2][1] * b[1][0] + a[2][2] * b[2][0],\n a[2][0] * b[0][1] + a[2][1] * b[1][1] + a[2][2] * b[2][1],\n a[2][0] * b[0][2] + a[2][1] * b[1][2] + a[2][2] * b[2][2],\n ],\n ];\n}\n\nfunction invert3(m: Mat3): Mat3 {\n const a = m[0][0];\n const b = m[0][1];\n const c = m[0][2];\n const d = m[1][0];\n const e = m[1][1];\n const f = m[1][2];\n const g = m[2][0];\n const h = m[2][1];\n const i = m[2][2];\n const det = a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g);\n const invDet = 1 / det;\n return [\n [(e * i - f * h) * invDet, (c * h - b * i) * invDet, (b * f - c * e) * invDet],\n [(f * g - d * i) * invDet, (a * i - c * g) * invDet, (c * d - a * f) * invDet],\n [(d * h - e * g) * invDet, (b * g - a * h) * invDet, (a * e - b * d) * invDet],\n ];\n}\n\n/** Flatten 3\u00D73 row-major matrix to number[] [m00,m01,m02,m10,m11,m12,m20,m21,m22]. */\nexport function mat3ToArray(m: Mat3): number[] {\n return [m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2]];\n}\n\n/** Mutable array-like for output (number[] or Float32Array). */\ntype WritableArray = number[] | Float32Array;\n\n/**\n * Apply 3\u00D73 matrix to RGB vector. Writes result to output.\n * Matrix: 9 elements row-major. Input/output: 3 elements each (Float32Array or number[]), or use offsets for strided data.\n */\nexport function applyMatrix3(\n matrix: ArrayLike<number>,\n input: ArrayLike<number>,\n output: WritableArray,\n inputOffset = 0,\n outputOffset = 0,\n): void {\n const r = input[inputOffset]!;\n const g = input[inputOffset + 1]!;\n const b = input[inputOffset + 2]!;\n (output as number[])[outputOffset] = matrix[0]! * r + matrix[1]! * g + matrix[2]! * b;\n (output as number[])[outputOffset + 1] = matrix[3]! * r + matrix[4]! * g + matrix[5]! * b;\n (output as number[])[outputOffset + 2] = matrix[6]! * r + matrix[7]! * g + matrix[8]! * b;\n}\n\n/**\n * Convert linear RGB in-place in a Float32Array (RGBA layout).\n * Mutates the buffer; does not create a copy.\n */\nexport function applyMatrix3ToFloat32Array(data: Float32Array, matrix: Mat3): void {\n const m = mat3ToArray(matrix);\n for (let i = 0; i < data.length; i += 4) {\n applyMatrix3(m, data, data, i, i);\n }\n}\n\n// --- Precomputed linear-to-linear matrices (built once at load) ---\n\nconst ch709 = LINEAR_TO_CHROMATICITIES['linear-rec709'];\nconst chP3 = LINEAR_TO_CHROMATICITIES['linear-p3'];\nconst ch2020 = LINEAR_TO_CHROMATICITIES['linear-rec2020'];\n\n/** Linear Rec.709 \u2192 Linear P3 */\nexport const LINEAR_REC709_TO_LINEAR_P3: Mat3 = buildLinearToLinearMatrix(ch709, chP3);\n/** Linear Rec.709 \u2192 Linear Rec.2020 */\nexport const LINEAR_REC709_TO_LINEAR_REC2020: Mat3 = buildLinearToLinearMatrix(ch709, ch2020);\n/** Linear P3 \u2192 Linear Rec.709 */\nexport const LINEAR_P3_TO_LINEAR_REC709: Mat3 = buildLinearToLinearMatrix(chP3, ch709);\n/** Linear P3 \u2192 Linear Rec.2020 */\nexport const LINEAR_P3_TO_LINEAR_REC2020: Mat3 = buildLinearToLinearMatrix(chP3, ch2020);\n/** Linear Rec.2020 \u2192 Linear Rec.709 */\nexport const LINEAR_REC2020_TO_LINEAR_REC709: Mat3 = buildLinearToLinearMatrix(ch2020, ch709);\n/** Linear Rec.2020 \u2192 Linear P3 */\nexport const LINEAR_REC2020_TO_LINEAR_P3: Mat3 = buildLinearToLinearMatrix(ch2020, chP3);\n\n/** Keys for off-diagonal linear\u2192linear conversion (from !== to). */\ntype LinearToLinearKey =\n | 'linear-rec709-linear-p3'\n | 'linear-rec709-linear-rec2020'\n | 'linear-p3-linear-rec709'\n | 'linear-p3-linear-rec2020'\n | 'linear-rec2020-linear-rec709'\n | 'linear-rec2020-linear-p3';\n\nconst LINEAR_MATRIX_MAP: Record<LinearToLinearKey, Mat3> = {\n 'linear-rec709-linear-p3': LINEAR_REC709_TO_LINEAR_P3,\n 'linear-rec709-linear-rec2020': LINEAR_REC709_TO_LINEAR_REC2020,\n 'linear-p3-linear-rec709': LINEAR_P3_TO_LINEAR_REC709,\n 'linear-p3-linear-rec2020': LINEAR_P3_TO_LINEAR_REC2020,\n 'linear-rec2020-linear-rec709': LINEAR_REC2020_TO_LINEAR_REC709,\n 'linear-rec2020-linear-p3': LINEAR_REC2020_TO_LINEAR_P3,\n};\n\n/**\n * Return the precomputed matrix to convert linear RGB from `from` to `to`.\n * Returns null when from === to (identity; caller should skip conversion).\n */\nexport function getLinearToLinearMatrix(from: LinearColorSpace, to: LinearColorSpace): Mat3 | null {\n if (from === to) return null;\n const key = `${from}-${to}` as LinearToLinearKey;\n return LINEAR_MATRIX_MAP[key];\n}\n", "/**\n * sRGB \u2194 linear transfer functions (IEC 61966-2-1).\n *\n * All functions operate on single-channel values in the range [0, 1].\n * Callers must normalize from byte values first (e.g. byte/255) to avoid\n * losing precision; do not apply these to raw 0\u2013255 values.\n */\n\n/** sRGB linear segment threshold (\u22480.04045 in sRGB space) */\nconst SRGB_LINEAR_KNEELOW = 0.04045;\n/** Reciprocal of 12.92 (avoid division in hot path) */\nconst SRGB_LINEAR_SCALE_LOW = 1 / 12.92;\n/** 1/1.055 \u2014 display segment scale (avoid division in hot path) */\nconst SRGB_DISPLAY_SCALE = 1 / 1.055;\n/** 1/2.4 \u2014 gamma exponent (avoid division in hot path) */\nconst SRGB_GAMMA = 1 / 2.4;\n/** Linear segment threshold for linear\u2192sRGB (\u22480.0031308 in linear space) */\nconst LINEAR_SRGB_KNEELOW = 0.0031308;\n\n/**\n * Convert a single sRGB-encoded channel value to linear light.\n * Input and output are in [0, 1]. Normalize from bytes (e.g. byte/255) before calling.\n *\n * @param x - sRGB value in [0, 1]\n * @returns Linear value in [0, 1]\n */\nexport function sRGBToLinear(x: number): number {\n if (x <= SRGB_LINEAR_KNEELOW) {\n return x * SRGB_LINEAR_SCALE_LOW;\n }\n return ((x + 0.055) * SRGB_DISPLAY_SCALE) ** 2.4;\n}\n\n/**\n * Convert a single linear channel value to sRGB-encoded.\n * Input and output are in [0, 1]. Apply after any linear math; multiply by 255 for bytes if needed.\n *\n * @param x - Linear value in [0, 1]\n * @returns sRGB value in [0, 1]\n */\nexport function linearTosRGB(x: number): number {\n if (x <= LINEAR_SRGB_KNEELOW) {\n return x * 12.92;\n }\n return 1.055 * x ** SRGB_GAMMA - 0.055;\n}\n", "/**\n * Transfer functions: linear \u2194 display-referred.\n * sRGB and Display P3 use the same IEC 61966-2-1 curve.\n * Rec. 2020 display (SDR) uses BT.1886 / 2.4 gamma.\n */\n\nimport type { DisplayColorSpace } from './colorSpaces.js';\nimport { linearTosRGB, sRGBToLinear } from './srgb.js';\n\n/** sRGB linear segment threshold (\u22480.04045 in sRGB space) */\nconst LINEAR_SRGB_KNEELOW = 0.0031308;\n\n/** 1/2.4 \u2014 Rec. 2020 gamma exponent (avoid division in hot path) */\nconst REC2020_GAMMA = 1 / 2.4;\n/** 1/12.92 \u2014 linear segment scale (avoid division in hot path) */\nconst REC2020_LINEAR_SCALE = 1 / 12.92;\n/** 1/1.055 \u2014 display segment scale (avoid division in hot path) */\nconst REC2020_DISPLAY_SCALE = 1 / 1.055;\n\n/**\n * Rec. 2020 / BT.1886 display: linear to 2.4 gamma.\n * EOTF^-1 for SDR Rec. 2020.\n */\nfunction linearToRec2020Display(x: number): number {\n if (x <= LINEAR_SRGB_KNEELOW) {\n return x * 12.92;\n }\n return 1.055 * x ** REC2020_GAMMA - 0.055;\n}\n\n/**\n * Rec. 2020 / BT.1886 display: 2.4 gamma to linear.\n * EOTF for SDR Rec. 2020.\n */\nfunction rec2020DisplayToLinear(x: number): number {\n if (x <= 0.04045) {\n return x * REC2020_LINEAR_SCALE;\n }\n return ((x + 0.055) * REC2020_DISPLAY_SCALE) ** 2.4;\n}\n\n/**\n * Convert linear RGB to display-referred.\n * sRGB and Display P3 use the same transfer (IEC 61966-2-1).\n */\nexport function linearToDisplay(r: number, g: number, b: number, space: DisplayColorSpace): [number, number, number] {\n switch (space) {\n case 'display-srgb':\n case 'display-p3':\n return [linearTosRGB(r), linearTosRGB(g), linearTosRGB(b)];\n case 'display-rec2020':\n return [linearToRec2020Display(r), linearToRec2020Display(g), linearToRec2020Display(b)];\n default: {\n const _: never = space;\n return [r, g, b];\n }\n }\n}\n\n/**\n * Convert display-referred RGB to linear.\n */\nexport function displayToLinear(r: number, g: number, b: number, space: DisplayColorSpace): [number, number, number] {\n switch (space) {\n case 'display-srgb':\n case 'display-p3':\n return [sRGBToLinear(r), sRGBToLinear(g), sRGBToLinear(b)];\n case 'display-rec2020':\n return [rec2020DisplayToLinear(r), rec2020DisplayToLinear(g), rec2020DisplayToLinear(b)];\n default: {\n const _: never = space;\n return [r, g, b];\n }\n }\n}\n", "/**\n * Color space conversion utilities.\n * convertFloat32ToLinearColorSpace returns original data when no conversion needed.\n */\n\nimport type { HdrifyImage } from '../hdrifyImage.js';\nimport type { DisplayColorSpace, LinearColorSpace } from './colorSpaces.js';\nimport { DISPLAY_TO_LINEAR } from './colorSpaces.js';\nimport { applyMatrix3, getLinearToLinearMatrix, mat3ToArray } from './matrixConversion.js';\nimport { displayToLinear, linearToDisplay } from './transfer.js';\n\n/**\n * Convert Float32Array RGBA pixel data from one linear color space to another.\n * If from === to, returns the original data without copying.\n * Otherwise creates a new Float32Array (does not mutate input).\n *\n * @param data - RGBA Float32Array\n * @param _width - Image width\n * @param _height - Image height\n * @param from - Source linear color space\n * @param to - Target linear color space\n * @returns Original data if no conversion; otherwise new Float32Array with converted pixels\n */\nexport function convertFloat32ToLinearColorSpace(\n data: Float32Array,\n _width: number,\n _height: number,\n from: LinearColorSpace,\n to: LinearColorSpace,\n): Float32Array {\n const matrix = getLinearToLinearMatrix(from, to);\n if (matrix === null) {\n return data;\n }\n\n const out = new Float32Array(data.length);\n out.set(data);\n const m = mat3ToArray(matrix);\n for (let i = 0; i < data.length; i += 4) {\n applyMatrix3(m, data, out, i, i);\n }\n\n return out;\n}\n\n/**\n * Convert HdrifyImage to a different linear color space.\n * Returns a new image with converted data.\n */\nexport function convertLinearColorSpace(image: HdrifyImage, to: LinearColorSpace): HdrifyImage {\n const data = convertFloat32ToLinearColorSpace(image.data, image.width, image.height, image.linearColorSpace, to);\n\n return {\n ...image,\n data,\n linearColorSpace: to,\n };\n}\n\n/**\n * Convert linear HdrifyImage to display-referred for a given display space.\n * Converts primaries to match display space if needed, then applies transfer function.\n * Returns new image with display-encoded data in Float32Array (values 0-1).\n */\nexport function convertLinearToDisplay(\n image: HdrifyImage,\n to: DisplayColorSpace,\n): HdrifyImage & { displayColorSpace: DisplayColorSpace } {\n const targetLinear = DISPLAY_TO_LINEAR[to];\n const linearData = convertFloat32ToLinearColorSpace(\n image.data,\n image.width,\n image.height,\n image.linearColorSpace,\n targetLinear,\n );\n\n const out = new Float32Array(linearData.length);\n const pixelCount = image.width * image.height;\n\n for (let i = 0; i < pixelCount; i++) {\n const si = i * 4;\n const r = linearData[si]!;\n const g = linearData[si + 1]!;\n const b = linearData[si + 2]!;\n const a = linearData[si + 3]!;\n\n const [r2, g2, b2] = linearToDisplay(r, g, b, to);\n out[si] = r2;\n out[si + 1] = g2;\n out[si + 2] = b2;\n out[si + 3] = a;\n }\n\n return {\n ...image,\n data: out,\n displayColorSpace: to,\n };\n}\n\n/**\n * Convert display-referred Float32Array to linear HdrifyImage.\n * Primaries are determined by the display space.\n */\nexport function convertDisplayToLinear(\n data: Float32Array,\n width: number,\n height: number,\n from: DisplayColorSpace,\n linearColorSpace: LinearColorSpace,\n): HdrifyImage {\n const fromLinear = DISPLAY_TO_LINEAR[from];\n const matrix = getLinearToLinearMatrix(fromLinear, linearColorSpace);\n\n const linearData = new Float32Array(data.length);\n const pixelCount = width * height;\n\n const m = matrix !== null ? mat3ToArray(matrix) : null;\n for (let i = 0; i < pixelCount; i++) {\n const si = i * 4;\n const r = data[si]!;\n const g = data[si + 1]!;\n const b = data[si + 2]!;\n const a = data[si + 3]!;\n\n const [rLinear, gLinear, bLinear] = displayToLinear(r, g, b, from);\n linearData[si] = rLinear;\n linearData[si + 1] = gLinear;\n linearData[si + 2] = bLinear;\n linearData[si + 3] = a;\n if (m !== null) {\n applyMatrix3(m, linearData, linearData, si, si);\n }\n }\n\n return {\n width,\n height,\n data: linearData,\n linearColorSpace,\n };\n}\n", "/**\n * EXR (OpenEXR) constants\n * OpenEXR standard magic numbers, sizes, and compression types\n */\n\n// PIZ/Huffman constants\nexport const USHORT_RANGE = 1 << 16;\nexport const BITMAP_SIZE = USHORT_RANGE >> 3;\n\nexport const HUF_ENCBITS = 16;\nexport const HUF_DECBITS = 14;\nexport const HUF_ENCSIZE = (1 << HUF_ENCBITS) + 1;\nexport const HUF_DECSIZE = 1 << HUF_DECBITS;\nexport const HUF_DECMASK = HUF_DECSIZE - 1;\n\nexport const SHORT_ZEROCODE_RUN = 59;\nexport const LONG_ZEROCODE_RUN = 63;\nexport const SHORTEST_LONG_RUN = 2 + LONG_ZEROCODE_RUN - SHORT_ZEROCODE_RUN;\n\n// Wavelet constants\nexport const NBITS = 16;\nexport const A_OFFSET = 1 << (NBITS - 1);\nexport const MOD_MASK = (1 << NBITS) - 1;\n\n// Size constants\nexport const ULONG_SIZE = 8;\nexport const FLOAT32_SIZE = 4;\nexport const INT32_SIZE = 4;\nexport const INT16_SIZE = 2;\nexport const INT8_SIZE = 1;\n\n// Compression types (OpenEXR standard)\nexport const NO_COMPRESSION = 0;\nexport const RLE_COMPRESSION = 1;\nexport const ZIPS_COMPRESSION = 2;\nexport const ZIP_COMPRESSION = 3;\nexport const PIZ_COMPRESSION = 4;\nexport const PXR24_COMPRESSION = 5;\nexport const B44_COMPRESSION = 6;\nexport const B44A_COMPRESSION = 7;\nexport const DWAA_COMPRESSION = 8;\nexport const DWAB_COMPRESSION = 9;\n\n/** EXR compression name \u2192 OpenEXR compression code. Single source of truth for all packages. */\nexport const EXR_COMPRESSION_CODES = {\n none: NO_COMPRESSION,\n rle: RLE_COMPRESSION,\n zips: ZIPS_COMPRESSION,\n zip: ZIP_COMPRESSION,\n piz: PIZ_COMPRESSION,\n pxr24: PXR24_COMPRESSION,\n b44: B44_COMPRESSION,\n b44a: B44A_COMPRESSION,\n dwaa: DWAA_COMPRESSION,\n dwab: DWAB_COMPRESSION,\n} as const;\n\nexport type ExrCompression = keyof typeof EXR_COMPRESSION_CODES;\n\n/** All supported EXR compression names, in OpenEXR code order. */\nexport const EXR_COMPRESSIONS = Object.keys(EXR_COMPRESSION_CODES) as ExrCompression[];\n\n/** OpenEXR compression code \u2192 name */\nexport const EXR_COMPRESSION_NAMES: Record<number, ExrCompression> = Object.fromEntries(\n EXR_COMPRESSIONS.map((name) => [EXR_COMPRESSION_CODES[name], name]),\n);\n\n// Pixel types\nexport const UINT = 0;\nexport const HALF = 1;\nexport const FLOAT = 2;\n\n// EXR magic number\nexport const EXR_MAGIC = 20000630;\n", "/**\n * Half-precision (16-bit) float encoding and decoding\n */\n\nconst _floatView = new Float32Array(1);\nconst _int32View = new Int32Array(_floatView.buffer);\n\n/**\n * Encode a 32-bit float to half-precision (16-bit) per IEEE 754-2008.\n * Uses OpenEXR-style conversion with rounding (from gamedev.stackexchange).\n */\nexport function encodeFloat16(float32: number): number {\n _floatView[0] = float32;\n const x = _int32View[0]!;\n\n const bits = (x >> 16) & 0x8000;\n const m = (x >> 12) & 0x07ff;\n const e = (x >> 23) & 0xff;\n\n if (e < 103) return bits;\n if (e > 142) {\n if (e === 255 && x & 0x007fffff) return bits | 0x7e00; // NaN\n return bits | 0x7c00; // Inf or overflow\n }\n if (e < 113) {\n const mm = m | 0x0800;\n return bits | ((mm >> (114 - e)) + ((mm >> (113 - e)) & 1));\n }\n return bits | ((((e - 112) << 10) | (m >> 1)) + (m & 1));\n}\n\n/**\n * Decode a half-precision float (16-bit) to a 32-bit float\n */\nexport function decodeFloat16(uint16: number): number {\n const sign = (uint16 & 0x8000) >> 15;\n const exponent = (uint16 & 0x7c00) >> 10;\n const mantissa = uint16 & 0x03ff;\n\n if (exponent === 0) {\n // Denormalized number or zero\n if (mantissa === 0) {\n return sign === 0 ? 0.0 : -0.0;\n }\n return (sign === 0 ? 1 : -1) * 2 ** -14 * (mantissa / 1024);\n }\n if (exponent === 31) {\n // Infinity or NaN\n if (mantissa === 0) {\n return sign === 0 ? Infinity : -Infinity;\n }\n return NaN;\n }\n\n const value = 2 ** (exponent - 15) * (1 + mantissa / 1024);\n return sign === 0 ? value : -value;\n}\n\nlet halfToFloatLut: Float32Array | null = null;\n\n/** 65536-entry half bits -> float32 table, built once on first use. */\nexport function getHalfToFloatLut(): Float32Array {\n if (halfToFloatLut) return halfToFloatLut;\n const lut = new Float32Array(65536);\n for (let i = 0; i < 65536; i++) lut[i] = decodeFloat16(i);\n halfToFloatLut = lut;\n return lut;\n}\n", "/**\n * B44/B44A core 4x4-block codec (OpenEXR internal_b44.c).\n * Packs 16 half-float samples (32 bytes) into 14 bytes, or 3 bytes for a\n * flat (constant-value) block when B44A's flat-field optimization applies.\n */\n\nimport { decodeFloat16, encodeFloat16 } from './halfFloat.js';\n\nconst BIAS = 0x20;\n\nfunction shiftAndRound(x: number, shift: number): number {\n x <<= 1;\n const a = (1 << shift) - 1;\n shift += 1;\n const b = (x >> shift) & 1;\n return (x + a + b) >> shift;\n}\n\n// Lazily-built 64K-entry LUTs for B44's optional linear<->log conversion (gated by channel.pLinear).\nlet expTable: Uint16Array | undefined;\nlet logTable: Uint16Array | undefined;\n\nfunction b44ConvertFromLinear(x: number): number {\n if ((x & 0x7c00) === 0x7c00) return 0; // infinity/nan\n if (x >= 0x558c && x < 0x8000) return 0x7bff; // >= 8 * log(HALF_MAX) -> HALF_MAX\n return encodeFloat16(Math.exp(decodeFloat16(x) / 8));\n}\n\nfunction b44ConvertToLinear(x: number): number {\n if ((x & 0x7c00) === 0x7c00) return 0; // infinity/nan\n if (x > 0x8000) return 0; // negative (excluding -0.0)\n return encodeFloat16(8 * Math.log(decodeFloat16(x)));\n}\n\nfunction ensureLinearTables(): void {\n if (expTable && logTable) return;\n expTable = new Uint16Array(65536);\n logTable = new Uint16Array(65536);\n for (let i = 0; i < 65536; i++) {\n expTable[i] = b44ConvertFromLinear(i);\n logTable[i] = b44ConvertToLinear(i);\n }\n}\n\nexport function convertBlockFromLinear(s: Uint16Array): void {\n ensureLinearTables();\n for (let i = 0; i < 16; i++) s[i] = expTable![s[i]!]!;\n}\n\nexport function convertBlockToLinear(s: Uint16Array): void {\n ensureLinearTables();\n for (let i = 0; i < 16; i++) s[i] = logTable![s[i]!]!;\n}\n\n/**\n * Pack a 4x4 block of 16 half-float bit patterns into `out` (a 14-byte buffer).\n * Returns the number of bytes written: 14, or 3 for a flat block (B44A only).\n */\nexport function packB44Block(s: Uint16Array, out: Uint8Array, flatFields: boolean, exactMax: boolean): number {\n const t = new Uint16Array(16);\n for (let i = 0; i < 16; i++) {\n const v = s[i]!;\n if ((v & 0x7c00) === 0x7c00) t[i] = 0x8000;\n else if (v & 0x8000) t[i] = ~v & 0xffff;\n else t[i] = v | 0x8000;\n }\n\n let tMax = 0;\n for (let i = 0; i < 16; i++) if (tMax < t[i]!) tMax = t[i]!;\n\n const d = new Int32Array(16);\n const r = new Int32Array(15);\n let shift = -1;\n let rMin = 0;\n let rMax = 0;\n\n do {\n shift += 1;\n for (let i = 0; i < 16; i++) d[i] = shiftAndRound(tMax - t[i]!, shift);\n\n r[0] = d[0]! - d[4]! + BIAS;\n r[1] = d[4]! - d[8]! + BIAS;\n r[2] = d[8]! - d[12]! + BIAS;\n\n r[3] = d[0]! - d[1]! + BIAS;\n r[4] = d[4]! - d[5]! + BIAS;\n r[5] = d[8]! - d[9]! + BIAS;\n r[6] = d[12]! - d[13]! + BIAS;\n\n r[7] = d[1]! - d[2]! + BIAS;\n r[8] = d[5]! - d[6]! + BIAS;\n r[9] = d[9]! - d[10]! + BIAS;\n r[10] = d[13]! - d[14]! + BIAS;\n\n r[11] = d[2]! - d[3]! + BIAS;\n r[12] = d[6]! - d[7]! + BIAS;\n r[13] = d[10]! - d[11]! + BIAS;\n r[14] = d[14]! - d[15]! + BIAS;\n\n rMin = r[0]!;\n rMax = r[0]!;\n for (let i = 1; i < 15; i++) {\n if (rMin > r[i]!) rMin = r[i]!;\n if (rMax < r[i]!) rMax = r[i]!;\n }\n } while (rMin < 0 || rMax > 0x3f);\n\n if (rMin === BIAS && rMax === BIAS && flatFields) {\n out[0] = t[0]! >> 8;\n out[1] = t[0]! & 0xff;\n out[2] = 0xfc;\n return 3;\n }\n\n if (exactMax) {\n t[0] = (tMax - ((d[0]! << shift) & 0xffff)) & 0xffff;\n }\n\n out[0] = t[0]! >> 8;\n out[1] = t[0]! & 0xff;\n out[2] = (shift << 2) | (r[0] >> 4);\n out[3] = (r[0] << 4) | (r[1] >> 2);\n out[4] = (r[1] << 6) | r[2];\n out[5] = (r[3] << 2) | (r[4] >> 4);\n out[6] = (r[4] << 4) | (r[5] >> 2);\n out[7] = (r[5] << 6) | r[6];\n out[8] = (r[7] << 2) | (r[8] >> 4);\n out[9] = (r[8] << 4) | (r[9] >> 2);\n out[10] = (r[9] << 6) | r[10];\n out[11] = (r[11] << 2) | (r[12] >> 4);\n out[12] = (r[12] << 4) | (r[13] >> 2);\n out[13] = (r[13] << 6) | r[14];\n for (let i = 0; i < 14; i++) out[i] = out[i]! & 0xff;\n\n return 14;\n}\n\nfunction unmap(s: Uint16Array): void {\n for (let i = 0; i < 16; i++) {\n const v = s[i]!;\n s[i] = v & 0x8000 ? v & 0x7fff : ~v & 0xffff;\n }\n}\n\n/** Unpack a 14-byte B44 block into 16 half-float bit patterns. */\nexport function unpackB44Block14(b: Uint8Array, s: Uint16Array): void {\n s[0] = ((b[0]! << 8) | b[1]!) & 0xffff;\n\n const shift = b[2]! >> 2;\n const bias = (0x20 << shift) & 0xffff;\n\n s[4] = (s[0] + ((((b[2]! << 4) | (b[3]! >> 4)) & 0x3f) << shift) - bias) & 0xffff;\n s[8] = (s[4] + ((((b[3]! << 2) | (b[4]! >> 6)) & 0x3f) << shift) - bias) & 0xffff;\n s[12] = (s[8] + ((b[4]! & 0x3f) << shift) - bias) & 0xffff;\n\n s[1] = (s[0] + ((b[5]! >> 2) << shift) - bias) & 0xffff;\n s[5] = (s[4] + ((((b[5]! << 4) | (b[6]! >> 4)) & 0x3f) << shift) - bias) & 0xffff;\n s[9] = (s[8] + ((((b[6]! << 2) | (b[7]! >> 6)) & 0x3f) << shift) - bias) & 0xffff;\n s[13] = (s[12] + ((b[7]! & 0x3f) << shift) - bias) & 0xffff;\n\n s[2] = (s[1] + ((b[8]! >> 2) << shift) - bias) & 0xffff;\n s[6] = (s[5] + ((((b[8]! << 4) | (b[9]! >> 4)) & 0x3f) << shift) - bias) & 0xffff;\n s[10] = (s[9] + ((((b[9]! << 2) | (b[10]! >> 6)) & 0x3f) << shift) - bias) & 0xffff;\n s[14] = (s[13] + ((b[10]! & 0x3f) << shift) - bias) & 0xffff;\n\n s[3] = (s[2] + ((b[11]! >> 2) << shift) - bias) & 0xffff;\n s[7] = (s[6] + ((((b[11]! << 4) | (b[12]! >> 4)) & 0x3f) << shift) - bias) & 0xffff;\n s[11] = (s[10] + ((((b[12]! << 2) | (b[13]! >> 6)) & 0x3f) << shift) - bias) & 0xffff;\n s[15] = (s[14] + ((b[13]! & 0x3f) << shift) - bias) & 0xffff;\n\n unmap(s);\n}\n\n/** Unpack a 3-byte flat B44A block into 16 identical half-float bit patterns. */\nexport function unpackB44Block3(b: Uint8Array, s: Uint16Array): void {\n const v = (b[0]! << 8) | b[1]!;\n s[0] = v & 0x8000 ? v & 0x7fff : ~v & 0xffff;\n for (let i = 1; i < 16; i++) s[i] = s[0]!;\n}\n", "/**\n * B44/B44A decompression for OpenEXR.\n * Lossy 4x4-block compression for HALF channels only; FLOAT/UINT channels\n * are stored uncompressed. See b44Codec.ts for the core block codec.\n */\n\nimport { convertBlockToLinear, unpackB44Block14, unpackB44Block3 } from './b44Codec.js';\nimport { FLOAT, FLOAT32_SIZE, HALF, INT16_SIZE, UINT } from './exrConstants.js';\nimport type { ExrChannel } from './exrTypes.js';\n\nfunction getBytesPerSample(pixelType: number): number {\n switch (pixelType) {\n case UINT:\n return 4;\n case HALF:\n return INT16_SIZE;\n case FLOAT:\n return FLOAT32_SIZE;\n default:\n return INT16_SIZE;\n }\n}\n\n/**\n * Decompress a B44/B44A-compressed scanline block.\n * Output is channel-planar, line-major (same convention as PXR24/DWA) for readExr parsing.\n */\nexport function decompressB44(\n compressedData: Uint8Array,\n width: number,\n channels: ExrChannel[],\n _dataSize: number,\n blockHeight: number,\n): Uint8Array {\n const numChannels = channels.length;\n const s = new Uint16Array(16);\n let readOffset = 0;\n\n const channelScratch: Uint8Array[] = [];\n\n for (let c = 0; c < numChannels; c++) {\n const channel = channels[c]!;\n const bytesPerSample = getBytesPerSample(channel.pixelType);\n const nBytes = width * blockHeight * bytesPerSample;\n const scratch = new Uint8Array(nBytes);\n channelScratch.push(scratch);\n if (nBytes === 0) continue;\n\n if (channel.pixelType !== HALF) {\n if (readOffset + nBytes > compressedData.length) {\n throw new Error('B44: not enough data for uncompressed channel');\n }\n scratch.set(compressedData.subarray(readOffset, readOffset + nBytes));\n readOffset += nBytes;\n continue;\n }\n\n const view = new Uint16Array(scratch.buffer);\n\n for (let y = 0; y < blockHeight; y += 4) {\n for (let x = 0; x < width; x += 4) {\n if (readOffset + 3 > compressedData.length) {\n throw new Error('B44: truncated block data');\n }\n if (compressedData[readOffset + 2]! >= 13 << 2) {\n unpackB44Block3(compressedData.subarray(readOffset, readOffset + 3), s);\n readOffset += 3;\n } else {\n if (readOffset + 14 > compressedData.length) {\n throw new Error('B44: truncated block data');\n }\n unpackB44Block14(compressedData.subarray(readOffset, readOffset + 14), s);\n readOffset += 14;\n }\n\n if (channel.pLinear) convertBlockToLinear(s);\n\n const colsToWrite = Math.min(4, width - x);\n const rowsToWrite = Math.min(4, blockHeight - y);\n for (let ry = 0; ry < rowsToWrite; ry++) {\n const lineStart = (y + ry) * width;\n for (let rx = 0; rx < colsToWrite; rx++) {\n view[lineStart + x + rx] = s[ry * 4 + rx]!;\n }\n }\n }\n }\n }\n\n const totalOutputSize = channelScratch.reduce((sum, ch) => sum + ch.length, 0);\n const output = new Uint8Array(totalOutputSize);\n let writeOffset = 0;\n for (let ly = 0; ly < blockHeight; ly++) {\n for (let c = 0; c < numChannels; c++) {\n const channel = channels[c]!;\n const bytesPerSample = getBytesPerSample(channel.pixelType);\n const scratch = channelScratch[c]!;\n const lineStart = ly * width * bytesPerSample;\n const lineLength = width * bytesPerSample;\n output.set(scratch.subarray(lineStart, lineStart + lineLength), writeOffset);\n writeOffset += lineLength;\n }\n }\n\n return output;\n}\n", "// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n , // determined by compression function\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data[0]) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush(ev.data[1]);\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n // can fail for cross-realm Uint8Array, but ok - only a small performance penalty\n w.postMessage([d, t = f], d.buffer instanceof ArrayBuffer ? [d.buffer] : []);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function (sync) { w.postMessage([0, sync]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\n// read 8 bytes\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n if (final) {\n // cleanup unneeded buffers/state to reduce memory usage\n this.s = this.o = {};\n this.b = et;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n * @param sync Whether to flush to a byte boundary. A sync flush takes 4-5\n * extra bytes, but guarantees all pushed data is immediately\n * decompressible. A separate DEFLATE stream may be concatenated\n * with the current output after a sync flush.\n */\n Deflate.prototype.flush = function (sync) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n // could technically skip writing the type-0 block for (this.s.r & 7) == 0,\n // but the deterministic trailer (00 00 FF FF) is useful in some situations\n if (sync) {\n var c = new u8(6);\n c[0] = this.s.r >> 3;\n // write empty, non-final type-0 block\n var ep = wfblk(c, this.s.r, et);\n this.s.r = 0;\n this.ondata(c.subarray(0, ep >> 3), false);\n }\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n * @param sync Whether to flush to a byte boundary. A sync flush takes 4-5\n * extra bytes, but guarantees all pushed data is immediately\n * decompressible.\n */\n Gzip.prototype.flush = function (sync) {\n Deflate.prototype.flush.call(this, sync);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, 0);\n // process concatenated GZIP\n if (this.s.f && !this.s.l) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n else if (final) {\n Inflate.prototype.c.call(this, final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n * @param sync Whether to flush to a byte boundary. A sync flush takes 4-5\n * extra bytes, but guarantees all pushed data is immediately\n * decompressible.\n */\n Zlib.prototype.flush = function (sync) {\n Deflate.prototype.flush.call(this, sync);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (ArrayBuffer.isView(val))\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), efl = b2(d, b + 30), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl;\n var _a = z64hs(d, es, efl, z, b4(d, b + 20), b4(d, b + 24), b4(d, b + 42)), sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + efl + b2(d, b + 32), off];\n};\n// read zip64 header sizes\nvar z64hs = function (d, b, l, z, sc, su, off) {\n var nsc = sc == 4294967295, nsu = su == 4294967295, noff = off == 4294967295, e = b + l;\n var nf = nsc + nsu + noff;\n if (z && nf) {\n for (; b + 4 < e; b += 4 + b2(d, b + 2)) {\n if (b2(d, b) == 1) {\n return [\n nsc ? b8(d, b + 4 + 8 * nsu) : sc,\n nsu ? b8(d, b + 4) : su,\n noff ? b8(d, b + 4 + 8 * (nsu + nsc)) : off,\n 1\n ];\n }\n }\n // z == 2 for unknown whether or not zip64\n if (z < 2)\n err(13);\n }\n return [sc, su, off, 0];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n // we shouldn't really do this cast, but properly handling ArrayBufferLike\n // makes the API unergonomic with Buffer\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (chunk, final) {\n // same as ZipPassThrough: cast to retain Buffer ergonomics\n this.ondata(null, chunk, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (chunk, final) {\n try {\n this.i.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (chunk, final) {\n if (this.i.terminate)\n chunk = slc(chunk, 0);\n this.i.push(chunk, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var lsc = b4(buf, i + 18), lsu = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n var _a = z64hs(buf, i, es, 2, lsc, lsu, 0), sc_1 = _a[0], su_1 = _a[1], z64 = _a[3];\n if (dd)\n sc_1 = -1 - z64;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = b4(data, e - 20) == 0x7064B50;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = b4(data, e - 20) == 0x7064B50;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n", "/**\n * DWAA/DWAB channel classification, shared by the encoder and decoder.\n * Matches DwaCompressor_classifyChannels: channels are grouped into lossy-DCT (CSC-grouped\n * RGB or single channel), RLE (e.g. alpha), or UNKNOWN (zlib) schemes based on name suffix\n * and pixel type. RGB triplets sharing a name prefix and sampling are CSC-grouped.\n *\n * Since DWA v2 the rules are stored in every chunk (see serializeDwaRules/parseDwaRules,\n * mirroring Classifier_write/Classifier_read in internal_dwa_classifier.h); v0/v1 chunks\n * use the built-in case-insensitive legacy rules.\n */\n\nimport { FLOAT, HALF, UINT } from './exrConstants.js';\nimport type { ExrChannel } from './exrTypes.js';\n\nexport type DwaScheme = 'DCT' | 'RLE' | 'UNKNOWN';\n\n/** Wire encoding of DwaScheme (CompressorScheme enum: UNKNOWN=0, LOSSY_DCT=1, RLE=2). */\nconst SCHEME_CODES: DwaScheme[] = ['UNKNOWN', 'DCT', 'RLE'];\n\nexport interface DwaRule {\n suffix: string;\n scheme: DwaScheme;\n types: number[];\n cscIdx: number;\n caseInsensitive: boolean;\n}\n\nexport const DEFAULT_RULES: DwaRule[] = [\n { suffix: 'R', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: 0, caseInsensitive: false },\n { suffix: 'G', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: 1, caseInsensitive: false },\n { suffix: 'B', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: 2, caseInsensitive: false },\n { suffix: 'Y', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: -1, caseInsensitive: false },\n { suffix: 'BY', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: -1, caseInsensitive: false },\n { suffix: 'RY', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: -1, caseInsensitive: false },\n { suffix: 'A', scheme: 'RLE', types: [UINT, HALF, FLOAT], cscIdx: -1, caseInsensitive: false },\n];\n\nexport const LEGACY_RULES: DwaRule[] = [\n { suffix: 'r', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: 0, caseInsensitive: true },\n { suffix: 'red', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: 0, caseInsensitive: true },\n { suffix: 'g', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: 1, caseInsensitive: true },\n { suffix: 'grn', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: 1, caseInsensitive: true },\n { suffix: 'green', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: 1, caseInsensitive: true },\n { suffix: 'b', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: 2, caseInsensitive: true },\n { suffix: 'blu', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: 2, caseInsensitive: true },\n { suffix: 'blue', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: 2, caseInsensitive: true },\n { suffix: 'y', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: -1, caseInsensitive: true },\n { suffix: 'by', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: -1, caseInsensitive: true },\n { suffix: 'ry', scheme: 'DCT', types: [HALF, FLOAT], cscIdx: -1, caseInsensitive: true },\n { suffix: 'a', scheme: 'RLE', types: [UINT, HALF, FLOAT], cscIdx: -1, caseInsensitive: true },\n];\n\nexport function findSuffix(name: string): string {\n const dot = name.lastIndexOf('.');\n return dot >= 0 ? name.slice(dot + 1) : name;\n}\n\nfunction ruleMatches(rule: DwaRule, suffix: string, pixelType: number): boolean {\n if (!rule.types.includes(pixelType)) return false;\n return rule.caseInsensitive ? rule.suffix.toLowerCase() === suffix.toLowerCase() : rule.suffix === suffix;\n}\n\nexport function classifyChannel(\n name: string,\n pixelType: number,\n rules: DwaRule[],\n): { scheme: DwaScheme; cscIdx: number } {\n const suffix = findSuffix(name);\n for (const rule of rules) {\n if (ruleMatches(rule, suffix, pixelType)) return { scheme: rule.scheme, cscIdx: rule.cscIdx };\n }\n return { scheme: 'UNKNOWN', cscIdx: -1 };\n}\n\n/**\n * Serialize the rules that apply to `channels` as a DWA v2 chunk rule block: uint16 total\n * size (including itself), then per rule: NUL-terminated suffix, flags byte, pixel type byte.\n * Mirrors DwaCompressor_writeRelevantChannelRules (one entry per suffix+type actually used).\n */\nexport function serializeDwaRules(channels: ExrChannel[], rules: DwaRule[] = DEFAULT_RULES): Uint8Array {\n const bytes: number[] = [0, 0];\n for (const rule of rules) {\n for (const type of rule.types) {\n const single = { ...rule, types: [type] };\n if (!channels.some((ch) => ruleMatches(single, findSuffix(ch.name), ch.pixelType))) continue;\n bytes.push(...new TextEncoder().encode(rule.suffix), 0);\n bytes.push(\n (((rule.cscIdx + 1) & 15) << 4) | (SCHEME_CODES.indexOf(rule.scheme) << 2) | (rule.caseInsensitive ? 1 : 0),\n type,\n );\n }\n }\n const out = new Uint8Array(bytes);\n new DataView(out.buffer).setUint16(0, out.length, true);\n return out;\n}\n\n/** Parse a DWA v2 rule block (see serializeDwaRules). Returns the rules and the block's byte size. */\nexport function parseDwaRules(data: Uint8Array): { rules: DwaRule[]; size: number } {\n if (data.length < 2) throw new Error('DWA: truncated channel rule block');\n const size = data[0]! | (data[1]! << 8);\n if (size < 2 || size > data.length) throw new Error('DWA: invalid channel rule size');\n const rules: DwaRule[] = [];\n let p = 2;\n while (p < size) {\n const end = data.indexOf(0, p);\n if (end < 0 || end + 2 >= size) throw new Error('DWA: corrupt channel rule');\n const flags = data[end + 1]!;\n const type = data[end + 2]!;\n const cscIdx = (flags >> 4) - 1;\n const scheme = SCHEME_CODES[(flags >> 2) & 3];\n if (!scheme || cscIdx < -1 || cscIdx > 2 || type > FLOAT) throw new Error('DWA: corrupt channel rule');\n rules.push({\n suffix: new TextDecoder().decode(data.subarray(p, end)),\n scheme,\n types: [type],\n cscIdx,\n caseInsensitive: (flags & 1) === 1,\n });\n p = end + 3;\n }\n return { rules, size };\n}\n\nexport interface DwaChannelGroups {\n classes: { scheme: DwaScheme; cscIdx: number }[];\n /** [r,g,b] channel indices for each CSC-groupable RGB triplet. */\n cscGroups: [number, number, number][];\n /** Channel indices consumed by a CSC group (excluded from further per-channel handling). */\n grouped: Set<number>;\n}\n\n/**\n * Classify all channels and find CSC-groupable RGB triplets: same name prefix, all three\n * present, DCT-classified with cscIdx 0/1/2, and matching x/y sampling.\n */\nexport function computeDwaChannelGroups(channels: ExrChannel[], rules: DwaRule[]): DwaChannelGroups {\n const classes = channels.map((ch) => classifyChannel(ch.name, ch.pixelType, rules));\n\n const prefixMap = new Map<string, [number, number, number]>();\n for (let i = 0; i < channels.length; i++) {\n const cls = classes[i]!;\n if (cls.scheme !== 'DCT' || cls.cscIdx < 0) continue;\n const channel = channels[i]!;\n const suffix = findSuffix(channel.name);\n const prefix = channel.name.slice(0, channel.name.length - suffix.length);\n let entry = prefixMap.get(prefix);\n if (!entry) {\n entry = [-1, -1, -1];\n prefixMap.set(prefix, entry);\n }\n entry[cls.cscIdx] = i;\n }\n\n const cscGroups: [number, number, number][] = [];\n const grouped = new Set<number>();\n for (const [r, g, b] of prefixMap.values()) {\n if (r < 0 || g < 0 || b < 0) continue;\n const rc = channels[r]!;\n const gc = channels[g]!;\n const bc = channels[b]!;\n if (\n rc.xSampling === gc.xSampling &&\n rc.xSampling === bc.xSampling &&\n rc.ySampling === gc.ySampling &&\n rc.ySampling === bc.ySampling\n ) {\n cscGroups.push([r, g, b]);\n grouped.add(r);\n grouped.add(g);\n grouped.add(b);\n }\n }\n\n return { classes, cscGroups, grouped };\n}\n", "/**\n * EXR DSP (Digital Signal Processing) utilities\n * Predictor and reorder_pixels - used by ZIP and RLE decompression.\n * Matches FFmpeg exrdsp.\n */\n\n/**\n * Apply OpenEXR predictor (delta decoding) in-place.\n * Matches FFmpeg exrdsp predictor_scalar. Reverses the difference encoding\n * used by ZIP and RLE compressors.\n */\nexport function applyExrPredictor(src: Uint8Array): void {\n const size = src.length;\n if (size < 2) return;\n if ((size & 1) === 0) {\n src[1] = (src[1]! + (src[0]! ^ 0x80)) & 0xff;\n }\n // FFmpeg shifts pointer after first pair, so loop processes (1,2),(3,4),(5,6)...\n for (let i = 2; i < size - 1; i += 2) {\n const a = (src[i - 1]! + src[i]!) & 0xff;\n src[i] = a;\n src[i + 1] = (src[i + 1]! + a) & 0xff;\n src[i] = (a ^ 0x80) & 0xff;\n }\n}\n\n/**\n * Reorder pixels from channel-planar to byte-interleaved.\n * Matches FFmpeg exrdsp reorder_pixels. Converts [low bytes][high bytes]\n * to [low0,high0, low1,high1, ...] for 16-bit half data.\n */\nexport function reorderExrPixels(dst: Uint8Array, src: Uint8Array): void {\n const halfSize = Math.floor(src.length / 2);\n const t1 = src.subarray(0, halfSize);\n const t2 = src.subarray(halfSize, halfSize * 2);\n for (let i = 0; i < halfSize; i++) {\n dst[i * 2] = t1[i]!;\n dst[i * 2 + 1] = t2[i]!;\n }\n}\n", "/**\n * RLE decompression for OpenEXR\n * OpenEXR RLE uses signed byte control codes:\n * - count < 0: copy next -count bytes literally\n * - count >= 0: repeat next byte (count + 1) times\n *\n * Post-decompression: applies predictor and reorder (same pipeline as ZIP).\n */\n\nimport { applyExrPredictor, reorderExrPixels } from './exrDsp.js';\n\n/**\n * Decompress RLE-compressed scanline block data.\n * Exported for testing.\n */\nexport function decompressRLE(compressedData: Uint8Array, expectedSize: number): Uint8Array {\n const out = new Uint8Array(expectedSize);\n let src = 0;\n let dst = 0;\n\n while (src < compressedData.length && dst < expectedSize) {\n const count = (compressedData[src++]! << 24) >> 24; // signed byte\n\n if (count < 0) {\n const n = -count;\n if (src + n > compressedData.length) {\n throw new Error(\n `RLE decompression: truncated literal run (need ${n} bytes, ${compressedData.length - src} available)`,\n );\n }\n for (let i = 0; i < n && dst < expectedSize; i++) {\n out[dst++] = compressedData[src++]!;\n }\n } else {\n if (src >= compressedData.length) {\n throw new Error('RLE decompression: truncated repeat run (missing value byte)');\n }\n const value = compressedData[src++]!;\n for (let i = 0; i <= count && dst < expectedSize; i++) {\n out[dst++] = value;\n }\n }\n }\n\n if (dst !== expectedSize) {\n throw new Error(`RLE decompression produced wrong size: expected ${expectedSize}, got ${dst}`);\n }\n return out;\n}\n\n/**\n * Decompress RLE and apply predictor + reorder (full pipeline for RLE blocks)\n */\nexport function decompressRleBlock(compressedData: Uint8Array, expectedSize: number): Uint8Array {\n const rleOut = decompressRLE(compressedData, expectedSize);\n applyExrPredictor(rleOut);\n const decompressedData = new Uint8Array(expectedSize);\n reorderExrPixels(decompressedData, rleOut);\n return decompressedData;\n}\n", "/**\n * DWAA/DWAB perceptual nonlinear <-> linear half-float LUTs.\n * See ImfDwaCompressor.cpp / dwaLookups.cpp: gamma 2.2 below 1.0, blended into a log\n * curve above 1.0, so DCT quantization spends its bits more perceptually uniformly.\n */\n\nimport { decodeFloat16, encodeFloat16 } from './halfFloat.js';\n\nconst LOG_BASE = Math.pow(Math.E, 2.2);\n\nlet linearLut: Uint16Array | null = null;\n\n/** nonlinear-encoded half bits -> linear half bits */\nexport function getLinearLut(): Uint16Array {\n if (linearLut) return linearLut;\n const lut = new Uint16Array(65536);\n for (let i = 0; i < 65536; i++) {\n if (i === 0 || (i & 0x7c00) === 0x7c00) {\n lut[i] = 0;\n continue;\n }\n const f0 = decodeFloat16(i);\n const sign = f0 < 0 ? -1 : 1;\n const f = Math.abs(f0);\n const px = f <= 1 ? f : LOG_BASE;\n const py = f <= 1 ? 2.2 : f - 1;\n lut[i] = encodeFloat16(sign * Math.pow(px, py));\n }\n linearLut = lut;\n return lut;\n}\n\nlet nonlinearLut: Uint16Array | null = null;\n\n/** linear half bits -> nonlinear-encoded half bits */\nexport function getNonlinearLut(): Uint16Array {\n if (nonlinearLut) return nonlinearLut;\n const lut = new Uint16Array(65536);\n for (let i = 0; i < 65536; i++) {\n if (i === 0 || (i & 0x7c00) === 0x7c00) {\n lut[i] = 0;\n continue;\n }\n const f0 = decodeFloat16(i);\n const sign = f0 < 0 ? -1 : 1;\n const f = Math.abs(f0);\n const nonlinear = f <= 1 ? Math.pow(f, 1 / 2.2) : Math.log(f) / Math.log(LOG_BASE) + 1;\n lut[i] = encodeFloat16(sign * nonlinear);\n }\n nonlinearLut = lut;\n return lut;\n}\n", "/**\n * PIZ Huffman decompression\n * Used by PIZ compression for OpenEXR\n */\n\nimport {\n HUF_DECBITS,\n HUF_DECMASK,\n HUF_DECSIZE,\n HUF_ENCSIZE,\n INT8_SIZE,\n INT32_SIZE,\n LONG_ZEROCODE_RUN,\n SHORT_ZEROCODE_RUN,\n SHORTEST_LONG_RUN,\n} from './exrConstants.js';\n\ninterface HufDec {\n len: number;\n lit: number;\n p: number[] | null;\n}\n\nfunction hufClearDecTable(hdec: HufDec[]): void {\n for (let i = 0; i < HUF_DECSIZE; i++) {\n hdec[i] = { len: 0, lit: 0, p: null };\n }\n}\n\nfunction parseUint32(dataView: DataView, offset: { value: number }): number {\n const value = dataView.getUint32(offset.value, true);\n offset.value += INT32_SIZE;\n return value;\n}\n\nfunction parseUint8Array(uInt8Array: Uint8Array, offset: { value: number }): number {\n const value = uInt8Array[offset.value];\n offset.value += INT8_SIZE;\n if (value === undefined) {\n throw new Error('Unexpected end of data');\n }\n return value;\n}\n\nconst getBitsReturn = { l: 0, c: 0, lc: 0 };\n\nfunction getBits(nBits: number, c: number, lc: number, uInt8Array: Uint8Array, inOffset: { value: number }): void {\n let currentC = c;\n let currentLc = lc;\n while (currentLc < nBits) {\n currentC = (currentC << 8) | parseUint8Array(uInt8Array, inOffset);\n currentLc += 8;\n }\n currentLc -= nBits;\n getBitsReturn.l = (currentC >> currentLc) & ((1 << nBits) - 1);\n getBitsReturn.c = currentC;\n getBitsReturn.lc = currentLc;\n}\n\nconst hufTableBuffer = Array.from<number>({ length: 59 });\n\nfunction hufCanonicalCodeTable(hcode: number[]): void {\n for (let i = 0; i <= 58; ++i) hufTableBuffer[i] = 0;\n for (let i = 0; i < HUF_ENCSIZE; ++i) {\n const code = hcode[i];\n if (code !== undefined) {\n const bufferIndex = hufTableBuffer[code];\n if (bufferIndex !== undefined) {\n hufTableBuffer[code] = bufferIndex + 1;\n }\n }\n }\n\n let c = 0;\n for (let i = 58; i > 0; --i) {\n const bufferValue = hufTableBuffer[i];\n if (bufferValue !== undefined) {\n const nc = (c + bufferValue) >> 1;\n hufTableBuffer[i] = c;\n c = nc;\n }\n }\n\n for (let i = 0; i < HUF_ENCSIZE; ++i) {\n const l = hcode[i];\n if (l !== undefined && l > 0) {\n const bufferValue = hufTableBuffer[l];\n if (bufferValue !== undefined) {\n hcode[i] = l | (bufferValue << 6);\n hufTableBuffer[l] = bufferValue + 1;\n }\n }\n }\n}\n\nfunction hufUnpackEncTable(\n uInt8Array: Uint8Array,\n inOffset: { value: number },\n ni: number,\n im: number,\n iM: number,\n hcode: number[],\n): void {\n const p = inOffset;\n let c = 0;\n let lc = 0;\n let currentIm = im;\n\n for (; currentIm <= iM; currentIm++) {\n if (p.value - inOffset.value > ni) return;\n\n getBits(6, c, lc, uInt8Array, p);\n const l = getBitsReturn.l;\n c = getBitsReturn.c;\n lc = getBitsReturn.lc;\n\n hcode[currentIm] = l;\n\n if (l === LONG_ZEROCODE_RUN) {\n if (p.value - inOffset.value > ni) {\n throw new Error('Something wrong with hufUnpackEncTable');\n }\n\n getBits(8, c, lc, uInt8Array, p);\n const zerun = getBitsReturn.l + SHORTEST_LONG_RUN;\n c = getBitsReturn.c;\n lc = getBitsReturn.lc;\n\n if (currentIm + zerun > iM + 1) {\n throw new Error('Something wrong with hufUnpackEncTable');\n }\n\n let runCount = zerun;\n while (runCount-- > 0) {\n hcode[currentIm++] = 0;\n }\n currentIm--;\n } else if (l >= SHORT_ZEROCODE_RUN) {\n const zerun = l - SHORT_ZEROCODE_RUN + 2;\n if (currentIm + zerun > iM + 1) {\n throw new Error('Something wrong with hufUnpackEncTable');\n }\n let runCount = zerun;\n while (runCount-- > 0) {\n hcode[currentIm++] = 0;\n }\n currentIm--;\n }\n }\n\n hufCanonicalCodeTable(hcode);\n}\n\nfunction hufLength(code: number): number {\n return code & 63;\n}\n\nfunction hufCode(code: number): number {\n return code >> 6;\n}\n\nfunction hufBuildDecTable(hcode: number[], im: number, iM: number, hdecod: HufDec[]): boolean {\n let currentIm = im;\n for (; currentIm <= iM; currentIm++) {\n const hcodeValue = hcode[currentIm];\n if (hcodeValue === undefined) {\n continue;\n }\n const c = hufCode(hcodeValue);\n const l = hufLength(hcodeValue);\n\n if (c >> l) {\n throw new Error('Invalid table entry');\n }\n\n if (l > HUF_DECBITS) {\n const index = c >> (l - HUF_DECBITS);\n const pl = hdecod[index];\n if (!pl) {\n throw new Error('Invalid table entry');\n }\n if (pl.len) {\n throw new Error('Invalid table entry');\n }\n pl.lit++;\n if (pl.p) {\n const p = pl.p;\n pl.p = Array.from({ length: pl.lit });\n for (let i = 0; i < pl.lit - 1; ++i) {\n const pValue = p[i];\n if (pValue !== undefined) {\n pl.p[i] = pValue;\n }\n }\n } else {\n pl.p = Array.from({ length: 1 });\n }\n pl.p[pl.lit - 1] = currentIm;\n } else if (l) {\n let plOffset = 0;\n for (let i = 1 << (HUF_DECBITS - l); i > 0; i--) {\n const index = (c << (HUF_DECBITS - l)) + plOffset;\n const pl = hdecod[index];\n if (!pl) {\n throw new Error('Invalid table entry');\n }\n if (pl.len || pl.p) {\n throw new Error('Invalid table entry');\n }\n pl.len = l;\n pl.lit = currentIm;\n plOffset++;\n }\n }\n }\n return true;\n}\n\nconst getCharReturn = { c: 0, lc: 0 };\n\nfunction getChar(c: number, lc: number, uInt8Array: Uint8Array, inOffset: { value: number }): void {\n const newC = (c << 8) | parseUint8Array(uInt8Array, inOffset);\n const newLc = lc + 8;\n getCharReturn.c = newC;\n getCharReturn.lc = newLc;\n}\n\nconst getCodeReturn = { c: 0, lc: 0 };\n\nfunction getCode(\n po: number,\n rlc: number,\n c: number,\n lc: number,\n uInt8Array: Uint8Array,\n inOffset: { value: number },\n outBuffer: Uint16Array,\n outBufferOffset: { value: number },\n outBufferEndOffset: number,\n): void {\n let currentC = c;\n let currentLc = lc;\n if (po === rlc) {\n if (currentLc < 8) {\n getChar(currentC, currentLc, uInt8Array, inOffset);\n currentC = getCharReturn.c;\n currentLc = getCharReturn.lc;\n }\n currentLc -= 8;\n let cs = currentC >> currentLc;\n const csArray = new Uint8Array([cs]);\n cs = csArray[0]!;\n\n if (outBufferOffset.value + cs > outBufferEndOffset) {\n getCodeReturn.c = currentC;\n getCodeReturn.lc = currentLc;\n return;\n }\n\n const s = outBuffer[outBufferOffset.value - 1];\n if (s !== undefined) {\n let runCount = cs;\n while (runCount-- > 0) {\n outBuffer[outBufferOffset.value++] = s;\n }\n }\n } else if (outBufferOffset.value < outBufferEndOffset) {\n outBuffer[outBufferOffset.value++] = po;\n }\n\n getCodeReturn.c = currentC;\n getCodeReturn.lc = currentLc;\n}\n\nfunction hufDecode(\n encodingTable: number[],\n decodingTable: HufDec[],\n uInt8Array: Uint8Array,\n inOffset: { value: number },\n ni: number,\n rlc: number,\n no: number,\n outBuffer: Uint16Array,\n outOffset: { value: number },\n): void {\n let c = 0;\n let lc = 0;\n const outBufferEndOffset = no;\n const inOffsetEnd = Math.trunc(inOffset.value + (ni + 7) / 8);\n\n while (inOffset.value < inOffsetEnd) {\n getChar(c, lc, uInt8Array, inOffset);\n c = getCharReturn.c;\n lc = getCharReturn.lc;\n\n while (lc >= HUF_DECBITS) {\n const index: number = (c >> (lc - HUF_DECBITS)) & HUF_DECMASK;\n const pl = decodingTable[index];\n if (!pl) {\n throw new Error('hufDecode issues: invalid table index');\n }\n\n if (pl.len) {\n lc -= pl.len;\n getCode(pl.lit, rlc, c, lc, uInt8Array, inOffset, outBuffer, outOffset, outBufferEndOffset);\n c = getCodeReturn.c;\n lc = getCodeReturn.lc;\n } else {\n if (!pl.p) {\n throw new Error('hufDecode issues');\n }\n\n let j: number = 0;\n for (j = 0; j < pl.lit; j++) {\n const pIndex = pl.p[j];\n if (pIndex === undefined) {\n continue;\n }\n const encodingValue = encodingTable[pIndex];\n if (encodingValue === undefined) {\n continue;\n }\n const l = hufLength(encodingValue);\n\n while (lc < l && inOffset.value < inOffsetEnd) {\n getChar(c, lc, uInt8Array, inOffset);\n c = getCharReturn.c;\n lc = getCharReturn.lc;\n }\n\n if (lc >= l) {\n const codeValue = hufCode(encodingValue);\n if (codeValue === ((c >> (lc - l)) & ((1 << l) - 1))) {\n lc -= l;\n getCode(pIndex, rlc, c, lc, uInt8Array, inOffset, outBuffer, outOffset, outBufferEndOffset);\n c = getCodeReturn.c;\n lc = getCodeReturn.lc;\n break;\n }\n }\n }\n\n if (j >= pl.lit) {\n throw new Error('hufDecode issues');\n }\n }\n }\n }\n\n const i = (8 - ni) & 7;\n c >>= i;\n lc -= i;\n\n while (lc > 0) {\n const index = (c << (HUF_DECBITS - lc)) & HUF_DECMASK;\n const pl = decodingTable[index];\n if (!pl) {\n throw new Error('hufDecode issues: invalid table index');\n }\n if (pl.len) {\n lc -= pl.len;\n getCode(pl.lit, rlc, c, lc, uInt8Array, inOffset, outBuffer, outOffset, outBufferEndOffset);\n c = getCodeReturn.c;\n lc = getCodeReturn.lc;\n } else {\n throw new Error('hufDecode issues');\n }\n }\n}\n\nconst LONGEST_LONG_RUN = 255 + SHORTEST_LONG_RUN;\n\nfunction countFrequencies(freq: number[], data: Uint16Array, n: number): void {\n for (let i = 0; i < HUF_ENCSIZE; i++) freq[i] = 0;\n for (let i = 0; i < n; i++) {\n const d = data[i];\n if (d !== undefined) freq[d] = (freq[d] ?? 0) + 1;\n }\n}\n\nfunction hufBuildEncTable(frq: number[], im: { value: number }, iM: { value: number }): void {\n const hlink = Array.from<number>({ length: HUF_ENCSIZE });\n const fHeap: number[] = [];\n const scode = Array.from<number>({ length: HUF_ENCSIZE }).fill(0);\n\n im.value = 0;\n while (!(frq[im.value] ?? 0)) im.value++;\n\n let nf = 0;\n for (let i = im.value; i < HUF_ENCSIZE; i++) {\n hlink[i] = i;\n if (frq[i] ?? 0) {\n fHeap.push(i);\n nf++;\n iM.value = i;\n }\n }\n\n iM.value++;\n frq[iM.value] = 1;\n fHeap.push(iM.value);\n nf++;\n\n // Binary min-heap ordered by (frq, index); same total order as the original sort-based\n // version so output is byte-identical, but O(n log n) instead of a full re-sort per merge.\n const less = (a: number, b: number) => (frq[a] ?? 0) < (frq[b] ?? 0) || ((frq[a] ?? 0) === (frq[b] ?? 0) && a < b);\n const siftDown = (start: number): void => {\n let i = start;\n for (;;) {\n const l = 2 * i + 1;\n if (l >= fHeap.length) return;\n const r = l + 1;\n const c = r < fHeap.length && less(fHeap[r]!, fHeap[l]!) ? r : l;\n if (!less(fHeap[c]!, fHeap[i]!)) return;\n [fHeap[i], fHeap[c]] = [fHeap[c]!, fHeap[i]!];\n i = c;\n }\n };\n const heapPop = (): number => {\n const top = fHeap[0]!;\n const last = fHeap.pop()!;\n if (fHeap.length > 0) {\n fHeap[0] = last;\n siftDown(0);\n }\n return top;\n };\n const heapPush = (v: number): void => {\n let i = fHeap.push(v) - 1;\n while (i > 0) {\n const parent = (i - 1) >> 1;\n if (!less(fHeap[i]!, fHeap[parent]!)) break;\n [fHeap[i], fHeap[parent]] = [fHeap[parent]!, fHeap[i]!];\n i = parent;\n }\n };\n for (let i = (fHeap.length >> 1) - 1; i >= 0; i--) siftDown(i);\n\n while (nf > 1) {\n const mm = heapPop();\n const m = heapPop();\n\n frq[m] = (frq[m] ?? 0) + (frq[mm] ?? 0);\n\n for (let j = m; ;) {\n const s = (scode[j] ?? 0) + 1;\n scode[j] = s;\n if (s > 58) throw new Error('Huffman code length > 58');\n const next = hlink[j];\n if (next === j) {\n hlink[j] = mm;\n break;\n }\n j = next ?? j;\n }\n for (let j = mm; ;) {\n const s = (scode[j] ?? 0) + 1;\n scode[j] = s;\n if (s > 58) throw new Error('Huffman code length > 58');\n const next = hlink[j];\n if (next === j) break;\n j = next ?? j;\n }\n\n heapPush(m);\n nf--;\n }\n\n hufCanonicalCodeTable(scode);\n for (let i = 0; i < HUF_ENCSIZE; i++) {\n const s = scode[i];\n if (s !== undefined) frq[i] = s;\n }\n}\n\nfunction outputBits(nBits: number, bits: number, c: { value: number }, lc: { value: number }, out: number[]): void {\n c.value <<= nBits;\n lc.value += nBits;\n c.value |= bits;\n while (lc.value >= 8) {\n out.push((c.value >> (lc.value - 8)) & 0xff);\n lc.value -= 8;\n }\n}\n\nfunction hufPackEncTable(hcode: number[], im: number, iM: number, out: number[]): void {\n const c = { value: 0 };\n const lc = { value: 0 };\n let currentIm = im;\n\n while (currentIm <= iM) {\n const l = hufLength(hcode[currentIm]!);\n\n if (l === 0) {\n let zerun = 1;\n while (currentIm < iM && zerun < LONGEST_LONG_RUN) {\n if (hufLength(hcode[currentIm + 1]!) > 0) break;\n currentIm++;\n zerun++;\n }\n if (zerun >= 2) {\n if (zerun >= SHORTEST_LONG_RUN) {\n outputBits(6, LONG_ZEROCODE_RUN, c, lc, out);\n outputBits(8, zerun - SHORTEST_LONG_RUN, c, lc, out);\n } else {\n outputBits(6, SHORT_ZEROCODE_RUN + zerun - 2, c, lc, out);\n }\n currentIm++;\n continue;\n }\n }\n outputBits(6, l, c, lc, out);\n currentIm++;\n }\n if (lc.value > 0) out.push((c.value << (8 - lc.value)) & 0xff);\n}\n\nfunction outputCode(code: number, c: { value: number }, lc: { value: number }, out: number[]): void {\n outputBits(hufLength(code), hufCode(code), c, lc, out);\n}\n\nfunction sendCode(\n sCode: number,\n runCount: number,\n runCode: number,\n c: { value: number },\n lc: { value: number },\n out: number[],\n): void {\n const sLen = hufLength(sCode);\n const rLen = hufLength(runCode);\n if (sLen + rLen + 8 < sLen * (runCount + 1)) {\n outputCode(sCode, c, lc, out);\n outputCode(runCode, c, lc, out);\n outputBits(8, runCount, c, lc, out);\n } else {\n for (let i = 0; i <= runCount; i++) outputCode(sCode, c, lc, out);\n }\n}\n\nfunction hufEncode(hcode: number[], inData: Uint16Array, ni: number, rlc: number, out: number[]): number {\n const c = { value: 0 };\n const lc = { value: 0 };\n let s = inData[0]!;\n let cs = 0;\n\n for (let i = 1; i < ni; i++) {\n const ns = inData[i]!;\n if (s === ns && cs < 255) {\n cs++;\n } else {\n sendCode(hcode[s]!, cs, hcode[rlc]!, c, lc, out);\n cs = 0;\n }\n s = ns;\n }\n sendCode(hcode[s]!, cs, hcode[rlc]!, c, lc, out);\n\n if (lc.value > 0) out.push((c.value << (8 - lc.value)) & 0xff);\n return lc.value > 0 ? (out.length - 1) * 8 + lc.value : out.length * 8;\n}\n\n/**\n * Compress raw uint16 data using Huffman encoding.\n * Output format matches what hufUncompress expects: im(4), iM(4), tableLength(4), nBits(4), reserved(4), packed table, data.\n */\nexport function hufCompress(raw: Uint16Array): Uint8Array {\n const n = raw.length;\n if (n === 0) return new Uint8Array(0);\n\n const freq = Array.from<number>({ length: HUF_ENCSIZE });\n countFrequencies(freq, raw, n);\n\n const im = { value: 0 };\n const iM = { value: 0 };\n hufBuildEncTable(freq, im, iM);\n\n const tableOut: number[] = [];\n hufPackEncTable(freq, im.value, iM.value, tableOut);\n const tableLength = tableOut.length;\n\n const dataOut: number[] = [];\n const nBits = hufEncode(freq, raw, n, iM.value, dataOut);\n const dataLength = Math.ceil(nBits / 8);\n\n const totalSize = 20 + tableLength + dataLength;\n const result = new Uint8Array(totalSize);\n const view = new DataView(result.buffer, result.byteOffset, result.byteLength);\n view.setUint32(0, im.value, true);\n view.setUint32(4, iM.value, true);\n view.setUint32(8, tableLength, true);\n view.setUint32(12, nBits, true);\n view.setUint32(16, 0, true);\n result.set(tableOut, 20);\n result.set(dataOut, 20 + tableLength);\n\n return result;\n}\n\n/**\n * Decompress Huffman-encoded data (PIZ compression)\n */\nexport function hufUncompress(\n uInt8Array: Uint8Array,\n inDataView: DataView,\n inOffset: { value: number },\n nCompressed: number,\n outBuffer: Uint16Array,\n nRaw: number,\n): void {\n const outOffset = { value: 0 };\n const initialInOffset = inOffset.value;\n\n const im = parseUint32(inDataView, inOffset);\n const iM = parseUint32(inDataView, inOffset);\n inOffset.value += 4;\n\n const nBits = parseUint32(inDataView, inOffset);\n inOffset.value += 4;\n\n if (im < 0 || im >= HUF_ENCSIZE || iM < 0 || iM >= HUF_ENCSIZE) {\n throw new Error(\n `Something wrong with HUF_ENCSIZE: im=${im}, iM=${iM}, HUF_ENCSIZE=${HUF_ENCSIZE}, compressedSize=${nCompressed}, offset=${inOffset.value}`,\n );\n }\n\n const freq = Array.from<number>({ length: HUF_ENCSIZE });\n const hdec: HufDec[] = Array.from({ length: HUF_DECSIZE });\n hufClearDecTable(hdec);\n\n const ni = nCompressed - (inOffset.value - initialInOffset);\n hufUnpackEncTable(uInt8Array, inOffset, ni, im, iM, freq);\n\n if (nBits > 8 * (nCompressed - (inOffset.value - initialInOffset))) {\n throw new Error('Something wrong with hufUncompress');\n }\n\n hufBuildDecTable(freq, im, iM, hdec);\n hufDecode(freq, hdec, uInt8Array, inOffset, nBits, iM, nRaw, outBuffer, outOffset);\n}\n", "/**\n * DWAA/DWAB decompression for OpenEXR.\n * Ported from the OpenEXRCore reference decoder (internal_dwa*.{c,h}): per-channel\n * classification into lossy-DCT (CSC-grouped RGB or single channel), RLE (e.g. alpha),\n * or UNKNOWN (zlib) groups; static-Huffman or deflate AC stream; zip-predictor DC stream;\n * 8x8 IDCT with no dequantization step (DWA quantizes on encode by picking values with\n * few bits set, so decode just inverse-DCTs the values as stored); inverse 709 CSC.\n */\n\nimport { unzlibSync } from 'fflate';\nimport { computeDwaChannelGroups, LEGACY_RULES, parseDwaRules } from './dwaClassify.js';\nimport { decompressRLE } from './decompressRle.js';\nimport { getLinearLut } from './dwaLuts.js';\nimport { applyExrPredictor, reorderExrPixels } from './exrDsp.js';\nimport { FLOAT, HALF } from './exrConstants.js';\nimport type { ExrChannel } from './exrTypes.js';\nimport { decodeFloat16, encodeFloat16, getHalfToFloatLut } from './halfFloat.js';\nimport { hufUncompress } from './pizHuffman.js';\n\nexport function channelByteSize(pixelType: number): number {\n return pixelType === HALF ? 2 : 4;\n}\n\n// Zig-zag scan order for an 8x8 DCT block (src index for each normal-order dst index).\nexport const ZIGZAG = [\n 0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53,\n 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57,\n 58, 62, 63,\n];\n\nfunction fromHalfZigZag(src: Uint16Array, dst: Float64Array): void {\n for (let i = 0; i < 64; i++) {\n dst[i] = decodeFloat16(src[ZIGZAG[i]!]!);\n }\n}\n\nconst IDCT_A = 0.5 * Math.cos(Math.PI / 4);\nconst IDCT_B = 0.5 * Math.cos(Math.PI / 16);\nconst IDCT_C = 0.5 * Math.cos(Math.PI / 8);\nconst IDCT_D = 0.5 * Math.cos((3 * Math.PI) / 16);\nconst IDCT_E = 0.5 * Math.cos((5 * Math.PI) / 16);\nconst IDCT_F = 0.5 * Math.cos((3 * Math.PI) / 8);\nconst IDCT_G = 0.5 * Math.cos((7 * Math.PI) / 16);\n\n// Full 8x8 inverse DCT, in place. The zeroedRows fast-path from the reference\n// implementation is a pure perf optimization (skips known-zero rows); we always\n// run the full transform since the zeroed inputs give the same result.\nfunction idct8x8(data: Float64Array): void {\n const alpha = new Float64Array(4);\n const beta = new Float64Array(4);\n const theta = new Float64Array(4);\n const gamma = new Float64Array(4);\n\n for (let row = 0; row < 8; row++) {\n const o = row * 8;\n alpha[0] = IDCT_C * data[o + 2]!;\n alpha[1] = IDCT_F * data[o + 2]!;\n alpha[2] = IDCT_C * data[o + 6]!;\n alpha[3] = IDCT_F * data[o + 6]!;\n\n beta[0] = IDCT_B * data[o + 1]! + IDCT_D * data[o + 3]! + IDCT_E * data[o + 5]! + IDCT_G * data[o + 7]!;\n beta[1] = IDCT_D * data[o + 1]! - IDCT_G * data[o + 3]! - IDCT_B * data[o + 5]! - IDCT_E * data[o + 7]!;\n beta[2] = IDCT_E * data[o + 1]! - IDCT_B * data[o + 3]! + IDCT_G * data[o + 5]! + IDCT_D * data[o + 7]!;\n beta[3] = IDCT_G * data[o + 1]! - IDCT_E * data[o + 3]! + IDCT_D * data[o + 5]! - IDCT_B * data[o + 7]!;\n\n theta[0] = IDCT_A * (data[o]! + data[o + 4]!);\n theta[3] = IDCT_A * (data[o]! - data[o + 4]!);\n theta[1] = alpha[0] + alpha[3];\n theta[2] = alpha[1] - alpha[2];\n\n gamma[0] = theta[0] + theta[1];\n gamma[1] = theta[3] + theta[2];\n gamma[2] = theta[3] - theta[2];\n gamma[3] = theta[0] - theta[1];\n\n data[o] = gamma[0] + beta[0];\n data[o + 1] = gamma[1] + beta[1];\n data[o + 2] = gamma[2] + beta[2];\n data[o + 3] = gamma[3] + beta[3];\n data[o + 4] = gamma[3] - beta[3];\n data[o + 5] = gamma[2] - beta[2];\n data[o + 6] = gamma[1] - beta[1];\n data[o + 7] = gamma[0] - beta[0];\n }\n\n for (let col = 0; col < 8; col++) {\n alpha[0] = IDCT_C * data[16 + col]!;\n alpha[1] = IDCT_F * data[16 + col]!;\n alpha[2] = IDCT_C * data[48 + col]!;\n alpha[3] = IDCT_F * data[48 + col]!;\n\n beta[0] = IDCT_B * data[8 + col]! + IDCT_D * data[24 + col]! + IDCT_E * data[40 + col]! + IDCT_G * data[56 + col]!;\n beta[1] = IDCT_D * data[8 + col]! - IDCT_G * data[24 + col]! - IDCT_B * data[40 + col]! - IDCT_E * data[56 + col]!;\n beta[2] = IDCT_E * data[8 + col]! - IDCT_B * data[24 + col]! + IDCT_G * data[40 + col]! + IDCT_D * data[56 + col]!;\n beta[3] = IDCT_G * data[8 + col]! - IDCT_E * data[24 + col]! + IDCT_D * data[40 + col]! - IDCT_B * data[56 + col]!;\n\n theta[0] = IDCT_A * (data[col]! + data[32 + col]!);\n theta[3] = IDCT_A * (data[col]! - data[32 + col]!);\n theta[1] = alpha[0] + alpha[3];\n theta[2] = alpha[1] - alpha[2];\n\n gamma[0] = theta[0] + theta[1];\n gamma[1] = theta[3] + theta[2];\n gamma[2] = theta[3] - theta[2];\n gamma[3] = theta[0] - theta[1];\n\n data[col] = gamma[0] + beta[0];\n data[8 + col] = gamma[1] + beta[1];\n data[16 + col] = gamma[2] + beta[2];\n data[24 + col] = gamma[3] + beta[3];\n data[32 + col] = gamma[3] - beta[3];\n data[40 + col] = gamma[2] - beta[2];\n data[48 + col] = gamma[1] - beta[1];\n data[56 + col] = gamma[0] - beta[0];\n }\n}\n\n// Inverse 709 CSC, Y'CbCr -> R'G'B', with Cb/Cr zero-shifted (no +0.5 offset) since DWA\n// operates on scene-referred data where a traditional chroma midpoint makes no sense.\nfunction csc709Inverse64(y: Float64Array, cb: Float64Array, cr: Float64Array): void {\n for (let i = 0; i < 64; i++) {\n const yy = y[i]!;\n const cbv = cb[i]!;\n const crv = cr[i]!;\n y[i] = yy + 1.5747 * crv;\n cb[i] = yy - 0.1873 * cbv - 0.4682 * crv;\n cr[i] = yy + 1.8556 * cbv;\n }\n}\n\n// DWA has no explicit dequantization step: on encode, the quantizer picks (from a\n// precomputed candidate list) the representable value with fewest bits set that's still\n// within the per-component error bound, so decode just inverse-DCTs the stored values as-is.\n\nfunction unRleAc(acRaw: Uint16Array, cursor: { value: number }, halfZig: Uint16Array): void {\n let dctComp = 1;\n while (dctComp < 64) {\n if (cursor.value >= acRaw.length) throw new Error('DWA: AC stream truncated');\n const val = acRaw[cursor.value++]!;\n if ((val & 0xff00) === 0xff00) {\n const count = val & 0xff;\n dctComp += count === 0 ? 64 : count;\n } else {\n halfZig[dctComp] = val;\n dctComp++;\n }\n }\n}\n\nfunction decodeLossyDctGroup(\n compIdx: number[],\n width: number,\n height: number,\n acRaw: Uint16Array,\n acCursor: { value: number },\n dcRaw: Uint16Array,\n dcCursor: { value: number },\n channels: ExrChannel[],\n channelOut: Uint8Array[],\n forceLinear: boolean,\n): void {\n const numComp = compIdx.length;\n const numBlocksX = Math.ceil(width / 8);\n const numBlocksY = Math.ceil(height / 8);\n const leftoverX = width - (numBlocksX - 1) * 8;\n const leftoverY = height - (numBlocksY - 1) * 8;\n\n const dcPtr: number[] = [];\n for (let c = 0; c < numComp; c++) dcPtr.push(dcCursor.value + c * numBlocksX * numBlocksY);\n dcCursor.value += numComp * numBlocksX * numBlocksY;\n\n const dctData: Float64Array[] = Array.from({ length: numComp }, () => new Float64Array(64));\n const halfZig: Uint16Array[] = Array.from({ length: numComp }, () => new Uint16Array(64));\n const rowsHalf: Uint16Array[] = Array.from({ length: numComp }, () => new Uint16Array(width * height));\n\n for (let blocky = 0; blocky < numBlocksY; blocky++) {\n const maxY = blocky === numBlocksY - 1 ? leftoverY : 8;\n for (let blockx = 0; blockx < numBlocksX; blockx++) {\n const maxX = blockx === numBlocksX - 1 ? leftoverX : 8;\n\n for (let c = 0; c < numComp; c++) {\n const hz = halfZig[c]!;\n hz.fill(0);\n hz[0] = dcRaw[dcPtr[c]!]!;\n dcPtr[c] = dcPtr[c]! + 1;\n unRleAc(acRaw, acCursor, hz);\n\n const dd = dctData[c]!;\n fromHalfZigZag(hz, dd);\n idct8x8(dd);\n }\n\n if (numComp === 3) {\n csc709Inverse64(dctData[0]!, dctData[1]!, dctData[2]!);\n }\n\n for (let c = 0; c < numComp; c++) {\n const dd = dctData[c]!;\n const rh = rowsHalf[c]!;\n for (let by = 0; by < maxY; by++) {\n const y = blocky * 8 + by;\n const rowOff = y * width + blockx * 8;\n for (let bx = 0; bx < maxX; bx++) {\n rh[rowOff + bx] = encodeFloat16(dd[by * 8 + bx]!);\n }\n }\n }\n }\n }\n\n const lut = forceLinear ? getLinearLut() : null;\n const halfLut = getHalfToFloatLut();\n for (let c = 0; c < numComp; c++) {\n const channel = channels[compIdx[c]!]!;\n const rh = rowsHalf[c]!;\n const outArr = channelOut[compIdx[c]!]!;\n const n = width * height;\n if (channel.pixelType === FLOAT) {\n const out32 = new Float32Array(outArr.buffer, outArr.byteOffset, n);\n for (let i = 0; i < n; i++) {\n const h = lut ? lut[rh[i]!]! : rh[i]!;\n out32[i] = halfLut[h]!;\n }\n } else {\n const out16 = new Uint16Array(outArr.buffer, outArr.byteOffset, n);\n for (let i = 0; i < n; i++) {\n out16[i] = lut ? lut[rh[i]!]! : rh[i]!;\n }\n }\n }\n}\n\n/**\n * Decompress a DWAA/DWAB-compressed scanline block.\n * blockHeight is the actual number of scanlines in this chunk (32 for DWAA, 256 for\n * DWAB, possibly fewer for the final, partial chunk of the image) - same convention\n * as decompressPxr24/decompressPiz's blockHeight parameter.\n */\nexport function decompressDwa(\n compressedData: Uint8Array,\n width: number,\n channels: ExrChannel[],\n _dataSize: number,\n blockHeight: number,\n): Uint8Array {\n const dv = new DataView(compressedData.buffer, compressedData.byteOffset, compressedData.byteLength);\n const HEADER_FIELDS = 11;\n const headerSize = HEADER_FIELDS * 8;\n if (compressedData.length < headerSize) throw new Error('DWA: chunk too small for header');\n\n const readU64 = (i: number) => Number(dv.getBigUint64(i * 8, true));\n const version = readU64(0);\n const unknownUncompressedSize = readU64(1);\n const unknownCompressedSize = readU64(2);\n const acCompressedSize = readU64(3);\n const dcCompressedSize = readU64(4);\n const rleCompressedSize = readU64(5);\n const rleUncompressedSize = readU64(6);\n const rleRawSize = readU64(7);\n const totalAcUncompressedCount = readU64(8);\n const totalDcUncompressedCount = readU64(9);\n const acCompression = readU64(10);\n\n if (version > 2) throw new Error(`DWA: unsupported version ${version}`);\n const legacy = version < 2;\n\n let pos = headerSize;\n let rules = LEGACY_RULES;\n if (!legacy) {\n const parsed = parseDwaRules(compressedData.subarray(pos));\n rules = parsed.rules;\n pos += parsed.size;\n }\n\n if (pos + unknownCompressedSize + acCompressedSize + dcCompressedSize + rleCompressedSize > compressedData.length) {\n throw new Error('DWA: chunk data shorter than declared sizes');\n }\n\n const unknownBuf = compressedData.subarray(pos, pos + unknownCompressedSize);\n pos += unknownCompressedSize;\n const acBuf = compressedData.subarray(pos, pos + acCompressedSize);\n pos += acCompressedSize;\n const dcBuf = compressedData.subarray(pos, pos + dcCompressedSize);\n pos += dcCompressedSize;\n const rleBuf = compressedData.subarray(pos, pos + rleCompressedSize);\n pos += rleCompressedSize;\n\n const unknownRaw = unknownCompressedSize > 0 ? unzlibSync(unknownBuf) : new Uint8Array(0);\n if (unknownRaw.length < unknownUncompressedSize) {\n throw new Error('DWA: unknown-data stream shorter than declared');\n }\n\n let acRaw: Uint16Array;\n if (acCompressedSize > 0) {\n if (acCompression === 0) {\n acRaw = new Uint16Array(totalAcUncompressedCount);\n hufUncompress(\n acBuf,\n new DataView(acBuf.buffer, acBuf.byteOffset, acBuf.byteLength),\n { value: 0 },\n acCompressedSize,\n acRaw,\n totalAcUncompressedCount,\n );\n } else {\n const raw = unzlibSync(acBuf);\n acRaw = new Uint16Array(raw.buffer, raw.byteOffset, Math.floor(raw.length / 2));\n }\n } else {\n acRaw = new Uint16Array(0);\n }\n\n let dcRaw: Uint16Array;\n if (dcCompressedSize > 0) {\n const uncompBytes = totalDcUncompressedCount * 2;\n const dcZip = unzlibSync(dcBuf);\n if (dcZip.length < uncompBytes) throw new Error('DWA: DC stream shorter than declared');\n applyExrPredictor(dcZip);\n const reordered = new Uint8Array(uncompBytes);\n reorderExrPixels(reordered, dcZip.subarray(0, uncompBytes));\n dcRaw = new Uint16Array(reordered.buffer, reordered.byteOffset, totalDcUncompressedCount);\n } else {\n dcRaw = new Uint16Array(0);\n }\n\n let rleRaw: Uint8Array;\n if (rleRawSize > 0) {\n const rleZip = unzlibSync(rleBuf);\n if (rleZip.length < rleUncompressedSize) throw new Error('DWA: RLE stream shorter than declared');\n rleRaw = decompressRLE(rleZip.subarray(0, rleUncompressedSize), rleRawSize);\n } else {\n rleRaw = new Uint8Array(0);\n }\n\n // Classify channels and find CSC-groupable RGB triplets (matches\n // DwaCompressor_classifyChannels: same suffix/type rules, grouped by name prefix).\n const { classes, cscGroups, grouped } = computeDwaChannelGroups(channels, rules);\n\n const bpeArr = channels.map((ch) => channelByteSize(ch.pixelType));\n const channelOut: Uint8Array[] = channels.map((_, i) => new Uint8Array(width * blockHeight * bpeArr[i]!));\n\n const acCursor = { value: 0 };\n const dcCursor = { value: 0 };\n\n for (const group of cscGroups) {\n decodeLossyDctGroup(group, width, blockHeight, acRaw, acCursor, dcRaw, dcCursor, channels, channelOut, true);\n }\n\n let rleCursor = 0;\n let unknownCursor = 0;\n for (let i = 0; i < channels.length; i++) {\n if (grouped.has(i)) continue;\n const cls = classes[i]!;\n const channel = channels[i]!;\n\n if (cls.scheme === 'DCT') {\n decodeLossyDctGroup(\n [i],\n width,\n blockHeight,\n acRaw,\n acCursor,\n dcRaw,\n dcCursor,\n channels,\n channelOut,\n !channel.pLinear,\n );\n } else if (cls.scheme === 'RLE') {\n const bpe = bpeArr[i]!;\n const planeSize = width * blockHeight;\n const chanSlice = rleRaw.subarray(rleCursor, rleCursor + bpe * planeSize);\n rleCursor += bpe * planeSize;\n const outArr = channelOut[i]!;\n for (let p = 0; p < planeSize; p++) {\n for (let b = 0; b < bpe; b++) {\n outArr[p * bpe + b] = chanSlice[b * planeSize + p]!;\n }\n }\n } else {\n const bpe = bpeArr[i]!;\n const size = width * blockHeight * bpe;\n channelOut[i]!.set(unknownRaw.subarray(unknownCursor, unknownCursor + size));\n unknownCursor += size;\n }\n }\n\n // Assemble channel-planar, line-major output (same convention as decompressPxr24).\n let totalOutputSize = 0;\n for (let i = 0; i < channels.length; i++) totalOutputSize += width * blockHeight * bpeArr[i]!;\n const output = new Uint8Array(totalOutputSize);\n let writeOffset = 0;\n for (let y = 0; y < blockHeight; y++) {\n for (let c = 0; c < channels.length; c++) {\n const bpe = bpeArr[c]!;\n const src = channelOut[c]!;\n const rowStart = y * width * bpe;\n output.set(src.subarray(rowStart, rowStart + width * bpe), writeOffset);\n writeOffset += width * bpe;\n }\n }\n\n return output;\n}\n", "/**\n * PIZ decompression for OpenEXR\n * PIZ compression uses blocks of 32 scanlines (or fewer for the last block)\n * Supports both 16-bit half and 32-bit float channel data (OpenEXR stores 32-bit as two u16 halves).\n */\n\nimport {\n A_OFFSET,\n BITMAP_SIZE,\n FLOAT,\n FLOAT32_SIZE,\n INT8_SIZE,\n INT16_SIZE,\n INT32_SIZE,\n MOD_MASK,\n USHORT_RANGE,\n} from './exrConstants.js';\nimport type { ExrChannel } from './exrTypes.js';\nimport { hufUncompress } from './pizHuffman.js';\n\nfunction getBytesPerChannel(pixelType: number): number {\n if (pixelType === FLOAT) return FLOAT32_SIZE;\n return INT16_SIZE; // HALF or other\n}\n\nfunction UInt16(value: number): number {\n return value & 0xffff;\n}\n\nfunction Int16(value: number): number {\n const ref = UInt16(value);\n return ref > 0x7fff ? ref - 0x10000 : ref;\n}\n\nconst wdec14Return = { a: 0, b: 0 };\nconst wdec16Return = { a: 0, b: 0 };\n\nfunction wdec14(l: number, h: number): void {\n const ls = Int16(l);\n const hs = Int16(h);\n const hi = hs;\n const ai = ls + (hi & 1) + (hi >> 1);\n wdec14Return.a = ai;\n wdec14Return.b = ai - hi;\n}\n\nfunction wdec16(l: number, h: number): void {\n const m = UInt16(l);\n const d = UInt16(h);\n const bb = (m - (d >> 1)) & MOD_MASK;\n const aa = (d + bb - A_OFFSET) & MOD_MASK;\n wdec16Return.a = aa;\n wdec16Return.b = bb;\n}\n\nfunction reverseLutFromBitmap(bitmap: Uint8Array, lut: Uint16Array): number {\n let k = 0;\n for (let i = 0; i < USHORT_RANGE; ++i) {\n const bitmapIndex = i >> 3;\n const bitmapValue = bitmap[bitmapIndex];\n if (bitmapValue === undefined) {\n break;\n }\n if (i === 0 || bitmapValue & (1 << (i & 7))) {\n lut[k++] = i;\n }\n }\n const n = k - 1;\n while (k < USHORT_RANGE) {\n lut[k++] = 0;\n }\n return n;\n}\n\nfunction applyLut(lut: Uint16Array, data: Uint16Array, nData: number): void {\n for (let i = 0; i < nData; ++i) {\n const dataValue = data[i];\n if (dataValue !== undefined) {\n const lutValue = lut[dataValue];\n if (lutValue !== undefined) {\n data[i] = lutValue;\n }\n }\n }\n}\n\nfunction wav2Decode(buffer: Uint16Array, j: number, nx: number, ox: number, ny: number, oy: number, mx: number): void {\n const w14 = mx < 1 << 14;\n const n = nx > ny ? ny : nx;\n let p = 1;\n let p2: number;\n let py = 0;\n\n while (p <= n) p <<= 1;\n p >>= 1;\n p2 = p;\n p >>= 1;\n\n while (p >= 1) {\n py = 0;\n const ey = py + oy * (ny - p2);\n const oy1 = oy * p;\n const oy2 = oy * p2;\n const ox1 = ox * p;\n const ox2 = ox * p2;\n let i00: number, i01: number, i10: number, i11: number;\n\n for (; py <= ey; py += oy2) {\n let px = py;\n const ex = py + ox * (nx - p2);\n\n for (; px <= ex; px += ox2) {\n const p01 = px + ox1;\n const p10 = px + oy1;\n const p11 = p10 + ox1;\n\n const pxJ = buffer[px + j];\n const p10J = buffer[p10 + j];\n const p01J = buffer[p01 + j];\n const p11J = buffer[p11 + j];\n if (pxJ === undefined || p10J === undefined || p01J === undefined || p11J === undefined) {\n continue;\n }\n\n if (w14) {\n wdec14(pxJ, p10J);\n i00 = wdec14Return.a;\n i10 = wdec14Return.b;\n\n wdec14(p01J, p11J);\n i01 = wdec14Return.a;\n i11 = wdec14Return.b;\n\n wdec14(i00, i01);\n buffer[px + j] = wdec14Return.a;\n buffer[p01 + j] = wdec14Return.b;\n\n wdec14(i10, i11);\n buffer[p10 + j] = wdec14Return.a;\n buffer[p11 + j] = wdec14Return.b;\n } else {\n wdec16(pxJ, p10J);\n i00 = wdec16Return.a;\n i10 = wdec16Return.b;\n\n wdec16(p01J, p11J);\n i01 = wdec16Return.a;\n i11 = wdec16Return.b;\n\n wdec16(i00, i01);\n buffer[px + j] = wdec16Return.a;\n buffer[p01 + j] = wdec16Return.b;\n\n wdec16(i10, i11);\n buffer[p10 + j] = wdec16Return.a;\n buffer[p11 + j] = wdec16Return.b;\n }\n }\n\n if (nx & p) {\n const p10 = px + oy1;\n const pxJ = buffer[px + j];\n const p10J = buffer[p10 + j];\n if (pxJ !== undefined && p10J !== undefined) {\n if (w14) wdec14(pxJ, p10J);\n else wdec16(pxJ, p10J);\n i00 = w14 ? wdec14Return.a : wdec16Return.a;\n buffer[p10 + j] = w14 ? wdec14Return.b : wdec16Return.b;\n buffer[px + j] = i00;\n }\n }\n }\n\n if (ny & p) {\n let px = py;\n const ex = py + ox * (nx - p2);\n for (; px <= ex; px += ox2) {\n const p01 = px + ox1;\n const pxJ = buffer[px + j];\n const p01J = buffer[p01 + j];\n if (pxJ !== undefined && p01J !== undefined) {\n if (w14) wdec14(pxJ, p01J);\n else wdec16(pxJ, p01J);\n i00 = w14 ? wdec14Return.a : wdec16Return.a;\n buffer[p01 + j] = w14 ? wdec14Return.b : wdec16Return.b;\n buffer[px + j] = i00;\n }\n }\n }\n\n p2 = p;\n p >>= 1;\n }\n}\n\n/**\n * Decompress PIZ-compressed scanline block data\n */\nexport function decompressPiz(\n compressedData: Uint8Array,\n width: number,\n channels: ExrChannel[],\n _dataSize: number,\n blockHeight: number = 32,\n): Uint8Array {\n const dataView = new DataView(compressedData.buffer, compressedData.byteOffset, compressedData.byteLength);\n let offset = 0;\n\n // Read min/max non-zero values\n const minNonZero = dataView.getUint16(offset, true);\n offset += INT16_SIZE;\n const maxNonZero = dataView.getUint16(offset, true);\n offset += INT16_SIZE;\n\n if (maxNonZero >= BITMAP_SIZE) {\n throw new Error('Invalid PIZ data: maxNonZero out of range');\n }\n\n // Read bitmap - stored as individual bytes, not bit-packed\n // Read maxNonZero - minNonZero + 1 bytes and store them at positions [i + minNonZero]\n const bitmap = new Uint8Array(BITMAP_SIZE);\n if (minNonZero <= maxNonZero) {\n for (let i = 0; i < maxNonZero - minNonZero + 1; i++) {\n const byte = dataView.getUint8(offset);\n offset += INT8_SIZE;\n bitmap[i + minNonZero] = byte;\n }\n }\n\n // Build reverse LUT\n const lut = new Uint16Array(USHORT_RANGE);\n const n = reverseLutFromBitmap(bitmap, lut);\n\n // Read compressed data size (stored as uint32 after bitmap)\n if (offset + INT32_SIZE > compressedData.length) {\n throw new Error(`Invalid PIZ data: not enough data for compressed size at offset ${offset}`);\n }\n const compressedSize = dataView.getUint32(offset, true);\n offset += INT32_SIZE;\n\n // Validate compressed size\n if (compressedSize <= 0 || compressedSize > compressedData.length - offset) {\n throw new Error(\n `Invalid PIZ compressed size: ${compressedSize}, available: ${compressedData.length - offset}, offset: ${offset}, total length: ${compressedData.length}`,\n );\n }\n\n // Read compressed data - it starts right after the bitmap\n const compressedBuffer = new Uint8Array(compressedData.buffer, compressedData.byteOffset + offset, compressedSize);\n\n const numChannels = channels.length;\n const primaryChannel = channels[0];\n if (!primaryChannel) {\n throw new Error('Invalid PIZ data: no channels');\n }\n const bytesPerChannel = getBytesPerChannel(primaryChannel.pixelType);\n const u16sPerChannelValue = bytesPerChannel / INT16_SIZE; // 1 for HALF, 2 for FLOAT\n const pixelsPerChannel = width * blockHeight;\n const u16sPerChannel = pixelsPerChannel * u16sPerChannelValue;\n const totalU16 = numChannels * u16sPerChannel;\n const outputBuffer = new Uint16Array(totalU16);\n\n hufUncompress(\n compressedBuffer,\n new DataView(compressedBuffer.buffer, compressedBuffer.byteOffset, compressedBuffer.byteLength),\n { value: 0 },\n compressedSize,\n outputBuffer,\n totalU16,\n );\n\n for (let c = 0; c < numChannels; c++) {\n const channelOffset = c * u16sPerChannel;\n if (u16sPerChannelValue === 1) {\n wav2Decode(outputBuffer, channelOffset, width, 1, blockHeight, width, n);\n } else {\n // 32-bit float: two u16 halves per value, decode low and high planes with stride 2\n wav2Decode(outputBuffer, channelOffset, width, 2, blockHeight, width * 2, n);\n wav2Decode(outputBuffer, channelOffset + 1, width, 2, blockHeight, width * 2, n);\n }\n }\n\n applyLut(lut, outputBuffer, totalU16);\n\n const resultSize = width * blockHeight * numChannels * bytesPerChannel;\n const result = new Uint8Array(resultSize);\n const resultView = new DataView(result.buffer, result.byteOffset, result.byteLength);\n\n // Output is scanline-major, channel-major-per-scanline (same convention as every other codec).\n for (let y = 0; y < blockHeight; y++) {\n for (let c = 0; c < numChannels; c++) {\n const lineOffset = (y * numChannels + c) * width * bytesPerChannel;\n for (let x = 0; x < width; x++) {\n const base = c * u16sPerChannel + (y * width + x) * u16sPerChannelValue;\n if (bytesPerChannel === INT16_SIZE) {\n resultView.setUint16(lineOffset + x * INT16_SIZE, outputBuffer[base]!, true);\n } else {\n resultView.setUint32(\n lineOffset + x * FLOAT32_SIZE,\n (outputBuffer[base + 1]! << 16) | outputBuffer[base]!,\n true,\n );\n }\n }\n }\n }\n\n return result;\n}\n", "/**\n * PXR24 (Pixar 24-bit) decompression for OpenEXR\n * Delta decoding + zlib. Lossless for HALF/UINT, lossy for FLOAT.\n */\n\nimport { unzlibSync } from 'fflate';\nimport { FLOAT, HALF, INT16_SIZE, UINT } from './exrConstants.js';\nimport type { ExrChannel } from './exrTypes.js';\n\nfunction getPxr24BytesPerSample(pixelType: number): number {\n switch (pixelType) {\n case UINT:\n return 4;\n case HALF:\n return 2;\n case FLOAT:\n return 3;\n default:\n return 2;\n }\n}\n\nfunction getOutputBytesPerSample(pixelType: number): number {\n switch (pixelType) {\n case UINT:\n return 4;\n case HALF:\n return INT16_SIZE;\n case FLOAT:\n return 4;\n default:\n return INT16_SIZE;\n }\n}\n\n/**\n * Decompress PXR24-compressed scanline block data.\n * Uses line-major order (OpenEXR reference: for each scanline, for each channel, transposed segment).\n * Output is channel-planar, line-major (same as ZIP/RLE) for readExr parsing.\n */\nexport function decompressPxr24(\n compressedData: Uint8Array,\n width: number,\n channels: ExrChannel[],\n _dataSize: number,\n blockHeight: number,\n): Uint8Array {\n const raw = unzlibSync(compressedData);\n\n // Output is line-major, channel-planar: for each line, for each channel, width samples.\n const chBytes = channels.map((ch) => getPxr24BytesPerSample(ch.pixelType));\n const outBytes = channels.map((ch) => getOutputBytesPerSample(ch.pixelType));\n let bytesPerLine = 0;\n for (const b of outBytes) bytesPerLine += width * b;\n const output = new Uint8Array(bytesPerLine * blockHeight);\n const out16 = new Uint16Array(output.buffer);\n const out32 = new Uint32Array(output.buffer);\n\n let readOffset = 0;\n let writeOffset = 0;\n // Line-major (OpenEXR reference): for each scanline, for each channel, one transposed segment\n // laid out as [all byte0][all byte1]... with the delta's MSB first. Accumulator resets per segment.\n for (let ly = 0; ly < blockHeight; ly++) {\n for (let c = 0; c < channels.length; c++) {\n const pixelType = channels[c]!.pixelType;\n const segmentSize = width * chBytes[c]!;\n if (readOffset + segmentSize > raw.length) {\n throw new Error('PXR24: not enough data in decompressed stream');\n }\n const b0 = readOffset;\n const b1 = b0 + width;\n const b2 = b1 + width;\n const b3 = b2 + width;\n readOffset += segmentSize;\n\n let accum = 0;\n if (pixelType === HALF) {\n const o = writeOffset >> 1;\n for (let x = 0; x < width; x++) {\n accum = (accum + ((raw[b0 + x]! << 8) | raw[b1 + x]!)) & 0xffff;\n out16[o + x] = accum;\n }\n } else if (pixelType === FLOAT) {\n const o = writeOffset >> 2;\n for (let x = 0; x < width; x++) {\n accum = (accum + ((raw[b0 + x]! << 16) | (raw[b1 + x]! << 8) | raw[b2 + x]!)) & 0xffffff;\n out32[o + x] = accum << 8; // f24 -> f32 bits\n }\n } else {\n const o = writeOffset >> 2;\n for (let x = 0; x < width; x++) {\n accum = (accum + ((raw[b0 + x]! << 24) | (raw[b1 + x]! << 16) | (raw[b2 + x]! << 8) | raw[b3 + x]!)) >>> 0;\n out32[o + x] = accum;\n }\n }\n writeOffset += width * outBytes[c]!;\n }\n }\n\n if (readOffset !== raw.length) {\n throw new Error(`PXR24: unexpected trailing data (read ${readOffset}, total ${raw.length})`);\n }\n\n return output;\n}\n", "/**\n * ZIP decompression for OpenEXR\n * Uses deflate (zlib) with predictor + reorder post-processing\n */\n\nimport { unzlibSync } from 'fflate';\nimport { applyExrPredictor, reorderExrPixels } from './exrDsp.js';\n\n/**\n * Decompress ZIP-compressed scanline block data\n */\nexport function decompressZip(compressedData: Uint8Array): Uint8Array {\n const decompressed = unzlibSync(compressedData);\n applyExrPredictor(decompressed);\n const result = new Uint8Array(decompressed.length);\n reorderExrPixels(result, decompressed);\n return result;\n}\n", "/**\n * EXR channel name normalization and semantic mapping.\n * Used to detect RGB vs luma-only EXRs and to key channel values in the pixel loop.\n */\n\nexport function normalizeChannelName(name: string): string {\n return name\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9]/g, '');\n}\n\nexport function getChannelSemanticName(name: string): string {\n const normalized = normalizeChannelName(name);\n if (normalized === 'r' || normalized === 'red') return 'r';\n if (normalized === 'g' || normalized === 'green') return 'g';\n if (normalized === 'b' || normalized === 'blue') return 'b';\n if (normalized === 'a' || normalized === 'alpha') return 'a';\n if (\n normalized === 'y' ||\n normalized === 'l' ||\n normalized === 'lum' ||\n normalized === 'luma' ||\n normalized === 'luminance' ||\n normalized === 'gray' ||\n normalized === 'grey'\n ) {\n return 'luma';\n }\n return normalized;\n}\n", "/**\n * EXR header parsing\n * Parses magic, version, and attributes including chlist, displayWindow, dataWindow, compression\n */\n\nimport {\n EXR_COMPRESSION_NAMES,\n EXR_COMPRESSIONS,\n EXR_MAGIC,\n FLOAT32_SIZE,\n INT8_SIZE,\n INT16_SIZE,\n INT32_SIZE,\n NO_COMPRESSION,\n} from './exrConstants.js';\nimport type { ExrBox2i, ExrChannel, ParsedExrHeader } from './exrTypes.js';\n\nfunction readNullTerminatedString(buffer: Uint8Array, offset: number): string {\n const bytes: number[] = [];\n let pos = offset;\n while (pos < buffer.length) {\n const byte = buffer[pos];\n if (byte === undefined) {\n break;\n }\n if (byte === 0) {\n break;\n }\n bytes.push(byte);\n pos++;\n }\n return new TextDecoder().decode(new Uint8Array(bytes));\n}\n\n/**\n * Parse EXR file header from buffer.\n * Returns parsed header and the byte offset immediately after the header.\n *\n * @param exrBuffer - Full EXR file buffer\n * @returns Parsed header and offset after header\n */\nexport function parseExrHeader(exrBuffer: Uint8Array): { header: ParsedExrHeader; offset: number } {\n const dataView = new DataView(exrBuffer.buffer, exrBuffer.byteOffset, exrBuffer.byteLength);\n let offset = 0;\n\n // Read magic number\n const magic = dataView.getUint32(offset, true);\n offset += INT32_SIZE;\n if (magic !== EXR_MAGIC) {\n throw new Error('Invalid EXR file: incorrect magic number');\n }\n\n // Read version/flags (OpenEXR ImfVersion.h: TILED=0x200, NON_IMAGE=0x800, MULTI_PART=0x1000)\n const version = dataView.getUint32(offset, true);\n offset += INT32_SIZE;\n const isMultiPart = (version & 0x1000) !== 0;\n const isTiled = (version & 0x200) !== 0;\n const isDeepData = (version & 0x800) !== 0;\n\n if (isMultiPart || isTiled || isDeepData) {\n throw new Error(\n 'Multi-part, tiled, and deep data EXR files are not supported. This reader supports single-part scanline images only.',\n );\n }\n\n // Read header attributes\n const header: Record<string, unknown> = {};\n while (true) {\n const attributeName = readNullTerminatedString(exrBuffer, offset);\n offset += attributeName.length + 1;\n\n if (attributeName === '') {\n break; // End of header\n }\n\n const attributeType = readNullTerminatedString(exrBuffer, offset);\n offset += attributeType.length + 1;\n\n const attributeSize = dataView.getUint32(offset, true);\n offset += INT32_SIZE;\n\n let attributeValue: unknown;\n if (attributeType === 'string') {\n attributeValue = readNullTerminatedString(exrBuffer, offset);\n offset += attributeSize;\n } else if (attributeType === 'int') {\n attributeValue = dataView.getInt32(offset, true);\n offset += INT32_SIZE;\n } else if (attributeType === 'float') {\n attributeValue = dataView.getFloat32(offset, true);\n offset += FLOAT32_SIZE;\n } else if (attributeType === 'v2i') {\n attributeValue = {\n x: dataView.getInt32(offset, true),\n y: dataView.getInt32(offset + INT32_SIZE, true),\n };\n offset += INT32_SIZE * 2;\n } else if (attributeType === 'v2f') {\n attributeValue = {\n x: dataView.getFloat32(offset, true),\n y: dataView.getFloat32(offset + FLOAT32_SIZE, true),\n };\n offset += FLOAT32_SIZE * 2;\n } else if (attributeType === 'box2i') {\n attributeValue = {\n xMin: dataView.getInt32(offset, true),\n yMin: dataView.getInt32(offset + INT32_SIZE, true),\n xMax: dataView.getInt32(offset + INT32_SIZE * 2, true),\n yMax: dataView.getInt32(offset + INT32_SIZE * 3, true),\n };\n offset += INT32_SIZE * 4;\n } else if (attributeType === 'chlist') {\n const channels: ExrChannel[] = [];\n const chlistStart = offset;\n const chlistEnd = offset + attributeSize;\n while (offset < chlistEnd) {\n const channelName = readNullTerminatedString(exrBuffer, offset);\n const channelNameEnd = offset + channelName.length;\n\n if (channelName === '' || channelNameEnd >= chlistEnd) {\n break;\n }\n\n // Advance past the null terminator\n offset = channelNameEnd + 1;\n\n if (offset + 12 > chlistEnd) {\n break;\n }\n\n // OpenEXR chlist: pixelType is int (4 bytes), pLinear u8 (1), reserved (2 or 3 bytes)\n const pixelTypeRaw = dataView.getInt32(offset, true);\n const pixelType = pixelTypeRaw >= 0 && pixelTypeRaw <= 2 ? pixelTypeRaw : dataView.getUint8(offset);\n offset += INT32_SIZE; // pixelType as int\n const pLinear = dataView.getUint8(offset);\n offset += INT8_SIZE;\n const reserved = dataView.getUint16(offset, true);\n offset += INT16_SIZE;\n // Skip extra reserved byte if present (spec says 3 bytes reserved)\n if (offset < chlistEnd && exrBuffer[offset] === 0 && offset + 1 < chlistEnd) {\n offset += 1;\n }\n const xSampling = dataView.getInt32(offset, true);\n offset += INT32_SIZE;\n const ySampling = dataView.getInt32(offset, true);\n offset += INT32_SIZE;\n\n channels.push({\n name: channelName,\n pixelType,\n pLinear,\n reserved,\n xSampling,\n ySampling,\n });\n\n // Find the next channel name (skip any padding)\n // Look for the next null-terminated string that starts with a printable character\n while (offset < chlistEnd) {\n const nextByte = exrBuffer[offset];\n if (nextByte === undefined) {\n break;\n }\n // If we find a printable ASCII character (32-126), it's likely the start of a channel name\n if (nextByte >= 32 && nextByte <= 126) {\n break;\n }\n // If we find a null byte followed by a printable character, skip the null\n if (nextByte === 0 && offset + 1 < chlistEnd) {\n const nextNextByte = exrBuffer[offset + 1];\n if (nextNextByte !== undefined && nextNextByte >= 32 && nextNextByte <= 126) {\n offset += 1;\n break;\n }\n }\n offset += 1;\n }\n }\n // Ensure we've consumed the full attribute size\n offset = chlistStart + attributeSize;\n attributeValue = channels;\n } else if (attributeType === 'compression') {\n const compression = dataView.getUint8(offset);\n offset += attributeSize; // Use attributeSize instead of INT8_SIZE to handle any size\n attributeValue = compression;\n } else if (attributeType === 'chromaticities') {\n // 8 floats: redX, redY, greenX, greenY, blueX, blueY, whiteX, whiteY (CIE xy chromaticities)\n attributeValue = {\n redX: dataView.getFloat32(offset, true),\n redY: dataView.getFloat32(offset + FLOAT32_SIZE, true),\n greenX: dataView.getFloat32(offset + FLOAT32_SIZE * 2, true),\n greenY: dataView.getFloat32(offset + FLOAT32_SIZE * 3, true),\n blueX: dataView.getFloat32(offset + FLOAT32_SIZE * 4, true),\n blueY: dataView.getFloat32(offset + FLOAT32_SIZE * 5, true),\n whiteX: dataView.getFloat32(offset + FLOAT32_SIZE * 6, true),\n whiteY: dataView.getFloat32(offset + FLOAT32_SIZE * 7, true),\n };\n offset += attributeSize;\n } else {\n // Skip unknown attribute types\n offset += attributeSize;\n }\n\n header[attributeName] = attributeValue;\n }\n\n // Extract key header values\n const displayWindow = header.displayWindow as ExrBox2i | undefined;\n const dataWindow = header.dataWindow as ExrBox2i | undefined;\n const channels = header.channels as ExrChannel[] | undefined;\n const compression = (header.compression as number) ?? NO_COMPRESSION;\n\n if (!(compression in EXR_COMPRESSION_NAMES)) {\n throw new Error(\n `Unsupported EXR compression: unknown (${compression}). This reader supports: ${EXR_COMPRESSIONS.join(', ')}.`,\n );\n }\n\n // Check if required attributes exist and are valid\n if (!displayWindow || !dataWindow || !channels || channels.length === 0) {\n const hasDisplayWindow = displayWindow !== undefined && displayWindow !== null;\n const hasDataWindow = dataWindow !== undefined && dataWindow !== null;\n const hasChannels = channels !== undefined && channels !== null && channels.length > 0;\n throw new Error(\n `Invalid EXR file: missing required header attributes. displayWindow: ${hasDisplayWindow}, dataWindow: ${hasDataWindow}, channels: ${hasChannels ? channels.length : 0}, header keys: ${Object.keys(header).join(', ')}`,\n );\n }\n\n return {\n header: {\n header,\n displayWindow,\n dataWindow,\n channels,\n compression,\n },\n offset,\n };\n}\n", "/**\n * EXR (OpenEXR) file reader\n *\n * Extracted and adapted from Three.js EXRLoader\n * Supports PIZ, ZIP, RLE, and uncompressed EXR files\n */\n\nimport { chromaticitiesToLinearColorSpace } from '../color/colorSpaces.js';\nimport type { HdrifyImage } from '../hdrifyImage.js';\nimport { decompressB44 } from './decompressB44.js';\nimport { decompressDwa } from './decompressDwa.js';\nimport { decompressPiz } from './decompressPiz.js';\nimport { decompressPxr24 } from './decompressPxr24.js';\nimport { decompressRleBlock } from './decompressRle.js';\nimport { decompressZip } from './decompressZip.js';\nimport { getChannelSemanticName } from './exrChannelSemantics.js';\nimport {\n B44A_COMPRESSION,\n B44_COMPRESSION,\n DWAA_COMPRESSION,\n DWAB_COMPRESSION,\n FLOAT,\n FLOAT32_SIZE,\n HALF,\n INT16_SIZE,\n INT32_SIZE,\n NO_COMPRESSION,\n PIZ_COMPRESSION,\n PXR24_COMPRESSION,\n RLE_COMPRESSION,\n UINT,\n ULONG_SIZE,\n ZIP_COMPRESSION,\n ZIPS_COMPRESSION,\n} from './exrConstants.js';\nimport { parseExrHeader } from './exrHeader.js';\nimport { getHalfToFloatLut } from './halfFloat.js';\n\nfunction getPixelTypeSize(pixelType: number): number {\n switch (pixelType) {\n case UINT:\n return INT32_SIZE;\n case HALF:\n return INT16_SIZE;\n case FLOAT:\n return FLOAT32_SIZE;\n default:\n throw new Error(`Unknown pixel type: ${pixelType}`);\n }\n}\n\n/**\n * Read an EXR file buffer and return HdrifyImage\n *\n * @param exrBuffer - Uint8Array containing EXR file data\n * @returns Parsed EXR image data with dimensions and pixel data as HdrifyImage\n */\nexport interface ReadExrOptions {\n /** Replace negative and non-finite values with 0 after reading (default true). Set false for normal, depth or disparity data. */\n sanitize?: boolean;\n}\n\nexport function readExr(exrBuffer: Uint8Array, options?: ReadExrOptions): HdrifyImage {\n const dataView = new DataView(exrBuffer.buffer, exrBuffer.byteOffset, exrBuffer.byteLength);\n const { header: parsedHeader, offset } = parseExrHeader(exrBuffer);\n\n const { header, dataWindow, channels, compression } = parsedHeader;\n const width = dataWindow.xMax - dataWindow.xMin + 1;\n const height = dataWindow.yMax - dataWindow.yMin + 1;\n\n // Resolve channel semantics for mode detection\n const hasR = channels.some((ch) => getChannelSemanticName(ch.name) === 'r');\n const hasG = channels.some((ch) => getChannelSemanticName(ch.name) === 'g');\n const hasB = channels.some((ch) => getChannelSemanticName(ch.name) === 'b');\n const hasLuma = channels.some((ch) => getChannelSemanticName(ch.name) === 'luma');\n\n const isRgbMode = hasR && hasG && hasB;\n const isLumaMode = !isRgbMode && hasLuma;\n\n if (!isRgbMode && !isLumaMode) {\n throw new Error(\n 'Non-RGB EXR files are not supported. This reader requires R, G, and B channels, or a luminance (Y/L/luma) channel.',\n );\n }\n\n // Determine block height based on compression type (OpenEXR spec: ZIP/PXR24=16, PIZ=32, others=1)\n const blockHeight =\n compression === PIZ_COMPRESSION ||\n compression === DWAA_COMPRESSION ||\n compression === B44_COMPRESSION ||\n compression === B44A_COMPRESSION\n ? 32\n : compression === ZIP_COMPRESSION || compression === PXR24_COMPRESSION\n ? 16\n : compression === DWAB_COMPRESSION\n ? 256\n : 1;\n const expectedBlockCount = Math.ceil(height / blockHeight);\n\n // Read scanline offsets - exactly one offset per block\n const scanlineBlockOffsets: number[] = [];\n const offsetTableStart = offset;\n let readOffset = offset;\n\n const maxOffsets = expectedBlockCount;\n for (let i = 0; i < maxOffsets && readOffset + ULONG_SIZE <= exrBuffer.length; i++) {\n // Read as uint64, but handle case where value might be stored incorrectly\n let offsetValue = Number(dataView.getBigUint64(readOffset, true));\n\n // If the value is way too large (likely a byte-order issue), try reading as two uint32s\n if (offsetValue > exrBuffer.length && offsetValue < Number.MAX_SAFE_INTEGER) {\n const low32 = dataView.getUint32(readOffset, true);\n const high32 = dataView.getUint32(readOffset + 4, true);\n if (high32 === 0 && low32 < exrBuffer.length) {\n offsetValue = low32;\n } else if (low32 === 0 && high32 < exrBuffer.length) {\n offsetValue = high32;\n }\n }\n\n const canReadBlockHeader = offsetValue >= 0 && offsetValue + 8 <= exrBuffer.length;\n const notInHeader = offsetValue >= offsetTableStart;\n if (canReadBlockHeader && notInHeader) {\n scanlineBlockOffsets.push(offsetValue);\n } else if (scanlineBlockOffsets.length > 0) {\n break;\n }\n readOffset += ULONG_SIZE;\n }\n\n // Determine actual block height by checking Y coordinates of first two scanlines\n let actualBlockHeightFinal = blockHeight;\n if (scanlineBlockOffsets.length >= 2) {\n const firstOffset = scanlineBlockOffsets[0];\n const secondOffset = scanlineBlockOffsets[1];\n\n if (\n firstOffset !== undefined &&\n secondOffset !== undefined &&\n firstOffset < exrBuffer.length &&\n secondOffset < exrBuffer.length &&\n firstOffset >= 0 &&\n secondOffset >= 0\n ) {\n try {\n const firstY = dataView.getInt32(firstOffset, true);\n const secondY = dataView.getInt32(secondOffset, true);\n\n if (secondY === firstY + 1) {\n actualBlockHeightFinal = 1;\n if (scanlineBlockOffsets.length > height) {\n scanlineBlockOffsets.length = height;\n }\n }\n } catch {\n // If we can't read Y coordinates, use default block height\n }\n }\n }\n\n const blockCount = scanlineBlockOffsets.length;\n\n if (blockCount === 0) {\n throw new Error(`Invalid EXR file: no valid scanline block offsets found`);\n }\n const pixelData = new Float32Array(width * height * 4); // RGBA\n\n // Every decoded block (and an uncompressed one) is channel-planar per scanline:\n // for each line, for each channel in header order, `width` samples of that channel's type.\n // Resolve each channel's output slot (0..3, or -1 to skip) once, not per sample.\n const channelSizes = channels.map((ch) => getPixelTypeSize(ch.pixelType));\n const channelLineOffsets: number[] = [];\n const channelSlots: number[] = [];\n let bytesPerScanline = 0;\n let hasAlpha = false;\n for (let c = 0; c < channels.length; c++) {\n const sem = getChannelSemanticName(channels[c]!.name);\n const slot = isRgbMode ? { r: 0, g: 1, b: 2, a: 3 }[sem] : sem === 'luma' ? 0 : sem === 'a' ? 3 : undefined;\n channelSlots.push(slot ?? -1);\n if (slot === 3) hasAlpha = true;\n channelLineOffsets.push(bytesPerScanline);\n bytesPerScanline += width * channelSizes[c]!;\n }\n if (!hasAlpha) {\n for (let i = 3; i < pixelData.length; i += 4) pixelData[i] = 1;\n }\n const sanitize = options?.sanitize !== false;\n const halfLut = getHalfToFloatLut();\n\n for (let blockIdx = 0; blockIdx < blockCount; blockIdx++) {\n const scanlineBlockOffset = scanlineBlockOffsets[blockIdx];\n if (scanlineBlockOffset === undefined) {\n throw new Error(`Missing scanline block offset for block ${blockIdx}`);\n }\n\n if (scanlineBlockOffset >= exrBuffer.length || scanlineBlockOffset < 0) {\n throw new Error(\n `Invalid scanline block offset ${scanlineBlockOffset} for block ${blockIdx} (file size: ${exrBuffer.length})`,\n );\n }\n\n let scanlinePos = scanlineBlockOffset;\n\n if (scanlinePos + INT32_SIZE > exrBuffer.length) {\n throw new Error(`Invalid scanline block: not enough data for Y coordinate at offset ${scanlinePos}`);\n }\n const firstLineY = dataView.getInt32(scanlinePos, true);\n scanlinePos += INT32_SIZE;\n\n if (scanlinePos + INT32_SIZE > exrBuffer.length) {\n throw new Error(`Invalid scanline block: not enough data for data size at offset ${scanlinePos}`);\n }\n const dataSize = dataView.getUint32(scanlinePos, true);\n scanlinePos += INT32_SIZE;\n\n const available = exrBuffer.length - scanlinePos;\n if (dataSize <= 0 || dataSize > available) {\n const looksLikeFormatMismatch = dataSize > exrBuffer.length || dataSize > 100 * 1024 * 1024;\n if (looksLikeFormatMismatch) {\n throw new Error(\n `Unsupported or invalid EXR format: scanline block ${blockIdx} has invalid data size (${dataSize} bytes, ${available} available). ` +\n `This file may use a compression or layout not supported by this reader. Supported: none, RLE, ZIPS, ZIP, PIZ, PXR24, B44, B44A, DWAA, DWAB.`,\n );\n }\n throw new Error(\n `Invalid scanline block data size: ${dataSize} at offset ${scanlinePos - 4} (file size: ${exrBuffer.length}, available: ${available})`,\n );\n }\n\n const linesInBlock = Math.min(actualBlockHeightFinal, height - firstLineY);\n\n const expectedUncompressedSize = linesInBlock * bytesPerScanline;\n const compressedData = new Uint8Array(exrBuffer.buffer, exrBuffer.byteOffset + scanlinePos, dataSize);\n\n let decompressedData: Uint8Array;\n if (compression === NO_COMPRESSION || dataSize === expectedUncompressedSize) {\n // OpenEXR stores a chunk raw (any codec) when compressing it would not make it smaller.\n decompressedData = compressedData;\n } else if (compression === ZIP_COMPRESSION || compression === ZIPS_COMPRESSION) {\n decompressedData = decompressZip(compressedData);\n } else if (compression === RLE_COMPRESSION) {\n decompressedData = decompressRleBlock(compressedData, expectedUncompressedSize);\n } else if (compression === PIZ_COMPRESSION) {\n // Decoders must use this chunk's exact line count (the last chunk may be shorter than the block size).\n decompressedData = decompressPiz(compressedData, width, channels, dataSize, linesInBlock);\n } else if (compression === PXR24_COMPRESSION) {\n decompressedData = decompressPxr24(compressedData, width, channels, dataSize, linesInBlock);\n } else if (compression === DWAA_COMPRESSION || compression === DWAB_COMPRESSION) {\n decompressedData = decompressDwa(compressedData, width, channels, dataSize, linesInBlock);\n } else if (compression === B44_COMPRESSION || compression === B44A_COMPRESSION) {\n decompressedData = decompressB44(compressedData, width, channels, dataSize, linesInBlock);\n } else {\n throw new Error(`Unsupported compression type: ${compression}`);\n }\n\n // Typed-array row views need an aligned base; only raw-stored chunks (subarrays of the file) can be misaligned.\n if (decompressedData.byteOffset & 3) decompressedData = decompressedData.slice();\n const blockBuffer = decompressedData.buffer;\n const blockBase = decompressedData.byteOffset;\n\n for (let lineInBlock = 0; lineInBlock < linesInBlock; lineInBlock++) {\n const y = firstLineY + lineInBlock;\n if (y >= height) {\n break;\n }\n const rowBase = blockBase + lineInBlock * bytesPerScanline;\n const outLine = y * width * 4;\n\n for (let c = 0; c < channels.length; c++) {\n const slot = channelSlots[c]!;\n if (slot < 0) continue;\n const rowOffset = rowBase + channelLineOffsets[c]!;\n const pixelType = channels[c]!.pixelType;\n let row: Uint16Array | Uint32Array | Float32Array;\n if (pixelType === HALF) row = new Uint16Array(blockBuffer, rowOffset, width);\n else if (pixelType === FLOAT) row = new Float32Array(blockBuffer, rowOffset, width);\n else row = new Uint32Array(blockBuffer, rowOffset, width);\n\n let o = outLine + slot;\n if (pixelType === HALF) {\n for (let x = 0; x < width; x++, o += 4) {\n const v = halfLut[row[x]!]!;\n pixelData[o] = sanitize && !(v >= 0 && v < Infinity) ? 0 : v;\n }\n } else {\n for (let x = 0; x < width; x++, o += 4) {\n const v = row[x]!;\n pixelData[o] = sanitize && !(v >= 0 && v < Infinity) ? 0 : v;\n }\n }\n if (isLumaMode && slot === 0) {\n for (let x = 0, p = outLine; x < width; x++, p += 4) {\n pixelData[p + 1] = pixelData[p]!;\n pixelData[p + 2] = pixelData[p]!;\n }\n }\n }\n }\n }\n\n const chromaticities = header.chromaticities as\n | {\n redX: number;\n redY: number;\n greenX: number;\n greenY: number;\n blueX: number;\n blueY: number;\n whiteX: number;\n whiteY: number;\n }\n | undefined;\n const linearColorSpace =\n chromaticities &&\n typeof chromaticities.redX === 'number' &&\n typeof chromaticities.redY === 'number' &&\n typeof chromaticities.greenX === 'number' &&\n typeof chromaticities.greenY === 'number' &&\n typeof chromaticities.blueX === 'number' &&\n typeof chromaticities.blueY === 'number' &&\n typeof chromaticities.whiteX === 'number' &&\n typeof chromaticities.whiteY === 'number'\n ? (chromaticitiesToLinearColorSpace(chromaticities) ?? 'linear-rec709')\n : 'linear-rec709';\n\n return {\n width,\n height,\n data: pixelData,\n linearColorSpace,\n metadata: header,\n };\n}\n", "import type { LinearColorSpace } from './color/colorSpaces.js';\n\n/**\n * Floating point image data structure used as an intermediate format\n * for converting between HDR and EXR formats.\n *\n * This format enables format-agnostic processing and ensures consistent\n * data structure across different environment map formats.\n */\nexport interface HdrifyImage {\n /** Image width in pixels */\n width: number;\n /** Image height in pixels */\n height: number;\n /** RGBA pixel data as Float32Array: [R, G, B, A, R, G, B, A, ...] */\n data: Float32Array;\n /** Linear color space (primaries) of the RGB data */\n linearColorSpace: LinearColorSpace;\n /** Header metadata from source file (e.g. FORMAT, EXPOSURE, GAMMA for HDR; displayWindow, dataWindow, channels, compression for EXR) */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Sanitize float buffer in-place: set any negative or non-finite value to 0.\n * Used after loading and before saving/encoding so pipelines can assume non-negative finite data.\n *\n * @param data - Float32Array to mutate\n */\nexport function ensureNonNegativeFinite(data: Float32Array): void {\n for (let i = 0; i < data.length; i++) {\n const v = data[i];\n if (v === undefined || v < 0 || !Number.isFinite(v)) data[i] = 0;\n }\n}\n", "/**\n * EXR scan line offset table builder\n * Builds the offset table (one 64-bit offset per block) per OpenEXR spec.\n */\n\nimport {\n B44A_COMPRESSION,\n B44_COMPRESSION,\n DWAA_COMPRESSION,\n DWAB_COMPRESSION,\n INT32_SIZE,\n NO_COMPRESSION,\n PIZ_COMPRESSION,\n PXR24_COMPRESSION,\n RLE_COMPRESSION,\n ULONG_SIZE,\n ZIP_COMPRESSION,\n ZIPS_COMPRESSION,\n} from './exrConstants.js';\n\n/** Block heights per compression type (OpenEXR spec) */\nconst BLOCK_HEIGHT: Record<number, number> = {\n [NO_COMPRESSION]: 1,\n [RLE_COMPRESSION]: 1,\n [ZIPS_COMPRESSION]: 1,\n [ZIP_COMPRESSION]: 16,\n [PIZ_COMPRESSION]: 32,\n [PXR24_COMPRESSION]: 16,\n [B44_COMPRESSION]: 32,\n [B44A_COMPRESSION]: 32,\n [DWAA_COMPRESSION]: 32,\n [DWAB_COMPRESSION]: 256,\n};\n\n/**\n * Get the number of scan lines per block for the given compression type.\n */\nexport function getBlockHeight(compression: number): number {\n return BLOCK_HEIGHT[compression] ?? 1;\n}\n\n/**\n * Get the number of blocks for the given image height and compression.\n */\nexport function getBlockCount(height: number, compression: number): number {\n const blockHeight = getBlockHeight(compression);\n return Math.ceil(height / blockHeight);\n}\n\nexport interface BuildExrOffsetTableOptions {\n width: number;\n height: number;\n compression: number;\n /** Byte offset in the file where the offset table starts */\n offsetTableStart: number;\n /** Bytes per pixel (e.g. 16 for RGBA float) */\n bytesPerPixel?: number;\n}\n\n/**\n * Compute the size in bytes of a single scan line block.\n * Block layout: y (4) + dataSize (4) + pixelData.\n */\nfunction getBlockSize(width: number, lineCount: number, bytesPerPixel: number): number {\n const pixelDataSize = width * lineCount * bytesPerPixel;\n return INT32_SIZE + INT32_SIZE + pixelDataSize;\n}\n\n/**\n * Build the scan line offset table.\n * Returns a Uint8Array of little-endian uint64 values, one per block.\n */\nexport function buildExrOffsetTable(options: BuildExrOffsetTableOptions): Uint8Array {\n const {\n width,\n height,\n compression,\n offsetTableStart,\n bytesPerPixel = 16, // RGBA float\n } = options;\n\n const blockCount = getBlockCount(height, compression);\n const blockHeight = getBlockHeight(compression);\n const result = new Uint8Array(blockCount * ULONG_SIZE);\n const view = new DataView(result.buffer, result.byteOffset, result.byteLength);\n\n let currentOffset = offsetTableStart + blockCount * ULONG_SIZE;\n\n for (let b = 0; b < blockCount; b++) {\n const firstLineY = b * blockHeight;\n const lineCount = Math.min(blockHeight, height - firstLineY);\n const blockSize = getBlockSize(width, lineCount, bytesPerPixel);\n\n view.setBigUint64(b * ULONG_SIZE, BigInt(currentOffset), true);\n currentOffset += blockSize;\n }\n\n return result;\n}\n\nexport interface BuildExrOffsetTableFromBlocksOptions {\n /** Byte offset in the file where the offset table starts */\n offsetTableStart: number;\n /** Pre-built blocks (each has y + dataSize + data) */\n blocks: Uint8Array[];\n}\n\n/**\n * Build offset table from actual block data (for variable-size compressed blocks)\n */\nexport function buildExrOffsetTableFromBlocks(options: BuildExrOffsetTableFromBlocksOptions): Uint8Array {\n const { offsetTableStart, blocks } = options;\n const blockCount = blocks.length;\n const result = new Uint8Array(blockCount * ULONG_SIZE);\n const view = new DataView(result.buffer, result.byteOffset, result.byteLength);\n\n let currentOffset = offsetTableStart + blockCount * ULONG_SIZE;\n\n for (let b = 0; b < blockCount; b++) {\n view.setBigUint64(b * ULONG_SIZE, BigInt(currentOffset), true);\n currentOffset += blocks[b]!.length;\n }\n\n return result;\n}\n", "/**\n * CPU decode: apply gain map to SDR to produce HDR Float32 RGBA.\n * Matches UltraHDR/gainmap-js formula: logRecovery, logBoost, weightFactor, offsets.\n *\n * Adobe/Ultra HDR spec: SDR base image is sRGB (display-ready for standard viewers).\n * We linearize before applying gain; the gain formula uses linear light.\n */\n\nimport { sRGBToLinear } from '../../color/srgb.js';\nimport type { HdrifyImage } from '../../hdrifyImage.js';\nimport type { GainMapMetadata } from '../types.js';\n\nconst HALF_FLOAT_MAX = 65504;\n\nexport interface DecodeGainMapOptions {\n /** Maximum display boost for weight factor; default full HDR (weightFactor = 1) */\n maxDisplayBoost?: number;\n}\n\nfunction isFloat32Array(a: Uint8Array | Uint8ClampedArray | Float32Array): a is Float32Array {\n return a instanceof Float32Array;\n}\n\n/**\n * Decode SDR + gain map pixels with metadata into linear HDR HdrifyImage.\n * SDR and gainMap can be 0-255 RGBA (Uint8) or 0-1 float (Float32Array). Mixed modes supported.\n */\nexport function decodeGainMapCpu(\n sdr: Uint8ClampedArray | Uint8Array | Float32Array,\n gainMap: Uint8ClampedArray | Uint8Array | Float32Array,\n width: number,\n height: number,\n metadata: GainMapMetadata,\n options: DecodeGainMapOptions = {},\n): HdrifyImage {\n const { gamma, offsetSdr, offsetHdr, gainMapMin, gainMapMax, hdrCapacityMin, hdrCapacityMax } = metadata;\n\n const maxDisplayBoost = options.maxDisplayBoost ?? 2 ** hdrCapacityMax;\n const capacityRange = hdrCapacityMax - hdrCapacityMin;\n const unclampedWeight = capacityRange <= 0 ? 1 : (Math.log2(maxDisplayBoost) - hdrCapacityMin) / capacityRange;\n const weightFactor = Math.max(0, Math.min(1, unclampedWeight));\n\n const invGamma = [1 / gamma[0], 1 / gamma[1], 1 / gamma[2]] as [number, number, number];\n const useGammaOne = gamma[0] === 1 && gamma[1] === 1 && gamma[2] === 1;\n\n const sdrIsFloat = isFloat32Array(sdr);\n const gainMapIsFloat = isFloat32Array(gainMap);\n\n const pixelCount = width * height;\n const out = new Float32Array(pixelCount * 4);\n\n for (let i = 0; i < pixelCount; i++) {\n const i4 = i * 4;\n // Spec: SDR base is sRGB. Linearize to get SDR_linear for the gain formula.\n const sdrR = sdrIsFloat ? sRGBToLinear(sdr[i4]!) : sRGBToLinear(sdr[i4]! / 255);\n const sdrG = sdrIsFloat ? sRGBToLinear(sdr[i4 + 1]!) : sRGBToLinear(sdr[i4 + 1]! / 255);\n const sdrB = sdrIsFloat ? sRGBToLinear(sdr[i4 + 2]!) : sRGBToLinear(sdr[i4 + 2]! / 255);\n\n const gainR = gainMapIsFloat ? gainMap[i4]! : gainMap[i4]! / 255;\n const gainG = gainMapIsFloat ? gainMap[i4 + 1]! : gainMap[i4 + 1]! / 255;\n const gainB = gainMapIsFloat ? gainMap[i4 + 2]! : gainMap[i4 + 2]! / 255;\n\n const logRecoveryR = useGammaOne ? gainR : gainR ** invGamma[0];\n const logRecoveryG = useGammaOne ? gainG : gainG ** invGamma[1];\n const logRecoveryB = useGammaOne ? gainB : gainB ** invGamma[2];\n\n const logBoostR = gainMapMin[0] * (1 - logRecoveryR) + gainMapMax[0] * logRecoveryR;\n const logBoostG = gainMapMin[1] * (1 - logRecoveryG) + gainMapMax[1] * logRecoveryG;\n const logBoostB = gainMapMin[2] * (1 - logRecoveryB) + gainMapMax[2] * logRecoveryB;\n\n const w = weightFactor;\n const hdrR = (sdrR + offsetSdr[0]) * (w * logBoostR === 0 ? 1 : 2 ** (logBoostR * w)) - offsetHdr[0];\n const hdrG = (sdrG + offsetSdr[1]) * (w * logBoostG === 0 ? 1 : 2 ** (logBoostG * w)) - offsetHdr[1];\n const hdrB = (sdrB + offsetSdr[2]) * (w * logBoostB === 0 ? 1 : 2 ** (logBoostB * w)) - offsetHdr[2];\n\n out[i4] = Math.max(0, Math.min(HALF_FLOAT_MAX, hdrR));\n out[i4 + 1] = Math.max(0, Math.min(HALF_FLOAT_MAX, hdrG));\n out[i4 + 2] = Math.max(0, Math.min(HALF_FLOAT_MAX, hdrB));\n out[i4 + 3] = 1;\n }\n\n return {\n width,\n height,\n data: out,\n linearColorSpace: 'linear-rec709',\n };\n}\n\n/**\n * Decode from float SDR and float gain map (no quantization). For testing and incremental pipeline.\n * Same formula as decodeGainMapCpu. sdrFloat is sRGB [0,1] per spec (matches stored base image).\n */\nexport function decodeGainMapFromFloat(\n sdrFloat: Float32Array,\n gainMapFloat: Float32Array,\n width: number,\n height: number,\n metadata: GainMapMetadata,\n options: DecodeGainMapOptions = {},\n): HdrifyImage {\n const { gamma, offsetSdr, offsetHdr, gainMapMin, gainMapMax, hdrCapacityMin, hdrCapacityMax } = metadata;\n\n const maxDisplayBoost = options.maxDisplayBoost ?? 2 ** hdrCapacityMax;\n const capacityRange = hdrCapacityMax - hdrCapacityMin;\n const unclampedWeight = capacityRange <= 0 ? 1 : (Math.log2(maxDisplayBoost) - hdrCapacityMin) / capacityRange;\n const weightFactor = Math.max(0, Math.min(1, unclampedWeight));\n\n const invGamma = [1 / gamma[0], 1 / gamma[1], 1 / gamma[2]] as [number, number, number];\n const useGammaOne = gamma[0] === 1 && gamma[1] === 1 && gamma[2] === 1;\n\n const pixelCount = width * height;\n const out = new Float32Array(pixelCount * 4);\n\n for (let i = 0; i < pixelCount; i++) {\n const i4 = i * 4;\n // Spec: SDR base is sRGB. sdrFloat mirrors the stored format; linearize for gain formula.\n const sdrR = sRGBToLinear(sdrFloat[i4]!);\n const sdrG = sRGBToLinear(sdrFloat[i4 + 1]!);\n const sdrB = sRGBToLinear(sdrFloat[i4 + 2]!);\n\n const gainR = gainMapFloat[i4]!;\n const gainG = gainMapFloat[i4 + 1]!;\n const gainB = gainMapFloat[i4 + 2]!;\n\n const logRecoveryR = useGammaOne ? gainR : gainR ** invGamma[0];\n const logRecoveryG = useGammaOne ? gainG : gainG ** invGamma[1];\n const logRecoveryB = useGammaOne ? gainB : gainB ** invGamma[2];\n\n const logBoostR = gainMapMin[0] * (1 - logRecoveryR) + gainMapMax[0] * logRecoveryR;\n const logBoostG = gainMapMin[1] * (1 - logRecoveryG) + gainMapMax[1] * logRecoveryG;\n const logBoostB = gainMapMin[2] * (1 - logRecoveryB) + gainMapMax[2] * logRecoveryB;\n\n const w = weightFactor;\n const hdrR = (sdrR + offsetSdr[0]) * (w * logBoostR === 0 ? 1 : 2 ** (logBoostR * w)) - offsetHdr[0];\n const hdrG = (sdrG + offsetSdr[1]) * (w * logBoostG === 0 ? 1 : 2 ** (logBoostG * w)) - offsetHdr[1];\n const hdrB = (sdrB + offsetSdr[2]) * (w * logBoostB === 0 ? 1 : 2 ** (logBoostB * w)) - offsetHdr[2];\n\n out[i4] = Math.max(0, Math.min(HALF_FLOAT_MAX, hdrR));\n out[i4 + 1] = Math.max(0, Math.min(HALF_FLOAT_MAX, hdrG));\n out[i4 + 2] = Math.max(0, Math.min(HALF_FLOAT_MAX, hdrB));\n out[i4 + 3] = 1;\n }\n\n return {\n width,\n height,\n data: out,\n linearColorSpace: 'linear-rec709',\n };\n}\n", "/**\n * Pure TypeScript tone mapping implementations.\n * Ported from gainmap-js SDRMaterial GLSL.\n *\n * All mappers output linear 0-1. Callers apply linearToSrgb for display (matches Three.js).\n * Batch API: input/output Float32Array with stride 3 per pixel.\n */\n\nimport {\n applyMatrix3,\n LINEAR_REC709_TO_LINEAR_REC2020,\n LINEAR_REC2020_TO_LINEAR_REC709,\n mat3ToArray,\n} from '../color/matrixConversion.js';\nimport type { ToneMappingBatchFn, ToneMappingType } from './types.js';\n\n/** Color space of tone mapper output: 'linear' or 'srgb'. */\nexport type ColorSpace = 'linear' | 'srgb';\n\n/** RRTAndODTFit for ACES */\nfunction RRTAndODTFit(v: number): number {\n const a = v * (v + 0.0245786) - 0.000090537;\n const bVal = v * (0.983729 * v + 0.432951) + 0.238081;\n return a / bVal;\n}\n\n/**\n * ACES Filmic tone mapping - matches gainmap-js default.\n * Input: linear RGB (callers ensure non-negative finite). Output: linear 0-1.\n */\nfunction acesFilmicBatch(input: Float32Array, output: Float32Array, pixelCount: number): void {\n const m00 = 0.59719,\n m01 = 0.35458,\n m02 = 0.04823;\n const m10 = 0.076,\n m11 = 0.90834,\n m12 = 0.01566;\n const m20 = 0.0284,\n m21 = 0.13383,\n m22 = 0.83777;\n const o00 = 1.60475,\n o01 = -0.53108,\n o02 = -0.07367;\n const o10 = -0.10208,\n o11 = 1.10813,\n o12 = -0.00605;\n const o20 = -0.00327,\n o21 = -0.07276,\n o22 = 1.07602;\n\n for (let i = 0; i < pixelCount; i++) {\n const si = i * 3;\n const r = input[si]!;\n const g = input[si + 1]!;\n const b = input[si + 2]!;\n\n const r1 = m00 * r + m01 * g + m02 * b;\n const g1 = m10 * r + m11 * g + m12 * b;\n const b1 = m20 * r + m21 * g + m22 * b;\n\n const r2 = RRTAndODTFit(r1);\n const g2 = RRTAndODTFit(g1);\n const b2 = RRTAndODTFit(b1);\n\n output[si] = o00 * r2 + o01 * g2 + o02 * b2;\n output[si + 1] = o10 * r2 + o11 * g2 + o12 * b2;\n output[si + 2] = o20 * r2 + o21 * g2 + o22 * b2;\n }\n}\n\n/**\n * Reinhard tone mapping: x / (1 + x). Output: linear 0-1.\n */\nfunction reinhardBatch(input: Float32Array, output: Float32Array, pixelCount: number): void {\n for (let i = 0; i < pixelCount; i++) {\n const si = i * 3;\n const r = input[si]!;\n const g = input[si + 1]!;\n const b = input[si + 2]!;\n output[si] = r / (1 + r);\n output[si + 1] = g / (1 + g);\n output[si + 2] = b / (1 + b);\n }\n}\n\n/**\n * Khronos Neutral tone mapping - https://modelviewer.dev/examples/tone-mapping\n */\nfunction neutralBatch(input: Float32Array, output: Float32Array, pixelCount: number): void {\n const StartCompression = 0.8 - 0.04;\n const Desaturation = 0.15;\n\n for (let i = 0; i < pixelCount; i++) {\n const si = i * 3;\n let r0 = input[si]!;\n let g0 = input[si + 1]!;\n let b0 = input[si + 2]!;\n\n const x = Math.min(r0, Math.min(g0, b0));\n const offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\n r0 -= offset;\n g0 -= offset;\n b0 -= offset;\n\n const peak = Math.max(r0, Math.max(g0, b0));\n\n if (peak < StartCompression) {\n output[si] = r0;\n output[si + 1] = g0;\n output[si + 2] = b0;\n continue;\n }\n\n const d = 1.0 - StartCompression;\n const newPeak = 1.0 - (d * d) / (peak + d - StartCompression);\n\n r0 *= newPeak / peak;\n g0 *= newPeak / peak;\n b0 *= newPeak / peak;\n\n const gMix = 1.0 - 1.0 / (Desaturation * (peak - newPeak) + 1.0);\n\n output[si] = r0 * (1 - gMix) + newPeak * gMix;\n output[si + 1] = g0 * (1 - gMix) + newPeak * gMix;\n output[si + 2] = b0 * (1 - gMix) + newPeak * gMix;\n }\n}\n\nfunction agxDefaultContrastApprox(x: number): number {\n const x2 = x * x;\n const x4 = x2 * x2;\n return 15.5 * x4 * x2 - 40.14 * x4 * x + 31.96 * x4 - 6.868 * x2 * x + 0.4298 * x2 + 0.1191 * x - 0.00232;\n}\n\nconst LINEAR_REC709_TO_REC2020 = mat3ToArray(LINEAR_REC709_TO_LINEAR_REC2020);\nconst LINEAR_REC2020_TO_REC709 = mat3ToArray(LINEAR_REC2020_TO_LINEAR_REC709);\n\nconst AgXInsetMatrix: [number, number, number, number, number, number, number, number, number] = [\n 0.856627153315983, 0.0951212405381588, 0.0482516061458583, 0.137318972929847, 0.761241990602591, 0.101439036467562,\n 0.11189821299995, 0.0767994186031903, 0.811302368396859,\n];\n\nconst AgXOutsetMatrix: [number, number, number, number, number, number, number, number, number] = [\n 1.1271005818144368, -0.11060664309660323, -0.016493938717834573, -0.1413297634984383, 1.157823702216272,\n -0.016493938717834257, -0.14132976349843826, -0.11060664309660294, 1.2519364065950405,\n];\n\nconst AgxMinEv = -12.47393;\nconst AgxMaxEv = 4.026069;\n\n/**\n * AgX tone mapping from Blender via Filament.\n */\nconst agxVecIn: [number, number, number] = [0, 0, 0];\nconst agxVecOut: [number, number, number] = [0, 0, 0];\n\nfunction agxBatch(input: Float32Array, output: Float32Array, pixelCount: number): void {\n for (let i = 0; i < pixelCount; i++) {\n const si = i * 3;\n agxVecIn[0] = input[si]!;\n agxVecIn[1] = input[si + 1]!;\n agxVecIn[2] = input[si + 2]!;\n\n applyMatrix3(LINEAR_REC709_TO_REC2020, agxVecIn, agxVecOut);\n let r = agxVecOut[0];\n let g = agxVecOut[1];\n let b = agxVecOut[2];\n\n applyMatrix3(AgXInsetMatrix, agxVecOut, agxVecIn);\n r = agxVecIn[0]!;\n g = agxVecIn[1]!;\n b = agxVecIn[2]!;\n\n r = Math.max(r, 1e-10);\n g = Math.max(g, 1e-10);\n b = Math.max(b, 1e-10);\n\n const divisor = 1 / (AgxMaxEv - AgxMinEv);\n r = Math.max(0, Math.min(1, (Math.log2(r) - AgxMinEv) * divisor));\n g = Math.max(0, Math.min(1, (Math.log2(g) - AgxMinEv) * divisor));\n b = Math.max(0, Math.min(1, (Math.log2(b) - AgxMinEv) * divisor));\n\n r = agxDefaultContrastApprox(r);\n g = agxDefaultContrastApprox(g);\n b = agxDefaultContrastApprox(b);\n\n agxVecIn[0] = r;\n agxVecIn[1] = g;\n agxVecIn[2] = b;\n applyMatrix3(AgXOutsetMatrix, agxVecIn, agxVecOut);\n r = agxVecOut[0]!;\n g = agxVecOut[1]!;\n b = agxVecOut[2]!;\n\n r = Math.max(0, r) ** 2.2;\n g = Math.max(0, g) ** 2.2;\n b = Math.max(0, b) ** 2.2;\n\n agxVecIn[0] = r;\n agxVecIn[1] = g;\n agxVecIn[2] = b;\n applyMatrix3(LINEAR_REC2020_TO_REC709, agxVecIn, agxVecOut);\n\n output[si] = agxVecOut[0]!;\n output[si + 1] = agxVecOut[1]!;\n output[si + 2] = agxVecOut[2]!;\n }\n}\n\nconst TONE_MAPPING_MAP: Record<ToneMappingType, ToneMappingBatchFn> = {\n aces: acesFilmicBatch,\n reinhard: reinhardBatch,\n neutral: neutralBatch,\n agx: agxBatch,\n};\n\nexport function getToneMapping(type: ToneMappingType): ToneMappingBatchFn {\n return TONE_MAPPING_MAP[type];\n}\n", "import { convertFloat32ToLinearColorSpace } from '../color/convert.js';\nimport { linearTosRGB, sRGBToLinear } from '../color/srgb.js';\nimport { ensureNonNegativeFinite, type HdrifyImage } from '../hdrifyImage.js';\nimport { getToneMapping } from '../tonemapping/mappers.js';\nimport type { ToneMappingBatchFn, ToneMappingType } from '../tonemapping/types.js';\nimport type { EncodingResult, EncodingResultFloat, GainMapEncodingOptions, GainMapMetadata } from './types.js';\n\nconst defaultOffset = [1 / 64, 1 / 64, 1 / 64] as [number, number, number];\nconst defaultGamma = [1, 1, 1] as [number, number, number];\n\n/**\n * Find max RGB value in HDR image (for backward compat / fallback).\n */\nfunction findMaxHdrValue(data: Float32Array): number {\n let max = 0;\n for (let i = 0; i < data.length; i += 4) {\n const r = data[i]!;\n const g = data[i + 1]!;\n const b = data[i + 2]!;\n const m = Math.max(r, g, b);\n if (m > max) max = m;\n }\n return max;\n}\n\n/**\n * Compute max content boost from actual gains (HDR_linear / SDR_linear) so we don't clamp logRecovery.\n * Uses batch tone mapping with shared linearRgbBuffer.\n */\nfunction findMaxContentBoostFromGains(\n data: Float32Array,\n totalPixels: number,\n toneMapping: ToneMappingBatchFn,\n linearRgbBuffer: Float32Array,\n offsetSdr: [number, number, number],\n offsetHdr: [number, number, number],\n exposure: number,\n): number {\n for (let i = 0; i < totalPixels; i++) {\n const srcIdx = i * 4;\n const dstIdx = i * 3;\n linearRgbBuffer[dstIdx] = data[srcIdx]! * exposure;\n linearRgbBuffer[dstIdx + 1] = data[srcIdx + 1]! * exposure;\n linearRgbBuffer[dstIdx + 2] = data[srcIdx + 2]! * exposure;\n }\n toneMapping(linearRgbBuffer, linearRgbBuffer, totalPixels);\n\n let maxGain = 1;\n for (let i = 0; i < totalPixels; i++) {\n const idx = i * 3;\n const sr = linearRgbBuffer[idx]!;\n const sg = linearRgbBuffer[idx + 1]!;\n const sb = linearRgbBuffer[idx + 2]!;\n const r = data[i * 4]! * exposure;\n const g = data[i * 4 + 1]! * exposure;\n const b = data[i * 4 + 2]! * exposure;\n const sdrLinR = sr + offsetSdr[0];\n const sdrLinG = sg + offsetSdr[1];\n const sdrLinB = sb + offsetSdr[2];\n const hdrR = r + offsetHdr[0];\n const hdrG = g + offsetHdr[1];\n const hdrB = b + offsetHdr[2];\n const gainR = sdrLinR > 0 ? hdrR / sdrLinR : 1;\n const gainG = sdrLinG > 0 ? hdrG / sdrLinG : 1;\n const gainB = sdrLinB > 0 ? hdrB / sdrLinB : 1;\n const m = Math.max(gainR, gainG, gainB);\n if (m > maxGain) maxGain = m;\n }\n return maxGain;\n}\n\n/**\n * Encode HDR image to SDR + gain map (pure TypeScript, no WebGL).\n */\nexport function encodeGainMap(image: HdrifyImage, options: GainMapEncodingOptions = {}): EncodingResult {\n ensureNonNegativeFinite(image.data);\n const data = convertFloat32ToLinearColorSpace(\n image.data,\n image.width,\n image.height,\n image.linearColorSpace,\n 'linear-rec709',\n );\n\n const { width, height } = image;\n const totalPixels = width * height;\n\n const offsetSdr = options.offsetSdr ?? defaultOffset;\n const offsetHdr = options.offsetHdr ?? defaultOffset;\n const gamma = options.gamma ?? defaultGamma;\n const exposure = options.exposure ?? 1;\n const toneMappingType: ToneMappingType = options.toneMapping ?? 'aces';\n const toneMapping = getToneMapping(toneMappingType);\n\n const linearRgbBuffer = new Float32Array(totalPixels * 3);\n let maxContentBoost = options.maxContentBoost;\n let minContentBoost = options.minContentBoost;\n if (maxContentBoost === undefined || maxContentBoost <= 0) {\n const fromGains = findMaxContentBoostFromGains(\n data,\n totalPixels,\n toneMapping,\n linearRgbBuffer,\n offsetSdr,\n offsetHdr,\n exposure,\n );\n maxContentBoost = Math.max(fromGains, findMaxHdrValue(data), 1.0001);\n }\n maxContentBoost = Math.max(maxContentBoost, 1.0001);\n minContentBoost ??= 1;\n const minLog2 = Math.log2(minContentBoost);\n let maxLog2 = Math.log2(maxContentBoost);\n const logRange = maxLog2 - minLog2;\n if (logRange <= 0) {\n maxLog2 = minLog2 + 1e-6;\n }\n const invLogRange = 1 / (maxLog2 - minLog2);\n\n const sdr = new Uint8ClampedArray(totalPixels * 4);\n const gainMap = new Uint8ClampedArray(totalPixels * 4);\n\n for (let i = 0; i < totalPixels; i++) {\n const srcIdx = i * 4;\n const dstIdx = i * 3;\n linearRgbBuffer[dstIdx] = data[srcIdx]! * exposure;\n linearRgbBuffer[dstIdx + 1] = data[srcIdx + 1]! * exposure;\n linearRgbBuffer[dstIdx + 2] = data[srcIdx + 2]! * exposure;\n }\n toneMapping(linearRgbBuffer, linearRgbBuffer, totalPixels);\n\n for (let i = 0; i < totalPixels; i++) {\n const idx = i * 4;\n const si = i * 3;\n const sr = linearRgbBuffer[si]!;\n const sg = linearRgbBuffer[si + 1]!;\n const sb = linearRgbBuffer[si + 2]!;\n const r = data[idx]! * exposure;\n const g = data[idx + 1]! * exposure;\n const b = data[idx + 2]! * exposure;\n\n // Adobe/Ultra HDR spec: SDR base must be sRGB for display compatibility (standard JPEG).\n sdr[idx] = Math.round(linearTosRGB(sr) * 255);\n sdr[idx + 1] = Math.round(linearTosRGB(sg) * 255);\n sdr[idx + 2] = Math.round(linearTosRGB(sb) * 255);\n sdr[idx + 3] = 255;\n\n // Use the quantized SDR values (what the decoder will see) when computing the gain map,\n // so the stored ratio best recovers HDR from the actual 8-bit SDR.\n const sdrLinQuantizedR = sRGBToLinear(sdr[idx] / 255) + offsetSdr[0];\n const sdrLinQuantizedG = sRGBToLinear(sdr[idx + 1]! / 255) + offsetSdr[1];\n const sdrLinQuantizedB = sRGBToLinear(sdr[idx + 2]! / 255) + offsetSdr[2];\n const hdrR = r + offsetHdr[0];\n const hdrG = g + offsetHdr[1];\n const hdrB = b + offsetHdr[2];\n\n const pixelGainR = sdrLinQuantizedR > 0 ? hdrR / sdrLinQuantizedR : 1;\n const pixelGainG = sdrLinQuantizedG > 0 ? hdrG / sdrLinQuantizedG : 1;\n const pixelGainB = sdrLinQuantizedB > 0 ? hdrB / sdrLinQuantizedB : 1;\n\n const logRecoveryR = (Math.log2(pixelGainR) - minLog2) * invLogRange;\n const logRecoveryG = (Math.log2(pixelGainG) - minLog2) * invLogRange;\n const logRecoveryB = (Math.log2(pixelGainB) - minLog2) * invLogRange;\n\n const clampedR = Math.max(0, Math.min(1, logRecoveryR));\n const clampedG = Math.max(0, Math.min(1, logRecoveryG));\n const clampedB = Math.max(0, Math.min(1, logRecoveryB));\n\n gainMap[idx] = Math.round(255 * clampedR ** gamma[0]);\n gainMap[idx + 1] = Math.round(255 * clampedG ** gamma[1]);\n gainMap[idx + 2] = Math.round(255 * clampedB ** gamma[2]);\n gainMap[idx + 3] = 255;\n }\n\n const gainMapMinLog = [minLog2, minLog2, minLog2] as [number, number, number];\n const gainMapMaxLog = [maxLog2, maxLog2, maxLog2] as [number, number, number];\n const hdrCapacityMin = Math.min(\n Math.max(0, gainMapMinLog[0]),\n Math.max(0, gainMapMinLog[1]),\n Math.max(0, gainMapMinLog[2]),\n );\n const hdrCapacityMax = Math.max(\n Math.max(0, gainMapMaxLog[0]),\n Math.max(0, gainMapMaxLog[1]),\n Math.max(0, gainMapMaxLog[2]),\n );\n\n const metadata: GainMapMetadata = {\n gamma,\n offsetSdr,\n offsetHdr,\n gainMapMin: gainMapMinLog,\n gainMapMax: gainMapMaxLog,\n hdrCapacityMin,\n hdrCapacityMax,\n };\n\n return {\n sdr,\n gainMap,\n width,\n height,\n metadata,\n };\n}\n\n/**\n * Encode to float buffers only (no quantization). For testing and incremental pipeline.\n * Decode is tone-map-agnostic: the gain map stores the ratio HDR_linear/SDR_linear.\n */\nexport function encodeGainMapToFloat(image: HdrifyImage, options: GainMapEncodingOptions = {}): EncodingResultFloat {\n ensureNonNegativeFinite(image.data);\n const data = convertFloat32ToLinearColorSpace(\n image.data,\n image.width,\n image.height,\n image.linearColorSpace,\n 'linear-rec709',\n );\n\n const { width, height } = image;\n const totalPixels = width * height;\n\n const offsetSdr = options.offsetSdr ?? defaultOffset;\n const offsetHdr = options.offsetHdr ?? defaultOffset;\n const gamma = options.gamma ?? defaultGamma;\n const exposure = options.exposure ?? 1;\n const toneMappingTypeFloat: ToneMappingType = options.toneMapping ?? 'aces';\n const toneMappingFloat = getToneMapping(toneMappingTypeFloat);\n\n const linearRgbBuffer = new Float32Array(totalPixels * 3);\n let maxContentBoostFloat = options.maxContentBoost;\n if (maxContentBoostFloat === undefined || maxContentBoostFloat <= 0) {\n const fromGains = findMaxContentBoostFromGains(\n data,\n totalPixels,\n toneMappingFloat,\n linearRgbBuffer,\n offsetSdr,\n offsetHdr,\n exposure,\n );\n maxContentBoostFloat = Math.max(fromGains, findMaxHdrValue(data), 1.0001);\n }\n maxContentBoostFloat = Math.max(maxContentBoostFloat, 1.0001);\n const minContentBoost = options.minContentBoost ?? 1;\n const minLog2Float = Math.log2(minContentBoost);\n let maxLog2Float = Math.log2(maxContentBoostFloat);\n const logRangeFloat = maxLog2Float - minLog2Float;\n if (logRangeFloat <= 0) {\n maxLog2Float = minLog2Float + 1e-6;\n }\n const invLogRangeFloat = 1 / (maxLog2Float - minLog2Float);\n\n const sdrFloat = new Float32Array(totalPixels * 4);\n const gainMapFloat = new Float32Array(totalPixels * 4);\n\n for (let i = 0; i < totalPixels; i++) {\n const srcIdx = i * 4;\n const dstIdx = i * 3;\n linearRgbBuffer[dstIdx] = data[srcIdx]! * exposure;\n linearRgbBuffer[dstIdx + 1] = data[srcIdx + 1]! * exposure;\n linearRgbBuffer[dstIdx + 2] = data[srcIdx + 2]! * exposure;\n }\n toneMappingFloat(linearRgbBuffer, linearRgbBuffer, totalPixels);\n for (let i = 0; i < totalPixels; i++) {\n const idx = i * 4;\n const si = i * 3;\n const sr = linearRgbBuffer[si]!;\n const sg = linearRgbBuffer[si + 1]!;\n const sb = linearRgbBuffer[si + 2]!;\n const r = data[idx]! * exposure;\n const g = data[idx + 1]! * exposure;\n const b = data[idx + 2]! * exposure;\n\n sdrFloat[idx] = linearTosRGB(sr);\n sdrFloat[idx + 1] = linearTosRGB(sg);\n sdrFloat[idx + 2] = linearTosRGB(sb);\n sdrFloat[idx + 3] = 1;\n\n const sdrLinR = sr + offsetSdr[0];\n const sdrLinG = sg + offsetSdr[1];\n const sdrLinB = sb + offsetSdr[2];\n const hdrR = r + offsetHdr[0];\n const hdrG = g + offsetHdr[1];\n const hdrB = b + offsetHdr[2];\n\n const pixelGainR = hdrR / sdrLinR;\n const pixelGainG = hdrG / sdrLinG;\n const pixelGainB = hdrB / sdrLinB;\n\n const logRecoveryR = (Math.log2(pixelGainR) - minLog2Float) * invLogRangeFloat;\n const logRecoveryG = (Math.log2(pixelGainG) - minLog2Float) * invLogRangeFloat;\n const logRecoveryB = (Math.log2(pixelGainB) - minLog2Float) * invLogRangeFloat;\n\n const clampedR = Math.max(0, Math.min(1, logRecoveryR));\n const clampedG = Math.max(0, Math.min(1, logRecoveryG));\n const clampedB = Math.max(0, Math.min(1, logRecoveryB));\n\n gainMapFloat[idx] = clampedR ** gamma[0];\n gainMapFloat[idx + 1] = clampedG ** gamma[1];\n gainMapFloat[idx + 2] = clampedB ** gamma[2];\n gainMapFloat[idx + 3] = 1;\n }\n\n const gainMapMinLogFloat = [minLog2Float, minLog2Float, minLog2Float] as [number, number, number];\n const gainMapMaxLogFloat = [maxLog2Float, maxLog2Float, maxLog2Float] as [number, number, number];\n const hdrCapacityMinFloat = Math.min(\n Math.max(0, gainMapMinLogFloat[0]),\n Math.max(0, gainMapMinLogFloat[1]),\n Math.max(0, gainMapMinLogFloat[2]),\n );\n const hdrCapacityMaxFloat = Math.max(\n Math.max(0, gainMapMaxLogFloat[0]),\n Math.max(0, gainMapMaxLogFloat[1]),\n Math.max(0, gainMapMaxLogFloat[2]),\n );\n\n const metadata: GainMapMetadata = {\n gamma,\n offsetSdr,\n offsetHdr,\n gainMapMin: gainMapMinLogFloat,\n gainMapMax: gainMapMaxLogFloat,\n hdrCapacityMin: hdrCapacityMinFloat,\n hdrCapacityMax: hdrCapacityMaxFloat,\n };\n\n return {\n sdrFloat,\n gainMapFloat,\n width,\n height,\n metadata,\n };\n}\n", "/**\n * Ensure Buffer is available for jpeg-js in browser environments.\n * jpeg-js uses Node's Buffer internally; in browsers it is undefined.\n * No-op in Node.js where Buffer is already a global.\n */\nimport { Buffer as BufferPolyfill } from 'buffer';\n\nconst g =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof window !== 'undefined'\n ? window\n : typeof self !== 'undefined'\n ? self\n : {};\nif (typeof (g as typeof globalThis & { Buffer?: typeof BufferPolyfill }).Buffer === 'undefined') {\n (g as typeof globalThis & { Buffer: typeof BufferPolyfill }).Buffer = BufferPolyfill;\n}\n", "import './ensureBuffer.js';\nimport { encode as jpegEncode } from 'jpeg-js';\nimport type { CompressedImage } from './types.js';\n\n/**\n * Encode RGBA image data to JPEG using jpeg-js.\n */\nexport function encodeToJpeg(\n data: Uint8ClampedArray,\n width: number,\n height: number,\n quality: number = 90,\n): CompressedImage {\n const rawImageData = {\n data: data instanceof Uint8ClampedArray ? new Uint8Array(data) : data,\n width,\n height,\n };\n const encoded = jpegEncode(rawImageData, quality);\n return {\n data: encoded.data,\n mimeType: 'image/jpeg',\n width,\n height,\n };\n}\n", "/**\n * sRGB ICC profile matching the reference memorial.jpg (Google Inc. 2016).\n * Used as default for Ultra HDR gain map JPEG output so Apple Preview recognizes the file.\n * Format: JPEG APP2 payload (ICC_PROFILE\\0 + chunk 1/1 + profile bytes).\n */\n\nconst SRGB_PROFILE_B64 =\n 'AAAByAAAAAAEMAAAbW50clJHQiBYWVogB+AAAQABAAAAAAAAYWNzcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAPbWAAEAAAAA0y0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJZGVzYwAAAPAAAAAkclhZWgAAARQAAAAUZ1hZWgAAASgAAAAUYlhZWgAAATwAAAAUd3RwdAAAAVAAAAAUclRSQwAAAWQAAAAoZ1RSQwAAAWQAAAAoYlRSQwAAAWQAAAAoY3BydAAAAYwAAAA8bWx1YwAAAAAAAAABAAAADGVuVVMAAAAIAAAAHABzAFIARwBCWFlaIAAAAAAAAG+iAAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPWFlaIAAAAAAAAPbWAAEAAAAA0y1wYXJhAAAAAAAEAAAAAmZmAADypwAADVkAABPQAAAKWwAAAAAAAAAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAgAAAAHABHAG8AbwBnAGwAZQAgAEkAbgBjAC4AIAAyADAAMQA2';\n\nconst ICC_PREFIX = new TextEncoder().encode('ICC_PROFILE\\0');\n\nfunction base64ToUint8Array(b64: string): Uint8Array {\n const binary = atob(b64);\n const out = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) out[i] = binary.charCodeAt(i);\n return out;\n}\n\nlet cached: Uint8Array | null = null;\n\n/**\n * Build JPEG APP2 payload with sRGB ICC profile (reference-compatible).\n */\nexport function buildSrgbIccPayload(): Uint8Array {\n if (cached) return cached;\n const profile = base64ToUint8Array(SRGB_PROFILE_B64);\n const payload = new Uint8Array(ICC_PREFIX.length + 2 + profile.length);\n payload.set(ICC_PREFIX, 0);\n payload[12] = 1; // chunk index\n payload[13] = 1; // total chunks\n payload.set(profile, 14);\n cached = payload;\n return payload;\n}\n", "/**\n * Default ICC profile for Ultra HDR JPEG output.\n * sRGB profile matching reference memorial.jpg (Google Inc. 2016) for Apple Preview compatibility.\n * Format: JPEG APP2 payload (ICC_PROFILE\\0 + chunk index + total chunks + profile bytes).\n */\n\nimport { buildSrgbIccPayload } from './srgbIccProfile.js';\n\nlet cached: Uint8Array | null = null;\n\n/** Default ICC profile (APP2 payload) to embed in Ultra HDR JPEGs for Apple Preview recognition. */\nexport function getDefaultIccProfile(): Uint8Array {\n if (!cached) cached = buildSrgbIccPayload();\n return cached;\n}\n\n/** Same as getDefaultIccProfile(); kept for backward compatibility. */\nexport const DEFAULT_ICC_PROFILE: Uint8Array = getDefaultIccProfile();\n", "/**\n * Extract ICC profile and ADGC tag info from a JPEG (for tests and inspection).\n * JPEG APP2 with \"ICC_PROFILE\\0\" carries the profile; ICC tag table at offset 128.\n */\n\nconst APP2_MARKER = 0xe2;\nconst ICC_PREFIX = new TextEncoder().encode('ICC_PROFILE\\0');\nconst ICC_PREFIX_LEN = 12;\nconst ICC_APP2_HEADER_LEN = ICC_PREFIX_LEN + 2; // + chunk index, total chunks\nconst ICC_HEADER_SIZE = 128;\nconst TAG_ENTRY_SIZE = 12;\nconst TAG_ADGC = 0x41444743; // 'ADGC'\nconst ADGC_GUID_OFFSET_IN_TAG = 12; // after type (4) + reserved (4) + function type (4)\nconst ADGC_GUID_SIZE = 16;\n\nfunction hasIccPrefix(payload: Uint8Array): boolean {\n for (let k = 0; k < ICC_PREFIX_LEN; k++) {\n if (payload[k] !== ICC_PREFIX[k]) return false;\n }\n return true;\n}\n\n/**\n * Finds the first APP2 segment with ICC_PROFILE and returns the raw ICC profile bytes (no APP2 header).\n */\nexport function extractIccProfileFromJpeg(jpeg: Uint8Array): Uint8Array | null {\n let i = 0;\n while (i < jpeg.length - 4) {\n if (jpeg[i] !== 0xff || jpeg[i + 1] !== APP2_MARKER) {\n i++;\n continue;\n }\n const hi = jpeg[i + 2];\n const lo = jpeg[i + 3];\n if (hi === undefined || lo === undefined) {\n i++;\n continue;\n }\n const segLen = (hi << 8) | lo;\n const payloadStart = i + 4;\n const payloadEnd = payloadStart + (segLen - 2);\n if (payloadEnd > jpeg.length) break;\n const payload = jpeg.subarray(payloadStart, payloadEnd);\n if (payload.length >= ICC_APP2_HEADER_LEN && hasIccPrefix(payload)) {\n return payload.subarray(ICC_APP2_HEADER_LEN);\n }\n i = payloadEnd;\n }\n return null;\n}\n\n/**\n * Returns the 16-byte ADGC GUID from an ICC profile, or null if the profile has no ADGC tag.\n */\nexport function getAdgcGuidFromIccProfile(profile: Uint8Array): Uint8Array | null {\n const tableStart = ICC_HEADER_SIZE + 4;\n if (profile.length < tableStart + TAG_ENTRY_SIZE) return null;\n const dv = new DataView(profile.buffer, profile.byteOffset, profile.byteLength);\n const tagCount = dv.getUint32(ICC_HEADER_SIZE, false);\n const tableEnd = tableStart + tagCount * TAG_ENTRY_SIZE;\n if (profile.length < tableEnd) return null;\n for (let i = 0; i < tagCount; i++) {\n const entryOff = tableStart + i * TAG_ENTRY_SIZE;\n const sig = dv.getUint32(entryOff, false);\n if (sig !== TAG_ADGC) continue;\n const offset = dv.getUint32(entryOff + 4, false);\n const size = dv.getUint32(entryOff + 8, false);\n if (\n offset + ADGC_GUID_OFFSET_IN_TAG + ADGC_GUID_SIZE > profile.length ||\n size < ADGC_GUID_OFFSET_IN_TAG + ADGC_GUID_SIZE\n )\n return null;\n return profile\n .subarray(offset + ADGC_GUID_OFFSET_IN_TAG, offset + ADGC_GUID_OFFSET_IN_TAG + ADGC_GUID_SIZE)\n .slice();\n }\n return null;\n}\n\n/**\n * Returns true if the ICC profile contains an ADGC tag.\n */\nexport function iccProfileHasAdgcTag(profile: Uint8Array): boolean {\n return getAdgcGuidFromIccProfile(profile) !== null;\n}\n", "/**\n * Read JPEG with embedded gain map (JPEG-R / Ultra HDR) into HdrifyImage.\n * Throws if the buffer does not contain valid gain map metadata or both SDR and gain map images.\n */\n\nimport './ensureBuffer.js';\nimport { decode as jpegDecode } from 'jpeg-js';\nimport { ensureNonNegativeFinite, type HdrifyImage } from '../hdrifyImage.js';\nimport { decodeGainMapCpu } from './readJpegGainMap/decodeGainMapCpu.js';\nimport { extractGainMapXmp } from './readJpegGainMap/extractXmp.js';\nimport { extractImagesBySecondSoi, extractImagesFromMpf } from './readJpegGainMap/mpfExtractor.js';\n\nexport type GainMapFormat = 'ultrahdr' | 'adobe-gainmap';\n\n/**\n * Read a JPEG buffer that contains embedded gain map (XMP + MPF) and return\n * decoded HDR as HdrifyImage. Supports UltraHDR/JPEG-R layout.\n *\n * @param buffer - Full JPEG-R file bytes\n * @returns HdrifyImage with linear HDR RGBA; metadata.format is 'ultrahdr' or 'adobe-gainmap'\n * @throws If no gain map XMP is found, or if primary/gain map images cannot be extracted\n */\nexport function readJpegGainMap(buffer: Uint8Array): HdrifyImage {\n const metadata = extractGainMapXmp(buffer);\n let primaryImage: Uint8Array;\n let gainmapImage: Uint8Array;\n let format: 'ultrahdr' | 'adobe-gainmap';\n try {\n const extracted = extractImagesFromMpf(buffer);\n primaryImage = extracted.primaryImage;\n gainmapImage = extracted.gainmapImage;\n format = extracted.format;\n } catch {\n const fallback = extractImagesBySecondSoi(buffer);\n primaryImage = fallback.primaryImage;\n gainmapImage = fallback.gainmapImage;\n format = fallback.format;\n }\n\n const sdrDecoded = jpegDecode(primaryImage, { useTArray: true, formatAsRGBA: true });\n const gainDecoded = jpegDecode(gainmapImage, { useTArray: true, formatAsRGBA: true });\n\n const width = sdrDecoded.width;\n const height = sdrDecoded.height;\n const sdrData = new Uint8ClampedArray(sdrDecoded.data);\n let gainData = new Uint8ClampedArray(gainDecoded.data);\n\n if (sdrDecoded.width !== gainDecoded.width || sdrDecoded.height !== gainDecoded.height) {\n gainData = new Uint8ClampedArray(\n scaleToSize(gainDecoded.data, gainDecoded.width, gainDecoded.height, width, height),\n );\n }\n\n const result = decodeGainMapCpu(sdrData, gainData, width, height, metadata);\n\n result.metadata = {\n ...metadata,\n format,\n };\n\n ensureNonNegativeFinite(result.data);\n return result;\n}\n\nfunction scaleToSize(src: Uint8Array, sw: number, sh: number, dw: number, dh: number): Uint8ClampedArray {\n const out = new Uint8ClampedArray(dw * dh * 4);\n for (let y = 0; y < dh; y++) {\n const sy = Math.min(Math.floor((y * sh) / dh), sh - 1);\n for (let x = 0; x < dw; x++) {\n const sx = Math.min(Math.floor((x * sw) / dw), sw - 1);\n const srcIdx = (sy * sw + sx) * 4;\n const dstIdx = (y * dw + x) * 4;\n out[dstIdx] = src[srcIdx]!;\n out[dstIdx + 1] = src[srcIdx + 1]!;\n out[dstIdx + 2] = src[srcIdx + 2]!;\n out[dstIdx + 3] = src[srcIdx + 3]!;\n }\n }\n return out;\n}\n", "/**\n * Extract gain map XMP metadata from a JPEG buffer.\n * Supports hdrgm:* attributes (UltraHDR / Adobe gain map).\n * Throws if no gain map metadata is found.\n */\n\nimport type { GainMapMetadata } from '../types.js';\n\nconst GAIN_MAP_METADATA_ERROR = 'Not a valid JPEG with gain map: missing gain map metadata';\n\nconst HDR_CAPACITY_MIN_REGEX = /hdrgm:HDRCapacityMin=\"([^\"]*)\"/i;\nconst HDR_CAPACITY_MAX_REGEX = /hdrgm:HDRCapacityMax=\"([^\"]*)\"/i;\n\nfunction getXmlValue(xml: string, tag: string, defaultValue?: string): string | [string, string, string] {\n const attributeMatch = new RegExp(`${tag.replace(/:/g, '\\\\:')}=\"([^\"]*)\"`, 'i').exec(xml);\n if (attributeMatch) return attributeMatch[1] ?? '';\n\n const tagMatch = new RegExp(`<${tag.replace(/:/g, '\\\\:')}[^>]*>([\\\\s\\\\S]*?)</[^>]+>`, 'i').exec(xml);\n if (tagMatch) {\n const inner = tagMatch[1];\n const liMatches = inner?.match(/<rdf:li[^>]*>([^<]*)<\\/rdf:li>/gi);\n if (liMatches && liMatches.length === 3) {\n return liMatches.map((v) => v.replace(/<\\/?rdf:li[^>]*>/gi, '').trim()) as [string, string, string];\n }\n return inner?.trim() ?? '';\n }\n\n if (defaultValue !== undefined) return defaultValue;\n throw new Error(`Can't find ${tag} in gainmap metadata`);\n}\n\nfunction parseTriple(val: string | [string, string, string]): [number, number, number] {\n if (Array.isArray(val)) {\n return val.map((v) => parseFloat(v)) as [number, number, number];\n }\n const n = parseFloat(val);\n return [n, n, n];\n}\n\n/**\n * Scan buffer for XMP blocks and return gain map metadata from the first block\n * that contains hdrgm:* (gain map descriptor). Skips primary container descriptor\n * (Container:Directory only, no hdrgm:Version).\n * @throws if no gain map XMP block is found\n */\nexport function extractGainMapXmp(buffer: Uint8Array): GainMapMetadata {\n const str =\n typeof TextDecoder !== 'undefined'\n ? new TextDecoder().decode(buffer)\n : String.fromCharCode.apply(null, Array.from(buffer));\n\n let start = str.indexOf('<x:xmpmeta');\n\n while (start !== -1) {\n const end = str.indexOf('x:xmpmeta>', start);\n if (end === -1) break;\n const xmpBlock = str.slice(start, end + 10);\n\n try {\n const version = getXmlValue(xmpBlock, 'hdrgm:Version', undefined);\n if (version === undefined || version === '') {\n start = str.indexOf('<x:xmpmeta', end);\n continue;\n }\n\n const gainMapMin = getXmlValue(xmpBlock, 'hdrgm:GainMapMin', '0');\n const gainMapMax = getXmlValue(xmpBlock, 'hdrgm:GainMapMax', '1');\n const gamma = getXmlValue(xmpBlock, 'hdrgm:Gamma', '1');\n const offsetSDR = getXmlValue(xmpBlock, 'hdrgm:OffsetSDR', '0.015625');\n const offsetHDR = getXmlValue(xmpBlock, 'hdrgm:OffsetHDR', '0.015625');\n\n const hdrCapacityMinMatch = HDR_CAPACITY_MIN_REGEX.exec(xmpBlock);\n const hdrCapacityMin = hdrCapacityMinMatch ? hdrCapacityMinMatch[1] : '0';\n\n const hdrCapacityMaxMatch = HDR_CAPACITY_MAX_REGEX.exec(xmpBlock);\n if (!hdrCapacityMaxMatch) {\n start = str.indexOf('<x:xmpmeta', end);\n continue;\n }\n const hdrCapacityMax = hdrCapacityMaxMatch[1];\n\n return {\n gainMapMin: parseTriple(gainMapMin),\n gainMapMax: parseTriple(gainMapMax),\n gamma: parseTriple(gamma),\n offsetSdr: parseTriple(offsetSDR),\n offsetHdr: parseTriple(offsetHDR),\n hdrCapacityMin: parseFloat(hdrCapacityMin ?? '0'),\n hdrCapacityMax: parseFloat(hdrCapacityMax ?? '1'),\n };\n } catch {\n start = str.indexOf('<x:xmpmeta', end);\n }\n }\n\n throw new Error(GAIN_MAP_METADATA_ERROR);\n}\n", "/**\n * Extract SDR and gain map image blobs from a JPEG-R buffer using MPF (Multi-Picture Format).\n * Supports CIPA DC-007 layout (our writer) and fixed 60-byte layout (UltraHDRLoader).\n * Throws if primary or gain map image cannot be extracted.\n */\n\nconst MARKER_PREFIX = 0xff;\nconst APP2 = 0xe2;\nconst MPF_SIGNATURE = 0x4d504600; // \"MPF\\0\"\nconst MP_ENTRY_TAG = 0xb002;\nconst MP_ENTRY_SIZE = 16;\n\nconst GAIN_MAP_IMAGE_ERROR = 'Not a valid JPEG with gain map: missing gain map image';\n\nexport interface MpfExtractResult {\n primaryImage: Uint8Array;\n gainmapImage: Uint8Array;\n /** Format hint: 'ultrahdr' when structure matches UltraHDR/JPEG-R */\n format: 'ultrahdr' | 'adobe-gainmap';\n}\n\n/**\n * Segment-walk: find APP2 with MPF signature, then parse MP entries to get primary\n * and gain map byte ranges. Returns JPEG blobs each starting with SOI (0xFF 0xD8).\n */\nexport function extractImagesFromMpf(buffer: Uint8Array): MpfExtractResult {\n const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n\n if (view.getUint16(0, false) !== 0xffd8) {\n throw new Error(GAIN_MAP_IMAGE_ERROR);\n }\n\n let offset = 2;\n let primaryImage: Uint8Array | null = null;\n let gainmapImage: Uint8Array | null = null;\n const format: 'ultrahdr' | 'adobe-gainmap' = 'ultrahdr';\n\n while (offset < buffer.length - 1) {\n if (view.getUint8(offset) !== MARKER_PREFIX) {\n offset += 1;\n continue;\n }\n\n const marker = view.getUint8(offset + 1);\n\n if (marker === APP2) {\n const segmentLength = view.getUint16(offset + 2, false);\n const segmentEnd = offset + 2 + segmentLength;\n const payloadStart = offset + 4;\n\n if (segmentLength >= 4 && view.getUint32(payloadStart, false) === MPF_SIGNATURE) {\n const payload = buffer.subarray(payloadStart, segmentEnd);\n const payloadView = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);\n\n const le = payloadView.getUint32(6, false) === 0x49492a00;\n const bigEndian = !le;\n\n let primarySize: number;\n let primaryOffset: number;\n let gainmapSize: number;\n let gainmapOffsetInFile: number;\n\n const mpEntryOffset = findMpEntryOffset(payloadView, bigEndian);\n if (mpEntryOffset !== null && payload.length >= mpEntryOffset + 2 * MP_ENTRY_SIZE) {\n primarySize = payloadView.getUint32(mpEntryOffset + 4, bigEndian);\n primaryOffset = payloadView.getUint32(mpEntryOffset + 8, bigEndian);\n gainmapSize = payloadView.getUint32(mpEntryOffset + 20, bigEndian);\n const gainmapStored = payloadView.getUint32(mpEntryOffset + 24, bigEndian);\n const relativeOffset = gainmapStored + offset + 6;\n gainmapOffsetInFile =\n relativeOffset >= 0 && relativeOffset + gainmapSize <= buffer.length ? relativeOffset : gainmapStored;\n } else {\n const fixed60 = 60;\n if (payload.length < fixed60 + 2 * MP_ENTRY_SIZE) {\n offset = segmentEnd;\n continue;\n }\n primarySize = payloadView.getUint32(fixed60, bigEndian);\n primaryOffset = payloadView.getUint32(fixed60 + 4, bigEndian);\n gainmapSize = payloadView.getUint32(fixed60 + 16, bigEndian);\n const gainmapStored = payloadView.getUint32(fixed60 + 20, bigEndian);\n const relativeOffset = gainmapStored + offset + 6;\n gainmapOffsetInFile =\n relativeOffset >= 0 && relativeOffset + gainmapSize <= buffer.length ? relativeOffset : gainmapStored;\n }\n\n if (primaryOffset >= buffer.length || primaryOffset + primarySize > buffer.length) {\n offset = segmentEnd;\n continue;\n }\n if (gainmapOffsetInFile >= buffer.length || gainmapOffsetInFile + gainmapSize > buffer.length) {\n offset = segmentEnd;\n continue;\n }\n\n primaryImage = buffer.subarray(primaryOffset, primaryOffset + primarySize);\n gainmapImage = buffer.subarray(gainmapOffsetInFile, gainmapOffsetInFile + gainmapSize);\n\n if (primaryImage[0] !== MARKER_PREFIX || primaryImage[1] !== 0xd8) {\n const withSoi = new Uint8Array(2 + primaryImage.length);\n withSoi[0] = MARKER_PREFIX;\n withSoi[1] = 0xd8;\n withSoi.set(primaryImage, 2);\n primaryImage = withSoi;\n }\n if (gainmapImage[0] !== MARKER_PREFIX || gainmapImage[1] !== 0xd8) {\n const withSoi = new Uint8Array(2 + gainmapImage.length);\n withSoi[0] = MARKER_PREFIX;\n withSoi[1] = 0xd8;\n withSoi.set(gainmapImage, 2);\n gainmapImage = withSoi;\n }\n\n break;\n }\n\n offset = segmentEnd;\n continue;\n }\n\n if (marker >= 0xc0 && marker <= 0xfe && marker !== 0xd9 && (marker < 0xd0 || marker > 0xd7)) {\n const segmentLength = view.getUint16(offset + 2, false);\n offset += 2 + segmentLength;\n continue;\n }\n\n offset += 2;\n }\n\n if (!primaryImage || !gainmapImage) {\n throw new Error(GAIN_MAP_IMAGE_ERROR);\n }\n\n return { primaryImage, gainmapImage, format };\n}\n\nconst SOI_MARKER = 0xd8;\n\nconst EOI_MARKER = 0xd9;\n\n/**\n * Fallback when MPF is not present: find the second SOI (0xFF 0xD8).\n * Prefer one that immediately follows EOI (0xFF 0xD9); otherwise use first SOI after byte 2.\n * Primary = 0 to second SOI; gain map = second SOI to end.\n */\nexport function extractImagesBySecondSoi(buffer: Uint8Array): MpfExtractResult {\n if (buffer.length < 4 || buffer[0] !== MARKER_PREFIX || buffer[1] !== SOI_MARKER) {\n throw new Error(GAIN_MAP_IMAGE_ERROR);\n }\n let secondSoiAfterEoi = -1;\n let firstSecondSoi = -1;\n for (let i = 2; i < buffer.length - 1; i++) {\n if (buffer[i] === MARKER_PREFIX && buffer[i + 1] === SOI_MARKER) {\n if (firstSecondSoi < 0) firstSecondSoi = i;\n if (i >= 2 && buffer[i - 2] === MARKER_PREFIX && buffer[i - 1] === EOI_MARKER) {\n secondSoiAfterEoi = i;\n break;\n }\n }\n }\n const secondSoi = secondSoiAfterEoi >= 0 ? secondSoiAfterEoi : firstSecondSoi;\n if (secondSoi < 0) {\n throw new Error(GAIN_MAP_IMAGE_ERROR);\n }\n const primaryImage = buffer.subarray(0, secondSoi);\n const gainmapImage = buffer.subarray(secondSoi);\n return {\n primaryImage,\n gainmapImage,\n format: 'ultrahdr',\n };\n}\n\nfunction findMpEntryOffset(payloadView: DataView, bigEndian: boolean): number | null {\n const ifdOffset = payloadView.getUint32(8, bigEndian);\n if (payloadView.byteLength < ifdOffset + 2) return null;\n const tagCount = payloadView.getUint16(ifdOffset, bigEndian);\n for (let i = 0; i < tagCount; i++) {\n const tagStart = ifdOffset + 2 + i * 12;\n if (payloadView.byteLength < tagStart + 12) return null;\n const tagId = payloadView.getUint16(tagStart, bigEndian);\n if (tagId === MP_ENTRY_TAG) {\n return payloadView.getUint32(tagStart + 8, bigEndian);\n }\n }\n return null;\n}\n", "/**\n * Multi-Picture Format (MPF) generator\n * Based on CIPA DC-007 specification and libultrahdr multipictureformat.cpp\n *\n * MPF is used to embed multiple images in a single JPEG file\n */\n\n/**\n * MPF constants from the specification\n */\nconst MPF_CONSTANTS = {\n /** MPF signature \"MPF\\0\" */\n SIGNATURE: new Uint8Array([0x4d, 0x50, 0x46, 0x00]),\n\n /** Big endian marker \"MM\" */\n BIG_ENDIAN: new Uint8Array([0x4d, 0x4d]),\n\n /** Little endian marker \"II\" */\n LITTLE_ENDIAN: new Uint8Array([0x49, 0x49]),\n\n /** TIFF magic number */\n TIFF_MAGIC: 0x002a,\n\n /** Number of pictures in MPF */\n NUM_PICTURES: 2,\n\n /** Number of tags to serialize */\n TAG_COUNT: 3,\n\n /** Size of each tag in bytes */\n TAG_SIZE: 12,\n\n /** Size of each MP entry in bytes */\n MP_ENTRY_SIZE: 16,\n} as const;\n\n/**\n * MPF tag identifiers\n */\nconst MPF_TAGS = {\n /** MPF version tag */\n VERSION: 0xb000,\n\n /** Number of images tag */\n NUMBER_OF_IMAGES: 0xb001,\n\n /** MP entry tag */\n MP_ENTRY: 0xb002,\n} as const;\n\n/**\n * MPF tag types\n */\nconst MPF_TAG_TYPES = {\n /** Undefined type */\n UNDEFINED: 7,\n\n /** Unsigned long type */\n ULONG: 4,\n} as const;\n\n/**\n * MP entry attributes\n */\nconst MP_ENTRY_ATTRIBUTES = {\n /** JPEG format */\n FORMAT_JPEG: 0x00000000,\n\n /** Primary image type (Baseline MP Primary Image) */\n TYPE_PRIMARY: 0x00030000,\n} as const;\n\n/**\n * MPF version string\n */\nconst MPF_VERSION = new Uint8Array([0x30, 0x31, 0x30, 0x30]); // \"0100\"\n\n/**\n * Calculate the total size of the MPF structure\n */\nexport function calculateMpfSize(): number {\n return (\n MPF_CONSTANTS.SIGNATURE.length + // Signature \"MPF\\0\"\n 2 + // Endianness marker\n 2 + // TIFF magic number\n 4 + // Index IFD Offset\n 2 + // Tag count\n MPF_CONSTANTS.TAG_COUNT * MPF_CONSTANTS.TAG_SIZE + // Tags\n 4 + // Attribute IFD offset\n MPF_CONSTANTS.NUM_PICTURES * MPF_CONSTANTS.MP_ENTRY_SIZE // MP Entries\n );\n}\n\n/**\n * Generate MPF (Multi-Picture Format) data structure\n */\nexport function generateMpf(\n primaryImageSize: number,\n primaryImageOffset: number,\n secondaryImageSize: number,\n secondaryImageOffset: number,\n): Uint8Array {\n const mpfSize = calculateMpfSize();\n const buffer = new ArrayBuffer(mpfSize);\n const view = new DataView(buffer);\n const uint8View = new Uint8Array(buffer);\n\n let pos = 0;\n // Use Little Endian to match reference file\n const littleEndian = true;\n\n uint8View.set(MPF_CONSTANTS.SIGNATURE, pos);\n pos += MPF_CONSTANTS.SIGNATURE.length;\n\n // Set Little Endian marker 'II'\n uint8View.set(MPF_CONSTANTS.LITTLE_ENDIAN, pos);\n pos += 2;\n\n view.setUint16(pos, MPF_CONSTANTS.TIFF_MAGIC, littleEndian);\n pos += 2;\n\n // TIFF-relative offset to IFD0. In MPF, IFD0 starts immediately after:\n // endian(2) + magic(2) + ifdOffset(4) = 8 bytes.\n const indexIfdOffset = 8;\n view.setUint32(pos, indexIfdOffset, littleEndian);\n pos += 4;\n\n view.setUint16(pos, MPF_CONSTANTS.TAG_COUNT, littleEndian);\n pos += 2;\n\n view.setUint16(pos, MPF_TAGS.VERSION, littleEndian);\n pos += 2;\n view.setUint16(pos, MPF_TAG_TYPES.UNDEFINED, littleEndian);\n pos += 2;\n view.setUint32(pos, MPF_VERSION.length, littleEndian);\n pos += 4;\n uint8View.set(MPF_VERSION, pos);\n pos += 4;\n\n view.setUint16(pos, MPF_TAGS.NUMBER_OF_IMAGES, littleEndian);\n pos += 2;\n view.setUint16(pos, MPF_TAG_TYPES.ULONG, littleEndian);\n pos += 2;\n view.setUint32(pos, 1, littleEndian);\n pos += 4;\n view.setUint32(pos, MPF_CONSTANTS.NUM_PICTURES, littleEndian);\n pos += 4;\n\n view.setUint16(pos, MPF_TAGS.MP_ENTRY, littleEndian);\n pos += 2;\n view.setUint16(pos, MPF_TAG_TYPES.UNDEFINED, littleEndian);\n pos += 2;\n view.setUint32(pos, MPF_CONSTANTS.MP_ENTRY_SIZE * MPF_CONSTANTS.NUM_PICTURES, littleEndian);\n pos += 4;\n\n // TIFF-relative offset to MP entries:\n // IFD0 at 8, tagCount(2), 3 tags * 12, nextIFD(4) => 50.\n const mpEntryOffset = 50;\n view.setUint32(pos, mpEntryOffset, littleEndian);\n pos += 4;\n\n view.setUint32(pos, 0, littleEndian);\n pos += 4;\n\n // Primary image entry\n view.setUint32(pos, MP_ENTRY_ATTRIBUTES.FORMAT_JPEG | MP_ENTRY_ATTRIBUTES.TYPE_PRIMARY, littleEndian);\n pos += 4;\n view.setUint32(pos, primaryImageSize, littleEndian);\n pos += 4;\n view.setUint32(pos, primaryImageOffset, littleEndian);\n pos += 4;\n view.setUint16(pos, 0, littleEndian);\n pos += 2;\n view.setUint16(pos, 0, littleEndian);\n pos += 2;\n\n // Secondary image entry\n view.setUint32(pos, MP_ENTRY_ATTRIBUTES.FORMAT_JPEG, littleEndian);\n pos += 4;\n view.setUint32(pos, secondaryImageSize, littleEndian);\n pos += 4;\n view.setUint32(pos, secondaryImageOffset, littleEndian);\n pos += 4;\n view.setUint16(pos, 0, littleEndian);\n pos += 2;\n view.setUint16(pos, 0, littleEndian);\n\n return uint8View;\n}\n", "/**\n * Validate that EXR image chromaticities match Rec. 709 before tone mapping.\n * Tone mapping assumes Rec. 709 / sRGB primaries.\n * When sourceColorSpace is passed to applyToneMapping, conversion is used instead of validation.\n */\n\nimport { CHROMATICITIES_REC709, type Chromaticities } from '../color/chromaticities.js';\nimport type { HdrifyImage } from '../hdrifyImage.js';\n\nconst TOLERANCE = 0.01;\n\nexport type { Chromaticities };\n\nfunction isRec709(ch: Chromaticities): boolean {\n const r = CHROMATICITIES_REC709;\n return (\n Math.abs(ch.redX - r.redX) <= TOLERANCE &&\n Math.abs(ch.redY - r.redY) <= TOLERANCE &&\n Math.abs(ch.greenX - r.greenX) <= TOLERANCE &&\n Math.abs(ch.greenY - r.greenY) <= TOLERANCE &&\n Math.abs(ch.blueX - r.blueX) <= TOLERANCE &&\n Math.abs(ch.blueY - r.blueY) <= TOLERANCE &&\n Math.abs(ch.whiteX - r.whiteX) <= TOLERANCE &&\n Math.abs(ch.whiteY - r.whiteY) <= TOLERANCE\n );\n}\n\nexport interface ValidateToneMappingColorSpaceOptions {\n /** When true, throw if chromaticities are absent (default: false, allow absent) */\n strict?: boolean;\n}\n\n/**\n * Validate that metadata chromaticities match Rec. 709 before tone mapping.\n * If chromaticities are present and do not match, throws a descriptive error.\n *\n * @param metadata - EXR header metadata with optional chromaticities\n * @throws Error when chromaticities are present and do not match Rec. 709\n */\nexport function validateToneMappingColorSpaceFromMetadata(\n metadata: Record<string, unknown> | undefined,\n options: ValidateToneMappingColorSpaceOptions = {},\n): void {\n if (!metadata) return;\n\n const chromaticities = metadata.chromaticities as Chromaticities | undefined;\n\n if (!chromaticities) {\n if (options.strict) {\n throw new Error(\n 'EXR file has no chromaticities attribute. Tone mapping assumes Rec. 709 / sRGB primaries. Use strict: false to allow images without chromaticities, or ensure the EXR declares chromaticities.',\n );\n }\n return;\n }\n\n const ch = chromaticities;\n if (\n typeof ch.redX !== 'number' ||\n typeof ch.redY !== 'number' ||\n typeof ch.greenX !== 'number' ||\n typeof ch.greenY !== 'number' ||\n typeof ch.blueX !== 'number' ||\n typeof ch.blueY !== 'number' ||\n typeof ch.whiteX !== 'number' ||\n typeof ch.whiteY !== 'number'\n ) {\n return; // Malformed chromaticities, skip validation\n }\n\n if (!isRec709(ch)) {\n throw new Error(\n 'EXR chromaticities (red, green, blue, white) do not match Rec. 709. Tone mapping assumes Rec. 709 / sRGB primaries. ' +\n 'Use an image with Rec. 709 chromaticities or convert color space before tone mapping.',\n );\n }\n}\n\n/**\n * Validate that image chromaticities match Rec. 709 before tone mapping.\n * If chromaticities are present and do not match, throws a descriptive error.\n *\n * @param image - HdrifyImage with optional metadata.chromaticities from EXR\n * @throws Error when chromaticities are present and do not match Rec. 709\n */\nexport function validateToneMappingColorSpace(\n image: HdrifyImage,\n options: ValidateToneMappingColorSpaceOptions = {},\n): void {\n validateToneMappingColorSpaceFromMetadata(image.metadata, options);\n}\n", "import { convertFloat32ToLinearColorSpace } from '../color/convert.js';\nimport { linearTosRGB } from '../color/srgb.js';\nimport { ensureNonNegativeFinite } from '../hdrifyImage.js';\nimport { getToneMapping } from './mappers.js';\nimport type { ApplyToneMappingOptions, ToneMappingType } from './types.js';\nimport { validateToneMappingColorSpaceFromMetadata } from './validateColorSpace.js';\n\n/**\n * Apply full HDR-to-LDR tone mapping pipeline.\n *\n * Input: Float32Array RGBA. Output: Uint8Array RGB in sRGB (IEC 61966-2-1).\n * Pipeline: (optional color space conversion) \u2192 exposure \u2192 tone mapping (linear 0-1) \u2192 linearToSrgb \u2192 0-255\n * Mutates hdrData in-place (sanitizes to non-negative finite) before processing.\n * Uses batch mappers with a single reusable buffer to minimize allocations.\n */\nexport function applyToneMapping(\n hdrData: Float32Array,\n width: number,\n height: number,\n options: ApplyToneMappingOptions = {},\n): Uint8Array {\n const sourceColorSpace = options.sourceColorSpace ?? 'linear-rec709';\n let dataToUse = hdrData;\n\n ensureNonNegativeFinite(dataToUse);\n\n if (sourceColorSpace !== 'linear-rec709') {\n dataToUse = convertFloat32ToLinearColorSpace(dataToUse, width, height, sourceColorSpace, 'linear-rec709');\n } else if (options.metadata) {\n validateToneMappingColorSpaceFromMetadata(options.metadata);\n }\n\n const toneMappingType: ToneMappingType = options.toneMapping ?? 'reinhard';\n const exposure = options.exposure ?? 1.0;\n const mapper = getToneMapping(toneMappingType);\n const totalPixels = width * height;\n\n // Single buffer for exposure-adjusted RGB, reused for tone mapping output (in-place)\n const linearRgbBuffer = new Float32Array(totalPixels * 3);\n const ldrData = new Uint8Array(totalPixels * 3);\n\n // Fill linearRgbBuffer with exposure-adjusted RGB from RGBA input\n for (let i = 0; i < totalPixels; i++) {\n const srcIdx = i * 4;\n const dstIdx = i * 3;\n if (srcIdx + 2 >= dataToUse.length) break;\n linearRgbBuffer[dstIdx] = dataToUse[srcIdx]! * exposure;\n linearRgbBuffer[dstIdx + 1] = dataToUse[srcIdx + 1]! * exposure;\n linearRgbBuffer[dstIdx + 2] = dataToUse[srcIdx + 2]! * exposure;\n }\n\n // Batch tone mapping (in-place)\n mapper(linearRgbBuffer, linearRgbBuffer, totalPixels);\n\n // linearTosRGB + quantize to Uint8\n for (let i = 0; i < totalPixels; i++) {\n const srcIdx = i * 3;\n const dstIdx = i * 3;\n const r = linearTosRGB(linearRgbBuffer[srcIdx]!);\n const g = linearTosRGB(linearRgbBuffer[srcIdx + 1]!);\n const b = linearTosRGB(linearRgbBuffer[srcIdx + 2]!);\n ldrData[dstIdx] = Math.max(0, Math.min(255, r * 255 + 0.5));\n ldrData[dstIdx + 1] = Math.max(0, Math.min(255, g * 255 + 0.5));\n ldrData[dstIdx + 2] = Math.max(0, Math.min(255, b * 255 + 0.5));\n }\n\n return ldrData;\n}\n", "import { ensureNonNegativeFinite, type HdrifyImage } from '../hdrifyImage.js';\nimport { applyToneMapping } from '../tonemapping/applyToneMapping.js';\nimport type { ToneMappingType } from '../tonemapping/types.js';\n\nexport interface HDRToLDROptions {\n /** Tone mapping: 'aces' or 'reinhard' (default: 'reinhard') */\n toneMapping?: ToneMappingType;\n /** Exposure value for tone mapping (default: 1.0) */\n exposure?: number;\n}\n\nexport interface ParseHDROptions {\n /** When true (default), require exact #?RADIANCE magic token. When false, accept any #?<programtype> */\n headerStrict?: boolean;\n /** 'raw' (default): return pixel values as stored. 'physicalRadiance': divide by EXPOSURE for physical radiance */\n output?: 'raw' | 'physicalRadiance';\n}\n\n/**\n * Read an HDR (Radiance) file buffer and return image data\n *\n * Implementation based on Three.js HDRLoader, adapted from:\n * http://www.graphics.cornell.edu/~bjw/rgbe.html\n *\n * @param hdrBuffer - Uint8Array containing HDR file data\n * @param options - Parse options (headerStrict, output)\n * @returns Parsed HDR image data with dimensions and pixel data as HdrifyImage\n */\nexport function readHdr(hdrBuffer: Uint8Array, options: ParseHDROptions = {}): HdrifyImage {\n const { headerStrict = true, output = 'raw' } = options;\n\n // Use Uint8Array for processing\n const byteArray = hdrBuffer;\n const offsetRef = { offset: 0 };\n\n const header = RGBE_ReadHeader(byteArray, offsetRef, { headerStrict });\n\n const w = header.width;\n const h = header.height;\n\n // Header reading already consumed the blank line after dimensions\n // offsetRef.offset now points to the start of pixel data\n const image_rgba_data = RGBE_ReadPixels_RLE(byteArray.subarray(offsetRef.offset), w, h);\n\n // Convert RGBE bytes to Float32Array RGBA\n const numElements = image_rgba_data.length / 4;\n const floatArray = new Float32Array(numElements * 4);\n\n for (let j = 0; j < numElements; j++) {\n RGBEByteToRGBFloat(image_rgba_data, j * 4, floatArray, j * 4);\n }\n\n // Apply physicalRadiance: divide by exposure product\n if (output === 'physicalRadiance' && header.exposure !== 1.0) {\n const scale = 1 / header.exposure;\n for (let i = 0; i < floatArray.length; i++) {\n if (i % 4 !== 3) {\n // Don't scale alpha\n (floatArray as Float32Array)[i] = floatArray[i]! * scale;\n }\n }\n }\n\n ensureNonNegativeFinite(floatArray);\n return {\n width: w,\n height: h,\n data: floatArray,\n linearColorSpace: 'linear-rec709',\n metadata: header.metadata,\n };\n}\n\n/**\n * Convert RGBE byte data to RGB float values.\n * Uses midpoint restoration (byte + 0.5) per Radiance reference / C. Bloom:\n * restores to center of quantization bucket, halving reconstruction error vs floor.\n */\nfunction RGBEByteToRGBFloat(\n sourceArray: Uint8Array,\n sourceOffset: number,\n destArray: Float32Array,\n destOffset: number,\n): void {\n const e = sourceArray[sourceOffset + 3]!;\n if (e === 0) {\n destArray[destOffset + 0] = 0;\n destArray[destOffset + 1] = 0;\n destArray[destOffset + 2] = 0;\n } else {\n const scale = 2.0 ** (e - 128.0) / 255.0;\n destArray[destOffset + 0] = (sourceArray[sourceOffset + 0]! + 0.5) * scale;\n destArray[destOffset + 1] = (sourceArray[sourceOffset + 1]! + 0.5) * scale;\n destArray[destOffset + 2] = (sourceArray[sourceOffset + 2]! + 0.5) * scale;\n }\n destArray[destOffset + 3] = 1;\n}\n\nconst magic_token_re = /^#\\?(\\S+)/;\n//const gamma_re = /^\\s*GAMMA\\s*=\\s*([\\d.]+)\\s*$/;\n//const exposure_re = /^\\s*EXPOSURE\\s*=\\s*([\\d.]+)\\s*$/;\n//const format_re = /^\\s*FORMAT=(\\S+)\\s*$/;\n//const supported_resolution_re = /^\\s*-Y\\s+(\\d+)\\s+\\+X\\s+(\\d+)\\s*$/;\n// Match any Radiance resolution string: [+-][XY] N [+-][XY] M\nconst resolution_re = /^\\s*([-+])([XY])\\s+(\\d+)\\s+([-+])([XY])\\s+(\\d+)\\s*$/;\nconst var_assign_re = /^\\s*([A-Za-z_][A-Za-z0-9_]*)\\s*=\\s*(.*)$/;\n\nfunction rgbe_error(rgbe_error_code: number, msg?: string): never {\n const rgbe_read_error = 1;\n const rgbe_write_error = 2;\n const rgbe_format_error = 3;\n const rgbe_memory_error = 4;\n\n switch (rgbe_error_code) {\n case rgbe_read_error:\n throw new Error(`HDR Read Error: ${msg || ''}`);\n case rgbe_write_error:\n throw new Error(`HDR Write Error: ${msg || ''}`);\n case rgbe_format_error:\n throw new Error(`HDR Bad File Format: ${msg || ''}`);\n case rgbe_memory_error:\n throw new Error(`HDR Memory Error: ${msg || ''}`);\n default:\n throw new Error(`HDR Memory Error: ${msg || ''}`);\n }\n}\n\nfunction parseMetadataValue(val: string): number | string {\n const trimmed = val.trim();\n const num = parseFloat(trimmed);\n if (!Number.isNaN(num) && trimmed === String(num)) {\n return num;\n }\n return trimmed;\n}\n\n/**\n * Read HDR header information\n */\nfunction RGBE_ReadHeader(\n buffer: Uint8Array,\n offsetRef: { offset: number },\n opts: { headerStrict: boolean },\n): {\n valid: number;\n string: string;\n comments: string;\n programtype: string;\n format: string;\n gamma: number;\n exposure: number;\n width: number;\n height: number;\n metadata: Record<string, unknown>;\n} {\n const RGBE_VALID_PROGRAMTYPE = 1;\n const RGBE_VALID_FORMAT = 2;\n const RGBE_VALID_DIMENSIONS = 4;\n\n const NEWLINE = '\\n';\n\n const metadata: Record<string, unknown> = {};\n const header = {\n valid: 0,\n string: '',\n comments: '',\n programtype: 'RGBE',\n format: '',\n gamma: 1.0,\n exposure: 1.0,\n width: 0,\n height: 0,\n metadata,\n };\n\n function fgets(): string | false {\n const lineLimit = 1024;\n let p = offsetRef.offset;\n\n if (p >= buffer.byteLength) {\n return false;\n }\n\n const endPos = Math.min(p + lineLimit, buffer.byteLength);\n let s = '';\n\n // Read until we find a newline or reach the limit\n while (p < endPos) {\n const byte = buffer[p];\n if (byte === undefined) {\n break;\n }\n if (byte === NEWLINE.charCodeAt(0)) {\n offsetRef.offset = p + 1;\n return s;\n }\n s += String.fromCharCode(byte);\n p++;\n }\n\n // No newline found, consume what we read\n offsetRef.offset = p;\n return s.length > 0 ? s : false;\n }\n\n if (offsetRef.offset >= buffer.byteLength) {\n rgbe_error(1, 'no header found');\n }\n\n let line = fgets();\n if (line === false) {\n rgbe_error(3, 'no header found');\n }\n\n const match = line.match(magic_token_re);\n if (!match || !match[1]) {\n rgbe_error(3, 'bad initial token');\n }\n\n if (opts.headerStrict && match[1] !== 'RADIANCE') {\n rgbe_error(3, `expected #?RADIANCE, got #?${match[1]}`);\n }\n\n header.valid |= RGBE_VALID_PROGRAMTYPE;\n header.programtype = match[1];\n header.string += `${line}\\n`;\n\n while (true) {\n line = fgets();\n if (false === line) break;\n header.string += `${line}\\n`;\n\n if ('#' === line.charAt(0)) {\n header.comments += `${line}\\n`;\n continue; // comment line\n }\n\n // Variable assignment (e.g. FORMAT=..., EXPOSURE=..., GAMMA=...)\n const varMatch = line.match(var_assign_re);\n if (varMatch?.[1]) {\n const key = varMatch[1];\n const val = parseMetadataValue(varMatch[2] ?? '');\n metadata[key] = val;\n\n if (key === 'GAMMA' && typeof val === 'number') {\n header.gamma = val;\n } else if (key === 'EXPOSURE' && typeof val === 'number') {\n header.exposure *= val; // Cumulative per spec\n metadata[key] = header.exposure; // Store cumulative product\n } else if (key === 'FORMAT') {\n header.valid |= RGBE_VALID_FORMAT;\n header.format = String(val);\n if (header.format === '32-bit_rle_xyze') {\n rgbe_error(3, 'XYZ format is not supported; only RGBE format is supported');\n }\n }\n continue;\n }\n\n // Resolution string\n const resMatch = line.match(resolution_re);\n if (resMatch) {\n const sign1 = resMatch[1];\n const axis1 = resMatch[2];\n const num1 = resMatch[3];\n const sign2 = resMatch[4];\n const axis2 = resMatch[5];\n const num2 = resMatch[6];\n\n if (axis1 === 'Y' && sign1 === '-' && axis2 === 'X' && sign2 === '+') {\n header.valid |= RGBE_VALID_DIMENSIONS;\n header.height = parseInt(num1 ?? '0', 10);\n header.width = parseInt(num2 ?? '0', 10);\n metadata.RESOLUTION = line.trim();\n break;\n }\n\n throw new Error(\n `Unsupported resolution format: ${line.trim()}. Only -Y N +X M (standard orientation) is supported.`,\n );\n }\n }\n\n if (!(header.valid & RGBE_VALID_FORMAT)) {\n rgbe_error(3, 'missing format specifier');\n }\n\n if (!(header.valid & RGBE_VALID_DIMENSIONS)) {\n rgbe_error(3, 'missing image size specifier');\n }\n\n if (header.width === 0 || header.height === 0) {\n rgbe_error(3, 'invalid image dimensions');\n }\n\n return header;\n}\n\n/** Old RLE: illegal pixel has R=G=B=255, exponent = repeat count */\nfunction isOldRLEPixel(buf: Uint8Array, offset: number): boolean {\n return buf[offset] === 255 && buf[offset + 1] === 255 && buf[offset + 2] === 255;\n}\n\nfunction hasOldRLE(buffer: Uint8Array): boolean {\n for (let i = 0; i < buffer.length; i += 4) {\n if (i + 4 <= buffer.length && isOldRLEPixel(buffer, i)) {\n return true;\n }\n }\n return false;\n}\n\n/** Decode old Radiance RLE: (255,255,255,E) = repeat previous pixel E times; consecutive indicators add higher-order bytes */\nfunction decodeOldRLE(buffer: Uint8Array, w: number, h: number): Uint8Array {\n const output = new Uint8Array(4 * w * h);\n let outIdx = 0;\n let pos = 0;\n const prev = new Uint8Array(4);\n\n while (outIdx < output.length && pos < buffer.length) {\n if (pos + 4 > buffer.length) {\n throw new Error('HDR Bad File Format: truncated old RLE data');\n }\n\n const r = buffer[pos++]!;\n const g = buffer[pos++]!;\n const b = buffer[pos++]!;\n const e = buffer[pos++]!;\n\n if (r === 255 && g === 255 && b === 255) {\n // Repeat indicator: output previous pixel E times; consecutive indicators add higher-order bytes\n let count = e;\n let shift = 1;\n while (pos + 4 <= buffer.length) {\n const r2 = buffer[pos]!;\n const g2 = buffer[pos + 1]!;\n const b2 = buffer[pos + 2]!;\n const e2 = buffer[pos + 3]!;\n if (r2 !== 255 || g2 !== 255 || b2 !== 255) break;\n pos += 4;\n count += e2 << (8 * shift);\n shift++;\n }\n for (let i = 0; i < count && outIdx < output.length; i++) {\n output[outIdx++] = prev[0]!;\n output[outIdx++] = prev[1]!;\n output[outIdx++] = prev[2]!;\n output[outIdx++] = prev[3]!;\n }\n } else {\n const rn = r & 0xff;\n const gn = g & 0xff;\n const bn = b & 0xff;\n const en = e & 0xff;\n prev[0] = rn;\n prev[1] = gn;\n prev[2] = bn;\n prev[3] = en;\n output[outIdx++] = rn;\n output[outIdx++] = gn;\n output[outIdx++] = bn;\n output[outIdx++] = en;\n }\n }\n\n if (outIdx !== output.length) {\n throw new Error('HDR Bad File Format: old RLE did not produce expected pixel count');\n }\n return output;\n}\n\n/**\n * Read RLE-compressed pixel data\n */\nfunction RGBE_ReadPixels_RLE(buffer: Uint8Array, w: number, h: number): Uint8Array {\n const scanline_width = w;\n\n // Strip leading newlines (blank line after resolution string)\n let pixelBuffer = buffer;\n while (pixelBuffer.length > 0 && pixelBuffer[0] === 0x0a) {\n pixelBuffer = pixelBuffer.subarray(1);\n }\n\n if (\n // run length encoding is not allowed so read flat\n scanline_width < 8 ||\n scanline_width > 0x7fff ||\n // this file is not run length encoded\n pixelBuffer.length < 4 ||\n pixelBuffer[0] !== 2 ||\n pixelBuffer[1] !== 2 ||\n pixelBuffer[2]! & 0x80\n ) {\n // Flat path: uncompressed or old RLE\n const expected = 4 * w * h;\n if (pixelBuffer.length < expected && hasOldRLE(pixelBuffer)) {\n return decodeOldRLE(pixelBuffer, w, h);\n }\n if (pixelBuffer.length === expected + 1 && pixelBuffer[0] === 0x0a) {\n pixelBuffer = pixelBuffer.subarray(1);\n }\n if (pixelBuffer.length !== expected) {\n throw new Error(`HDR Bad File Format: expected ${expected} bytes (${w}x${h}), got ${pixelBuffer.length}`);\n }\n return new Uint8Array(pixelBuffer);\n }\n\n const bufferWidth = (pixelBuffer[2]! << 8) | pixelBuffer[3]!;\n if (scanline_width !== bufferWidth) {\n throw new Error(`HDR Bad File Format: wrong scanline width (expected ${scanline_width}, got ${bufferWidth})`);\n }\n\n const data_rgba = new Uint8Array(4 * w * h);\n\n if (!data_rgba.length) {\n throw new Error('HDR Memory Error: unable to allocate buffer space');\n }\n\n let outputOffset = 0;\n let pos = 0; // First scanline header is at 0 (already validated by condition above)\n\n const ptr_end = 4 * scanline_width;\n const rgbeStart = new Uint8Array(4);\n const scanline_buffer = new Uint8Array(ptr_end);\n let num_scanlines = h;\n\n // read in each successive scanline\n while (num_scanlines > 0 && pos < pixelBuffer.byteLength) {\n if (pos + 4 > pixelBuffer.byteLength) {\n throw new Error('HDR Read Error');\n }\n\n rgbeStart[0] = pixelBuffer[pos++]!;\n rgbeStart[1] = pixelBuffer[pos++]!;\n rgbeStart[2] = pixelBuffer[pos++]!;\n rgbeStart[3] = pixelBuffer[pos++]!;\n\n if (rgbeStart[0] !== 2 || rgbeStart[1] !== 2 || ((rgbeStart[2] << 8) | rgbeStart[3]) !== scanline_width) {\n throw new Error('HDR Bad File Format: bad rgbe scanline format');\n }\n\n // read each of the four channels for the scanline into the buffer\n // first red, then green, then blue, then exponent\n let ptr = 0;\n let count: number;\n\n while (ptr < ptr_end && pos < pixelBuffer.byteLength) {\n const countByte = pixelBuffer[pos++];\n if (countByte === undefined) {\n throw new Error('HDR Read Error: unexpected end of data');\n }\n count = countByte;\n const isEncodedRun = count > 128;\n if (isEncodedRun) count -= 128;\n\n if (count === 0 || ptr + count > ptr_end) {\n throw new Error('HDR Bad File Format: bad scanline data');\n }\n\n if (isEncodedRun) {\n // a (encoded) run of the same value\n const byteValue = pixelBuffer[pos++];\n if (byteValue === undefined) {\n throw new Error('HDR Read Error: unexpected end of data');\n }\n for (let i = 0; i < count; i++) {\n scanline_buffer[ptr++] = byteValue;\n }\n } else {\n // a literal-run: copy count bytes from buffer\n scanline_buffer.set(pixelBuffer.subarray(pos, pos + count), ptr);\n ptr += count;\n pos += count;\n }\n }\n\n // now convert data from buffer into rgba\n // first red, then green, then blue, then exponent (alpha)\n const l = scanline_width;\n for (let i = 0; i < l; i++) {\n let off = 0;\n data_rgba[outputOffset] = scanline_buffer[i + off]!;\n off += scanline_width;\n data_rgba[outputOffset + 1] = scanline_buffer[i + off]!;\n off += scanline_width;\n data_rgba[outputOffset + 2] = scanline_buffer[i + off]!;\n off += scanline_width;\n data_rgba[outputOffset + 3] = scanline_buffer[i + off]!;\n outputOffset += 4;\n }\n\n num_scanlines--;\n }\n\n return data_rgba;\n}\n\n/**\n * Convert HDR float data to LDR (Low Dynamic Range) uint8 data using tone mapping\n *\n * Uses unified tone mapping (Reinhard or ACES) with sRGB output transfer.\n *\n * @param hdrData - Float32Array of RGBA pixel data [R, G, B, A, R, G, B, A, ...] where A is always 1.0\n * @param width - Image width in pixels\n * @param height - Image height in pixels\n * @param options - Tone mapping options (toneMapping, exposure)\n * @returns Uint8Array containing uint8 RGB data in sRGB, ready for image encoding\n */\nexport function hdrToLdr(\n hdrData: Float32Array,\n width: number,\n height: number,\n options: HDRToLDROptions = {},\n): Uint8Array {\n return applyToneMapping(hdrData, width, height, {\n toneMapping: options.toneMapping ?? 'reinhard',\n exposure: options.exposure ?? 1.0,\n });\n}\n\n/**\n * Convert an HDR file buffer to LDR RGB buffer\n *\n * This is a convenience function that combines parsing and conversion.\n * Output is sRGB.\n *\n * @param hdrBuffer - Uint8Array containing HDR file data\n * @param options - Tone mapping options (toneMapping, exposure)\n * @returns Object containing width, height, and LDR RGB buffer\n */\nexport function convertHDRToLDR(\n hdrBuffer: Uint8Array,\n options: HDRToLDROptions = {},\n): { width: number; height: number; ldrData: Uint8Array } {\n const hdrImage = readHdr(hdrBuffer);\n const fileExposure = hdrImage.metadata?.EXPOSURE as number | undefined;\n const ldrData = hdrToLdr(hdrImage.data, hdrImage.width, hdrImage.height, {\n toneMapping: options.toneMapping ?? 'reinhard',\n exposure: options.exposure ?? fileExposure ?? 1.0,\n });\n\n return {\n width: hdrImage.width,\n height: hdrImage.height,\n ldrData,\n };\n}\n", "import { applyToneMapping, type HdrifyImage, type ToneMappingType } from 'hdrify';\n\n/** Options for `toBlob()` on `<image-viewer>` and the {@link ImageViewer} handle. */\nexport interface ImageViewerCaptureOptions {\n /** `image/png` (default), `image/jpeg` or `image/webp`. Browsers that cannot encode a type return a PNG. */\n type?: 'image/png' | 'image/jpeg' | 'image/webp';\n /** Encoding quality from 0 to 1 for JPEG and WebP. */\n quality?: number;\n /** Output size in pixels. Without either, the image's own size; with one, the other keeps the aspect ratio. */\n width?: number;\n height?: number;\n}\n\n/** Tone map `image` into `canvas`, resizing the canvas to the image. The result is opaque sRGB. */\nexport function drawToneMapped(\n canvas: HTMLCanvasElement,\n image: HdrifyImage,\n toneMapping: ToneMappingType,\n exposure: number,\n): void {\n const { width, height } = image;\n canvas.width = width;\n canvas.height = height;\n // LDR from applyToneMapping is sRGB; use an srgb canvas so it displays correctly.\n const ctx = canvas.getContext('2d', { colorSpace: 'srgb' }) ?? canvas.getContext('2d');\n if (!ctx) return;\n const ldrRgb = applyToneMapping(image.data, width, height, {\n toneMapping,\n exposure,\n sourceColorSpace: image.linearColorSpace,\n });\n const imageData = ctx.createImageData(width, height);\n const pixels = imageData.data;\n for (let destIndex = 0, sourceIndex = 0; sourceIndex < ldrRgb.length; destIndex += 4, sourceIndex += 3) {\n pixels[destIndex] = ldrRgb[sourceIndex]!;\n pixels[destIndex + 1] = ldrRgb[sourceIndex + 1]!;\n pixels[destIndex + 2] = ldrRgb[sourceIndex + 2]!;\n pixels[destIndex + 3] = 255;\n }\n ctx.putImageData(imageData, 0, 0);\n}\n\n/** Output size for a capture; throws on sizes that are not positive integers up to 16384 pixels. */\nexport function captureSize(options: ImageViewerCaptureOptions, imageWidth: number, imageHeight: number) {\n const width = options.width ?? Math.round(((options.height ?? imageHeight) * imageWidth) / imageHeight);\n const height = options.height ?? Math.round((width * imageHeight) / imageWidth);\n if (![width, height].every((value) => Number.isInteger(value) && value > 0 && value <= 16384))\n throw new RangeError('Capture width and height must be positive integers up to 16384.');\n return { width, height };\n}\n\n/** Encode `image` tone mapped with the given settings, independently of what is on screen. */\nexport async function captureImage(\n image: HdrifyImage,\n toneMapping: ToneMappingType,\n exposure: number,\n options: ImageViewerCaptureOptions = {},\n): Promise<Blob> {\n const { width, height } = captureSize(options, image.width, image.height);\n let canvas = document.createElement('canvas');\n drawToneMapped(canvas, image, toneMapping, exposure);\n if (width !== image.width || height !== image.height) {\n const scaled = document.createElement('canvas');\n scaled.width = width;\n scaled.height = height;\n const ctx = scaled.getContext('2d')!;\n ctx.imageSmoothingQuality = 'high';\n ctx.drawImage(canvas, 0, 0, width, height);\n canvas = scaled;\n }\n return new Promise((resolve, reject) =>\n canvas.toBlob(\n (blob) => (blob ? resolve(blob) : reject(new Error('The browser could not encode the image.'))),\n options.type ?? 'image/png',\n options.quality,\n ),\n );\n}\n", "import type { HdrifyImage, ToneMappingType } from 'hdrify';\nimport { type CSSProperties, type Ref, useEffect, useId, useImperativeHandle, useRef, useState } from 'react';\nimport { captureImage, type ImageViewerCaptureOptions } from './capture.js';\nimport { decodeHdrifyImage } from './decode.js';\nimport { HdrifyCanvas } from './HdrifyCanvas.js';\nimport { type DownloadProgress, type ImageViewerProgress, readResponse } from './progress.js';\nimport { ViewerReadiness } from './readiness.js';\nimport { IMAGE_VIEWER_CSS } from './styles.js';\n\n/** `open` shows the options panel, `closed` shows only its gear button, and `hidden` shows neither. */\nexport type SettingsPanelMode = 'open' | 'closed' | 'hidden';\n/** `contain` scales the image to fit the viewer; `actual` shows one image pixel per CSS pixel, scrolling if needed. */\nexport type ImageFit = 'contain' | 'actual';\n\n/** User-adjustable display settings. */\nexport interface ImageViewerSettings {\n toneMapping: ToneMappingType;\n /** Exposure in stops (EV): `0` is unchanged, `+1` doubles the brightness. */\n exposure: number;\n fit: ImageFit;\n}\n\nexport const DEFAULT_IMAGE_VIEWER_SETTINGS: Readonly<ImageViewerSettings> = {\n toneMapping: 'neutral',\n exposure: 0,\n fit: 'contain',\n};\n\nexport const TONE_MAPPING_OPTIONS: readonly { value: ToneMappingType; label: string }[] = [\n { value: 'neutral', label: 'Neutral' },\n { value: 'agx', label: 'AgX' },\n { value: 'aces', label: 'ACES' },\n { value: 'reinhard', label: 'Reinhard' },\n];\n\n/** Range of the exposure slider, in stops. The options panel accepts any value. */\nexport const EXPOSURE_SLIDER_RANGE = { min: -10, max: 10 } as const;\n\n/** Imperative handle for {@link ImageViewer}, received through its `ref` (React 19). */\nexport interface ImageViewerHandle {\n /**\n * Resolve once the current source is loaded and drawn (immediately with no source). If the source changes first,\n * it waits for the new source instead. Rejects with the load's error, or if the component unmounts.\n */\n whenReady(): Promise<void>;\n /** Wait for {@link whenReady}, then encode the tone-mapped image with the current settings; no viewer controls. */\n toBlob(options?: ImageViewerCaptureOptions): Promise<Blob>;\n}\n\n/** Props for {@link ImageViewer}. Settings props override the user's choice whenever they change. */\nexport interface ImageViewerProps extends Partial<ImageViewerSettings> {\n /** URL of an EXR, HDR or gain map JPEG (optionally gzipped). Fetching is cancelled when it changes. */\n src?: string;\n /** Encoded file bytes; takes precedence over `src`. */\n data?: ArrayBuffer | Uint8Array;\n /** An already decoded image; takes precedence over `data` and `src`. */\n image?: HdrifyImage;\n /** Initial state of the options panel. Defaults to `closed`. */\n settingsPanel?: SettingsPanelMode;\n /** Show the vertical exposure slider over the left edge. */\n exposureControl?: boolean;\n /** Wrapper class name. */\n className?: string;\n /** Wrapper style; the default height is 480 pixels. */\n style?: CSSProperties;\n /** Called after each image loads and is drawn. */\n onLoad?: (image: HdrifyImage) => void;\n /** Called with fetch and decode errors; they are also shown in the viewer. */\n onError?: (error: Error) => void;\n /** Called as the image downloads, decodes and is drawn. */\n onProgress?: (progress: ImageViewerProgress) => void;\n /** Called when the user changes a setting with the slider or the options panel. */\n onSettingsChange?: (settings: ImageViewerSettings) => void;\n /** Called when the user opens or closes the options panel. */\n onSettingsPanelChange?: (mode: SettingsPanelMode) => void;\n /** Receives an {@link ImageViewerHandle} for readiness and image capture. */\n ref?: Ref<ImageViewerHandle>;\n}\n\nfunction definedSettings(settings: Partial<ImageViewerSettings>): Partial<ImageViewerSettings> {\n return Object.fromEntries(Object.entries(settings).filter(([, value]) => value !== undefined));\n}\n\nfunction formatStops(stops: number): string {\n return `${stops > 0 ? '+' : ''}${Number(stops.toFixed(1))} EV`;\n}\n\n/** Wait until the browser has painted, so the progress bar shows before decoding blocks the main thread. */\nconst afterPaint = () => new Promise<void>((resolve) => requestAnimationFrame(() => setTimeout(resolve, 0)));\n\n/** Share of the progress bar for the download; decoding and drawing take the rest. */\nconst DOWNLOAD_SHARE = 0.8;\nconst NO_DOWNLOAD: DownloadProgress = { loaded: 0, total: null, progress: null };\nlet loadCount = 0;\n\ninterface LoadState {\n source?: string | ArrayBuffer | Uint8Array;\n image?: HdrifyImage;\n error?: string;\n}\n\n/**\n * Loads and displays an HDR image with tone mapping, a loading bar, an optional options panel and an optional\n * exposure slider. Accepts every format hdrify reads; see {@link decodeHdrifyImage}.\n *\n * @example\n * ```tsx\n * <ImageViewer src=\"/images/memorial.exr\" exposureControl toneMapping=\"agx\" style={{ height: 600 }} />\n * ```\n */\nexport function ImageViewer({\n src,\n data,\n image,\n toneMapping,\n exposure,\n fit,\n settingsPanel = 'closed',\n exposureControl = false,\n className,\n style,\n onLoad,\n onError,\n onProgress,\n onSettingsChange,\n onSettingsPanelChange,\n ref,\n}: ImageViewerProps) {\n const callbacks = useRef({ onLoad, onError, onProgress, onSettingsChange, onSettingsPanelChange });\n useEffect(() => {\n callbacks.current = { onLoad, onError, onProgress, onSettingsChange, onSettingsPanelChange };\n });\n\n // Props seed the state and override it whenever they change; the user can change it in between.\n const [settings, setSettings] = useState<ImageViewerSettings>(() => ({\n ...DEFAULT_IMAGE_VIEWER_SETTINGS,\n ...definedSettings({ toneMapping, exposure, fit }),\n }));\n const [provided, setProvided] = useState({ toneMapping, exposure, fit, settingsPanel });\n const [panelMode, setPanelMode] = useState<SettingsPanelMode>(settingsPanel);\n if (\n provided.toneMapping !== toneMapping ||\n provided.exposure !== exposure ||\n provided.fit !== fit ||\n provided.settingsPanel !== settingsPanel\n ) {\n setProvided({ toneMapping, exposure, fit, settingsPanel });\n setSettings((current) => ({ ...current, ...definedSettings({ toneMapping, exposure, fit }) }));\n if (provided.settingsPanel !== settingsPanel) setPanelMode(settingsPanel);\n }\n\n const change = (patch: Partial<ImageViewerSettings>) => {\n const next = { ...settings, ...patch };\n setSettings(next);\n callbacks.current.onSettingsChange?.(next);\n };\n const changePanel = (mode: SettingsPanelMode) => {\n setPanelMode(mode);\n callbacks.current.onSettingsPanelChange?.(mode);\n };\n\n const [readiness] = useState(() => new ViewerReadiness());\n useEffect(() => () => readiness.disconnect(), [readiness]);\n\n // The latest fetch/decode result, tagged with the source it came from; the rest is derived during render.\n const source = image ? undefined : (data ?? src);\n const [loaded, setLoaded] = useState<LoadState>({});\n // Progress of the current load; `id` remounts the bar so it never animates backwards into a new load.\n const [bar, setBar] = useState<{ id: number; value: number } | null>(null);\n const download = useRef(NO_DOWNLOAD);\n useEffect(() => {\n readiness.pending();\n download.current = NO_DOWNLOAD;\n if (image) return; // Drawn below.\n if (!source) {\n readiness.finish();\n return;\n }\n const controller = new AbortController();\n const { signal } = controller;\n const id = ++loadCount;\n let overall = 0;\n const report = (stage: ImageViewerProgress['stage'], totalProgress: number) => {\n if (signal.aborted) return;\n overall = Math.max(overall, totalProgress);\n setBar({ id, value: overall });\n callbacks.current.onProgress?.({ ...download.current, totalProgress: overall, stage });\n };\n const fetchWithProgress = async (url: string) => {\n report('download', 0);\n const response = await fetch(url, { signal });\n if (!response.ok) throw new Error(`Failed to load ${url}: HTTP ${response.status}`);\n return readResponse(response, signal, (progress) => {\n download.current = progress;\n report('download', DOWNLOAD_SHARE * (progress.progress ?? 0));\n });\n };\n (async () => {\n const bytes = typeof source === 'string' ? await fetchWithProgress(source) : source;\n report('decode', typeof source === 'string' ? DOWNLOAD_SHARE : 0);\n await afterPaint();\n signal.throwIfAborted();\n const decoded = await decodeHdrifyImage(bytes);\n signal.throwIfAborted();\n setLoaded({ source, image: decoded });\n })().catch((reason: unknown) => {\n if (signal.aborted) return;\n const error = reason instanceof Error ? reason : new Error(String(reason));\n readiness.finish(error);\n setBar(null);\n setLoaded({ source, error: error.message });\n callbacks.current.onError?.(error);\n });\n return () => controller.abort();\n }, [image, source, readiness]);\n const loading = source !== undefined && loaded.source !== source;\n // While a new source loads, keep showing the previous image.\n const shownImage = image ?? (source === undefined ? undefined : loaded.image);\n const error = !loading && source !== undefined ? loaded.error : undefined;\n const barValue = bar && !loading ? 1 : bar?.value;\n\n // HdrifyCanvas (a child) draws in its effect, which runs before this one: the new image is on screen here.\n const drawn = loading ? undefined : shownImage;\n const latest = useRef({ image: drawn, settings });\n useEffect(() => {\n latest.current = { image: drawn, settings };\n });\n useEffect(() => {\n if (!drawn) return;\n readiness.finish();\n callbacks.current.onProgress?.({ ...download.current, totalProgress: 1, stage: 'render' });\n callbacks.current.onLoad?.(drawn);\n }, [drawn, readiness]);\n\n useImperativeHandle(\n ref,\n () => ({\n whenReady: () => readiness.whenReady(),\n toBlob: async (options) => {\n await readiness.whenReady();\n const { image: current, settings: currentSettings } = latest.current;\n if (!current) throw new Error('No image is loaded.');\n return captureImage(current, currentSettings.toneMapping, 2 ** currentSettings.exposure, options);\n },\n }),\n [readiness],\n );\n\n return (\n <div\n className={className ? `hdrify-viewer ${className}` : 'hdrify-viewer'}\n style={{ height: 480, ...style }}\n data-fit={settings.fit}\n aria-busy={loading}\n >\n <style>{IMAGE_VIEWER_CSS}</style>\n <div className=\"hdrify-viewer-viewport\">\n {shownImage && (\n <HdrifyCanvas\n hdrifyImage={shownImage}\n toneMapping={settings.toneMapping}\n exposure={2 ** settings.exposure}\n className=\"hdrify-viewer-canvas\"\n />\n )}\n </div>\n <div className=\"hdrify-viewer-progress\" hidden={barValue === undefined}>\n {/* In <image-viewer>, slot=\"progress-bar\" children replace the default bar, as in <material-viewer>. */}\n <slot name=\"progress-bar\">\n {bar && barValue !== undefined && (\n <div\n key={bar.id}\n className={barValue === 1 ? 'hdrify-viewer-progress-fill complete' : 'hdrify-viewer-progress-fill'}\n part=\"default-progress-bar\"\n // oxlint-disable-next-line jsx-a11y/prefer-tag-over-role -- a scaled fill, styleable via ::part like <material-viewer>'s\n role=\"progressbar\"\n aria-label=\"Loading image\"\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={Math.round(barValue * 100)}\n aria-hidden={barValue === 1}\n style={{ transform: `scaleX(${Math.max(0.02, barValue)})` }}\n />\n )}\n </slot>\n </div>\n {error && (\n <p role=\"alert\" className=\"hdrify-viewer-error\">\n {error}\n </p>\n )}\n {exposureControl && (\n <div className=\"hdrify-viewer-exposure hdrify-viewer-surface\" title=\"Exposure (double-click to reset)\">\n <output>{formatStops(settings.exposure)}</output>\n <input\n type=\"range\"\n aria-label=\"Exposure in stops\"\n min={EXPOSURE_SLIDER_RANGE.min}\n max={EXPOSURE_SLIDER_RANGE.max}\n step={0.1}\n value={settings.exposure}\n onChange={(event) => change({ exposure: event.currentTarget.valueAsNumber })}\n onDoubleClick={() => change({ exposure: 0 })}\n />\n </div>\n )}\n {panelMode !== 'hidden' && (\n <OptionsPanel\n settings={settings}\n image={shownImage}\n open={panelMode === 'open'}\n onChange={change}\n onOpenChange={(open) => changePanel(open ? 'open' : 'closed')}\n />\n )}\n </div>\n );\n}\n\ninterface OptionsPanelProps {\n settings: ImageViewerSettings;\n image?: HdrifyImage;\n open: boolean;\n onChange: (patch: Partial<ImageViewerSettings>) => void;\n onOpenChange: (open: boolean) => void;\n}\n\nfunction OptionsPanel({ settings, image, open, onChange, onOpenChange }: OptionsPanelProps) {\n const id = useId();\n const button = useRef<HTMLButtonElement>(null);\n const panel = useRef<HTMLElement>(null);\n const close = useRef(() => onOpenChange(false));\n useEffect(() => {\n close.current = () => onOpenChange(false);\n });\n // Close on Escape or a pointer press outside; composedPath sees through the element's shadow root.\n useEffect(() => {\n const document = button.current?.ownerDocument;\n if (!open || !document) return;\n const outside = (event: Event) => {\n const path = event.composedPath();\n if (!path.includes(panel.current!) && !path.includes(button.current!)) close.current();\n };\n const escape = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return;\n close.current();\n button.current?.focus();\n };\n document.addEventListener('pointerdown', outside);\n document.addEventListener('keydown', escape);\n return () => {\n document.removeEventListener('pointerdown', outside);\n document.removeEventListener('keydown', escape);\n };\n }, [open]);\n return (\n <>\n <button\n ref={button}\n type=\"button\"\n className=\"hdrify-viewer-toggle hdrify-viewer-surface\"\n aria-label=\"Viewer options\"\n title=\"Viewer options\"\n aria-controls={id}\n aria-expanded={open}\n onClick={() => onOpenChange(!open)}\n >\n <svg\n viewBox=\"0 0 24 24\"\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.6\"\n aria-hidden=\"true\"\n >\n <path\n d=\"m9 3-.8 2.2-2 .9L4 5.5 2.5 8l1.6 1.7-.2 2.3L2 13.5 3.5 16l2.3-.4 1.8 1.4.4 2.4h3l.8-2.2 2-.9 2.2.6 1.5-2.5-1.6-1.7.2-2.3L18 8.5 16.5 6l-2.3.4-1.8-1.4L12 3Z\"\n transform=\"translate(2 1)\"\n />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n </button>\n <section\n ref={panel}\n id={id}\n className=\"hdrify-viewer-panel hdrify-viewer-surface\"\n aria-label=\"Viewer options\"\n hidden={!open}\n >\n <header>\n <strong>Viewer options</strong>\n <button type=\"button\" aria-label=\"Close viewer options\" onClick={() => onOpenChange(false)}>\n \u00D7\n </button>\n </header>\n <label>\n Tone mapping\n <select\n value={settings.toneMapping}\n onChange={(event) => onChange({ toneMapping: event.currentTarget.value as ToneMappingType })}\n >\n {TONE_MAPPING_OPTIONS.map((option) => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n </label>\n <label>\n Exposure (EV)\n <input\n type=\"number\"\n step={0.1}\n value={Number(settings.exposure.toFixed(2))}\n onChange={(event) => {\n const value = event.currentTarget.valueAsNumber;\n if (Number.isFinite(value)) onChange({ exposure: value });\n }}\n />\n </label>\n <label>\n Size\n <select value={settings.fit} onChange={(event) => onChange({ fit: event.currentTarget.value as ImageFit })}>\n <option value=\"contain\">Fit to view</option>\n <option value=\"actual\">Actual size</option>\n </select>\n </label>\n {image && (\n <dl>\n <dt>Dimensions</dt>\n <dd>\n {image.width} \u00D7 {image.height}\n </dd>\n <dt>Color space</dt>\n <dd>{image.linearColorSpace}</dd>\n {typeof image.metadata?.format === 'string' && (\n <>\n <dt>Format</dt>\n <dd>{image.metadata.format}</dd>\n </>\n )}\n </dl>\n )}\n </section>\n </>\n );\n}\n", "import { type HdrifyImage, readExr, readHdr, readJpegGainMap } from 'hdrify';\n\nconst startsWith = (bytes: Uint8Array, magic: number[]): boolean => magic.every((byte, i) => bytes[i] === byte);\n\nasync function gunzip(bytes: Uint8Array): Promise<Uint8Array> {\n const stream = new Blob([bytes as Uint8Array<ArrayBuffer>]).stream().pipeThrough(new DecompressionStream('gzip'));\n return new Uint8Array(await new Response(stream).arrayBuffer());\n}\n\n/**\n * Decode an OpenEXR, Radiance HDR or JPEG gain map (Ultra HDR / Adobe) file, detected from its content, not its\n * name. Gzip-compressed files (such as `.hdr.gz`) are decompressed first.\n */\nexport async function decodeHdrifyImage(input: ArrayBuffer | Uint8Array): Promise<HdrifyImage> {\n let bytes = input instanceof Uint8Array ? input : new Uint8Array(input);\n if (startsWith(bytes, [0x1f, 0x8b])) bytes = await gunzip(bytes);\n if (startsWith(bytes, [0x76, 0x2f, 0x31, 0x01])) return readExr(bytes);\n if (startsWith(bytes, [0x23, 0x3f])) return readHdr(bytes); // \"#?RADIANCE\" / \"#?RGBE\"\n if (startsWith(bytes, [0xff, 0xd8])) return readJpegGainMap(bytes);\n throw new Error('Unsupported image: expected OpenEXR, Radiance HDR or a JPEG gain map');\n}\n", "import type { HdrifyImage, ToneMappingType } from 'hdrify';\nimport type * as React from 'react';\nimport { useCallback, useEffect, useRef } from 'react';\nimport { drawToneMapped } from './capture.js';\n\nexport interface HdrifyCanvasProps {\n hdrifyImage: HdrifyImage;\n toneMapping: ToneMappingType;\n exposure: number;\n className?: string;\n /** Optional ref so parent can access the canvas (e.g. for toBlob). */\n forwardedRef?: React.RefObject<HTMLCanvasElement | null>;\n}\n\nexport function HdrifyCanvas({\n hdrifyImage,\n toneMapping,\n exposure,\n className,\n forwardedRef,\n}: HdrifyCanvasProps): React.ReactElement {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n const setRef = useCallback(\n (el: HTMLCanvasElement | null) => {\n canvasRef.current = el;\n if (forwardedRef) {\n // oxlint-disable-next-line react/immutability -- forwarding the element into the parent-owned ref\n forwardedRef.current = el;\n }\n },\n [forwardedRef],\n );\n\n useEffect(() => {\n if (canvasRef.current) drawToneMapped(canvasRef.current, hdrifyImage, toneMapping, exposure);\n }, [hdrifyImage, exposure, toneMapping]);\n\n return <canvas className={className} ref={setRef} />;\n}\n", "/** Download progress for the image file. */\nexport interface DownloadProgress {\n /** Bytes received so far. */\n loaded: number;\n /** File size in bytes, or null when the server does not provide a usable Content-Length. */\n total: number | null;\n /** Fraction from 0 to 1, or null while the file size is unknown. */\n progress: number | null;\n}\n\n/** Overall loading progress reported by {@link ImageViewer}'s `onProgress` and `<image-viewer>`'s `progress` event. */\nexport interface ImageViewerProgress extends DownloadProgress {\n /** Fraction from 0 to 1 across downloading, decoding and drawing. Never moves backwards within a load. */\n totalProgress: number;\n /** The current step: `download`, then `decode`, then `render` (reported once, with `totalProgress` 1). */\n stage: 'download' | 'decode' | 'render';\n}\n\n/** Read a response body, reporting immediately, then at most every 100 ms, and on completion. */\nexport async function readResponse(\n response: Response,\n signal: AbortSignal,\n onProgress: (progress: DownloadProgress) => void,\n): Promise<Uint8Array> {\n const length = Number(response.headers.get('content-length') ?? NaN);\n // Fetch decodes compressed responses; their Content-Length describes different bytes.\n const encoding = response.headers.get('content-encoding');\n const total = Number.isSafeInteger(length) && length >= 0 && (!encoding || encoding === 'identity') ? length : null;\n let loaded = 0;\n const publish = () => onProgress({ loaded, total, progress: total ? Math.min(loaded / total, 1) : null });\n publish();\n const reader = response.body?.getReader();\n if (!reader) {\n const bytes = new Uint8Array(await response.arrayBuffer());\n loaded = bytes.byteLength;\n onProgress({ loaded, total: loaded, progress: 1 });\n return bytes;\n }\n const cancel = () => void reader.cancel().catch(() => {});\n signal.addEventListener('abort', cancel, { once: true });\n try {\n const chunks: Uint8Array[] = [];\n let published = performance.now();\n while (true) {\n const { done, value } = await reader.read();\n signal.throwIfAborted();\n if (done) break;\n chunks.push(value);\n loaded += value.byteLength;\n if (performance.now() - published >= 100) {\n published = performance.now();\n publish();\n }\n }\n const bytes = new Uint8Array(loaded);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.byteLength;\n }\n onProgress({ loaded, total: loaded, progress: 1 });\n return bytes;\n } finally {\n signal.removeEventListener('abort', cancel);\n }\n}\n", "const notConnected = () => settled(Promise.reject(new Error('The viewer is not connected to a document')));\n\n/**\n * Readiness shared by `<image-viewer>` and the React `ImageViewer` (the ies-tools `<light-viewer>` design). The host\n * marks each load with {@link pending} and {@link finish}, and teardown with {@link disconnect}.\n */\nexport class ViewerReadiness {\n /** Settles when the latest load settles; replaced by every load, so a superseded load never settles a waiter. */\n #ready = notConnected();\n #settle?: (error?: unknown) => void;\n\n /** Resolve once the latest load has settled, following any newer load that starts while waiting. */\n async whenReady(): Promise<void> {\n let ready: Promise<void>;\n do {\n ready = this.#ready;\n await ready;\n } while (ready !== this.#ready);\n }\n /** Start waiting for a load. A superseded load resolves its promise so waiters move on to the new one. */\n pending(): void {\n let settle!: (error?: unknown) => void;\n const next = new Promise<void>((resolve, reject) => {\n settle = (error) => (error === undefined ? resolve() : reject(error));\n });\n this.#settle?.();\n this.#settle = settle;\n this.#ready = settled(next);\n }\n /** Settle the current load: resolve, or reject with `error`. Without a pending load, mark the viewer ready. */\n finish(error?: unknown): void {\n if (!this.#settle) this.pending();\n this.#settle!(error);\n this.#settle = undefined;\n }\n disconnect(): void {\n this.#settle?.(new Error('The viewer was disconnected'));\n this.#settle = undefined;\n this.#ready = notConnected();\n }\n}\n\n/** Mark a stored promise handled, so an unawaited rejection is not reported; awaiting it still rejects. */\nfunction settled(promise: Promise<void>): Promise<void> {\n promise.catch(() => {});\n return promise;\n}\n", "/**\n * Styles for {@link ImageViewer}, rendered inline by the component so it needs no CSS loader. Re-theme it by setting\n * `--hdrify-viewer-*` custom properties on the viewer or an ancestor; they inherit into the element's shadow root.\n */\nexport const IMAGE_VIEWER_CSS = `\n.hdrify-viewer {\n --hv-bg: var(--hdrify-viewer-background, #000);\n --hv-fg: var(--hdrify-viewer-foreground, #e5e7eb);\n --hv-muted: var(--hdrify-viewer-muted-foreground, #a3adba);\n --hv-popover: var(--hdrify-viewer-popover, rgb(17 24 32 / 92%));\n --hv-border: var(--hdrify-viewer-border, #49515e);\n --hv-input: var(--hdrify-viewer-input, #20252e);\n --hv-primary: var(--hdrify-viewer-primary, #7dd3fc);\n --hv-ring: var(--hdrify-viewer-ring, #7dd3fc);\n --hv-error: var(--hdrify-viewer-destructive, #f87171);\n --hv-radius: var(--hdrify-viewer-radius, 6px);\n position: relative;\n overflow: hidden;\n box-sizing: border-box;\n min-width: 0;\n background: var(--hv-bg);\n color: var(--hv-fg);\n font: var(--hdrify-viewer-font-size, var(--vscode-font-size, 13px)) / 1.4\n var(--hdrify-viewer-font-family, var(--vscode-font-family, system-ui, sans-serif));\n}\n.hdrify-viewer *, .hdrify-viewer *::before, .hdrify-viewer *::after { box-sizing: inherit; }\n.hdrify-viewer :is(button, input, select) { font: inherit; color: inherit; }\n.hdrify-viewer :is(button, input, select):focus-visible { outline: 2px solid var(--hv-ring); outline-offset: 1px; }\n.hdrify-viewer [hidden] { display: none !important; }\n.hdrify-viewer-viewport { position: absolute; inset: 0; display: flex; overflow: auto; }\n.hdrify-viewer-canvas { display: block; flex: none; margin: auto; }\n.hdrify-viewer[data-fit='contain'] .hdrify-viewer-canvas { width: 100%; height: 100%; object-fit: contain; }\n.hdrify-viewer-progress { position: absolute; inset: 0; z-index: 2; overflow: hidden; pointer-events: none; }\n.hdrify-viewer-progress-fill {\n position: absolute; top: 0; left: 0; width: 100%; height: var(--progress-bar-height, 5px);\n background-color: var(--progress-bar-color, rgb(255 255 255 / 50%));\n transform-origin: top left; transition: transform 0.09s;\n}\n.hdrify-viewer-progress-fill.complete { opacity: 0; transition: transform 0.09s, opacity 0.3s 1s; }\n@media (prefers-reduced-motion: reduce) { .hdrify-viewer-progress-fill { transition: none; } }\n.hdrify-viewer-error {\n position: absolute; top: 12px; left: 12px; right: 12px; max-width: 460px; margin: 0; padding: 10px 14px;\n border: 1px solid color-mix(in srgb, var(--hv-error) 40%, transparent); border-radius: var(--hv-radius);\n background: rgb(24 18 22 / 90%); color: var(--hv-error); overflow-wrap: anywhere;\n}\n.hdrify-viewer-surface {\n border: 1px solid var(--hv-border); border-radius: var(--hv-radius); background: var(--hv-popover);\n box-shadow: 0 6px 20px rgb(0 0 0 / 30%); backdrop-filter: blur(12px);\n}\n.hdrify-viewer-exposure {\n position: absolute; left: 12px; top: 50%; transform: translateY(-50%); height: min(260px, calc(100% - 24px));\n width: 52px; padding: 8px 0; display: flex; flex-direction: column; align-items: center; gap: 6px;\n}\n.hdrify-viewer-exposure output { font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }\n.hdrify-viewer-exposure input {\n flex: 1; min-height: 0; width: 20px; margin: 0; writing-mode: vertical-lr; direction: rtl;\n accent-color: var(--hv-primary); cursor: pointer;\n}\n.hdrify-viewer-toggle {\n position: absolute; right: 12px; bottom: 12px; display: grid; place-items: center; width: 36px; height: 36px;\n padding: 0; cursor: pointer;\n}\n.hdrify-viewer-panel {\n position: absolute; right: 12px; bottom: 56px; width: min(280px, calc(100% - 24px));\n max-height: calc(100% - 68px); overflow: auto; padding: 12px 14px;\n}\n.hdrify-viewer-panel header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }\n.hdrify-viewer-panel header button {\n width: 26px; height: 26px; padding: 0; border: 0; border-radius: var(--hv-radius); background: transparent;\n font-size: 18px; line-height: 1; cursor: pointer;\n}\n.hdrify-viewer-panel label { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 10px 0; }\n.hdrify-viewer-panel :is(select, input) {\n width: 128px; padding: 3px 6px; border: 1px solid var(--hv-border); border-radius: var(--hv-radius);\n background: var(--hv-input);\n}\n.hdrify-viewer-panel dl {\n display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; margin: 12px 0 0; padding-top: 10px;\n border-top: 1px solid var(--hv-border); color: var(--hv-muted); font-size: 12px;\n}\n.hdrify-viewer-panel dt { color: var(--hv-fg); }\n.hdrify-viewer-panel dd { margin: 0; overflow-wrap: anywhere; }\n`;\n"],
|
|
5
|
+
"mappings": "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CF,IAAK,IACHD,GACErE,EACA5G,EACA4F,EACAsF,CACF,EACA,MACF,IAAK,IACH,MACF,IAAK,IACHE,EAAyBpL,EAAa,UACtCqL,EAAKrL,EAAa,UACTA,EAAa,gBAAtB,MACKwG,GACU6E,IAAT,MACSA,EAAG,gBAAZ,MACAhH,GAAkCgH,CAAE,EACtCD,EAAuB,YAAc,EACjCH,GACErE,EACA5G,EACA4F,EACAsF,CACF,EACAK,GACE3E,EACA5G,CACF,IACHwG,GACU6E,IAAT,MACSA,EAAG,gBAAZ,MACAhH,GAAkCrE,CAAY,EAChDoL,EAAuB,YAAc,EACjCH,GACErE,EACA5G,EACA4F,EACAsF,CACF,GACEE,EAAuB,aAAe,EACxCI,GACE5E,EACA5G,EACA4F,EACAsF,GACOlL,EAAa,aAAe,SAAnC,GAA6C,EAC/C,IACRD,EAAQ,MAAQ+K,GAAmCO,EAAIrL,CAAY,EACnE,MACF,IAAK,IACHiL,GACErE,EACA5G,EACA4F,EACAsF,CACF,EACAnL,EAAQ,MACNiL,GAA8BhL,EAAa,UAAWA,CAAY,EACpE,MACF,IAAK,IACHwG,IACIzG,EAAQC,EAAa,UACdD,IAAT,OACGwD,GAAqCxD,EAAM,MAAO,EAAE,EACrDwD,GAAqCvD,EAAa,MAAO,EAAE,IAC/DiL,GACErE,EACA5G,EACA4F,EACAsF,CACF,EACA,MACF,QACED,GACErE,EACA5G,EACA4F,EACAsF,CACF,CACJ,CACF,CACA,SAASM,GACPb,EACArD,EACAmE,EACAC,EACAd,EACA,CAIA,IAHAA,EACEA,KACQtD,EAAY,aAAe,SAAlC,GAA4C,IAC1CA,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAC5D,IAAIV,EAAe+D,EACjB3K,EAAesH,EACf1B,EAAiB6F,EACjBP,EAAuBQ,EACvB3L,EAAQC,EAAa,MACvB,OAAQA,EAAa,IAAK,CACxB,IAAK,GACL,IAAK,IACL,IAAK,IACHwL,GACE5E,EACA5G,EACA4F,EACAsF,EACAN,CACF,EACA9K,GAA0B,EAAGE,CAAY,EACzC,MACF,IAAK,IACH,MACF,IAAK,IACH,IAAItlB,EAAWslB,EAAa,UACnBA,EAAa,gBAAtB,KACItlB,EAAS,YAAc,EACrB8wB,GACE5E,EACA5G,EACA4F,EACAsF,EACAN,CACF,EACAW,GACE3E,EACA5G,CACF,GACAtlB,EAAS,aAAe,EAC1B8wB,GACE5E,EACA5G,EACA4F,EACAsF,EACAN,CACF,GACJA,GACE7K,EAAQ,MACR+K,GACE9K,EAAa,UACbA,CACF,EACF,MACF,IAAK,IACHwL,GACE5E,EACA5G,EACA4F,EACAsF,EACAN,CACF,EACAA,GACE7K,EAAQ,MACRiL,GAA8BhL,EAAa,UAAWA,CAAY,EACpE,MACF,QACEwL,GACE5E,EACA5G,EACA4F,EACAsF,EACAN,CACF,CACJ,CACAtD,EAAcA,EAAY,OAC5B,CACF,CACA,SAASiE,GACPZ,EACArD,EACA,CACA,GAAIA,EAAY,aAAe,MAC7B,IAAKA,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAC5D,IAAIV,EAAe+D,EACjB3K,EAAesH,EACfvH,EAAQC,EAAa,MACvB,OAAQA,EAAa,IAAK,CACxB,IAAK,IACHuL,GAAwC3E,EAAc5G,CAAY,EAClED,EAAQ,MACN+K,GACE9K,EAAa,UACbA,CACF,EACF,MACF,IAAK,IACHuL,GAAwC3E,EAAc5G,CAAY,EAClED,EAAQ,MACNiL,GAA8BhL,EAAa,UAAWA,CAAY,EACpE,MACF,QACEuL,GAAwC3E,EAAc5G,CAAY,CACtE,CACAsH,EAAcA,EAAY,OAC5B,CACJ,CACA,IAAIqE,GAAsB,KAC1B,SAASC,GACPtE,EACA1B,EACAiG,EACA,CACA,GAAIvE,EAAY,aAAeqE,GAC7B,IAAKrE,EAAcA,EAAY,MAAgBA,IAAT,MACpCwE,GACExE,EACA1B,EACAiG,CACF,EACGvE,EAAcA,EAAY,OACnC,CACA,SAASwE,GACPluC,EACAgoC,EACAiG,EACA,CACA,OAAQjuC,EAAM,IAAK,CACjB,IAAK,IACHguC,GACEhuC,EACAgoC,EACAiG,CACF,EACAjuC,EAAM,MAAQ+tC,KACF/tC,EAAM,gBAAf,KACGmuC,GACEF,EACA3C,GACAtrC,EA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,IAAK,UACL,IAAK,QACK1R,GAAR,MACe,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACA,MAAMA,CAAK,EACP6+B,EAAW,gBAAgBntB,CAAG,EAC9BmtB,EAAW,aAAantB,EAAK1R,CAAK,EACtC,MACF,IAAK,UACH8c,GAA0B,eAAgB+hB,CAAU,EACpD/hB,GAA0B,SAAU+hB,CAAU,EAC9C50B,GAAqB40B,EAAY,UAAW7+B,CAAK,EACjD,MACF,IAAK,eACHoK,GACEy0B,EACA,+BACA,gBACA7+B,CACF,EACA,MACF,IAAK,eACHoK,GACEy0B,EACA,+BACA,gBACA7+B,CACF,EACA,MACF,IAAK,YACHoK,GACEy0B,EACA,+BACA,aACA7+B,CACF,EACA,MACF,IAAK,YACHoK,GACEy0B,EACA,+BACA,aACA7+B,CACF,EACA,MACF,IAAK,aACHoK,GACEy0B,EACA,+BACA,cACA7+B,CACF,EACA,MACF,IAAK,YACHoK,GACEy0B,EACA,+BACA,aACA7+B,CACF,EACA,MACF,IAAK,UACHoK,GACEy0B,EACA,uCACA,WACA7+B,CACF,EACA,MACF,IAAK,UACHoK,GACEy0B,EACA,uCACA,WACA7+B,CACF,EACA,MACF,IAAK,WACHoK,GACEy0B,EACA,uCACA,YACA7+B,CACF,EACA,MACF,IAAK,KACHiK,GAAqB40B,EAAY,KAAM7+B,CAAK,EAC5C,MACF,IAAK,YACL,IAAK,cACH,OACF,QACE,GACE,EAAE,EAAI0R,EAAI,SACDA,EAAI,CAAC,IAAb,KAA0BA,EAAI,CAAC,IAAb,KACVA,EAAI,CAAC,IAAb,KAA0BA,EAAI,CAAC,IAAb,IAElBA,EAAMtE,GAAQ,IAAIsE,CAAG,GAAKA,EACzBzH,GAAqB40B,EAAYntB,EAAK1R,CAAK,MAC1C,OACT,CACA8J,GAAgC,EAClC,CACA,SAAS2rC,GAAuB5W,EAAYjjC,EAAK8V,EAAK1R,EAAO+N,EAAOskB,EAAW,CAC7E,OAAQ3gB,EAAK,CACX,IAAK,QACH7E,GAAkBgyB,EAAY7+B,EAAOqyB,CAAS,EAC9C,OACF,IAAK,0BACH,GAAYryB,GAA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,EAAe,UAAU,cACzB,KACNn7C,EAAa,IACf,MAAOm7C,IAAmBn7C,IAAeA,EAAa,KACxD,CACF,CACA,OAAA86C,GAAoB96C,EACb,IACT,CACA,SAAShB,GAAiBuL,EAAc,CACtC,OAAQA,EAAc,CACpB,IAAK,eACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,cACL,IAAK,OACL,IAAK,MACL,IAAK,WACL,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,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,kBACL,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,SACL,IAAK,YACL,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,eACH,MAAO,GACT,IAAK,UACH,OAAQ7P,GAAwB,EAAG,CACjC,KAAKC,GACH,MAAO,GACT,KAAKC,GACH,MAAO,GACT,KAAKC,GACL,KAAKC,GACH,MAAO,IACT,KAAKC,GACH,MAAO,WACT,QACE,MAAO,GACX,CACF,QACE,MAAO,GACX,CACF,CACA,IAAIqgD,GAA4B,GAC9BC,GAAc,KACdC,GAAa,KACbC,GAAc,KACdC,GAAiB,IAAI,IACrBC,GAAwB,IAAI,IAC5BC,GAAiC,CAAC,EAClCT,GACE,sPAAsP,MACpP,GACF,EACJ,SAASF,GAAuBxwC,EAActF,EAAa,CACzD,OAAQsF,EAAc,CACpB,IAAK,UACL,IAAK,WACH8wC,GAAc,KACd,MACF,IAAK,YACL,IAAK,YACHC,GAAa,KACb,MACF,IAAK,YACL,IAAK,WACHC,GAAc,KACd,MACF,IAAK,cACL,IAAK,aACHC,GAAe,OAAOv2C,EAAY,SAAS,EAC3C,MACF,IAAK,oBACL,IAAK,qBACHw2C,GAAsB,OAAOx2C,EAAY,SAAS,CACtD,CACF,CACA,SAAS02C,GACPC,EACAhB,EACArwC,EACAy/B,EACAa,EACA5lC,EACA,CACA,OACW22C,IAAT,MACAA,EAAoB,cAAgB32C,GAGjC22C,EAAsB,CACrB,UAAWhB,EACX,aAAcrwC,EACd,iBAAkBy/B,EAClB,YAAa/kC,EACb,iBAAkB,CAAC4lC,CAAe,CACpC,EACS+P,IAAT,OACIA,EAAYx6C,GAAoBw6C,CAAS,EAClCA,IAAT,MAAsBF,GAA2BE,CAAS,GAC5DgB,IAEJA,EAAoB,kBAAoB5R,EACxC4Q,EAAYgB,EAAoB,iBACvB/Q,IAAT,MACS+P,EAAU,QAAQ/P,CAAe,IAAxC,IACA+P,EAAU,KAAK/P,CAAe,EACzB+Q,EACT,CACA,SAASZ,GACPJ,EACArwC,EACAy/B,EACAa,EACA5lC,EACA,CACA,OAAQsF,EAAc,CACpB,IAAK,UACH,OACG8wC,GAAcM,GACbN,GACAT,EACArwC,EACAy/B,EACAa,EACA5lC,CACF,EACA,GAEJ,IAAK,YACH,OACGq2C,GAAaK,GACZL,GACAV,EACArwC,EACAy/B,EACAa,EACA5lC,CACF,EACA,GAEJ,IAAK,YACH,OACGs2C,GAAcI,GACbJ,GACAX,EACArwC,EACAy/B,EACAa,EACA5lC,CACF,EACA,GAEJ,IAAK,cACH,IAAI42C,EAAY52C,EAAY,UAC5B,OAAAu2C,GAAe,IACbK,EACAF,GACEH,GAAe,IAAIK,CAAS,GAAK,KACjCjB,EACArwC,EACAy/B,EACAa,EACA5lC,CACF,CACF,EACO,GACT,IAAK,oBACH,OACG42C,EAAY52C,EAAY,UACzBw2C,GAAs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",
|
|
6
|
+
"names": ["require_react_production", "__commonJSMin", "exports", "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", "REACT_VIEW_TRANSITION_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", "nextNamePrefix", "i", "mapChildren", "func", "result", "count", "child", "lazyInitializer", "payload", "ctor", "moduleObject", "reportGlobalError", "event", "startTransition", "scope", "prevTransition", "currentTransition", "returnValue", "onStartTransitionFinish", "addTransitionType", "transition", "transitionTypes", "Children", "forEachFunc", "forEachContext", "n", "size", "fn", "config", "propName", "childArray", "defaultValue", "childrenLength", "render", "compare", "usable", "action", "initialState", "permalink", "deps", "Context", "value", "initialValue", "create", "ref", "passthrough", "reducer", "initialArg", "init", "subscribe", "getSnapshot", "getServerSnapshot", "require_react", "__commonJSMin", "exports", "module", "require_scheduler_production", "__commonJSMin", "exports", "push", "heap", "node", "index", "a", "parentIndex", "parent", "compare", "peek", "pop", "first", "last", "length", "halfLength", "leftIndex", "left", "rightIndex", "right", "b", "diff", "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", "callback", "continuationCallback", "channel", "port", "ms", "task", "fps", "eventHandler", "priorityLevel", "options", "timeout", "parentPriorityLevel", "require_scheduler", "__commonJSMin", "exports", "module", "require_react_dom_production", "__commonJSMin", "exports", "React", "formatProdErrorMessage", "code", "url", "i", "noop", "Internals", "REACT_PORTAL_TYPE", "REACT_RECOVERABLE_TYPE", "REACT_OPTIMISTIC_KEY", "createPortal$1", "children", "containerInfo", "implementation", "key", "ReactSharedInternals", "getCrossOriginStringAs", "as", "input", "reason", "container", "fn", "previousTransition", "previousUpdatePriority", "href", "options", "crossOrigin", "integrity", "fetchPriority", "form", "a", "action", "initialState", "permalink", "require_react_dom", "__commonJSMin", "exports", "module", "checkDCE", "err", "require_react_dom_client_production", "__commonJSMin", "exports", "Scheduler", "React", "ReactDOM", "formatProdErrorMessage", "code", "url", "i", "isValidContainer", "node", "getNearestMountedFiber", "fiber", "nextNode", "getSuspenseInstanceFromFiber", "suspenseState", "getActivityInstanceFromFiber", "activityState", "assertIsMounted", "findCurrentFiberUsingSlowPath", "alternate", "a", "b", "parentA", "parentB", "didFindChild", "child$0", "findCurrentHostFiberImpl", "tag", "traverseVisibleInstancesAndTextInstances", "child", "searchWithinHosts", "fn", "c", "getFragmentParentInstanceOrContainerFiber", "fiberIsPortaledIntoHost", "foundPortalParent", "getFragmentInstanceOrTextInstanceSiblings", "result", "parentHostFiber", "findFragmentInstanceOrTextInstanceSiblings", "self", "state", "getInstanceFromHostFiber", "searchTarget", "searchBoundary", "isFiberPrecedingCheck", "target", "boundary", "isFiberFollowingCheck", "getParentForFragmentAncestors", "inst", "getLowestCommonAncestor", "instA", "instB", "getParent", "depthA", "tempA", "tempB", "assign", "REACT_LEGACY_ELEMENT_TYPE", "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_SUSPENSE_LIST_TYPE", "REACT_MEMO_TYPE", "REACT_LAZY_TYPE", "REACT_ACTIVITY_TYPE", "REACT_LEGACY_HIDDEN_TYPE", "REACT_MEMO_CACHE_SENTINEL", "REACT_VIEW_TRANSITION_TYPE", "REACT_RECOVERABLE_TYPE", "MAYBE_ITERATOR_SYMBOL", "getIteratorFn", "maybeIterable", "REACT_CLIENT_REFERENCE", "getComponentNameFromType", "type", "innerType", "isArrayImpl", "ReactSharedInternals", "ReactDOMSharedInternals", "sharedNotPendingObject", "valueStack", "index", "createCursor", "defaultValue", "pop", "cursor", "push", "value", "contextStackCursor", "contextFiberStackCursor", "rootInstanceStackCursor", "hostTransitionProviderCursor", "pushHostContainer", "nextRootInstance", "getOwnHostContext", "getChildHostContextProd", "popHostContainer", "pushHostContext", "stateHook", "HostTransitionContext", "JSCompiler_inline_result", "popHostContext", "prefix", "suffix", "describeBuiltInComponentFrame", "name", "x", "match", "reentry", "describeNativeComponentFrame", "construct", "previousPrepareStackTrace", "RunInRootFrame", "Fake", "control", "x$1", "prevProps", "x$2", "sample", "namePropDescriptor", "_RunInRootFrame$Deter", "sampleStack", "controlStack", "sampleLines", "controlLines", "frame", "describeFiber", "childFiber", "getStackByFiberInDevAndProd", "workInProgress", "info", "previous", "hasOwnProperty", "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", "getEntangledLanes", "allEntangledLanes", "index$4", "lane", "computeExpirationTime", "currentTime", "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", "internalLoadPendingKey", "detachDeletedInstance", "getClosestInstanceFromNode", "targetNode", "targetInst", "parentNode", "getParentHydrationBoundary", "getInstanceFromNode", "getNodeFromInstance", "getResourcesFromRoot", "resources", "markNodeAsHoistable", "clearPendingLoadOnNode", "allNativeEvents", "registrationNameDependencies", "registerTwoPhaseEvent", "registrationName", "dependencies", "registerDirectEvent", "VALID_ATTRIBUTE_NAME_REGEX", "illegalAttributeNameCache", "validatedAttributeNameCache", "isAttributeNameSafe", "attributeName", "viewTransitionMutationContext", "pushMutationContext", "prev", "setValueForAttribute", "prefix$10", "setValueForKnownAttribute", "setValueForNamespacedAttribute", "namespace", "getToStringValue", "isCheckable", "elem", "trackValueOnNode", "valueField", "currentValue", "descriptor", "get", "set", "track", "updateValueIfChanged", "tracker", "lastValue", "escapeSelectorAttributeValueInsideDoubleQuotesRegex", "escapeSelectorAttributeValueInsideDoubleQuotes", "ch", "updateInput", "element", "lastDefaultValue", "checked", "defaultChecked", "setDefaultValue", "initInput", "isHydrating", "updateOptions", "multiple", "propValue", "setDefaultSelected", "updateTextarea", "initTextarea", "children", "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", "internalInstance", "props", "otherNode", "otherProps", "isInsideEventHandler", "batchedUpdates$1", "flushSyncWork$1", "getListener", "stateNode", "canUseDOM", "passiveBrowserEventsSupported", "options", "startText", "fallbackText", "getData", "start", "startValue", "startLength", "end", "endValue", "endLength", "minEnd", "getEventCharCode", "keyCode", "functionThatReturnsTrue", "functionThatReturnsFalse", "createSyntheticEvent", "Interface", "SyntheticBaseEvent", "reactName", "reactEventType", "nativeEventTarget", "propName", "event", "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", "key", "SyntheticKeyboardEvent", "PointerEventInterface", "SyntheticPointerEvent", "SubmitEventInterface", "SyntheticSubmitEvent", "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", "isSupported$jscomp$inline_474", "element$jscomp$inline_475", "JSCompiler_inline_result$jscomp$318", "stopWatchingForValueChange", "handlePropertyChange", "handleEventsForInputEventPolyfill", "getTargetInstForInputEventPolyfill", "getTargetInstForClickEvent", "getTargetInstForInputOrChangeEvent", "is", "y", "objectIs", "shallowEqual", "objA", "objB", "keysA", "keysB", "currentKey", "getActiveElement", "doc", "getLeafNode", "getNodeForCharacterOffset", "offset", "nodeEnd", "containsNode", "outerNode", "innerNode", "getActiveElementDeep", "containerInfo", "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", "globalClientIdCounter$1", "getViewTransitionName", "instance", "pendingEffectsRoot", "globalClientId", "getClassNameByType", "classByType", "className", "activeTypes", "pendingTransitionTypes", "getViewTransitionClassName", "defaultClass", "eventClass", "reportGlobalError", "error", "concurrentQueues", "concurrentQueuesIndex", "concurrentlyUpdatedLanes", "finishQueueingConcurrentUpdates", "endIndex", "queue", "pending", "markUpdateLaneFromFiberToRoot", "enqueueUpdate$1", "enqueueConcurrentHookUpdate", "getRootForUpdatedFiber", "enqueueConcurrentRenderForLane", "sourceFiber", "isHidden", "parent", "nestedUpdateCount", "rootWithNestedUpdates", "emptyContextObject", "FiberNode", "pendingProps", "mode", "createFiberImplClass", "shouldConstruct", "Component", "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", "length", "numberOfOverflowBits", "pushMaterializedTreeId", "popTreeContext", "restoreSuspendedTreeContext", "suspendedContext", "hydrationParentFiber", "nextHydratableInstance", "hydrationErrors", "rootOrSingletonContext", "HydrationMismatchException", "throwOnHydrationMismatch", "queueHydrationError", "prepareToHydrateHostInstance", "listenToNonDelegatedEvent", "mediaEventTypes", "checkForUnmatchedText", "popToNextHostParent", "popHydrationState", "JSCompiler_temp", "shouldSetTextContent", "getNextHydratableInstanceAfterHydrationBoundary", "isSingletonScope", "previousHydratableOnEnteringScopedSingleton", "getNextHydratable", "resetHydrationState", "upgradeHydrationErrorsToRecoverable", "queuedErrors", "workInProgressRootRecoverableErrors", "valueCursor", "currentlyRenderingFiber$1", "lastContextDependency", "pushProvider", "providerFiber", "context", "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", "queueTransitionTypes", "transitionTypes", "queued", "transitionType", "entangledTransitionTypes", "claimQueuedTransitionTypes", "claimed", "currentEntangledListeners", "currentEntangledPendingCount", "currentEntangledLane", "currentEntangledActionThenable", "entangleAsyncAction", "transition", "thenable", "entangledListeners", "requestTransitionLane", "resolve", "pingEngtangledActionScope", "chainThenableValue", "thenableWithOverride", "prevOnStartTransitionFinish", "returnValue", "globalMostRecentTransitionTime", "root$28", "firstScheduledRoot", "root$29", "resumedCache", "peekCacheFromPool", "cacheResumedFromPreviousRender", "workInProgressRoot", "pushTransition", "offscreenWorkInProgress", "prevCachePool", "getSuspendedCache", "cacheFromPool", "SuspenseException", "SuspenseyCommitException", "SuspenseActionException", "noopSuspenseyCommitThenable", "isThenableResolved", "trackUsedThenable", "thenableState", "checkIfUseWrappedInAsyncCatch", "fulfilledValue", "fulfilledThenable", "rejectedThenable", "suspendedThenable", "resolveLazy", "lazyType", "init", "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", "callback", "commitCallbacks", "callbacks", "currentTreeHiddenStackCursor", "prevEntangledRenderLanesCursor", "pushHiddenContext", "entangledRenderLanes", "reuseHiddenContextOnStack", "popHiddenContext", "suspenseHandlerStackCursor", "shellBoundary", "pushPrimaryTreeSuspenseHandler", "handler", "suspenseStackCursor", "pushDehydratedActivitySuspenseHandler", "pushOffscreenSuspenseHandler", "reuseSuspenseHandlerOnStack", "popSuspenseHandler", "pushSuspenseListContext", "newContext", "popSuspenseListContext", "findFirstSuspended", "row", "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", "usable", "useMemoCache", "size", "memoCache", "array", "basicStateReducer", "action", "updateReducer", "reducer", "updateReducerImpl", "baseQueue", "baseFirst", "newBaseQueueFirst", "newBaseQueueLast", "didReadFromEntangledAsyncAction$64", "revertLane", "rerenderReducer", "dispatch", "lastRenderPhaseUpdate", "updateSyncExternalStore", "subscribe", "getSnapshot", "getServerSnapshot", "isHydrating$jscomp$0", "snapshotChanged", "updateEffect", "subscribeToStore", "pushSimpleEffect", "updateStoreInstance", "pushStoreConsistencyCheck", "renderedSnapshot", "nextSnapshot", "checkIfSnapshotChanged", "forceStoreRerender", "latestGetSnapshot", "scheduleUpdateOnFiber", "mountStateImpl", "initialState", "initialStateInitializer", "updateOptimisticImpl", "passthrough", "dispatchActionState", "actionQueue", "setPendingState", "setState", "payload", "isRenderPhaseUpdate", "actionNode", "runActionStateAction", "prevState", "prevTransition", "currentTransition", "onStartTransitionFinish", "handleActionReturnValue", "onActionError", "error$70", "nextState", "onActionSuccess", "notifyActionListeners", "last", "actionStateReducer", "oldState", "mountActionState", "initialStateProp", "ssrFormState", "JSCompiler_inline_result$jscomp$0", "inRootOrSingleton", "dispatchSetState", "dispatchOptimisticSetState", "updateActionState", "updateActionStateImpl", "currentStateHook", "actionStateActionEffect", "rerenderActionState", "create", "deps", "updateRef", "mountEffectImpl", "fiberFlags", "hookFlags", "updateEffectImpl", "mountEffect", "useEffectEventImpl", "componentUpdateQueue", "events", "updateEvent", "ref", "updateInsertionEffect", "updateLayoutEffect", "imperativeHandleEffect", "refCleanup", "updateImperativeHandle", "mountDebugValue", "updateCallback", "updateMemo", "nextCreate", "mountDeferredValueImpl", "initialValue", "requestDeferredLane", "updateDeferredValueImpl", "prevValue", "startTransition", "pendingState", "finishedState", "thenableForFinishedState", "dispatchSetStateInternal", "requestUpdateLane", "noop", "startHostTransition", "formFiber", "formData", "ensureFormComponentIsStateful", "requestFormReset$1", "existingStateHook", "initialResetState", "useHostTransitionStatus", "updateId", "updateRefresh", "refreshCache", "provider", "root$73", "dispatchReducerAction", "enqueueRenderPhaseUpdate", "entangleTransitionUpdate", "currentState", "eagerState", "throwIfDuringRender", "initialArg", "identifierPrefix", "idWithLeadingBit", "booleanOrThenable", "applyDerivedStateFromProps", "ctor", "getDerivedStateFromProps", "nextProps", "classComponentUpdater", "checkShouldComponentUpdate", "oldProps", "newProps", "nextContext", "callComponentWillReceiveProps", "resolveClassComponentProps", "baseProps", "propName$77", "defaultOnUncaughtError", "defaultOnCaughtError", "defaultOnRecoverableError", "logUncaughtError", "errorInfo", "onUncaughtError", "e$78", "logCaughtError", "onCaughtError", "e$79", "createRootErrorUpdate", "createClassErrorUpdate", "initializeClassErrorUpdate", "getDerivedStateFromError", "legacyErrorBoundariesThatAlreadyFailed", "stack", "throwException", "rootRenderLanes", "renderDidSuspendDelayIfPossible", "workInProgressRootExitStatus", "attachPingListener", "wrapperError", "workInProgressRootConcurrentErrors", "SelectiveHydrationException", "reconcileChildren", "nextChildren", "updateForwardRef", "propsWithoutRef", "bailoutOnAlreadyFinishedWork", "updateMemoComponent", "updateSimpleMemoComponent", "checkScheduledUpdateOrContext", "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", "mountSuspensePrimaryChildren", "dehydrated$96", "updateDehydratedSuspenseComponent", "primaryChildren", "offscreenProps", "retrySuspenseComponentWithoutHydrating", "didPrimaryChildrenDefer", "suspenseInstance", "digest", "scheduleSuspenseWorkOnFiber", "findLastContentRow", "lastContentRow", "currentRow", "initSuspenseListRenderState", "isBackwards", "tail", "tailMode", "renderState", "reverseChildren", "nextRow", "updateSuspenseListComponent", "revealOrder", "suspenseContext", "shouldForceFallback", "updateContextProvider", "attemptEarlyBailoutIfNoScheduledUpdate", "state$108", "primaryChildLanes", "beginWork", "$$typeof", "getResource", "createHoistableInstance", "resolveSingletonInstance", "canHydrateInstance", "canHydrateTextInstance", "markUpdate", "preloadInstanceAndSuspendIfNeeded", "maySuspendCommit", "shouldRemainOnPreviousScreen", "preloadResourceAndSuspendIfNeeded", "resource", "preloadResource", "scheduleRetryEffect", "retryQueue", "workInProgressSuspendedRetryLanes", "cutOffTailIfNeeded", "hasRenderedATailFallback", "tailNode", "lastTailNode", "bubbleProperties", "completedWork", "didBailout", "newChildLanes", "subtreeFlags", "child$113", "completeWork", "nextResource", "ownerDocument", "getOwnerDocumentFromRootContainer", "setInitialProperties", "listenToAllSupportedEvents", "workInProgressRootRenderTargetTime", "unwindWork", "unwindInterruptedWork", "interruptedWork", "commitHookEffectListMount", "flags", "finishedWork", "lastEffect", "firstEffect", "captureCommitPhaseError", "commitHookEffectListUnmount", "nearestMountedAncestor$jscomp$0", "destroy", "nearestMountedAncestor", "destroy_", "commitClassCallbacks", "safelyCallComponentWillUnmount", "safelyAttachRef", "instanceToUse", "createViewTransitionInstance", "fragmentInstance", "FragmentInstance", "addFragmentHandleToFiber", "safelyDetachRef", "error$148", "commitNewChildToFragmentInstances", "parentFragmentInstances", "commitNewChildToFragmentInstance", "commitFragmentInstanceInsertionEffects", "isFragmentInstanceParent", "isFragmentInstanceHostBoundary", "commitFragmentInstanceDeletionEffects", "deleteChildFromFragmentInstance", "commitHostMount", "commitHostUpdate", "domElement", "updateProperties", "isHostParent", "getHostSibling", "insertOrAppendPlacementNodeIntoContainer", "before", "insertOrAppendPlacementNode", "commitHostSingletonAcquisition", "singleton", "attributes", "shouldStartViewTransition", "appearingViewTransitions", "trackEnterViewTransitions", "placement", "viewTransitionCancelableChildren", "pushViewTransitionCancelableScope", "prevChildren", "viewTransitionHostInstanceIdx", "applyViewTransitionToHostInstances", "collectMeasurements", "stopAtNestedViewTransitions", "applyViewTransitionToHostInstancesRecursive", "inViewport", "measurement", "measureInstance", "applyViewTransitionName", "restoreViewTransitionOnHostInstances", "restoreViewTransitionName", "commitAppearingPairViewTransitions", "commitEnterViewTransitions", "gesture", "scheduleViewTransitionEvent", "commitDeletedPairViewTransitions", "deletion", "pairs", "pair", "commitExitViewTransitions", "commitNestedViewTransitions", "changedParent", "restorePairedViewTransitions", "restoreEnterOrExitViewTransitions", "restoreNestedViewTransitions", "measureViewTransitionHostInstancesRecursive", "parentViewTransition", "newName", "oldName", "previousMeasurements", "previousMeasurement", "nextMeasurement", "newRect", "measureNestedViewTransitions", "measureClonedInstance", "offscreenSubtreeIsHidden", "offscreenSubtreeWasHidden", "offscreenDirectParentIsHidden", "needsFormReset", "PossiblyWeakSet", "nextEffect", "viewTransitionContextChanged", "inUpdateViewTransition", "rootViewTransitionAffected", "rootViewTransitionNameCanceled", "commitBeforeMutationEffects", "committedLanes", "eventsEnabled", "_enabled", "selection", "anchorOffset", "focusNode", "indexWithinAnchor", "indexWithinFocus", "next", "selectionInformation", "commitBeforeMutationEffects_complete", "isViewTransitionEligible$jscomp$0", "isViewTransitionEligible", "resolvedPrevProps", "clearContainerSparingly", "commitLayoutEffectOnFiber", "finishedRoot", "recursivelyTraverseLayoutEffects", "error$146", "commitActivityHydrationCallbacks", "commitSuspenseHydrationCallbacks", "retryDehydratedSuspenseBoundary", "registerSuspenseInstanceRetry", "newOffscreenSubtreeWasHidden", "recursivelyTraverseReappearLayoutEffects", "hideOrUnhideAllChildren", "parentFiber", "hideOrUnhideAllChildrenOnFiber", "display", "hideOrUnhideNearestPortals", "instance$jscomp$1", "hideOrUnhideDehydratedBoundary", "isHidden$jscomp$0", "detachFiberAfterEffects", "hostParent", "hostParentIsContainer", "recursivelyTraverseDeletionEffects", "commitDeletionEffectsOnFiber", "deletedFiber", "prevHostParent", "prevHostParentIsContainer", "releaseSingletonInstance", "clearHydrationBoundary", "retryIfBlockedOn", "getRetryCache", "retryCache", "attachSuspenseRetryListeners", "wakeables", "wakeable", "retry", "resolveRetryWakeable", "recursivelyTraverseMutationEffects", "root$jscomp$0", "commitMutationEffectsOnFiber", "currentHoistableRoot", "ii", "_eventPayloads$ii2", "commitReconciliationEffects", "getHydratableHoistableCache", "mountHoistable", "acquireResource", "tagCaches", "getHoistableRoot", "recursivelyResetForms", "globalMostRecentFallbackTime", "prevOffscreenSubtreeIsHidden", "prevOffscreenSubtreeWasHidden", "prevOffscreenDirectParentIsHidden$166", "recursivelyTraverseDisappearLayoutEffects", "hostParentFiber", "parent$jscomp$0", "parent$149", "before$150", "parent$151", "before$152", "recursivelyTraverseAfterMutationEffects", "commitAfterMutationEffectsOnFiber", "layoutEffectTraversalFlags$jscomp$0", "layoutEffectTraversalFlags", "finishedRoot$jscomp$0", "includeWorkInProgressEffects", "hiddenCallbacks", "commitOffscreenPassiveMountEffects", "previousCache", "commitCachePassiveMountEffect", "recursivelyTraversePassiveMountEffects", "committedTransitions", "commitPassiveMountOnFiber", "_finishedWork$memoize2", "id", "onPostCommit", "recursivelyTraverseAtomicPassiveEffects", "recursivelyTraverseReconnectPassiveEffects", "committedLanes$jscomp$0", "committedTransitions$jscomp$0", "suspenseyCommitFlag", "recursivelyAccumulateSuspenseyCommit", "suspendedState", "accumulateSuspenseyCommitOnFiber", "suspendResource", "suspendInstance", "previousHoistableRoot", "detachAlternateSiblings", "previousFiber", "recursivelyTraversePassiveUnmountEffects", "commitPassiveUnmountEffectsInsideOfDeletedTree_begin", "commitPassiveUnmountOnFiber", "recursivelyTraverseDisconnectPassiveEffects", "deletedSubtreeRoot", "sibling", "DefaultAsyncDispatcher", "resourceType", "cacheForType", "PossiblyWeakMap", "workInProgressSuspendedReason", "workInProgressThrownValue", "workInProgressRootDidSkipSuspendedSiblings", "workInProgressRootIsPrerendering", "workInProgressRootDidAttachPingListener", "workInProgressRootInterleavedUpdatedLanes", "workInProgressRootPingedLanes", "workInProgressRootDidIncludeRecursiveRenderUpdate", "workInProgressTransitions", "pendingEffectsStatus", "pendingFinishedWork", "pendingEffectsLanes", "pendingEffectsRemainingLanes", "pendingPassiveTransitions", "pendingRecoverableErrors", "pendingViewTransition", "pendingViewTransitionEvents", "prepareFreshStack", "markRootSuspended", "ensureRootIsScheduled", "performWorkOnRoot", "forceSync", "shouldTimeSlice", "exitStatus", "renderRootConcurrent", "renderRootSync", "renderWasConcurrent", "isRenderConsistentWithExternalStores", "wasRootDehydrated", "scheduleTimeout", "completeRootWhenReady", "recoverableErrors", "transitions", "didIncludeRenderPhaseUpdate", "didSkipSuspendedSiblings", "suspendedCommitReason", "completedRenderStartTime", "completedRenderEndTime", "onUnsuspend", "waitForCommitToBeReady", "completeRoot", "check", "didAttemptEntireTree", "index$6", "flushSyncWorkAcrossRoots_impl", "resetWorkInProgressStack", "timeoutHandle", "cancelTimeout", "handleThrow", "thrownValue", "pushDispatcher", "prevDispatcher", "pushAsyncDispatcher", "prevAsyncDispatcher", "shouldYieldForPrerendering", "prevExecutionContext", "unitOfWork", "reason", "throwAndUnwindWorkLoop", "workLoopSync", "thrownValue$184", "performUnitOfWork", "replaySuspendedUnitOfWork", "hostFiber", "completeUnitOfWork", "workLoopConcurrentByScheduler", "thrownValue$186", "suspendedReason", "unwindUnitOfWork", "skipSiblings", "flushPendingEffects", "commitRoot", "scheduleCallback$1", "flushPassiveEffects", "startViewTransition", "flushMutationEffects", "flushLayoutEffects", "flushAfterMutationEffects", "flushSpawnedWork", "reportViewTransitionError", "onRecoverableError", "rootMutationHasEffect", "curFocusedElem", "priorFocusedElem", "priorSelectionRange", "win", "start$jscomp$0", "end$jscomp$0", "startMarker", "endMarker", "range", "rootHasLayoutEffect", "committedViewTransition", "passiveSubtreeMask", "releaseRootPooledCache", "recoverableError", "renderPriority", "captureCommitPhaseErrorOnRoot", "rootFiber", "pingCache", "threadIDs", "pingSuspendedRoot", "retryTimedOutBoundary", "boundaryFiber", "retryLane", "priorityLevel", "lastScheduledRoot", "didScheduleMicrotask", "mightHavePendingSyncWork", "isFlushingWork", "currentEventTransitionLane", "scheduleImmediateRootScheduleTask", "syncTransitionLanes", "onlyLegacy", "didPerformSomeWork", "root$190", "performSyncWorkOnRoot", "processRootScheduleInImmediateTask", "processRootScheduleInMicrotask", "shouldAttemptEagerTransition", "scheduleTaskForRootDuringMicrotask", "index$5", "expirationTime", "performWorkOnRootViaSchedulerTask", "didTimeout", "originalCallbackNode", "workInProgressRootRenderLanes$jscomp$0", "scheduleMicrotask", "actionScopeLane", "coerceFormActionProp", "actionProp", "extractEvents$1", "maybeTargetInst", "submitter", "i$jscomp$inline_1667", "eventName$jscomp$inline_1668", "domEventName$jscomp$inline_1669", "capitalizedEvent$jscomp$inline_1670", "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", "container", "grandTag", "SyntheticEventCtor", "inCapturePhase", "accumulateTargetOnly", "reactEventName", "lastHostComponent", "_instance", "createDispatchListener", "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$204", "emptyProps", "lastProps", "lastProp", "propKey$221", "propKey$237", "propKey$242", "propKey$247", "propKey$252", "isLikelyStaticResource", "initiatorType", "estimateBandwidth", "count", "bits", "resourceEntries", "entry", "transferSize", "duration", "overlapEntry", "overlapStartTime", "overlapTransferSize", "overlapInitiatorType", "namespaceURI", "parentNamespace", "rootContainerInstance", "internalInstanceHandle", "currentPopstateTransitionEvent", "localPromise", "localRequestAnimationFrame", "handleErrorInNextTick", "parentInstance", "hydrationInstance", "depth", "clearSingletonPreambleContribution", "node$jscomp$0", "nextNode$jscomp$0", "rect", "viewTransitionName", "createMeasurement", "computedStyle", "measuredRect", "forceLayout", "waitForImageToLoad", "rootContainer", "mutationCallback", "layoutCallback", "afterMutationCallback", "spawnedWorkCallback", "passiveCallback", "errorCallback", "ownerWindow", "pendingNavigation", "previousFontLoadingStatus", "blockingPromises", "suspenseyImages", "imgBytes", "suspenseyImage", "estimateImageBytes", "estimatedBytesWithinLimit", "viewTransitionAnimations", "animations", "animation", "effect", "pseudoElement", "height", "unchangedDimensions", "j", "keyframe", "w", "ViewTransitionPseudoElement", "pseudo", "keyframes", "scope", "selector", "fragmentFiber", "optionsOrUseCapture", "cleanup", "indexOfEventListener", "attachedListener", "getAttachOptions", "addEventListenerToChild", "_listeners$index", "removeEventListenerFromChild", "opts", "normalizeListenerOptions", "eventListeners", "item", "temp", "_eventListeners$i", "focusOptions", "setFocusOnFiberIfFocusable", "setFocusIfFocusable", "collectChildren", "collection", "blurActiveElementWithinFragment", "observer", "observeChild", "observers", "unobserveChild", "pendingIntersectionUnobserves", "intersectionUnobserveScheduled", "schedulePendingIntersectionUnobserve", "requestPostPaintCallback", "rects", "collectClientRects", "getRootNodeOptions", "parentHostInstance", "parentHostInstanceFromDOM", "firstResult", "lastResult", "otherNodeIsWithinFirstOrLastChild", "validateDocumentPositionWithFiberTree", "documentPosition", "precedingBoundaryFiber", "followingBoundaryFiber", "otherFiber", "scrollTextNodeIntoView", "textNode", "resolvedAlignToTop", "alignToTop", "hostSiblings", "addFragmentHandleToInstance", "childInstance", "_eventListeners$i3", "writeIdx", "_eventListeners$i4", "anyProps", "nodeType", "data", "targetInstance", "handleFocus", "didFocus", "time", "preloadPropsMap", "preconnectsSet", "rootNode", "previousDispatcher", "flushSyncWork", "requestFormReset", "prefetchDNS", "preconnect", "preload", "preloadModule", "preinitScript", "preinitStyle", "preinitModuleScript", "previousWasRendering", "wasRendering", "form", "formInst", "globalDocument", "preconnectAs", "rel", "href", "crossOrigin", "limitedEscapedHref", "as", "preloadSelector", "getStyleKey", "getScriptKey", "getStylesheetSelectorFromKey", "getScriptSelectorFromKey", "precedence", "adoptPreloadPropsForStylesheet", "link", "reject", "insertStylesheet", "src", "scripts", "adoptPreloadPropsForScript", "currentProps", "currentResource", "styles$268", "resource$269", "preloadStylesheet", "stylesheetPropsFromRawProps", "rawProps", "preloadProps", "hoistableRoot", "styleProps", "instance$274", "linkInstance", "nodes", "prior", "stylesheetProps", "scriptProps", "keyAttribute", "caches", "nodeKey", "hostContext", "onUnsuspendImg", "timeoutOffset", "insertSuspendedStylesheets", "commit", "stylesheetTimer", "unsuspend", "imgTimer", "checkIfFullyUnsuspended", "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", "nearestMounted", "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_2043", "componentOrElement", "internals$jscomp$inline_2586", "hook$jscomp$inline_2587", "require_client", "__commonJSMin", "exports", "module", "checkDCE", "err", "require_base64_js", "__commonJSMin", "exports", "byteLength", "toByteArray", "fromByteArray", "lookup", "revLookup", "Arr", "code", "i", "len", "getLens", "b64", "validLen", "placeHoldersLen", "lens", "_byteLength", "tmp", "arr", "curByte", "tripletToBase64", "num", "encodeChunk", "uint8", "start", "end", "output", "extraBytes", "parts", "maxChunkLength", "len2", "require_ieee754", "__commonJSMin", "exports", "buffer", "offset", "isLE", "mLen", "nBytes", "e", "m", "eLen", "eMax", "eBias", "nBits", "i", "d", "s", "value", "c", "rt", "require_buffer", "__commonJSMin", "exports", "base64", "ieee754", "customInspectSymbol", "Buffer", "SlowBuffer", "K_MAX_LENGTH", "typedArraySupport", "arr", "proto", "createBuffer", "length", "buf", "arg", "encodingOrOffset", "allocUnsafe", "from", "value", "fromString", "fromArrayView", "isInstance", "fromArrayBuffer", "valueOf", "b", "fromObject", "assertSize", "size", "alloc", "fill", "encoding", "checked", "string", "byteLength", "actual", "fromArrayLike", "array", "i", "arrayView", "copy", "byteOffset", "obj", "len", "numberIsNaN", "a", "x", "y", "list", "buffer", "pos", "mustMatch", "loweredCase", "utf8ToBytes", "base64ToBytes", "slowToString", "start", "end", "hexSlice", "utf8Slice", "asciiSlice", "latin1Slice", "base64Slice", "utf16leSlice", "swap", "n", "m", "str", "max", "target", "thisStart", "thisEnd", "thisCopy", "targetCopy", "bidirectionalIndexOf", "val", "dir", "arrayIndexOf", "indexSize", "arrLength", "valLength", "read", "foundIndex", "found", "j", "hexWrite", "offset", "remaining", "strLen", "parsed", "utf8Write", "blitBuffer", "asciiWrite", "asciiToBytes", "base64Write", "ucs2Write", "utf16leToBytes", "res", "firstByte", "codePoint", "bytesPerSequence", "secondByte", "thirdByte", "fourthByte", "tempCodePoint", "decodeCodePointsArray", "MAX_ARGUMENTS_LENGTH", "codePoints", "ret", "out", "hexSliceLookupTable", "bytes", "newBuf", "checkOffset", "ext", "noAssert", "mul", "defineBigIntMethod", "validateNumber", "first", "last", "boundsError", "lo", "hi", "checkInt", "min", "maxBytes", "wrtBigUInt64LE", "checkIntBI", "wrtBigUInt64BE", "limit", "sub", "checkIEEE754", "writeFloat", "littleEndian", "writeDouble", "targetStart", "code", "errors", "E", "sym", "getMessage", "Base", "name", "range", "input", "msg", "received", "addNumericalSeparator", "checkBounds", "type", "INVALID_BASE64_RE", "base64clean", "units", "leadSurrogate", "byteArray", "c", "src", "dst", "alphabet", "table", "i16", "fn", "BufferBigIntNotDefined", "require_encoder", "__commonJSMin", "exports", "module", "btoa", "buf", "JPEGEncoder", "quality", "self", "fround", "ffloor", "YTable", "UVTable", "fdtbl_Y", "fdtbl_UV", "YDC_HT", "UVDC_HT", "YAC_HT", "UVAC_HT", "bitcode", "category", "outputfDCTQuant", "DU", "byteout", "bytenew", "bytepos", "YDU", "UDU", "VDU", "clt", "RGB_YUV_TABLE", "currentQuality", "ZigZag", "std_dc_luminance_nrcodes", "std_dc_luminance_values", "std_ac_luminance_nrcodes", "std_ac_luminance_values", "std_dc_chrominance_nrcodes", "std_dc_chrominance_values", "std_ac_chrominance_nrcodes", "std_ac_chrominance_values", "initQuantTables", "sf", "YQT", "i", "t", "UVQT", "j", "u", "aasf", "k", "row", "col", "computeHuffmanTbl", "nrcodes", "std_table", "codevalue", "pos_in_table", "HT", "initHuffmanTbl", "initCategoryNumber", "nrlower", "nrupper", "cat", "nr", "nrneg", "initRGBYUVTable", "writeBits", "bs", "value", "posval", "writeByte", "writeWord", "fDCTQuant", "data", "fdtbl", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "dataOff", "I8", "I64", "tmp0", "tmp7", "tmp1", "tmp6", "tmp2", "tmp5", "tmp3", "tmp4", "tmp10", "tmp13", "tmp11", "tmp12", "z1", "z5", "z2", "z4", "z3", "z11", "z13", "tmp0p2", "tmp7p2", "tmp1p2", "tmp6p2", "tmp2p2", "tmp5p2", "tmp3p2", "tmp4p2", "tmp10p2", "tmp13p2", "tmp11p2", "tmp12p2", "z1p2", "z5p2", "z2p2", "z4p2", "z3p2", "z11p2", "z13p2", "writeAPP0", "writeAPP1", "exifBuffer", "writeSOF0", "width", "height", "writeDQT", "writeDHT", "l", "m", "n", "o", "p", "writeCOM", "comments", "e", "writeSOS", "processDU", "CDU", "DC", "HTDC", "HTAC", "EOB", "M16zeroes", "pos", "I16", "I63", "DU_DCT", "Diff", "end0pos", "lng", "startpos", "nrzeroes", "nrmarker", "initCharLookupTable", "sfcc", "image", "time_start", "setQuality", "DCY", "DCU", "DCV", "imageData", "quadWidth", "tripleWidth", "x", "y", "r", "g", "b", "start", "fillbits", "jpegDataUri", "duration", "init", "encode", "imgData", "qu", "encoder", "require_decoder", "__commonJSMin", "exports", "module", "JpegImage", "dctZigZag", "dctCos1", "dctSin1", "dctCos3", "dctSin3", "dctCos6", "dctSin6", "dctSqrt2", "dctSqrt1d2", "constructor", "buildHuffmanTable", "codeLengths", "values", "k", "code", "i", "j", "length", "p", "q", "decodeScan", "data", "offset", "frame", "components", "resetInterval", "spectralStart", "spectralEnd", "successivePrev", "successive", "opts", "precision", "samplesPerLine", "scanLines", "mcusPerLine", "progressive", "maxH", "maxV", "startOffset", "bitsData", "bitsCount", "readBit", "nextByte", "decodeHuffman", "tree", "node", "bit", "receive", "n", "receiveAndExtend", "decodeBaseline", "component", "zz", "t", "diff", "rs", "s", "r", "z", "decodeDCFirst", "decodeDCSuccessive", "eobrun", "decodeACFirst", "e", "successiveACState", "successiveACNextValue", "decodeACSuccessive", "direction", "decodeMcu", "decode", "mcu", "row", "col", "mcuRow", "mcuCol", "blockRow", "blockCol", "decodeBlock", "componentsLength", "decodeFn", "marker", "mcuExpected", "h", "v", "buildComponentData", "lines", "blocksPerLine", "blocksPerColumn", "R", "quantizeAndInverse", "dataOut", "dataIn", "qt", "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "sample", "requestMemoryAllocation", "scanLine", "line", "clampTo8bit", "a", "path", "xhr", "maxResolutionInPixels", "readUint16", "value", "readDataBlock", "array", "prepareComponents", "componentId", "mcusPerColumn", "blocksPerLineForMcu", "blocksPerColumnForMcu", "blocksToAllocate", "blocks", "jfif", "adobe", "pixels", "quantizationTables", "frames", "huffmanTablesAC", "huffmanTablesDC", "fileMarker", "malformedDataOffset", "l", "appData", "comment", "quantizationTablesLength", "quantizationTablesEnd", "quantizationTableSpec", "tableData", "pixelsInFrame", "exceededAmount", "componentsCount", "qId", "huffmanLength", "huffmanTableSpec", "codeLengthSum", "huffmanValues", "scanLength", "selectorsCount", "tableSpec", "successiveApproximation", "processed", "nextOffset", "cp", "width", "height", "scaleX", "scaleY", "component1", "component2", "component3", "component4", "component1Line", "component2Line", "component3Line", "component4Line", "x", "y", "Y", "Cb", "Cr", "K", "C", "M", "Ye", "G", "B", "colorTransform", "dataLength", "imageData", "formatAsRGBA", "imageDataArray", "totalBytesAllocated", "maxMemoryUsageBytes", "increaseAmount", "totalMemoryImpactBytes", "maxMemoryUsageBytes_", "jpegData", "userOpts", "defaultOpts", "arr", "decoder", "channels", "bytesNeeded", "image", "err", "require_jpeg_js", "__commonJSMin", "exports", "module", "encode", "decode", "require_react_jsx_runtime_production", "__commonJSMin", "exports", "REACT_ELEMENT_TYPE", "REACT_FRAGMENT_TYPE", "jsxProd", "type", "config", "maybeKey", "key", "propName", "require_jsx_runtime", "__commonJSMin", "exports", "module", "import_react", "import_client", "CHROMATICITIES_REC709", "CHROMATICITIES_P3", "CHROMATICITIES_REC2020", "LINEAR_COLOR_SPACES", "LINEAR_TO_CHROMATICITIES", "CHROMATICITIES_REC709", "CHROMATICITIES_P3", "CHROMATICITIES_REC2020", "CHROMATICITY_TOLERANCE", "chromaticitiesMatch", "a", "b", "chromaticitiesToLinearColorSpace", "ch", "red", "green", "blue", "white", "space", "LINEAR_COLOR_SPACES", "known", "LINEAR_TO_CHROMATICITIES", "chromaticitiesToRgbXyzMatrix", "ch", "xr", "yr", "zr", "xg", "yg", "zg", "xb", "yb", "zb", "xw", "yw", "zw", "det", "sr", "sg", "sb", "buildLinearToLinearMatrix", "from", "to", "mFrom", "chromaticitiesToRgbXyzMatrix", "mTo", "mToInv", "invert3", "multiply3", "a", "b", "m", "c", "d", "e", "f", "g", "h", "i", "invDet", "mat3ToArray", "applyMatrix3", "matrix", "input", "output", "inputOffset", "outputOffset", "r", "ch709", "LINEAR_TO_CHROMATICITIES", "chP3", "ch2020", "LINEAR_REC709_TO_LINEAR_P3", "buildLinearToLinearMatrix", "LINEAR_REC709_TO_LINEAR_REC2020", "LINEAR_P3_TO_LINEAR_REC709", "LINEAR_P3_TO_LINEAR_REC2020", "LINEAR_REC2020_TO_LINEAR_REC709", "LINEAR_REC2020_TO_LINEAR_P3", "LINEAR_MATRIX_MAP", "getLinearToLinearMatrix", "from", "to", "key", "SRGB_LINEAR_SCALE_LOW", "SRGB_DISPLAY_SCALE", "SRGB_GAMMA", "LINEAR_SRGB_KNEELOW", "sRGBToLinear", "x", "linearTosRGB", "REC2020_GAMMA", "REC2020_LINEAR_SCALE", "REC2020_DISPLAY_SCALE", "convertFloat32ToLinearColorSpace", "data", "_width", "_height", "from", "to", "matrix", "getLinearToLinearMatrix", "out", "m", "mat3ToArray", "i", "applyMatrix3", "EXR_COMPRESSION_CODES", "EXR_COMPRESSIONS", "EXR_COMPRESSION_NAMES", "name", "UINT", "HALF", "FLOAT", "EXR_MAGIC", "_floatView", "_int32View", "encodeFloat16", "float32", "x", "bits", "m", "e", "mm", "decodeFloat16", "uint16", "sign", "exponent", "mantissa", "value", "halfToFloatLut", "getHalfToFloatLut", "lut", "i", "expTable", "logTable", "b44ConvertFromLinear", "x", "encodeFloat16", "decodeFloat16", "b44ConvertToLinear", "ensureLinearTables", "i", "convertBlockToLinear", "s", "ensureLinearTables", "i", "logTable", "unmap", "s", "i", "v", "unpackB44Block14", "b", "shift", "bias", "unpackB44Block3", "getBytesPerSample", "pixelType", "UINT", "HALF", "FLOAT", "decompressB44", "compressedData", "width", "channels", "_dataSize", "blockHeight", "numChannels", "s", "readOffset", "channelScratch", "c", "channel", "bytesPerSample", "nBytes", "scratch", "view", "y", "x", "unpackB44Block3", "unpackB44Block14", "convertBlockToLinear", "colsToWrite", "rowsToWrite", "ry", "lineStart", "rx", "totalOutputSize", "sum", "ch", "output", "writeOffset", "ly", "lineLength", "u8", "u16", "i32", "fleb", "fdeb", "clim", "freb", "eb", "start", "b", "i", "r", "j", "_a", "fl", "revfl", "_b", "fd", "revfd", "rev", "x", "hMap", "cd", "mb", "s", "l", "le", "co", "rvb", "sv", "r_1", "v", "m", "flt", "fdt", "flrm", "hMap", "flt", "fdrm", "hMap", "fdt", "max", "a", "m", "i", "bits", "d", "p", "o", "bits16", "shft", "slc", "v", "s", "e", "u8", "ec", "err", "ind", "msg", "nt", "e", "inflt", "dat", "st", "buf", "dict", "sl", "dl", "u8", "noBuf", "resize", "noSt", "cbuf", "l", "bl", "nbuf", "final", "pos", "bt", "lm", "dm", "lbt", "dbt", "tbts", "bits", "type", "flrm", "fdrm", "hLit", "hcLen", "tl", "ldt", "clt", "i", "clim", "clb", "max", "clbmsk", "clm", "hMap", "r", "s", "c", "n", "lt", "dt", "shft", "t", "lms", "dms", "lpos", "bits16", "sym", "add", "b", "fleb", "fl", "d", "dsym", "fd", "fdeb", "end", "shift", "dend", "slc", "et", "u8", "zls", "d", "dict", "err", "unzlibSync", "data", "opts", "inflt", "zls", "td", "tds", "et", "SCHEME_CODES", "LEGACY_RULES", "HALF", "FLOAT", "UINT", "findSuffix", "name", "dot", "ruleMatches", "rule", "suffix", "pixelType", "classifyChannel", "rules", "parseDwaRules", "data", "size", "rules", "p", "end", "flags", "type", "cscIdx", "scheme", "SCHEME_CODES", "FLOAT", "computeDwaChannelGroups", "channels", "classes", "ch", "classifyChannel", "prefixMap", "i", "cls", "channel", "suffix", "findSuffix", "prefix", "entry", "cscGroups", "grouped", "g", "b", "rc", "gc", "bc", "applyExrPredictor", "src", "size", "i", "a", "reorderExrPixels", "dst", "halfSize", "t1", "t2", "decompressRLE", "compressedData", "expectedSize", "out", "src", "dst", "count", "n", "i", "value", "decompressRleBlock", "rleOut", "applyExrPredictor", "decompressedData", "reorderExrPixels", "LOG_BASE", "linearLut", "getLinearLut", "lut", "i", "f0", "decodeFloat16", "sign", "f", "px", "py", "encodeFloat16", "hufClearDecTable", "hdec", "i", "parseUint32", "dataView", "offset", "value", "parseUint8Array", "uInt8Array", "getBitsReturn", "getBits", "nBits", "c", "lc", "inOffset", "currentC", "currentLc", "hufTableBuffer", "hufCanonicalCodeTable", "hcode", "code", "bufferIndex", "bufferValue", "nc", "hufUnpackEncTable", "ni", "im", "iM", "p", "currentIm", "l", "zerun", "runCount", "hufLength", "hufCode", "hufBuildDecTable", "hdecod", "hcodeValue", "index", "pl", "pValue", "plOffset", "getCharReturn", "getChar", "newC", "newLc", "getCodeReturn", "getCode", "po", "rlc", "outBuffer", "outBufferOffset", "outBufferEndOffset", "cs", "s", "hufDecode", "encodingTable", "decodingTable", "no", "outOffset", "inOffsetEnd", "j", "pIndex", "encodingValue", "LONGEST_LONG_RUN", "hufUncompress", "uInt8Array", "inDataView", "inOffset", "nCompressed", "outBuffer", "nRaw", "outOffset", "initialInOffset", "im", "parseUint32", "iM", "nBits", "freq", "hdec", "hufClearDecTable", "ni", "hufUnpackEncTable", "hufBuildDecTable", "hufDecode", "channelByteSize", "pixelType", "HALF", "ZIGZAG", "fromHalfZigZag", "src", "dst", "i", "decodeFloat16", "IDCT_A", "IDCT_B", "IDCT_C", "IDCT_D", "IDCT_E", "IDCT_F", "IDCT_G", "idct8x8", "data", "alpha", "beta", "theta", "gamma", "row", "o", "col", "csc709Inverse64", "y", "cb", "cr", "yy", "cbv", "crv", "unRleAc", "acRaw", "cursor", "halfZig", "dctComp", "val", "count", "decodeLossyDctGroup", "compIdx", "width", "height", "acCursor", "dcRaw", "dcCursor", "channels", "channelOut", "forceLinear", "numComp", "numBlocksX", "numBlocksY", "leftoverX", "leftoverY", "dcPtr", "c", "dctData", "rowsHalf", "blocky", "maxY", "blockx", "maxX", "hz", "dd", "rh", "by", "rowOff", "bx", "encodeFloat16", "lut", "getLinearLut", "halfLut", "getHalfToFloatLut", "channel", "outArr", "n", "FLOAT", "out32", "h", "out16", "decompressDwa", "compressedData", "_dataSize", "blockHeight", "dv", "headerSize", "readU64", "version", "unknownUncompressedSize", "unknownCompressedSize", "acCompressedSize", "dcCompressedSize", "rleCompressedSize", "rleUncompressedSize", "rleRawSize", "totalAcUncompressedCount", "totalDcUncompressedCount", "acCompression", "legacy", "pos", "rules", "LEGACY_RULES", "parsed", "parseDwaRules", "unknownBuf", "acBuf", "dcBuf", "rleBuf", "unknownRaw", "unzlibSync", "hufUncompress", "raw", "uncompBytes", "dcZip", "applyExrPredictor", "reordered", "reorderExrPixels", "rleRaw", "rleZip", "decompressRLE", "classes", "cscGroups", "grouped", "computeDwaChannelGroups", "bpeArr", "ch", "_", "group", "rleCursor", "unknownCursor", "cls", "bpe", "planeSize", "chanSlice", "p", "b", "size", "totalOutputSize", "output", "writeOffset", "rowStart", "getBytesPerChannel", "pixelType", "FLOAT", "UInt16", "value", "Int16", "ref", "wdec14Return", "wdec16Return", "wdec14", "l", "h", "ls", "hi", "ai", "wdec16", "m", "d", "bb", "aa", "reverseLutFromBitmap", "bitmap", "lut", "k", "i", "bitmapIndex", "bitmapValue", "n", "applyLut", "data", "nData", "dataValue", "lutValue", "wav2Decode", "buffer", "j", "nx", "ox", "ny", "oy", "mx", "w14", "p", "p2", "py", "ey", "oy1", "oy2", "ox1", "ox2", "i00", "i01", "i10", "i11", "px", "ex", "p01", "p10", "p11", "pxJ", "p10J", "p01J", "p11J", "decompressPiz", "compressedData", "width", "channels", "_dataSize", "blockHeight", "dataView", "offset", "minNonZero", "maxNonZero", "byte", "compressedSize", "compressedBuffer", "numChannels", "primaryChannel", "bytesPerChannel", "u16sPerChannelValue", "u16sPerChannel", "totalU16", "outputBuffer", "hufUncompress", "c", "channelOffset", "resultSize", "result", "resultView", "y", "lineOffset", "x", "base", "getPxr24BytesPerSample", "pixelType", "UINT", "HALF", "FLOAT", "getOutputBytesPerSample", "decompressPxr24", "compressedData", "width", "channels", "_dataSize", "blockHeight", "raw", "unzlibSync", "chBytes", "ch", "outBytes", "bytesPerLine", "b", "output", "out16", "out32", "readOffset", "writeOffset", "ly", "c", "segmentSize", "b0", "b1", "b2", "b3", "accum", "o", "x", "decompressZip", "compressedData", "decompressed", "unzlibSync", "applyExrPredictor", "result", "reorderExrPixels", "normalizeChannelName", "name", "getChannelSemanticName", "normalized", "readNullTerminatedString", "buffer", "offset", "bytes", "pos", "byte", "parseExrHeader", "exrBuffer", "dataView", "magic", "EXR_MAGIC", "version", "isMultiPart", "isTiled", "isDeepData", "header", "attributeName", "attributeType", "attributeSize", "attributeValue", "channels", "chlistStart", "chlistEnd", "channelName", "channelNameEnd", "pixelTypeRaw", "pixelType", "pLinear", "reserved", "xSampling", "ySampling", "nextByte", "nextNextByte", "compression", "displayWindow", "dataWindow", "EXR_COMPRESSION_NAMES", "EXR_COMPRESSIONS", "hasDisplayWindow", "hasDataWindow", "hasChannels", "getPixelTypeSize", "pixelType", "UINT", "HALF", "FLOAT", "readExr", "exrBuffer", "options", "dataView", "parsedHeader", "offset", "parseExrHeader", "header", "dataWindow", "channels", "compression", "width", "height", "hasR", "ch", "getChannelSemanticName", "hasG", "hasB", "hasLuma", "isRgbMode", "isLumaMode", "blockHeight", "expectedBlockCount", "scanlineBlockOffsets", "offsetTableStart", "readOffset", "maxOffsets", "i", "offsetValue", "low32", "high32", "canReadBlockHeader", "notInHeader", "actualBlockHeightFinal", "firstOffset", "secondOffset", "firstY", "blockCount", "pixelData", "channelSizes", "channelLineOffsets", "channelSlots", "bytesPerScanline", "hasAlpha", "c", "sem", "slot", "sanitize", "halfLut", "getHalfToFloatLut", "blockIdx", "scanlineBlockOffset", "scanlinePos", "firstLineY", "dataSize", "available", "linesInBlock", "expectedUncompressedSize", "compressedData", "decompressedData", "decompressZip", "decompressRleBlock", "decompressPiz", "decompressPxr24", "decompressDwa", "decompressB44", "blockBuffer", "blockBase", "lineInBlock", "y", "rowBase", "outLine", "rowOffset", "row", "o", "x", "v", "p", "chromaticities", "linearColorSpace", "chromaticitiesToLinearColorSpace", "ensureNonNegativeFinite", "data", "i", "v", "BLOCK_HEIGHT", "HALF_FLOAT_MAX", "isFloat32Array", "a", "decodeGainMapCpu", "sdr", "gainMap", "width", "height", "metadata", "options", "gamma", "offsetSdr", "offsetHdr", "gainMapMin", "gainMapMax", "hdrCapacityMin", "hdrCapacityMax", "maxDisplayBoost", "capacityRange", "unclampedWeight", "weightFactor", "invGamma", "useGammaOne", "sdrIsFloat", "gainMapIsFloat", "pixelCount", "out", "i", "i4", "sdrR", "sRGBToLinear", "sdrG", "sdrB", "gainR", "gainG", "gainB", "logRecoveryR", "logRecoveryG", "logRecoveryB", "logBoostR", "logBoostG", "logBoostB", "w", "hdrR", "hdrG", "hdrB", "RRTAndODTFit", "v", "a", "bVal", "acesFilmicBatch", "input", "output", "pixelCount", "i", "si", "r", "g", "b", "r1", "g1", "b1", "r2", "g2", "b2", "reinhardBatch", "neutralBatch", "r0", "g0", "b0", "x", "offset", "peak", "d", "newPeak", "gMix", "agxDefaultContrastApprox", "x2", "x4", "LINEAR_REC709_TO_REC2020", "mat3ToArray", "LINEAR_REC709_TO_LINEAR_REC2020", "LINEAR_REC2020_TO_REC709", "LINEAR_REC2020_TO_LINEAR_REC709", "AgXInsetMatrix", "AgXOutsetMatrix", "AgxMinEv", "AgxMaxEv", "agxVecIn", "agxVecOut", "agxBatch", "applyMatrix3", "divisor", "TONE_MAPPING_MAP", "getToneMapping", "type", "defaultOffset", "import_buffer", "g", "BufferPolyfill", "import_jpeg_js", "SRGB_PROFILE_B64", "ICC_PREFIX", "base64ToUint8Array", "b64", "binary", "out", "i", "cached", "buildSrgbIccPayload", "profile", "payload", "cached", "getDefaultIccProfile", "buildSrgbIccPayload", "DEFAULT_ICC_PROFILE", "ICC_PREFIX", "ICC_PREFIX_LEN", "ICC_APP2_HEADER_LEN", "import_jpeg_js", "GAIN_MAP_METADATA_ERROR", "HDR_CAPACITY_MIN_REGEX", "HDR_CAPACITY_MAX_REGEX", "getXmlValue", "xml", "tag", "defaultValue", "attributeMatch", "tagMatch", "inner", "liMatches", "v", "parseTriple", "val", "n", "extractGainMapXmp", "buffer", "str", "start", "end", "xmpBlock", "version", "gainMapMin", "gainMapMax", "gamma", "offsetSDR", "offsetHDR", "hdrCapacityMinMatch", "hdrCapacityMin", "hdrCapacityMaxMatch", "hdrCapacityMax", "GAIN_MAP_IMAGE_ERROR", "extractImagesFromMpf", "buffer", "view", "offset", "primaryImage", "gainmapImage", "format", "marker", "segmentLength", "segmentEnd", "payloadStart", "payload", "payloadView", "bigEndian", "primarySize", "primaryOffset", "gainmapSize", "gainmapOffsetInFile", "mpEntryOffset", "findMpEntryOffset", "gainmapStored", "relativeOffset", "withSoi", "SOI_MARKER", "EOI_MARKER", "extractImagesBySecondSoi", "secondSoiAfterEoi", "firstSecondSoi", "i", "secondSoi", "ifdOffset", "tagCount", "tagStart", "readJpegGainMap", "buffer", "metadata", "extractGainMapXmp", "primaryImage", "gainmapImage", "format", "extracted", "extractImagesFromMpf", "fallback", "extractImagesBySecondSoi", "sdrDecoded", "jpegDecode", "gainDecoded", "width", "height", "sdrData", "gainData", "scaleToSize", "result", "decodeGainMapCpu", "ensureNonNegativeFinite", "src", "sw", "sh", "dw", "dh", "out", "y", "sy", "x", "sx", "srcIdx", "dstIdx", "MPF_CONSTANTS", "MPF_VERSION", "TOLERANCE", "isRec709", "ch", "r", "CHROMATICITIES_REC709", "validateToneMappingColorSpaceFromMetadata", "metadata", "options", "chromaticities", "applyToneMapping", "hdrData", "width", "height", "options", "sourceColorSpace", "dataToUse", "ensureNonNegativeFinite", "convertFloat32ToLinearColorSpace", "validateToneMappingColorSpaceFromMetadata", "toneMappingType", "exposure", "mapper", "getToneMapping", "totalPixels", "linearRgbBuffer", "ldrData", "i", "srcIdx", "dstIdx", "r", "linearTosRGB", "g", "b", "readHdr", "hdrBuffer", "options", "headerStrict", "output", "byteArray", "offsetRef", "header", "RGBE_ReadHeader", "w", "h", "image_rgba_data", "RGBE_ReadPixels_RLE", "numElements", "floatArray", "j", "RGBEByteToRGBFloat", "scale", "i", "ensureNonNegativeFinite", "sourceArray", "sourceOffset", "destArray", "destOffset", "e", "magic_token_re", "resolution_re", "var_assign_re", "rgbe_error", "rgbe_error_code", "msg", "parseMetadataValue", "val", "trimmed", "num", "buffer", "opts", "metadata", "fgets", "p", "endPos", "s", "byte", "line", "match", "varMatch", "key", "resMatch", "sign1", "axis1", "num1", "sign2", "axis2", "num2", "isOldRLEPixel", "buf", "offset", "hasOldRLE", "decodeOldRLE", "outIdx", "pos", "prev", "r", "g", "b", "count", "shift", "r2", "g2", "b2", "e2", "rn", "gn", "bn", "en", "scanline_width", "pixelBuffer", "expected", "bufferWidth", "data_rgba", "outputOffset", "ptr_end", "rgbeStart", "scanline_buffer", "num_scanlines", "ptr", "countByte", "isEncodedRun", "byteValue", "l", "off", "drawToneMapped", "canvas", "image", "toneMapping", "exposure", "width", "height", "ctx", "ldrRgb", "applyToneMapping", "imageData", "pixels", "destIndex", "sourceIndex", "captureSize", "options", "imageWidth", "imageHeight", "value", "captureImage", "scaled", "resolve", "reject", "blob", "import_react", "startsWith", "bytes", "magic", "byte", "i", "gunzip", "stream", "decodeHdrifyImage", "input", "readExr", "readHdr", "readJpegGainMap", "import_react", "import_jsx_runtime", "HdrifyCanvas", "hdrifyImage", "toneMapping", "exposure", "className", "forwardedRef", "canvasRef", "setRef", "el", "drawToneMapped", "readResponse", "response", "signal", "onProgress", "length", "encoding", "total", "loaded", "publish", "reader", "bytes", "cancel", "chunks", "published", "done", "value", "offset", "chunk", "notConnected", "settled", "ViewerReadiness", "#ready", "#settle", "ready", "settle", "next", "resolve", "reject", "error", "promise", "IMAGE_VIEWER_CSS", "import_jsx_runtime", "DEFAULT_IMAGE_VIEWER_SETTINGS", "TONE_MAPPING_OPTIONS", "EXPOSURE_SLIDER_RANGE", "definedSettings", "settings", "value", "formatStops", "stops", "afterPaint", "resolve", "DOWNLOAD_SHARE", "NO_DOWNLOAD", "loadCount", "ImageViewer", "src", "data", "image", "toneMapping", "exposure", "fit", "settingsPanel", "exposureControl", "className", "style", "onLoad", "onError", "onProgress", "onSettingsChange", "onSettingsPanelChange", "ref", "callbacks", "setSettings", "provided", "setProvided", "panelMode", "setPanelMode", "current", "change", "patch", "next", "changePanel", "mode", "readiness", "ViewerReadiness", "source", "loaded", "setLoaded", "bar", "setBar", "download", "controller", "signal", "id", "overall", "report", "stage", "totalProgress", "fetchWithProgress", "url", "response", "readResponse", "progress", "bytes", "decoded", "decodeHdrifyImage", "reason", "error", "loading", "shownImage", "barValue", "drawn", "latest", "options", "currentSettings", "captureImage", "IMAGE_VIEWER_CSS", "HdrifyCanvas", "event", "OptionsPanel", "open", "onChange", "onOpenChange", "button", "panel", "close", "document", "outside", "path", "escape", "option", "HOST_CSS", "oneOf", "value", "allowed", "option", "ElementBase", "ImageViewerElement", "#root", "#mount", "#generation", "#reflecting", "#image", "#data", "#settings", "DEFAULT_IMAGE_VIEWER_SETTINGS", "#readiness", "ViewerReadiness", "#revision", "#shown", "#source", "#sourceChanged", "#render", "patch", "next", "#reflect", "shadow", "style", "options", "captureImage", "generation", "name", "exposure", "toneMapping", "TONE_MAPPING_OPTIONS", "fit", "reload", "source", "entries", "#dispatch", "type", "detail", "exposureControl", "revision", "current", "ImageViewer", "progress", "image", "error", "settings", "mode"]
|
|
7
|
+
}
|