@metapages/metapage 1.9.2 → 1.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/metapage/versions.ts","../src/metapage/Constants.ts","../node_modules/compare-versions/lib/esm/utils.js","../node_modules/compare-versions/lib/esm/compareVersions.js","../node_modules/fetch-retry/dist/fetch-retry.umd.js","../node_modules/mutative/dist/mutative.esm.mjs","../src/metapage/conversions-metapage.ts","../src/metapage/conversions-metaframe.ts","../node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js","../src/metapage/data.ts","../src/metapage/events.ts","../src/metapage/jsonrpc.ts","../src/metapage/jsonrpc2.ts","../node_modules/eventemitter3/index.js","../node_modules/@metapages/hash-query/dist/core/index.js","../node_modules/fast-json-stable-stringify/index.js","../src/metapage/Shared.ts","../src/metapage/MetapageTools.ts","../src/metapage/Metaframe.ts","../node_modules/picomatch/lib/constants.js","../node_modules/picomatch/lib/utils.js","../node_modules/picomatch/lib/scan.js","../node_modules/picomatch/lib/parse.js","../node_modules/picomatch/lib/picomatch.js","../node_modules/picomatch/posix.js","../src/metapage/util.ts","../src/metapage/MetapageIFrameRpcClient.ts","../src/metapage/Metapage.ts","../src/metapage/metapageRenderer.ts"],"sourcesContent":[null,null,"export const semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nexport const validateAndParse = (version) => {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b))\n return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp)\n return 1;\n if (ap < bp)\n return -1;\n return 0;\n};\nexport const compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0)\n return r;\n }\n return 0;\n};\n//# sourceMappingURL=utils.js.map","import { compareSegments, validateAndParse } from './utils.js';\n/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0)\n return r;\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n }\n else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n return 0;\n};\n//# sourceMappingURL=compareVersions.js.map","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.fetchRetry = factory());\n})(this, (function () { 'use strict';\n\n var fetchRetry = function (fetch, defaults) {\n defaults = defaults || {};\n if (typeof fetch !== 'function') {\n throw new ArgumentError('fetch must be a function');\n }\n\n if (typeof defaults !== 'object') {\n throw new ArgumentError('defaults must be an object');\n }\n\n if (defaults.retries !== undefined && !isPositiveInteger(defaults.retries)) {\n throw new ArgumentError('retries must be a positive integer');\n }\n\n if (defaults.retryDelay !== undefined && !isPositiveInteger(defaults.retryDelay) && typeof defaults.retryDelay !== 'function') {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n\n if (defaults.retryOn !== undefined && !Array.isArray(defaults.retryOn) && typeof defaults.retryOn !== 'function') {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n\n var baseDefaults = {\n retries: 3,\n retryDelay: 1000,\n retryOn: [],\n };\n\n defaults = Object.assign(baseDefaults, defaults);\n\n return function fetchRetry(input, init) {\n var retries = defaults.retries;\n var retryDelay = defaults.retryDelay;\n var retryOn = defaults.retryOn;\n\n if (init && init.retries !== undefined) {\n if (isPositiveInteger(init.retries)) {\n retries = init.retries;\n } else {\n throw new ArgumentError('retries must be a positive integer');\n }\n }\n\n if (init && init.retryDelay !== undefined) {\n if (isPositiveInteger(init.retryDelay) || (typeof init.retryDelay === 'function')) {\n retryDelay = init.retryDelay;\n } else {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n }\n\n if (init && init.retryOn) {\n if (Array.isArray(init.retryOn) || (typeof init.retryOn === 'function')) {\n retryOn = init.retryOn;\n } else {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n }\n\n // eslint-disable-next-line no-undef\n return new Promise(function (resolve, reject) {\n var wrappedFetch = function (attempt) {\n // As of node 18, this is no longer needed since node comes with native support for fetch:\n /* istanbul ignore next */\n var _input =\n typeof Request !== 'undefined' && input instanceof Request\n ? input.clone()\n : input;\n fetch(_input, init)\n .then(function (response) {\n if (Array.isArray(retryOn) && retryOn.indexOf(response.status) === -1) {\n resolve(response);\n } else if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n return Promise.resolve(retryOn(attempt, null, response))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }).catch(reject);\n } catch (error) {\n reject(error);\n }\n } else {\n if (attempt < retries) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }\n })\n .catch(function (error) {\n if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n Promise.resolve(retryOn(attempt, error, null))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n })\n .catch(function(error) {\n reject(error);\n });\n } catch(error) {\n reject(error);\n }\n } else if (attempt < retries) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n });\n };\n\n function retry(attempt, error, response) {\n var delay = (typeof retryDelay === 'function') ?\n retryDelay(attempt, error, response) : retryDelay;\n setTimeout(function () {\n wrappedFetch(++attempt);\n }, delay);\n }\n\n wrappedFetch(0);\n });\n };\n };\n\n function isPositiveInteger(value) {\n return Number.isInteger(value) && value >= 0;\n }\n\n function ArgumentError(message) {\n this.name = 'ArgumentError';\n this.message = message;\n }\n\n return fetchRetry;\n\n}));\n","const Operation = {\n Remove: 'remove',\n Replace: 'replace',\n Add: 'add',\n};\n\n// Don't use `Symbol()` just for 3rd party access the draft\nconst PROXY_DRAFT = Symbol.for('__MUTATIVE_PROXY_DRAFT__');\nconst RAW_RETURN_SYMBOL = Symbol('__MUTATIVE_RAW_RETURN_SYMBOL__');\nconst iteratorSymbol = Symbol.iterator;\nconst dataTypes = {\n mutable: 'mutable',\n immutable: 'immutable',\n};\n\nconst internal = {};\n\nfunction has(target, key) {\n return target instanceof Map\n ? target.has(key)\n : Object.prototype.hasOwnProperty.call(target, key);\n}\nfunction getDescriptor(target, key) {\n if (key in target) {\n let prototype = Reflect.getPrototypeOf(target);\n while (prototype) {\n const descriptor = Reflect.getOwnPropertyDescriptor(prototype, key);\n if (descriptor)\n return descriptor;\n prototype = Reflect.getPrototypeOf(prototype);\n }\n }\n return;\n}\n\nfunction latest(proxyDraft) {\n var _a;\n return (_a = proxyDraft.copy) !== null && _a !== void 0 ? _a : proxyDraft.original;\n}\n/**\n * Check if the value is a draft\n */\nfunction isDraft(target) {\n return !!getProxyDraft(target);\n}\nfunction getProxyDraft(value) {\n if (typeof value !== 'object')\n return null;\n return value === null || value === void 0 ? void 0 : value[PROXY_DRAFT];\n}\nfunction getValue(value) {\n var _a;\n const proxyDraft = getProxyDraft(value);\n return proxyDraft ? (_a = proxyDraft.copy) !== null && _a !== void 0 ? _a : proxyDraft.original : value;\n}\n/**\n * Check if a value is draftable\n */\nfunction isDraftable(value, options) {\n if (!value || typeof value !== 'object')\n return false;\n let markResult;\n return (Object.getPrototypeOf(value) === Object.prototype ||\n Array.isArray(value) ||\n value instanceof Map ||\n value instanceof Set ||\n (!!(options === null || options === void 0 ? void 0 : options.mark) &&\n ((markResult = options.mark(value, dataTypes)) === dataTypes.immutable ||\n typeof markResult === 'function')));\n}\nfunction getPath(target, path = []) {\n if (Object.hasOwnProperty.call(target, 'key')) {\n // check if the parent is a draft and the original value is not equal to the current value\n const parentCopy = target.parent.copy;\n const proxyDraft = getProxyDraft(get(parentCopy, target.key));\n if (proxyDraft !== null && (proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.original) !== target.original) {\n return null;\n }\n const isSet = target.parent.type === 3 /* DraftType.Set */;\n const key = isSet\n ? Array.from(target.parent.setMap.keys()).indexOf(target.key)\n : target.key;\n // check if the key is still in the next state parent\n if (!((isSet && parentCopy.size > key) || has(parentCopy, key)))\n return null;\n path.push(key);\n }\n if (target.parent) {\n return getPath(target.parent, path);\n }\n // `target` is root draft.\n path.reverse();\n try {\n // check if the path is valid\n resolvePath(target.copy, path);\n }\n catch (e) {\n return null;\n }\n return path;\n}\nfunction getType(target) {\n if (Array.isArray(target))\n return 1 /* DraftType.Array */;\n if (target instanceof Map)\n return 2 /* DraftType.Map */;\n if (target instanceof Set)\n return 3 /* DraftType.Set */;\n return 0 /* DraftType.Object */;\n}\nfunction get(target, key) {\n return getType(target) === 2 /* DraftType.Map */ ? target.get(key) : target[key];\n}\nfunction set(target, key, value) {\n const type = getType(target);\n if (type === 2 /* DraftType.Map */) {\n target.set(key, value);\n }\n else {\n target[key] = value;\n }\n}\nfunction peek(target, key) {\n const state = getProxyDraft(target);\n const source = state ? latest(state) : target;\n return source[key];\n}\nfunction isEqual(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n }\n else {\n return x !== x && y !== y;\n }\n}\nfunction revokeProxy(proxyDraft) {\n if (!proxyDraft)\n return;\n while (proxyDraft.finalities.revoke.length > 0) {\n const revoke = proxyDraft.finalities.revoke.pop();\n revoke();\n }\n}\n// handle JSON Pointer path with spec https://www.rfc-editor.org/rfc/rfc6901\nfunction escapePath(path, pathAsArray) {\n return pathAsArray\n ? path\n : ['']\n .concat(path)\n .map((_item) => {\n const item = `${_item}`;\n if (item.indexOf('/') === -1 && item.indexOf('~') === -1)\n return item;\n return item.replace(/~/g, '~0').replace(/\\//g, '~1');\n })\n .join('/');\n}\nfunction unescapePath(path) {\n if (Array.isArray(path))\n return path;\n return path\n .split('/')\n .map((_item) => _item.replace(/~1/g, '/').replace(/~0/g, '~'))\n .slice(1);\n}\nfunction resolvePath(base, path) {\n for (let index = 0; index < path.length - 1; index += 1) {\n const key = path[index];\n // use `index` in Set draft\n base = get(getType(base) === 3 /* DraftType.Set */ ? Array.from(base) : base, key);\n if (typeof base !== 'object') {\n throw new Error(`Cannot resolve patch at '${path.join('/')}'.`);\n }\n }\n return base;\n}\n\nfunction strictCopy(target) {\n const copy = Object.create(Object.getPrototypeOf(target));\n Reflect.ownKeys(target).forEach((key) => {\n let desc = Reflect.getOwnPropertyDescriptor(target, key);\n if (desc.enumerable && desc.configurable && desc.writable) {\n copy[key] = target[key];\n return;\n }\n // for freeze\n if (!desc.writable) {\n desc.writable = true;\n desc.configurable = true;\n }\n if (desc.get || desc.set)\n desc = {\n configurable: true,\n writable: true,\n enumerable: desc.enumerable,\n value: target[key],\n };\n Reflect.defineProperty(copy, key, desc);\n });\n return copy;\n}\nconst propIsEnum = Object.prototype.propertyIsEnumerable;\nfunction shallowCopy(original, options) {\n let markResult;\n if (Array.isArray(original)) {\n return Array.prototype.concat.call(original);\n }\n else if (original instanceof Set) {\n return new Set(original.values());\n }\n else if (original instanceof Map) {\n return new Map(original);\n }\n else if ((options === null || options === void 0 ? void 0 : options.mark) &&\n ((markResult = options.mark(original, dataTypes)),\n markResult !== undefined) &&\n markResult !== dataTypes.mutable) {\n if (markResult === dataTypes.immutable) {\n return strictCopy(original);\n }\n else if (typeof markResult === 'function') {\n if ((options.enablePatches || options.enableAutoFreeze)) {\n throw new Error(`You can't use mark and patches or auto freeze together.`);\n }\n return markResult();\n }\n throw new Error(`Unsupported mark result: ${markResult}`);\n }\n else if (typeof original === 'object' &&\n Object.getPrototypeOf(original) === Object.prototype) {\n // For best performance with shallow copies,\n // don't use `Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));` by default.\n const copy = {};\n Object.keys(original).forEach((key) => {\n copy[key] = original[key];\n });\n Object.getOwnPropertySymbols(original).forEach((key) => {\n if (propIsEnum.call(original, key)) {\n copy[key] = original[key];\n }\n });\n return copy;\n }\n else {\n throw new Error(`Please check mark() to ensure that it is a stable marker draftable function.`);\n }\n}\nfunction ensureShallowCopy(target) {\n if (target.copy)\n return;\n target.copy = shallowCopy(target.original, target.options);\n}\nfunction deepClone(target) {\n if (!isDraftable(target))\n return getValue(target);\n if (Array.isArray(target))\n return target.map(deepClone);\n if (target instanceof Map)\n return new Map(Array.from(target.entries()).map(([k, v]) => [k, deepClone(v)]));\n if (target instanceof Set)\n return new Set(Array.from(target).map(deepClone));\n const copy = Object.create(Object.getPrototypeOf(target));\n for (const key in target)\n copy[key] = deepClone(target[key]);\n return copy;\n}\nfunction cloneIfNeeded(target) {\n return isDraft(target) ? deepClone(target) : target;\n}\n\nfunction markChanged(proxyDraft) {\n var _a;\n proxyDraft.assignedMap = (_a = proxyDraft.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n if (!proxyDraft.operated) {\n proxyDraft.operated = true;\n if (proxyDraft.parent) {\n markChanged(proxyDraft.parent);\n }\n }\n}\n\nfunction throwFrozenError() {\n throw new Error('Cannot modify frozen object');\n}\nfunction deepFreeze(target, subKey, updatedValues, stack, keys) {\n {\n updatedValues = updatedValues !== null && updatedValues !== void 0 ? updatedValues : new WeakMap();\n stack = stack !== null && stack !== void 0 ? stack : [];\n keys = keys !== null && keys !== void 0 ? keys : [];\n const value = updatedValues.has(target)\n ? updatedValues.get(target)\n : target;\n if (stack.length > 0) {\n const index = stack.indexOf(value);\n if (value && typeof value === 'object' && index !== -1) {\n if (stack[0] === value) {\n throw new Error(`Forbids circular reference`);\n }\n throw new Error(`Forbids circular reference: ~/${keys\n .slice(0, index)\n .map((key, index) => {\n if (typeof key === 'symbol')\n return `[${key.toString()}]`;\n const parent = stack[index];\n if (typeof key === 'object' &&\n (parent instanceof Map || parent instanceof Set))\n return Array.from(parent.keys()).indexOf(key);\n return key;\n })\n .join('/')}`);\n }\n stack.push(value);\n keys.push(subKey);\n }\n else {\n stack.push(value);\n }\n }\n if (Object.isFrozen(target) || isDraft(target)) {\n {\n stack.pop();\n keys.pop();\n }\n return;\n }\n const type = getType(target);\n switch (type) {\n case 2 /* DraftType.Map */:\n for (const [key, value] of target) {\n deepFreeze(key, key, updatedValues, stack, keys);\n deepFreeze(value, key, updatedValues, stack, keys);\n }\n target.set = target.clear = target.delete = throwFrozenError;\n break;\n case 3 /* DraftType.Set */:\n for (const value of target) {\n deepFreeze(value, value, updatedValues, stack, keys);\n }\n target.add = target.clear = target.delete = throwFrozenError;\n break;\n case 1 /* DraftType.Array */:\n Object.freeze(target);\n let index = 0;\n for (const value of target) {\n deepFreeze(value, index, updatedValues, stack, keys);\n index += 1;\n }\n break;\n default:\n Object.freeze(target);\n // ignore non-enumerable or symbol properties\n Object.keys(target).forEach((name) => {\n const value = target[name];\n deepFreeze(value, name, updatedValues, stack, keys);\n });\n }\n {\n stack.pop();\n keys.pop();\n }\n}\n\nfunction forEach(target, iter) {\n const type = getType(target);\n if (type === 0 /* DraftType.Object */) {\n Reflect.ownKeys(target).forEach((key) => {\n iter(key, target[key], target);\n });\n }\n else if (type === 1 /* DraftType.Array */) {\n let index = 0;\n for (const entry of target) {\n iter(index, entry, target);\n index += 1;\n }\n }\n else {\n target.forEach((entry, index) => iter(index, entry, target));\n }\n}\n\nfunction handleValue(target, handledSet, options) {\n if (isDraft(target) ||\n !isDraftable(target, options) ||\n handledSet.has(target) ||\n Object.isFrozen(target))\n return;\n const isSet = target instanceof Set;\n const setMap = isSet ? new Map() : undefined;\n handledSet.add(target);\n forEach(target, (key, value) => {\n var _a;\n if (isDraft(value)) {\n const proxyDraft = getProxyDraft(value);\n ensureShallowCopy(proxyDraft);\n // A draft where a child node has been changed, or assigned a value\n const updatedValue = ((_a = proxyDraft.assignedMap) === null || _a === void 0 ? void 0 : _a.size) || proxyDraft.operated\n ? proxyDraft.copy\n : proxyDraft.original;\n // final update value\n set(isSet ? setMap : target, key, updatedValue);\n }\n else {\n handleValue(value, handledSet, options);\n }\n });\n if (setMap) {\n const set = target;\n const values = Array.from(set);\n set.clear();\n values.forEach((value) => {\n set.add(setMap.has(value) ? setMap.get(value) : value);\n });\n }\n}\nfunction finalizeAssigned(proxyDraft, key) {\n // handle the draftable assigned values, and the value is not a draft\n const copy = proxyDraft.type === 3 /* DraftType.Set */ ? proxyDraft.setMap : proxyDraft.copy;\n if (proxyDraft.finalities.revoke.length > 1 &&\n proxyDraft.assignedMap.get(key) &&\n copy) {\n handleValue(get(copy, key), proxyDraft.finalities.handledSet, proxyDraft.options);\n }\n}\nfunction finalizeSetValue(target) {\n if (target.type === 3 /* DraftType.Set */ && target.copy) {\n target.copy.clear();\n target.setMap.forEach((value) => {\n target.copy.add(getValue(value));\n });\n }\n}\nfunction finalizePatches(target, generatePatches, patches, inversePatches) {\n const shouldFinalize = target.operated &&\n target.assignedMap &&\n target.assignedMap.size > 0 &&\n !target.finalized;\n if (shouldFinalize) {\n if (patches && inversePatches) {\n const basePath = getPath(target);\n if (basePath) {\n generatePatches(target, basePath, patches, inversePatches);\n }\n }\n target.finalized = true;\n }\n}\nfunction markFinalization(target, key, value, generatePatches) {\n const proxyDraft = getProxyDraft(value);\n if (proxyDraft) {\n // !case: assign the draft value\n if (!proxyDraft.callbacks) {\n proxyDraft.callbacks = [];\n }\n proxyDraft.callbacks.push((patches, inversePatches) => {\n var _a;\n const copy = target.type === 3 /* DraftType.Set */ ? target.setMap : target.copy;\n if (isEqual(get(copy, key), value)) {\n let updatedValue = proxyDraft.original;\n if (proxyDraft.copy) {\n updatedValue = proxyDraft.copy;\n }\n finalizeSetValue(target);\n finalizePatches(target, generatePatches, patches, inversePatches);\n if (target.options.enableAutoFreeze) {\n target.options.updatedValues =\n (_a = target.options.updatedValues) !== null && _a !== void 0 ? _a : new WeakMap();\n target.options.updatedValues.set(updatedValue, proxyDraft.original);\n }\n // final update value\n set(copy, key, updatedValue);\n }\n });\n if (target.options.enableAutoFreeze) {\n // !case: assign the draft value in cross draft tree\n if (proxyDraft.finalities !== target.finalities) {\n target.options.enableAutoFreeze = false;\n }\n }\n }\n if (isDraftable(value, target.options)) {\n // !case: assign the non-draft value\n target.finalities.draft.push(() => {\n const copy = target.type === 3 /* DraftType.Set */ ? target.setMap : target.copy;\n if (isEqual(get(copy, key), value)) {\n finalizeAssigned(target, key);\n }\n });\n }\n}\n\nfunction generateArrayPatches(proxyState, basePath, patches, inversePatches, pathAsArray) {\n let { original, assignedMap, options } = proxyState;\n let copy = proxyState.copy;\n if (copy.length < original.length) {\n [original, copy] = [copy, original];\n [patches, inversePatches] = [inversePatches, patches];\n }\n for (let index = 0; index < original.length; index += 1) {\n if (assignedMap.get(index.toString()) && copy[index] !== original[index]) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Replace,\n path,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: cloneIfNeeded(copy[index]),\n });\n inversePatches.push({\n op: Operation.Replace,\n path,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: cloneIfNeeded(original[index]),\n });\n }\n }\n for (let index = original.length; index < copy.length; index += 1) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Add,\n path,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: cloneIfNeeded(copy[index]),\n });\n }\n if (original.length < copy.length) {\n // https://www.rfc-editor.org/rfc/rfc6902#appendix-A.4\n // For performance, here we only generate an operation that replaces the length of the array,\n // which is inconsistent with JSON Patch specification\n const { arrayLengthAssignment = true } = options.enablePatches;\n if (arrayLengthAssignment) {\n const _path = basePath.concat(['length']);\n const path = escapePath(_path, pathAsArray);\n inversePatches.push({\n op: Operation.Replace,\n path,\n value: original.length,\n });\n }\n else {\n for (let index = copy.length; original.length < index; index -= 1) {\n const _path = basePath.concat([index - 1]);\n const path = escapePath(_path, pathAsArray);\n inversePatches.push({\n op: Operation.Remove,\n path,\n });\n }\n }\n }\n}\nfunction generatePatchesFromAssigned({ original, copy, assignedMap }, basePath, patches, inversePatches, pathAsArray) {\n assignedMap.forEach((assignedValue, key) => {\n const originalValue = get(original, key);\n const value = cloneIfNeeded(get(copy, key));\n const op = !assignedValue\n ? Operation.Remove\n : has(original, key)\n ? Operation.Replace\n : Operation.Add;\n if (isEqual(originalValue, value) && op === Operation.Replace)\n return;\n const _path = basePath.concat(key);\n const path = escapePath(_path, pathAsArray);\n patches.push(op === Operation.Remove ? { op, path } : { op, path, value });\n inversePatches.push(op === Operation.Add\n ? { op: Operation.Remove, path }\n : op === Operation.Remove\n ? { op: Operation.Add, path, value: originalValue }\n : { op: Operation.Replace, path, value: originalValue });\n });\n}\nfunction generateSetPatches({ original, copy }, basePath, patches, inversePatches, pathAsArray) {\n let index = 0;\n original.forEach((value) => {\n if (!copy.has(value)) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Remove,\n path,\n value,\n });\n inversePatches.unshift({\n op: Operation.Add,\n path,\n value,\n });\n }\n index += 1;\n });\n index = 0;\n copy.forEach((value) => {\n if (!original.has(value)) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Add,\n path,\n value,\n });\n inversePatches.unshift({\n op: Operation.Remove,\n path,\n value,\n });\n }\n index += 1;\n });\n}\nfunction generatePatches(proxyState, basePath, patches, inversePatches) {\n const { pathAsArray = true } = proxyState.options.enablePatches;\n switch (proxyState.type) {\n case 0 /* DraftType.Object */:\n case 2 /* DraftType.Map */:\n return generatePatchesFromAssigned(proxyState, basePath, patches, inversePatches, pathAsArray);\n case 1 /* DraftType.Array */:\n return generateArrayPatches(proxyState, basePath, patches, inversePatches, pathAsArray);\n case 3 /* DraftType.Set */:\n return generateSetPatches(proxyState, basePath, patches, inversePatches, pathAsArray);\n }\n}\n\nlet readable = false;\nconst checkReadable = (value, options, ignoreCheckDraftable = false) => {\n if (typeof value === 'object' &&\n value !== null &&\n (!isDraftable(value, options) || ignoreCheckDraftable) &&\n !readable) {\n throw new Error(`Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.`);\n }\n};\n/**\n * `unsafe(callback)` to access mutable data directly in strict mode.\n *\n * ## Example\n *\n * ```ts\n * import { create, unsafe } from '../index';\n *\n * class Foobar {\n * bar = 1;\n * }\n *\n * const baseState = { foobar: new Foobar() };\n * const state = create(\n * baseState,\n * (draft) => {\n * unsafe(() => {\n * draft.foobar.bar = 2;\n * });\n * },\n * {\n * strict: true,\n * }\n * );\n *\n * expect(state).toBe(baseState);\n * expect(state.foobar).toBe(baseState.foobar);\n * expect(state.foobar.bar).toBe(2);\n * ```\n */\nfunction unsafe(callback) {\n readable = true;\n let result;\n try {\n result = callback();\n }\n finally {\n readable = false;\n }\n return result;\n}\n\nconst mapHandler = {\n get size() {\n const current = latest(getProxyDraft(this));\n return current.size;\n },\n has(key) {\n return latest(getProxyDraft(this)).has(key);\n },\n set(key, value) {\n const target = getProxyDraft(this);\n const source = latest(target);\n if (!source.has(key) || !isEqual(source.get(key), value)) {\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap.set(key, true);\n target.copy.set(key, value);\n markFinalization(target, key, value, generatePatches);\n }\n return this;\n },\n delete(key) {\n if (!this.has(key)) {\n return false;\n }\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n markChanged(target);\n if (target.original.has(key)) {\n target.assignedMap.set(key, false);\n }\n else {\n target.assignedMap.delete(key);\n }\n target.copy.delete(key);\n return true;\n },\n clear() {\n const target = getProxyDraft(this);\n if (!this.size)\n return;\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap = new Map();\n for (const [key] of target.original) {\n target.assignedMap.set(key, false);\n }\n target.copy.clear();\n },\n forEach(callback, thisArg) {\n const target = getProxyDraft(this);\n latest(target).forEach((_value, _key) => {\n callback.call(thisArg, this.get(_key), _key, this);\n });\n },\n get(key) {\n var _a, _b;\n const target = getProxyDraft(this);\n const value = latest(target).get(key);\n const mutable = ((_b = (_a = target.options).mark) === null || _b === void 0 ? void 0 : _b.call(_a, value, dataTypes)) === dataTypes.mutable;\n if (target.options.strict) {\n checkReadable(value, target.options, mutable);\n }\n if (mutable) {\n return value;\n }\n if (target.finalized || !isDraftable(value, target.options)) {\n return value;\n }\n // drafted or reassigned\n if (value !== target.original.get(key)) {\n return value;\n }\n const draft = internal.createDraft({\n original: value,\n parentDraft: target,\n key,\n finalities: target.finalities,\n options: target.options,\n });\n ensureShallowCopy(target);\n target.copy.set(key, draft);\n return draft;\n },\n keys() {\n return latest(getProxyDraft(this)).keys();\n },\n values() {\n const iterator = this.keys();\n return {\n [iteratorSymbol]: () => this.values(),\n next: () => {\n const result = iterator.next();\n if (result.done)\n return result;\n const value = this.get(result.value);\n return {\n done: false,\n value,\n };\n },\n };\n },\n entries() {\n const iterator = this.keys();\n return {\n [iteratorSymbol]: () => this.entries(),\n next: () => {\n const result = iterator.next();\n if (result.done)\n return result;\n const value = this.get(result.value);\n return {\n done: false,\n value: [result.value, value],\n };\n },\n };\n },\n [iteratorSymbol]() {\n return this.entries();\n },\n};\nconst mapHandlerKeys = Reflect.ownKeys(mapHandler);\n\nconst getNextIterator = (target, iterator, { isValuesIterator }) => () => {\n var _a, _b;\n const result = iterator.next();\n if (result.done)\n return result;\n const key = result.value;\n let value = target.setMap.get(key);\n const currentDraft = getProxyDraft(value);\n const mutable = ((_b = (_a = target.options).mark) === null || _b === void 0 ? void 0 : _b.call(_a, value, dataTypes)) === dataTypes.mutable;\n if (target.options.strict) {\n checkReadable(key, target.options, mutable);\n }\n if (!mutable &&\n !currentDraft &&\n isDraftable(key, target.options) &&\n !target.finalized &&\n target.original.has(key)) {\n // draft a draftable original set item\n const proxy = internal.createDraft({\n original: key,\n parentDraft: target,\n key,\n finalities: target.finalities,\n options: target.options,\n });\n target.setMap.set(key, proxy);\n value = proxy;\n }\n else if (currentDraft) {\n // drafted\n value = currentDraft.proxy;\n }\n return {\n done: false,\n value: isValuesIterator ? value : [value, value],\n };\n};\nconst setHandler = {\n get size() {\n const target = getProxyDraft(this);\n return target.setMap.size;\n },\n has(value) {\n const target = getProxyDraft(this);\n // reassigned or non-draftable values\n if (target.setMap.has(value))\n return true;\n ensureShallowCopy(target);\n const valueProxyDraft = getProxyDraft(value);\n // drafted\n if (valueProxyDraft && target.setMap.has(valueProxyDraft.original))\n return true;\n return false;\n },\n add(value) {\n const target = getProxyDraft(this);\n if (!this.has(value)) {\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap.set(value, true);\n target.setMap.set(value, value);\n markFinalization(target, value, value, generatePatches);\n }\n return this;\n },\n delete(value) {\n if (!this.has(value)) {\n return false;\n }\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n markChanged(target);\n const valueProxyDraft = getProxyDraft(value);\n if (valueProxyDraft && target.setMap.has(valueProxyDraft.original)) {\n // delete drafted\n target.assignedMap.set(valueProxyDraft.original, false);\n return target.setMap.delete(valueProxyDraft.original);\n }\n if (!valueProxyDraft && target.setMap.has(value)) {\n // non-draftable values\n target.assignedMap.set(value, false);\n }\n else {\n // reassigned\n target.assignedMap.delete(value);\n }\n // delete reassigned or non-draftable values\n return target.setMap.delete(value);\n },\n clear() {\n if (!this.size)\n return;\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n markChanged(target);\n for (const value of target.original) {\n target.assignedMap.set(value, false);\n }\n target.setMap.clear();\n },\n values() {\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n const iterator = target.setMap.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: getNextIterator(target, iterator, { isValuesIterator: true }),\n };\n },\n entries() {\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n const iterator = target.setMap.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: getNextIterator(target, iterator, {\n isValuesIterator: false,\n }),\n };\n },\n keys() {\n return this.values();\n },\n [iteratorSymbol]() {\n return this.values();\n },\n forEach(callback, thisArg) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n callback.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n },\n};\nconst setHandlerKeys = Reflect.ownKeys(setHandler);\n\nconst draftsCache = new WeakSet();\nconst proxyHandler = {\n get(target, key, receiver) {\n var _a, _b;\n const copy = (_a = target.copy) === null || _a === void 0 ? void 0 : _a[key];\n // Improve draft reading performance by caching the draft copy.\n if (copy && draftsCache.has(copy)) {\n return copy;\n }\n if (key === PROXY_DRAFT)\n return target;\n let markResult;\n if (target.options.mark) {\n // handle `Uncaught TypeError: Method get Map.prototype.size called on incompatible receiver #<Map>`\n // or `Uncaught TypeError: Method get Set.prototype.size called on incompatible receiver #<Set>`\n const value = key === 'size' &&\n (target.original instanceof Map || target.original instanceof Set)\n ? Reflect.get(target.original, key)\n : Reflect.get(target.original, key, receiver);\n markResult = target.options.mark(value, dataTypes);\n if (markResult === dataTypes.mutable) {\n if (target.options.strict) {\n checkReadable(value, target.options, true);\n }\n return value;\n }\n }\n const source = latest(target);\n if (source instanceof Map && mapHandlerKeys.includes(key)) {\n if (key === 'size') {\n return Object.getOwnPropertyDescriptor(mapHandler, 'size').get.call(target.proxy);\n }\n const handle = mapHandler[key];\n if (handle) {\n return handle.bind(target.proxy);\n }\n }\n if (source instanceof Set && setHandlerKeys.includes(key)) {\n if (key === 'size') {\n return Object.getOwnPropertyDescriptor(setHandler, 'size').get.call(target.proxy);\n }\n const handle = setHandler[key];\n if (handle) {\n return handle.bind(target.proxy);\n }\n }\n if (!has(source, key)) {\n const desc = getDescriptor(source, key);\n return desc\n ? `value` in desc\n ? desc.value\n : // !case: support for getter\n (_b = desc.get) === null || _b === void 0 ? void 0 : _b.call(target.proxy)\n : undefined;\n }\n const value = source[key];\n if (target.options.strict) {\n checkReadable(value, target.options);\n }\n if (target.finalized || !isDraftable(value, target.options)) {\n return value;\n }\n // Ensure that the assigned values are not drafted\n if (value === peek(target.original, key)) {\n ensureShallowCopy(target);\n target.copy[key] = createDraft({\n original: target.original[key],\n parentDraft: target,\n key: target.type === 1 /* DraftType.Array */ ? Number(key) : key,\n finalities: target.finalities,\n options: target.options,\n });\n // !case: support for custom shallow copy function\n if (typeof markResult === 'function') {\n const subProxyDraft = getProxyDraft(target.copy[key]);\n ensureShallowCopy(subProxyDraft);\n // Trigger a custom shallow copy to update to a new copy\n markChanged(subProxyDraft);\n return subProxyDraft.copy;\n }\n return target.copy[key];\n }\n return value;\n },\n set(target, key, value) {\n var _a;\n if (target.type === 3 /* DraftType.Set */ || target.type === 2 /* DraftType.Map */) {\n throw new Error(`Map/Set draft does not support any property assignment.`);\n }\n let _key;\n if (target.type === 1 /* DraftType.Array */ &&\n key !== 'length' &&\n !(Number.isInteger((_key = Number(key))) &&\n _key >= 0 &&\n (key === 0 || _key === 0 || String(_key) === String(key)))) {\n throw new Error(`Only supports setting array indices and the 'length' property.`);\n }\n const desc = getDescriptor(latest(target), key);\n if (desc === null || desc === void 0 ? void 0 : desc.set) {\n // !case: cover the case of setter\n desc.set.call(target.proxy, value);\n return true;\n }\n const current = peek(latest(target), key);\n const currentProxyDraft = getProxyDraft(current);\n if (currentProxyDraft && isEqual(currentProxyDraft.original, value)) {\n // !case: ignore the case of assigning the original draftable value to a draft\n target.copy[key] = value;\n target.assignedMap = (_a = target.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n target.assignedMap.set(key, false);\n return true;\n }\n // !case: handle new props with value 'undefined'\n if (isEqual(value, current) &&\n (value !== undefined || has(target.original, key)))\n return true;\n ensureShallowCopy(target);\n markChanged(target);\n if (has(target.original, key) && isEqual(value, target.original[key])) {\n // !case: handle the case of assigning the original non-draftable value to a draft\n target.assignedMap.delete(key);\n }\n else {\n target.assignedMap.set(key, true);\n }\n target.copy[key] = value;\n markFinalization(target, key, value, generatePatches);\n return true;\n },\n has(target, key) {\n return key in latest(target);\n },\n ownKeys(target) {\n return Reflect.ownKeys(latest(target));\n },\n getOwnPropertyDescriptor(target, key) {\n const source = latest(target);\n const descriptor = Reflect.getOwnPropertyDescriptor(source, key);\n if (!descriptor)\n return descriptor;\n return {\n writable: true,\n configurable: target.type !== 1 /* DraftType.Array */ || key !== 'length',\n enumerable: descriptor.enumerable,\n value: source[key],\n };\n },\n getPrototypeOf(target) {\n return Reflect.getPrototypeOf(target.original);\n },\n setPrototypeOf() {\n throw new Error(`Cannot call 'setPrototypeOf()' on drafts`);\n },\n defineProperty() {\n throw new Error(`Cannot call 'defineProperty()' on drafts`);\n },\n deleteProperty(target, key) {\n var _a;\n if (target.type === 1 /* DraftType.Array */) {\n return proxyHandler.set.call(this, target, key, undefined, target.proxy);\n }\n if (peek(target.original, key) !== undefined || key in target.original) {\n // !case: delete an existing key\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap.set(key, false);\n }\n else {\n target.assignedMap = (_a = target.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n // The original non-existent key has been deleted\n target.assignedMap.delete(key);\n }\n if (target.copy)\n delete target.copy[key];\n return true;\n },\n};\nfunction createDraft(createDraftOptions) {\n const { original, parentDraft, key, finalities, options } = createDraftOptions;\n const type = getType(original);\n const proxyDraft = {\n type,\n finalized: false,\n parent: parentDraft,\n original,\n copy: null,\n proxy: null,\n finalities,\n options,\n // Mapping of draft Set items to their corresponding draft values.\n setMap: type === 3 /* DraftType.Set */\n ? new Map(original.entries())\n : undefined,\n };\n // !case: undefined as a draft map key\n if (key || 'key' in createDraftOptions) {\n proxyDraft.key = key;\n }\n const { proxy, revoke } = Proxy.revocable(type === 1 /* DraftType.Array */ ? Object.assign([], proxyDraft) : proxyDraft, proxyHandler);\n finalities.revoke.push(revoke);\n draftsCache.add(proxy);\n proxyDraft.proxy = proxy;\n if (parentDraft) {\n const target = parentDraft;\n target.finalities.draft.push((patches, inversePatches) => {\n var _a, _b;\n const oldProxyDraft = getProxyDraft(proxy);\n // if target is a Set draft, `setMap` is the real Set copies proxy mapping.\n let copy = target.type === 3 /* DraftType.Set */ ? target.setMap : target.copy;\n const draft = get(copy, key);\n const proxyDraft = getProxyDraft(draft);\n if (proxyDraft) {\n // assign the updated value to the copy object\n let updatedValue = proxyDraft.original;\n if (proxyDraft.operated) {\n updatedValue = getValue(draft);\n }\n finalizeSetValue(proxyDraft);\n finalizePatches(proxyDraft, generatePatches, patches, inversePatches);\n if (target.options.enableAutoFreeze) {\n target.options.updatedValues =\n (_a = target.options.updatedValues) !== null && _a !== void 0 ? _a : new WeakMap();\n target.options.updatedValues.set(updatedValue, proxyDraft.original);\n }\n // final update value\n set(copy, key, updatedValue);\n }\n // !case: handle the deleted key\n (_b = oldProxyDraft.callbacks) === null || _b === void 0 ? void 0 : _b.forEach((callback) => {\n callback(patches, inversePatches);\n });\n });\n }\n else {\n // !case: handle the root draft\n const target = getProxyDraft(proxy);\n target.finalities.draft.push((patches, inversePatches) => {\n finalizeSetValue(target);\n finalizePatches(target, generatePatches, patches, inversePatches);\n });\n }\n return proxy;\n}\ninternal.createDraft = createDraft;\nfunction finalizeDraft(result, returnedValue, patches, inversePatches, enableAutoFreeze) {\n var _a;\n const proxyDraft = getProxyDraft(result);\n const original = (_a = proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.original) !== null && _a !== void 0 ? _a : result;\n const hasReturnedValue = !!returnedValue.length;\n if (proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.operated) {\n while (proxyDraft.finalities.draft.length > 0) {\n const finalize = proxyDraft.finalities.draft.pop();\n finalize(patches, inversePatches);\n }\n }\n const state = hasReturnedValue\n ? returnedValue[0]\n : proxyDraft\n ? proxyDraft.operated\n ? proxyDraft.copy\n : proxyDraft.original\n : result;\n if (proxyDraft)\n revokeProxy(proxyDraft);\n if (enableAutoFreeze) {\n deepFreeze(state, state, proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.options.updatedValues);\n }\n return [\n state,\n patches && hasReturnedValue\n ? [{ op: Operation.Replace, path: [], value: returnedValue[0] }]\n : patches,\n inversePatches && hasReturnedValue\n ? [{ op: Operation.Replace, path: [], value: original }]\n : inversePatches,\n ];\n}\n\nfunction draftify(baseState, options) {\n var _a;\n const finalities = {\n draft: [],\n revoke: [],\n handledSet: new WeakSet(),\n };\n let patches;\n let inversePatches;\n if (options.enablePatches) {\n patches = [];\n inversePatches = [];\n }\n const isMutable = ((_a = options.mark) === null || _a === void 0 ? void 0 : _a.call(options, baseState, dataTypes)) === dataTypes.mutable ||\n !isDraftable(baseState, options);\n const draft = isMutable\n ? baseState\n : createDraft({\n original: baseState,\n parentDraft: null,\n finalities,\n options,\n });\n return [\n draft,\n (returnedValue = []) => {\n const [finalizedState, finalizedPatches, finalizedInversePatches] = finalizeDraft(draft, returnedValue, patches, inversePatches, options.enableAutoFreeze);\n return (options.enablePatches\n ? [finalizedState, finalizedPatches, finalizedInversePatches]\n : finalizedState);\n },\n ];\n}\n\nfunction handleReturnValue(options) {\n const { rootDraft, value, useRawReturn = false, isRoot = true } = options;\n forEach(value, (key, item, source) => {\n const proxyDraft = getProxyDraft(item);\n // just handle the draft which is created by the same rootDraft\n if (proxyDraft &&\n rootDraft &&\n proxyDraft.finalities === rootDraft.finalities) {\n options.isContainDraft = true;\n const currentValue = proxyDraft.original;\n // final update value, but just handle return value\n if (source instanceof Set) {\n const arr = Array.from(source);\n source.clear();\n arr.forEach((_item) => source.add(key === _item ? currentValue : _item));\n }\n else {\n set(source, key, currentValue);\n }\n }\n else if (typeof item === 'object' && item !== null) {\n options.value = item;\n options.isRoot = false;\n handleReturnValue(options);\n }\n });\n if (isRoot) {\n if (!options.isContainDraft)\n console.warn(`The return value does not contain any draft, please use 'rawReturn()' to wrap the return value to improve performance.`);\n if (useRawReturn) {\n console.warn(`The return value contains drafts, please don't use 'rawReturn()' to wrap the return value.`);\n }\n }\n}\nfunction getCurrent(target) {\n const proxyDraft = getProxyDraft(target);\n if (!isDraftable(target, proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.options))\n return target;\n const type = getType(target);\n if (proxyDraft && !proxyDraft.operated)\n return proxyDraft.original;\n let currentValue;\n function ensureShallowCopy() {\n currentValue =\n type === 2 /* DraftType.Map */\n ? new Map(target)\n : type === 3 /* DraftType.Set */\n ? Array.from(proxyDraft.setMap.values())\n : shallowCopy(target, proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.options);\n }\n if (proxyDraft) {\n // It's a proxy draft, let's create a shallow copy eagerly\n proxyDraft.finalized = true;\n try {\n ensureShallowCopy();\n }\n finally {\n proxyDraft.finalized = false;\n }\n }\n else {\n // It's not a proxy draft, let's use the target directly and let's see\n // lazily if we need to create a shallow copy\n currentValue = target;\n }\n forEach(currentValue, (key, value) => {\n if (proxyDraft && isEqual(get(proxyDraft.original, key), value))\n return;\n const newValue = getCurrent(value);\n if (newValue !== value) {\n if (currentValue === target)\n ensureShallowCopy();\n set(currentValue, key, newValue);\n }\n });\n return type === 3 /* DraftType.Set */ ? new Set(currentValue) : currentValue;\n}\n/**\n * `current(draft)` to get current state in the draft mutation function.\n *\n * ## Example\n *\n * ```ts\n * import { create, current } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const state = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * expect(current(draft.foo)).toEqual({ bar: 'str2' });\n * },\n * );\n * ```\n */\nfunction current(target) {\n if (!isDraft(target)) {\n throw new Error(`current() is only used for Draft, parameter: ${target}`);\n }\n return getCurrent(target);\n}\n\n/**\n * `makeCreator(options)` to make a creator function.\n *\n * ## Example\n *\n * ```ts\n * import { makeCreator } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const create = makeCreator({ enableAutoFreeze: true });\n * const state = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * },\n * );\n *\n * expect(state).toEqual({ foo: { bar: 'str2' }, arr: [] });\n * expect(state).not.toBe(baseState);\n * expect(state.foo).not.toBe(baseState.foo);\n * expect(state.arr).toBe(baseState.arr);\n * expect(Object.isFrozen(state)).toBeTruthy();\n * ```\n */\nconst makeCreator = (arg) => {\n if (arg !== undefined &&\n Object.prototype.toString.call(arg) !== '[object Object]') {\n throw new Error(`Invalid options: ${String(arg)}, 'options' should be an object.`);\n }\n return function create(arg0, arg1, arg2) {\n var _a, _b, _c;\n if (typeof arg0 === 'function' && typeof arg1 !== 'function') {\n return function (base, ...args) {\n return create(base, (draft) => arg0.call(this, draft, ...args), arg1);\n };\n }\n const base = arg0;\n const mutate = arg1;\n let options = arg2;\n if (typeof arg1 !== 'function') {\n options = arg1;\n }\n if (options !== undefined &&\n Object.prototype.toString.call(options) !== '[object Object]') {\n throw new Error(`Invalid options: ${options}, 'options' should be an object.`);\n }\n options = Object.assign(Object.assign({}, arg), options);\n const state = isDraft(base) ? current(base) : base;\n const mark = Array.isArray(options.mark)\n ? ((value, types) => {\n for (const mark of options.mark) {\n if (typeof mark !== 'function') {\n throw new Error(`Invalid mark: ${mark}, 'mark' should be a function.`);\n }\n const result = mark(value, types);\n if (result) {\n return result;\n }\n }\n return;\n })\n : options.mark;\n const enablePatches = (_a = options.enablePatches) !== null && _a !== void 0 ? _a : false;\n const strict = (_b = options.strict) !== null && _b !== void 0 ? _b : false;\n const enableAutoFreeze = (_c = options.enableAutoFreeze) !== null && _c !== void 0 ? _c : false;\n const _options = {\n enableAutoFreeze,\n mark,\n strict,\n enablePatches,\n };\n if (!isDraftable(state, _options) &&\n typeof state === 'object' &&\n state !== null) {\n throw new Error(`Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.`);\n }\n const [draft, finalize] = draftify(state, _options);\n if (typeof arg1 !== 'function') {\n if (!isDraftable(state, _options)) {\n throw new Error(`Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.`);\n }\n return [draft, finalize];\n }\n let result;\n try {\n result = mutate(draft);\n }\n catch (error) {\n revokeProxy(getProxyDraft(draft));\n throw error;\n }\n const returnValue = (value) => {\n const proxyDraft = getProxyDraft(draft);\n if (!isDraft(value)) {\n if (value !== undefined &&\n !isEqual(value, draft) &&\n (proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.operated)) {\n throw new Error(`Either the value is returned as a new non-draft value, or only the draft is modified without returning any value.`);\n }\n const rawReturnValue = value === null || value === void 0 ? void 0 : value[RAW_RETURN_SYMBOL];\n if (rawReturnValue) {\n const _value = rawReturnValue[0];\n if (_options.strict && typeof value === 'object' && value !== null) {\n handleReturnValue({\n rootDraft: proxyDraft,\n value,\n useRawReturn: true,\n });\n }\n return finalize([_value]);\n }\n if (value !== undefined) {\n if (typeof value === 'object' && value !== null) {\n handleReturnValue({ rootDraft: proxyDraft, value });\n }\n return finalize([value]);\n }\n }\n if (value === draft || value === undefined) {\n return finalize([]);\n }\n const returnedProxyDraft = getProxyDraft(value);\n if (_options === returnedProxyDraft.options) {\n if (returnedProxyDraft.operated) {\n throw new Error(`Cannot return a modified child draft.`);\n }\n return finalize([current(value)]);\n }\n return finalize([value]);\n };\n if (result instanceof Promise) {\n return result.then(returnValue, (error) => {\n revokeProxy(getProxyDraft(draft));\n throw error;\n });\n }\n return returnValue(result);\n };\n};\n\n/**\n * `create(baseState, callback, options)` to create the next state\n *\n * ## Example\n *\n * ```ts\n * import { create } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const state = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * },\n * );\n *\n * expect(state).toEqual({ foo: { bar: 'str2' }, arr: [] });\n * expect(state).not.toBe(baseState);\n * expect(state.foo).not.toBe(baseState.foo);\n * expect(state.arr).toBe(baseState.arr);\n * ```\n */\nconst create = makeCreator();\n\n/**\n * `apply(state, patches)` to apply patches to state\n *\n * ## Example\n *\n * ```ts\n * import { create, apply } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const [state, patches] = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * },\n * { enablePatches: true }\n * );\n * expect(state).toEqual({ foo: { bar: 'str2' }, arr: [] });\n * expect(patches).toEqual([{ op: 'replace', path: ['foo', 'bar'], value: 'str2' }]);\n * expect(state).toEqual(apply(baseState, patches));\n * ```\n */\nfunction apply(state, patches, applyOptions) {\n let i;\n for (i = patches.length - 1; i >= 0; i -= 1) {\n const { value, op, path } = patches[i];\n if ((!path.length && op === Operation.Replace) ||\n (path === '' && op === Operation.Add)) {\n state = value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const mutate = (draft) => {\n patches.forEach((patch) => {\n const { path: _path, op } = patch;\n const path = unescapePath(_path);\n let base = draft;\n for (let index = 0; index < path.length - 1; index += 1) {\n const parentType = getType(base);\n let key = path[index];\n if (typeof key !== 'string' && typeof key !== 'number') {\n key = String(key);\n }\n if (((parentType === 0 /* DraftType.Object */ ||\n parentType === 1 /* DraftType.Array */) &&\n (key === '__proto__' || key === 'constructor')) ||\n (typeof base === 'function' && key === 'prototype')) {\n throw new Error(`Patching reserved attributes like __proto__ and constructor is not allowed.`);\n }\n // use `index` in Set draft\n base = get(parentType === 3 /* DraftType.Set */ ? Array.from(base) : base, key);\n if (typeof base !== 'object') {\n throw new Error(`Cannot apply patch at '${path.join('/')}'.`);\n }\n }\n const type = getType(base);\n // ensure the original patch is not modified.\n const value = deepClone(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case Operation.Replace:\n switch (type) {\n case 2 /* DraftType.Map */:\n return base.set(key, value);\n case 3 /* DraftType.Set */:\n throw new Error(`Cannot apply replace patch to set.`);\n default:\n return (base[key] = value);\n }\n case Operation.Add:\n switch (type) {\n case 1 /* DraftType.Array */:\n // If the \"-\" character is used to\n // index the end of the array (see [RFC6901](https://datatracker.ietf.org/doc/html/rfc6902)),\n // this has the effect of appending the value to the array.\n return key === '-'\n ? base.push(value)\n : base.splice(key, 0, value);\n case 2 /* DraftType.Map */:\n return base.set(key, value);\n case 3 /* DraftType.Set */:\n return base.add(value);\n default:\n return (base[key] = value);\n }\n case Operation.Remove:\n switch (type) {\n case 1 /* DraftType.Array */:\n return base.splice(key, 1);\n case 2 /* DraftType.Map */:\n return base.delete(key);\n case 3 /* DraftType.Set */:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n throw new Error(`Unsupported patch operation: ${op}.`);\n }\n });\n };\n if (isDraft(state)) {\n if (applyOptions !== undefined) {\n throw new Error(`Cannot apply patches with options to a draft.`);\n }\n mutate(state);\n return state;\n }\n return create(state, mutate, Object.assign(Object.assign({}, applyOptions), { enablePatches: false }));\n}\n\n/**\n * `original(draft)` to get original state in the draft mutation function.\n *\n * ## Example\n *\n * ```ts\n * import { create, original } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const state = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * expect(original(draft.foo)).toEqual({ bar: 'str' });\n * }\n * );\n * ```\n */\nfunction original(target) {\n const proxyDraft = getProxyDraft(target);\n if (!proxyDraft) {\n throw new Error(`original() is only used for a draft, parameter: ${target}`);\n }\n return proxyDraft.original;\n}\n\n/**\n * Use rawReturn() to wrap the return value to skip the draft check and thus improve performance.\n *\n * ## Example\n *\n * ```ts\n * import { create, rawReturn } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const state = create(\n * baseState,\n * (draft) => {\n * return rawReturn(baseState);\n * },\n * );\n * expect(state).toBe(baseState);\n * ```\n */\nfunction rawReturn(value) {\n if (arguments.length === 0) {\n throw new Error('rawReturn() must be called with a value.');\n }\n if (arguments.length > 1) {\n throw new Error('rawReturn() must be called with one argument.');\n }\n if (value !== undefined &&\n (typeof value !== 'object' || value === null)) {\n console.warn('rawReturn() must be called with an object(including plain object, arrays, Set, Map, etc.) or `undefined`, other types do not need to be returned via rawReturn().');\n }\n return {\n [RAW_RETURN_SYMBOL]: [value],\n };\n}\n\nconst constructorString = Object.prototype.constructor.toString();\n/**\n * Check if the value is a simple object(No prototype chain object or iframe same-origin object),\n * support case: https://github.com/unadlib/mutative/issues/17\n */\nconst isSimpleObject = (value) => {\n if (!value || typeof value !== 'object')\n return false;\n const prototype = Object.getPrototypeOf(value);\n if (prototype === null) {\n return true;\n }\n const constructor = Object.hasOwnProperty.call(prototype, 'constructor') &&\n prototype.constructor;\n if (constructor === Object)\n return true;\n return (typeof constructor === 'function' &&\n Function.toString.call(constructor) === constructorString);\n};\nconst markSimpleObject = (value) => {\n if (isSimpleObject(value)) {\n return dataTypes.immutable;\n }\n return;\n};\n\n/**\n * Cast a value to an Draft type value.\n */\nfunction castDraft(value) {\n return value;\n}\n/**\n * Cast a value to an Immutable type value.\n */\nfunction castImmutable(value) {\n return value;\n}\n\nexport { apply, castDraft, castImmutable, create, current, isDraft, isDraftable, makeCreator, markSimpleObject, original, rawReturn, unsafe };\n//# sourceMappingURL=mutative.esm.mjs.map\n",null,null,"/*\n * base64-arraybuffer 1.0.2 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n//# sourceMappingURL=base64-arraybuffer.es5.js.map\n",null,null,null,null,"'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","function y(t) {\n return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, \"default\") ? t.default : t;\n}\nvar p = function(t, n) {\n n || (n = {}), typeof n == \"function\" && (n = { cmp: n });\n var r = typeof n.cycles == \"boolean\" ? n.cycles : !1, e = n.cmp && /* @__PURE__ */ function(s) {\n return function(a) {\n return function(c, l) {\n var u = { key: c, value: a[c] }, i = { key: l, value: a[l] };\n return s(u, i);\n };\n };\n }(n.cmp), o = [];\n return function s(a) {\n if (a && a.toJSON && typeof a.toJSON == \"function\" && (a = a.toJSON()), a !== void 0) {\n if (typeof a == \"number\") return isFinite(a) ? \"\" + a : \"null\";\n if (typeof a != \"object\") return JSON.stringify(a);\n var c, l;\n if (Array.isArray(a)) {\n for (l = \"[\", c = 0; c < a.length; c++)\n c && (l += \",\"), l += s(a[c]) || \"null\";\n return l + \"]\";\n }\n if (a === null) return \"null\";\n if (o.indexOf(a) !== -1) {\n if (r) return JSON.stringify(\"__cycle__\");\n throw new TypeError(\"Converting circular structure to JSON\");\n }\n var u = o.push(a) - 1, i = Object.keys(a).sort(e && e(a));\n for (l = \"\", c = 0; c < i.length; c++) {\n var h = i[c], g = s(a[h]);\n g && (l && (l += \",\"), l += JSON.stringify(h) + \":\" + g);\n }\n return o.splice(u, 1), \"{\" + l + \"}\";\n }\n }(t);\n};\nconst V = /* @__PURE__ */ y(p), S = (t) => w(V(t)), b = (t) => {\n if (t && t.length > 0)\n try {\n return JSON.parse(U(t));\n } catch {\n return JSON.parse(decodeURIComponent(atob(decodeURIComponent(t))));\n }\n}, w = (t) => btoa(encodeURIComponent(t)), U = (t) => {\n try {\n return decodeURIComponent(atob(t));\n } catch {\n return decodeURIComponent(atob(decodeURIComponent(t)));\n }\n}, I = (t) => {\n const n = t instanceof URL ? t : new URL(t);\n return H(n.hash);\n}, H = (t) => {\n let n = t;\n for (; n.startsWith(\"#\"); )\n n = n.substring(1);\n const r = n.indexOf(\"?\");\n if (r === -1)\n return [n, {}];\n const e = n.substring(0, r);\n n = n.substring(r + 1);\n const o = {};\n return n.split(\"&\").filter((s) => s.length > 0).map((s) => {\n const a = s.indexOf(\"=\");\n if (a === -1)\n return [s, \"\"];\n const c = s.substring(0, a), l = s.substring(a + 1);\n return [c, l];\n }).forEach(([s, a]) => {\n o[s] = a;\n }), Object.keys(o).forEach((s) => {\n o[s] = o[s];\n }), [e, o];\n}, d = (t, n) => {\n const [r, e] = I(t);\n return e[n];\n}, N = (t) => F()[1][t], F = () => I(window.location.href), m = (t, n, r) => {\n const e = window.location.hash.startsWith(\"#\") ? window.location.hash.substring(1) : window.location.hash, o = P(e, t, n);\n o !== e && (r != null && r.modifyHistory ? window.location.hash = o : (window.history.replaceState(null, document.title, `${window.location.pathname}${window.location.search}${o.startsWith(\"#\") ? \"\" : \"#\"}${o}`), window.dispatchEvent(new HashChangeEvent(\"hashchange\"))));\n}, P = (t, n, r) => {\n const [e, o] = H(t);\n let s = !1;\n if (o.hasOwnProperty(n) && r === null || r === void 0 ? (delete o[n], s = !0) : o[n] !== r && (o[n] = r, s = !0), !s)\n return t;\n const a = Object.keys(o);\n a.sort();\n const c = a.map((l, u) => {\n const i = o[l];\n return /^[A-Za-z0-9+/]+={0,2}$/.test(i) && i.length % 4, `${l}=${i}`;\n }).join(\"&\");\n return !e && !c ? \"\" : `${e || \"\"}${c ? \"?\" + c : \"\"}`;\n}, O = (t, n) => {\n let r = t;\n for (; r.startsWith(\"#\"); )\n r = r.substring(1);\n const e = r.indexOf(\"?\"), o = e === -1 ? r : r.substring(0, e), s = {};\n if (e !== -1) {\n const u = r.substring(e + 1);\n u.length > 0 && u.split(\"&\").forEach((i) => {\n if (i.length > 0) {\n const h = i.indexOf(\"=\");\n if (h === -1)\n s[i] = \"\";\n else {\n const g = i.substring(0, h), v = i.substring(h + 1);\n s[g] = v;\n }\n }\n });\n }\n let a = !1;\n for (const [u, i] of Object.entries(n))\n i == null ? s.hasOwnProperty(u) && (delete s[u], a = !0) : s[u] !== i && (s[u] = i, a = !0);\n if (!a)\n return t;\n const c = Object.keys(s);\n c.sort();\n const l = c.map((u) => {\n const i = s[u];\n return /^[A-Za-z0-9+/]+={0,2}$/.test(i) && i.length % 4, `${u}=${i}`;\n }).join(\"&\");\n return !o && !l ? \"\" : `${o || \"\"}${l ? \"?\" + l : \"\"}`;\n}, f = (t, n, r) => {\n const e = t instanceof URL ? t : new URL(t), o = P(e.hash, n, r);\n return e.hash = o, e;\n}, x = (t, n) => {\n const r = t instanceof URL ? t : new URL(t);\n let e = O(r.hash, n);\n return r.hash = e, r;\n}, L = (t, n, r) => {\n const e = t instanceof URL ? t : new URL(t);\n return e.hash = R(e.hash, n, r), e;\n}, W = (t, n) => {\n const r = d(t, n);\n if (r && r !== \"\")\n return b(r);\n}, _ = (t, n) => {\n const [r, e] = H(t), o = e[n];\n if (o && o !== \"\")\n return b(o);\n}, k = (t, n, r) => {\n const e = n ? S(n) : void 0;\n m(t, e, r);\n}, D = (t) => W(window.location.href, t), R = (t, n, r) => {\n const e = r ? S(r) : void 0;\n return P(t, n, e);\n}, A = (t, n, r) => f(t, n, r ? r.toString() : void 0), B = (t, n) => {\n const r = d(t, n);\n return r ? parseFloat(r) : void 0;\n}, J = (t, n, r) => {\n m(t, n != null ? n.toString() : void 0, r);\n}, T = (t) => B(window.location.href, t), q = (t, n, r) => f(t, n, r != null ? r.toString() : void 0), j = (t, n) => {\n const r = d(t, n);\n return r ? parseInt(r) : void 0;\n}, z = (t, n, r) => {\n J(t, n, r);\n}, Z = (t) => j(window.location.href, t), M = (t, n, r) => f(t, n, r ? \"true\" : void 0), $ = (t, n) => d(t, n) === \"true\", G = (t, n, r) => {\n m(t, n ? \"true\" : void 0, r);\n}, K = (t) => $(window.location.href, t), Q = (t, n, r) => f(t, n, r == null ? void 0 : w(r)), C = (t, n) => {\n const r = d(t, n);\n return r && r !== \"\" ? U(r) : void 0;\n}, X = (t, n, r) => {\n const e = n == null ? void 0 : w(n);\n m(t, e, r);\n}, Y = (t) => C(window.location.href, t), tt = (t, n, r) => f(t, n, r == null ? void 0 : encodeURIComponent(r)), E = (t, n) => {\n const r = d(t, n);\n return r && r !== \"\" ? decodeURIComponent(r) : void 0;\n}, nt = (t, n, r) => {\n const e = n == null ? void 0 : encodeURIComponent(n);\n m(t, e, r);\n}, rt = (t) => E(window.location.href, t), et = (t, n) => {\n m(t, void 0, n);\n}, at = (t, n) => f(t, n, void 0);\nexport {\n b as blobFromBase64String,\n S as blobToBase64String,\n O as createHashParamValuesInHashString,\n at as deleteHashParamFromUrl,\n et as deleteHashParamFromWindow,\n N as getHashParamFromWindow,\n d as getHashParamValue,\n C as getHashParamValueBase64DecodedFromUrl,\n Y as getHashParamValueBase64DecodedFromWindow,\n $ as getHashParamValueBooleanFromUrl,\n K as getHashParamValueBooleanFromWindow,\n B as getHashParamValueFloatFromUrl,\n T as getHashParamValueFloatFromWindow,\n j as getHashParamValueIntFromUrl,\n Z as getHashParamValueIntFromWindow,\n _ as getHashParamValueJsonFromHashString,\n W as getHashParamValueJsonFromUrl,\n D as getHashParamValueJsonFromWindow,\n E as getHashParamValueUriDecodedFromUrl,\n rt as getHashParamValueUriDecodedFromWindow,\n F as getHashParamsFromWindow,\n I as getUrlHashParams,\n H as getUrlHashParamsFromHashString,\n m as setHashParamInWindow,\n Q as setHashParamValueBase64EncodedInUrl,\n X as setHashParamValueBase64EncodedInWindow,\n M as setHashParamValueBooleanInUrl,\n G as setHashParamValueBooleanInWindow,\n A as setHashParamValueFloatInUrl,\n J as setHashParamValueFloatInWindow,\n P as setHashParamValueInHashString,\n f as setHashParamValueInUrl,\n q as setHashParamValueIntInUrl,\n z as setHashParamValueIntInWindow,\n R as setHashParamValueJsonInHashString,\n L as setHashParamValueJsonInUrl,\n k as setHashParamValueJsonInWindow,\n tt as setHashParamValueUriEncodedInUrl,\n nt as setHashParamValueUriEncodedInWindow,\n x as setHashParamsInUrl,\n U as stringFromBase64String,\n w as stringToBase64String\n};\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n",null,null,null,"'use strict';\n\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\nconst SEP = '/';\n\nconst POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR,\n SEP\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n ...POSIX_CHARS,\n\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`,\n SEP: '\\\\'\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n alnum: 'a-zA-Z0-9',\n alpha: 'a-zA-Z',\n ascii: '\\\\x00-\\\\x7F',\n blank: ' \\\\t',\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n digit: '0-9',\n graph: '\\\\x21-\\\\x7E',\n lower: 'a-z',\n print: '\\\\x20-\\\\x7E ',\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n upper: 'A-Z',\n word: 'A-Za-z0-9_',\n xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n __proto__: null,\n '***': '*',\n '**/**': '**',\n '**/**/**': '**'\n },\n\n // Digits\n CHAR_0: 48, /* 0 */\n CHAR_9: 57, /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65, /* A */\n CHAR_LOWERCASE_A: 97, /* a */\n CHAR_UPPERCASE_Z: 90, /* Z */\n CHAR_LOWERCASE_Z: 122, /* z */\n\n CHAR_LEFT_PARENTHESES: 40, /* ( */\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n CHAR_ASTERISK: 42, /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38, /* & */\n CHAR_AT: 64, /* @ */\n CHAR_BACKWARD_SLASH: 92, /* \\ */\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n CHAR_COLON: 58, /* : */\n CHAR_COMMA: 44, /* , */\n CHAR_DOT: 46, /* . */\n CHAR_DOUBLE_QUOTE: 34, /* \" */\n CHAR_EQUAL: 61, /* = */\n CHAR_EXCLAMATION_MARK: 33, /* ! */\n CHAR_FORM_FEED: 12, /* \\f */\n CHAR_FORWARD_SLASH: 47, /* / */\n CHAR_GRAVE_ACCENT: 96, /* ` */\n CHAR_HASH: 35, /* # */\n CHAR_HYPHEN_MINUS: 45, /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n CHAR_LINE_FEED: 10, /* \\n */\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n CHAR_PERCENT: 37, /* % */\n CHAR_PLUS: 43, /* + */\n CHAR_QUESTION_MARK: 63, /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n CHAR_SEMICOLON: 59, /* ; */\n CHAR_SINGLE_QUOTE: 39, /* ' */\n CHAR_SPACE: 32, /* */\n CHAR_TAB: 9, /* \\t */\n CHAR_UNDERSCORE: 95, /* _ */\n CHAR_VERTICAL_LINE: 124, /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n /**\n * Create EXTGLOB_CHARS\n */\n\n extglobChars(chars) {\n return {\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n '?': { type: 'qmark', open: '(?:', close: ')?' },\n '+': { type: 'plus', open: '(?:', close: ')+' },\n '*': { type: 'star', open: '(?:', close: ')*' },\n '@': { type: 'at', open: '(?:', close: ')' }\n };\n },\n\n /**\n * Create GLOB_CHARS\n */\n\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n};\n","/*global navigator*/\n'use strict';\n\nconst {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.isWindows = () => {\n if (typeof navigator !== 'undefined' && navigator.platform) {\n const platform = navigator.platform.toLowerCase();\n return platform === 'win32' || platform === 'windows';\n }\n\n if (typeof process !== 'undefined' && process.platform) {\n return process.platform === 'win32';\n }\n\n return false;\n};\n\nexports.removeBackslashes = str => {\n return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n return match === '\\\\' ? '' : match;\n });\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith('./')) {\n output = output.slice(2);\n state.prefix = './';\n }\n return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n const prepend = options.contains ? '' : '^';\n const append = options.contains ? '' : '$';\n\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n};\n\nexports.basename = (path, { windows } = {}) => {\n const segs = path.split(windows ? /[\\\\/]/ : '/');\n const last = segs[segs.length - 1];\n\n if (last === '') {\n return segs[segs.length - 2];\n }\n\n return last;\n};\n","'use strict';\n\nconst utils = require('./utils');\nconst {\n CHAR_ASTERISK, /* * */\n CHAR_AT, /* @ */\n CHAR_BACKWARD_SLASH, /* \\ */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_EXCLAMATION_MARK, /* ! */\n CHAR_FORWARD_SLASH, /* / */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_PLUS, /* + */\n CHAR_QUESTION_MARK, /* ? */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n if (token.isPrefix !== true) {\n token.depth = token.isGlobstar ? Infinity : 1;\n }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n const opts = options || {};\n\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token = { value: '', depth: 0, isGlob: false };\n\n const eos = () => index >= length;\n const peek = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n\n while (index < length) {\n code = advance();\n let next;\n\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token);\n token = { value: '', depth: 0, isGlob: false };\n\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === (start + 1)) {\n start += 2;\n continue;\n }\n\n lastIndex = index + 1;\n continue;\n }\n\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS\n || code === CHAR_AT\n || code === CHAR_ASTERISK\n || code === CHAR_QUESTION_MARK\n || code === CHAR_EXCLAMATION_MARK;\n\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n isExtglob = token.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token.isBracket = true;\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token.negated = true;\n start++;\n continue;\n }\n\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n\n if (isGlob === true) {\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n }\n\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n\n let base = str;\n let prefix = '';\n let glob = '';\n\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = '';\n glob = str;\n } else {\n base = str;\n }\n\n if (base && base !== '' && base !== '/' && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token);\n }\n state.tokens = tokens;\n }\n\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== '') {\n parts.push(value);\n }\n prevIndex = i;\n }\n\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n\n state.slashes = slashes;\n state.parts = parts;\n }\n\n return state;\n};\n\nmodule.exports = scan;\n","'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n try {\n /* eslint-disable-next-line no-new */\n new RegExp(value);\n } catch (ex) {\n return args.map(v => utils.escapeRegex(v)).join('..');\n }\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants.globChars(opts.windows);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = opts => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || '';\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren') {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.output = (prev.output || prev.value) + tok.value;\n prev.value += tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n let output = token.close + (opts.capture ? ')' : '');\n let rest;\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.\n // In this case, we need to parse the string and use it in the output of the original pattern.\n // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.\n //\n // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.\n const expression = parse(rest, { ...options, fastpaths: false }).output;\n\n output = token.close = `)${expression})${extglobStar})`;\n }\n\n if (token.prev.type === 'bos') {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(opts.windows);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = opts => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = opts.windows;\n const regex = isState\n ? picomatch.compileRe(glob, options)\n : picomatch.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n return regex.test(utils.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch.toRegex(source, options);\n if (returnState === true) {\n regex.state = state;\n }\n\n return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n let parsed = { negated: false, fastpaths: true };\n\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n parsed.output = parse.fastpaths(input, options);\n }\n\n if (!parsed.output) {\n parsed = parse(input, options);\n }\n\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n","'use strict';\n\nmodule.exports = require('./lib/picomatch');\n",null,null,null,null],"names":["MetaframeVersionsAll","MetapageVersionsAll","MetaframeVersionCurrent","MetapageVersionCurrent","METAFRAME_JSON_FILE","METAPAGE_KEY_DEFINITION","METAPAGE_KEY_STATE","VERSION_METAPAGE","VERSION_METAFRAME","semver","validateAndParse","version","match","isWildcard","s","tryParse","v","n","forceType","a","b","compareStrings","ap","bp","compareSegments","i","r","compareVersions","v1","v2","n1","n2","p1","p2","global","factory","module","this","fetchRetry","fetch","defaults","ArgumentError","isPositiveInteger","baseDefaults","input","init","retries","retryDelay","retryOn","resolve","reject","wrappedFetch","attempt","_input","response","retryOnResponse","retry","error","delay","value","message","Operation","PROXY_DRAFT","RAW_RETURN_SYMBOL","iteratorSymbol","dataTypes","internal","has","target","key","getDescriptor","prototype","descriptor","latest","proxyDraft","_a","isDraft","getProxyDraft","getValue","isDraftable","options","markResult","getPath","path","parentCopy","get","isSet","resolvePath","getType","set","peek","state","isEqual","x","y","revokeProxy","escapePath","pathAsArray","_item","item","base","index","strictCopy","copy","desc","propIsEnum","shallowCopy","original","ensureShallowCopy","deepClone","k","cloneIfNeeded","markChanged","throwFrozenError","deepFreeze","subKey","updatedValues","stack","keys","parent","name","forEach","iter","type","entry","handleValue","handledSet","setMap","updatedValue","values","finalizeAssigned","finalizeSetValue","finalizePatches","generatePatches","patches","inversePatches","basePath","markFinalization","generateArrayPatches","proxyState","assignedMap","_path","arrayLengthAssignment","generatePatchesFromAssigned","assignedValue","originalValue","op","generateSetPatches","readable","checkReadable","ignoreCheckDraftable","mapHandler","source","callback","thisArg","_value","_key","_b","mutable","draft","iterator","result","mapHandlerKeys","getNextIterator","isValuesIterator","currentDraft","proxy","setHandler","valueProxyDraft","setHandlerKeys","draftsCache","proxyHandler","receiver","handle","createDraft","subProxyDraft","current","currentProxyDraft","createDraftOptions","parentDraft","finalities","revoke","oldProxyDraft","finalizeDraft","returnedValue","enableAutoFreeze","hasReturnedValue","draftify","baseState","finalizedState","finalizedPatches","finalizedInversePatches","handleReturnValue","rootDraft","useRawReturn","isRoot","currentValue","arr","getCurrent","newValue","makeCreator","arg","create","arg0","arg1","arg2","_c","args","mutate","mark","types","enablePatches","strict","_options","finalize","returnValue","rawReturnValue","returnedProxyDraft","fetchRetryWrapper","convertMetapageDefinitionToVersion","def","targetVersion","err","convertMetapageDefinitionToTargetVersionInternal","convertMetapageDefinitionToCurrentVersion","currentVersion","getMatchingMetapageVersion","currentDefinition","definition_v0_2_to_v0_3","definition_v0_3_to_v1","definition_v0_3_to_v0_2","definition_v1_to_v2","definition_v1_to_v0_3","definition_v2_to_v1","old","castV1","normalizeHashParams","hashParams","convertMetaframeDefinitionToVersion","convertMetaframeDefinitionToTargetVersionInternal","convertMetaframeDefinitionToCurrentVersion","getMatchingMetaframeVersion","definition_v0_3_to_v0_4","definition_v0_4_to_v0_5","definition_v0_4_to_v0_3","definition_v0_5_to_v0_6","definition_v0_5_to_v0_4","definition_v0_6_to_v1","definition_v0_6_to_v0_5","definition_v1_to_v0_6","convertMetaframeJsonToCurrentVersion","m","opts","converted","title","descriptionUrl","keywords","decription","tags","chars","lookup","encode","arraybuffer","bytes","len","base64","decode","bufferLength","p","encoded1","encoded2","encoded3","encoded4","serializeInputs","inputs","maybeNewObject","possiblySerializeValueToDataref","deserializeInputs","possiblyDeserializeDatarefToValue","valueToFile","fileName","buffer","typedValue","blob","replacement","arrayBuffer","serializedRef","serializedRefBlob","serializedRefFile","serializedRefTypedArray","constructorName","possiblyDeserializeDatarefToFile","typedArray","MetapageEvents","JsonRpcMethodsFromChild","JsonRpcMethodsFromParent","PARSE_ERROR","INVALID_REQUEST","METHOD_NOT_FOUND","INVALID_PARAMS","INTERNAL_ERROR","isJsonRpcId","prefix","Events","EE","fn","context","once","addListener","emitter","event","listener","evt","clearEvent","EventEmitter","names","events","handlers","l","ee","listeners","a1","a2","a3","a4","a5","length","j","e","c","u","o","h","g","V","S","w","U","I","H","d","N","F","P","W","D","B","J","T","z","Z","$","G","K","C","X","Y","fastJsonStableStringify","data","cycles","cmp","f","node","aobj","bobj","seen","stringify","out","seenIndex","MetapageHashParams","isIframe","INITIAL_NULL_METAPAGE_DEFINITION","MetapageShared","merge","newInputs","pipeId","getUrlParam","getUrlParamDebug","isDebugFromUrlsParams","param","generateMetaframeId","generateId","generateMetapageId","generateNonce","LETTERS","charactersLength","log","color","backgroundColor","cssstring","stringToRgb","str","intToRGB","hashCode","hash","isPageLoaded","pageLoaded","loaded","metapageAllSha256Hash","metapage","metapageStr","sha256ToBase64","metapageOnlyEssentailSha256Hash","MetaframeLoadingState","MetaframeEvents","Metaframe","thisRef","params","_","disposer","MetapageToolsLog","pipe","originalInputs","updateBlob","outputs","originalOutputs","payload","method","jsonrpc","setHashParamInWindow","getHashParamFromWindow","setHashParamValueBooleanInWindow","getHashParamValueBooleanFromWindow","setHashParamValueJsonInWindow","getHashParamValueJsonFromWindow","setHashParamValueBase64EncodedInWindow","getHashParamValueBase64DecodedFromWindow","setHashParamValueFloatInWindow","getHashParamValueFloatFromWindow","setHashParamValueIntInWindow","getHashParamValueIntFromWindow","WIN_SLASH","WIN_NO_SLASH","DOT_LITERAL","PLUS_LITERAL","QMARK_LITERAL","SLASH_LITERAL","ONE_CHAR","QMARK","END_ANCHOR","START_ANCHOR","DOTS_SLASH","NO_DOT","NO_DOTS","NO_DOT_SLASH","NO_DOTS_SLASH","QMARK_NO_DOT","STAR","SEP","POSIX_CHARS","WINDOWS_CHARS","POSIX_REGEX_SOURCE","constants","win32","REGEX_BACKSLASH","REGEX_REMOVE_BACKSLASH","REGEX_SPECIAL_CHARS","REGEX_SPECIAL_CHARS_GLOBAL","require$$0","exports","val","platform","char","lastIdx","idx","output","prepend","append","windows","segs","last","utils","CHAR_ASTERISK","CHAR_AT","CHAR_BACKWARD_SLASH","CHAR_COMMA","CHAR_DOT","CHAR_EXCLAMATION_MARK","CHAR_FORWARD_SLASH","CHAR_LEFT_CURLY_BRACE","CHAR_LEFT_PARENTHESES","CHAR_LEFT_SQUARE_BRACKET","CHAR_PLUS","CHAR_QUESTION_MARK","CHAR_RIGHT_CURLY_BRACE","CHAR_RIGHT_PARENTHESES","CHAR_RIGHT_SQUARE_BRACKET","require$$1","isPathSeparator","code","depth","token","scan","scanToEnd","slashes","tokens","parts","start","lastIndex","isBrace","isBracket","isGlob","isExtglob","isGlobstar","braceEscaped","backslashes","negated","negatedExtglob","finished","braces","prev","eos","advance","next","glob","prevIndex","scan_1","MAX_LENGTH","REGEX_NON_SPECIAL_CHARS","REGEX_SPECIAL_CHARS_BACKREF","REPLACEMENTS","expandRange","syntaxError","parse","max","bos","capture","PLATFORM_CHARS","EXTGLOB_CHARS","globstar","nodot","qmarkNoDot","star","extglobs","remaining","consume","num","negate","count","increment","decrement","push","tok","extglobOpen","extglobClose","rest","extglobStar","expression","esc","first","inner","pre","posix","extglob","prevValue","escaped","open","brace","range","toks","t","prior","before","isStart","afterStar","after","end","slashDot","parse_1","require$$2","require$$3","isObject","picomatch","returnState","fns","isMatch","isState","regex","isIgnored","ignoreOpts","matcher","returnObject","format","patterns","pattern","returnOutput","parsed","picomatch_1","getMetapageDefinitionFromUrl","url","metapageUrl","definition","getMetaframeDefinitionFromUrl","metaframeUrl","urlEncodedDefinition","getHashParamValueJsonFromUrl","isEmptyMetaframeDefinition","MetapageIFrameRpcClient","iframeId","parentId","consoleBackgroundColor","debug","urlBlob","selfThis","_d","metaframeDef","inputBlob","maybeNewInputs","inputUpdate","maybeNewOutputs","outputsUpdate","pipeName","fWrap","thing","messageJSON","emptyState","getLibraryVersionMatching","matchPipe","outputName","CONSOLE_BACKGROUND_COLOR_DEFAULT","Metapage","metaPageDef","cb","exists","flag","newState","metaframeId","newDefinition","metaframeDefinition","previousDefinition","newMetaframeId","metadata","otherMetaframeId","inputPipes","id","iframeClient","outputPipeId","__","targets","inputPipe","targetName","inputPipeId","metaframeInputs","metapageInputs","metaframeValuesNew","isInputs","metaframePipeId","inputOrOutputState","metaframePipedId","inputsMetaframesNew","metaframe","iframe","modified","outputKeys","collectedOutputs","outputKey","hashParamsUpdatePayload","isMetaframeDivider","validateLayout","validated","layout","currentMaxY","allMetaframeIds","getVisibleGridLayoutData","desktopLayoutBlob","metaframesToHide","dividers","lowestYDivider","lowest","dividerY","visibleMetaframeIds","hiddenMetaframeIds","visibleLayoutItems","totalVisibleGridHeight","acc","renderMetapage","props","onOutputs","rootDiv","processMetapage","disposers","gridStyle","containerStyle","container","gridContainer","renderedMetaframes","layoutItem","itemStyle","wrapper","maxCol","hiddenContainer","isMetaframeHidden","getMetaframeKey","mfk","metapageDefinition"],"mappings":"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","x_google_ignoreList":[2,3,4,5,8,13,14,15,19,20,21,22,23,24]}
1
+ {"version":3,"file":"index.js","sources":["../src/metapage/versions.ts","../src/metapage/Constants.ts","../node_modules/compare-versions/lib/esm/utils.js","../node_modules/compare-versions/lib/esm/compareVersions.js","../node_modules/fetch-retry/dist/fetch-retry.umd.js","../node_modules/mutative/dist/mutative.esm.mjs","../src/metapage/conversions-metapage.ts","../src/metapage/conversions-metaframe.ts","../node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js","../node_modules/@metapages/dataref/dist/index.js","../src/metapage/data.ts","../src/metapage/events.ts","../src/metapage/jsonrpc.ts","../src/metapage/jsonrpc2.ts","../node_modules/eventemitter3/index.js","../node_modules/@metapages/hash-query/dist/core/index.js","../node_modules/fast-json-stable-stringify/index.js","../src/metapage/Shared.ts","../src/metapage/MetapageTools.ts","../src/metapage/Metaframe.ts","../node_modules/picomatch/lib/constants.js","../node_modules/picomatch/lib/utils.js","../node_modules/picomatch/lib/scan.js","../node_modules/picomatch/lib/parse.js","../node_modules/picomatch/lib/picomatch.js","../node_modules/picomatch/posix.js","../src/metapage/util.ts","../src/metapage/MetapageIFrameRpcClient.ts","../src/metapage/Metapage.ts","../src/metapage/metapageRenderer.ts"],"sourcesContent":[null,null,"export const semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nexport const validateAndParse = (version) => {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b))\n return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp)\n return 1;\n if (ap < bp)\n return -1;\n return 0;\n};\nexport const compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0)\n return r;\n }\n return 0;\n};\n//# sourceMappingURL=utils.js.map","import { compareSegments, validateAndParse } from './utils.js';\n/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0)\n return r;\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n }\n else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n return 0;\n};\n//# sourceMappingURL=compareVersions.js.map","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.fetchRetry = factory());\n})(this, (function () { 'use strict';\n\n var fetchRetry = function (fetch, defaults) {\n defaults = defaults || {};\n if (typeof fetch !== 'function') {\n throw new ArgumentError('fetch must be a function');\n }\n\n if (typeof defaults !== 'object') {\n throw new ArgumentError('defaults must be an object');\n }\n\n if (defaults.retries !== undefined && !isPositiveInteger(defaults.retries)) {\n throw new ArgumentError('retries must be a positive integer');\n }\n\n if (defaults.retryDelay !== undefined && !isPositiveInteger(defaults.retryDelay) && typeof defaults.retryDelay !== 'function') {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n\n if (defaults.retryOn !== undefined && !Array.isArray(defaults.retryOn) && typeof defaults.retryOn !== 'function') {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n\n var baseDefaults = {\n retries: 3,\n retryDelay: 1000,\n retryOn: [],\n };\n\n defaults = Object.assign(baseDefaults, defaults);\n\n return function fetchRetry(input, init) {\n var retries = defaults.retries;\n var retryDelay = defaults.retryDelay;\n var retryOn = defaults.retryOn;\n\n if (init && init.retries !== undefined) {\n if (isPositiveInteger(init.retries)) {\n retries = init.retries;\n } else {\n throw new ArgumentError('retries must be a positive integer');\n }\n }\n\n if (init && init.retryDelay !== undefined) {\n if (isPositiveInteger(init.retryDelay) || (typeof init.retryDelay === 'function')) {\n retryDelay = init.retryDelay;\n } else {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n }\n\n if (init && init.retryOn) {\n if (Array.isArray(init.retryOn) || (typeof init.retryOn === 'function')) {\n retryOn = init.retryOn;\n } else {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n }\n\n // eslint-disable-next-line no-undef\n return new Promise(function (resolve, reject) {\n var wrappedFetch = function (attempt) {\n // As of node 18, this is no longer needed since node comes with native support for fetch:\n /* istanbul ignore next */\n var _input =\n typeof Request !== 'undefined' && input instanceof Request\n ? input.clone()\n : input;\n fetch(_input, init)\n .then(function (response) {\n if (Array.isArray(retryOn) && retryOn.indexOf(response.status) === -1) {\n resolve(response);\n } else if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n return Promise.resolve(retryOn(attempt, null, response))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }).catch(reject);\n } catch (error) {\n reject(error);\n }\n } else {\n if (attempt < retries) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }\n })\n .catch(function (error) {\n if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n Promise.resolve(retryOn(attempt, error, null))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n })\n .catch(function(error) {\n reject(error);\n });\n } catch(error) {\n reject(error);\n }\n } else if (attempt < retries) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n });\n };\n\n function retry(attempt, error, response) {\n var delay = (typeof retryDelay === 'function') ?\n retryDelay(attempt, error, response) : retryDelay;\n setTimeout(function () {\n wrappedFetch(++attempt);\n }, delay);\n }\n\n wrappedFetch(0);\n });\n };\n };\n\n function isPositiveInteger(value) {\n return Number.isInteger(value) && value >= 0;\n }\n\n function ArgumentError(message) {\n this.name = 'ArgumentError';\n this.message = message;\n }\n\n return fetchRetry;\n\n}));\n","const Operation = {\n Remove: 'remove',\n Replace: 'replace',\n Add: 'add',\n};\n\n// Don't use `Symbol()` just for 3rd party access the draft\nconst PROXY_DRAFT = Symbol.for('__MUTATIVE_PROXY_DRAFT__');\nconst RAW_RETURN_SYMBOL = Symbol('__MUTATIVE_RAW_RETURN_SYMBOL__');\nconst iteratorSymbol = Symbol.iterator;\nconst dataTypes = {\n mutable: 'mutable',\n immutable: 'immutable',\n};\n\nconst internal = {};\n\nfunction has(target, key) {\n return target instanceof Map\n ? target.has(key)\n : Object.prototype.hasOwnProperty.call(target, key);\n}\nfunction getDescriptor(target, key) {\n if (key in target) {\n let prototype = Reflect.getPrototypeOf(target);\n while (prototype) {\n const descriptor = Reflect.getOwnPropertyDescriptor(prototype, key);\n if (descriptor)\n return descriptor;\n prototype = Reflect.getPrototypeOf(prototype);\n }\n }\n return;\n}\nfunction isBaseSetInstance(obj) {\n return Object.getPrototypeOf(obj) === Set.prototype;\n}\nfunction isBaseMapInstance(obj) {\n return Object.getPrototypeOf(obj) === Map.prototype;\n}\n\nfunction latest(proxyDraft) {\n var _a;\n return (_a = proxyDraft.copy) !== null && _a !== void 0 ? _a : proxyDraft.original;\n}\n/**\n * Check if the value is a draft\n */\nfunction isDraft(target) {\n return !!getProxyDraft(target);\n}\nfunction getProxyDraft(value) {\n if (typeof value !== 'object')\n return null;\n return value === null || value === void 0 ? void 0 : value[PROXY_DRAFT];\n}\nfunction getValue(value) {\n var _a;\n const proxyDraft = getProxyDraft(value);\n return proxyDraft ? ((_a = proxyDraft.copy) !== null && _a !== void 0 ? _a : proxyDraft.original) : value;\n}\n/**\n * Check if a value is draftable\n */\nfunction isDraftable(value, options) {\n if (!value || typeof value !== 'object')\n return false;\n let markResult;\n return (Object.getPrototypeOf(value) === Object.prototype ||\n Array.isArray(value) ||\n value instanceof Map ||\n value instanceof Set ||\n (!!(options === null || options === void 0 ? void 0 : options.mark) &&\n ((markResult = options.mark(value, dataTypes)) === dataTypes.immutable ||\n typeof markResult === 'function')));\n}\nfunction getPath(target, path = []) {\n if (Object.hasOwnProperty.call(target, 'key')) {\n // check if the parent is a draft and the original value is not equal to the current value\n const parentCopy = target.parent.copy;\n const proxyDraft = getProxyDraft(get(parentCopy, target.key));\n if (proxyDraft !== null && (proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.original) !== target.original) {\n return null;\n }\n const isSet = target.parent.type === 3 /* DraftType.Set */;\n const key = isSet\n ? Array.from(target.parent.setMap.keys()).indexOf(target.key)\n : target.key;\n // check if the key is still in the next state parent\n if (!((isSet && parentCopy.size > key) || has(parentCopy, key)))\n return null;\n path.push(key);\n }\n if (target.parent) {\n return getPath(target.parent, path);\n }\n // `target` is root draft.\n path.reverse();\n try {\n // check if the path is valid\n resolvePath(target.copy, path);\n }\n catch (e) {\n return null;\n }\n return path;\n}\nfunction getType(target) {\n if (Array.isArray(target))\n return 1 /* DraftType.Array */;\n if (target instanceof Map)\n return 2 /* DraftType.Map */;\n if (target instanceof Set)\n return 3 /* DraftType.Set */;\n return 0 /* DraftType.Object */;\n}\nfunction get(target, key) {\n return getType(target) === 2 /* DraftType.Map */ ? target.get(key) : target[key];\n}\nfunction set(target, key, value) {\n const type = getType(target);\n if (type === 2 /* DraftType.Map */) {\n target.set(key, value);\n }\n else {\n target[key] = value;\n }\n}\nfunction peek(target, key) {\n const state = getProxyDraft(target);\n const source = state ? latest(state) : target;\n return source[key];\n}\nfunction isEqual(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n }\n else {\n return x !== x && y !== y;\n }\n}\nfunction revokeProxy(proxyDraft) {\n if (!proxyDraft)\n return;\n while (proxyDraft.finalities.revoke.length > 0) {\n const revoke = proxyDraft.finalities.revoke.pop();\n revoke();\n }\n}\n// handle JSON Pointer path with spec https://www.rfc-editor.org/rfc/rfc6901\nfunction escapePath(path, pathAsArray) {\n return pathAsArray\n ? path\n : ['']\n .concat(path)\n .map((_item) => {\n const item = `${_item}`;\n if (item.indexOf('/') === -1 && item.indexOf('~') === -1)\n return item;\n return item.replace(/~/g, '~0').replace(/\\//g, '~1');\n })\n .join('/');\n}\nfunction unescapePath(path) {\n if (Array.isArray(path))\n return path;\n return path\n .split('/')\n .map((_item) => _item.replace(/~1/g, '/').replace(/~0/g, '~'))\n .slice(1);\n}\nfunction resolvePath(base, path) {\n for (let index = 0; index < path.length - 1; index += 1) {\n const key = path[index];\n // use `index` in Set draft\n base = get(getType(base) === 3 /* DraftType.Set */ ? Array.from(base) : base, key);\n if (typeof base !== 'object') {\n throw new Error(`Cannot resolve patch at '${path.join('/')}'.`);\n }\n }\n return base;\n}\n\nfunction strictCopy(target) {\n const copy = Object.create(Object.getPrototypeOf(target));\n Reflect.ownKeys(target).forEach((key) => {\n let desc = Reflect.getOwnPropertyDescriptor(target, key);\n if (desc.enumerable && desc.configurable && desc.writable) {\n copy[key] = target[key];\n return;\n }\n // for freeze\n if (!desc.writable) {\n desc.writable = true;\n desc.configurable = true;\n }\n if (desc.get || desc.set)\n desc = {\n configurable: true,\n writable: true,\n enumerable: desc.enumerable,\n value: target[key],\n };\n Reflect.defineProperty(copy, key, desc);\n });\n return copy;\n}\nconst propIsEnum = Object.prototype.propertyIsEnumerable;\nfunction shallowCopy(original, options) {\n let markResult;\n if (Array.isArray(original)) {\n return Array.prototype.concat.call(original);\n }\n else if (original instanceof Set) {\n if (!isBaseSetInstance(original)) {\n const SubClass = Object.getPrototypeOf(original).constructor;\n return new SubClass(original.values());\n }\n return Set.prototype.difference\n ? Set.prototype.difference.call(original, new Set())\n : new Set(original.values());\n }\n else if (original instanceof Map) {\n if (!isBaseMapInstance(original)) {\n const SubClass = Object.getPrototypeOf(original).constructor;\n return new SubClass(original);\n }\n return new Map(original);\n }\n else if ((options === null || options === void 0 ? void 0 : options.mark) &&\n ((markResult = options.mark(original, dataTypes)),\n markResult !== undefined) &&\n markResult !== dataTypes.mutable) {\n if (markResult === dataTypes.immutable) {\n return strictCopy(original);\n }\n else if (typeof markResult === 'function') {\n if ((options.enablePatches || options.enableAutoFreeze)) {\n throw new Error(`You can't use mark and patches or auto freeze together.`);\n }\n return markResult();\n }\n throw new Error(`Unsupported mark result: ${markResult}`);\n }\n else if (typeof original === 'object' &&\n Object.getPrototypeOf(original) === Object.prototype) {\n // For best performance with shallow copies,\n // don't use `Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));` by default.\n const copy = {};\n Object.keys(original).forEach((key) => {\n copy[key] = original[key];\n });\n Object.getOwnPropertySymbols(original).forEach((key) => {\n if (propIsEnum.call(original, key)) {\n copy[key] = original[key];\n }\n });\n return copy;\n }\n else {\n throw new Error(`Please check mark() to ensure that it is a stable marker draftable function.`);\n }\n}\nfunction ensureShallowCopy(target) {\n if (target.copy)\n return;\n target.copy = shallowCopy(target.original, target.options);\n}\nfunction deepClone(target) {\n if (!isDraftable(target))\n return getValue(target);\n if (Array.isArray(target))\n return target.map(deepClone);\n if (target instanceof Map) {\n const iterable = Array.from(target.entries()).map(([k, v]) => [\n k,\n deepClone(v),\n ]);\n if (!isBaseMapInstance(target)) {\n const SubClass = Object.getPrototypeOf(target).constructor;\n return new SubClass(iterable);\n }\n return new Map(iterable);\n }\n if (target instanceof Set) {\n const iterable = Array.from(target).map(deepClone);\n if (!isBaseSetInstance(target)) {\n const SubClass = Object.getPrototypeOf(target).constructor;\n return new SubClass(iterable);\n }\n return new Set(iterable);\n }\n const copy = Object.create(Object.getPrototypeOf(target));\n for (const key in target)\n copy[key] = deepClone(target[key]);\n return copy;\n}\nfunction cloneIfNeeded(target) {\n return isDraft(target) ? deepClone(target) : target;\n}\n\nfunction markChanged(proxyDraft) {\n var _a;\n proxyDraft.assignedMap = (_a = proxyDraft.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n if (!proxyDraft.operated) {\n proxyDraft.operated = true;\n if (proxyDraft.parent) {\n markChanged(proxyDraft.parent);\n }\n }\n}\n\nfunction throwFrozenError() {\n throw new Error('Cannot modify frozen object');\n}\nfunction deepFreeze(target, subKey, updatedValues, stack, keys) {\n {\n updatedValues = updatedValues !== null && updatedValues !== void 0 ? updatedValues : new WeakMap();\n stack = stack !== null && stack !== void 0 ? stack : [];\n keys = keys !== null && keys !== void 0 ? keys : [];\n const value = updatedValues.has(target)\n ? updatedValues.get(target)\n : target;\n if (stack.length > 0) {\n const index = stack.indexOf(value);\n if (value && typeof value === 'object' && index !== -1) {\n if (stack[0] === value) {\n throw new Error(`Forbids circular reference`);\n }\n throw new Error(`Forbids circular reference: ~/${keys\n .slice(0, index)\n .map((key, index) => {\n if (typeof key === 'symbol')\n return `[${key.toString()}]`;\n const parent = stack[index];\n if (typeof key === 'object' &&\n (parent instanceof Map || parent instanceof Set))\n return Array.from(parent.keys()).indexOf(key);\n return key;\n })\n .join('/')}`);\n }\n stack.push(value);\n keys.push(subKey);\n }\n else {\n stack.push(value);\n }\n }\n if (Object.isFrozen(target) || isDraft(target)) {\n {\n stack.pop();\n keys.pop();\n }\n return;\n }\n const type = getType(target);\n switch (type) {\n case 2 /* DraftType.Map */:\n for (const [key, value] of target) {\n deepFreeze(key, key, updatedValues, stack, keys);\n deepFreeze(value, key, updatedValues, stack, keys);\n }\n target.set = target.clear = target.delete = throwFrozenError;\n break;\n case 3 /* DraftType.Set */:\n for (const value of target) {\n deepFreeze(value, value, updatedValues, stack, keys);\n }\n target.add = target.clear = target.delete = throwFrozenError;\n break;\n case 1 /* DraftType.Array */:\n Object.freeze(target);\n let index = 0;\n for (const value of target) {\n deepFreeze(value, index, updatedValues, stack, keys);\n index += 1;\n }\n break;\n default:\n Object.freeze(target);\n // ignore non-enumerable or symbol properties\n Object.keys(target).forEach((name) => {\n const value = target[name];\n deepFreeze(value, name, updatedValues, stack, keys);\n });\n }\n {\n stack.pop();\n keys.pop();\n }\n}\n\nfunction forEach(target, iter) {\n const type = getType(target);\n if (type === 0 /* DraftType.Object */) {\n Reflect.ownKeys(target).forEach((key) => {\n iter(key, target[key], target);\n });\n }\n else if (type === 1 /* DraftType.Array */) {\n let index = 0;\n for (const entry of target) {\n iter(index, entry, target);\n index += 1;\n }\n }\n else {\n target.forEach((entry, index) => iter(index, entry, target));\n }\n}\n\nfunction handleValue(target, handledSet, options) {\n if (isDraft(target) ||\n !isDraftable(target, options) ||\n handledSet.has(target) ||\n Object.isFrozen(target))\n return;\n const isSet = target instanceof Set;\n const setMap = isSet ? new Map() : undefined;\n handledSet.add(target);\n forEach(target, (key, value) => {\n var _a;\n if (isDraft(value)) {\n const proxyDraft = getProxyDraft(value);\n ensureShallowCopy(proxyDraft);\n // A draft where a child node has been changed, or assigned a value\n const updatedValue = ((_a = proxyDraft.assignedMap) === null || _a === void 0 ? void 0 : _a.size) || proxyDraft.operated\n ? proxyDraft.copy\n : proxyDraft.original;\n // final update value\n set(isSet ? setMap : target, key, updatedValue);\n }\n else {\n handleValue(value, handledSet, options);\n }\n });\n if (setMap) {\n const set = target;\n const values = Array.from(set);\n set.clear();\n values.forEach((value) => {\n set.add(setMap.has(value) ? setMap.get(value) : value);\n });\n }\n}\nfunction finalizeAssigned(proxyDraft, key) {\n // handle the draftable assigned values, and the value is not a draft\n const copy = proxyDraft.type === 3 /* DraftType.Set */ ? proxyDraft.setMap : proxyDraft.copy;\n if (proxyDraft.finalities.revoke.length > 1 &&\n proxyDraft.assignedMap.get(key) &&\n copy) {\n handleValue(get(copy, key), proxyDraft.finalities.handledSet, proxyDraft.options);\n }\n}\nfunction finalizeSetValue(target) {\n if (target.type === 3 /* DraftType.Set */ && target.copy) {\n target.copy.clear();\n target.setMap.forEach((value) => {\n target.copy.add(getValue(value));\n });\n }\n}\nfunction finalizePatches(target, generatePatches, patches, inversePatches) {\n const shouldFinalize = target.operated &&\n target.assignedMap &&\n target.assignedMap.size > 0 &&\n !target.finalized;\n if (shouldFinalize) {\n if (patches && inversePatches) {\n const basePath = getPath(target);\n if (basePath) {\n generatePatches(target, basePath, patches, inversePatches);\n }\n }\n target.finalized = true;\n }\n}\nfunction markFinalization(target, key, value, generatePatches) {\n const proxyDraft = getProxyDraft(value);\n if (proxyDraft) {\n // !case: assign the draft value\n if (!proxyDraft.callbacks) {\n proxyDraft.callbacks = [];\n }\n proxyDraft.callbacks.push((patches, inversePatches) => {\n var _a;\n const copy = target.type === 3 /* DraftType.Set */ ? target.setMap : target.copy;\n if (isEqual(get(copy, key), value)) {\n let updatedValue = proxyDraft.original;\n if (proxyDraft.copy) {\n updatedValue = proxyDraft.copy;\n }\n finalizeSetValue(target);\n finalizePatches(target, generatePatches, patches, inversePatches);\n if (target.options.enableAutoFreeze) {\n target.options.updatedValues =\n (_a = target.options.updatedValues) !== null && _a !== void 0 ? _a : new WeakMap();\n target.options.updatedValues.set(updatedValue, proxyDraft.original);\n }\n // final update value\n set(copy, key, updatedValue);\n }\n });\n if (target.options.enableAutoFreeze) {\n // !case: assign the draft value in cross draft tree\n if (proxyDraft.finalities !== target.finalities) {\n target.options.enableAutoFreeze = false;\n }\n }\n }\n if (isDraftable(value, target.options)) {\n // !case: assign the non-draft value\n target.finalities.draft.push(() => {\n const copy = target.type === 3 /* DraftType.Set */ ? target.setMap : target.copy;\n if (isEqual(get(copy, key), value)) {\n finalizeAssigned(target, key);\n }\n });\n }\n}\n\nfunction generateArrayPatches(proxyState, basePath, patches, inversePatches, pathAsArray) {\n let { original, assignedMap, options } = proxyState;\n let copy = proxyState.copy;\n if (copy.length < original.length) {\n [original, copy] = [copy, original];\n [patches, inversePatches] = [inversePatches, patches];\n }\n for (let index = 0; index < original.length; index += 1) {\n if (assignedMap.get(index.toString()) && copy[index] !== original[index]) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Replace,\n path,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: cloneIfNeeded(copy[index]),\n });\n inversePatches.push({\n op: Operation.Replace,\n path,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: cloneIfNeeded(original[index]),\n });\n }\n }\n for (let index = original.length; index < copy.length; index += 1) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Add,\n path,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: cloneIfNeeded(copy[index]),\n });\n }\n if (original.length < copy.length) {\n // https://www.rfc-editor.org/rfc/rfc6902#appendix-A.4\n // For performance, here we only generate an operation that replaces the length of the array,\n // which is inconsistent with JSON Patch specification\n const { arrayLengthAssignment = true } = options.enablePatches;\n if (arrayLengthAssignment) {\n const _path = basePath.concat(['length']);\n const path = escapePath(_path, pathAsArray);\n inversePatches.push({\n op: Operation.Replace,\n path,\n value: original.length,\n });\n }\n else {\n for (let index = copy.length; original.length < index; index -= 1) {\n const _path = basePath.concat([index - 1]);\n const path = escapePath(_path, pathAsArray);\n inversePatches.push({\n op: Operation.Remove,\n path,\n });\n }\n }\n }\n}\nfunction generatePatchesFromAssigned({ original, copy, assignedMap }, basePath, patches, inversePatches, pathAsArray) {\n assignedMap.forEach((assignedValue, key) => {\n const originalValue = get(original, key);\n const value = cloneIfNeeded(get(copy, key));\n const op = !assignedValue\n ? Operation.Remove\n : has(original, key)\n ? Operation.Replace\n : Operation.Add;\n if (isEqual(originalValue, value) && op === Operation.Replace)\n return;\n const _path = basePath.concat(key);\n const path = escapePath(_path, pathAsArray);\n patches.push(op === Operation.Remove ? { op, path } : { op, path, value });\n inversePatches.push(op === Operation.Add\n ? { op: Operation.Remove, path }\n : op === Operation.Remove\n ? { op: Operation.Add, path, value: originalValue }\n : { op: Operation.Replace, path, value: originalValue });\n });\n}\nfunction generateSetPatches({ original, copy }, basePath, patches, inversePatches, pathAsArray) {\n let index = 0;\n original.forEach((value) => {\n if (!copy.has(value)) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Remove,\n path,\n value,\n });\n inversePatches.unshift({\n op: Operation.Add,\n path,\n value,\n });\n }\n index += 1;\n });\n index = 0;\n copy.forEach((value) => {\n if (!original.has(value)) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Add,\n path,\n value,\n });\n inversePatches.unshift({\n op: Operation.Remove,\n path,\n value,\n });\n }\n index += 1;\n });\n}\nfunction generatePatches(proxyState, basePath, patches, inversePatches) {\n const { pathAsArray = true } = proxyState.options.enablePatches;\n switch (proxyState.type) {\n case 0 /* DraftType.Object */:\n case 2 /* DraftType.Map */:\n return generatePatchesFromAssigned(proxyState, basePath, patches, inversePatches, pathAsArray);\n case 1 /* DraftType.Array */:\n return generateArrayPatches(proxyState, basePath, patches, inversePatches, pathAsArray);\n case 3 /* DraftType.Set */:\n return generateSetPatches(proxyState, basePath, patches, inversePatches, pathAsArray);\n }\n}\n\nlet readable = false;\nconst checkReadable = (value, options, ignoreCheckDraftable = false) => {\n if (typeof value === 'object' &&\n value !== null &&\n (!isDraftable(value, options) || ignoreCheckDraftable) &&\n !readable) {\n throw new Error(`Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.`);\n }\n};\n/**\n * `unsafe(callback)` to access mutable data directly in strict mode.\n *\n * ## Example\n *\n * ```ts\n * import { create, unsafe } from '../index';\n *\n * class Foobar {\n * bar = 1;\n * }\n *\n * const baseState = { foobar: new Foobar() };\n * const state = create(\n * baseState,\n * (draft) => {\n * unsafe(() => {\n * draft.foobar.bar = 2;\n * });\n * },\n * {\n * strict: true,\n * }\n * );\n *\n * expect(state).toBe(baseState);\n * expect(state.foobar).toBe(baseState.foobar);\n * expect(state.foobar.bar).toBe(2);\n * ```\n */\nfunction unsafe(callback) {\n readable = true;\n let result;\n try {\n result = callback();\n }\n finally {\n readable = false;\n }\n return result;\n}\n\nconst mapHandler = {\n get size() {\n const current = latest(getProxyDraft(this));\n return current.size;\n },\n has(key) {\n return latest(getProxyDraft(this)).has(key);\n },\n set(key, value) {\n const target = getProxyDraft(this);\n const source = latest(target);\n if (!source.has(key) || !isEqual(source.get(key), value)) {\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap.set(key, true);\n target.copy.set(key, value);\n markFinalization(target, key, value, generatePatches);\n }\n return this;\n },\n delete(key) {\n if (!this.has(key)) {\n return false;\n }\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n markChanged(target);\n if (target.original.has(key)) {\n target.assignedMap.set(key, false);\n }\n else {\n target.assignedMap.delete(key);\n }\n target.copy.delete(key);\n return true;\n },\n clear() {\n const target = getProxyDraft(this);\n if (!this.size)\n return;\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap = new Map();\n for (const [key] of target.original) {\n target.assignedMap.set(key, false);\n }\n target.copy.clear();\n },\n forEach(callback, thisArg) {\n const target = getProxyDraft(this);\n latest(target).forEach((_value, _key) => {\n callback.call(thisArg, this.get(_key), _key, this);\n });\n },\n get(key) {\n var _a, _b;\n const target = getProxyDraft(this);\n const value = latest(target).get(key);\n const mutable = ((_b = (_a = target.options).mark) === null || _b === void 0 ? void 0 : _b.call(_a, value, dataTypes)) === dataTypes.mutable;\n if (target.options.strict) {\n checkReadable(value, target.options, mutable);\n }\n if (mutable) {\n return value;\n }\n if (target.finalized || !isDraftable(value, target.options)) {\n return value;\n }\n // drafted or reassigned\n if (value !== target.original.get(key)) {\n return value;\n }\n const draft = internal.createDraft({\n original: value,\n parentDraft: target,\n key,\n finalities: target.finalities,\n options: target.options,\n });\n ensureShallowCopy(target);\n target.copy.set(key, draft);\n return draft;\n },\n keys() {\n return latest(getProxyDraft(this)).keys();\n },\n values() {\n const iterator = this.keys();\n return {\n [iteratorSymbol]: () => this.values(),\n next: () => {\n const result = iterator.next();\n if (result.done)\n return result;\n const value = this.get(result.value);\n return {\n done: false,\n value,\n };\n },\n };\n },\n entries() {\n const iterator = this.keys();\n return {\n [iteratorSymbol]: () => this.entries(),\n next: () => {\n const result = iterator.next();\n if (result.done)\n return result;\n const value = this.get(result.value);\n return {\n done: false,\n value: [result.value, value],\n };\n },\n };\n },\n [iteratorSymbol]() {\n return this.entries();\n },\n};\nconst mapHandlerKeys = Reflect.ownKeys(mapHandler);\n\nconst getNextIterator = (target, iterator, { isValuesIterator }) => () => {\n var _a, _b;\n const result = iterator.next();\n if (result.done)\n return result;\n const key = result.value;\n let value = target.setMap.get(key);\n const currentDraft = getProxyDraft(value);\n const mutable = ((_b = (_a = target.options).mark) === null || _b === void 0 ? void 0 : _b.call(_a, value, dataTypes)) === dataTypes.mutable;\n if (target.options.strict) {\n checkReadable(key, target.options, mutable);\n }\n if (!mutable &&\n !currentDraft &&\n isDraftable(key, target.options) &&\n !target.finalized &&\n target.original.has(key)) {\n // draft a draftable original set item\n const proxy = internal.createDraft({\n original: key,\n parentDraft: target,\n key,\n finalities: target.finalities,\n options: target.options,\n });\n target.setMap.set(key, proxy);\n value = proxy;\n }\n else if (currentDraft) {\n // drafted\n value = currentDraft.proxy;\n }\n return {\n done: false,\n value: isValuesIterator ? value : [value, value],\n };\n};\nconst setHandler = {\n get size() {\n const target = getProxyDraft(this);\n return target.setMap.size;\n },\n has(value) {\n const target = getProxyDraft(this);\n // reassigned or non-draftable values\n if (target.setMap.has(value))\n return true;\n ensureShallowCopy(target);\n const valueProxyDraft = getProxyDraft(value);\n // drafted\n if (valueProxyDraft && target.setMap.has(valueProxyDraft.original))\n return true;\n return false;\n },\n add(value) {\n const target = getProxyDraft(this);\n if (!this.has(value)) {\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap.set(value, true);\n target.setMap.set(value, value);\n markFinalization(target, value, value, generatePatches);\n }\n return this;\n },\n delete(value) {\n if (!this.has(value)) {\n return false;\n }\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n markChanged(target);\n const valueProxyDraft = getProxyDraft(value);\n if (valueProxyDraft && target.setMap.has(valueProxyDraft.original)) {\n // delete drafted\n target.assignedMap.set(valueProxyDraft.original, false);\n return target.setMap.delete(valueProxyDraft.original);\n }\n if (!valueProxyDraft && target.setMap.has(value)) {\n // non-draftable values\n target.assignedMap.set(value, false);\n }\n else {\n // reassigned\n target.assignedMap.delete(value);\n }\n // delete reassigned or non-draftable values\n return target.setMap.delete(value);\n },\n clear() {\n if (!this.size)\n return;\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n markChanged(target);\n for (const value of target.original) {\n target.assignedMap.set(value, false);\n }\n target.setMap.clear();\n },\n values() {\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n const iterator = target.setMap.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: getNextIterator(target, iterator, { isValuesIterator: true }),\n };\n },\n entries() {\n const target = getProxyDraft(this);\n ensureShallowCopy(target);\n const iterator = target.setMap.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: getNextIterator(target, iterator, {\n isValuesIterator: false,\n }),\n };\n },\n keys() {\n return this.values();\n },\n [iteratorSymbol]() {\n return this.values();\n },\n forEach(callback, thisArg) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n callback.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n },\n};\nif (Set.prototype.difference) {\n // for compatibility with new Set methods\n // https://github.com/tc39/proposal-set-methods\n // And `https://github.com/tc39/proposal-set-methods/blob/main/details.md#symbolspecies` has some details about the `@@species` symbol.\n // So we can't use SubSet instance constructor to get the constructor of the SubSet instance.\n Object.assign(setHandler, {\n intersection(other) {\n return Set.prototype.intersection.call(new Set(this.values()), other);\n },\n union(other) {\n return Set.prototype.union.call(new Set(this.values()), other);\n },\n difference(other) {\n return Set.prototype.difference.call(new Set(this.values()), other);\n },\n symmetricDifference(other) {\n return Set.prototype.symmetricDifference.call(new Set(this.values()), other);\n },\n isSubsetOf(other) {\n return Set.prototype.isSubsetOf.call(new Set(this.values()), other);\n },\n isSupersetOf(other) {\n return Set.prototype.isSupersetOf.call(new Set(this.values()), other);\n },\n isDisjointFrom(other) {\n return Set.prototype.isDisjointFrom.call(new Set(this.values()), other);\n },\n });\n}\nconst setHandlerKeys = Reflect.ownKeys(setHandler);\n\nconst proxyHandler = {\n get(target, key, receiver) {\n var _a, _b;\n const copy = (_a = target.copy) === null || _a === void 0 ? void 0 : _a[key];\n // Improve draft reading performance by caching the draft copy.\n if (copy && target.finalities.draftsCache.has(copy)) {\n return copy;\n }\n if (key === PROXY_DRAFT)\n return target;\n let markResult;\n if (target.options.mark) {\n // handle `Uncaught TypeError: Method get Map.prototype.size called on incompatible receiver #<Map>`\n // or `Uncaught TypeError: Method get Set.prototype.size called on incompatible receiver #<Set>`\n const value = key === 'size' &&\n (target.original instanceof Map || target.original instanceof Set)\n ? Reflect.get(target.original, key)\n : Reflect.get(target.original, key, receiver);\n markResult = target.options.mark(value, dataTypes);\n if (markResult === dataTypes.mutable) {\n if (target.options.strict) {\n checkReadable(value, target.options, true);\n }\n return value;\n }\n }\n const source = latest(target);\n if (source instanceof Map && mapHandlerKeys.includes(key)) {\n if (key === 'size') {\n return Object.getOwnPropertyDescriptor(mapHandler, 'size').get.call(target.proxy);\n }\n const handle = mapHandler[key];\n return handle.bind(target.proxy);\n }\n if (source instanceof Set && setHandlerKeys.includes(key)) {\n if (key === 'size') {\n return Object.getOwnPropertyDescriptor(setHandler, 'size').get.call(target.proxy);\n }\n const handle = setHandler[key];\n return handle.bind(target.proxy);\n }\n if (!has(source, key)) {\n const desc = getDescriptor(source, key);\n return desc\n ? `value` in desc\n ? desc.value\n : // !case: support for getter\n (_b = desc.get) === null || _b === void 0 ? void 0 : _b.call(target.proxy)\n : undefined;\n }\n const value = source[key];\n if (target.options.strict) {\n checkReadable(value, target.options);\n }\n if (target.finalized || !isDraftable(value, target.options)) {\n return value;\n }\n // Ensure that the assigned values are not drafted\n if (value === peek(target.original, key)) {\n ensureShallowCopy(target);\n target.copy[key] = createDraft({\n original: target.original[key],\n parentDraft: target,\n key: target.type === 1 /* DraftType.Array */ ? Number(key) : key,\n finalities: target.finalities,\n options: target.options,\n });\n // !case: support for custom shallow copy function\n if (typeof markResult === 'function') {\n const subProxyDraft = getProxyDraft(target.copy[key]);\n ensureShallowCopy(subProxyDraft);\n // Trigger a custom shallow copy to update to a new copy\n markChanged(subProxyDraft);\n return subProxyDraft.copy;\n }\n return target.copy[key];\n }\n if (isDraft(value)) {\n target.finalities.draftsCache.add(value);\n }\n return value;\n },\n set(target, key, value) {\n var _a;\n if (target.type === 3 /* DraftType.Set */ || target.type === 2 /* DraftType.Map */) {\n throw new Error(`Map/Set draft does not support any property assignment.`);\n }\n let _key;\n if (target.type === 1 /* DraftType.Array */ &&\n key !== 'length' &&\n !(Number.isInteger((_key = Number(key))) &&\n _key >= 0 &&\n (key === 0 || _key === 0 || String(_key) === String(key)))) {\n throw new Error(`Only supports setting array indices and the 'length' property.`);\n }\n const desc = getDescriptor(latest(target), key);\n if (desc === null || desc === void 0 ? void 0 : desc.set) {\n // !case: cover the case of setter\n desc.set.call(target.proxy, value);\n return true;\n }\n const current = peek(latest(target), key);\n const currentProxyDraft = getProxyDraft(current);\n if (currentProxyDraft && isEqual(currentProxyDraft.original, value)) {\n // !case: ignore the case of assigning the original draftable value to a draft\n target.copy[key] = value;\n target.assignedMap = (_a = target.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n target.assignedMap.set(key, false);\n return true;\n }\n // !case: handle new props with value 'undefined'\n if (isEqual(value, current) &&\n (value !== undefined || has(target.original, key)))\n return true;\n ensureShallowCopy(target);\n markChanged(target);\n if (has(target.original, key) && isEqual(value, target.original[key])) {\n // !case: handle the case of assigning the original non-draftable value to a draft\n target.assignedMap.delete(key);\n }\n else {\n target.assignedMap.set(key, true);\n }\n target.copy[key] = value;\n markFinalization(target, key, value, generatePatches);\n return true;\n },\n has(target, key) {\n return key in latest(target);\n },\n ownKeys(target) {\n return Reflect.ownKeys(latest(target));\n },\n getOwnPropertyDescriptor(target, key) {\n const source = latest(target);\n const descriptor = Reflect.getOwnPropertyDescriptor(source, key);\n if (!descriptor)\n return descriptor;\n return {\n writable: true,\n configurable: target.type !== 1 /* DraftType.Array */ || key !== 'length',\n enumerable: descriptor.enumerable,\n value: source[key],\n };\n },\n getPrototypeOf(target) {\n return Reflect.getPrototypeOf(target.original);\n },\n setPrototypeOf() {\n throw new Error(`Cannot call 'setPrototypeOf()' on drafts`);\n },\n defineProperty() {\n throw new Error(`Cannot call 'defineProperty()' on drafts`);\n },\n deleteProperty(target, key) {\n var _a;\n if (target.type === 1 /* DraftType.Array */) {\n return proxyHandler.set.call(this, target, key, undefined, target.proxy);\n }\n if (peek(target.original, key) !== undefined || key in target.original) {\n // !case: delete an existing key\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap.set(key, false);\n }\n else {\n target.assignedMap = (_a = target.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n // The original non-existent key has been deleted\n target.assignedMap.delete(key);\n }\n if (target.copy)\n delete target.copy[key];\n return true;\n },\n};\nfunction createDraft(createDraftOptions) {\n const { original, parentDraft, key, finalities, options } = createDraftOptions;\n const type = getType(original);\n const proxyDraft = {\n type,\n finalized: false,\n parent: parentDraft,\n original,\n copy: null,\n proxy: null,\n finalities,\n options,\n // Mapping of draft Set items to their corresponding draft values.\n setMap: type === 3 /* DraftType.Set */\n ? new Map(original.entries())\n : undefined,\n };\n // !case: undefined as a draft map key\n if (key || 'key' in createDraftOptions) {\n proxyDraft.key = key;\n }\n const { proxy, revoke } = Proxy.revocable(type === 1 /* DraftType.Array */ ? Object.assign([], proxyDraft) : proxyDraft, proxyHandler);\n finalities.revoke.push(revoke);\n proxyDraft.proxy = proxy;\n if (parentDraft) {\n const target = parentDraft;\n target.finalities.draft.push((patches, inversePatches) => {\n var _a, _b;\n const oldProxyDraft = getProxyDraft(proxy);\n // if target is a Set draft, `setMap` is the real Set copies proxy mapping.\n let copy = target.type === 3 /* DraftType.Set */ ? target.setMap : target.copy;\n const draft = get(copy, key);\n const proxyDraft = getProxyDraft(draft);\n if (proxyDraft) {\n // assign the updated value to the copy object\n let updatedValue = proxyDraft.original;\n if (proxyDraft.operated) {\n updatedValue = getValue(draft);\n }\n finalizeSetValue(proxyDraft);\n finalizePatches(proxyDraft, generatePatches, patches, inversePatches);\n if (target.options.enableAutoFreeze) {\n target.options.updatedValues =\n (_a = target.options.updatedValues) !== null && _a !== void 0 ? _a : new WeakMap();\n target.options.updatedValues.set(updatedValue, proxyDraft.original);\n }\n // final update value\n set(copy, key, updatedValue);\n }\n // !case: handle the deleted key\n (_b = oldProxyDraft.callbacks) === null || _b === void 0 ? void 0 : _b.forEach((callback) => {\n callback(patches, inversePatches);\n });\n });\n }\n else {\n // !case: handle the root draft\n const target = getProxyDraft(proxy);\n target.finalities.draft.push((patches, inversePatches) => {\n finalizeSetValue(target);\n finalizePatches(target, generatePatches, patches, inversePatches);\n });\n }\n return proxy;\n}\ninternal.createDraft = createDraft;\nfunction finalizeDraft(result, returnedValue, patches, inversePatches, enableAutoFreeze) {\n var _a;\n const proxyDraft = getProxyDraft(result);\n const original = (_a = proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.original) !== null && _a !== void 0 ? _a : result;\n const hasReturnedValue = !!returnedValue.length;\n if (proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.operated) {\n while (proxyDraft.finalities.draft.length > 0) {\n const finalize = proxyDraft.finalities.draft.pop();\n finalize(patches, inversePatches);\n }\n }\n const state = hasReturnedValue\n ? returnedValue[0]\n : proxyDraft\n ? proxyDraft.operated\n ? proxyDraft.copy\n : proxyDraft.original\n : result;\n if (proxyDraft)\n revokeProxy(proxyDraft);\n if (enableAutoFreeze) {\n deepFreeze(state, state, proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.options.updatedValues);\n }\n return [\n state,\n patches && hasReturnedValue\n ? [{ op: Operation.Replace, path: [], value: returnedValue[0] }]\n : patches,\n inversePatches && hasReturnedValue\n ? [{ op: Operation.Replace, path: [], value: original }]\n : inversePatches,\n ];\n}\n\nfunction draftify(baseState, options) {\n var _a;\n const finalities = {\n draft: [],\n revoke: [],\n handledSet: new WeakSet(),\n draftsCache: new WeakSet(),\n };\n let patches;\n let inversePatches;\n if (options.enablePatches) {\n patches = [];\n inversePatches = [];\n }\n const isMutable = ((_a = options.mark) === null || _a === void 0 ? void 0 : _a.call(options, baseState, dataTypes)) === dataTypes.mutable ||\n !isDraftable(baseState, options);\n const draft = isMutable\n ? baseState\n : createDraft({\n original: baseState,\n parentDraft: null,\n finalities,\n options,\n });\n return [\n draft,\n (returnedValue = []) => {\n const [finalizedState, finalizedPatches, finalizedInversePatches] = finalizeDraft(draft, returnedValue, patches, inversePatches, options.enableAutoFreeze);\n return (options.enablePatches\n ? [finalizedState, finalizedPatches, finalizedInversePatches]\n : finalizedState);\n },\n ];\n}\n\nfunction handleReturnValue(options) {\n const { rootDraft, value, useRawReturn = false, isRoot = true } = options;\n forEach(value, (key, item, source) => {\n const proxyDraft = getProxyDraft(item);\n // just handle the draft which is created by the same rootDraft\n if (proxyDraft &&\n rootDraft &&\n proxyDraft.finalities === rootDraft.finalities) {\n options.isContainDraft = true;\n const currentValue = proxyDraft.original;\n // final update value, but just handle return value\n if (source instanceof Set) {\n const arr = Array.from(source);\n source.clear();\n arr.forEach((_item) => source.add(key === _item ? currentValue : _item));\n }\n else {\n set(source, key, currentValue);\n }\n }\n else if (typeof item === 'object' && item !== null) {\n options.value = item;\n options.isRoot = false;\n handleReturnValue(options);\n }\n });\n if (isRoot) {\n if (!options.isContainDraft)\n console.warn(`The return value does not contain any draft, please use 'rawReturn()' to wrap the return value to improve performance.`);\n if (useRawReturn) {\n console.warn(`The return value contains drafts, please don't use 'rawReturn()' to wrap the return value.`);\n }\n }\n}\nfunction getCurrent(target) {\n var _a;\n const proxyDraft = getProxyDraft(target);\n if (!isDraftable(target, proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.options))\n return target;\n const type = getType(target);\n if (proxyDraft && !proxyDraft.operated)\n return proxyDraft.original;\n let currentValue;\n function ensureShallowCopy() {\n currentValue =\n type === 2 /* DraftType.Map */\n ? !isBaseMapInstance(target)\n ? new (Object.getPrototypeOf(target).constructor)(target)\n : new Map(target)\n : type === 3 /* DraftType.Set */\n ? Array.from(proxyDraft.setMap.values())\n : shallowCopy(target, proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.options);\n }\n if (proxyDraft) {\n // It's a proxy draft, let's create a shallow copy eagerly\n proxyDraft.finalized = true;\n try {\n ensureShallowCopy();\n }\n finally {\n proxyDraft.finalized = false;\n }\n }\n else {\n // It's not a proxy draft, let's use the target directly and let's see\n // lazily if we need to create a shallow copy\n currentValue = target;\n }\n forEach(currentValue, (key, value) => {\n if (proxyDraft && isEqual(get(proxyDraft.original, key), value))\n return;\n const newValue = getCurrent(value);\n if (newValue !== value) {\n if (currentValue === target)\n ensureShallowCopy();\n set(currentValue, key, newValue);\n }\n });\n if (type === 3 /* DraftType.Set */) {\n const value = (_a = proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.original) !== null && _a !== void 0 ? _a : currentValue;\n return !isBaseSetInstance(value)\n ? new (Object.getPrototypeOf(value).constructor)(currentValue)\n : new Set(currentValue);\n }\n return currentValue;\n}\nfunction current(target) {\n if (!isDraft(target)) {\n throw new Error(`current() is only used for Draft, parameter: ${target}`);\n }\n return getCurrent(target);\n}\n\n/**\n * `makeCreator(options)` to make a creator function.\n *\n * ## Example\n *\n * ```ts\n * import { makeCreator } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const create = makeCreator({ enableAutoFreeze: true });\n * const state = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * },\n * );\n *\n * expect(state).toEqual({ foo: { bar: 'str2' }, arr: [] });\n * expect(state).not.toBe(baseState);\n * expect(state.foo).not.toBe(baseState.foo);\n * expect(state.arr).toBe(baseState.arr);\n * expect(Object.isFrozen(state)).toBeTruthy();\n * ```\n */\nconst makeCreator = (arg) => {\n if (arg !== undefined &&\n Object.prototype.toString.call(arg) !== '[object Object]') {\n throw new Error(`Invalid options: ${String(arg)}, 'options' should be an object.`);\n }\n return function create(arg0, arg1, arg2) {\n var _a, _b, _c;\n if (typeof arg0 === 'function' && typeof arg1 !== 'function') {\n return function (base, ...args) {\n return create(base, (draft) => arg0.call(this, draft, ...args), arg1);\n };\n }\n const base = arg0;\n const mutate = arg1;\n let options = arg2;\n if (typeof arg1 !== 'function') {\n options = arg1;\n }\n if (options !== undefined &&\n Object.prototype.toString.call(options) !== '[object Object]') {\n throw new Error(`Invalid options: ${options}, 'options' should be an object.`);\n }\n options = Object.assign(Object.assign({}, arg), options);\n const state = isDraft(base) ? current(base) : base;\n const mark = Array.isArray(options.mark)\n ? ((value, types) => {\n for (const mark of options.mark) {\n if (typeof mark !== 'function') {\n throw new Error(`Invalid mark: ${mark}, 'mark' should be a function.`);\n }\n const result = mark(value, types);\n if (result) {\n return result;\n }\n }\n return;\n })\n : options.mark;\n const enablePatches = (_a = options.enablePatches) !== null && _a !== void 0 ? _a : false;\n const strict = (_b = options.strict) !== null && _b !== void 0 ? _b : false;\n const enableAutoFreeze = (_c = options.enableAutoFreeze) !== null && _c !== void 0 ? _c : false;\n const _options = {\n enableAutoFreeze,\n mark,\n strict,\n enablePatches,\n };\n if (!isDraftable(state, _options) &&\n typeof state === 'object' &&\n state !== null) {\n throw new Error(`Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.`);\n }\n const [draft, finalize] = draftify(state, _options);\n if (typeof arg1 !== 'function') {\n if (!isDraftable(state, _options)) {\n throw new Error(`Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.`);\n }\n return [draft, finalize];\n }\n let result;\n try {\n result = mutate(draft);\n }\n catch (error) {\n revokeProxy(getProxyDraft(draft));\n throw error;\n }\n const returnValue = (value) => {\n const proxyDraft = getProxyDraft(draft);\n if (!isDraft(value)) {\n if (value !== undefined &&\n !isEqual(value, draft) &&\n (proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.operated)) {\n throw new Error(`Either the value is returned as a new non-draft value, or only the draft is modified without returning any value.`);\n }\n const rawReturnValue = value === null || value === void 0 ? void 0 : value[RAW_RETURN_SYMBOL];\n if (rawReturnValue) {\n const _value = rawReturnValue[0];\n if (_options.strict && typeof value === 'object' && value !== null) {\n handleReturnValue({\n rootDraft: proxyDraft,\n value,\n useRawReturn: true,\n });\n }\n return finalize([_value]);\n }\n if (value !== undefined) {\n if (typeof value === 'object' && value !== null) {\n handleReturnValue({ rootDraft: proxyDraft, value });\n }\n return finalize([value]);\n }\n }\n if (value === draft || value === undefined) {\n return finalize([]);\n }\n const returnedProxyDraft = getProxyDraft(value);\n if (_options === returnedProxyDraft.options) {\n if (returnedProxyDraft.operated) {\n throw new Error(`Cannot return a modified child draft.`);\n }\n return finalize([current(value)]);\n }\n return finalize([value]);\n };\n if (result instanceof Promise) {\n return result.then(returnValue, (error) => {\n revokeProxy(getProxyDraft(draft));\n throw error;\n });\n }\n return returnValue(result);\n };\n};\n\n/**\n * `create(baseState, callback, options)` to create the next state\n *\n * ## Example\n *\n * ```ts\n * import { create } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const state = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * },\n * );\n *\n * expect(state).toEqual({ foo: { bar: 'str2' }, arr: [] });\n * expect(state).not.toBe(baseState);\n * expect(state.foo).not.toBe(baseState.foo);\n * expect(state.arr).toBe(baseState.arr);\n * ```\n */\nconst create = makeCreator();\n\n/**\n * `apply(state, patches)` to apply patches to state\n *\n * ## Example\n *\n * ```ts\n * import { create, apply } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const [state, patches] = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * },\n * { enablePatches: true }\n * );\n * expect(state).toEqual({ foo: { bar: 'str2' }, arr: [] });\n * expect(patches).toEqual([{ op: 'replace', path: ['foo', 'bar'], value: 'str2' }]);\n * expect(state).toEqual(apply(baseState, patches));\n * ```\n */\nfunction apply(state, patches, applyOptions) {\n let i;\n for (i = patches.length - 1; i >= 0; i -= 1) {\n const { value, op, path } = patches[i];\n if ((!path.length && op === Operation.Replace) ||\n (path === '' && op === Operation.Add)) {\n state = value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const mutate = (draft) => {\n patches.forEach((patch) => {\n const { path: _path, op } = patch;\n const path = unescapePath(_path);\n let base = draft;\n for (let index = 0; index < path.length - 1; index += 1) {\n const parentType = getType(base);\n let key = path[index];\n if (typeof key !== 'string' && typeof key !== 'number') {\n key = String(key);\n }\n if (((parentType === 0 /* DraftType.Object */ ||\n parentType === 1 /* DraftType.Array */) &&\n (key === '__proto__' || key === 'constructor')) ||\n (typeof base === 'function' && key === 'prototype')) {\n throw new Error(`Patching reserved attributes like __proto__ and constructor is not allowed.`);\n }\n // use `index` in Set draft\n base = get(parentType === 3 /* DraftType.Set */ ? Array.from(base) : base, key);\n if (typeof base !== 'object') {\n throw new Error(`Cannot apply patch at '${path.join('/')}'.`);\n }\n }\n const type = getType(base);\n // ensure the original patch is not modified.\n const value = deepClone(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case Operation.Replace:\n switch (type) {\n case 2 /* DraftType.Map */:\n return base.set(key, value);\n case 3 /* DraftType.Set */:\n throw new Error(`Cannot apply replace patch to set.`);\n default:\n return (base[key] = value);\n }\n case Operation.Add:\n switch (type) {\n case 1 /* DraftType.Array */:\n // If the \"-\" character is used to\n // index the end of the array (see [RFC6901](https://datatracker.ietf.org/doc/html/rfc6902)),\n // this has the effect of appending the value to the array.\n return key === '-'\n ? base.push(value)\n : base.splice(key, 0, value);\n case 2 /* DraftType.Map */:\n return base.set(key, value);\n case 3 /* DraftType.Set */:\n return base.add(value);\n default:\n return (base[key] = value);\n }\n case Operation.Remove:\n switch (type) {\n case 1 /* DraftType.Array */:\n return base.splice(key, 1);\n case 2 /* DraftType.Map */:\n return base.delete(key);\n case 3 /* DraftType.Set */:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n throw new Error(`Unsupported patch operation: ${op}.`);\n }\n });\n };\n if (applyOptions === null || applyOptions === void 0 ? void 0 : applyOptions.mutable) {\n {\n if (Object.keys(applyOptions).filter((key) => key !== 'mutable').length) {\n console.warn('The \"mutable\" option is not allowed to be used with other options.');\n }\n }\n mutate(state);\n return undefined;\n }\n if (isDraft(state)) {\n if (applyOptions !== undefined) {\n throw new Error(`Cannot apply patches with options to a draft.`);\n }\n mutate(state);\n return state;\n }\n return create(state, mutate, Object.assign(Object.assign({}, applyOptions), { enablePatches: false }));\n}\n\n/**\n * `original(draft)` to get original state in the draft mutation function.\n *\n * ## Example\n *\n * ```ts\n * import { create, original } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const state = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * expect(original(draft.foo)).toEqual({ bar: 'str' });\n * }\n * );\n * ```\n */\nfunction original(target) {\n const proxyDraft = getProxyDraft(target);\n if (!proxyDraft) {\n throw new Error(`original() is only used for a draft, parameter: ${target}`);\n }\n return proxyDraft.original;\n}\n\n/**\n * Use rawReturn() to wrap the return value to skip the draft check and thus improve performance.\n *\n * ## Example\n *\n * ```ts\n * import { create, rawReturn } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const state = create(\n * baseState,\n * (draft) => {\n * return rawReturn(baseState);\n * },\n * );\n * expect(state).toBe(baseState);\n * ```\n */\nfunction rawReturn(value) {\n if (arguments.length === 0) {\n throw new Error('rawReturn() must be called with a value.');\n }\n if (arguments.length > 1) {\n throw new Error('rawReturn() must be called with one argument.');\n }\n if (value !== undefined &&\n (typeof value !== 'object' || value === null)) {\n console.warn('rawReturn() must be called with an object(including plain object, arrays, Set, Map, etc.) or `undefined`, other types do not need to be returned via rawReturn().');\n }\n return {\n [RAW_RETURN_SYMBOL]: [value],\n };\n}\n\nconst constructorString = Object.prototype.constructor.toString();\n/**\n * Check if the value is a simple object(No prototype chain object or iframe same-origin object),\n * support case: https://github.com/unadlib/mutative/issues/17\n */\nconst isSimpleObject = (value) => {\n if (!value || typeof value !== 'object')\n return false;\n const prototype = Object.getPrototypeOf(value);\n if (prototype === null) {\n return true;\n }\n const constructor = Object.hasOwnProperty.call(prototype, 'constructor') &&\n prototype.constructor;\n if (constructor === Object)\n return true;\n return (typeof constructor === 'function' &&\n Function.toString.call(constructor) === constructorString);\n};\nconst markSimpleObject = (value) => {\n if (isSimpleObject(value)) {\n return dataTypes.immutable;\n }\n return;\n};\n\n/**\n * Cast a value to an Draft type value.\n */\nfunction castDraft(value) {\n return value;\n}\n/**\n * Cast a value to an Immutable type value.\n */\nfunction castImmutable(value) {\n return value;\n}\n/**\n * Cast a value to an Mutable type value.\n */\nfunction castMutable(draft) {\n return draft;\n}\n\nexport { apply, castDraft, castImmutable, castMutable, create, current, isDraft, isDraftable, makeCreator, markSimpleObject, original, rawReturn, unsafe };\n//# sourceMappingURL=mutative.esm.mjs.map\n",null,null,"/*\n * base64-arraybuffer 1.0.2 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n//# sourceMappingURL=base64-arraybuffer.es5.js.map\n","const R = {\n TEXT: \"text/plain\",\n JSON: \"application/json\",\n OCTET_STREAM: \"application/octet-stream\",\n // For typed arrays, we'll use application/octet-stream with a type parameter\n TYPED_ARRAY: \"application/octet-stream;type=\",\n // Custom MIME type for URLs that should be treated as data references\n URI: \"text/x-uri\"\n}, h = {\n Remove: \"remove\",\n Replace: \"replace\",\n Add: \"add\"\n}, ye = Symbol.for(\"__MUTATIVE_PROXY_DRAFT__\"), De = Symbol(\"__MUTATIVE_RAW_RETURN_SYMBOL__\"), K = Symbol.iterator, v = {\n mutable: \"mutable\",\n immutable: \"immutable\"\n}, te = {};\nfunction B(e, n) {\n return e instanceof Map ? e.has(n) : Object.prototype.hasOwnProperty.call(e, n);\n}\nfunction le(e, n) {\n if (n in e) {\n let t = Reflect.getPrototypeOf(e);\n for (; t; ) {\n const r = Reflect.getOwnPropertyDescriptor(t, n);\n if (r)\n return r;\n t = Reflect.getPrototypeOf(t);\n }\n }\n}\nfunction re(e) {\n return Object.getPrototypeOf(e) === Set.prototype;\n}\nfunction oe(e) {\n return Object.getPrototypeOf(e) === Map.prototype;\n}\nfunction M(e) {\n var n;\n return (n = e.copy) !== null && n !== void 0 ? n : e.original;\n}\nfunction C(e) {\n return !!u(e);\n}\nfunction u(e) {\n return typeof e != \"object\" ? null : e == null ? void 0 : e[ye];\n}\nfunction ie(e) {\n var n;\n const t = u(e);\n return t ? (n = t.copy) !== null && n !== void 0 ? n : t.original : e;\n}\nfunction S(e, n) {\n if (!e || typeof e != \"object\")\n return !1;\n let t;\n return Object.getPrototypeOf(e) === Object.prototype || Array.isArray(e) || e instanceof Map || e instanceof Set || !!(n != null && n.mark) && ((t = n.mark(e, v)) === v.immutable || typeof t == \"function\");\n}\nfunction we(e, n = []) {\n if (Object.hasOwnProperty.call(e, \"key\")) {\n const t = e.parent.copy, r = u(_(t, e.key));\n if (r !== null && (r == null ? void 0 : r.original) !== e.original)\n return null;\n const o = e.parent.type === 3, a = o ? Array.from(e.parent.setMap.keys()).indexOf(e.key) : e.key;\n if (!(o && t.size > a || B(t, a)))\n return null;\n n.push(a);\n }\n if (e.parent)\n return we(e.parent, n);\n n.reverse();\n try {\n _e(e.copy, n);\n } catch {\n return null;\n }\n return n;\n}\nfunction I(e) {\n return Array.isArray(e) ? 1 : e instanceof Map ? 2 : e instanceof Set ? 3 : 0;\n}\nfunction _(e, n) {\n return I(e) === 2 ? e.get(n) : e[n];\n}\nfunction g(e, n, t) {\n I(e) === 2 ? e.set(n, t) : e[n] = t;\n}\nfunction G(e, n) {\n const t = u(e);\n return (t ? M(t) : e)[n];\n}\nfunction D(e, n) {\n return e === n ? e !== 0 || 1 / e === 1 / n : e !== e && n !== n;\n}\nfunction Q(e) {\n if (e)\n for (; e.finalities.revoke.length > 0; )\n e.finalities.revoke.pop()();\n}\nfunction U(e, n) {\n return n ? e : [\"\"].concat(e).map((t) => {\n const r = `${t}`;\n return r.indexOf(\"/\") === -1 && r.indexOf(\"~\") === -1 ? r : r.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n }).join(\"/\");\n}\nfunction _e(e, n) {\n for (let t = 0; t < n.length - 1; t += 1) {\n const r = n[t];\n if (e = _(I(e) === 3 ? Array.from(e) : e, r), typeof e != \"object\")\n throw new Error(`Cannot resolve patch at '${n.join(\"/\")}'.`);\n }\n return e;\n}\nfunction xe(e) {\n const n = Object.create(Object.getPrototypeOf(e));\n return Reflect.ownKeys(e).forEach((t) => {\n let r = Reflect.getOwnPropertyDescriptor(e, t);\n if (r.enumerable && r.configurable && r.writable) {\n n[t] = e[t];\n return;\n }\n r.writable || (r.writable = !0, r.configurable = !0), (r.get || r.set) && (r = {\n configurable: !0,\n writable: !0,\n enumerable: r.enumerable,\n value: e[t]\n }), Reflect.defineProperty(n, t, r);\n }), n;\n}\nconst je = Object.prototype.propertyIsEnumerable;\nfunction be(e, n) {\n let t;\n if (Array.isArray(e))\n return Array.prototype.concat.call(e);\n if (e instanceof Set) {\n if (!re(e)) {\n const r = Object.getPrototypeOf(e).constructor;\n return new r(e.values());\n }\n return Set.prototype.difference ? Set.prototype.difference.call(e, /* @__PURE__ */ new Set()) : new Set(e.values());\n } else if (e instanceof Map) {\n if (!oe(e)) {\n const r = Object.getPrototypeOf(e).constructor;\n return new r(e);\n }\n return new Map(e);\n } else if (n != null && n.mark && (t = n.mark(e, v), t !== void 0) && t !== v.mutable) {\n if (t === v.immutable)\n return xe(e);\n if (typeof t == \"function\") {\n if (n.enablePatches || n.enableAutoFreeze)\n throw new Error(\"You can't use mark and patches or auto freeze together.\");\n return t();\n }\n throw new Error(`Unsupported mark result: ${t}`);\n } else if (typeof e == \"object\" && Object.getPrototypeOf(e) === Object.prototype) {\n const r = {};\n return Object.keys(e).forEach((o) => {\n r[o] = e[o];\n }), Object.getOwnPropertySymbols(e).forEach((o) => {\n je.call(e, o) && (r[o] = e[o]);\n }), r;\n } else\n throw new Error(\"Please check mark() to ensure that it is a stable marker draftable function.\");\n}\nfunction b(e) {\n e.copy || (e.copy = be(e.original, e.options));\n}\nfunction N(e) {\n if (!S(e))\n return ie(e);\n if (Array.isArray(e))\n return e.map(N);\n if (e instanceof Map) {\n const t = Array.from(e.entries()).map(([r, o]) => [\n r,\n N(o)\n ]);\n if (!oe(e)) {\n const r = Object.getPrototypeOf(e).constructor;\n return new r(t);\n }\n return new Map(t);\n }\n if (e instanceof Set) {\n const t = Array.from(e).map(N);\n if (!re(e)) {\n const r = Object.getPrototypeOf(e).constructor;\n return new r(t);\n }\n return new Set(t);\n }\n const n = Object.create(Object.getPrototypeOf(e));\n for (const t in e)\n n[t] = N(e[t]);\n return n;\n}\nfunction Y(e) {\n return C(e) ? N(e) : e;\n}\nfunction T(e) {\n var n;\n e.assignedMap = (n = e.assignedMap) !== null && n !== void 0 ? n : /* @__PURE__ */ new Map(), e.operated || (e.operated = !0, e.parent && T(e.parent));\n}\nfunction ue() {\n throw new Error(\"Cannot modify frozen object\");\n}\nfunction F(e, n, t, r, o) {\n {\n t = t ?? /* @__PURE__ */ new WeakMap(), r = r ?? [], o = o ?? [];\n const i = t.has(e) ? t.get(e) : e;\n if (r.length > 0) {\n const c = r.indexOf(i);\n if (i && typeof i == \"object\" && c !== -1)\n throw r[0] === i ? new Error(\"Forbids circular reference\") : new Error(`Forbids circular reference: ~/${o.slice(0, c).map((s, f) => {\n if (typeof s == \"symbol\")\n return `[${s.toString()}]`;\n const l = r[f];\n return typeof s == \"object\" && (l instanceof Map || l instanceof Set) ? Array.from(l.keys()).indexOf(s) : s;\n }).join(\"/\")}`);\n r.push(i), o.push(n);\n } else\n r.push(i);\n }\n if (Object.isFrozen(e) || C(e)) {\n r.pop(), o.pop();\n return;\n }\n switch (I(e)) {\n case 2:\n for (const [c, s] of e)\n F(c, c, t, r, o), F(s, c, t, r, o);\n e.set = e.clear = e.delete = ue;\n break;\n case 3:\n for (const c of e)\n F(c, c, t, r, o);\n e.add = e.clear = e.delete = ue;\n break;\n case 1:\n Object.freeze(e);\n let i = 0;\n for (const c of e)\n F(c, i, t, r, o), i += 1;\n break;\n default:\n Object.freeze(e), Object.keys(e).forEach((c) => {\n const s = e[c];\n F(s, c, t, r, o);\n });\n }\n r.pop(), o.pop();\n}\nfunction se(e, n) {\n const t = I(e);\n if (t === 0)\n Reflect.ownKeys(e).forEach((r) => {\n n(r, e[r], e);\n });\n else if (t === 1) {\n let r = 0;\n for (const o of e)\n n(r, o, e), r += 1;\n } else\n e.forEach((r, o) => n(o, r, e));\n}\nfunction me(e, n, t) {\n if (C(e) || !S(e, t) || n.has(e) || Object.isFrozen(e))\n return;\n const r = e instanceof Set, o = r ? /* @__PURE__ */ new Map() : void 0;\n if (n.add(e), se(e, (a, i) => {\n var c;\n if (C(i)) {\n const s = u(i);\n b(s);\n const f = !((c = s.assignedMap) === null || c === void 0) && c.size || s.operated ? s.copy : s.original;\n g(r ? o : e, a, f);\n } else\n me(i, n, t);\n }), o) {\n const a = e, i = Array.from(a);\n a.clear(), i.forEach((c) => {\n a.add(o.has(c) ? o.get(c) : c);\n });\n }\n}\nfunction Ce(e, n) {\n const t = e.type === 3 ? e.setMap : e.copy;\n e.finalities.revoke.length > 1 && e.assignedMap.get(n) && t && me(_(t, n), e.finalities.handledSet, e.options);\n}\nfunction Z(e) {\n e.type === 3 && e.copy && (e.copy.clear(), e.setMap.forEach((n) => {\n e.copy.add(ie(n));\n }));\n}\nfunction k(e, n, t, r) {\n if (e.operated && e.assignedMap && e.assignedMap.size > 0 && !e.finalized) {\n if (t && r) {\n const a = we(e);\n a && n(e, a, t, r);\n }\n e.finalized = !0;\n }\n}\nfunction ce(e, n, t, r) {\n const o = u(t);\n o && (o.callbacks || (o.callbacks = []), o.callbacks.push((a, i) => {\n var c;\n const s = e.type === 3 ? e.setMap : e.copy;\n if (D(_(s, n), t)) {\n let f = o.original;\n o.copy && (f = o.copy), Z(e), k(e, r, a, i), e.options.enableAutoFreeze && (e.options.updatedValues = (c = e.options.updatedValues) !== null && c !== void 0 ? c : /* @__PURE__ */ new WeakMap(), e.options.updatedValues.set(f, o.original)), g(s, n, f);\n }\n }), e.options.enableAutoFreeze && o.finalities !== e.finalities && (e.options.enableAutoFreeze = !1)), S(t, e.options) && e.finalities.draft.push(() => {\n const a = e.type === 3 ? e.setMap : e.copy;\n D(_(a, n), t) && Ce(e, n);\n });\n}\nfunction Ue(e, n, t, r, o) {\n let { original: a, assignedMap: i, options: c } = e, s = e.copy;\n s.length < a.length && ([a, s] = [s, a], [t, r] = [r, t]);\n for (let f = 0; f < a.length; f += 1)\n if (i.get(f.toString()) && s[f] !== a[f]) {\n const l = n.concat([f]), p = U(l, o);\n t.push({\n op: h.Replace,\n path: p,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: Y(s[f])\n }), r.push({\n op: h.Replace,\n path: p,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: Y(a[f])\n });\n }\n for (let f = a.length; f < s.length; f += 1) {\n const l = n.concat([f]), p = U(l, o);\n t.push({\n op: h.Add,\n path: p,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: Y(s[f])\n });\n }\n if (a.length < s.length) {\n const { arrayLengthAssignment: f = !0 } = c.enablePatches;\n if (f) {\n const l = n.concat([\"length\"]), p = U(l, o);\n r.push({\n op: h.Replace,\n path: p,\n value: a.length\n });\n } else\n for (let l = s.length; a.length < l; l -= 1) {\n const p = n.concat([l - 1]), y = U(p, o);\n r.push({\n op: h.Remove,\n path: y\n });\n }\n }\n}\nfunction Ie({ original: e, copy: n, assignedMap: t }, r, o, a, i) {\n t.forEach((c, s) => {\n const f = _(e, s), l = Y(_(n, s)), p = c ? B(e, s) ? h.Replace : h.Add : h.Remove;\n if (D(f, l) && p === h.Replace)\n return;\n const y = r.concat(s), w = U(y, i);\n o.push(p === h.Remove ? { op: p, path: w } : { op: p, path: w, value: l }), a.push(p === h.Add ? { op: h.Remove, path: w } : p === h.Remove ? { op: h.Add, path: w, value: f } : { op: h.Replace, path: w, value: f });\n });\n}\nfunction Fe({ original: e, copy: n }, t, r, o, a) {\n let i = 0;\n e.forEach((c) => {\n if (!n.has(c)) {\n const s = t.concat([i]), f = U(s, a);\n r.push({\n op: h.Remove,\n path: f,\n value: c\n }), o.unshift({\n op: h.Add,\n path: f,\n value: c\n });\n }\n i += 1;\n }), i = 0, n.forEach((c) => {\n if (!e.has(c)) {\n const s = t.concat([i]), f = U(s, a);\n r.push({\n op: h.Add,\n path: f,\n value: c\n }), o.unshift({\n op: h.Remove,\n path: f,\n value: c\n });\n }\n i += 1;\n });\n}\nfunction V(e, n, t, r) {\n const { pathAsArray: o = !0 } = e.options.enablePatches;\n switch (e.type) {\n case 0:\n case 2:\n return Ie(e, n, t, r, o);\n case 1:\n return Ue(e, n, t, r, o);\n case 3:\n return Fe(e, n, t, r, o);\n }\n}\nlet $e = !1;\nconst W = (e, n, t = !1) => {\n if (typeof e == \"object\" && e !== null && (!S(e, n) || t) && !$e)\n throw new Error(\"Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.\");\n}, ee = {\n get size() {\n return M(u(this)).size;\n },\n has(e) {\n return M(u(this)).has(e);\n },\n set(e, n) {\n const t = u(this), r = M(t);\n return (!r.has(e) || !D(r.get(e), n)) && (b(t), T(t), t.assignedMap.set(e, !0), t.copy.set(e, n), ce(t, e, n, V)), this;\n },\n delete(e) {\n if (!this.has(e))\n return !1;\n const n = u(this);\n return b(n), T(n), n.original.has(e) ? n.assignedMap.set(e, !1) : n.assignedMap.delete(e), n.copy.delete(e), !0;\n },\n clear() {\n const e = u(this);\n if (this.size) {\n b(e), T(e), e.assignedMap = /* @__PURE__ */ new Map();\n for (const [n] of e.original)\n e.assignedMap.set(n, !1);\n e.copy.clear();\n }\n },\n forEach(e, n) {\n const t = u(this);\n M(t).forEach((r, o) => {\n e.call(n, this.get(o), o, this);\n });\n },\n get(e) {\n var n, t;\n const r = u(this), o = M(r).get(e), a = ((t = (n = r.options).mark) === null || t === void 0 ? void 0 : t.call(n, o, v)) === v.mutable;\n if (r.options.strict && W(o, r.options, a), a || r.finalized || !S(o, r.options) || o !== r.original.get(e))\n return o;\n const i = te.createDraft({\n original: o,\n parentDraft: r,\n key: e,\n finalities: r.finalities,\n options: r.options\n });\n return b(r), r.copy.set(e, i), i;\n },\n keys() {\n return M(u(this)).keys();\n },\n values() {\n const e = this.keys();\n return {\n [K]: () => this.values(),\n next: () => {\n const n = e.next();\n return n.done ? n : {\n done: !1,\n value: this.get(n.value)\n };\n }\n };\n },\n entries() {\n const e = this.keys();\n return {\n [K]: () => this.entries(),\n next: () => {\n const n = e.next();\n if (n.done)\n return n;\n const t = this.get(n.value);\n return {\n done: !1,\n value: [n.value, t]\n };\n }\n };\n },\n [K]() {\n return this.entries();\n }\n}, Ne = Reflect.ownKeys(ee), pe = (e, n, { isValuesIterator: t }) => () => {\n var r, o;\n const a = n.next();\n if (a.done)\n return a;\n const i = a.value;\n let c = e.setMap.get(i);\n const s = u(c), f = ((o = (r = e.options).mark) === null || o === void 0 ? void 0 : o.call(r, c, v)) === v.mutable;\n if (e.options.strict && W(i, e.options, f), !f && !s && S(i, e.options) && !e.finalized && e.original.has(i)) {\n const l = te.createDraft({\n original: i,\n parentDraft: e,\n key: i,\n finalities: e.finalities,\n options: e.options\n });\n e.setMap.set(i, l), c = l;\n } else s && (c = s.proxy);\n return {\n done: !1,\n value: t ? c : [c, c]\n };\n}, J = {\n get size() {\n return u(this).setMap.size;\n },\n has(e) {\n const n = u(this);\n if (n.setMap.has(e))\n return !0;\n b(n);\n const t = u(e);\n return !!(t && n.setMap.has(t.original));\n },\n add(e) {\n const n = u(this);\n return this.has(e) || (b(n), T(n), n.assignedMap.set(e, !0), n.setMap.set(e, e), ce(n, e, e, V)), this;\n },\n delete(e) {\n if (!this.has(e))\n return !1;\n const n = u(this);\n b(n), T(n);\n const t = u(e);\n return t && n.setMap.has(t.original) ? (n.assignedMap.set(t.original, !1), n.setMap.delete(t.original)) : (!t && n.setMap.has(e) ? n.assignedMap.set(e, !1) : n.assignedMap.delete(e), n.setMap.delete(e));\n },\n clear() {\n if (!this.size)\n return;\n const e = u(this);\n b(e), T(e);\n for (const n of e.original)\n e.assignedMap.set(n, !1);\n e.setMap.clear();\n },\n values() {\n const e = u(this);\n b(e);\n const n = e.setMap.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: pe(e, n, { isValuesIterator: !0 })\n };\n },\n entries() {\n const e = u(this);\n b(e);\n const n = e.setMap.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: pe(e, n, {\n isValuesIterator: !1\n })\n };\n },\n keys() {\n return this.values();\n },\n [K]() {\n return this.values();\n },\n forEach(e, n) {\n const t = this.values();\n let r = t.next();\n for (; !r.done; )\n e.call(n, r.value, r.value, this), r = t.next();\n }\n};\nSet.prototype.difference && Object.assign(J, {\n intersection(e) {\n return Set.prototype.intersection.call(new Set(this.values()), e);\n },\n union(e) {\n return Set.prototype.union.call(new Set(this.values()), e);\n },\n difference(e) {\n return Set.prototype.difference.call(new Set(this.values()), e);\n },\n symmetricDifference(e) {\n return Set.prototype.symmetricDifference.call(new Set(this.values()), e);\n },\n isSubsetOf(e) {\n return Set.prototype.isSubsetOf.call(new Set(this.values()), e);\n },\n isSupersetOf(e) {\n return Set.prototype.isSupersetOf.call(new Set(this.values()), e);\n },\n isDisjointFrom(e) {\n return Set.prototype.isDisjointFrom.call(new Set(this.values()), e);\n }\n});\nconst Be = Reflect.ownKeys(J), Oe = {\n get(e, n, t) {\n var r, o;\n const a = (r = e.copy) === null || r === void 0 ? void 0 : r[n];\n if (a && e.finalities.draftsCache.has(a))\n return a;\n if (n === ye)\n return e;\n let i;\n if (e.options.mark) {\n const f = n === \"size\" && (e.original instanceof Map || e.original instanceof Set) ? Reflect.get(e.original, n) : Reflect.get(e.original, n, t);\n if (i = e.options.mark(f, v), i === v.mutable)\n return e.options.strict && W(f, e.options, !0), f;\n }\n const c = M(e);\n if (c instanceof Map && Ne.includes(n))\n return n === \"size\" ? Object.getOwnPropertyDescriptor(ee, \"size\").get.call(e.proxy) : ee[n].bind(e.proxy);\n if (c instanceof Set && Be.includes(n))\n return n === \"size\" ? Object.getOwnPropertyDescriptor(J, \"size\").get.call(e.proxy) : J[n].bind(e.proxy);\n if (!B(c, n)) {\n const f = le(c, n);\n return f ? \"value\" in f ? f.value : (\n // !case: support for getter\n (o = f.get) === null || o === void 0 ? void 0 : o.call(e.proxy)\n ) : void 0;\n }\n const s = c[n];\n if (e.options.strict && W(s, e.options), e.finalized || !S(s, e.options))\n return s;\n if (s === G(e.original, n)) {\n if (b(e), e.copy[n] = ae({\n original: e.original[n],\n parentDraft: e,\n key: e.type === 1 ? Number(n) : n,\n finalities: e.finalities,\n options: e.options\n }), typeof i == \"function\") {\n const f = u(e.copy[n]);\n return b(f), T(f), f.copy;\n }\n return e.copy[n];\n }\n return C(s) && e.finalities.draftsCache.add(s), s;\n },\n set(e, n, t) {\n var r;\n if (e.type === 3 || e.type === 2)\n throw new Error(\"Map/Set draft does not support any property assignment.\");\n let o;\n if (e.type === 1 && n !== \"length\" && !(Number.isInteger(o = Number(n)) && o >= 0 && (n === 0 || o === 0 || String(o) === String(n))))\n throw new Error(\"Only supports setting array indices and the 'length' property.\");\n const a = le(M(e), n);\n if (a != null && a.set)\n return a.set.call(e.proxy, t), !0;\n const i = G(M(e), n), c = u(i);\n return c && D(c.original, t) ? (e.copy[n] = t, e.assignedMap = (r = e.assignedMap) !== null && r !== void 0 ? r : /* @__PURE__ */ new Map(), e.assignedMap.set(n, !1), !0) : (D(t, i) && (t !== void 0 || B(e.original, n)) || (b(e), T(e), B(e.original, n) && D(t, e.original[n]) ? e.assignedMap.delete(n) : e.assignedMap.set(n, !0), e.copy[n] = t, ce(e, n, t, V)), !0);\n },\n has(e, n) {\n return n in M(e);\n },\n ownKeys(e) {\n return Reflect.ownKeys(M(e));\n },\n getOwnPropertyDescriptor(e, n) {\n const t = M(e), r = Reflect.getOwnPropertyDescriptor(t, n);\n return r && {\n writable: !0,\n configurable: e.type !== 1 || n !== \"length\",\n enumerable: r.enumerable,\n value: t[n]\n };\n },\n getPrototypeOf(e) {\n return Reflect.getPrototypeOf(e.original);\n },\n setPrototypeOf() {\n throw new Error(\"Cannot call 'setPrototypeOf()' on drafts\");\n },\n defineProperty() {\n throw new Error(\"Cannot call 'defineProperty()' on drafts\");\n },\n deleteProperty(e, n) {\n var t;\n return e.type === 1 ? Oe.set.call(this, e, n, void 0, e.proxy) : (G(e.original, n) !== void 0 || n in e.original ? (b(e), T(e), e.assignedMap.set(n, !1)) : (e.assignedMap = (t = e.assignedMap) !== null && t !== void 0 ? t : /* @__PURE__ */ new Map(), e.assignedMap.delete(n)), e.copy && delete e.copy[n], !0);\n }\n};\nfunction ae(e) {\n const { original: n, parentDraft: t, key: r, finalities: o, options: a } = e, i = I(n), c = {\n type: i,\n finalized: !1,\n parent: t,\n original: n,\n copy: null,\n proxy: null,\n finalities: o,\n options: a,\n // Mapping of draft Set items to their corresponding draft values.\n setMap: i === 3 ? new Map(n.entries()) : void 0\n };\n (r || \"key\" in e) && (c.key = r);\n const { proxy: s, revoke: f } = Proxy.revocable(i === 1 ? Object.assign([], c) : c, Oe);\n if (o.revoke.push(f), c.proxy = s, t) {\n const l = t;\n l.finalities.draft.push((p, y) => {\n var w, z;\n const x = u(s);\n let E = l.type === 3 ? l.setMap : l.copy;\n const m = _(E, r), O = u(m);\n if (O) {\n let A = O.original;\n O.operated && (A = ie(m)), Z(O), k(O, V, p, y), l.options.enableAutoFreeze && (l.options.updatedValues = (w = l.options.updatedValues) !== null && w !== void 0 ? w : /* @__PURE__ */ new WeakMap(), l.options.updatedValues.set(A, O.original)), g(E, r, A);\n }\n (z = x.callbacks) === null || z === void 0 || z.forEach((A) => {\n A(p, y);\n });\n });\n } else {\n const l = u(s);\n l.finalities.draft.push((p, y) => {\n Z(l), k(l, V, p, y);\n });\n }\n return s;\n}\nte.createDraft = ae;\nfunction Ve(e, n, t, r, o) {\n var a;\n const i = u(e), c = (a = i == null ? void 0 : i.original) !== null && a !== void 0 ? a : e, s = !!n.length;\n if (i != null && i.operated)\n for (; i.finalities.draft.length > 0; )\n i.finalities.draft.pop()(t, r);\n const f = s ? n[0] : i ? i.operated ? i.copy : i.original : e;\n return i && Q(i), o && F(f, f, i == null ? void 0 : i.options.updatedValues), [\n f,\n t && s ? [{ op: h.Replace, path: [], value: n[0] }] : t,\n r && s ? [{ op: h.Replace, path: [], value: c }] : r\n ];\n}\nfunction ge(e, n) {\n var t;\n const r = {\n draft: [],\n revoke: [],\n handledSet: /* @__PURE__ */ new WeakSet(),\n draftsCache: /* @__PURE__ */ new WeakSet()\n };\n let o, a;\n n.enablePatches && (o = [], a = []);\n const c = ((t = n.mark) === null || t === void 0 ? void 0 : t.call(n, e, v)) === v.mutable || !S(e, n) ? e : ae({\n original: e,\n parentDraft: null,\n finalities: r,\n options: n\n });\n return [\n c,\n (s = []) => {\n const [f, l, p] = Ve(c, s, o, a, n.enableAutoFreeze);\n return n.enablePatches ? [f, l, p] : f;\n }\n ];\n}\nfunction ne(e) {\n const { rootDraft: n, value: t, useRawReturn: r = !1, isRoot: o = !0 } = e;\n se(t, (a, i, c) => {\n const s = u(i);\n if (s && n && s.finalities === n.finalities) {\n e.isContainDraft = !0;\n const f = s.original;\n if (c instanceof Set) {\n const l = Array.from(c);\n c.clear(), l.forEach((p) => c.add(a === p ? f : p));\n } else\n g(c, a, f);\n } else typeof i == \"object\" && i !== null && (e.value = i, e.isRoot = !1, ne(e));\n }), o && (e.isContainDraft || console.warn(\"The return value does not contain any draft, please use 'rawReturn()' to wrap the return value to improve performance.\"), r && console.warn(\"The return value contains drafts, please don't use 'rawReturn()' to wrap the return value.\"));\n}\nfunction Me(e) {\n var n;\n const t = u(e);\n if (!S(e, t == null ? void 0 : t.options))\n return e;\n const r = I(e);\n if (t && !t.operated)\n return t.original;\n let o;\n function a() {\n o = r === 2 ? oe(e) ? new Map(e) : new (Object.getPrototypeOf(e)).constructor(e) : r === 3 ? Array.from(t.setMap.values()) : be(e, t == null ? void 0 : t.options);\n }\n if (t) {\n t.finalized = !0;\n try {\n a();\n } finally {\n t.finalized = !1;\n }\n } else\n o = e;\n if (se(o, (i, c) => {\n if (t && D(_(t.original, i), c))\n return;\n const s = Me(c);\n s !== c && (o === e && a(), g(o, i, s));\n }), r === 3) {\n const i = (n = t == null ? void 0 : t.original) !== null && n !== void 0 ? n : o;\n return re(i) ? new Set(o) : new (Object.getPrototypeOf(i)).constructor(o);\n }\n return o;\n}\nfunction de(e) {\n if (!C(e))\n throw new Error(`current() is only used for Draft, parameter: ${e}`);\n return Me(e);\n}\nconst Le = (e) => function n(t, r, o) {\n var a, i, c;\n if (typeof t == \"function\" && typeof r != \"function\")\n return function(d, ...P) {\n return n(d, (j) => t.call(this, j, ...P), r);\n };\n const s = t, f = r;\n let l = o;\n if (typeof r != \"function\" && (l = r), l !== void 0 && Object.prototype.toString.call(l) !== \"[object Object]\")\n throw new Error(`Invalid options: ${l}, 'options' should be an object.`);\n l = Object.assign(Object.assign({}, e), l);\n const p = C(s) ? de(s) : s, y = Array.isArray(l.mark) ? (d, P) => {\n for (const j of l.mark) {\n if (typeof j != \"function\")\n throw new Error(`Invalid mark: ${j}, 'mark' should be a function.`);\n const $ = j(d, P);\n if ($)\n return $;\n }\n } : l.mark, w = (a = l.enablePatches) !== null && a !== void 0 ? a : !1, z = (i = l.strict) !== null && i !== void 0 ? i : !1, E = {\n enableAutoFreeze: (c = l.enableAutoFreeze) !== null && c !== void 0 ? c : !1,\n mark: y,\n strict: z,\n enablePatches: w\n };\n if (!S(p, E) && typeof p == \"object\" && p !== null)\n throw new Error(\"Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.\");\n const [m, O] = ge(p, E);\n if (typeof r != \"function\") {\n if (!S(p, E))\n throw new Error(\"Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.\");\n return [m, O];\n }\n let A;\n try {\n A = f(m);\n } catch (d) {\n throw Q(u(m)), d;\n }\n const fe = (d) => {\n const P = u(m);\n if (!C(d)) {\n if (d !== void 0 && !D(d, m) && (P != null && P.operated))\n throw new Error(\"Either the value is returned as a new non-draft value, or only the draft is modified without returning any value.\");\n const $ = d == null ? void 0 : d[De];\n if ($) {\n const Pe = $[0];\n return E.strict && typeof d == \"object\" && d !== null && ne({\n rootDraft: P,\n value: d,\n useRawReturn: !0\n }), O([Pe]);\n }\n if (d !== void 0)\n return typeof d == \"object\" && d !== null && ne({ rootDraft: P, value: d }), O([d]);\n }\n if (d === m || d === void 0)\n return O([]);\n const j = u(d);\n if (E === j.options) {\n if (j.operated)\n throw new Error(\"Cannot return a modified child draft.\");\n return O([de(d)]);\n }\n return O([d]);\n };\n return A instanceof Promise ? A.then(fe, (d) => {\n throw Q(u(m)), d;\n }) : fe(A);\n}, ve = Le();\nObject.prototype.constructor.toString();\nconst Re = (e) => typeof e == \"string\" && e.startsWith(\"data:\"), X = (e) => {\n const n = e.match(/^data:([^;]+)/);\n return n ? n[1] : R.OCTET_STREAM;\n}, Se = (e) => {\n var r;\n const n = {}, t = (r = e.match(/^data:[^;]+;([^,]+),/)) == null ? void 0 : r[1];\n return t && t.split(\";\").forEach((o) => {\n const [a, i] = o.split(\"=\");\n a && i && (n[a] = i);\n }), n;\n}, Ge = (e) => {\n const n = encodeURIComponent(e);\n return `data:${R.TEXT};charset=utf-8,${n}`;\n}, Qe = (e) => {\n const n = JSON.stringify(e), t = encodeURIComponent(n);\n return `data:${R.JSON};charset=utf-8,${t}`;\n}, Ee = (e) => {\n const n = new Uint8Array(e), t = btoa(String.fromCharCode(...n));\n return `data:${R.OCTET_STREAM};base64,${t}`;\n}, Ze = (e, n) => {\n const t = e.buffer, r = new Uint8Array(t), o = btoa(String.fromCharCode(...r));\n return `data:${R.TYPED_ARRAY}${n};base64,${o}`;\n}, q = async (e, n) => {\n if (We(e)) {\n const i = ze(e);\n if (!i)\n throw new Error(\"Invalid URL data URL\");\n const c = await fetch(i, { ...n, redirect: \"follow\" });\n if (!c.ok)\n throw new Error(`Failed to fetch ${i}: ${c.statusText}`);\n return c.arrayBuffer();\n }\n const t = e.indexOf(\",\");\n if (t === -1)\n throw new Error(\"Invalid data URL format\");\n const r = e.substring(0, t), o = e.substring(t + 1);\n if (r.includes(\";base64\")) {\n if (!o)\n return new ArrayBuffer(0);\n const i = atob(o), c = new Uint8Array(i.length);\n for (let s = 0; s < i.length; s++)\n c[s] = i.charCodeAt(s);\n return c.buffer;\n } else {\n const i = o ? decodeURIComponent(o) : \"\";\n return new TextEncoder().encode(i).buffer;\n }\n}, Ae = async (e, n) => {\n const t = await q(e, n);\n return new TextDecoder().decode(t);\n}, Ke = async (e, n) => {\n const t = await Ae(e, n);\n return JSON.parse(t);\n}, Ye = async (e, n) => {\n const r = Se(e).type;\n if (!r)\n throw new Error(\"Data URL does not contain type parameter\");\n const o = await q(e, n), a = globalThis[r];\n return new a(o);\n}, ke = async (e, n, t) => {\n const r = X(e), o = await q(e, t);\n if (!n) {\n const a = await crypto.subtle.digest(\"SHA-256\", o);\n n = Array.from(new Uint8Array(a)).map((c) => c.toString(16).padStart(2, \"0\")).join(\"\");\n }\n return new File([o], n, { type: r });\n}, Te = async (e, n) => {\n const t = `data:${R.URI};charset=utf-8,${encodeURIComponent(e)}`;\n if (n) {\n const r = await fetch(e, { ...n, redirect: \"follow\" });\n if (!r.ok)\n throw new Error(`Failed to fetch ${e}: ${r.statusText}`);\n const o = await r.arrayBuffer();\n return Ee(o);\n }\n return t;\n}, ze = (e) => X(e) !== R.URI ? null : decodeURIComponent(e.split(\",\")[1]), We = (e) => X(e) === R.URI, en = async (e, n) => {\n if (typeof e == \"string\")\n return Te(e, n);\n const t = await e.arrayBuffer();\n return Ee(t);\n}, nn = async (e, n) => {\n const t = ze(e);\n if (!t)\n throw new Error(\"Data URL does not contain a URL reference\");\n return Te(t, n);\n}, tn = async (e, n, t) => {\n const r = [], o = (s) => new TextEncoder().encode(JSON.stringify(s)).length, a = (s) => s === null ? \"null\" : Array.isArray(s) ? \"array\" : s instanceof Uint8Array ? \"Uint8Array\" : s instanceof ArrayBuffer ? \"ArrayBuffer\" : ArrayBuffer.isView(s) ? s.constructor.name : typeof s, i = (s, f = []) => {\n if (s == null || typeof s != \"object\" || typeof s == \"string\" && Re(s))\n return;\n if (o(s) > n && f.length > 0) {\n const y = a(s), w = JSON.stringify(s), z = t(w, y).then((x) => ({\n url: x,\n originalType: y\n }));\n r.push({ path: [...f], promise: z });\n return;\n }\n Array.isArray(s) ? s.forEach((y, w) => {\n i(y, [...f, w]);\n }) : Object.keys(s).forEach((y) => {\n i(s[y], [...f, y]);\n });\n };\n if (i(e), r.length === 0)\n return e;\n const c = await Promise.all(r.map((s) => s.promise));\n return ve(e, (s) => {\n r.forEach(({ path: f }, l) => {\n const { url: p, originalType: y } = c[l], w = encodeURIComponent(p), z = `data:${R.URI};type=${y};charset=utf-8,${w}`;\n let x = s;\n for (let m = 0; m < f.length - 1; m++)\n x = x[f[m]];\n const E = f[f.length - 1];\n x[E] = z;\n });\n });\n}, rn = async (e, n) => {\n const t = [], r = (a, i = []) => {\n if (a != null)\n if (typeof a == \"string\" && Re(a)) {\n const c = Je(a, n);\n t.push({ path: [...i], promise: c });\n } else Array.isArray(a) ? a.forEach((c, s) => {\n r(c, [...i, s]);\n }) : typeof a == \"object\" && Object.keys(a).forEach((c) => {\n r(a[c], [...i, c]);\n });\n };\n if (r(e), t.length === 0)\n return e;\n const o = await Promise.all(t.map((a) => a.promise));\n return ve(e, (a) => {\n t.forEach(({ path: i }, c) => {\n let s = a;\n for (let l = 0; l < i.length - 1; l++)\n s = s[i[l]];\n const f = i[i.length - 1];\n s[f] = o[c];\n });\n });\n}, Je = async (e, n) => {\n const t = X(e), r = Se(e);\n return t === R.JSON ? Ke(e, n) : t === R.TEXT ? Ae(e, n) : t === R.OCTET_STREAM && r.type ? Ye(e, n) : q(e, n);\n};\nvar he = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", He = typeof Uint8Array > \"u\" ? [] : new Uint8Array(256);\nfor (var L = 0; L < he.length; L++)\n He[he.charCodeAt(L)] = L;\nvar H;\n(function(e) {\n e.base64 = \"base64\", e.url = \"url\", e.utf8 = \"utf8\", e.json = \"json\", e.key = \"key\";\n})(H || (H = {}));\nconst Xe = Object.keys(H).filter((e) => isNaN(Number(e)));\nnew Set(Xe);\nH.utf8;\nconst qe = (e) => !!(e && typeof e == \"object\" && // until we get this in:\n// https://github.com/metapages/dataref/issues/1\n// then we fail on previous versions that assumed type\n// was \"url\" if missing, ugh.\n// (value as DataRef)?.type &&\n// DataRefTypesSet.has((value as DataRef).type!) &&\n(e == null ? void 0 : e.value) !== void 0);\nnew TextEncoder();\nconst on = (e) => !!(e && typeof e == \"string\" && e.startsWith(\"data:\")) || qe(e);\nexport {\n R as MIME_TYPES,\n Ee as bufferToDataUrl,\n tn as convertLargeObjectsToDataRefs,\n q as dataUrlToBuffer,\n ke as dataUrlToFile,\n Ke as dataUrlToJson,\n Ae as dataUrlToText,\n Ye as dataUrlToTypedArray,\n ze as dataUrlToUrl,\n rn as dereferenceDataRefs,\n nn as fetchDataUrlContent,\n en as fileToDataUrl,\n X as getMimeType,\n Se as getParameters,\n on as isDataRef,\n Re as isDataUrl,\n We as isUrlDataUrl,\n Qe as jsonToDataUrl,\n Ge as textToDataUrl,\n Ze as typedArrayToDataUrl,\n Te as urlToDataUrl\n};\n//# sourceMappingURL=index.js.map\n",null,null,null,null,"'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","function y(t) {\n return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, \"default\") ? t.default : t;\n}\nvar p = function(t, n) {\n n || (n = {}), typeof n == \"function\" && (n = { cmp: n });\n var r = typeof n.cycles == \"boolean\" ? n.cycles : !1, e = n.cmp && /* @__PURE__ */ function(s) {\n return function(a) {\n return function(c, l) {\n var u = { key: c, value: a[c] }, i = { key: l, value: a[l] };\n return s(u, i);\n };\n };\n }(n.cmp), o = [];\n return function s(a) {\n if (a && a.toJSON && typeof a.toJSON == \"function\" && (a = a.toJSON()), a !== void 0) {\n if (typeof a == \"number\") return isFinite(a) ? \"\" + a : \"null\";\n if (typeof a != \"object\") return JSON.stringify(a);\n var c, l;\n if (Array.isArray(a)) {\n for (l = \"[\", c = 0; c < a.length; c++)\n c && (l += \",\"), l += s(a[c]) || \"null\";\n return l + \"]\";\n }\n if (a === null) return \"null\";\n if (o.indexOf(a) !== -1) {\n if (r) return JSON.stringify(\"__cycle__\");\n throw new TypeError(\"Converting circular structure to JSON\");\n }\n var u = o.push(a) - 1, i = Object.keys(a).sort(e && e(a));\n for (l = \"\", c = 0; c < i.length; c++) {\n var h = i[c], g = s(a[h]);\n g && (l && (l += \",\"), l += JSON.stringify(h) + \":\" + g);\n }\n return o.splice(u, 1), \"{\" + l + \"}\";\n }\n }(t);\n};\nconst V = /* @__PURE__ */ y(p), S = (t) => w(V(t)), b = (t) => {\n if (t && t.length > 0)\n try {\n return JSON.parse(U(t));\n } catch {\n return JSON.parse(decodeURIComponent(atob(decodeURIComponent(t))));\n }\n}, w = (t) => btoa(encodeURIComponent(t)), U = (t) => {\n try {\n return decodeURIComponent(atob(t));\n } catch {\n return decodeURIComponent(atob(decodeURIComponent(t)));\n }\n}, I = (t) => {\n const n = t instanceof URL ? t : new URL(t);\n return H(n.hash);\n}, H = (t) => {\n let n = t;\n for (; n.startsWith(\"#\"); )\n n = n.substring(1);\n const r = n.indexOf(\"?\");\n if (r === -1)\n return [n, {}];\n const e = n.substring(0, r);\n n = n.substring(r + 1);\n const o = {};\n return n.split(\"&\").filter((s) => s.length > 0).map((s) => {\n const a = s.indexOf(\"=\");\n if (a === -1)\n return [s, \"\"];\n const c = s.substring(0, a), l = s.substring(a + 1);\n return [c, l];\n }).forEach(([s, a]) => {\n o[s] = a;\n }), Object.keys(o).forEach((s) => {\n o[s] = o[s];\n }), [e, o];\n}, d = (t, n) => {\n const [r, e] = I(t);\n return e[n];\n}, N = (t) => F()[1][t], F = () => I(window.location.href), m = (t, n, r) => {\n const e = window.location.hash.startsWith(\"#\") ? window.location.hash.substring(1) : window.location.hash, o = P(e, t, n);\n o !== e && (r != null && r.modifyHistory ? window.location.hash = o : (window.history.replaceState(null, document.title, `${window.location.pathname}${window.location.search}${o.startsWith(\"#\") ? \"\" : \"#\"}${o}`), window.dispatchEvent(new HashChangeEvent(\"hashchange\"))));\n}, P = (t, n, r) => {\n const [e, o] = H(t);\n let s = !1;\n if (o.hasOwnProperty(n) && r === null || r === void 0 ? (delete o[n], s = !0) : o[n] !== r && (o[n] = r, s = !0), !s)\n return t;\n const a = Object.keys(o);\n a.sort();\n const c = a.map((l, u) => {\n const i = o[l];\n return /^[A-Za-z0-9+/]+={0,2}$/.test(i) && i.length % 4, `${l}=${i}`;\n }).join(\"&\");\n return !e && !c ? \"\" : `${e || \"\"}${c ? \"?\" + c : \"\"}`;\n}, O = (t, n) => {\n let r = t;\n for (; r.startsWith(\"#\"); )\n r = r.substring(1);\n const e = r.indexOf(\"?\"), o = e === -1 ? r : r.substring(0, e), s = {};\n if (e !== -1) {\n const u = r.substring(e + 1);\n u.length > 0 && u.split(\"&\").forEach((i) => {\n if (i.length > 0) {\n const h = i.indexOf(\"=\");\n if (h === -1)\n s[i] = \"\";\n else {\n const g = i.substring(0, h), v = i.substring(h + 1);\n s[g] = v;\n }\n }\n });\n }\n let a = !1;\n for (const [u, i] of Object.entries(n))\n i == null ? s.hasOwnProperty(u) && (delete s[u], a = !0) : s[u] !== i && (s[u] = i, a = !0);\n if (!a)\n return t;\n const c = Object.keys(s);\n c.sort();\n const l = c.map((u) => {\n const i = s[u];\n return /^[A-Za-z0-9+/]+={0,2}$/.test(i) && i.length % 4, `${u}=${i}`;\n }).join(\"&\");\n return !o && !l ? \"\" : `${o || \"\"}${l ? \"?\" + l : \"\"}`;\n}, f = (t, n, r) => {\n const e = t instanceof URL ? t : new URL(t), o = P(e.hash, n, r);\n return e.hash = o, e;\n}, x = (t, n) => {\n const r = t instanceof URL ? t : new URL(t);\n let e = O(r.hash, n);\n return r.hash = e, r;\n}, L = (t, n, r) => {\n const e = t instanceof URL ? t : new URL(t);\n return e.hash = R(e.hash, n, r), e;\n}, W = (t, n) => {\n const r = d(t, n);\n if (r && r !== \"\")\n return b(r);\n}, _ = (t, n) => {\n const [r, e] = H(t), o = e[n];\n if (o && o !== \"\")\n return b(o);\n}, k = (t, n, r) => {\n const e = n ? S(n) : void 0;\n m(t, e, r);\n}, D = (t) => W(window.location.href, t), R = (t, n, r) => {\n const e = r ? S(r) : void 0;\n return P(t, n, e);\n}, A = (t, n, r) => f(t, n, r ? r.toString() : void 0), B = (t, n) => {\n const r = d(t, n);\n return r ? parseFloat(r) : void 0;\n}, J = (t, n, r) => {\n m(t, n != null ? n.toString() : void 0, r);\n}, T = (t) => B(window.location.href, t), q = (t, n, r) => f(t, n, r != null ? r.toString() : void 0), j = (t, n) => {\n const r = d(t, n);\n return r ? parseInt(r) : void 0;\n}, z = (t, n, r) => {\n J(t, n, r);\n}, Z = (t) => j(window.location.href, t), M = (t, n, r) => f(t, n, r ? \"true\" : void 0), $ = (t, n) => d(t, n) === \"true\", G = (t, n, r) => {\n m(t, n ? \"true\" : void 0, r);\n}, K = (t) => $(window.location.href, t), Q = (t, n, r) => f(t, n, r == null ? void 0 : w(r)), C = (t, n) => {\n const r = d(t, n);\n return r && r !== \"\" ? U(r) : void 0;\n}, X = (t, n, r) => {\n const e = n == null ? void 0 : w(n);\n m(t, e, r);\n}, Y = (t) => C(window.location.href, t), tt = (t, n, r) => f(t, n, r == null ? void 0 : encodeURIComponent(r)), E = (t, n) => {\n const r = d(t, n);\n return r && r !== \"\" ? decodeURIComponent(r) : void 0;\n}, nt = (t, n, r) => {\n const e = n == null ? void 0 : encodeURIComponent(n);\n m(t, e, r);\n}, rt = (t) => E(window.location.href, t), et = (t, n) => {\n m(t, void 0, n);\n}, at = (t, n) => f(t, n, void 0);\nexport {\n b as blobFromBase64String,\n S as blobToBase64String,\n O as createHashParamValuesInHashString,\n at as deleteHashParamFromUrl,\n et as deleteHashParamFromWindow,\n N as getHashParamFromWindow,\n d as getHashParamValue,\n C as getHashParamValueBase64DecodedFromUrl,\n Y as getHashParamValueBase64DecodedFromWindow,\n $ as getHashParamValueBooleanFromUrl,\n K as getHashParamValueBooleanFromWindow,\n B as getHashParamValueFloatFromUrl,\n T as getHashParamValueFloatFromWindow,\n j as getHashParamValueIntFromUrl,\n Z as getHashParamValueIntFromWindow,\n _ as getHashParamValueJsonFromHashString,\n W as getHashParamValueJsonFromUrl,\n D as getHashParamValueJsonFromWindow,\n E as getHashParamValueUriDecodedFromUrl,\n rt as getHashParamValueUriDecodedFromWindow,\n F as getHashParamsFromWindow,\n I as getUrlHashParams,\n H as getUrlHashParamsFromHashString,\n m as setHashParamInWindow,\n Q as setHashParamValueBase64EncodedInUrl,\n X as setHashParamValueBase64EncodedInWindow,\n M as setHashParamValueBooleanInUrl,\n G as setHashParamValueBooleanInWindow,\n A as setHashParamValueFloatInUrl,\n J as setHashParamValueFloatInWindow,\n P as setHashParamValueInHashString,\n f as setHashParamValueInUrl,\n q as setHashParamValueIntInUrl,\n z as setHashParamValueIntInWindow,\n R as setHashParamValueJsonInHashString,\n L as setHashParamValueJsonInUrl,\n k as setHashParamValueJsonInWindow,\n tt as setHashParamValueUriEncodedInUrl,\n nt as setHashParamValueUriEncodedInWindow,\n x as setHashParamsInUrl,\n U as stringFromBase64String,\n w as stringToBase64String\n};\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n",null,null,null,"'use strict';\n\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\nconst SEP = '/';\n\nconst POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR,\n SEP\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n ...POSIX_CHARS,\n\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`,\n SEP: '\\\\'\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n alnum: 'a-zA-Z0-9',\n alpha: 'a-zA-Z',\n ascii: '\\\\x00-\\\\x7F',\n blank: ' \\\\t',\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n digit: '0-9',\n graph: '\\\\x21-\\\\x7E',\n lower: 'a-z',\n print: '\\\\x20-\\\\x7E ',\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n upper: 'A-Z',\n word: 'A-Za-z0-9_',\n xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n __proto__: null,\n '***': '*',\n '**/**': '**',\n '**/**/**': '**'\n },\n\n // Digits\n CHAR_0: 48, /* 0 */\n CHAR_9: 57, /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65, /* A */\n CHAR_LOWERCASE_A: 97, /* a */\n CHAR_UPPERCASE_Z: 90, /* Z */\n CHAR_LOWERCASE_Z: 122, /* z */\n\n CHAR_LEFT_PARENTHESES: 40, /* ( */\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n CHAR_ASTERISK: 42, /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38, /* & */\n CHAR_AT: 64, /* @ */\n CHAR_BACKWARD_SLASH: 92, /* \\ */\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n CHAR_COLON: 58, /* : */\n CHAR_COMMA: 44, /* , */\n CHAR_DOT: 46, /* . */\n CHAR_DOUBLE_QUOTE: 34, /* \" */\n CHAR_EQUAL: 61, /* = */\n CHAR_EXCLAMATION_MARK: 33, /* ! */\n CHAR_FORM_FEED: 12, /* \\f */\n CHAR_FORWARD_SLASH: 47, /* / */\n CHAR_GRAVE_ACCENT: 96, /* ` */\n CHAR_HASH: 35, /* # */\n CHAR_HYPHEN_MINUS: 45, /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n CHAR_LINE_FEED: 10, /* \\n */\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n CHAR_PERCENT: 37, /* % */\n CHAR_PLUS: 43, /* + */\n CHAR_QUESTION_MARK: 63, /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n CHAR_SEMICOLON: 59, /* ; */\n CHAR_SINGLE_QUOTE: 39, /* ' */\n CHAR_SPACE: 32, /* */\n CHAR_TAB: 9, /* \\t */\n CHAR_UNDERSCORE: 95, /* _ */\n CHAR_VERTICAL_LINE: 124, /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n /**\n * Create EXTGLOB_CHARS\n */\n\n extglobChars(chars) {\n return {\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n '?': { type: 'qmark', open: '(?:', close: ')?' },\n '+': { type: 'plus', open: '(?:', close: ')+' },\n '*': { type: 'star', open: '(?:', close: ')*' },\n '@': { type: 'at', open: '(?:', close: ')' }\n };\n },\n\n /**\n * Create GLOB_CHARS\n */\n\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n};\n","/*global navigator*/\n'use strict';\n\nconst {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.isWindows = () => {\n if (typeof navigator !== 'undefined' && navigator.platform) {\n const platform = navigator.platform.toLowerCase();\n return platform === 'win32' || platform === 'windows';\n }\n\n if (typeof process !== 'undefined' && process.platform) {\n return process.platform === 'win32';\n }\n\n return false;\n};\n\nexports.removeBackslashes = str => {\n return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n return match === '\\\\' ? '' : match;\n });\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith('./')) {\n output = output.slice(2);\n state.prefix = './';\n }\n return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n const prepend = options.contains ? '' : '^';\n const append = options.contains ? '' : '$';\n\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n};\n\nexports.basename = (path, { windows } = {}) => {\n const segs = path.split(windows ? /[\\\\/]/ : '/');\n const last = segs[segs.length - 1];\n\n if (last === '') {\n return segs[segs.length - 2];\n }\n\n return last;\n};\n","'use strict';\n\nconst utils = require('./utils');\nconst {\n CHAR_ASTERISK, /* * */\n CHAR_AT, /* @ */\n CHAR_BACKWARD_SLASH, /* \\ */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_EXCLAMATION_MARK, /* ! */\n CHAR_FORWARD_SLASH, /* / */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_PLUS, /* + */\n CHAR_QUESTION_MARK, /* ? */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n if (token.isPrefix !== true) {\n token.depth = token.isGlobstar ? Infinity : 1;\n }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n const opts = options || {};\n\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token = { value: '', depth: 0, isGlob: false };\n\n const eos = () => index >= length;\n const peek = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n\n while (index < length) {\n code = advance();\n let next;\n\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token);\n token = { value: '', depth: 0, isGlob: false };\n\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === (start + 1)) {\n start += 2;\n continue;\n }\n\n lastIndex = index + 1;\n continue;\n }\n\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS\n || code === CHAR_AT\n || code === CHAR_ASTERISK\n || code === CHAR_QUESTION_MARK\n || code === CHAR_EXCLAMATION_MARK;\n\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n isExtglob = token.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token.isBracket = true;\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token.negated = true;\n start++;\n continue;\n }\n\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n\n if (isGlob === true) {\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n }\n\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n\n let base = str;\n let prefix = '';\n let glob = '';\n\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = '';\n glob = str;\n } else {\n base = str;\n }\n\n if (base && base !== '' && base !== '/' && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token);\n }\n state.tokens = tokens;\n }\n\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== '') {\n parts.push(value);\n }\n prevIndex = i;\n }\n\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n\n state.slashes = slashes;\n state.parts = parts;\n }\n\n return state;\n};\n\nmodule.exports = scan;\n","'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n try {\n /* eslint-disable-next-line no-new */\n new RegExp(value);\n } catch (ex) {\n return args.map(v => utils.escapeRegex(v)).join('..');\n }\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants.globChars(opts.windows);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = opts => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || '';\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren') {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.output = (prev.output || prev.value) + tok.value;\n prev.value += tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n let output = token.close + (opts.capture ? ')' : '');\n let rest;\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.\n // In this case, we need to parse the string and use it in the output of the original pattern.\n // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.\n //\n // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.\n const expression = parse(rest, { ...options, fastpaths: false }).output;\n\n output = token.close = `)${expression})${extglobStar})`;\n }\n\n if (token.prev.type === 'bos') {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(opts.windows);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = opts => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = opts.windows;\n const regex = isState\n ? picomatch.compileRe(glob, options)\n : picomatch.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n return regex.test(utils.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch.toRegex(source, options);\n if (returnState === true) {\n regex.state = state;\n }\n\n return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n let parsed = { negated: false, fastpaths: true };\n\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n parsed.output = parse.fastpaths(input, options);\n }\n\n if (!parsed.output) {\n parsed = parse(input, options);\n }\n\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n","'use strict';\n\nmodule.exports = require('./lib/picomatch');\n",null,null,null,null],"names":["MetaframeVersionsAll","MetapageVersionsAll","MetaframeVersionCurrent","MetapageVersionCurrent","METAFRAME_JSON_FILE","METAPAGE_KEY_DEFINITION","METAPAGE_KEY_STATE","VERSION_METAPAGE","VERSION_METAFRAME","semver","validateAndParse","version","match","isWildcard","s","tryParse","v","n","forceType","a","b","compareStrings","ap","bp","compareSegments","i","r","compareVersions","v1","v2","n1","n2","p1","p2","global","factory","module","this","fetchRetry","fetch","defaults","ArgumentError","isPositiveInteger","baseDefaults","input","init","retries","retryDelay","retryOn","resolve","reject","wrappedFetch","attempt","_input","response","retryOnResponse","retry","error","delay","value","message","Operation","PROXY_DRAFT","RAW_RETURN_SYMBOL","iteratorSymbol","dataTypes","internal","has","target","key","getDescriptor","prototype","descriptor","isBaseSetInstance","obj","isBaseMapInstance","latest","proxyDraft","_a","isDraft","getProxyDraft","getValue","isDraftable","options","markResult","getPath","path","parentCopy","get","isSet","resolvePath","getType","set","peek","state","isEqual","x","y","revokeProxy","escapePath","pathAsArray","_item","item","base","index","strictCopy","copy","desc","propIsEnum","shallowCopy","original","SubClass","ensureShallowCopy","deepClone","iterable","k","cloneIfNeeded","markChanged","throwFrozenError","deepFreeze","subKey","updatedValues","stack","keys","parent","name","forEach","iter","type","entry","handleValue","handledSet","setMap","updatedValue","values","finalizeAssigned","finalizeSetValue","finalizePatches","generatePatches","patches","inversePatches","basePath","markFinalization","generateArrayPatches","proxyState","assignedMap","_path","arrayLengthAssignment","generatePatchesFromAssigned","assignedValue","originalValue","op","generateSetPatches","readable","checkReadable","ignoreCheckDraftable","mapHandler","source","callback","thisArg","_value","_key","_b","mutable","draft","iterator","result","mapHandlerKeys","getNextIterator","isValuesIterator","currentDraft","proxy","setHandler","valueProxyDraft","other","setHandlerKeys","proxyHandler","receiver","createDraft","subProxyDraft","current","currentProxyDraft","createDraftOptions","parentDraft","finalities","revoke","oldProxyDraft","finalizeDraft","returnedValue","enableAutoFreeze","hasReturnedValue","draftify","baseState","finalizedState","finalizedPatches","finalizedInversePatches","handleReturnValue","rootDraft","useRawReturn","isRoot","currentValue","arr","getCurrent","newValue","makeCreator","arg","create","arg0","arg1","arg2","_c","args","mutate","mark","types","enablePatches","strict","_options","finalize","returnValue","rawReturnValue","returnedProxyDraft","fetchRetryWrapper","convertMetapageDefinitionToVersion","def","targetVersion","err","convertMetapageDefinitionToTargetVersionInternal","convertMetapageDefinitionToCurrentVersion","currentVersion","getMatchingMetapageVersion","currentDefinition","definition_v0_2_to_v0_3","definition_v0_3_to_v1","definition_v0_3_to_v0_2","definition_v1_to_v2","definition_v1_to_v0_3","definition_v2_to_v1","old","castV1","normalizeHashParams","hashParams","convertMetaframeDefinitionToVersion","convertMetaframeDefinitionToTargetVersionInternal","convertMetaframeDefinitionToCurrentVersion","getMatchingMetaframeVersion","definition_v0_3_to_v0_4","definition_v0_4_to_v0_5","definition_v0_4_to_v0_3","definition_v0_5_to_v0_6","definition_v0_5_to_v0_4","definition_v0_6_to_v1","definition_v0_6_to_v0_5","definition_v1_to_v0_6","convertMetaframeJsonToCurrentVersion","m","opts","converted","title","descriptionUrl","keywords","decription","tags","chars","lookup","decode","base64","bufferLength","len","p","encoded1","encoded2","encoded3","encoded4","arraybuffer","bytes","R","h","ye","K","te","B","e","le","t","re","oe","M","C","u","ie","S","we","_","o","_e","I","g","G","D","U","xe","je","be","N","Y","T","se","me","c","f","Ce","Z","ce","Ue","Ie","w","Fe","V","$e","W","ee","Ne","pe","J","Be","Oe","ae","z","E","O","Re","X","Se","Ee","Ze","q","We","ze","Ye","he","He","L","H","Xe","needsSerialization","needsDeserialization","serializeInputs","inputs","keysToSerialize","possiblySerializeValueToDataref","deserializeInputs","keysToDeserialize","possiblyDeserializeDatarefToValue","TYPED_ARRAY_NAMES","typedArrayToDataUrl","arrayBuffer","mimeType","bufferToDataUrl","isDataUrl","deserializeDataUrl","deserializeLegacyMetapage","deserializeDatarefV1","possiblyDeserializeDatarefToFile","deserialized","valueToFile","fileName","buffer","blob","dataUrl","params","getParameters","dataUrlToTypedArray","lastModified","getMimeType","dataUrlToBuffer","MetapageEvents","JsonRpcMethodsFromChild","JsonRpcMethodsFromParent","PARSE_ERROR","INVALID_REQUEST","METHOD_NOT_FOUND","INVALID_PARAMS","INTERNAL_ERROR","isJsonRpcId","prefix","Events","EE","fn","context","once","addListener","emitter","event","listener","evt","clearEvent","EventEmitter","names","events","handlers","l","listeners","a1","a2","a3","a4","a5","length","j","d","F","P","$","fastJsonStableStringify","data","cycles","cmp","node","aobj","bobj","seen","stringify","out","seenIndex","MetapageHashParams","isIframe","INITIAL_NULL_METAPAGE_DEFINITION","MetapageShared","merge","newInputs","pipeId","getUrlParam","getUrlParamDebug","isDebugFromUrlsParams","param","generateMetaframeId","generateId","generateMetapageId","generateNonce","LETTERS","charactersLength","log","color","backgroundColor","cssstring","stringToRgb","str","intToRGB","hashCode","hash","isPageLoaded","pageLoaded","loaded","metapageAllSha256Hash","metapage","metapageStr","sha256ToBase64","metapageOnlyEssentailSha256Hash","MetaframeLoadingState","MetaframeEvents","Metaframe","thisRef","disposer","MetapageToolsLog","pipe","originalInputs","updateBlob","outputs","originalOutputs","payload","method","jsonrpc","setHashParamInWindow","getHashParamFromWindow","setHashParamValueBooleanInWindow","getHashParamValueBooleanFromWindow","setHashParamValueJsonInWindow","getHashParamValueJsonFromWindow","setHashParamValueBase64EncodedInWindow","getHashParamValueBase64DecodedFromWindow","setHashParamValueFloatInWindow","getHashParamValueFloatFromWindow","setHashParamValueIntInWindow","getHashParamValueIntFromWindow","WIN_SLASH","WIN_NO_SLASH","DOT_LITERAL","PLUS_LITERAL","QMARK_LITERAL","SLASH_LITERAL","ONE_CHAR","QMARK","END_ANCHOR","START_ANCHOR","DOTS_SLASH","NO_DOT","NO_DOTS","NO_DOT_SLASH","NO_DOTS_SLASH","QMARK_NO_DOT","STAR","SEP","POSIX_CHARS","WINDOWS_CHARS","POSIX_REGEX_SOURCE","constants","win32","REGEX_BACKSLASH","REGEX_REMOVE_BACKSLASH","REGEX_SPECIAL_CHARS","REGEX_SPECIAL_CHARS_GLOBAL","require$$0","exports","val","platform","char","lastIdx","idx","output","prepend","append","windows","segs","last","utils","CHAR_ASTERISK","CHAR_AT","CHAR_BACKWARD_SLASH","CHAR_COMMA","CHAR_DOT","CHAR_EXCLAMATION_MARK","CHAR_FORWARD_SLASH","CHAR_LEFT_CURLY_BRACE","CHAR_LEFT_PARENTHESES","CHAR_LEFT_SQUARE_BRACKET","CHAR_PLUS","CHAR_QUESTION_MARK","CHAR_RIGHT_CURLY_BRACE","CHAR_RIGHT_PARENTHESES","CHAR_RIGHT_SQUARE_BRACKET","require$$1","isPathSeparator","code","depth","token","scan","scanToEnd","slashes","tokens","parts","start","lastIndex","isBrace","isBracket","isGlob","isExtglob","isGlobstar","braceEscaped","backslashes","negated","negatedExtglob","finished","braces","prev","eos","advance","next","glob","prevIndex","scan_1","MAX_LENGTH","REGEX_NON_SPECIAL_CHARS","REGEX_SPECIAL_CHARS_BACKREF","REPLACEMENTS","expandRange","syntaxError","parse","max","bos","capture","PLATFORM_CHARS","EXTGLOB_CHARS","globstar","nodot","qmarkNoDot","star","extglobs","remaining","consume","num","negate","count","increment","decrement","push","tok","extglobOpen","extglobClose","rest","extglobStar","expression","esc","first","inner","pre","posix","extglob","prevValue","escaped","open","brace","range","toks","prior","before","isStart","afterStar","after","end","slashDot","parse_1","require$$2","require$$3","isObject","picomatch","returnState","fns","isMatch","isState","regex","isIgnored","ignoreOpts","matcher","returnObject","format","patterns","pattern","returnOutput","parsed","picomatch_1","getMetapageDefinitionFromUrl","url","metapageUrl","definition","getMetaframeDefinitionFromUrl","metaframeUrl","urlEncodedDefinition","getHashParamValueJsonFromUrl","isEmptyMetaframeDefinition","MetapageIFrameRpcClient","iframeId","parentId","consoleBackgroundColor","debug","urlBlob","selfThis","_d","metaframeDef","inputBlob","maybeNewInputs","inputUpdate","maybeNewOutputs","outputsUpdate","pipeName","fWrap","thing","messageJSON","emptyState","getLibraryVersionMatching","matchPipe","outputName","CONSOLE_BACKGROUND_COLOR_DEFAULT","Metapage","metaPageDef","cb","exists","flag","newState","metaframeId","newDefinition","metaframeDefinition","previousDefinition","newMetaframeId","metadata","otherMetaframeId","inputPipes","id","iframeClient","outputPipeId","__","targets","inputPipe","targetName","inputPipeId","metaframeInputs","metapageInputs","metaframeValuesNew","isInputs","metaframePipeId","inputOrOutputState","metaframePipedId","inputsMetaframesNew","metaframe","iframe","modified","outputKeys","collectedOutputs","outputKey","hashParamsUpdatePayload","isMetaframeDivider","validateLayout","validated","layout","currentMaxY","allMetaframeIds","getVisibleGridLayoutData","desktopLayoutBlob","metaframesToHide","dividers","lowestYDivider","lowest","dividerY","visibleMetaframeIds","hiddenMetaframeIds","visibleLayoutItems","totalVisibleGridHeight","acc","renderMetapage","props","onOutputs","rootDiv","processMetapage","disposers","gridStyle","containerStyle","container","gridContainer","renderedMetaframes","layoutItem","itemStyle","wrapper","maxCol","hiddenContainer","isMetaframeHidden","getMetaframeKey","mfk","metapageDefinition"],"mappings":"AAGO,MAAMA,KAAuB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;GAKWC,KAAsB,CAAC,OAAO,OAAO,KAAK,GAAG,GAI7CC,KAA6C,KAC7CC,KAA2C,KCjB3CC,KAAsB,kBAItBC,KAA0B,uBAI1BC,KAAqB,kBAErBC,KACXN,GAAoBA,GAAoB,SAAS,CAAC,GACvCO,KACXR,GAAqBA,GAAqB,SAAS,CAAC,GCfzCS,KAAS,8IACTC,KAAmB,CAACC,MAAY;AACzC,MAAI,OAAOA,KAAY;AACnB,UAAM,IAAI,UAAU,kCAAkC;AAE1D,QAAMC,IAAQD,EAAQ,MAAMF,EAAM;AAClC,MAAI,CAACG;AACD,UAAM,IAAI,MAAM,uCAAuCD,CAAO,aAAa;AAE/E,SAAAC,EAAM,MAAK,GACJA;AACX,GACMC,KAAa,CAACC,MAAMA,MAAM,OAAOA,MAAM,OAAOA,MAAM,KACpDC,KAAW,CAACC,MAAM;AACpB,QAAMC,IAAI,SAASD,GAAG,EAAE;AACxB,SAAO,MAAMC,CAAC,IAAID,IAAIC;AAC1B,GACMC,KAAY,CAACC,GAAGC,MAAM,OAAOD,KAAM,OAAOC,IAAI,CAAC,OAAOD,CAAC,GAAG,OAAOC,CAAC,CAAC,IAAI,CAACD,GAAGC,CAAC,GAC5EC,KAAiB,CAACF,GAAGC,MAAM;AAC7B,MAAIP,GAAWM,CAAC,KAAKN,GAAWO,CAAC;AAC7B,WAAO;AACX,QAAM,CAACE,GAAIC,CAAE,IAAIL,GAAUH,GAASI,CAAC,GAAGJ,GAASK,CAAC,CAAC;AACnD,SAAIE,IAAKC,IACE,IACPD,IAAKC,IACE,KACJ;AACX,GACaC,KAAkB,CAACL,GAAGC,MAAM;AACrC,WAASK,IAAI,GAAGA,IAAI,KAAK,IAAIN,EAAE,QAAQC,EAAE,MAAM,GAAGK,KAAK;AACnD,UAAMC,IAAIL,GAAeF,EAAEM,CAAC,KAAK,KAAKL,EAAEK,CAAC,KAAK,GAAG;AACjD,QAAIC,MAAM;AACN,aAAOA;AAAA,EACd;AACD,SAAO;AACX,GC3BaC,IAAkB,CAACC,GAAIC,MAAO;AAEvC,QAAMC,IAAKpB,GAAiBkB,CAAE,GACxBG,IAAKrB,GAAiBmB,CAAE,GAExBG,IAAKF,EAAG,OACRG,IAAKF,EAAG,OAERL,IAAIF,GAAgBM,GAAIC,CAAE;AAChC,SAAIL,MAAM,IACCA,IAEPM,KAAMC,IACCT,GAAgBQ,EAAG,MAAM,GAAG,GAAGC,EAAG,MAAM,GAAG,CAAC,IAE9CD,KAAMC,IACJD,IAAK,KAAK,IAEd;AACX;;;;;;;AC3BA,GAAC,SAAUE,GAAQC,GAAS;AACqC,IAAAC,EAAiB,UAAAD,EAAO;AAAA,EAGzF,GAAGE,IAAO,WAAY;AAEpB,QAAIC,IAAa,SAAUC,GAAOC,GAAU;AAE1C,UADAA,IAAWA,KAAY,IACnB,OAAOD,KAAU;AACnB,cAAM,IAAIE,EAAc,0BAA0B;AAGpD,UAAI,OAAOD,KAAa;AACtB,cAAM,IAAIC,EAAc,4BAA4B;AAGtD,UAAID,EAAS,YAAY,UAAa,CAACE,EAAkBF,EAAS,OAAO;AACvE,cAAM,IAAIC,EAAc,oCAAoC;AAG9D,UAAID,EAAS,eAAe,UAAa,CAACE,EAAkBF,EAAS,UAAU,KAAK,OAAOA,EAAS,cAAe;AACjH,cAAM,IAAIC,EAAc,kFAAkF;AAG5G,UAAID,EAAS,YAAY,UAAa,CAAC,MAAM,QAAQA,EAAS,OAAO,KAAK,OAAOA,EAAS,WAAY;AACpG,cAAM,IAAIC,EAAc,+CAA+C;AAGzE,UAAIE,IAAe;AAAA,QACjB,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,SAAS,CAAE;AAAA,MACjB;AAEI,aAAAH,IAAW,OAAO,OAAOG,GAAcH,CAAQ,GAExC,SAAoBI,GAAOC,GAAM;AACtC,YAAIC,IAAUN,EAAS,SACnBO,IAAaP,EAAS,YACtBQ,IAAUR,EAAS;AAEvB,YAAIK,KAAQA,EAAK,YAAY;AAC3B,cAAIH,EAAkBG,EAAK,OAAO;AAChC,YAAAC,IAAUD,EAAK;AAAA;AAEf,kBAAM,IAAIJ,EAAc,oCAAoC;AAIhE,YAAII,KAAQA,EAAK,eAAe;AAC9B,cAAIH,EAAkBG,EAAK,UAAU,KAAM,OAAOA,EAAK,cAAe;AACpE,YAAAE,IAAaF,EAAK;AAAA;AAElB,kBAAM,IAAIJ,EAAc,kFAAkF;AAI9G,YAAII,KAAQA,EAAK;AACf,cAAI,MAAM,QAAQA,EAAK,OAAO,KAAM,OAAOA,EAAK,WAAY;AAC1D,YAAAG,IAAUH,EAAK;AAAA;AAEf,kBAAM,IAAIJ,EAAc,+CAA+C;AAK3E,eAAO,IAAI,QAAQ,SAAUQ,GAASC,GAAQ;AAC5C,cAAIC,IAAe,SAAUC,GAAS;AAGpC,gBAAIC,IACF,OAAO,UAAY,OAAeT,aAAiB,UAC/CA,EAAM,MAAO,IACbA;AACN,YAAAL,EAAMc,GAAQR,CAAI,EACf,KAAK,SAAUS,GAAU;AACxB,kBAAI,MAAM,QAAQN,CAAO,KAAKA,EAAQ,QAAQM,EAAS,MAAM,MAAM;AACjE,gBAAAL,EAAQK,CAAQ;AAAA,uBACP,OAAON,KAAY;AAC5B,oBAAI;AAEF,yBAAO,QAAQ,QAAQA,EAAQI,GAAS,MAAME,CAAQ,CAAC,EACpD,KAAK,SAAUC,GAAiB;AAC/B,oBAAGA,IACDC,EAAMJ,GAAS,MAAME,CAAQ,IAE7BL,EAAQK,CAAQ;AAAA,kBAExC,CAAqB,EAAE,MAAMJ,CAAM;AAAA,gBAClB,SAAQO,GAAO;AACd,kBAAAP,EAAOO,CAAK;AAAA,gBACb;AAAA;AAED,gBAAIL,IAAUN,IACZU,EAAMJ,GAAS,MAAME,CAAQ,IAE7BL,EAAQK,CAAQ;AAAA,YAGlC,CAAa,EACA,MAAM,SAAUG,GAAO;AACtB,kBAAI,OAAOT,KAAY;AACrB,oBAAI;AAEF,0BAAQ,QAAQA,EAAQI,GAASK,GAAO,IAAI,CAAC,EAC1C,KAAK,SAAUF,GAAiB;AAC/B,oBAAGA,IACDC,EAAMJ,GAASK,GAAO,IAAI,IAE1BP,EAAOO,CAAK;AAAA,kBAEpC,CAAqB,EACA,MAAM,SAASA,GAAO;AACrB,oBAAAP,EAAOO,CAAK;AAAA,kBAClC,CAAqB;AAAA,gBACJ,SAAOA,GAAO;AACb,kBAAAP,EAAOO,CAAK;AAAA,gBACb;AAAA;AACI,gBAAIL,IAAUN,IACnBU,EAAMJ,GAASK,GAAO,IAAI,IAE1BP,EAAOO,CAAK;AAAA,YAE5B,CAAa;AAAA,UACb;AAEQ,mBAASD,EAAMJ,GAASK,GAAOH,GAAU;AACvC,gBAAII,IAAS,OAAOX,KAAe,aACjCA,EAAWK,GAASK,GAAOH,CAAQ,IAAIP;AACzC,uBAAW,WAAY;AACrB,cAAAI,EAAa,EAAEC,CAAO;AAAA,YACvB,GAAEM,CAAK;AAAA,UACT;AAED,UAAAP,EAAa,CAAC;AAAA,QACtB,CAAO;AAAA,MACP;AAAA,IACA;AAEE,aAAST,EAAkBiB,GAAO;AAChC,aAAO,OAAO,UAAUA,CAAK,KAAKA,KAAS;AAAA,IAC5C;AAED,aAASlB,EAAcmB,GAAS;AAC9B,WAAK,OAAO,iBACZ,KAAK,UAAUA;AAAA,IAChB;AAED,WAAOtB;AAAA,EAET;;;mCCtJMuB,IAAY;AAAA,EACd,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,KAAK;AACT,GAGMC,KAAc,OAAO,IAAI,0BAA0B,GACnDC,KAAoB,OAAO,gCAAgC,GAC3DC,KAAiB,OAAO,UACxBC,KAAY;AAAA,EACd,SAAS;AAAA,EACT,WAAW;AACf,GAEMC,KAAW,CAAA;AAEjB,SAASC,GAAIC,GAAQC,GAAK;AACtB,SAAOD,aAAkB,MACnBA,EAAO,IAAIC,CAAG,IACd,OAAO,UAAU,eAAe,KAAKD,GAAQC,CAAG;AAC1D;AACA,SAASC,GAAcF,GAAQC,GAAK;AAChC,MAAIA,KAAOD,GAAQ;AACf,QAAIG,IAAY,QAAQ,eAAeH,CAAM;AAC7C,WAAOG,KAAW;AACd,YAAMC,IAAa,QAAQ,yBAAyBD,GAAWF,CAAG;AAClE,UAAIG;AACA,eAAOA;AACX,MAAAD,IAAY,QAAQ,eAAeA,CAAS;AAAA,IAC/C;AAAA,EACJ;AAEL;AACA,SAASE,GAAkBC,GAAK;AAC5B,SAAO,OAAO,eAAeA,CAAG,MAAM,IAAI;AAC9C;AACA,SAASC,GAAkBD,GAAK;AAC5B,SAAO,OAAO,eAAeA,CAAG,MAAM,IAAI;AAC9C;AAEA,SAASE,GAAOC,GAAY;AACxB,MAAIC;AACJ,UAAQA,IAAKD,EAAW,UAAU,QAAQC,MAAO,SAASA,IAAKD,EAAW;AAC9E;AAIA,SAASE,GAAQX,GAAQ;AACrB,SAAO,CAAC,CAACY,EAAcZ,CAAM;AACjC;AACA,SAASY,EAAcrB,GAAO;AAC1B,SAAI,OAAOA,KAAU,WACV,OACJA,KAAU,OAA2B,SAASA,EAAMG,EAAW;AAC1E;AACA,SAASmB,GAAStB,GAAO;AACrB,MAAImB;AACJ,QAAMD,IAAaG,EAAcrB,CAAK;AACtC,SAAOkB,KAAeC,IAAKD,EAAW,UAAU,QAAQC,MAAO,SAASA,IAAKD,EAAW,WAAYlB;AACxG;AAIA,SAASuB,GAAYvB,GAAOwB,GAAS;AACjC,MAAI,CAACxB,KAAS,OAAOA,KAAU;AAC3B,WAAO;AACX,MAAIyB;AACJ,SAAQ,OAAO,eAAezB,CAAK,MAAM,OAAO,aAC5C,MAAM,QAAQA,CAAK,KACnBA,aAAiB,OACjBA,aAAiB,OAChB,CAAC,EAAEwB,KAAY,QAAsCA,EAAQ,WACxDC,IAAaD,EAAQ,KAAKxB,GAAOM,EAAS,OAAOA,GAAU,aACzD,OAAOmB,KAAe;AACtC;AACA,SAASC,GAAQjB,GAAQkB,IAAO,IAAI;AAChC,MAAI,OAAO,eAAe,KAAKlB,GAAQ,KAAK,GAAG;AAE3C,UAAMmB,IAAanB,EAAO,OAAO,MAC3BS,IAAaG,EAAcQ,GAAID,GAAYnB,EAAO,GAAG,CAAC;AAC5D,QAAIS,MAAe,SAASA,KAAe,OAAgC,SAASA,EAAW,cAAcT,EAAO;AAChH,aAAO;AAEX,UAAMqB,IAAQrB,EAAO,OAAO,SAAS,GAC/BC,IAAMoB,IACN,MAAM,KAAKrB,EAAO,OAAO,OAAO,KAAI,CAAE,EAAE,QAAQA,EAAO,GAAG,IAC1DA,EAAO;AAEb,QAAI,EAAGqB,KAASF,EAAW,OAAOlB,KAAQF,GAAIoB,GAAYlB,CAAG;AACzD,aAAO;AACX,IAAAiB,EAAK,KAAKjB,CAAG;AAAA,EAChB;AACD,MAAID,EAAO;AACP,WAAOiB,GAAQjB,EAAO,QAAQkB,CAAI;AAGtC,EAAAA,EAAK,QAAO;AACZ,MAAI;AAEA,IAAAI,GAAYtB,EAAO,MAAMkB,CAAI;AAAA,EAChC,QACS;AACN,WAAO;AAAA,EACV;AACD,SAAOA;AACX;AACA,SAASK,GAAQvB,GAAQ;AACrB,SAAI,MAAM,QAAQA,CAAM,IACb,IACPA,aAAkB,MACX,IACPA,aAAkB,MACX,IACJ;AACX;AACA,SAASoB,GAAIpB,GAAQC,GAAK;AACtB,SAAOsB,GAAQvB,CAAM,MAAM,IAAwBA,EAAO,IAAIC,CAAG,IAAID,EAAOC,CAAG;AACnF;AACA,SAASuB,GAAIxB,GAAQC,GAAKV,GAAO;AAE7B,EADagC,GAAQvB,CAAM,MACd,IACTA,EAAO,IAAIC,GAAKV,CAAK,IAGrBS,EAAOC,CAAG,IAAIV;AAEtB;AACA,SAASkC,GAAKzB,GAAQC,GAAK;AACvB,QAAMyB,IAAQd,EAAcZ,CAAM;AAElC,UADe0B,IAAQlB,GAAOkB,CAAK,IAAI1B,GACzBC,CAAG;AACrB;AACA,SAAS0B,GAAQC,GAAGC,GAAG;AACnB,SAAID,MAAMC,IACCD,MAAM,KAAK,IAAIA,MAAM,IAAIC,IAGzBD,MAAMA,KAAKC,MAAMA;AAEhC;AACA,SAASC,GAAYrB,GAAY;AAC7B,MAAKA;AAEL,WAAOA,EAAW,WAAW,OAAO,SAAS;AAEzC,MADeA,EAAW,WAAW,OAAO,IAAG;AAGvD;AAEA,SAASsB,GAAWb,GAAMc,GAAa;AACnC,SAAOA,IACDd,IACA,CAAC,EAAE,EACA,OAAOA,CAAI,EACX,IAAI,CAACe,MAAU;AAChB,UAAMC,IAAO,GAAGD,CAAK;AACrB,WAAIC,EAAK,QAAQ,GAAG,MAAM,MAAMA,EAAK,QAAQ,GAAG,MAAM,KAC3CA,IACJA,EAAK,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI;AAAA,EAC/D,CAAS,EACI,KAAK,GAAG;AACrB;AASA,SAASZ,GAAYa,GAAMjB,GAAM;AAC7B,WAASkB,IAAQ,GAAGA,IAAQlB,EAAK,SAAS,GAAGkB,KAAS,GAAG;AACrD,UAAMnC,IAAMiB,EAAKkB,CAAK;AAGtB,QADAD,IAAOf,GAAIG,GAAQY,CAAI,MAAM,IAAwB,MAAM,KAAKA,CAAI,IAAIA,GAAMlC,CAAG,GAC7E,OAAOkC,KAAS;AAChB,YAAM,IAAI,MAAM,4BAA4BjB,EAAK,KAAK,GAAG,CAAC,IAAI;AAAA,EAErE;AACD,SAAOiB;AACX;AAEA,SAASE,GAAWrC,GAAQ;AACxB,QAAMsC,IAAO,OAAO,OAAO,OAAO,eAAetC,CAAM,CAAC;AACxD,iBAAQ,QAAQA,CAAM,EAAE,QAAQ,CAACC,MAAQ;AACrC,QAAIsC,IAAO,QAAQ,yBAAyBvC,GAAQC,CAAG;AACvD,QAAIsC,EAAK,cAAcA,EAAK,gBAAgBA,EAAK,UAAU;AACvD,MAAAD,EAAKrC,CAAG,IAAID,EAAOC,CAAG;AACtB;AAAA,IACH;AAED,IAAKsC,EAAK,aACNA,EAAK,WAAW,IAChBA,EAAK,eAAe,MAEpBA,EAAK,OAAOA,EAAK,SACjBA,IAAO;AAAA,MACH,cAAc;AAAA,MACd,UAAU;AAAA,MACV,YAAYA,EAAK;AAAA,MACjB,OAAOvC,EAAOC,CAAG;AAAA,IACjC,IACQ,QAAQ,eAAeqC,GAAMrC,GAAKsC,CAAI;AAAA,EAC9C,CAAK,GACMD;AACX;AACA,MAAME,KAAa,OAAO,UAAU;AACpC,SAASC,GAAYC,GAAU3B,GAAS;AACpC,MAAIC;AACJ,MAAI,MAAM,QAAQ0B,CAAQ;AACtB,WAAO,MAAM,UAAU,OAAO,KAAKA,CAAQ;AAE1C,MAAIA,aAAoB,KAAK;AAC9B,QAAI,CAACrC,GAAkBqC,CAAQ,GAAG;AAC9B,YAAMC,IAAW,OAAO,eAAeD,CAAQ,EAAE;AACjD,aAAO,IAAIC,EAASD,EAAS,OAAQ,CAAA;AAAA,IACxC;AACD,WAAO,IAAI,UAAU,aACf,IAAI,UAAU,WAAW,KAAKA,GAAU,oBAAI,KAAK,IACjD,IAAI,IAAIA,EAAS,OAAM,CAAE;AAAA,EAClC,WACQA,aAAoB,KAAK;AAC9B,QAAI,CAACnC,GAAkBmC,CAAQ,GAAG;AAC9B,YAAMC,IAAW,OAAO,eAAeD,CAAQ,EAAE;AACjD,aAAO,IAAIC,EAASD,CAAQ;AAAA,IAC/B;AACD,WAAO,IAAI,IAAIA,CAAQ;AAAA,EAC1B,WACS3B,KAAY,QAAsCA,EAAQ,SAC9DC,IAAaD,EAAQ,KAAK2B,GAAU7C,EAAS,GAC3CmB,MAAe,WACnBA,MAAenB,GAAU,SAAS;AAClC,QAAImB,MAAenB,GAAU;AACzB,aAAOwC,GAAWK,CAAQ;AAEzB,QAAI,OAAO1B,KAAe,YAAY;AACvC,UAAKD,EAAQ,iBAAiBA,EAAQ;AAClC,cAAM,IAAI,MAAM,yDAAyD;AAE7E,aAAOC,EAAU;AAAA,IACpB;AACD,UAAM,IAAI,MAAM,4BAA4BA,CAAU,EAAE;AAAA,EAC3D,WACQ,OAAO0B,KAAa,YACzB,OAAO,eAAeA,CAAQ,MAAM,OAAO,WAAW;AAGtD,UAAMJ,IAAO,CAAA;AACb,kBAAO,KAAKI,CAAQ,EAAE,QAAQ,CAACzC,MAAQ;AACnC,MAAAqC,EAAKrC,CAAG,IAAIyC,EAASzC,CAAG;AAAA,IACpC,CAAS,GACD,OAAO,sBAAsByC,CAAQ,EAAE,QAAQ,CAACzC,MAAQ;AACpD,MAAIuC,GAAW,KAAKE,GAAUzC,CAAG,MAC7BqC,EAAKrC,CAAG,IAAIyC,EAASzC,CAAG;AAAA,IAExC,CAAS,GACMqC;AAAA,EACV;AAEG,UAAM,IAAI,MAAM,8EAA8E;AAEtG;AACA,SAASM,EAAkB5C,GAAQ;AAC/B,EAAIA,EAAO,SAEXA,EAAO,OAAOyC,GAAYzC,EAAO,UAAUA,EAAO,OAAO;AAC7D;AACA,SAAS6C,GAAU7C,GAAQ;AACvB,MAAI,CAACc,GAAYd,CAAM;AACnB,WAAOa,GAASb,CAAM;AAC1B,MAAI,MAAM,QAAQA,CAAM;AACpB,WAAOA,EAAO,IAAI6C,EAAS;AAC/B,MAAI7C,aAAkB,KAAK;AACvB,UAAM8C,IAAW,MAAM,KAAK9C,EAAO,SAAS,EAAE,IAAI,CAAC,CAAC+C,GAAGnG,CAAC,MAAM;AAAA,MAC1DmG;AAAA,MACAF,GAAUjG,CAAC;AAAA,IACvB,CAAS;AACD,QAAI,CAAC2D,GAAkBP,CAAM,GAAG;AAC5B,YAAM2C,IAAW,OAAO,eAAe3C,CAAM,EAAE;AAC/C,aAAO,IAAI2C,EAASG,CAAQ;AAAA,IAC/B;AACD,WAAO,IAAI,IAAIA,CAAQ;AAAA,EAC1B;AACD,MAAI9C,aAAkB,KAAK;AACvB,UAAM8C,IAAW,MAAM,KAAK9C,CAAM,EAAE,IAAI6C,EAAS;AACjD,QAAI,CAACxC,GAAkBL,CAAM,GAAG;AAC5B,YAAM2C,IAAW,OAAO,eAAe3C,CAAM,EAAE;AAC/C,aAAO,IAAI2C,EAASG,CAAQ;AAAA,IAC/B;AACD,WAAO,IAAI,IAAIA,CAAQ;AAAA,EAC1B;AACD,QAAMR,IAAO,OAAO,OAAO,OAAO,eAAetC,CAAM,CAAC;AACxD,aAAWC,KAAOD;AACd,IAAAsC,EAAKrC,CAAG,IAAI4C,GAAU7C,EAAOC,CAAG,CAAC;AACrC,SAAOqC;AACX;AACA,SAASU,GAAchD,GAAQ;AAC3B,SAAOW,GAAQX,CAAM,IAAI6C,GAAU7C,CAAM,IAAIA;AACjD;AAEA,SAASiD,GAAYxC,GAAY;AAC7B,MAAIC;AACJ,EAAAD,EAAW,eAAeC,IAAKD,EAAW,iBAAiB,QAAQC,MAAO,SAASA,IAAK,oBAAI,IAAG,GAC1FD,EAAW,aACZA,EAAW,WAAW,IAClBA,EAAW,UACXwC,GAAYxC,EAAW,MAAM;AAGzC;AAEA,SAASyC,KAAmB;AACxB,QAAM,IAAI,MAAM,6BAA6B;AACjD;AACA,SAASC,GAAWnD,GAAQoD,GAAQC,GAAeC,GAAOC,GAAM;AAC5D;AACI,IAAAF,IAAgBA,KAAqE,oBAAI,WACzFC,IAAQA,KAA6C,IACrDC,IAAOA,KAA0C;AACjD,UAAMhE,IAAQ8D,EAAc,IAAIrD,CAAM,IAChCqD,EAAc,IAAIrD,CAAM,IACxBA;AACN,QAAIsD,EAAM,SAAS,GAAG;AAClB,YAAMlB,IAAQkB,EAAM,QAAQ/D,CAAK;AACjC,UAAIA,KAAS,OAAOA,KAAU,YAAY6C,MAAU;AAChD,cAAIkB,EAAM,CAAC,MAAM/D,IACP,IAAI,MAAM,4BAA4B,IAE1C,IAAI,MAAM,iCAAiCgE,EAC5C,MAAM,GAAGnB,CAAK,EACd,IAAI,CAACnC,GAAKmC,MAAU;AACrB,cAAI,OAAOnC,KAAQ;AACf,mBAAO,IAAIA,EAAI,SAAU,CAAA;AAC7B,gBAAMuD,IAASF,EAAMlB,CAAK;AAC1B,iBAAI,OAAOnC,KAAQ,aACduD,aAAkB,OAAOA,aAAkB,OACrC,MAAM,KAAKA,EAAO,KAAI,CAAE,EAAE,QAAQvD,CAAG,IACzCA;AAAA,QAC3B,CAAiB,EACI,KAAK,GAAG,CAAC,EAAE;AAEpB,MAAAqD,EAAM,KAAK/D,CAAK,GAChBgE,EAAK,KAAKH,CAAM;AAAA,IACnB;AAEG,MAAAE,EAAM,KAAK/D,CAAK;AAAA,EAEvB;AACD,MAAI,OAAO,SAASS,CAAM,KAAKW,GAAQX,CAAM,GAAG;AAExC,IAAAsD,EAAM,IAAG,GACTC,EAAK,IAAG;AAEZ;AAAA,EACH;AAED,UADahC,GAAQvB,CAAM,GACf;AAAA,IACR,KAAK;AACD,iBAAW,CAACC,GAAKV,CAAK,KAAKS;AACvB,QAAAmD,GAAWlD,GAAKA,GAAKoD,GAAeC,GAAOC,CAAI,GAC/CJ,GAAW5D,GAAOU,GAAKoD,GAAeC,GAAOC,CAAI;AAErD,MAAAvD,EAAO,MAAMA,EAAO,QAAQA,EAAO,SAASkD;AAC5C;AAAA,IACJ,KAAK;AACD,iBAAW3D,KAASS;AAChB,QAAAmD,GAAW5D,GAAOA,GAAO8D,GAAeC,GAAOC,CAAI;AAEvD,MAAAvD,EAAO,MAAMA,EAAO,QAAQA,EAAO,SAASkD;AAC5C;AAAA,IACJ,KAAK;AACD,aAAO,OAAOlD,CAAM;AACpB,UAAIoC,IAAQ;AACZ,iBAAW7C,KAASS;AAChB,QAAAmD,GAAW5D,GAAO6C,GAAOiB,GAAeC,GAAOC,CAAI,GACnDnB,KAAS;AAEb;AAAA,IACJ;AACI,aAAO,OAAOpC,CAAM,GAEpB,OAAO,KAAKA,CAAM,EAAE,QAAQ,CAACyD,MAAS;AAClC,cAAMlE,IAAQS,EAAOyD,CAAI;AACzB,QAAAN,GAAW5D,GAAOkE,GAAMJ,GAAeC,GAAOC,CAAI;AAAA,MAClE,CAAa;AAAA,EACR;AAEG,EAAAD,EAAM,IAAG,GACTC,EAAK,IAAG;AAEhB;AAEA,SAASG,GAAQ1D,GAAQ2D,GAAM;AAC3B,QAAMC,IAAOrC,GAAQvB,CAAM;AAC3B,MAAI4D,MAAS;AACT,YAAQ,QAAQ5D,CAAM,EAAE,QAAQ,CAACC,MAAQ;AACrC,MAAA0D,EAAK1D,GAAKD,EAAOC,CAAG,GAAGD,CAAM;AAAA,IACzC,CAAS;AAAA,WAEI4D,MAAS,GAAyB;AACvC,QAAIxB,IAAQ;AACZ,eAAWyB,KAAS7D;AAChB,MAAA2D,EAAKvB,GAAOyB,GAAO7D,CAAM,GACzBoC,KAAS;AAAA,EAEhB;AAEG,IAAApC,EAAO,QAAQ,CAAC6D,GAAOzB,MAAUuB,EAAKvB,GAAOyB,GAAO7D,CAAM,CAAC;AAEnE;AAEA,SAAS8D,GAAY9D,GAAQ+D,GAAYhD,GAAS;AAC9C,MAAIJ,GAAQX,CAAM,KACd,CAACc,GAAYd,GAAQe,CAAO,KAC5BgD,EAAW,IAAI/D,CAAM,KACrB,OAAO,SAASA,CAAM;AACtB;AACJ,QAAMqB,IAAQrB,aAAkB,KAC1BgE,IAAS3C,IAAQ,oBAAI,IAAG,IAAK;AAkBnC,MAjBA0C,EAAW,IAAI/D,CAAM,GACrB0D,GAAQ1D,GAAQ,CAACC,GAAKV,MAAU;AAC5B,QAAImB;AACJ,QAAIC,GAAQpB,CAAK,GAAG;AAChB,YAAMkB,IAAaG,EAAcrB,CAAK;AACtC,MAAAqD,EAAkBnC,CAAU;AAE5B,YAAMwD,IAAiB,GAAAvD,IAAKD,EAAW,iBAAiB,QAAQC,MAAO,WAAkBA,EAAG,QAASD,EAAW,WAC1GA,EAAW,OACXA,EAAW;AAEjB,MAAAe,GAAIH,IAAQ2C,IAAShE,GAAQC,GAAKgE,CAAY;AAAA,IACjD;AAEG,MAAAH,GAAYvE,GAAOwE,GAAYhD,CAAO;AAAA,EAElD,CAAK,GACGiD,GAAQ;AACR,UAAMxC,IAAMxB,GACNkE,IAAS,MAAM,KAAK1C,CAAG;AAC7B,IAAAA,EAAI,MAAK,GACT0C,EAAO,QAAQ,CAAC3E,MAAU;AACtB,MAAAiC,EAAI,IAAIwC,EAAO,IAAIzE,CAAK,IAAIyE,EAAO,IAAIzE,CAAK,IAAIA,CAAK;AAAA,IACjE,CAAS;AAAA,EACJ;AACL;AACA,SAAS4E,GAAiB1D,GAAYR,GAAK;AAEvC,QAAMqC,IAAO7B,EAAW,SAAS,IAAwBA,EAAW,SAASA,EAAW;AACxF,EAAIA,EAAW,WAAW,OAAO,SAAS,KACtCA,EAAW,YAAY,IAAIR,CAAG,KAC9BqC,KACAwB,GAAY1C,GAAIkB,GAAMrC,CAAG,GAAGQ,EAAW,WAAW,YAAYA,EAAW,OAAO;AAExF;AACA,SAAS2D,GAAiBpE,GAAQ;AAC9B,EAAIA,EAAO,SAAS,KAAyBA,EAAO,SAChDA,EAAO,KAAK,SACZA,EAAO,OAAO,QAAQ,CAACT,MAAU;AAC7B,IAAAS,EAAO,KAAK,IAAIa,GAAStB,CAAK,CAAC;AAAA,EAC3C,CAAS;AAET;AACA,SAAS8E,GAAgBrE,GAAQsE,GAAiBC,GAASC,GAAgB;AAKvE,MAJuBxE,EAAO,YAC1BA,EAAO,eACPA,EAAO,YAAY,OAAO,KAC1B,CAACA,EAAO,WACQ;AAChB,QAAIuE,KAAWC,GAAgB;AAC3B,YAAMC,IAAWxD,GAAQjB,CAAM;AAC/B,MAAIyE,KACAH,EAAgBtE,GAAQyE,GAAUF,GAASC,CAAc;AAAA,IAEhE;AACD,IAAAxE,EAAO,YAAY;AAAA,EACtB;AACL;AACA,SAAS0E,GAAiB1E,GAAQC,GAAKV,GAAO+E,GAAiB;AAC3D,QAAM7D,IAAaG,EAAcrB,CAAK;AACtC,EAAIkB,MAEKA,EAAW,cACZA,EAAW,YAAY,KAE3BA,EAAW,UAAU,KAAK,CAAC8D,GAASC,MAAmB;AACnD,QAAI9D;AACJ,UAAM4B,IAAOtC,EAAO,SAAS,IAAwBA,EAAO,SAASA,EAAO;AAC5E,QAAI2B,GAAQP,GAAIkB,GAAMrC,CAAG,GAAGV,CAAK,GAAG;AAChC,UAAI0E,IAAexD,EAAW;AAC9B,MAAIA,EAAW,SACXwD,IAAexD,EAAW,OAE9B2D,GAAiBpE,CAAM,GACvBqE,GAAgBrE,GAAQsE,GAAiBC,GAASC,CAAc,GAC5DxE,EAAO,QAAQ,qBACfA,EAAO,QAAQ,iBACVU,IAAKV,EAAO,QAAQ,mBAAmB,QAAQU,MAAO,SAASA,IAAK,oBAAI,QAAO,GACpFV,EAAO,QAAQ,cAAc,IAAIiE,GAAcxD,EAAW,QAAQ,IAGtEe,GAAIc,GAAMrC,GAAKgE,CAAY;AAAA,IAC9B;AAAA,EACb,CAAS,GACGjE,EAAO,QAAQ,oBAEXS,EAAW,eAAeT,EAAO,eACjCA,EAAO,QAAQ,mBAAmB,MAI1Cc,GAAYvB,GAAOS,EAAO,OAAO,KAEjCA,EAAO,WAAW,MAAM,KAAK,MAAM;AAC/B,UAAMsC,IAAOtC,EAAO,SAAS,IAAwBA,EAAO,SAASA,EAAO;AAC5E,IAAI2B,GAAQP,GAAIkB,GAAMrC,CAAG,GAAGV,CAAK,KAC7B4E,GAAiBnE,GAAQC,CAAG;AAAA,EAE5C,CAAS;AAET;AAEA,SAAS0E,GAAqBC,GAAYH,GAAUF,GAASC,GAAgBxC,GAAa;AACtF,MAAI,EAAE,UAAAU,GAAU,aAAAmC,GAAa,SAAA9D,EAAO,IAAK6D,GACrCtC,IAAOsC,EAAW;AACtB,EAAItC,EAAK,SAASI,EAAS,WACvB,CAACA,GAAUJ,CAAI,IAAI,CAACA,GAAMI,CAAQ,GAClC,CAAC6B,GAASC,CAAc,IAAI,CAACA,GAAgBD,CAAO;AAExD,WAASnC,IAAQ,GAAGA,IAAQM,EAAS,QAAQN,KAAS;AAClD,QAAIyC,EAAY,IAAIzC,EAAM,SAAU,CAAA,KAAKE,EAAKF,CAAK,MAAMM,EAASN,CAAK,GAAG;AACtE,YAAM0C,IAAQL,EAAS,OAAO,CAACrC,CAAK,CAAC,GAC/BlB,IAAOa,GAAW+C,GAAO9C,CAAW;AAC1C,MAAAuC,EAAQ,KAAK;AAAA,QACT,IAAI9E,EAAU;AAAA,QACd,MAAAyB;AAAA;AAAA,QAEA,OAAO8B,GAAcV,EAAKF,CAAK,CAAC;AAAA,MAChD,CAAa,GACDoC,EAAe,KAAK;AAAA,QAChB,IAAI/E,EAAU;AAAA,QACd,MAAAyB;AAAA;AAAA,QAEA,OAAO8B,GAAcN,EAASN,CAAK,CAAC;AAAA,MACpD,CAAa;AAAA,IACJ;AAEL,WAASA,IAAQM,EAAS,QAAQN,IAAQE,EAAK,QAAQF,KAAS,GAAG;AAC/D,UAAM0C,IAAQL,EAAS,OAAO,CAACrC,CAAK,CAAC,GAC/BlB,IAAOa,GAAW+C,GAAO9C,CAAW;AAC1C,IAAAuC,EAAQ,KAAK;AAAA,MACT,IAAI9E,EAAU;AAAA,MACd,MAAAyB;AAAA;AAAA,MAEA,OAAO8B,GAAcV,EAAKF,CAAK,CAAC;AAAA,IAC5C,CAAS;AAAA,EACJ;AACD,MAAIM,EAAS,SAASJ,EAAK,QAAQ;AAI/B,UAAM,EAAE,uBAAAyC,IAAwB,OAAShE,EAAQ;AACjD,QAAIgE,GAAuB;AACvB,YAAMD,IAAQL,EAAS,OAAO,CAAC,QAAQ,CAAC,GAClCvD,IAAOa,GAAW+C,GAAO9C,CAAW;AAC1C,MAAAwC,EAAe,KAAK;AAAA,QAChB,IAAI/E,EAAU;AAAA,QACd,MAAAyB;AAAA,QACA,OAAOwB,EAAS;AAAA,MAChC,CAAa;AAAA,IACJ;AAEG,eAASN,IAAQE,EAAK,QAAQI,EAAS,SAASN,GAAOA,KAAS,GAAG;AAC/D,cAAM0C,IAAQL,EAAS,OAAO,CAACrC,IAAQ,CAAC,CAAC,GACnClB,IAAOa,GAAW+C,GAAO9C,CAAW;AAC1C,QAAAwC,EAAe,KAAK;AAAA,UAChB,IAAI/E,EAAU;AAAA,UACd,MAAAyB;AAAA,QACpB,CAAiB;AAAA,MACJ;AAAA,EAER;AACL;AACA,SAAS8D,GAA4B,EAAE,UAAAtC,GAAU,MAAAJ,GAAM,aAAAuC,EAAa,GAAEJ,GAAUF,GAASC,GAAgBxC,GAAa;AAClH,EAAA6C,EAAY,QAAQ,CAACI,GAAehF,MAAQ;AACxC,UAAMiF,IAAgB9D,GAAIsB,GAAUzC,CAAG,GACjCV,IAAQyD,GAAc5B,GAAIkB,GAAMrC,CAAG,CAAC,GACpCkF,IAAMF,IAENlF,GAAI2C,GAAUzC,CAAG,IACbR,EAAU,UACVA,EAAU,MAHdA,EAAU;AAIhB,QAAIkC,GAAQuD,GAAe3F,CAAK,KAAK4F,MAAO1F,EAAU;AAClD;AACJ,UAAMqF,IAAQL,EAAS,OAAOxE,CAAG,GAC3BiB,IAAOa,GAAW+C,GAAO9C,CAAW;AAC1C,IAAAuC,EAAQ,KAAKY,MAAO1F,EAAU,SAAS,EAAE,IAAA0F,GAAI,MAAAjE,EAAI,IAAK,EAAE,IAAAiE,GAAI,MAAAjE,GAAM,OAAA3B,EAAO,CAAA,GACzEiF,EAAe,KAAKW,MAAO1F,EAAU,MAC/B,EAAE,IAAIA,EAAU,QAAQ,MAAAyB,EAAM,IAC9BiE,MAAO1F,EAAU,SACb,EAAE,IAAIA,EAAU,KAAK,MAAAyB,GAAM,OAAOgE,EAAe,IACjD,EAAE,IAAIzF,EAAU,SAAS,MAAAyB,GAAM,OAAOgE,EAAa,CAAE;AAAA,EACvE,CAAK;AACL;AACA,SAASE,GAAmB,EAAE,UAAA1C,GAAU,MAAAJ,EAAI,GAAImC,GAAUF,GAASC,GAAgBxC,GAAa;AAC5F,MAAII,IAAQ;AACZ,EAAAM,EAAS,QAAQ,CAACnD,MAAU;AACxB,QAAI,CAAC+C,EAAK,IAAI/C,CAAK,GAAG;AAClB,YAAMuF,IAAQL,EAAS,OAAO,CAACrC,CAAK,CAAC,GAC/BlB,IAAOa,GAAW+C,GAAO9C,CAAW;AAC1C,MAAAuC,EAAQ,KAAK;AAAA,QACT,IAAI9E,EAAU;AAAA,QACd,MAAAyB;AAAA,QACA,OAAA3B;AAAA,MAChB,CAAa,GACDiF,EAAe,QAAQ;AAAA,QACnB,IAAI/E,EAAU;AAAA,QACd,MAAAyB;AAAA,QACA,OAAA3B;AAAA,MAChB,CAAa;AAAA,IACJ;AACD,IAAA6C,KAAS;AAAA,EACjB,CAAK,GACDA,IAAQ,GACRE,EAAK,QAAQ,CAAC/C,MAAU;AACpB,QAAI,CAACmD,EAAS,IAAInD,CAAK,GAAG;AACtB,YAAMuF,IAAQL,EAAS,OAAO,CAACrC,CAAK,CAAC,GAC/BlB,IAAOa,GAAW+C,GAAO9C,CAAW;AAC1C,MAAAuC,EAAQ,KAAK;AAAA,QACT,IAAI9E,EAAU;AAAA,QACd,MAAAyB;AAAA,QACA,OAAA3B;AAAA,MAChB,CAAa,GACDiF,EAAe,QAAQ;AAAA,QACnB,IAAI/E,EAAU;AAAA,QACd,MAAAyB;AAAA,QACA,OAAA3B;AAAA,MAChB,CAAa;AAAA,IACJ;AACD,IAAA6C,KAAS;AAAA,EACjB,CAAK;AACL;AACA,SAASkC,GAAgBM,GAAYH,GAAUF,GAASC,GAAgB;AACpE,QAAM,EAAE,aAAAxC,IAAc,GAAI,IAAK4C,EAAW,QAAQ;AAClD,UAAQA,EAAW,MAAI;AAAA,IACnB,KAAK;AAAA,IACL,KAAK;AACD,aAAOI,GAA4BJ,GAAYH,GAAUF,GAASC,GAAgBxC,CAAW;AAAA,IACjG,KAAK;AACD,aAAO2C,GAAqBC,GAAYH,GAAUF,GAASC,GAAgBxC,CAAW;AAAA,IAC1F,KAAK;AACD,aAAOoD,GAAmBR,GAAYH,GAAUF,GAASC,GAAgBxC,CAAW;AAAA,EAC3F;AACL;AAEA,IAAIqD,KAAW;AACf,MAAMC,KAAgB,CAAC/F,GAAOwB,GAASwE,IAAuB,OAAU;AACpE,MAAI,OAAOhG,KAAU,YACjBA,MAAU,SACT,CAACuB,GAAYvB,GAAOwB,CAAO,KAAKwE,MACjC,CAACF;AACD,UAAM,IAAI,MAAM,4FAA4F;AAEpH,GA2CMG,KAAa;AAAA,EACf,IAAI,OAAO;AAEP,WADgBhF,GAAOI,EAAc,IAAI,CAAC,EAC3B;AAAA,EAClB;AAAA,EACD,IAAIX,GAAK;AACL,WAAOO,GAAOI,EAAc,IAAI,CAAC,EAAE,IAAIX,CAAG;AAAA,EAC7C;AAAA,EACD,IAAIA,GAAKV,GAAO;AACZ,UAAMS,IAASY,EAAc,IAAI,GAC3B6E,IAASjF,GAAOR,CAAM;AAC5B,YAAI,CAACyF,EAAO,IAAIxF,CAAG,KAAK,CAAC0B,GAAQ8D,EAAO,IAAIxF,CAAG,GAAGV,CAAK,OACnDqD,EAAkB5C,CAAM,GACxBiD,GAAYjD,CAAM,GAClBA,EAAO,YAAY,IAAIC,GAAK,EAAI,GAChCD,EAAO,KAAK,IAAIC,GAAKV,CAAK,GAC1BmF,GAAiB1E,GAAQC,GAAKV,GAAO+E,EAAe,IAEjD;AAAA,EACV;AAAA,EACD,OAAOrE,GAAK;AACR,QAAI,CAAC,KAAK,IAAIA,CAAG;AACb,aAAO;AAEX,UAAMD,IAASY,EAAc,IAAI;AACjC,WAAAgC,EAAkB5C,CAAM,GACxBiD,GAAYjD,CAAM,GACdA,EAAO,SAAS,IAAIC,CAAG,IACvBD,EAAO,YAAY,IAAIC,GAAK,EAAK,IAGjCD,EAAO,YAAY,OAAOC,CAAG,GAEjCD,EAAO,KAAK,OAAOC,CAAG,GACf;AAAA,EACV;AAAA,EACD,QAAQ;AACJ,UAAMD,IAASY,EAAc,IAAI;AACjC,QAAK,KAAK,MAEV;AAAA,MAAAgC,EAAkB5C,CAAM,GACxBiD,GAAYjD,CAAM,GAClBA,EAAO,cAAc,oBAAI;AACzB,iBAAW,CAACC,CAAG,KAAKD,EAAO;AACvB,QAAAA,EAAO,YAAY,IAAIC,GAAK,EAAK;AAErC,MAAAD,EAAO,KAAK;;EACf;AAAA,EACD,QAAQ0F,GAAUC,GAAS;AACvB,UAAM3F,IAASY,EAAc,IAAI;AACjC,IAAAJ,GAAOR,CAAM,EAAE,QAAQ,CAAC4F,GAAQC,MAAS;AACrC,MAAAH,EAAS,KAAKC,GAAS,KAAK,IAAIE,CAAI,GAAGA,GAAM,IAAI;AAAA,IAC7D,CAAS;AAAA,EACJ;AAAA,EACD,IAAI5F,GAAK;AACL,QAAIS,GAAIoF;AACR,UAAM9F,IAASY,EAAc,IAAI,GAC3BrB,IAAQiB,GAAOR,CAAM,EAAE,IAAIC,CAAG,GAC9B8F,MAAYD,KAAMpF,IAAKV,EAAO,SAAS,UAAU,QAAQ8F,MAAO,SAAS,SAASA,EAAG,KAAKpF,GAAInB,GAAOM,EAAS,OAAOA,GAAU;AAWrI,QAVIG,EAAO,QAAQ,UACfsF,GAAc/F,GAAOS,EAAO,SAAS+F,CAAO,GAE5CA,KAGA/F,EAAO,aAAa,CAACc,GAAYvB,GAAOS,EAAO,OAAO,KAItDT,MAAUS,EAAO,SAAS,IAAIC,CAAG;AACjC,aAAOV;AAEX,UAAMyG,IAAQlG,GAAS,YAAY;AAAA,MAC/B,UAAUP;AAAA,MACV,aAAaS;AAAA,MACb,KAAAC;AAAA,MACA,YAAYD,EAAO;AAAA,MACnB,SAASA,EAAO;AAAA,IAC5B,CAAS;AACD,WAAA4C,EAAkB5C,CAAM,GACxBA,EAAO,KAAK,IAAIC,GAAK+F,CAAK,GACnBA;AAAA,EACV;AAAA,EACD,OAAO;AACH,WAAOxF,GAAOI,EAAc,IAAI,CAAC,EAAE,KAAI;AAAA,EAC1C;AAAA,EACD,SAAS;AACL,UAAMqF,IAAW,KAAK;AACtB,WAAO;AAAA,MACH,CAACrG,EAAc,GAAG,MAAM,KAAK,OAAQ;AAAA,MACrC,MAAM,MAAM;AACR,cAAMsG,IAASD,EAAS;AACxB,eAAIC,EAAO,OACAA,IAEJ;AAAA,UACH,MAAM;AAAA,UACN,OAHU,KAAK,IAAIA,EAAO,KAAK;AAAA,QAInD;AAAA,MACa;AAAA,IACb;AAAA,EACK;AAAA,EACD,UAAU;AACN,UAAMD,IAAW,KAAK;AACtB,WAAO;AAAA,MACH,CAACrG,EAAc,GAAG,MAAM,KAAK,QAAS;AAAA,MACtC,MAAM,MAAM;AACR,cAAMsG,IAASD,EAAS;AACxB,YAAIC,EAAO;AACP,iBAAOA;AACX,cAAM3G,IAAQ,KAAK,IAAI2G,EAAO,KAAK;AACnC,eAAO;AAAA,UACH,MAAM;AAAA,UACN,OAAO,CAACA,EAAO,OAAO3G,CAAK;AAAA,QAC/C;AAAA,MACa;AAAA,IACb;AAAA,EACK;AAAA,EACD,CAACK,EAAc,IAAI;AACf,WAAO,KAAK;EACf;AACL,GACMuG,KAAiB,QAAQ,QAAQX,EAAU,GAE3CY,KAAkB,CAACpG,GAAQiG,GAAU,EAAE,kBAAAI,EAAkB,MAAK,MAAM;AACtE,MAAI3F,GAAIoF;AACR,QAAMI,IAASD,EAAS;AACxB,MAAIC,EAAO;AACP,WAAOA;AACX,QAAMjG,IAAMiG,EAAO;AACnB,MAAI3G,IAAQS,EAAO,OAAO,IAAIC,CAAG;AACjC,QAAMqG,IAAe1F,EAAcrB,CAAK,GAClCwG,MAAYD,KAAMpF,IAAKV,EAAO,SAAS,UAAU,QAAQ8F,MAAO,SAAS,SAASA,EAAG,KAAKpF,GAAInB,GAAOM,EAAS,OAAOA,GAAU;AAIrI,MAHIG,EAAO,QAAQ,UACfsF,GAAcrF,GAAKD,EAAO,SAAS+F,CAAO,GAE1C,CAACA,KACD,CAACO,KACDxF,GAAYb,GAAKD,EAAO,OAAO,KAC/B,CAACA,EAAO,aACRA,EAAO,SAAS,IAAIC,CAAG,GAAG;AAE1B,UAAMsG,IAAQzG,GAAS,YAAY;AAAA,MAC/B,UAAUG;AAAA,MACV,aAAaD;AAAA,MACb,KAAAC;AAAA,MACA,YAAYD,EAAO;AAAA,MACnB,SAASA,EAAO;AAAA,IAC5B,CAAS;AACD,IAAAA,EAAO,OAAO,IAAIC,GAAKsG,CAAK,GAC5BhH,IAAQgH;AAAA,EACX;AACI,IAAID,MAEL/G,IAAQ+G,EAAa;AAEzB,SAAO;AAAA,IACH,MAAM;AAAA,IACN,OAAOD,IAAmB9G,IAAQ,CAACA,GAAOA,CAAK;AAAA,EACvD;AACA,GACMiH,KAAa;AAAA,EACf,IAAI,OAAO;AAEP,WADe5F,EAAc,IAAI,EACnB,OAAO;AAAA,EACxB;AAAA,EACD,IAAIrB,GAAO;AACP,UAAMS,IAASY,EAAc,IAAI;AAEjC,QAAIZ,EAAO,OAAO,IAAIT,CAAK;AACvB,aAAO;AACX,IAAAqD,EAAkB5C,CAAM;AACxB,UAAMyG,IAAkB7F,EAAcrB,CAAK;AAE3C,WAAI,GAAAkH,KAAmBzG,EAAO,OAAO,IAAIyG,EAAgB,QAAQ;AAAA,EAGpE;AAAA,EACD,IAAIlH,GAAO;AACP,UAAMS,IAASY,EAAc,IAAI;AACjC,WAAK,KAAK,IAAIrB,CAAK,MACfqD,EAAkB5C,CAAM,GACxBiD,GAAYjD,CAAM,GAClBA,EAAO,YAAY,IAAIT,GAAO,EAAI,GAClCS,EAAO,OAAO,IAAIT,GAAOA,CAAK,GAC9BmF,GAAiB1E,GAAQT,GAAOA,GAAO+E,EAAe,IAEnD;AAAA,EACV;AAAA,EACD,OAAO/E,GAAO;AACV,QAAI,CAAC,KAAK,IAAIA,CAAK;AACf,aAAO;AAEX,UAAMS,IAASY,EAAc,IAAI;AACjC,IAAAgC,EAAkB5C,CAAM,GACxBiD,GAAYjD,CAAM;AAClB,UAAMyG,IAAkB7F,EAAcrB,CAAK;AAC3C,WAAIkH,KAAmBzG,EAAO,OAAO,IAAIyG,EAAgB,QAAQ,KAE7DzG,EAAO,YAAY,IAAIyG,EAAgB,UAAU,EAAK,GAC/CzG,EAAO,OAAO,OAAOyG,EAAgB,QAAQ,MAEpD,CAACA,KAAmBzG,EAAO,OAAO,IAAIT,CAAK,IAE3CS,EAAO,YAAY,IAAIT,GAAO,EAAK,IAInCS,EAAO,YAAY,OAAOT,CAAK,GAG5BS,EAAO,OAAO,OAAOT,CAAK;AAAA,EACpC;AAAA,EACD,QAAQ;AACJ,QAAI,CAAC,KAAK;AACN;AACJ,UAAMS,IAASY,EAAc,IAAI;AACjC,IAAAgC,EAAkB5C,CAAM,GACxBiD,GAAYjD,CAAM;AAClB,eAAWT,KAASS,EAAO;AACvB,MAAAA,EAAO,YAAY,IAAIT,GAAO,EAAK;AAEvC,IAAAS,EAAO,OAAO;EACjB;AAAA,EACD,SAAS;AACL,UAAMA,IAASY,EAAc,IAAI;AACjC,IAAAgC,EAAkB5C,CAAM;AACxB,UAAMiG,IAAWjG,EAAO,OAAO,KAAI;AACnC,WAAO;AAAA,MACH,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,OAAQ;AAAA,MACtC,MAAMoG,GAAgBpG,GAAQiG,GAAU,EAAE,kBAAkB,IAAM;AAAA,IAC9E;AAAA,EACK;AAAA,EACD,UAAU;AACN,UAAMjG,IAASY,EAAc,IAAI;AACjC,IAAAgC,EAAkB5C,CAAM;AACxB,UAAMiG,IAAWjG,EAAO,OAAO,KAAI;AACnC,WAAO;AAAA,MACH,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,QAAS;AAAA,MACvC,MAAMoG,GAAgBpG,GAAQiG,GAAU;AAAA,QACpC,kBAAkB;AAAA,MAClC,CAAa;AAAA,IACb;AAAA,EACK;AAAA,EACD,OAAO;AACH,WAAO,KAAK;EACf;AAAA,EACD,CAACrG,EAAc,IAAI;AACf,WAAO,KAAK;EACf;AAAA,EACD,QAAQ8F,GAAUC,GAAS;AACvB,UAAMM,IAAW,KAAK;AACtB,QAAIC,IAASD,EAAS;AACtB,WAAO,CAACC,EAAO;AACX,MAAAR,EAAS,KAAKC,GAASO,EAAO,OAAOA,EAAO,OAAO,IAAI,GACvDA,IAASD,EAAS;EAEzB;AACL;AACI,IAAI,UAAU,cAKd,OAAO,OAAOO,IAAY;AAAA,EACtB,aAAaE,GAAO;AAChB,WAAO,IAAI,UAAU,aAAa,KAAK,IAAI,IAAI,KAAK,OAAM,CAAE,GAAGA,CAAK;AAAA,EACvE;AAAA,EACD,MAAMA,GAAO;AACT,WAAO,IAAI,UAAU,MAAM,KAAK,IAAI,IAAI,KAAK,OAAM,CAAE,GAAGA,CAAK;AAAA,EAChE;AAAA,EACD,WAAWA,GAAO;AACd,WAAO,IAAI,UAAU,WAAW,KAAK,IAAI,IAAI,KAAK,OAAM,CAAE,GAAGA,CAAK;AAAA,EACrE;AAAA,EACD,oBAAoBA,GAAO;AACvB,WAAO,IAAI,UAAU,oBAAoB,KAAK,IAAI,IAAI,KAAK,OAAM,CAAE,GAAGA,CAAK;AAAA,EAC9E;AAAA,EACD,WAAWA,GAAO;AACd,WAAO,IAAI,UAAU,WAAW,KAAK,IAAI,IAAI,KAAK,OAAM,CAAE,GAAGA,CAAK;AAAA,EACrE;AAAA,EACD,aAAaA,GAAO;AAChB,WAAO,IAAI,UAAU,aAAa,KAAK,IAAI,IAAI,KAAK,OAAM,CAAE,GAAGA,CAAK;AAAA,EACvE;AAAA,EACD,eAAeA,GAAO;AAClB,WAAO,IAAI,UAAU,eAAe,KAAK,IAAI,IAAI,KAAK,OAAM,CAAE,GAAGA,CAAK;AAAA,EACzE;AACT,CAAK;AAEL,MAAMC,KAAiB,QAAQ,QAAQH,EAAU,GAE3CI,KAAe;AAAA,EACjB,IAAI5G,GAAQC,GAAK4G,GAAU;AACvB,QAAInG,GAAIoF;AACR,UAAMxD,KAAQ5B,IAAKV,EAAO,UAAU,QAAQU,MAAO,SAAS,SAASA,EAAGT,CAAG;AAE3E,QAAIqC,KAAQtC,EAAO,WAAW,YAAY,IAAIsC,CAAI;AAC9C,aAAOA;AAEX,QAAIrC,MAAQP;AACR,aAAOM;AACX,QAAIgB;AACJ,QAAIhB,EAAO,QAAQ,MAAM;AAGrB,YAAMT,IAAQU,MAAQ,WACjBD,EAAO,oBAAoB,OAAOA,EAAO,oBAAoB,OAC5D,QAAQ,IAAIA,EAAO,UAAUC,CAAG,IAChC,QAAQ,IAAID,EAAO,UAAUC,GAAK4G,CAAQ;AAEhD,UADA7F,IAAahB,EAAO,QAAQ,KAAKT,GAAOM,EAAS,GAC7CmB,MAAenB,GAAU;AACzB,eAAIG,EAAO,QAAQ,UACfsF,GAAc/F,GAAOS,EAAO,SAAS,EAAI,GAEtCT;AAAA,IAEd;AACD,UAAMkG,IAASjF,GAAOR,CAAM;AAC5B,QAAIyF,aAAkB,OAAOU,GAAe,SAASlG,CAAG;AACpD,aAAIA,MAAQ,SACD,OAAO,yBAAyBuF,IAAY,MAAM,EAAE,IAAI,KAAKxF,EAAO,KAAK,IAErEwF,GAAWvF,CAAG,EACf,KAAKD,EAAO,KAAK;AAEnC,QAAIyF,aAAkB,OAAOkB,GAAe,SAAS1G,CAAG;AACpD,aAAIA,MAAQ,SACD,OAAO,yBAAyBuG,IAAY,MAAM,EAAE,IAAI,KAAKxG,EAAO,KAAK,IAErEwG,GAAWvG,CAAG,EACf,KAAKD,EAAO,KAAK;AAEnC,QAAI,CAACD,GAAI0F,GAAQxF,CAAG,GAAG;AACnB,YAAMsC,IAAOrC,GAAcuF,GAAQxF,CAAG;AACtC,aAAOsC,IACD,WAAWA,IACPA,EAAK;AAAA;AAAA,SAEFuD,IAAKvD,EAAK,SAAS,QAAQuD,MAAO,SAAS,SAASA,EAAG,KAAK9F,EAAO,KAAK;AAAA,UAC/E;AAAA,IACT;AACD,UAAMT,IAAQkG,EAAOxF,CAAG;AAIxB,QAHID,EAAO,QAAQ,UACfsF,GAAc/F,GAAOS,EAAO,OAAO,GAEnCA,EAAO,aAAa,CAACc,GAAYvB,GAAOS,EAAO,OAAO;AACtD,aAAOT;AAGX,QAAIA,MAAUkC,GAAKzB,EAAO,UAAUC,CAAG,GAAG;AAUtC,UATA2C,EAAkB5C,CAAM,GACxBA,EAAO,KAAKC,CAAG,IAAI6G,GAAY;AAAA,QAC3B,UAAU9G,EAAO,SAASC,CAAG;AAAA,QAC7B,aAAaD;AAAA,QACb,KAAKA,EAAO,SAAS,IAA0B,OAAOC,CAAG,IAAIA;AAAA,QAC7D,YAAYD,EAAO;AAAA,QACnB,SAASA,EAAO;AAAA,MAChC,CAAa,GAEG,OAAOgB,KAAe,YAAY;AAClC,cAAM+F,IAAgBnG,EAAcZ,EAAO,KAAKC,CAAG,CAAC;AACpD,eAAA2C,EAAkBmE,CAAa,GAE/B9D,GAAY8D,CAAa,GAClBA,EAAc;AAAA,MACxB;AACD,aAAO/G,EAAO,KAAKC,CAAG;AAAA,IACzB;AACD,WAAIU,GAAQpB,CAAK,KACbS,EAAO,WAAW,YAAY,IAAIT,CAAK,GAEpCA;AAAA,EACV;AAAA,EACD,IAAIS,GAAQC,GAAKV,GAAO;AACpB,QAAImB;AACJ,QAAIV,EAAO,SAAS,KAAyBA,EAAO,SAAS;AACzD,YAAM,IAAI,MAAM,yDAAyD;AAE7E,QAAI6F;AACJ,QAAI7F,EAAO,SAAS,KAChBC,MAAQ,YACR,EAAE,OAAO,UAAW4F,IAAO,OAAO5F,CAAG,CAAG,KACpC4F,KAAQ,MACP5F,MAAQ,KAAK4F,MAAS,KAAK,OAAOA,CAAI,MAAM,OAAO5F,CAAG;AAC3D,YAAM,IAAI,MAAM,gEAAgE;AAEpF,UAAMsC,IAAOrC,GAAcM,GAAOR,CAAM,GAAGC,CAAG;AAC9C,QAAIsC,KAAS,QAAmCA,EAAK;AAEjD,aAAAA,EAAK,IAAI,KAAKvC,EAAO,OAAOT,CAAK,GAC1B;AAEX,UAAMyH,IAAUvF,GAAKjB,GAAOR,CAAM,GAAGC,CAAG,GAClCgH,IAAoBrG,EAAcoG,CAAO;AAC/C,WAAIC,KAAqBtF,GAAQsF,EAAkB,UAAU1H,CAAK,KAE9DS,EAAO,KAAKC,CAAG,IAAIV,GACnBS,EAAO,eAAeU,IAAKV,EAAO,iBAAiB,QAAQU,MAAO,SAASA,IAAK,oBAAI,IAAG,GACvFV,EAAO,YAAY,IAAIC,GAAK,EAAK,GAC1B,OAGP0B,GAAQpC,GAAOyH,CAAO,MACrBzH,MAAU,UAAaQ,GAAIC,EAAO,UAAUC,CAAG,OAEpD2C,EAAkB5C,CAAM,GACxBiD,GAAYjD,CAAM,GACdD,GAAIC,EAAO,UAAUC,CAAG,KAAK0B,GAAQpC,GAAOS,EAAO,SAASC,CAAG,CAAC,IAEhED,EAAO,YAAY,OAAOC,CAAG,IAG7BD,EAAO,YAAY,IAAIC,GAAK,EAAI,GAEpCD,EAAO,KAAKC,CAAG,IAAIV,GACnBmF,GAAiB1E,GAAQC,GAAKV,GAAO+E,EAAe,IAC7C;AAAA,EACV;AAAA,EACD,IAAItE,GAAQC,GAAK;AACb,WAAOA,KAAOO,GAAOR,CAAM;AAAA,EAC9B;AAAA,EACD,QAAQA,GAAQ;AACZ,WAAO,QAAQ,QAAQQ,GAAOR,CAAM,CAAC;AAAA,EACxC;AAAA,EACD,yBAAyBA,GAAQC,GAAK;AAClC,UAAMwF,IAASjF,GAAOR,CAAM,GACtBI,IAAa,QAAQ,yBAAyBqF,GAAQxF,CAAG;AAC/D,WAAKG,KAEE;AAAA,MACH,UAAU;AAAA,MACV,cAAcJ,EAAO,SAAS,KAA2BC,MAAQ;AAAA,MACjE,YAAYG,EAAW;AAAA,MACvB,OAAOqF,EAAOxF,CAAG;AAAA,IAC7B;AAAA,EACK;AAAA,EACD,eAAeD,GAAQ;AACnB,WAAO,QAAQ,eAAeA,EAAO,QAAQ;AAAA,EAChD;AAAA,EACD,iBAAiB;AACb,UAAM,IAAI,MAAM,0CAA0C;AAAA,EAC7D;AAAA,EACD,iBAAiB;AACb,UAAM,IAAI,MAAM,0CAA0C;AAAA,EAC7D;AAAA,EACD,eAAeA,GAAQC,GAAK;AACxB,QAAIS;AACJ,WAAIV,EAAO,SAAS,IACT4G,GAAa,IAAI,KAAK,MAAM5G,GAAQC,GAAK,QAAWD,EAAO,KAAK,KAEvEyB,GAAKzB,EAAO,UAAUC,CAAG,MAAM,UAAaA,KAAOD,EAAO,YAE1D4C,EAAkB5C,CAAM,GACxBiD,GAAYjD,CAAM,GAClBA,EAAO,YAAY,IAAIC,GAAK,EAAK,MAGjCD,EAAO,eAAeU,IAAKV,EAAO,iBAAiB,QAAQU,MAAO,SAASA,IAAK,oBAAI,IAAG,GAEvFV,EAAO,YAAY,OAAOC,CAAG,IAE7BD,EAAO,QACP,OAAOA,EAAO,KAAKC,CAAG,GACnB;AAAA,EACV;AACL;AACA,SAAS6G,GAAYI,GAAoB;AACrC,QAAM,EAAE,UAAAxE,GAAU,aAAAyE,GAAa,KAAAlH,GAAK,YAAAmH,GAAY,SAAArG,EAAS,IAAGmG,GACtDtD,IAAOrC,GAAQmB,CAAQ,GACvBjC,IAAa;AAAA,IACf,MAAAmD;AAAA,IACA,WAAW;AAAA,IACX,QAAQuD;AAAA,IACR,UAAAzE;AAAA,IACA,MAAM;AAAA,IACN,OAAO;AAAA,IACP,YAAA0E;AAAA,IACA,SAAArG;AAAA;AAAA,IAEA,QAAQ6C,MAAS,IACX,IAAI,IAAIlB,EAAS,SAAS,IAC1B;AAAA,EACd;AAEI,GAAIzC,KAAO,SAASiH,OAChBzG,EAAW,MAAMR;AAErB,QAAM,EAAE,OAAAsG,GAAO,QAAAc,EAAM,IAAK,MAAM,UAAUzD,MAAS,IAA0B,OAAO,OAAO,CAAA,GAAInD,CAAU,IAAIA,GAAYmG,EAAY;AAGrI,MAFAQ,EAAW,OAAO,KAAKC,CAAM,GAC7B5G,EAAW,QAAQ8F,GACfY,GAAa;AACb,UAAMnH,IAASmH;AACf,IAAAnH,EAAO,WAAW,MAAM,KAAK,CAACuE,GAASC,MAAmB;AACtD,UAAI9D,GAAIoF;AACR,YAAMwB,IAAgB1G,EAAc2F,CAAK;AAEzC,UAAIjE,IAAOtC,EAAO,SAAS,IAAwBA,EAAO,SAASA,EAAO;AAC1E,YAAMgG,IAAQ5E,GAAIkB,GAAMrC,CAAG,GACrBQ,IAAaG,EAAcoF,CAAK;AACtC,UAAIvF,GAAY;AAEZ,YAAIwD,IAAexD,EAAW;AAC9B,QAAIA,EAAW,aACXwD,IAAepD,GAASmF,CAAK,IAEjC5B,GAAiB3D,CAAU,GAC3B4D,GAAgB5D,GAAY6D,IAAiBC,GAASC,CAAc,GAChExE,EAAO,QAAQ,qBACfA,EAAO,QAAQ,iBACVU,IAAKV,EAAO,QAAQ,mBAAmB,QAAQU,MAAO,SAASA,IAAK,oBAAI,QAAO,GACpFV,EAAO,QAAQ,cAAc,IAAIiE,GAAcxD,EAAW,QAAQ,IAGtEe,GAAIc,GAAMrC,GAAKgE,CAAY;AAAA,MAC9B;AAED,OAAC6B,IAAKwB,EAAc,eAAe,QAAQxB,MAAO,UAAkBA,EAAG,QAAQ,CAACJ,MAAa;AACzF,QAAAA,EAASnB,GAASC,CAAc;AAAA,MAChD,CAAa;AAAA,IACb,CAAS;AAAA,EACJ,OACI;AAED,UAAMxE,IAASY,EAAc2F,CAAK;AAClC,IAAAvG,EAAO,WAAW,MAAM,KAAK,CAACuE,GAASC,MAAmB;AACtD,MAAAJ,GAAiBpE,CAAM,GACvBqE,GAAgBrE,GAAQsE,IAAiBC,GAASC,CAAc;AAAA,IAC5E,CAAS;AAAA,EACJ;AACD,SAAO+B;AACX;AACAzG,GAAS,cAAcgH;AACvB,SAASS,GAAcrB,GAAQsB,GAAejD,GAASC,GAAgBiD,GAAkB;AACrF,MAAI/G;AACJ,QAAMD,IAAaG,EAAcsF,CAAM,GACjCxD,KAAYhC,IAAKD,KAAe,OAAgC,SAASA,EAAW,cAAc,QAAQC,MAAO,SAASA,IAAKwF,GAC/HwB,IAAmB,CAAC,CAACF,EAAc;AACzC,MAAI/G,KAAe,QAAyCA,EAAW;AACnE,WAAOA,EAAW,WAAW,MAAM,SAAS;AAExC,MADiBA,EAAW,WAAW,MAAM,IAAG,EACvC8D,GAASC,CAAc;AAGxC,QAAM9C,IAAQgG,IACRF,EAAc,CAAC,IACf/G,IACIA,EAAW,WACPA,EAAW,OACXA,EAAW,WACfyF;AACV,SAAIzF,KACAqB,GAAYrB,CAAU,GACtBgH,KACAtE,GAAWzB,GAAOA,GAAOjB,KAAe,OAAgC,SAASA,EAAW,QAAQ,aAAa,GAE9G;AAAA,IACHiB;AAAA,IACA6C,KAAWmD,IACL,CAAC,EAAE,IAAIjI,EAAU,SAAS,MAAM,CAAE,GAAE,OAAO+H,EAAc,CAAC,GAAG,IAC7DjD;AAAA,IACNC,KAAkBkD,IACZ,CAAC,EAAE,IAAIjI,EAAU,SAAS,MAAM,IAAI,OAAOiD,GAAU,IACrD8B;AAAA,EACd;AACA;AAEA,SAASmD,GAASC,GAAW7G,GAAS;AAClC,MAAIL;AACJ,QAAM0G,IAAa;AAAA,IACf,OAAO,CAAE;AAAA,IACT,QAAQ,CAAE;AAAA,IACV,YAAY,oBAAI,QAAS;AAAA,IACzB,aAAa,oBAAI,QAAS;AAAA,EAClC;AACI,MAAI7C,GACAC;AACJ,EAAIzD,EAAQ,kBACRwD,IAAU,CAAA,GACVC,IAAiB,CAAA;AAIrB,QAAMwB,MAFctF,IAAKK,EAAQ,UAAU,QAAQL,MAAO,SAAS,SAASA,EAAG,KAAKK,GAAS6G,GAAW/H,EAAS,OAAOA,GAAU,WAC9H,CAACiB,GAAY8G,GAAW7G,CAAO,IAE7B6G,IACAd,GAAY;AAAA,IACV,UAAUc;AAAA,IACV,aAAa;AAAA,IACb,YAAAR;AAAA,IACA,SAAArG;AAAA,EACZ,CAAS;AACL,SAAO;AAAA,IACHiF;AAAA,IACA,CAACwB,IAAgB,CAAA,MAAO;AACpB,YAAM,CAACK,GAAgBC,GAAkBC,CAAuB,IAAIR,GAAcvB,GAAOwB,GAAejD,GAASC,GAAgBzD,EAAQ,gBAAgB;AACzJ,aAAQA,EAAQ,gBACV,CAAC8G,GAAgBC,GAAkBC,CAAuB,IAC1DF;AAAA,IACT;AAAA,EACT;AACA;AAEA,SAASG,GAAkBjH,GAAS;AAChC,QAAM,EAAE,WAAAkH,GAAW,OAAA1I,GAAO,cAAA2I,IAAe,IAAO,QAAAC,IAAS,GAAM,IAAGpH;AAClE,EAAA2C,GAAQnE,GAAO,CAACU,GAAKiC,GAAMuD,MAAW;AAClC,UAAMhF,IAAaG,EAAcsB,CAAI;AAErC,QAAIzB,KACAwH,KACAxH,EAAW,eAAewH,EAAU,YAAY;AAChD,MAAAlH,EAAQ,iBAAiB;AACzB,YAAMqH,IAAe3H,EAAW;AAEhC,UAAIgF,aAAkB,KAAK;AACvB,cAAM4C,IAAM,MAAM,KAAK5C,CAAM;AAC7B,QAAAA,EAAO,MAAK,GACZ4C,EAAI,QAAQ,CAACpG,MAAUwD,EAAO,IAAIxF,MAAQgC,IAAQmG,IAAenG,CAAK,CAAC;AAAA,MAC1E;AAEG,QAAAT,GAAIiE,GAAQxF,GAAKmI,CAAY;AAAA,IAEpC;AACI,MAAI,OAAOlG,KAAS,YAAYA,MAAS,SAC1CnB,EAAQ,QAAQmB,GAChBnB,EAAQ,SAAS,IACjBiH,GAAkBjH,CAAO;AAAA,EAErC,CAAK,GACGoH,MACKpH,EAAQ,kBACT,QAAQ,KAAK,wHAAwH,GACrImH,KACA,QAAQ,KAAK,4FAA4F;AAGrH;AACA,SAASI,GAAWtI,GAAQ;AACxB,MAAIU;AACJ,QAAMD,IAAaG,EAAcZ,CAAM;AACvC,MAAI,CAACc,GAAYd,GAAQS,KAAe,OAAgC,SAASA,EAAW,OAAO;AAC/F,WAAOT;AACX,QAAM4D,IAAOrC,GAAQvB,CAAM;AAC3B,MAAIS,KAAc,CAACA,EAAW;AAC1B,WAAOA,EAAW;AACtB,MAAI2H;AACJ,WAASxF,IAAoB;AACzB,IAAAwF,IACIxE,MAAS,IACFrD,GAAkBP,CAAM,IAErB,IAAI,IAAIA,CAAM,IADd,KAAK,OAAO,eAAeA,CAAM,GAAE,YAAaA,CAAM,IAE1D4D,MAAS,IACL,MAAM,KAAKnD,EAAW,OAAO,OAAM,CAAE,IACrCgC,GAAYzC,GAAQS,KAAe,OAAgC,SAASA,EAAW,OAAO;AAAA,EAC/G;AACD,MAAIA,GAAY;AAEZ,IAAAA,EAAW,YAAY;AACvB,QAAI;AACA,MAAAmC;IACH,UACO;AACJ,MAAAnC,EAAW,YAAY;AAAA,IAC1B;AAAA,EACJ;AAIG,IAAA2H,IAAepI;AAYnB,MAVA0D,GAAQ0E,GAAc,CAACnI,GAAKV,MAAU;AAClC,QAAIkB,KAAckB,GAAQP,GAAIX,EAAW,UAAUR,CAAG,GAAGV,CAAK;AAC1D;AACJ,UAAMgJ,IAAWD,GAAW/I,CAAK;AACjC,IAAIgJ,MAAahJ,MACT6I,MAAiBpI,KACjB4C,KACJpB,GAAI4G,GAAcnI,GAAKsI,CAAQ;AAAA,EAE3C,CAAK,GACG3E,MAAS,GAAuB;AAChC,UAAMrE,KAASmB,IAAKD,KAAe,OAAgC,SAASA,EAAW,cAAc,QAAQC,MAAO,SAASA,IAAK0H;AAClI,WAAQ/H,GAAkBd,CAAK,IAEzB,IAAI,IAAI6I,CAAY,IADpB,KAAK,OAAO,eAAe7I,CAAK,GAAE,YAAa6I,CAAY;AAAA,EAEpE;AACD,SAAOA;AACX;AACA,SAASpB,GAAQhH,GAAQ;AACrB,MAAI,CAACW,GAAQX,CAAM;AACf,UAAM,IAAI,MAAM,gDAAgDA,CAAM,EAAE;AAE5E,SAAOsI,GAAWtI,CAAM;AAC5B;AA0BA,MAAMwI,KAAc,CAACC,MAAQ;AACzB,MAAIA,MAAQ,UACR,OAAO,UAAU,SAAS,KAAKA,CAAG,MAAM;AACxC,UAAM,IAAI,MAAM,oBAAoB,OAAOA,CAAG,CAAC,kCAAkC;AAErF,SAAO,SAASC,EAAOC,GAAMC,GAAMC,GAAM;AACrC,QAAInI,GAAIoF,GAAIgD;AACZ,QAAI,OAAOH,KAAS,cAAc,OAAOC,KAAS;AAC9C,aAAO,SAAUzG,MAAS4G,GAAM;AAC5B,eAAOL,EAAOvG,GAAM,CAAC6D,MAAU2C,EAAK,KAAK,MAAM3C,GAAO,GAAG+C,CAAI,GAAGH,CAAI;AAAA,MACpF;AAEQ,UAAMzG,IAAOwG,GACPK,IAASJ;AACf,QAAI7H,IAAU8H;AAId,QAHI,OAAOD,KAAS,eAChB7H,IAAU6H,IAEV7H,MAAY,UACZ,OAAO,UAAU,SAAS,KAAKA,CAAO,MAAM;AAC5C,YAAM,IAAI,MAAM,oBAAoBA,CAAO,kCAAkC;AAEjF,IAAAA,IAAU,OAAO,OAAO,OAAO,OAAO,IAAI0H,CAAG,GAAG1H,CAAO;AACvD,UAAMW,IAAQf,GAAQwB,CAAI,IAAI6E,GAAQ7E,CAAI,IAAIA,GACxC8G,IAAO,MAAM,QAAQlI,EAAQ,IAAI,IAChC,CAACxB,GAAO2J,MAAU;AACjB,iBAAWD,KAAQlI,EAAQ,MAAM;AAC7B,YAAI,OAAOkI,KAAS;AAChB,gBAAM,IAAI,MAAM,iBAAiBA,CAAI,gCAAgC;AAEzE,cAAM/C,IAAS+C,EAAK1J,GAAO2J,CAAK;AAChC,YAAIhD;AACA,iBAAOA;AAAA,MAEd;AAAA,IAEJ,IACCnF,EAAQ,MACRoI,KAAiBzI,IAAKK,EAAQ,mBAAmB,QAAQL,MAAO,SAASA,IAAK,IAC9E0I,KAAUtD,IAAK/E,EAAQ,YAAY,QAAQ+E,MAAO,SAASA,IAAK,IAEhEuD,IAAW;AAAA,MACb,mBAFsBP,IAAK/H,EAAQ,sBAAsB,QAAQ+H,MAAO,SAASA,IAAK;AAAA,MAGtF,MAAAG;AAAA,MACA,QAAAG;AAAA,MACA,eAAAD;AAAA,IACZ;AACQ,QAAI,CAACrI,GAAYY,GAAO2H,CAAQ,KAC5B,OAAO3H,KAAU,YACjBA,MAAU;AACV,YAAM,IAAI,MAAM,4HAA4H;AAEhJ,UAAM,CAACsE,GAAOsD,CAAQ,IAAI3B,GAASjG,GAAO2H,CAAQ;AAClD,QAAI,OAAOT,KAAS,YAAY;AAC5B,UAAI,CAAC9H,GAAYY,GAAO2H,CAAQ;AAC5B,cAAM,IAAI,MAAM,4HAA4H;AAEhJ,aAAO,CAACrD,GAAOsD,CAAQ;AAAA,IAC1B;AACD,QAAIpD;AACJ,QAAI;AACA,MAAAA,IAAS8C,EAAOhD,CAAK;AAAA,IACxB,SACM3G,GAAO;AACV,YAAAyC,GAAYlB,EAAcoF,CAAK,CAAC,GAC1B3G;AAAA,IACT;AACD,UAAMkK,IAAc,CAAChK,MAAU;AAC3B,YAAMkB,IAAaG,EAAcoF,CAAK;AACtC,UAAI,CAACrF,GAAQpB,CAAK,GAAG;AACjB,YAAIA,MAAU,UACV,CAACoC,GAAQpC,GAAOyG,CAAK,MACpBvF,KAAe,QAAyCA,EAAW;AACpE,gBAAM,IAAI,MAAM,mHAAmH;AAEvI,cAAM+I,IAAiBjK,KAAU,OAA2B,SAASA,EAAMI,EAAiB;AAC5F,YAAI6J,GAAgB;AAChB,gBAAM5D,IAAS4D,EAAe,CAAC;AAC/B,iBAAIH,EAAS,UAAU,OAAO9J,KAAU,YAAYA,MAAU,QAC1DyI,GAAkB;AAAA,YACd,WAAWvH;AAAA,YACX,OAAAlB;AAAA,YACA,cAAc;AAAA,UAC1C,CAAyB,GAEE+J,EAAS,CAAC1D,CAAM,CAAC;AAAA,QAC3B;AACD,YAAIrG,MAAU;AACV,iBAAI,OAAOA,KAAU,YAAYA,MAAU,QACvCyI,GAAkB,EAAE,WAAWvH,GAAY,OAAAlB,EAAO,CAAA,GAE/C+J,EAAS,CAAC/J,CAAK,CAAC;AAAA,MAE9B;AACD,UAAIA,MAAUyG,KAASzG,MAAU;AAC7B,eAAO+J,EAAS,CAAA,CAAE;AAEtB,YAAMG,IAAqB7I,EAAcrB,CAAK;AAC9C,UAAI8J,MAAaI,EAAmB,SAAS;AACzC,YAAIA,EAAmB;AACnB,gBAAM,IAAI,MAAM,uCAAuC;AAE3D,eAAOH,EAAS,CAACtC,GAAQzH,CAAK,CAAC,CAAC;AAAA,MACnC;AACD,aAAO+J,EAAS,CAAC/J,CAAK,CAAC;AAAA,IACnC;AACQ,WAAI2G,aAAkB,UACXA,EAAO,KAAKqD,GAAa,CAAClK,MAAU;AACvC,YAAAyC,GAAYlB,EAAcoF,CAAK,CAAC,GAC1B3G;AAAA,IACtB,CAAa,IAEEkK,EAAYrD,CAAM;AAAA,EACjC;AACA,GAwBMwC,IAASF,GAAW;AAwLA,OAAO,UAAU,YAAY,SAAQ;ACvsD/D,MAAMtK,KAAawL,GAAkB,KAAK,GAE7BC,KAAqC,OAChDC,GAMAC,MACgB;AAChB,MAAI,CAACD;AACG,UAAA;AAQR,MALKA,EAAI,YACDA,IAAAlB,EAAOkB,GAAK,CAAC5D,MAAgC;AACjD,IAAAA,EAAM,UAAU;AAAA,EAAA,CACjB,IAEC,CAAC6D;AACG,UAAA;AAGR,MAAItM,EAAgBsM,GAAe9N,EAAsB,IAAI;AAEvD,QAAA;AAeK,aADU,OAbJ,MAAMmC,GACjB,mDAAmD2L,CAAa,IAChE;AAAA,QACE,UAAU;AAAA,QACV,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,MAAM,KAAK,UAAUD,CAAG;AAAA,QACxB,SAAS;AAAA,UACP,gBAAgB;AAAA,QACjB;AAAA,MAAA,CACF,GAEyB;aAErBE,GAAK;AACN,YAAA,mDAAmDD,CAAa,KAAKC,CAAG;AAAA,IAChF;AAOK,SAJkBC,GACvBH,GACAC,CAAa;AAGjB,GAEaG,KAA4C,OACvDJ,MAOOD,GAAmCC,GAAK7N,EAAsB,GAGjEgO,KAAmD,CACvDH,GAMAC,MAKyB;AACzB,MAAI,CAACD;AACG,UAAA;AAGJ,MAAA,CAACA,EAAI;AACP,UAAM,iDAAiD,KAAK,UAC1DA,CAAG,CACJ;AAGC,MAAAK,IAAiBC,GAA2BN,EAAI,OAAO;AAC3D,MAAIK,MAAmBJ;AACd,WAAAD;AAGT,MAAIO,IAIuBP;AAE3B,SAAOK,MAAmBJ;AACxB,YAAQI,GAAgB;AAAA,MACtB,KAAK,OAAO;AACV,YAAI1M,EAAgBsM,GAAeI,CAAc,IAAI;AACnD,UAAAE,IAAoBC,GAClBD,CAA0C,GAE3BF,IAAAC,GACfC,EAAkB,OAAO;AAAA;AAGrB,gBAAA,+BAA+BF,CAAc,OAAOJ,CAAa;AAEzE;AAAA,MACF;AAAA,MACA,KAAK,OAAO;AACV,QAAItM,EAAgBsM,GAAeI,CAAc,IAAI,KACnDE,IAAoBE,GAClBF,CAA0C,GAE3BF,IAAAC,GACfC,EAAkB,OAAO,MAG3BA,IAAoBG,GAClBH,CAA0C,GAE3BF,IAAAC,GACfC,EAAkB,OAAO;AAG7B;AAAA,MACF;AAAA,MACA,KAAK,KAAK;AACR,QAAI5M,EAAgBsM,GAAeI,CAAc,IAAI,KACnDE,IAAoBI,GAClBJ,CAAyC,GAE1BF,IAAAC,GACfC,EAAkB,OAAO,MAG3BA,IAAoBK,GAClBL,CAAyC,GAE1BF,IAAAC,GACfC,EAAkB,OAAO;AAG7B;AAAA,MACF;AAAA,MACA,KAAK,KAAK;AACR,YAAI5M,EAAgBsM,GAAeI,CAAc,IAAI;AAC7C,gBAAA,+BAA+BA,CAAc,OAAOJ,CAAa;AAEvE,QAAAM,IAAoBM,GAClBN,CAAyC,GAE1BF,IAAAC,GACfC,EAAkB,OAAO;AAG7B;AAAA,MACF;AAAA,MACA;AACQ,cAAA,kBAAkBF,CAAc,OAAOJ,CAAa;AAAA,IAC9D;AAEK,SAAAM;AACT,GAEMC,KAA0B,CAC9BM,MAEOhC,EAA8BgC,GAAK,CAAC1E,MAAgC;AAEzE,EAAAA,EAAM,UAAU;AAAA,CACjB,GAGGsE,KAA0B,CAC9BI,MAEOhC,EAA8BgC,GAAK,CAAC1E,MAAgC;AAEzE,EAAAA,EAAM,UAAU;AAAA,CACjB,GAGGqE,KAAwB,CAC5BT,MAEOlB,EAA6BkB,GAAK,CAAC5D,MAAS;AAEjD,QAAM2E,IAAS3E;AACf,SAAO2E,EAAO,SACdA,EAAO,UAAU;AAAA,CAClB,GAGGH,KAAwB,CAC5BZ,MAEOlB,EAAOkB,GAAK,CAAC5D,OAElBA,EAAM,UAAU,OACTA,EACR,GAGGyE,KAAsB,CAC1Bb,MAEOlB,EAAOkB,GAAK,CAAC5D,MAA+B;AN3N9C,MAAAtF,GAAAoF;AM8NH,SAAAE,EAAM,UAAU,MACZtF,IAAAsF,KAAA,gBAAAA,EAAO,SAAP,QAAAtF,EAAa,SACiBsF,EAAA,KAAM,WAAWA,EAAM,KAAK,MAC5D,OAAOA,EAAM,KAAM,QAEjBF,IAAAE,KAAA,gBAAAA,EAAO,SAAP,QAAAF,EAAa,YACdE,EAA+B,KAAM,SAASA,EAAM,KAAK,QAAQ,CAAC,GACnE,OAAQA,EAA+B,KAAM,UAExCA;AAAA,CACR,GAGGuE,KAAsB,CAC1BX,MAEOlB,EAAOkB,GAAK,CAAC5D,MAA+B;AN9O9C,MAAAtF,GAAAoF;AMiPH,SAAAE,EAAM,UAAU,MAEZtF,IAAAsF,KAAA,gBAAAA,EAAO,SAAP,QAAAtF,EAAa,aACiBsF,EAAA,KAAM,OAAOA,EAAM,KAAK,UACxD,OAAQA,EAA+B,KAAM,YAE3CF,IAAAE,KAAA,gBAAAA,EAAO,SAAP,QAAAF,EAAa,WACdE,EAA+B,KAAM,UAAU,CAACA,EAAM,KAAK,MAAM,GAClE,OAAQA,EAA+B,KAAM,SAGxCA;AAAA,CACR,GAGUkE,KAA6B,CACxC3N,MACoB;AACpB,MAAIA,MAAY;AACP,WAAAR;AACE,MAAAwB,EAAgBhB,GAAS,KAAK,IAAI;AAC3C,UAAM,oBAAoBA,CAAO;AACnC,MACEgB,EAAgBhB,GAAS,KAAK,KAAK,KACnCgB,EAAgBhB,GAAS,KAAK,IAAI;AAE3B,WAAA;AACE,MAAAgB,EAAgBhB,GAAS,KAAK,KAAK;AACrC,WAAA;AACE,MAAAgB,EAAgBhB,GAAS,GAAG,KAAK;AACnC,WAAA;AACT,MAAWA,MAAY;AACd,WAAA;AAGP,QAAM,oBAAoBA,CAAO;AAErC,GCxQM2B,KAAawL,GAAkB,KAAK,GAQ7BkB,KAAsB,CACjCC,MACgC;AAChC,MAAKA,GACD;AAAA,QAAA,MAAM,QAAQA,CAAU,GAAG;AAC7B,YAAM3E,IAA2B,CAAA;AACjC,iBAAWjG,KAAO4K;AACT,QAAA3E,EAAAjG,CAAG,IAAI;AAET,aAAAiG;AAAA,IACT;AACO,WAAA2E;AAAA;AACT,GAUaC,KAAsC,OACjDlB,GACAC,MACgB;AAChB,MAAI,CAACD;AACG,UAAA;AAGJ,MAAA,CAACA,EAAI;AACP,UAAM,kDAAkD,KAAK,UAC3DA,CAAG,CACJ;AAEH,MAAI,CAACC;AACG,UAAA;AAGR,MAAItM,EAAgBsM,GAAe/N,EAAuB,IAAI;AAExD,QAAA;AAeK,aADU,OAbJ,MAAMoC,GACjB,oDAAoD2L,CAAa,IACjE;AAAA,QACE,UAAU;AAAA,QACV,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,MAAM,KAAK,UAAUD,CAAG;AAAA,QACxB,SAAS;AAAA,UACP,gBAAgB;AAAA,QACjB;AAAA,MAAA,CACF,GAEyB;aAErBE,GAAK;AACN,YAAA,mDAAmDD,CAAa,KAAKC,CAAG;AAAA,IAChF;AAOK,SAJkBiB,GACvBnB,GACAC,CAAa;AAGjB,GAEamB,KAA6C,OACxDpB,MAEOkB,GAAoClB,GAAK9N,EAAuB,GAGnEiP,KAAoD,CACxDnB,GACAC,MAC0B;AAC1B,MAAI,CAACD;AACG,UAAA;AAGJ,EAACA,EAAI,YAGDA,IAAAlB,EAAOkB,GAAK,CAAC5D,MAAiC;AAClD,IAAAA,EAAM,UAAU;AAAA,EAAA,CACjB;AAGC,MAAAiE,IAAiBgB,GAA4BrB,EAAI,OAAO;AAC5D,MAAIK,MAAmBJ;AACd,WAAAD;AAGT,MAAIO,IAA4CP;AAGhD,SAAOK,MAAmBJ;AACxB,YAAQI,GAAgB;AAAA,MACtB,KAAK,OAAO;AACV,YAAI1M,EAAgBsM,GAAeI,CAAc,IAAI;AACnD,UAAAE,IAAoBe,GAClBf,CAA2C,GAE5BF,IAAAgB,GACfd,EAAkB,OAAO;AAAA;AAGrB,gBAAA,+BAA+BF,CAAc,OAAOJ,CAAa;AAEzE;AAAA,MACF;AAAA,MACA,KAAK,OAAO;AACV,QAAItM,EAAgBsM,GAAeI,CAAc,IAAI,KACnDE,IAAoBgB,GAClBhB,CAA0C,GAE3BF,IAAAgB,GACfd,EAAkB,OAAO,MAG3BA,IAAoBiB,GAClBjB,CAA0C,GAE3BF,IAAAgB,GACfd,EAAkB,OAAO;AAG7B;AAAA,MACF;AAAA,MACA,KAAK,OAAO;AACV,QAAI5M,EAAgBsM,GAAeI,CAAc,IAAI,KACnDE,IAAoBkB,GAClBlB,CAA0C,GAE3BF,IAAAgB,GACfd,EAAkB,OAAO,MAG3BA,IAAoBmB,GAClBnB,CAA0C,GAE3BF,IAAAgB,GACfd,EAAkB,OAAO;AAG7B;AAAA,MACF;AAAA,MACA,KAAK,OAAO;AACV,QAAI5M,EAAgBsM,GAAeI,CAAc,IAAI,KACnDE,IAAoBoB,GAClBpB,CAA0C,GAE3BF,IAAAgB,GACfd,EAAkB,OAAO,MAG3BA,IAAoBqB,GAClBrB,CAA0C,GAE3BF,IAAAgB,GACfd,EAAkB,OAAO;AAG7B;AAAA,MACF;AAAA,MACA,KAAK,KAAK;AACR,QAAI5M,EAAgBsM,GAAeI,CAAc,IAAI,KACnDE,IAAoBI,GAClBJ,CAA0C,GAE3BF,IAAAgB,GACfd,EAAkB,OAAO,MAG3BA,IAAoBsB,GAClBtB,CAA0C,GAE3BF,IAAAgB,GACfd,EAAkB,OAAO;AAG7B;AAAA,MACF;AAAA,MACA,KAAK,KAAK;AACR,YAAI5M,EAAgBsM,GAAeI,CAAc,IAAI;AAC7C,gBAAA,+BAA+BA,CAAc,OAAOJ,CAAa;AAEvE,QAAAM,IAAoBM,GAClBN,CAA0C,GAE3BF,IAAAgB,GACfd,EAAkB,OAAO;AAG7B;AAAA,MACF;AAAA,MACA;AACQ,cAAA,kBAAkBF,CAAc,OAAOJ,CAAa;AAAA,IAC9D;AAEK,SAAAM;AACT,GAEauB,KAAuC,OAClDC,GAEAC,MAC8C;AAC9C,MAAI,CAACD;AACH;AAEI,QAAAE,IAAY,MAAMb,GAA2CW,CAAC;AAEpE,SAAIE,KAAA,QAAAA,EAAW,eACHA,EAAA,aAAajB,GAAoBiB,EAAU,UAAU,IAE1DA;AACT,GAEMT,KAA0B,CAACxB,MACxBlB,EAAOkB,GAAK,CAAC5D,MAAgC;AAClD,EAAAA,EAAM,UAAU,OAChB,OAAOA,EAAM;AAAA,CACd,GAGGkF,KAA0B,CAACtB,MACxBlB,EAAOkB,GAAK,CAAC5D,MAAiC;AACnD,EAAAA,EAAM,UAAU;AAAA,CACjB,GAGGmF,KAA0B,CAACvB,MACxBlB,EAAOkB,GAAK,CAAC5D,MAAgC;AAE9C,MADJA,EAAM,UAAU,OACZ,EAACA,KAAA,QAAAA,EAAO;AACV;AAEI,QAAA8F,IAAQ9F,EAAM,SAAS;AAC7B,SAAOA,EAAM,SAAS,OACrBA,EAAgC,SAAU,OAAO8F;AAE5C,QAAAC,IAAiB/F,EAAM,SAAS;AACtC,SAAOA,EAAM,SAAS,gBACrBA,EAAgC,SAAU,cAAc+F;AAEnD,QAAAC,IAAWhG,EAAM,SAAS;AAChC,SAAOA,EAAM,SAAS,UACrBA,EAAgC,SAAU,OAAOgG;AAAA,CACnD,GAGGV,KAA0B,CAAC1B,MACxBlB,EAAOkB,GAAK,CAAC5D,MAAgC;AAE9C,MADJA,EAAM,UAAU,OACZ,EAACA,KAAA,QAAAA,EAAO;AACV;AAEI,QAAAvC,IAAOuC,EAAM,SAAS;AAC5B,SAAOA,EAAM,SAAS,MACrBA,EAAgC,SAAS,QAAQvC;AAE5C,QAAAwI,IAAajG,EAAM,SAAS;AAClC,SAAOA,EAAM,SAAS,aACrBA,EAAgC,SAAS,iBAAiBiG;AAErD,QAAAC,IAAOlG,EAAM,SAAS;AAC5B,SAAOA,EAAM,SAAS,MACrBA,EAAgC,SAAS,WAAWkG;AAAA,CACtD,GAIGX,KAAwB,CAC5B3B,MAEOlB,EAAOkB,GAAK,CAAC5D,MAAgC;AP7S/C,MAAAtF;AO8SH,EAAAsF,EAAM,UAAU,MACZtF,IAAAsF,KAAA,gBAAAA,EAAO,aAAP,QAAAtF,EAAiB,cACnB,OAAOsF,EAAM,SAAS;AACxB,CACD,GAIGyF,KAAwB,CAC5B7B,MAEOlB,EAAOkB,GAAK,CAAC5D,MAAgC;APzT/C,MAAAtF;AO0TH,EAAAsF,EAAM,UAAU,QACZtF,IAAAsF,KAAA,gBAAAA,EAAO,aAAP,QAAAtF,EAAiB,cACnB,OAAOsF,EAAM,SAAS;AACxB,CACD,GAGGyE,KAAsB,CAC1Bb,MAEOlB,EAAOkB,GAAK,CAAC5D,MAAgC;APpU/C,MAAAtF,GAAAoF;AOqUH,SAAAE,EAAM,UAAU,MACZtF,IAAAsF,KAAA,gBAAAA,EAAO,aAAP,QAAAtF,EAAiB,YAElBsF,EAAgC,SAAS,UACxCF,IAAAE,KAAA,gBAAAA,EAAO,aAAP,gBAAAF,EAAiB,QAAQ,IAC3B,OAAOE,EAAM,SAAS,UAEjBA;AAAA,CACR,GAGGuE,KAAsB,CAC1BX,MAEOlB,EAAOkB,GAAK,CAAC5D,MAAgC;APnV/C,MAAAtF;AOoVH,SAAAsF,EAAM,UAAU,MACZtF,IAAAsF,KAAA,gBAAAA,EAAO,aAAP,QAAAtF,EAAiB,WAElBsF,EAAgC,SAAS,UAAU;AAAA,IAClDA,EAAM,SAAS;AAAA,EAAA,GAEjB,OAAOA,EAAM,SAAS,SAEjBA;AAAA,CACR,GAMGqF,KAA0B,CAC9B5F,MAEOiD,EAAOjD,GAAQ,CAACO,MAAgC;APtWlD,MAAAtF;AOuWH,EAAAsF,EAAM,UAAU,QACXtF,IAAAsF,KAAA,gBAAAA,EAAiC,aAAjC,QAAAtF,EAA2C,cAC9C,OAAQsF,EAAgC,SAAU;AACpD,CACD,GAMGwF,KAA0B,CAC9B/F,MAEOiD,EACLjD,GACA,CAACO,MAAgC;APtX9B,MAAAtF;AOuXD,EAAAsF,EAAM,UAAU,QACZtF,IAAAsF,KAAA,gBAAAA,EAAO,aAAP,QAAAtF,EAAiB,cACnB,OAAOsF,EAAM,SAAS;AACxB,CACD,GAKQiF,KAA8B,CACzC1O,MACqB;AACrB,MAAIA,MAAY;AACP,WAAAT;AACE,MAAAyB,EAAgBhB,GAAS,KAAK,IAAI;AAC3C,UAAM,oBAAoBA,CAAO;AACxB,MAAAgB,EAAgBhB,GAAS,KAAK,KAAK;AACrC,WAAA;AACE,MAAAgB,EAAgBhB,GAAS,KAAK,KAAK;AACrC,WAAA;AACE,MAAAgB,EAAgBhB,GAAS,KAAK,KAAK;AACrC,WAAA;AACE,MAAAgB,EAAgBhB,GAAS,KAAK,KAAK;AACrC,WAAA;AACE,MAAAgB,EAAgBhB,GAAS,GAAG,KAAK;AACnC,WAAA;AACT,MAAWA,MAAY;AACd,WAAA;AAGP,QAAM,oBAAoBA,CAAO;AAErC;ACrZA,IAAI4P,KAAQ,oEAERC,KAAS,OAAO,aAAe,MAAc,CAAE,IAAG,IAAI,WAAW,GAAG;AACxE,SAAS/O,KAAI,GAAGA,KAAI8O,GAAM,QAAQ9O;AAC9B,EAAA+O,GAAOD,GAAM,WAAW9O,EAAC,CAAC,IAAIA;AAkBlC,IAAIgP,KAAS,SAAUC,GAAQ;AAC3B,MAAIC,IAAeD,EAAO,SAAS,MAAME,IAAMF,EAAO,QAAQjP,GAAGoP,IAAI,GAAGC,GAAUC,GAAUC,GAAUC;AACtG,EAAIP,EAAOA,EAAO,SAAS,CAAC,MAAM,QAC9BC,KACID,EAAOA,EAAO,SAAS,CAAC,MAAM,OAC9BC;AAGR,MAAIO,IAAc,IAAI,YAAYP,CAAY,GAAGQ,IAAQ,IAAI,WAAWD,CAAW;AACnF,OAAKzP,IAAI,GAAGA,IAAImP,GAAKnP,KAAK;AACtB,IAAAqP,IAAWN,GAAOE,EAAO,WAAWjP,CAAC,CAAC,GACtCsP,IAAWP,GAAOE,EAAO,WAAWjP,IAAI,CAAC,CAAC,GAC1CuP,IAAWR,GAAOE,EAAO,WAAWjP,IAAI,CAAC,CAAC,GAC1CwP,IAAWT,GAAOE,EAAO,WAAWjP,IAAI,CAAC,CAAC,GAC1C0P,EAAMN,GAAG,IAAKC,KAAY,IAAMC,KAAY,GAC5CI,EAAMN,GAAG,KAAME,IAAW,OAAO,IAAMC,KAAY,GACnDG,EAAMN,GAAG,KAAMG,IAAW,MAAM,IAAMC,IAAW;AAErD,SAAOC;AACX;AC9CK,MAACE,KAAI;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,cAAc;AAAA;AAAA,EAEd,aAAa;AAAA;AAAA,EAEb,KAAK;AACP,GAAGC,IAAI;AAAA,EACL,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,KAAK;AACP,GAAGC,KAAK,OAAO,IAAI,0BAA0B,GAAkDC,KAAI,OAAO,UAAUvQ,KAAI;AAAA,EACtH,SAAS;AAAA,EACT,WAAW;AACb,GAAGwQ,KAAK,CAAG;AACX,SAASC,GAAEC,GAAGzQ,GAAG;AACf,SAAOyQ,aAAa,MAAMA,EAAE,IAAIzQ,CAAC,IAAI,OAAO,UAAU,eAAe,KAAKyQ,GAAGzQ,CAAC;AAChF;AACA,SAAS0Q,GAAGD,GAAGzQ,GAAG;AAChB,MAAIA,KAAKyQ,GAAG;AACV,QAAIE,IAAI,QAAQ,eAAeF,CAAC;AAChC,WAAOE,KAAK;AACV,YAAMlQ,IAAI,QAAQ,yBAAyBkQ,GAAG3Q,CAAC;AAC/C,UAAIS;AACF,eAAOA;AACT,MAAAkQ,IAAI,QAAQ,eAAeA,CAAC;AAAA,IAC7B;AAAA,EACF;AACH;AACA,SAASC,GAAGH,GAAG;AACb,SAAO,OAAO,eAAeA,CAAC,MAAM,IAAI;AAC1C;AACA,SAASI,GAAGJ,GAAG;AACb,SAAO,OAAO,eAAeA,CAAC,MAAM,IAAI;AAC1C;AACA,SAASK,GAAEL,GAAG;AACZ,MAAIzQ;AACJ,UAAQA,IAAIyQ,EAAE,UAAU,QAAQzQ,MAAM,SAASA,IAAIyQ,EAAE;AACvD;AACA,SAASM,GAAEN,GAAG;AACZ,SAAO,CAAC,CAACO,EAAEP,CAAC;AACd;AACA,SAASO,EAAEP,GAAG;AACZ,SAAO,OAAOA,KAAK,WAAW,OAAOA,KAAK,OAAO,SAASA,EAAEJ,EAAE;AAChE;AACA,SAASY,GAAGR,GAAG;AACb,MAAIzQ;AACJ,QAAM2Q,IAAIK,EAAEP,CAAC;AACb,SAAOE,KAAK3Q,IAAI2Q,EAAE,UAAU,QAAQ3Q,MAAM,SAASA,IAAI2Q,EAAE,WAAWF;AACtE;AACA,SAASS,GAAET,GAAGzQ,GAAG;AACf,MAAI,CAACyQ,KAAK,OAAOA,KAAK;AACpB,WAAO;AACT,MAAIE;AACJ,SAAO,OAAO,eAAeF,CAAC,MAAM,OAAO,aAAa,MAAM,QAAQA,CAAC,KAAKA,aAAa,OAAOA,aAAa,OAAO,CAAC,EAAEzQ,KAAK,QAAQA,EAAE,WAAW2Q,IAAI3Q,EAAE,KAAKyQ,GAAG1Q,EAAC,OAAOA,GAAE,aAAa,OAAO4Q,KAAK;AACpM;AACA,SAASQ,GAAGV,GAAGzQ,IAAI,IAAI;AACrB,MAAI,OAAO,eAAe,KAAKyQ,GAAG,KAAK,GAAG;AACxC,UAAME,IAAIF,EAAE,OAAO,MAAMhQ,IAAIuQ,EAAEI,GAAET,GAAGF,EAAE,GAAG,CAAC;AAC1C,QAAIhQ,MAAM,SAASA,KAAK,OAAO,SAASA,EAAE,cAAcgQ,EAAE;AACxD,aAAO;AACT,UAAMY,IAAIZ,EAAE,OAAO,SAAS,GAAGvQ,IAAImR,IAAI,MAAM,KAAKZ,EAAE,OAAO,OAAO,KAAI,CAAE,EAAE,QAAQA,EAAE,GAAG,IAAIA,EAAE;AAC7F,QAAI,EAAEY,KAAKV,EAAE,OAAOzQ,KAAKsQ,GAAEG,GAAGzQ,CAAC;AAC7B,aAAO;AACT,IAAAF,EAAE,KAAKE,CAAC;AAAA,EACT;AACD,MAAIuQ,EAAE;AACJ,WAAOU,GAAGV,EAAE,QAAQzQ,CAAC;AACvB,EAAAA,EAAE,QAAO;AACT,MAAI;AACF,IAAAsR,GAAGb,EAAE,MAAMzQ,CAAC;AAAA,EAChB,QAAU;AACN,WAAO;AAAA,EACR;AACD,SAAOA;AACT;AACA,SAASuR,GAAEd,GAAG;AACZ,SAAO,MAAM,QAAQA,CAAC,IAAI,IAAIA,aAAa,MAAM,IAAIA,aAAa,MAAM,IAAI;AAC9E;AACA,SAASW,GAAEX,GAAGzQ,GAAG;AACf,SAAOuR,GAAEd,CAAC,MAAM,IAAIA,EAAE,IAAIzQ,CAAC,IAAIyQ,EAAEzQ,CAAC;AACpC;AACA,SAASwR,GAAEf,GAAGzQ,GAAG2Q,GAAG;AAClBY,EAAAA,GAAEd,CAAC,MAAM,IAAIA,EAAE,IAAIzQ,GAAG2Q,CAAC,IAAIF,EAAEzQ,CAAC,IAAI2Q;AACpC;AACA,SAASc,GAAEhB,GAAGzQ,GAAG;AACf,QAAM2Q,IAAIK,EAAEP,CAAC;AACb,UAAQE,IAAIG,GAAEH,CAAC,IAAIF,GAAGzQ,CAAC;AACzB;AACA,SAAS0R,GAAEjB,GAAGzQ,GAAG;AACf,SAAOyQ,MAAMzQ,IAAIyQ,MAAM,KAAK,IAAIA,MAAM,IAAIzQ,IAAIyQ,MAAMA,KAAKzQ,MAAMA;AACjE;AAMA,SAAS2R,GAAElB,GAAGzQ,GAAG;AACf,SAAOA,IAAIyQ,IAAI,CAAC,EAAE,EAAE,OAAOA,CAAC,EAAE,IAAI,CAACE,MAAM;AACvC,UAAMlQ,IAAI,GAAGkQ,CAAC;AACd,WAAOlQ,EAAE,QAAQ,GAAG,MAAM,MAAMA,EAAE,QAAQ,GAAG,MAAM,KAAKA,IAAIA,EAAE,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI;AAAA,EACzG,CAAG,EAAE,KAAK,GAAG;AACb;AACA,SAAS6Q,GAAGb,GAAGzQ,GAAG;AAChB,WAAS2Q,IAAI,GAAGA,IAAI3Q,EAAE,SAAS,GAAG2Q,KAAK,GAAG;AACxC,UAAMlQ,IAAIT,EAAE2Q,CAAC;AACb,QAAIF,IAAIW,GAAEG,GAAEd,CAAC,MAAM,IAAI,MAAM,KAAKA,CAAC,IAAIA,GAAGhQ,CAAC,GAAG,OAAOgQ,KAAK;AACxD,YAAM,IAAI,MAAM,4BAA4BzQ,EAAE,KAAK,GAAG,CAAC,IAAI;AAAA,EAC9D;AACD,SAAOyQ;AACT;AACA,SAASmB,GAAGnB,GAAG;AACb,QAAMzQ,IAAI,OAAO,OAAO,OAAO,eAAeyQ,CAAC,CAAC;AAChD,SAAO,QAAQ,QAAQA,CAAC,EAAE,QAAQ,CAACE,MAAM;AACvC,QAAIlQ,IAAI,QAAQ,yBAAyBgQ,GAAGE,CAAC;AAC7C,QAAIlQ,EAAE,cAAcA,EAAE,gBAAgBA,EAAE,UAAU;AAChD,MAAAT,EAAE2Q,CAAC,IAAIF,EAAEE,CAAC;AACV;AAAA,IACD;AACD,IAAAlQ,EAAE,aAAaA,EAAE,WAAW,IAAIA,EAAE,eAAe,MAAMA,EAAE,OAAOA,EAAE,SAASA,IAAI;AAAA,MAC7E,cAAc;AAAA,MACd,UAAU;AAAA,MACV,YAAYA,EAAE;AAAA,MACd,OAAOgQ,EAAEE,CAAC;AAAA,IAChB,IAAQ,QAAQ,eAAe3Q,GAAG2Q,GAAGlQ,CAAC;AAAA,EACnC,CAAA,GAAGT;AACN;AACA,MAAM6R,KAAK,OAAO,UAAU;AAC5B,SAASC,GAAGrB,GAAGzQ,GAAG;AAChB,MAAI2Q;AACJ,MAAI,MAAM,QAAQF,CAAC;AACjB,WAAO,MAAM,UAAU,OAAO,KAAKA,CAAC;AACtC,MAAIA,aAAa,KAAK;AACpB,QAAI,CAACG,GAAGH,CAAC,GAAG;AACV,YAAMhQ,IAAI,OAAO,eAAegQ,CAAC,EAAE;AACnC,aAAO,IAAIhQ,EAAEgQ,EAAE,OAAQ,CAAA;AAAA,IACxB;AACD,WAAO,IAAI,UAAU,aAAa,IAAI,UAAU,WAAW,KAAKA,GAAmB,oBAAI,IAAK,CAAA,IAAI,IAAI,IAAIA,EAAE,OAAM,CAAE;AAAA,EACtH,WAAaA,aAAa,KAAK;AAC3B,QAAI,CAACI,GAAGJ,CAAC,GAAG;AACV,YAAMhQ,IAAI,OAAO,eAAegQ,CAAC,EAAE;AACnC,aAAO,IAAIhQ,EAAEgQ,CAAC;AAAA,IACf;AACD,WAAO,IAAI,IAAIA,CAAC;AAAA,EACpB,WAAazQ,KAAK,QAAQA,EAAE,SAAS2Q,IAAI3Q,EAAE,KAAKyQ,GAAG1Q,EAAC,GAAG4Q,MAAM,WAAWA,MAAM5Q,GAAE,SAAS;AACrF,QAAI4Q,MAAM5Q,GAAE;AACV,aAAO6R,GAAGnB,CAAC;AACb,QAAI,OAAOE,KAAK,YAAY;AAC1B,UAAI3Q,EAAE,iBAAiBA,EAAE;AACvB,cAAM,IAAI,MAAM,yDAAyD;AAC3E,aAAO2Q,EAAC;AAAA,IACT;AACD,UAAM,IAAI,MAAM,4BAA4BA,CAAC,EAAE;AAAA,EACnD,WAAa,OAAOF,KAAK,YAAY,OAAO,eAAeA,CAAC,MAAM,OAAO,WAAW;AAChF,UAAMhQ,IAAI,CAAA;AACV,WAAO,OAAO,KAAKgQ,CAAC,EAAE,QAAQ,CAACY,MAAM;AACnC,MAAA5Q,EAAE4Q,CAAC,IAAIZ,EAAEY,CAAC;AAAA,IAChB,CAAK,GAAG,OAAO,sBAAsBZ,CAAC,EAAE,QAAQ,CAACY,MAAM;AACjD,MAAAQ,GAAG,KAAKpB,GAAGY,CAAC,MAAM5Q,EAAE4Q,CAAC,IAAIZ,EAAEY,CAAC;AAAA,IAC7B,CAAA,GAAG5Q;AAAA,EACL;AACC,UAAM,IAAI,MAAM,8EAA8E;AAClG;AACA,SAASN,EAAEsQ,GAAG;AACZ,EAAAA,EAAE,SAASA,EAAE,OAAOqB,GAAGrB,EAAE,UAAUA,EAAE,OAAO;AAC9C;AACA,SAASsB,GAAEtB,GAAG;AACZ,MAAI,CAACS,GAAET,CAAC;AACN,WAAOQ,GAAGR,CAAC;AACb,MAAI,MAAM,QAAQA,CAAC;AACjB,WAAOA,EAAE,IAAIsB,EAAC;AAChB,MAAItB,aAAa,KAAK;AACpB,UAAME,IAAI,MAAM,KAAKF,EAAE,SAAS,EAAE,IAAI,CAAC,CAAChQ,GAAG4Q,CAAC,MAAM;AAAA,MAChD5Q;AAAA,MACAsR,GAAEV,CAAC;AAAA,IACT,CAAK;AACD,QAAI,CAACR,GAAGJ,CAAC,GAAG;AACV,YAAMhQ,IAAI,OAAO,eAAegQ,CAAC,EAAE;AACnC,aAAO,IAAIhQ,EAAEkQ,CAAC;AAAA,IACf;AACD,WAAO,IAAI,IAAIA,CAAC;AAAA,EACjB;AACD,MAAIF,aAAa,KAAK;AACpB,UAAME,IAAI,MAAM,KAAKF,CAAC,EAAE,IAAIsB,EAAC;AAC7B,QAAI,CAACnB,GAAGH,CAAC,GAAG;AACV,YAAMhQ,IAAI,OAAO,eAAegQ,CAAC,EAAE;AACnC,aAAO,IAAIhQ,EAAEkQ,CAAC;AAAA,IACf;AACD,WAAO,IAAI,IAAIA,CAAC;AAAA,EACjB;AACD,QAAM3Q,IAAI,OAAO,OAAO,OAAO,eAAeyQ,CAAC,CAAC;AAChD,aAAWE,KAAKF;AACd,IAAAzQ,EAAE2Q,CAAC,IAAIoB,GAAEtB,EAAEE,CAAC,CAAC;AACf,SAAO3Q;AACT;AACA,SAASgS,GAAEvB,GAAG;AACZ,SAAOM,GAAEN,CAAC,IAAIsB,GAAEtB,CAAC,IAAIA;AACvB;AACA,SAASwB,GAAExB,GAAG;AACZ,MAAIzQ;AACJ,EAAAyQ,EAAE,eAAezQ,IAAIyQ,EAAE,iBAAiB,QAAQzQ,MAAM,SAASA,IAAoB,oBAAI,IAAG,GAAIyQ,EAAE,aAAaA,EAAE,WAAW,IAAIA,EAAE,UAAUwB,GAAExB,EAAE,MAAM;AACtJ;AAkDA,SAASyB,GAAGzB,GAAGzQ,GAAG;AAChB,QAAM2Q,IAAIY,GAAEd,CAAC;AACb,MAAIE,MAAM;AACR,YAAQ,QAAQF,CAAC,EAAE,QAAQ,CAAChQ,MAAM;AAChC,MAAAT,EAAES,GAAGgQ,EAAEhQ,CAAC,GAAGgQ,CAAC;AAAA,IAClB,CAAK;AAAA,WACME,MAAM,GAAG;AAChB,QAAIlQ,IAAI;AACR,eAAW4Q,KAAKZ;AACd,MAAAzQ,EAAES,GAAG4Q,GAAGZ,CAAC,GAAGhQ,KAAK;AAAA,EACpB;AACC,IAAAgQ,EAAE,QAAQ,CAAChQ,GAAG4Q,MAAMrR,EAAEqR,GAAG5Q,GAAGgQ,CAAC,CAAC;AAClC;AACA,SAAS0B,GAAG1B,GAAGzQ,GAAG2Q,GAAG;AACnB,MAAII,GAAEN,CAAC,KAAK,CAACS,GAAET,GAAGE,CAAC,KAAK3Q,EAAE,IAAIyQ,CAAC,KAAK,OAAO,SAASA,CAAC;AACnD;AACF,QAAMhQ,IAAIgQ,aAAa,KAAKY,IAAI5Q,IAAoB,oBAAI,QAAQ;AAChE,MAAIT,EAAE,IAAIyQ,CAAC,GAAGyB,GAAGzB,GAAG,CAACvQ,GAAG,MAAM;AAC5B,QAAIkS;AACJ,QAAIrB,GAAE,CAAC,GAAG;AACR,YAAMlR,IAAImR,EAAE,CAAC;AACb7Q,MAAAA,EAAEN,CAAC;AACH,YAAMwS,IAAI,GAAGD,IAAIvS,EAAE,iBAAiB,QAAQuS,MAAM,WAAWA,EAAE,QAAQvS,EAAE,WAAWA,EAAE,OAAOA,EAAE;AAC/F,MAAA2R,GAAE/Q,IAAI4Q,IAAIZ,GAAGvQ,GAAGmS,CAAC;AAAA,IAClB;AACC,MAAAF,GAAG,GAAGnS,GAAG2Q,CAAC;AAAA,EACb,CAAA,GAAGU,GAAG;AACL,UAAMnR,IAAIuQ,GAAG,IAAI,MAAM,KAAKvQ,CAAC;AAC7B,IAAAA,EAAE,MAAO,GAAE,EAAE,QAAQ,CAACkS,MAAM;AAC1B,MAAAlS,EAAE,IAAImR,EAAE,IAAIe,CAAC,IAAIf,EAAE,IAAIe,CAAC,IAAIA,CAAC;AAAA,IACnC,CAAK;AAAA,EACF;AACH;AACA,SAASE,GAAG7B,GAAGzQ,GAAG;AAChB,QAAM2Q,IAAIF,EAAE,SAAS,IAAIA,EAAE,SAASA,EAAE;AACtC,EAAAA,EAAE,WAAW,OAAO,SAAS,KAAKA,EAAE,YAAY,IAAIzQ,CAAC,KAAK2Q,KAAKwB,GAAGf,GAAET,GAAG3Q,CAAC,GAAGyQ,EAAE,WAAW,YAAYA,EAAE,OAAO;AAC/G;AACA,SAAS8B,GAAE9B,GAAG;AACZ,EAAAA,EAAE,SAAS,KAAKA,EAAE,SAASA,EAAE,KAAK,MAAO,GAAEA,EAAE,OAAO,QAAQ,CAACzQ,MAAM;AACjE,IAAAyQ,EAAE,KAAK,IAAIQ,GAAGjR,CAAC,CAAC;AAAA,EACjB,CAAA;AACH;AACA,SAASkG,GAAEuK,GAAGzQ,GAAG2Q,GAAGlQ,GAAG;AACrB,MAAIgQ,EAAE,YAAYA,EAAE,eAAeA,EAAE,YAAY,OAAO,KAAK,CAACA,EAAE,WAAW;AACzE,QAAIE,KAAKlQ,GAAG;AACV,YAAMP,IAAIiR,GAAGV,CAAC;AACd,MAAAvQ,KAAKF,EAAEyQ,GAAGvQ,GAAGyQ,GAAGlQ,CAAC;AAAA,IAClB;AACD,IAAAgQ,EAAE,YAAY;AAAA,EACf;AACH;AACA,SAAS+B,GAAG/B,GAAGzQ,GAAG2Q,GAAGlQ,GAAG;AACtB,QAAM4Q,IAAIL,EAAEL,CAAC;AACb,EAAAU,MAAMA,EAAE,cAAcA,EAAE,YAAY,CAAA,IAAKA,EAAE,UAAU,KAAK,CAACnR,GAAG,MAAM;AAClE,QAAIkS;AACJ,UAAMvS,IAAI4Q,EAAE,SAAS,IAAIA,EAAE,SAASA,EAAE;AACtC,QAAIiB,GAAEN,GAAEvR,GAAGG,CAAC,GAAG2Q,CAAC,GAAG;AACjB,UAAI0B,IAAIhB,EAAE;AACV,MAAAA,EAAE,SAASgB,IAAIhB,EAAE,OAAOkB,GAAE9B,CAAC,GAAGvK,GAAEuK,GAAGhQ,GAAGP,GAAG,CAAC,GAAGuQ,EAAE,QAAQ,qBAAqBA,EAAE,QAAQ,iBAAiB2B,IAAI3B,EAAE,QAAQ,mBAAmB,QAAQ2B,MAAM,SAASA,IAAoB,oBAAI,QAAS,GAAE3B,EAAE,QAAQ,cAAc,IAAI4B,GAAGhB,EAAE,QAAQ,IAAIG,GAAE3R,GAAGG,GAAGqS,CAAC;AAAA,IACzP;AAAA,EACF,CAAA,GAAG5B,EAAE,QAAQ,oBAAoBY,EAAE,eAAeZ,EAAE,eAAeA,EAAE,QAAQ,mBAAmB,MAAMS,GAAEP,GAAGF,EAAE,OAAO,KAAKA,EAAE,WAAW,MAAM,KAAK,MAAM;AACtJ,UAAMvQ,IAAIuQ,EAAE,SAAS,IAAIA,EAAE,SAASA,EAAE;AACtCiB,IAAAA,GAAEN,GAAElR,GAAGF,CAAC,GAAG2Q,CAAC,KAAK2B,GAAG7B,GAAGzQ,CAAC;AAAA,EAC5B,CAAG;AACH;AACA,SAASyS,GAAGhC,GAAGzQ,GAAG2Q,GAAGlQ,GAAG4Q,GAAG;AACzB,MAAI,EAAE,UAAUnR,GAAG,aAAa,GAAG,SAASkS,EAAC,IAAK3B,GAAG5Q,IAAI4Q,EAAE;AAC3D,EAAA5Q,EAAE,SAASK,EAAE,WAAW,CAACA,GAAGL,CAAC,IAAI,CAACA,GAAGK,CAAC,GAAG,CAACyQ,GAAGlQ,CAAC,IAAI,CAACA,GAAGkQ,CAAC;AACvD,WAAS0B,IAAI,GAAGA,IAAInS,EAAE,QAAQmS,KAAK;AACjC,QAAI,EAAE,IAAIA,EAAE,SAAU,CAAA,KAAKxS,EAAEwS,CAAC,MAAMnS,EAAEmS,CAAC,GAAG;AACxC,YAAM,IAAIrS,EAAE,OAAO,CAACqS,CAAC,CAAC,GAAGzC,IAAI+B,GAAE,GAAGN,CAAC;AACnC,MAAAV,EAAE,KAAK;AAAA,QACL,IAAIP,EAAE;AAAA,QACN,MAAMR;AAAA;AAAA,QAEN,OAAOoC,GAAEnS,EAAEwS,CAAC,CAAC;AAAA,MACrB,CAAO,GAAG5R,EAAE,KAAK;AAAA,QACT,IAAI2P,EAAE;AAAA,QACN,MAAMR;AAAA;AAAA,QAEN,OAAOoC,GAAE9R,EAAEmS,CAAC,CAAC;AAAA,MACrB,CAAO;AAAA,IACF;AACH,WAASA,IAAInS,EAAE,QAAQmS,IAAIxS,EAAE,QAAQwS,KAAK,GAAG;AAC3C,UAAM,IAAIrS,EAAE,OAAO,CAACqS,CAAC,CAAC,GAAGzC,IAAI+B,GAAE,GAAGN,CAAC;AACnC,IAAAV,EAAE,KAAK;AAAA,MACL,IAAIP,EAAE;AAAA,MACN,MAAMR;AAAA;AAAA,MAEN,OAAOoC,GAAEnS,EAAEwS,CAAC,CAAC;AAAA,IACnB,CAAK;AAAA,EACF;AACD,MAAInS,EAAE,SAASL,EAAE,QAAQ;AACvB,UAAM,EAAE,uBAAuBwS,IAAI,GAAI,IAAGD,EAAE;AAC5C,QAAIC,GAAG;AACL,YAAM,IAAIrS,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG4P,IAAI+B,GAAE,GAAGN,CAAC;AAC1C,MAAA5Q,EAAE,KAAK;AAAA,QACL,IAAI2P,EAAE;AAAA,QACN,MAAMR;AAAA,QACN,OAAO1P,EAAE;AAAA,MACjB,CAAO;AAAA,IACF;AACC,eAAS,IAAIL,EAAE,QAAQK,EAAE,SAAS,GAAG,KAAK,GAAG;AAC3C,cAAM0P,IAAI5P,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,GAAGgF,IAAI2M,GAAE/B,GAAGyB,CAAC;AACvC,QAAA5Q,EAAE,KAAK;AAAA,UACL,IAAI2P,EAAE;AAAA,UACN,MAAMpL;AAAA,QAChB,CAAS;AAAA,MACF;AAAA,EACJ;AACH;AACA,SAAS0N,GAAG,EAAE,UAAUjC,GAAG,MAAMzQ,GAAG,aAAa2Q,EAAG,GAAElQ,GAAG4Q,GAAGnR,GAAG,GAAG;AAChE,EAAAyQ,EAAE,QAAQ,CAACyB,GAAGvS,MAAM;AAClB,UAAMwS,IAAIjB,GAAEX,GAAG5Q,CAAC,GAAG,IAAImS,GAAEZ,GAAEpR,GAAGH,CAAC,CAAC,GAAG+P,IAAIwC,IAAI5B,GAAEC,GAAG5Q,CAAC,IAAIuQ,EAAE,UAAUA,EAAE,MAAMA,EAAE;AAC3E,QAAIsB,GAAEW,GAAG,CAAC,KAAKzC,MAAMQ,EAAE;AACrB;AACF,UAAMpL,IAAIvE,EAAE,OAAOZ,CAAC,GAAG8S,IAAIhB,GAAE3M,GAAG,CAAC;AACjC,IAAAqM,EAAE,KAAKzB,MAAMQ,EAAE,SAAS,EAAE,IAAIR,GAAG,MAAM+C,EAAC,IAAK,EAAE,IAAI/C,GAAG,MAAM+C,GAAG,OAAO,EAAG,CAAA,GAAGzS,EAAE,KAAK0P,MAAMQ,EAAE,MAAM,EAAE,IAAIA,EAAE,QAAQ,MAAMuC,EAAC,IAAK/C,MAAMQ,EAAE,SAAS,EAAE,IAAIA,EAAE,KAAK,MAAMuC,GAAG,OAAON,EAAC,IAAK,EAAE,IAAIjC,EAAE,SAAS,MAAMuC,GAAG,OAAON,EAAG,CAAA;AAAA,EACzN,CAAG;AACH;AACA,SAASO,GAAG,EAAE,UAAUnC,GAAG,MAAMzQ,EAAG,GAAE2Q,GAAGlQ,GAAG4Q,GAAGnR,GAAG;AAChD,MAAI,IAAI;AACR,EAAAuQ,EAAE,QAAQ,CAAC2B,MAAM;AACf,QAAI,CAACpS,EAAE,IAAIoS,CAAC,GAAG;AACb,YAAMvS,IAAI8Q,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG0B,IAAIV,GAAE9R,GAAGK,CAAC;AACnC,MAAAO,EAAE,KAAK;AAAA,QACL,IAAI2P,EAAE;AAAA,QACN,MAAMiC;AAAA,QACN,OAAOD;AAAA,MACf,CAAO,GAAGf,EAAE,QAAQ;AAAA,QACZ,IAAIjB,EAAE;AAAA,QACN,MAAMiC;AAAA,QACN,OAAOD;AAAA,MACf,CAAO;AAAA,IACF;AACD,SAAK;AAAA,EACT,CAAG,GAAG,IAAI,GAAGpS,EAAE,QAAQ,CAACoS,MAAM;AAC1B,QAAI,CAAC3B,EAAE,IAAI2B,CAAC,GAAG;AACb,YAAMvS,IAAI8Q,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG0B,IAAIV,GAAE9R,GAAGK,CAAC;AACnC,MAAAO,EAAE,KAAK;AAAA,QACL,IAAI2P,EAAE;AAAA,QACN,MAAMiC;AAAA,QACN,OAAOD;AAAA,MACf,CAAO,GAAGf,EAAE,QAAQ;AAAA,QACZ,IAAIjB,EAAE;AAAA,QACN,MAAMiC;AAAA,QACN,OAAOD;AAAA,MACf,CAAO;AAAA,IACF;AACD,SAAK;AAAA,EACT,CAAG;AACH;AACA,SAASS,GAAEpC,GAAGzQ,GAAG2Q,GAAGlQ,GAAG;AACrB,QAAM,EAAE,aAAa4Q,IAAI,GAAE,IAAKZ,EAAE,QAAQ;AAC1C,UAAQA,EAAE,MAAI;AAAA,IACZ,KAAK;AAAA,IACL,KAAK;AACH,aAAOiC,GAAGjC,GAAGzQ,GAAG2Q,GAAGlQ,GAAG4Q,CAAC;AAAA,IACzB,KAAK;AACH,aAAOoB,GAAGhC,GAAGzQ,GAAG2Q,GAAGlQ,GAAG4Q,CAAC;AAAA,IACzB,KAAK;AACH,aAAOuB,GAAGnC,GAAGzQ,GAAG2Q,GAAGlQ,GAAG4Q,CAAC;AAAA,EAC1B;AACH;AACA,IAAIyB,KAAK;AACT,MAAMC,KAAI,CAACtC,GAAGzQ,GAAG2Q,IAAI,OAAO;AAC1B,MAAI,OAAOF,KAAK,YAAYA,MAAM,SAAS,CAACS,GAAET,GAAGzQ,CAAC,KAAK2Q,MAAM,CAACmC;AAC5D,UAAM,IAAI,MAAM,4FAA4F;AAChH,GAAGE,KAAK;AAAA,EACN,IAAI,OAAO;AACT,WAAOlC,GAAEE,EAAE,IAAI,CAAC,EAAE;AAAA,EACnB;AAAA,EACD,IAAIP,GAAG;AACL,WAAOK,GAAEE,EAAE,IAAI,CAAC,EAAE,IAAIP,CAAC;AAAA,EACxB;AAAA,EACD,IAAIA,GAAGzQ,GAAG;AACR,UAAM2Q,IAAIK,EAAE,IAAI,GAAGvQ,IAAIqQ,GAAEH,CAAC;AAC1B,YAAQ,CAAClQ,EAAE,IAAIgQ,CAAC,KAAK,CAACiB,GAAEjR,EAAE,IAAIgQ,CAAC,GAAGzQ,CAAC,OAAOG,EAAEwQ,CAAC,GAAGsB,GAAEtB,CAAC,GAAGA,EAAE,YAAY,IAAIF,GAAG,EAAE,GAAGE,EAAE,KAAK,IAAIF,GAAGzQ,CAAC,GAAGwS,GAAG7B,GAAGF,GAAGzQ,GAAG6S,EAAC,IAAI;AAAA,EACpH;AAAA,EACD,OAAOpC,GAAG;AACR,QAAI,CAAC,KAAK,IAAIA,CAAC;AACb,aAAO;AACT,UAAMzQ,IAAIgR,EAAE,IAAI;AAChB,WAAO7Q,EAAEH,CAAC,GAAGiS,GAAEjS,CAAC,GAAGA,EAAE,SAAS,IAAIyQ,CAAC,IAAIzQ,EAAE,YAAY,IAAIyQ,GAAG,EAAE,IAAIzQ,EAAE,YAAY,OAAOyQ,CAAC,GAAGzQ,EAAE,KAAK,OAAOyQ,CAAC,GAAG;AAAA,EAC9G;AAAA,EACD,QAAQ;AACN,UAAMA,IAAIO,EAAE,IAAI;AAChB,QAAI,KAAK,MAAM;AACb7Q,MAAAA,EAAEsQ,CAAC,GAAGwB,GAAExB,CAAC,GAAGA,EAAE,cAA8B,oBAAI;AAChD,iBAAW,CAACzQ,CAAC,KAAKyQ,EAAE;AAClB,QAAAA,EAAE,YAAY,IAAIzQ,GAAG,EAAE;AACzB,MAAAyQ,EAAE,KAAK;IACR;AAAA,EACF;AAAA,EACD,QAAQA,GAAGzQ,GAAG;AACZ,UAAM2Q,IAAIK,EAAE,IAAI;AAChB,IAAAF,GAAEH,CAAC,EAAE,QAAQ,CAAClQ,GAAG4Q,MAAM;AACrB,MAAAZ,EAAE,KAAKzQ,GAAG,KAAK,IAAIqR,CAAC,GAAGA,GAAG,IAAI;AAAA,IACpC,CAAK;AAAA,EACF;AAAA,EACD,IAAIZ,GAAG;AACL,QAAIzQ,GAAG2Q;AACP,UAAMlQ,IAAIuQ,EAAE,IAAI,GAAGK,IAAIP,GAAErQ,CAAC,EAAE,IAAIgQ,CAAC,GAAGvQ,MAAMyQ,KAAK3Q,IAAIS,EAAE,SAAS,UAAU,QAAQkQ,MAAM,SAAS,SAASA,EAAE,KAAK3Q,GAAGqR,GAAGtR,EAAC,OAAOA,GAAE;AAC/H,QAAIU,EAAE,QAAQ,UAAUsS,GAAE1B,GAAG5Q,EAAE,SAASP,CAAC,GAAGA,KAAKO,EAAE,aAAa,CAACyQ,GAAEG,GAAG5Q,EAAE,OAAO,KAAK4Q,MAAM5Q,EAAE,SAAS,IAAIgQ,CAAC;AACxG,aAAOY;AACT,UAAM,IAAId,GAAG,YAAY;AAAA,MACvB,UAAUc;AAAA,MACV,aAAa5Q;AAAA,MACb,KAAKgQ;AAAA,MACL,YAAYhQ,EAAE;AAAA,MACd,SAASA,EAAE;AAAA,IACjB,CAAK;AACD,WAAON,EAAEM,CAAC,GAAGA,EAAE,KAAK,IAAIgQ,GAAG,CAAC,GAAG;AAAA,EAChC;AAAA,EACD,OAAO;AACL,WAAOK,GAAEE,EAAE,IAAI,CAAC,EAAE,KAAI;AAAA,EACvB;AAAA,EACD,SAAS;AACP,UAAMP,IAAI,KAAK;AACf,WAAO;AAAA,MACL,CAACH,EAAC,GAAG,MAAM,KAAK,OAAQ;AAAA,MACxB,MAAM,MAAM;AACV,cAAMtQ,IAAIyQ,EAAE;AACZ,eAAOzQ,EAAE,OAAOA,IAAI;AAAA,UAClB,MAAM;AAAA,UACN,OAAO,KAAK,IAAIA,EAAE,KAAK;AAAA,QACjC;AAAA,MACO;AAAA,IACP;AAAA,EACG;AAAA,EACD,UAAU;AACR,UAAMyQ,IAAI,KAAK;AACf,WAAO;AAAA,MACL,CAACH,EAAC,GAAG,MAAM,KAAK,QAAS;AAAA,MACzB,MAAM,MAAM;AACV,cAAMtQ,IAAIyQ,EAAE;AACZ,YAAIzQ,EAAE;AACJ,iBAAOA;AACT,cAAM2Q,IAAI,KAAK,IAAI3Q,EAAE,KAAK;AAC1B,eAAO;AAAA,UACL,MAAM;AAAA,UACN,OAAO,CAACA,EAAE,OAAO2Q,CAAC;AAAA,QAC5B;AAAA,MACO;AAAA,IACP;AAAA,EACG;AAAA,EACD,CAACL,EAAC,IAAI;AACJ,WAAO,KAAK;EACb;AACH,GAAG2C,KAAK,QAAQ,QAAQD,EAAE,GAAGE,KAAK,CAACzC,GAAGzQ,GAAG,EAAE,kBAAkB2Q,EAAG,MAAK,MAAM;AACzE,MAAIlQ,GAAG4Q;AACP,QAAMnR,IAAIF,EAAE;AACZ,MAAIE,EAAE;AACJ,WAAOA;AACT,QAAM,IAAIA,EAAE;AACZ,MAAIkS,IAAI3B,EAAE,OAAO,IAAI,CAAC;AACtB,QAAM5Q,IAAImR,EAAEoB,CAAC,GAAGC,MAAMhB,KAAK5Q,IAAIgQ,EAAE,SAAS,UAAU,QAAQY,MAAM,SAAS,SAASA,EAAE,KAAK5Q,GAAG2R,GAAGrS,EAAC,OAAOA,GAAE;AAC3G,MAAI0Q,EAAE,QAAQ,UAAUsC,GAAE,GAAGtC,EAAE,SAAS4B,CAAC,GAAG,CAACA,KAAK,CAACxS,KAAKqR,GAAE,GAAGT,EAAE,OAAO,KAAK,CAACA,EAAE,aAAaA,EAAE,SAAS,IAAI,CAAC,GAAG;AAC5G,UAAM,IAAIF,GAAG,YAAY;AAAA,MACvB,UAAU;AAAA,MACV,aAAaE;AAAA,MACb,KAAK;AAAA,MACL,YAAYA,EAAE;AAAA,MACd,SAASA,EAAE;AAAA,IACjB,CAAK;AACD,IAAAA,EAAE,OAAO,IAAI,GAAG,CAAC,GAAG2B,IAAI;AAAA,EACzB;AAAM,IAAAvS,MAAMuS,IAAIvS,EAAE;AACnB,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO8Q,IAAIyB,IAAI,CAACA,GAAGA,CAAC;AAAA,EACxB;AACA,GAAGe,KAAI;AAAA,EACL,IAAI,OAAO;AACT,WAAOnC,EAAE,IAAI,EAAE,OAAO;AAAA,EACvB;AAAA,EACD,IAAIP,GAAG;AACL,UAAMzQ,IAAIgR,EAAE,IAAI;AAChB,QAAIhR,EAAE,OAAO,IAAIyQ,CAAC;AAChB,aAAO;AACTtQ,IAAAA,EAAEH,CAAC;AACH,UAAM2Q,IAAIK,EAAEP,CAAC;AACb,WAAO,CAAC,EAAEE,KAAK3Q,EAAE,OAAO,IAAI2Q,EAAE,QAAQ;AAAA,EACvC;AAAA,EACD,IAAIF,GAAG;AACL,UAAMzQ,IAAIgR,EAAE,IAAI;AAChB,WAAO,KAAK,IAAIP,CAAC,MAAMtQ,EAAEH,CAAC,GAAGiS,GAAEjS,CAAC,GAAGA,EAAE,YAAY,IAAIyQ,GAAG,EAAE,GAAGzQ,EAAE,OAAO,IAAIyQ,GAAGA,CAAC,GAAG+B,GAAGxS,GAAGyQ,GAAGA,GAAGoC,EAAC,IAAI;AAAA,EACnG;AAAA,EACD,OAAOpC,GAAG;AACR,QAAI,CAAC,KAAK,IAAIA,CAAC;AACb,aAAO;AACT,UAAMzQ,IAAIgR,EAAE,IAAI;AAChB7Q,IAAAA,EAAEH,CAAC,GAAGiS,GAAEjS,CAAC;AACT,UAAM2Q,IAAIK,EAAEP,CAAC;AACb,WAAOE,KAAK3Q,EAAE,OAAO,IAAI2Q,EAAE,QAAQ,KAAK3Q,EAAE,YAAY,IAAI2Q,EAAE,UAAU,EAAE,GAAG3Q,EAAE,OAAO,OAAO2Q,EAAE,QAAQ,MAAM,CAACA,KAAK3Q,EAAE,OAAO,IAAIyQ,CAAC,IAAIzQ,EAAE,YAAY,IAAIyQ,GAAG,EAAE,IAAIzQ,EAAE,YAAY,OAAOyQ,CAAC,GAAGzQ,EAAE,OAAO,OAAOyQ,CAAC;AAAA,EACzM;AAAA,EACD,QAAQ;AACN,QAAI,CAAC,KAAK;AACR;AACF,UAAMA,IAAIO,EAAE,IAAI;AAChB7Q,IAAAA,EAAEsQ,CAAC,GAAGwB,GAAExB,CAAC;AACT,eAAWzQ,KAAKyQ,EAAE;AAChB,MAAAA,EAAE,YAAY,IAAIzQ,GAAG,EAAE;AACzB,IAAAyQ,EAAE,OAAO;EACV;AAAA,EACD,SAAS;AACP,UAAMA,IAAIO,EAAE,IAAI;AAChB7Q,IAAAA,EAAEsQ,CAAC;AACH,UAAMzQ,IAAIyQ,EAAE,OAAO,KAAI;AACvB,WAAO;AAAA,MACL,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,OAAQ;AAAA,MACtC,MAAMyC,GAAGzC,GAAGzQ,GAAG,EAAE,kBAAkB,IAAI;AAAA,IAC7C;AAAA,EACG;AAAA,EACD,UAAU;AACR,UAAMyQ,IAAIO,EAAE,IAAI;AAChB7Q,IAAAA,EAAEsQ,CAAC;AACH,UAAMzQ,IAAIyQ,EAAE,OAAO,KAAI;AACvB,WAAO;AAAA,MACL,CAAC,OAAO,QAAQ,GAAG,MAAM,KAAK,QAAS;AAAA,MACvC,MAAMyC,GAAGzC,GAAGzQ,GAAG;AAAA,QACb,kBAAkB;AAAA,MAC1B,CAAO;AAAA,IACP;AAAA,EACG;AAAA,EACD,OAAO;AACL,WAAO,KAAK;EACb;AAAA,EACD,CAACsQ,EAAC,IAAI;AACJ,WAAO,KAAK;EACb;AAAA,EACD,QAAQG,GAAGzQ,GAAG;AACZ,UAAM2Q,IAAI,KAAK;AACf,QAAIlQ,IAAIkQ,EAAE;AACV,WAAO,CAAClQ,EAAE;AACR,MAAAgQ,EAAE,KAAKzQ,GAAGS,EAAE,OAAOA,EAAE,OAAO,IAAI,GAAGA,IAAIkQ,EAAE,KAAI;AAAA,EAChD;AACH;AACA,IAAI,UAAU,cAAc,OAAO,OAAOwC,IAAG;AAAA,EAC3C,aAAa1C,GAAG;AACd,WAAO,IAAI,UAAU,aAAa,KAAK,IAAI,IAAI,KAAK,OAAM,CAAE,GAAGA,CAAC;AAAA,EACjE;AAAA,EACD,MAAMA,GAAG;AACP,WAAO,IAAI,UAAU,MAAM,KAAK,IAAI,IAAI,KAAK,OAAM,CAAE,GAAGA,CAAC;AAAA,EAC1D;AAAA,EACD,WAAWA,GAAG;AACZ,WAAO,IAAI,UAAU,WAAW,KAAK,IAAI,IAAI,KAAK,OAAM,CAAE,GAAGA,CAAC;AAAA,EAC/D;AAAA,EACD,oBAAoBA,GAAG;AACrB,WAAO,IAAI,UAAU,oBAAoB,KAAK,IAAI,IAAI,KAAK,OAAM,CAAE,GAAGA,CAAC;AAAA,EACxE;AAAA,EACD,WAAWA,GAAG;AACZ,WAAO,IAAI,UAAU,WAAW,KAAK,IAAI,IAAI,KAAK,OAAM,CAAE,GAAGA,CAAC;AAAA,EAC/D;AAAA,EACD,aAAaA,GAAG;AACd,WAAO,IAAI,UAAU,aAAa,KAAK,IAAI,IAAI,KAAK,OAAM,CAAE,GAAGA,CAAC;AAAA,EACjE;AAAA,EACD,eAAeA,GAAG;AAChB,WAAO,IAAI,UAAU,eAAe,KAAK,IAAI,IAAI,KAAK,OAAM,CAAE,GAAGA,CAAC;AAAA,EACnE;AACH,CAAC;AACD,MAAM2C,KAAK,QAAQ,QAAQD,EAAC,GAAGE,KAAK;AAAA,EAClC,IAAI5C,GAAGzQ,GAAG2Q,GAAG;AACX,QAAIlQ,GAAG4Q;AACP,UAAMnR,KAAKO,IAAIgQ,EAAE,UAAU,QAAQhQ,MAAM,SAAS,SAASA,EAAET,CAAC;AAC9D,QAAIE,KAAKuQ,EAAE,WAAW,YAAY,IAAIvQ,CAAC;AACrC,aAAOA;AACT,QAAIF,MAAMqQ;AACR,aAAOI;AACT,QAAI;AACJ,QAAIA,EAAE,QAAQ,MAAM;AAClB,YAAM4B,IAAIrS,MAAM,WAAWyQ,EAAE,oBAAoB,OAAOA,EAAE,oBAAoB,OAAO,QAAQ,IAAIA,EAAE,UAAUzQ,CAAC,IAAI,QAAQ,IAAIyQ,EAAE,UAAUzQ,GAAG2Q,CAAC;AAC9I,UAAI,IAAIF,EAAE,QAAQ,KAAK4B,GAAGtS,EAAC,GAAG,MAAMA,GAAE;AACpC,eAAO0Q,EAAE,QAAQ,UAAUsC,GAAEV,GAAG5B,EAAE,SAAS,EAAE,GAAG4B;AAAA,IACnD;AACD,UAAMD,IAAItB,GAAEL,CAAC;AACb,QAAI2B,aAAa,OAAOa,GAAG,SAASjT,CAAC;AACnC,aAAOA,MAAM,SAAS,OAAO,yBAAyBgT,IAAI,MAAM,EAAE,IAAI,KAAKvC,EAAE,KAAK,IAAIuC,GAAGhT,CAAC,EAAE,KAAKyQ,EAAE,KAAK;AAC1G,QAAI2B,aAAa,OAAOgB,GAAG,SAASpT,CAAC;AACnC,aAAOA,MAAM,SAAS,OAAO,yBAAyBmT,IAAG,MAAM,EAAE,IAAI,KAAK1C,EAAE,KAAK,IAAI0C,GAAEnT,CAAC,EAAE,KAAKyQ,EAAE,KAAK;AACxG,QAAI,CAACD,GAAE4B,GAAGpS,CAAC,GAAG;AACZ,YAAMqS,IAAI3B,GAAG0B,GAAGpS,CAAC;AACjB,aAAOqS,IAAI,WAAWA,IAAIA,EAAE;AAAA;AAAA,SAEzBhB,IAAIgB,EAAE,SAAS,QAAQhB,MAAM,SAAS,SAASA,EAAE,KAAKZ,EAAE,KAAK;AAAA,UAC5D;AAAA,IACL;AACD,UAAM5Q,IAAIuS,EAAEpS,CAAC;AACb,QAAIyQ,EAAE,QAAQ,UAAUsC,GAAElT,GAAG4Q,EAAE,OAAO,GAAGA,EAAE,aAAa,CAACS,GAAErR,GAAG4Q,EAAE,OAAO;AACrE,aAAO5Q;AACT,QAAIA,MAAM4R,GAAEhB,EAAE,UAAUzQ,CAAC,GAAG;AAC1B,UAAIG,EAAEsQ,CAAC,GAAGA,EAAE,KAAKzQ,CAAC,IAAIsT,GAAG;AAAA,QACvB,UAAU7C,EAAE,SAASzQ,CAAC;AAAA,QACtB,aAAayQ;AAAA,QACb,KAAKA,EAAE,SAAS,IAAI,OAAOzQ,CAAC,IAAIA;AAAA,QAChC,YAAYyQ,EAAE;AAAA,QACd,SAASA,EAAE;AAAA,MACnB,CAAO,GAAG,OAAO,KAAK,YAAY;AAC1B,cAAM4B,IAAIrB,EAAEP,EAAE,KAAKzQ,CAAC,CAAC;AACrB,eAAOG,EAAEkS,CAAC,GAAGJ,GAAEI,CAAC,GAAGA,EAAE;AAAA,MACtB;AACD,aAAO5B,EAAE,KAAKzQ,CAAC;AAAA,IAChB;AACD,WAAO+Q,GAAElR,CAAC,KAAK4Q,EAAE,WAAW,YAAY,IAAI5Q,CAAC,GAAGA;AAAA,EACjD;AAAA,EACD,IAAI4Q,GAAGzQ,GAAG2Q,GAAG;AACX,QAAIlQ;AACJ,QAAIgQ,EAAE,SAAS,KAAKA,EAAE,SAAS;AAC7B,YAAM,IAAI,MAAM,yDAAyD;AAC3E,QAAIY;AACJ,QAAIZ,EAAE,SAAS,KAAKzQ,MAAM,YAAY,EAAE,OAAO,UAAUqR,IAAI,OAAOrR,CAAC,CAAC,KAAKqR,KAAK,MAAMrR,MAAM,KAAKqR,MAAM,KAAK,OAAOA,CAAC,MAAM,OAAOrR,CAAC;AAChI,YAAM,IAAI,MAAM,gEAAgE;AAClF,UAAME,IAAIwQ,GAAGI,GAAEL,CAAC,GAAGzQ,CAAC;AACpB,QAAIE,KAAK,QAAQA,EAAE;AACjB,aAAOA,EAAE,IAAI,KAAKuQ,EAAE,OAAOE,CAAC,GAAG;AACjC,UAAM,IAAIc,GAAEX,GAAEL,CAAC,GAAGzQ,CAAC,GAAGoS,IAAIpB,EAAE,CAAC;AAC7B,WAAOoB,KAAKV,GAAEU,EAAE,UAAUzB,CAAC,KAAKF,EAAE,KAAKzQ,CAAC,IAAI2Q,GAAGF,EAAE,eAAehQ,IAAIgQ,EAAE,iBAAiB,QAAQhQ,MAAM,SAASA,IAAoB,oBAAI,IAAK,GAAEgQ,EAAE,YAAY,IAAIzQ,GAAG,EAAE,GAAG,OAAO0R,GAAEf,GAAG,CAAC,MAAMA,MAAM,UAAUH,GAAEC,EAAE,UAAUzQ,CAAC,OAAOG,EAAEsQ,CAAC,GAAGwB,GAAExB,CAAC,GAAGD,GAAEC,EAAE,UAAUzQ,CAAC,KAAK0R,GAAEf,GAAGF,EAAE,SAASzQ,CAAC,CAAC,IAAIyQ,EAAE,YAAY,OAAOzQ,CAAC,IAAIyQ,EAAE,YAAY,IAAIzQ,GAAG,EAAE,GAAGyQ,EAAE,KAAKzQ,CAAC,IAAI2Q,GAAG6B,GAAG/B,GAAGzQ,GAAG2Q,GAAGkC,EAAC,IAAI;AAAA,EAC3W;AAAA,EACD,IAAIpC,GAAGzQ,GAAG;AACR,WAAOA,KAAK8Q,GAAEL,CAAC;AAAA,EAChB;AAAA,EACD,QAAQA,GAAG;AACT,WAAO,QAAQ,QAAQK,GAAEL,CAAC,CAAC;AAAA,EAC5B;AAAA,EACD,yBAAyBA,GAAGzQ,GAAG;AAC7B,UAAM2Q,IAAIG,GAAEL,CAAC,GAAGhQ,IAAI,QAAQ,yBAAyBkQ,GAAG3Q,CAAC;AACzD,WAAOS,KAAK;AAAA,MACV,UAAU;AAAA,MACV,cAAcgQ,EAAE,SAAS,KAAKzQ,MAAM;AAAA,MACpC,YAAYS,EAAE;AAAA,MACd,OAAOkQ,EAAE3Q,CAAC;AAAA,IAChB;AAAA,EACG;AAAA,EACD,eAAeyQ,GAAG;AAChB,WAAO,QAAQ,eAAeA,EAAE,QAAQ;AAAA,EACzC;AAAA,EACD,iBAAiB;AACf,UAAM,IAAI,MAAM,0CAA0C;AAAA,EAC3D;AAAA,EACD,iBAAiB;AACf,UAAM,IAAI,MAAM,0CAA0C;AAAA,EAC3D;AAAA,EACD,eAAeA,GAAGzQ,GAAG;AACnB,QAAI2Q;AACJ,WAAOF,EAAE,SAAS,IAAI4C,GAAG,IAAI,KAAK,MAAM5C,GAAGzQ,GAAG,QAAQyQ,EAAE,KAAK,KAAKgB,GAAEhB,EAAE,UAAUzQ,CAAC,MAAM,UAAUA,KAAKyQ,EAAE,YAAYtQ,EAAEsQ,CAAC,GAAGwB,GAAExB,CAAC,GAAGA,EAAE,YAAY,IAAIzQ,GAAG,EAAE,MAAMyQ,EAAE,eAAeE,IAAIF,EAAE,iBAAiB,QAAQE,MAAM,SAASA,IAAoB,oBAAI,IAAK,GAAEF,EAAE,YAAY,OAAOzQ,CAAC,IAAIyQ,EAAE,QAAQ,OAAOA,EAAE,KAAKzQ,CAAC,GAAG;AAAA,EAClT;AACH;AACA,SAASsT,GAAG7C,GAAG;AACb,QAAM,EAAE,UAAUzQ,GAAG,aAAa2Q,GAAG,KAAKlQ,GAAG,YAAY4Q,GAAG,SAASnR,EAAC,IAAKuQ,GAAG,IAAIc,GAAEvR,CAAC,GAAGoS,IAAI;AAAA,IAC1F,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQzB;AAAA,IACR,UAAU3Q;AAAA,IACV,MAAM;AAAA,IACN,OAAO;AAAA,IACP,YAAYqR;AAAA,IACZ,SAASnR;AAAA;AAAA,IAET,QAAQ,MAAM,IAAI,IAAI,IAAIF,EAAE,QAAO,CAAE,IAAI;AAAA,EAC7C;AACE,GAACS,KAAK,SAASgQ,OAAO2B,EAAE,MAAM3R;AAC9B,QAAM,EAAE,OAAOZ,GAAG,QAAQwS,EAAG,IAAG,MAAM,UAAU,MAAM,IAAI,OAAO,OAAO,CAAE,GAAED,CAAC,IAAIA,GAAGiB,EAAE;AACtF,MAAIhC,EAAE,OAAO,KAAKgB,CAAC,GAAGD,EAAE,QAAQvS,GAAG8Q,GAAG;AACpC,UAAM,IAAIA;AACV,MAAE,WAAW,MAAM,KAAK,CAACf,GAAG5K,MAAM;AAChC,UAAI2N,GAAGY;AACP,YAAMxO,IAAIiM,EAAEnR,CAAC;AACb,UAAI2T,IAAI,EAAE,SAAS,IAAI,EAAE,SAAS,EAAE;AACpC,YAAM1E,IAAIsC,GAAEoC,GAAG/S,CAAC,GAAGgT,IAAIzC,EAAElC,CAAC;AAC1B,UAAI2E,GAAG;AACL,YAAI,IAAIA,EAAE;AACV,QAAAA,EAAE,aAAa,IAAIxC,GAAGnC,CAAC,IAAIyD,GAAEkB,CAAC,GAAGvN,GAAEuN,GAAGZ,IAAGjD,GAAG5K,CAAC,GAAG,EAAE,QAAQ,qBAAqB,EAAE,QAAQ,iBAAiB2N,IAAI,EAAE,QAAQ,mBAAmB,QAAQA,MAAM,SAASA,IAAoB,oBAAI,QAAS,GAAE,EAAE,QAAQ,cAAc,IAAI,GAAGc,EAAE,QAAQ,IAAIjC,GAAEgC,GAAG/S,GAAG,CAAC;AAAA,MAC5P;AACD,OAAC8S,IAAIxO,EAAE,eAAe,QAAQwO,MAAM,UAAUA,EAAE,QAAQ,CAAC,MAAM;AAC7D,UAAE3D,GAAG5K,CAAC;AAAA,MACd,CAAO;AAAA,IACP,CAAK;AAAA,EACL,OAAS;AACL,UAAM,IAAIgM,EAAEnR,CAAC;AACb,MAAE,WAAW,MAAM,KAAK,CAAC+P,GAAG5K,MAAM;AAChCuN,MAAAA,GAAE,CAAC,GAAGrM,GAAE,GAAG2M,IAAGjD,GAAG5K,CAAC;AAAA,IACxB,CAAK;AAAA,EACF;AACD,SAAOnF;AACT;AACA0Q,GAAG,cAAc+C;AAgKjB,OAAO,UAAU,YAAY;AACxB,MAACI,KAAK,CAACjD,MAAM,OAAOA,KAAK,YAAYA,EAAE,WAAW,OAAO,GAAGkD,KAAI,CAAClD,MAAM;AAC1E,QAAMzQ,IAAIyQ,EAAE,MAAM,eAAe;AACjC,SAAOzQ,IAAIA,EAAE,CAAC,IAAImQ,GAAE;AACtB,GAAGyD,KAAK,CAACnD,MAAM;AACb,MAAIhQ;AACJ,QAAM,IAAI,CAAE,GAAEkQ,KAAKlQ,IAAIgQ,EAAE,MAAM,sBAAsB,MAAM,OAAO,SAAShQ,EAAE,CAAC;AAC9E,SAAOkQ,KAAKA,EAAE,MAAM,GAAG,EAAE,QAAQ,CAACU,MAAM;AACtC,UAAM,CAACnR,GAAG,CAAC,IAAImR,EAAE,MAAM,GAAG;AAC1B,IAAAnR,KAAK,MAAM,EAAEA,CAAC,IAAI;AAAA,EACnB,CAAA,GAAG;AACN,GAMG2T,KAAK,CAACpD,MAAM;AACb,QAAMzQ,IAAI,IAAI,WAAWyQ,CAAC,GAAGE,IAAI,KAAK,OAAO,aAAa,GAAG3Q,CAAC,CAAC;AAC/D,SAAO,QAAQmQ,GAAE,YAAY,WAAWQ,CAAC;AAC3C,GAAGmD,KAAK,CAACrD,GAAGzQ,MAAM;AAChB,QAAM2Q,IAAIF,EAAE,QAAQhQ,IAAI,IAAI,WAAWkQ,CAAC,GAAGU,IAAI,KAAK,OAAO,aAAa,GAAG5Q,CAAC,CAAC;AAC7E,SAAO,QAAQ0P,GAAE,WAAW,GAAGnQ,CAAC,WAAWqR,CAAC;AAC9C,GAAG0C,KAAI,OAAOtD,GAAGzQ,MAAM;AACrB,MAAIgU,GAAGvD,CAAC,GAAG;AACT,UAAMjQ,IAAIyT,GAAGxD,CAAC;AACd,QAAI,CAACjQ;AACH,YAAM,IAAI,MAAM,sBAAsB;AACxC,UAAM4R,IAAI,MAAM,MAAM5R,GAAG,EAAE,GAAGR,GAAG,UAAU,SAAQ,CAAE;AACrD,QAAI,CAACoS,EAAE;AACL,YAAM,IAAI,MAAM,mBAAmB5R,CAAC,KAAK4R,EAAE,UAAU,EAAE;AACzD,WAAOA,EAAE;EACV;AACD,QAAMzB,IAAIF,EAAE,QAAQ,GAAG;AACvB,MAAIE,MAAM;AACR,UAAM,IAAI,MAAM,yBAAyB;AAC3C,QAAMlQ,IAAIgQ,EAAE,UAAU,GAAGE,CAAC,GAAGU,IAAIZ,EAAE,UAAUE,IAAI,CAAC;AAClD,MAAIlQ,EAAE,SAAS,SAAS,GAAG;AACzB,QAAI,CAAC4Q;AACH,aAAO,IAAI,YAAY,CAAC;AAC1B,UAAM7Q,IAAI,KAAK6Q,CAAC,GAAGe,IAAI,IAAI,WAAW5R,EAAE,MAAM;AAC9C,aAASX,IAAI,GAAGA,IAAIW,EAAE,QAAQX;AAC5B,MAAAuS,EAAEvS,CAAC,IAAIW,EAAE,WAAWX,CAAC;AACvB,WAAOuS,EAAE;AAAA,EACb,OAAS;AACL,UAAM5R,IAAI6Q,IAAI,mBAAmBA,CAAC,IAAI;AACtC,WAAO,IAAI,YAAa,EAAC,OAAO7Q,CAAC,EAAE;AAAA,EACpC;AACH,GAMG0T,KAAK,OAAOzD,GAAGzQ,MAAM;AACtB,QAAMS,IAAImT,GAAGnD,CAAC,EAAE;AAChB,MAAI,CAAChQ;AACH,UAAM,IAAI,MAAM,0CAA0C;AAC5D,QAAM4Q,IAAI,MAAM0C,GAAEtD,GAAGzQ,CAAC,GAAGE,IAAI,WAAWO,CAAC;AACzC,SAAO,IAAIP,EAAEmR,CAAC;AAChB,GAiBG4C,KAAK,CAACxD,MAAMkD,GAAElD,CAAC,MAAMN,GAAE,MAAM,OAAO,mBAAmBM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,GAAGuD,KAAK,CAACvD,MAAMkD,GAAElD,CAAC,MAAMN,GAAE;AAqEnG,IAAIgE,KAAK,oEAAoEC,KAAK,OAAO,aAAa,MAAM,KAAK,IAAI,WAAW,GAAG;AACnI,SAASC,KAAI,GAAGA,KAAIF,GAAG,QAAQE;AAC7B,EAAAD,GAAGD,GAAG,WAAWE,EAAC,CAAC,IAAIA;AACzB,IAAIC;AAAAA,CACH,SAAS7D,GAAG;AACX,EAAAA,EAAE,SAAS,UAAUA,EAAE,MAAM,OAAOA,EAAE,OAAO,QAAQA,EAAE,OAAO,QAAQA,EAAE,MAAM;AAChF,GAAG6D,OAAMA,KAAI,CAAE,EAAC;AAChB,MAAMC,KAAK,OAAO,KAAKD,EAAC,EAAE,OAAO,CAAC7D,MAAM,MAAM,OAAOA,CAAC,CAAC,CAAC;AACxD,IAAI,IAAI8D,EAAE;AACVD,GAAE;AAQF,IAAI,YAAa;ACrhCjB,MAAME,KAAqB,CAAC9R,MAC1BA,aAAiB,eACjBA,aAAiB,QACjB,YAAY,OAAOA,CAAK,GAGpB+R,KAAuB,CAAC/R,MACxB,OAAOA,KAAU,WAAiBA,EAAM,WAAW,OAAO,IAC1D,GAAAA,KAAS,OAAOA,KAAU,aACxBA,EAAM,OAAO,MAAQA,EAAM,MAC3BA,EAAM,QAAQ,YAAYA,EAAM,KAU3BgS,KAAkB,OAC7BC,MAC8B;AACxB,QAAAjO,IAAO,OAAO,KAAKiO,CAAM,GACzBC,IAA4B,CAAA;AAClC,aAAWxR,KAAOsD;AACZ,IAAA8N,GAAmBG,EAAOvR,CAAG,CAAC,KAAGwR,EAAgB,KAAKxR,CAAG;AAE/D,MAAIwR,EAAgB,WAAW;AAAU,WAAAD;AAEnC,QAAAtL,IAA4B,EAAE,GAAGsL;AACvC,aAAWvR,KAAOwR;AAChB,IAAAvL,EAAOjG,CAAG,IAAI,MAAMyR,GAAgCF,EAAOvR,CAAG,CAAC;AAE1D,SAAAiG;AACT,GAOayL,KAAoB,OAC/BH,MAC8B;AACxB,QAAAjO,IAAO,OAAO,KAAKiO,CAAM,GACzBI,IAA8B,CAAA;AACpC,aAAW3R,KAAOsD;AACZ,IAAA+N,GAAqBE,EAAOvR,CAAG,CAAC,KAAG2R,EAAkB,KAAK3R,CAAG;AAEnE,MAAI2R,EAAkB,WAAW;AAAU,WAAAJ;AAErC,QAAAtL,IAA4B,EAAE,GAAGsL;AACvC,aAAWvR,KAAO2R;AAChB,IAAA1L,EAAOjG,CAAG,IAAI,MAAM4R,GAAkCL,EAAOvR,CAAG,CAAC;AAE5D,SAAAiG;AACT,GAwBM4L,yBAAqC,IAAI;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAA,GAMYJ,KAAkC,OAC7CnS,MACuB;AACvB,MACEA,aAAiB,aACjBA,aAAiB,cACjBA,aAAiB,qBACjBA,aAAiB,cACjBA,aAAiB,eACjBA,aAAiB,cACjBA,aAAiB,eACjBA,aAAiB,gBACjBA,aAAiB;AAEjB,WAAOwS,GAAoBxS,GAAOA,EAAM,YAAY,IAAsB;AAC5E,MAAWA,aAAiB,MAAM;AAC1B,UAAAyS,IAAc,MAAMzS,EAAM,eAC1BwN,IAAQ,IAAI,WAAWiF,CAAW,GAClC1F,IAAS,KAAK,OAAO,aAAa,GAAGS,CAAK,CAAC,GAC3CkF,IAAW1S,EAAM,QAAQ,4BACzBkE,IAAO,mBAAmBlE,EAAM,IAAI;AACnC,WAAA,QAAQ0S,CAAQ,mBAAmBxO,CAAI,iBAAiBlE,EAAM,YAAY,WAAW+M,CAAM;AAAA,EAAA,WACzF/M,aAAiB,MAAM;AAC1B,UAAAyS,IAAc,MAAMzS,EAAM,eAC1BwN,IAAQ,IAAI,WAAWiF,CAAW,GAClC1F,IAAS,KAAK,OAAO,aAAa,GAAGS,CAAK,CAAC;AAE1C,WAAA,QADUxN,EAAM,QAAQ,0BACR,qBAAqB+M,CAAM;AAAA,EAAA,WACzC/M,aAAiB;AAC1B,WAAO2S,GAAgB3S,CAAK;AAEvB,SAAAA;AACT,GASasS,KAAoC,OAC/CtS,MAGI4S,GAAU5S,CAAK,IACV6S,GAAmB7S,CAAK,IAG7B,CAACA,KAAS,OAAOA,KAAU,WACtBA,IAILA,EAAM,OAAO,MAAQA,EAAM,KACtB8S,GAA0B9S,CAAK,IAIpCA,EAAM,QAAQ,YAAYA,EAAM,IAC3B+S,GAAqB/S,CAAK,IAI5BA,GAOIgT,KAAmC,OAC9ChT,MAC6B;AACvB,QAAAiT,IAAe,MAAMX,GAAkCtS,CAAK;AAClE,MAAIiT,aAAwB;AACnB,WAAAA;AAET,MAAIA,aAAwB;AACnB,WAAA,IAAI,KAAK,CAACA,CAAY,GAAG,QAAQ,EAAE,MAAMA,EAAa,KAAA,CAAM;AAErE,MAAIA,aAAwB;AAC1B,WAAO,IAAI,KAAK,CAACA,CAAY,GAAG,QAAQ;AAAA,MACtC,MAAM;AAAA,IAAA,CACP;AAEC,MAAA,YAAY,OAAOA,CAAY;AACjC,WAAO,IAAI,KAAK,CAACA,CAAY,GAAG,QAAQ;AAAA,MACtC,MAAM;AAAA,IAAA,CACP;AAGL,GAEaC,KAAc,OACzBlT,GACAmT,GACA3R,MACiB;AAOjB,MANQxB,IAAA,MAAMsS,GAAkCtS,CAAK,GACrDwB,IAAUA,KAAW,IAChBA,EAAQ,SACXA,EAAQ,OAAO,6BAGbxB,aAAiB;AACnB,WAAO,IAAI,KAAK,CAACA,CAAK,GAAGmT,GAAU3R,CAAO;AAExC,MAAAxB,aAAiB,QAAQA,aAAiB,MAAM;AAC5C,UAAAoT,IAAS,MAAMpT,EAAM;AAC3B,WAAIA,aAAiB,SACnBwB,EAAQ,OAAOxB,EAAM,OAEhB,IAAI,KAAK,CAACoT,CAAM,GAAGD,GAAU3R,CAAO;AAAA,EAC7C;AACI,MAAA,YAAY,OAAOxB,CAAK;AAC1B,WAAO,IAAI,KAAK,CAACA,EAAM,MAAM,GAAGmT,GAAU3R,CAAO;AAE/C,MAAA,OAAOxB,KAAU,UAAU;AACvBqT,UAAAA,IAAO,IAAI,KAAK,CAACrT,CAAK,GAAG,EAAE,MAAM,aAAA,CAAc;AACrD,WAAAwB,EAAQ,OAAO,cACR,IAAI,KAAK,CAAC6R,CAAI,GAAGF,GAAU3R,CAAO;AAAA,EAC3C;AACI,MAAA,OAAOxB,KAAU,UAAU;AACvBqT,UAAAA,IAAO,IAAI,KAAK,CAAC,KAAK,UAAUrT,CAAK,CAAC,GAAG;AAAA,MAC7C,MAAM;AAAA,IAAA,CACP;AACD,WAAAwB,EAAQ,OAAO,oBACR,IAAI,KAAK,CAAC6R,CAAI,GAAGF,GAAU3R,CAAO;AAAA,EAC3C;AAEM,QAAA6R,IAAO,IAAI,KAAK,CAACrT,CAAe,GAAG,EAAE,MAAM,aAAA,CAAc;AAC/D,SAAAwB,EAAQ,OAAO,cACR,IAAI,KAAK,CAAC6R,CAAI,GAAGF,GAAU3R,CAAO;AAC3C;AAIA,eAAeqR,GAAmBS,GAAe;AACzC,QAAAC,IAASC,GAAcF,CAAO;AAGpC,MAAIC,EAAO,QAAQhB,GAAkB,IAAIgB,EAAO,IAAI;AAClD,WAAOE,GAAoBH,CAAO;AAIhC,MAAAC,EAAO,SAAS,QAAQ;AAC1B,UAAMrP,IAAOqP,EAAO,OAAO,mBAAmBA,EAAO,IAAI,IAAI,QACvDG,IAAeH,EAAO,eACxB,SAASA,EAAO,cAAc,EAAE,IAChC,QACEb,IAAWiB,GAAYL,CAAO,GAC9BF,IAAS,MAAMQ,GAAgBN,CAAO;AACrC,WAAA,IAAI,KAAK,CAACF,CAAM,GAAGlP,GAAM,EAAE,MAAMwO,GAAU,cAAAgB,EAAA,CAAc;AAAA,EAClE;AAGI,MAAAH,EAAO,SAAS,QAAQ;AACpB,UAAAb,IAAWiB,GAAYL,CAAO,GAC9BF,IAAS,MAAMQ,GAAgBN,CAAO;AACrC,WAAA,IAAI,KAAK,CAACF,CAAM,GAAG,EAAE,MAAMV,GAAU;AAAA,EAC9C;AAGA,SAAOkB,GAAgBN,CAAO;AAChC;AAEA,SAASR,GAA0B9S,GAAwB;AACzD,QAAMuJ,IAAKvJ,EAAM;AACjB,MAAIuJ,MAAO,QAAQ;AACjB,UAAMlM,IAAI2C;AACV,WAAO,IAAI,KAAK,CAAC8M,GAAO9M,EAAM,KAAK,CAAC,GAAG,EAAE,MAAM3C,EAAE,SAAU,CAAA;AAAA,EAAA,WAClDkM,MAAO,QAAQ;AACxB,UAAMlM,IAAI2C;AACH,WAAA,IAAI,KAAK,CAAC8M,GAAO9M,EAAM,KAAK,CAAC,GAAG3C,EAAE,MAAM;AAAA,MAC7C,MAAMA,EAAE;AAAA,MACR,cAAcA,EAAE;AAAA,IAAA,CACjB;AAAA,EAAA,WACQkM,MAAO;AACT,WAAAuD,GAAO9M,EAAM,KAAK;AAGrB,QAAAyS,IAAc3F,GAAO9M,EAAM,KAAK;AAClC,MAAAuS,GAAkB,IAAIhJ,CAAE;AACtB,QAAA;AAEF,aAAO,IAAI,WAAWA,CAAE,EAAEkJ,CAAW;AAAA,YAC3B;AAAA,IAAC;AAER,SAAAzS;AACT;AAEA,SAAS+S,GAAqB/S,GAK7B;AACC,QAAMuJ,IAAKvJ,EAAM;AACjB,MAAIuJ,MAAO;AACT,WAAO,IAAI,KAAK,CAACuD,GAAO9M,EAAM,KAAK,CAAC,GAAG;AAAA,MACrC,MAAMA,EAAM,YAAY;AAAA,IAAA,CACzB;AACH,MAAWuJ,MAAO;AACT,WAAA,IAAI,KAAK,CAACuD,GAAO9M,EAAM,KAAK,CAAC,GAAGA,EAAM,QAAQ,QAAQ;AAAA,MAC3D,MAAMA,EAAM,YAAY;AAAA,MACxB,cAAcA,EAAM,gBAAgB;AAAA,IAAA,CACrC;AACH,MAAWuJ,MAAO;AACT,WAAAuD,GAAO9M,EAAM,KAAK;AAGrB,QAAAyS,IAAc3F,GAAO9M,EAAM,KAAK;AAClC,MAAAuS,GAAkB,IAAIhJ,CAAE;AACtB,QAAA;AAEF,aAAO,IAAI,WAAWA,CAAE,EAAEkJ,CAAW;AAAA,YAC3B;AAAA,IAAC;AAER,SAAAzS;AACT;AC1UY,IAAA6T;AAAA,CAAZ,SAAYA,GAAc;AACxBA,EAAAA,EAAA,SAAA,UACAA,EAAA,UAAA,WACAA,EAAA,QAAA,SAGAA,EAAA,aAAA,cACAA,EAAA,QAAA,SACAA,EAAA,UAAA,WAEAA,EAAA,gBAAA,iBAEAA,EAAA,UAAA;AACF,GAbYA,MAAAA,IAaX,CAAA,EAAA;ACXW,IAAAC;AAAA,CAAZ,SAAYA,GAAuB;AACjCA,EAAAA,EAAA,eAAA,gBACAA,EAAA,gBAAA,iBACAA,EAAA,2BAAA,4BACAA,EAAA,+BAAA,gCAEAA,EAAA,mBAAA;AACF,GAPYA,MAAAA,IAOX,CAAA,EAAA;AAEW,IAAAC;AAAA,CAAZ,SAAYA,GAAwB;AAClCA,EAAAA,EAAA,eAAA,gBACAA,EAAA,aAAA,cACAA,EAAA,4BAAA;AACF,GAJYA,OAAAA,KAIX,CAAA,EAAA;ACkCM,MAAMC,KAAc,QAEdC,KAAkB,QAElBC,KAAmB,QAEnBC,KAAiB,QAEjBC,KAAiB;AAOxB,SAAUC,GAAYpV,GAAsB;AAChD,UAAQ,OAAOA,GAAO;AAAA,IACpB,KAAK;AACI,aAAA;AAAA,IACT,KAAK;AACH,aAAOA,IAAQ,KAAK;AAAA,IACtB,KAAK;AAEH,aADaA,MAAU,QAErB,QAAQ,KAAK,+CAA+C,GACrD,MAEA;AAAA,IAEX;AACS,aAAA;AAAA,EACX;AACF;;;ACnFA,MAAIuB,IAAM,OAAO,UAAU,gBACvB8T,IAAS;AASb,WAASC,IAAS;AAAA,EAAE;AASpB,EAAI,OAAO,WACTA,EAAO,YAAY,uBAAO,OAAO,IAAI,GAMhC,IAAIA,EAAM,EAAG,cAAWD,IAAS;AAYxC,WAASE,EAAGC,GAAIC,GAASC,GAAM;AAC7B,SAAK,KAAKF,GACV,KAAK,UAAUC,GACf,KAAK,OAAOC,KAAQ;AAAA,EACrB;AAaD,WAASC,EAAYC,GAASC,GAAOL,GAAIC,GAASC,GAAM;AACtD,QAAI,OAAOF,KAAO;AAChB,YAAM,IAAI,UAAU,iCAAiC;AAGvD,QAAIM,IAAW,IAAIP,EAAGC,GAAIC,KAAWG,GAASF,CAAI,GAC9CK,IAAMV,IAASA,IAASQ,IAAQA;AAEpC,WAAKD,EAAQ,QAAQG,CAAG,IACdH,EAAQ,QAAQG,CAAG,EAAE,KAC1BH,EAAQ,QAAQG,CAAG,IAAI,CAACH,EAAQ,QAAQG,CAAG,GAAGD,CAAQ,IADxBF,EAAQ,QAAQG,CAAG,EAAE,KAAKD,CAAQ,KAD1CF,EAAQ,QAAQG,CAAG,IAAID,GAAUF,EAAQ,iBAI7DA;AAAA,EACR;AASD,WAASI,EAAWJ,GAASG,GAAK;AAChC,IAAI,EAAEH,EAAQ,iBAAiB,IAAGA,EAAQ,UAAU,IAAIN,MACnD,OAAOM,EAAQ,QAAQG,CAAG;AAAA,EAChC;AASD,WAASE,IAAe;AACtB,SAAK,UAAU,IAAIX,KACnB,KAAK,eAAe;AAAA,EACrB;AASD,EAAAW,EAAa,UAAU,aAAa,WAAsB;AACxD,QAAIC,IAAQ,CAAE,GACVC,GACAlR;AAEJ,QAAI,KAAK,iBAAiB;AAAG,aAAOiR;AAEpC,SAAKjR,KAASkR,IAAS,KAAK;AAC1B,MAAI5U,EAAI,KAAK4U,GAAQlR,CAAI,KAAGiR,EAAM,KAAKb,IAASpQ,EAAK,MAAM,CAAC,IAAIA,CAAI;AAGtE,WAAI,OAAO,wBACFiR,EAAM,OAAO,OAAO,sBAAsBC,CAAM,CAAC,IAGnDD;AAAA,EACT,GASAD,EAAa,UAAU,YAAY,SAAmBJ,GAAO;AAC3D,QAAIE,IAAMV,IAASA,IAASQ,IAAQA,GAChCO,IAAW,KAAK,QAAQL,CAAG;AAE/B,QAAI,CAACK;AAAU,aAAO;AACtB,QAAIA,EAAS;AAAI,aAAO,CAACA,EAAS,EAAE;AAEpC,aAASvX,IAAI,GAAGwX,IAAID,EAAS,QAAQ/E,IAAK,IAAI,MAAMgF,CAAC,GAAGxX,IAAIwX,GAAGxX;AAC7D,MAAAwS,EAAGxS,CAAC,IAAIuX,EAASvX,CAAC,EAAE;AAGtB,WAAOwS;AAAA,EACT,GASA4E,EAAa,UAAU,gBAAgB,SAAuBJ,GAAO;AACnE,QAAIE,IAAMV,IAASA,IAASQ,IAAQA,GAChCS,IAAY,KAAK,QAAQP,CAAG;AAEhC,WAAKO,IACDA,EAAU,KAAW,IAClBA,EAAU,SAFM;AAAA,EAGzB,GASAL,EAAa,UAAU,OAAO,SAAcJ,GAAOU,GAAIC,GAAIC,GAAIC,GAAIC,GAAI;AACrE,QAAIZ,IAAMV,IAASA,IAASQ,IAAQA;AAEpC,QAAI,CAAC,KAAK,QAAQE,CAAG;AAAG,aAAO;AAE/B,QAAIO,IAAY,KAAK,QAAQP,CAAG,GAC5B/H,IAAM,UAAU,QAChBzD,GACA1L;AAEJ,QAAIyX,EAAU,IAAI;AAGhB,cAFIA,EAAU,QAAM,KAAK,eAAeT,GAAOS,EAAU,IAAI,QAAW,EAAI,GAEpEtI,GAAG;AAAA,QACT,KAAK;AAAG,iBAAOsI,EAAU,GAAG,KAAKA,EAAU,OAAO,GAAG;AAAA,QACrD,KAAK;AAAG,iBAAOA,EAAU,GAAG,KAAKA,EAAU,SAASC,CAAE,GAAG;AAAA,QACzD,KAAK;AAAG,iBAAOD,EAAU,GAAG,KAAKA,EAAU,SAASC,GAAIC,CAAE,GAAG;AAAA,QAC7D,KAAK;AAAG,iBAAOF,EAAU,GAAG,KAAKA,EAAU,SAASC,GAAIC,GAAIC,CAAE,GAAG;AAAA,QACjE,KAAK;AAAG,iBAAOH,EAAU,GAAG,KAAKA,EAAU,SAASC,GAAIC,GAAIC,GAAIC,CAAE,GAAG;AAAA,QACrE,KAAK;AAAG,iBAAOJ,EAAU,GAAG,KAAKA,EAAU,SAASC,GAAIC,GAAIC,GAAIC,GAAIC,CAAE,GAAG;AAAA,MAC1E;AAED,WAAK9X,IAAI,GAAG0L,IAAO,IAAI,MAAMyD,IAAK,CAAC,GAAGnP,IAAImP,GAAKnP;AAC7C,QAAA0L,EAAK1L,IAAI,CAAC,IAAI,UAAUA,CAAC;AAG3B,MAAAyX,EAAU,GAAG,MAAMA,EAAU,SAAS/L,CAAI;AAAA,IAC9C,OAAS;AACL,UAAIqM,IAASN,EAAU,QACnBO;AAEJ,WAAKhY,IAAI,GAAGA,IAAI+X,GAAQ/X;AAGtB,gBAFIyX,EAAUzX,CAAC,EAAE,QAAM,KAAK,eAAegX,GAAOS,EAAUzX,CAAC,EAAE,IAAI,QAAW,EAAI,GAE1EmP,GAAG;AAAA,UACT,KAAK;AAAG,YAAAsI,EAAUzX,CAAC,EAAE,GAAG,KAAKyX,EAAUzX,CAAC,EAAE,OAAO;AAAG;AAAA,UACpD,KAAK;AAAG,YAAAyX,EAAUzX,CAAC,EAAE,GAAG,KAAKyX,EAAUzX,CAAC,EAAE,SAAS0X,CAAE;AAAG;AAAA,UACxD,KAAK;AAAG,YAAAD,EAAUzX,CAAC,EAAE,GAAG,KAAKyX,EAAUzX,CAAC,EAAE,SAAS0X,GAAIC,CAAE;AAAG;AAAA,UAC5D,KAAK;AAAG,YAAAF,EAAUzX,CAAC,EAAE,GAAG,KAAKyX,EAAUzX,CAAC,EAAE,SAAS0X,GAAIC,GAAIC,CAAE;AAAG;AAAA,UAChE;AACE,gBAAI,CAAClM;AAAM,mBAAKsM,IAAI,GAAGtM,IAAO,IAAI,MAAMyD,IAAK,CAAC,GAAG6I,IAAI7I,GAAK6I;AACxD,gBAAAtM,EAAKsM,IAAI,CAAC,IAAI,UAAUA,CAAC;AAG3B,YAAAP,EAAUzX,CAAC,EAAE,GAAG,MAAMyX,EAAUzX,CAAC,EAAE,SAAS0L,CAAI;AAAA,QACnD;AAAA,IAEJ;AAED,WAAO;AAAA,EACT,GAWA0L,EAAa,UAAU,KAAK,SAAYJ,GAAOL,GAAIC,GAAS;AAC1D,WAAOE,EAAY,MAAME,GAAOL,GAAIC,GAAS,EAAK;AAAA,EACpD,GAWAQ,EAAa,UAAU,OAAO,SAAcJ,GAAOL,GAAIC,GAAS;AAC9D,WAAOE,EAAY,MAAME,GAAOL,GAAIC,GAAS,EAAI;AAAA,EACnD,GAYAQ,EAAa,UAAU,iBAAiB,SAAwBJ,GAAOL,GAAIC,GAASC,GAAM;AACxF,QAAIK,IAAMV,IAASA,IAASQ,IAAQA;AAEpC,QAAI,CAAC,KAAK,QAAQE,CAAG;AAAG,aAAO;AAC/B,QAAI,CAACP;AACH,aAAAQ,EAAW,MAAMD,CAAG,GACb;AAGT,QAAIO,IAAY,KAAK,QAAQP,CAAG;AAEhC,QAAIO,EAAU;AACZ,MACEA,EAAU,OAAOd,MAChB,CAACE,KAAQY,EAAU,UACnB,CAACb,KAAWa,EAAU,YAAYb,MAEnCO,EAAW,MAAMD,CAAG;AAAA,SAEjB;AACL,eAASlX,IAAI,GAAGsX,IAAS,CAAA,GAAIS,IAASN,EAAU,QAAQzX,IAAI+X,GAAQ/X;AAClE,SACEyX,EAAUzX,CAAC,EAAE,OAAO2W,KACnBE,KAAQ,CAACY,EAAUzX,CAAC,EAAE,QACtB4W,KAAWa,EAAUzX,CAAC,EAAE,YAAY4W,MAErCU,EAAO,KAAKG,EAAUzX,CAAC,CAAC;AAO5B,MAAIsX,EAAO,SAAQ,KAAK,QAAQJ,CAAG,IAAII,EAAO,WAAW,IAAIA,EAAO,CAAC,IAAIA,IACpEH,EAAW,MAAMD,CAAG;AAAA,IAC1B;AAED,WAAO;AAAA,EACT,GASAE,EAAa,UAAU,qBAAqB,SAA4BJ,GAAO;AAC7E,QAAIE;AAEJ,WAAIF,KACFE,IAAMV,IAASA,IAASQ,IAAQA,GAC5B,KAAK,QAAQE,CAAG,KAAGC,EAAW,MAAMD,CAAG,MAE3C,KAAK,UAAU,IAAIT,KACnB,KAAK,eAAe,IAGf;AAAA,EACT,GAKAW,EAAa,UAAU,MAAMA,EAAa,UAAU,gBACpDA,EAAa,UAAU,cAAcA,EAAa,UAAU,IAK5DA,EAAa,WAAWZ,GAKxBY,EAAa,eAAeA,GAM1BzW,EAAA,UAAiByW;;;AC9UnB,SAAS5S,GAAE,GAAG;AACZ,SAAO,KAAK,EAAE,cAAc,OAAO,UAAU,eAAe,KAAK,GAAG,SAAS,IAAI,EAAE,UAAU;AAC/F;AACA,IAAI4K,KAAI,SAAS,GAAG5P,GAAG;AACrB,EAAAA,MAAMA,IAAI,KAAK,OAAOA,KAAK,eAAeA,IAAI,EAAE,KAAKA,EAAC;AACtD,MAAIS,IAAI,OAAOT,EAAE,UAAU,YAAYA,EAAE,SAAS,IAAIyQ,IAAIzQ,EAAE,OAAuB,yBAASH,GAAG;AAC7F,WAAO,SAASK,GAAG;AACjB,aAAO,SAASkS,GAAG4F,GAAG;AACpB,YAAIhH,IAAI,EAAE,KAAKoB,GAAG,OAAOlS,EAAEkS,CAAC,EAAC,GAAI5R,IAAI,EAAE,KAAKwX,GAAG,OAAO9X,EAAE8X,CAAC;AACzD,eAAOnY,EAAEmR,GAAGxQ,CAAC;AAAA,MACrB;AAAA,IACA;AAAA,EACG,EAACR,EAAE,GAAG,GAAGqR,IAAI,CAAA;AACd,SAAO,SAASxR,EAAEK,GAAG;AACnB,QAAIA,KAAKA,EAAE,UAAU,OAAOA,EAAE,UAAU,eAAeA,IAAIA,EAAE,OAAM,IAAKA,MAAM,QAAQ;AACpF,UAAI,OAAOA,KAAK;AAAU,eAAO,SAASA,CAAC,IAAI,KAAKA,IAAI;AACxD,UAAI,OAAOA,KAAK;AAAU,eAAO,KAAK,UAAUA,CAAC;AACjD,UAAIkS,GAAG4F;AACP,UAAI,MAAM,QAAQ9X,CAAC,GAAG;AACpB,aAAK8X,IAAI,KAAK5F,IAAI,GAAGA,IAAIlS,EAAE,QAAQkS;AACjC,UAAAA,MAAM4F,KAAK,MAAMA,KAAKnY,EAAEK,EAAEkS,CAAC,CAAC,KAAK;AACnC,eAAO4F,IAAI;AAAA,MACZ;AACD,UAAI9X,MAAM;AAAM,eAAO;AACvB,UAAImR,EAAE,QAAQnR,CAAC,MAAM,IAAI;AACvB,YAAIO;AAAG,iBAAO,KAAK,UAAU,WAAW;AACxC,cAAM,IAAI,UAAU,uCAAuC;AAAA,MAC5D;AACD,UAAIuQ,IAAIK,EAAE,KAAKnR,CAAC,IAAI,GAAGM,IAAI,OAAO,KAAKN,CAAC,EAAE,KAAKuQ,KAAKA,EAAEvQ,CAAC,CAAC;AACxD,WAAK8X,IAAI,IAAI5F,IAAI,GAAGA,IAAI5R,EAAE,QAAQ4R,KAAK;AACrC,YAAIhC,IAAI5P,EAAE4R,CAAC,GAAGZ,IAAI3R,EAAEK,EAAEkQ,CAAC,CAAC;AACxB,QAAAoB,MAAMwG,MAAMA,KAAK,MAAMA,KAAK,KAAK,UAAU5H,CAAC,IAAI,MAAMoB;AAAA,MACvD;AACD,aAAOH,EAAE,OAAOL,GAAG,CAAC,GAAG,MAAMgH,IAAI;AAAA,IAClC;AAAA,EACF,EAAC,CAAC;AACL;AACK,MAACnF,KAAoB,gBAAA7N,GAAE4K,EAAC,GAAGsB,KAAI,CAAC,MAAMyB,GAAEE,GAAE,CAAC,CAAC,GAAG1S,KAAI,CAAC,MAAM;AAC7D,MAAI,KAAK,EAAE,SAAS;AAClB,QAAI;AACF,aAAO,KAAK,MAAMwR,GAAE,CAAC,CAAC;AAAA,IAC5B,QAAY;AACN,aAAO,KAAK,MAAM,mBAAmB,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAAA,IAClE;AACL,GAAGgB,KAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,GAAGhB,KAAI,CAAC,MAAM;AACpD,MAAI;AACF,WAAO,mBAAmB,KAAK,CAAC,CAAC;AAAA,EACrC,QAAU;AACN,WAAO,mBAAmB,KAAK,mBAAmB,CAAC,CAAC,CAAC;AAAA,EACtD;AACH,GAAGJ,KAAI,CAAC,MAAM;AACZ,QAAMvR,IAAI,aAAa,MAAM,IAAI,IAAI,IAAI,CAAC;AAC1C,SAAOsU,GAAEtU,EAAE,IAAI;AACjB,GAAGsU,KAAI,CAAC,MAAM;AACZ,MAAItU,IAAI;AACR,SAAOA,EAAE,WAAW,GAAG;AACrB,IAAAA,IAAIA,EAAE,UAAU,CAAC;AACnB,QAAMS,IAAIT,EAAE,QAAQ,GAAG;AACvB,MAAIS,MAAM;AACR,WAAO,CAACT,GAAG,CAAA,CAAE;AACf,QAAMyQ,IAAIzQ,EAAE,UAAU,GAAGS,CAAC;AAC1B,EAAAT,IAAIA,EAAE,UAAUS,IAAI,CAAC;AACrB,QAAM4Q,IAAI,CAAA;AACV,SAAOrR,EAAE,MAAM,GAAG,EAAE,OAAO,CAACH,MAAMA,EAAE,SAAS,CAAC,EAAE,IAAI,CAACA,MAAM;AACzD,UAAMK,IAAIL,EAAE,QAAQ,GAAG;AACvB,QAAIK,MAAM;AACR,aAAO,CAACL,GAAG,EAAE;AACf,UAAMuS,IAAIvS,EAAE,UAAU,GAAGK,CAAC,GAAG8X,IAAInY,EAAE,UAAUK,IAAI,CAAC;AAClD,WAAO,CAACkS,GAAG4F,CAAC;AAAA,EACb,CAAA,EAAE,QAAQ,CAAC,CAACnY,GAAGK,CAAC,MAAM;AACrB,IAAAmR,EAAExR,CAAC,IAAIK;AAAA,EACX,CAAG,GAAG,OAAO,KAAKmR,CAAC,EAAE,QAAQ,CAACxR,MAAM;AAChC,IAAAwR,EAAExR,CAAC,IAAIwR,EAAExR,CAAC;AAAA,EACd,CAAG,GAAG,CAAC4Q,GAAGY,CAAC;AACX,GAAGoH,KAAI,CAAC,GAAGzY,MAAM;AACf,QAAM,CAACS,GAAGgQ,CAAC,IAAIc,GAAE,CAAC;AAClB,SAAOd,EAAEzQ,CAAC;AACZ,GAAG+R,KAAI,CAAC,MAAM2G,GAAG,EAAC,CAAC,EAAE,CAAC,GAAGA,KAAI,MAAMnH,GAAE,OAAO,SAAS,IAAI,GAAGzC,KAAI,CAAC,GAAG9O,GAAGS,MAAM;AAC3E,QAAMgQ,IAAI,OAAO,SAAS,KAAK,WAAW,GAAG,IAAI,OAAO,SAAS,KAAK,UAAU,CAAC,IAAI,OAAO,SAAS,MAAMY,IAAIsH,GAAElI,GAAG,GAAGzQ,CAAC;AACxH,EAAAqR,MAAMZ,MAAMhQ,KAAK,QAAQA,EAAE,gBAAgB,OAAO,SAAS,OAAO4Q,KAAK,OAAO,QAAQ,aAAa,MAAM,SAAS,OAAO,GAAG,OAAO,SAAS,QAAQ,GAAG,OAAO,SAAS,MAAM,GAAGA,EAAE,WAAW,GAAG,IAAI,KAAK,GAAG,GAAGA,CAAC,EAAE,GAAG,OAAO,cAAc,IAAI,gBAAgB,YAAY,CAAC;AAC7Q,GAAGsH,KAAI,CAAC,GAAG3Y,GAAGS,MAAM;AAClB,QAAM,CAACgQ,GAAGY,CAAC,IAAIiD,GAAE,CAAC;AAClB,MAAIzU,IAAI;AACR,MAAIwR,EAAE,eAAerR,CAAC,KAAKS,MAAM,QAAQA,MAAM,UAAU,OAAO4Q,EAAErR,CAAC,GAAGH,IAAI,MAAMwR,EAAErR,CAAC,MAAMS,MAAM4Q,EAAErR,CAAC,IAAIS,GAAGZ,IAAI,KAAK,CAACA;AACjH,WAAO;AACT,QAAMK,IAAI,OAAO,KAAKmR,CAAC;AACvB,EAAAnR,EAAE,KAAI;AACN,QAAMkS,IAAIlS,EAAE,IAAI,CAAC8X,GAAGhH,MAAM;AACxB,UAAMxQ,IAAI6Q,EAAE2G,CAAC;AACb,WAAO,yBAAyB,KAAKxX,CAAC,KAAKA,EAAE,SAAS,GAAG,GAAGwX,CAAC,IAAIxX,CAAC;AAAA,EACtE,CAAG,EAAE,KAAK,GAAG;AACX,SAAO,CAACiQ,KAAK,CAAC2B,IAAI,KAAK,GAAG3B,KAAK,EAAE,GAAG2B,IAAI,MAAMA,IAAI,EAAE;AACtD,GAyCGW,KAAI,CAAC,GAAG/S,MAAM;AACf,QAAMS,IAAIgY,GAAE,GAAGzY,CAAC;AAChB,MAAIS,KAAKA,MAAM;AACb,WAAON,GAAEM,CAAC;AACd,GAIGyF,KAAI,CAAC,GAAGlG,GAAGS,MAAM;AAClB,QAAMgQ,IAAIzQ,IAAIkR,GAAElR,CAAC,IAAI;AACrB,EAAA8O,GAAE,GAAG2B,GAAGhQ,CAAC;AACX,GAAGiR,KAAI,CAAC,MAAMqB,GAAE,OAAO,SAAS,MAAM,CAAC,GAGiBvC,KAAI,CAAC,GAAGxQ,MAAM;AACpE,QAAMS,IAAIgY,GAAE,GAAGzY,CAAC;AAChB,SAAOS,IAAI,WAAWA,CAAC,IAAI;AAC7B,GAAG0S,KAAI,CAAC,GAAGnT,GAAGS,MAAM;AAClB,EAAAqO,GAAE,GAAG9O,KAAK,OAAOA,EAAE,aAAa,QAAQS,CAAC;AAC3C,GAAGwR,KAAI,CAAC,MAAMzB,GAAE,OAAO,SAAS,MAAM,CAAC,GAAgEgI,KAAI,CAAC,GAAGxY,MAAM;AACnH,QAAMS,IAAIgY,GAAE,GAAGzY,CAAC;AAChB,SAAOS,IAAI,SAASA,CAAC,IAAI;AAC3B,GAAG8S,KAAI,CAAC,GAAGvT,GAAGS,MAAM;AAClB,EAAA0S,GAAE,GAAGnT,GAAGS,CAAC;AACX,GAAG8R,KAAI,CAAC,MAAMiG,GAAE,OAAO,SAAS,MAAM,CAAC,GAAkDI,KAAI,CAAC,GAAG5Y,MAAMyY,GAAE,GAAGzY,CAAC,MAAM,QAAQyR,KAAI,CAAC,GAAGzR,GAAGS,MAAM;AAC1I,EAAAqO,GAAE,GAAG9O,IAAI,SAAS,QAAQS,CAAC;AAC7B,GAAG6P,KAAI,CAAC,MAAMsI,GAAE,OAAO,SAAS,MAAM,CAAC,GAAwD7H,KAAI,CAAC,GAAG/Q,MAAM;AAC3G,QAAMS,IAAIgY,GAAE,GAAGzY,CAAC;AAChB,SAAOS,KAAKA,MAAM,KAAKkR,GAAElR,CAAC,IAAI;AAChC,GAAGkT,KAAI,CAAC,GAAG3T,GAAGS,MAAM;AAClB,QAAMgQ,IAAIzQ,KAAK,OAAO,SAAS2S,GAAE3S,CAAC;AAClC,EAAA8O,GAAE,GAAG2B,GAAGhQ,CAAC;AACX,GAAGuR,KAAI,CAAC,MAAMjB,GAAE,OAAO,SAAS,MAAM,CAAC;ACnKvC,IAAA8H,KAAiB,SAAUC,GAAM/J,GAAM;AACnC,EAAKA,MAAMA,IAAO,KACd,OAAOA,KAAS,eAAYA,IAAO,EAAE,KAAKA;AAC9C,MAAIgK,IAAU,OAAOhK,EAAK,UAAW,YAAaA,EAAK,SAAS,IAE5DiK,IAAMjK,EAAK,OAAQ,SAAUsD,GAAG;AAChC,WAAO,SAAU4G,GAAM;AACnB,aAAO,SAAU,GAAG9Y,GAAG;AACnB,YAAI+Y,IAAO,EAAE,KAAK,GAAG,OAAOD,EAAK,CAAC,KAC9BE,IAAO,EAAE,KAAKhZ,GAAG,OAAO8Y,EAAK9Y,CAAC;AAClC,eAAOkS,EAAE6G,GAAMC,CAAI;AAAA,MACnC;AAAA,IACA;AAAA,EACA,EAAOpK,EAAK,GAAG,GAEPqK,IAAO,CAAA;AACX,SAAQ,SAASC,EAAWJ,GAAM;AAK9B,QAJIA,KAAQA,EAAK,UAAU,OAAOA,EAAK,UAAW,eAC9CA,IAAOA,EAAK,WAGZA,MAAS,QACb;AAAA,UAAI,OAAOA,KAAQ;AAAU,eAAO,SAASA,CAAI,IAAI,KAAKA,IAAO;AACjE,UAAI,OAAOA,KAAS;AAAU,eAAO,KAAK,UAAUA,CAAI;AAExD,UAAIzY,GAAG8Y;AACP,UAAI,MAAM,QAAQL,CAAI,GAAG;AAErB,aADAK,IAAM,KACD9Y,IAAI,GAAGA,IAAIyY,EAAK,QAAQzY;AACzB,UAAIA,MAAG8Y,KAAO,MACdA,KAAOD,EAAUJ,EAAKzY,CAAC,CAAC,KAAK;AAEjC,eAAO8Y,IAAM;AAAA,MAChB;AAED,UAAIL,MAAS;AAAM,eAAO;AAE1B,UAAIG,EAAK,QAAQH,CAAI,MAAM,IAAI;AAC3B,YAAIF;AAAQ,iBAAO,KAAK,UAAU,WAAW;AAC7C,cAAM,IAAI,UAAU,uCAAuC;AAAA,MAC9D;AAED,UAAIQ,IAAYH,EAAK,KAAKH,CAAI,IAAI,GAC9BvS,IAAO,OAAO,KAAKuS,CAAI,EAAE,KAAKD,KAAOA,EAAIC,CAAI,CAAC;AAElD,WADAK,IAAM,IACD9Y,IAAI,GAAGA,IAAIkG,EAAK,QAAQlG,KAAK;AAC9B,YAAI4C,IAAMsD,EAAKlG,CAAC,GACZkC,IAAQ2W,EAAUJ,EAAK7V,CAAG,CAAC;AAE/B,QAAKV,MACD4W,MAAKA,KAAO,MAChBA,KAAO,KAAK,UAAUlW,CAAG,IAAI,MAAMV;AAAA,MACtC;AACD,aAAA0W,EAAK,OAAOG,GAAW,CAAC,GACjB,MAAMD,IAAM;AAAA;AAAA,EACtB,EAAER,CAAI;AACX;;ACnDY,IAAAU;AAAA,CAAZ,SAAYA,GAAkB;AAC5BA,EAAAA,EAAA,WAAA;AACF,GAFYA,OAAAA,KAEX,CAAA,EAAA;AAEM,MAAMC,KAAW,MAAc;AAEhC,MAAA;AACF,WAAO,WAAW,OAAO;AAAA,UACT;AACT,WAAA;AAAA,EACT;AACF,GAEaC,KAAyD;AAAA,EACpE,SAASxa;AAAA,EACT,YAAY,CAAE;;AAGV,MAAOya,WAAuB/B,GAAAA,aAEnC;AAAA,EAIC,cAAA;aAFA,KAAW,cAAyB8B,IAIlC,KAAK,gBAAgB,KAAK,cAAc,KAAK,IAAI;AAAA,EACnD;AAAA,EAEO,MAAMzM,GAAQ;AACb,UAAA;AAAA,EACR;AAAA,EACO,gBAAa;AAClB,WAAO,KAAK;AAAA,EACd;AACD;AC5BY,MAAA2M,KAAQ,CACnBzP,GACA0P,MAEKA,IAGEhO,EAA0B1B,GAAS,CAAChB,MAA4B;AACrE,SAAO,KAAK0Q,CAAS,EAAE,QAAQ,CAACC,MAAkB;AAG5C,IAAAD,EAAUC,CAAM,MAAM,SACxB,OAAO3Q,EAAM2Q,CAAM,IAEb3Q,EAAA2Q,CAAM,IAAID,EAAUC,CAAM;AAAA,EAClC,CACD;AAAA,CACF,IAZQ3P,GAeE4P,KAAc,CAAC3W,MACrB,OAAO,SAAS,SAGd,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IAAIA,CAAG,IAFjD,MAKE4W,KAAmB,MACvB,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IACjDR,GAAmB,QAAQ,GAIlBS,KAAwB,MAAc;AAC3C,QAAAC,IAAQ,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IACxDV,GAAmB,QAAQ;AAEtB,SAAAU,MAAU,UAAUA,MAAU;AACvC,GAEaC,KAAsB,CAAC5B,IAAiB,MAC5C6B,GAAW7B,CAAM,GAGb8B,KAAqB,CAAC9B,IAAiB,MAC3C6B,GAAW7B,CAAM,GAGb+B,KAAgB,CAAC/B,IAAiB,MACtC6B,GAAW7B,CAAM,GAGpBgC,KAAU,wCACHH,KAAa,CAAC7B,IAAiB,MAAa;AAGvD,WAFIlP,IAAS,IACTmR,IAAmBD,GAAQ,QACtB/Z,IAAI,GAAGA,IAAI+X,GAAQ/X;AAChB,IAAA6I,KAAAkR,GAAQ,OAAO,KAAK,MAAM,KAAK,OAAM,IAAKC,CAAgB,CAAC;AAEhE,SAAAnR;AACT,GAEaoR,KAAM,CAACpJ,GAAQqJ,GAAgBC,MAA4B;AACtE,EAAAD,IAAQA,KAAgB,OACpBA,KAASA,EAAM,KAAM,KAAI,OACnBA,IAAA;AAEN,MAAA;AASJ,MARI,OAAOrJ,KAAM,WACX,IAAAA,IACK,OAAOA,KAAM,WACtB,IAAIA,IAAI,KAER,IAAI,KAAK,UAAUA,GAAG,MAAM,IAAI,GAG9BqJ,KAASA,EAAM,KAAM,KAAI,IAAI;AAC3B,QAAAE,IAAY,WAAWF,CAAK;AAChC,IAAIC,MACUC,IAAA,GAAGA,CAAS,kBAAkBD,CAAe,KAE3D,IAAI,KAAK,CAAC,IACH,OAAA,QAAQ,IAAI,GAAGC,CAAS;AAAA,EAAA;AAExB,WAAA,QAAQ,IAAI,CAAC;AAExB,GAEaC,KAAc,CAACC,MACnBC,GAASC,GAASF,CAAG,CAAC,GAGlBE,KAAW,CAACF,MAAuB;AAE9C,MAAIG,IAAO;AACX,WAASza,IAAI,GAAGA,IAAIsa,EAAI,QAAQta;AAC9B,IAAAya,IAAOH,EAAI,WAAWta,CAAC,MAAMya,KAAQ,KAAKA;AAErC,SAAAA;AACT,GAEaF,KAAW,CAACva,MAAqB;AAC5C,MAAI4R,KAAK5R,IAAI,UAAY,SAAS,EAAE,EAAE;AACtC,SAAO,QAAQ,UAAU,GAAG,IAAI4R,EAAE,MAAM,IAAIA;AAC9C,GAEa8I,KAAe,MAExB,SAAS,cAAc,cAAc,SAAS,cAAc,eAOnDC,KAAa,YACpBD,OACK,QAAQ,YAEV,IAAI,QAAQ,CAAClZ,MAAW;AAC7B,MAAIkZ,MAAgB;;AAElB;AAAA,EACF;AACA,MAAIE,IAAS;AACN,SAAA,iBAAiB,QAAQ,MAAK;AACnC,IAAIA,MAGKA,IAAA;GAEV,GAEa,WAAW,MAAK;AACxB,IAAA,CAACA,KAAUF,SACJE,IAAA;KAGV,GAAG;AAAA,CACP,GAGUC,KAAwB,OAAOC,MAAkC;AACtE,QAAAC,IAAclC,GAAUiC,CAAQ;AAC/B,SAAA,MAAME,GAAeD,CAAW;AACzC,GAEaE,KAAkC,OAC7CH,MACE;AACF,QAAMC,IAAclC,GAAU;AAAA,IAC5B,SAASiC,EAAS;AAAA,IAClB,YAAYA,EAAS;AAAA,EAAA,CACtB;AACM,SAAA,MAAME,GAAeD,CAAW;AACzC;AAEA,eAAeC,GAAeV,GAAW;AAEjC,QAAAhC,IADU,IAAI,cACC,OAAOgC,CAAG,GACzBG,IAAO,MAAM,OAAO,OAAO,OAAO,WAAWnC,CAAI;AAChD,SAAA,KAAK,OAAO,aAAa,GAAG,IAAI,WAAWmC,CAAI,CAAC,CAAC;AAC1D;ACzIY,IAAAS;AAAA,CAAZ,SAAYA,GAAqB;AAC/BA,EAAAA,EAAA,qBAAA,sBACAA,EAAA,+BAAA,gCACAA,EAAA,QAAA;AACF,GAJYA,OAAAA,KAIX,CAAA,EAAA;AAEW,IAAAC;AAAA,CAAZ,SAAYA,GAAe;AACzBA,EAAAA,EAAA,YAAA,aACAA,EAAA,QAAA,SACAA,EAAA,QAAA,SACAA,EAAA,SAAA,UACAA,EAAA,UAAA;AACF,GANYA,MAAAA,IAMX,CAAA,EAAA;AAMK,MAAOC,WAAkBhE,GAAAA,aAE9B;AAAA,EAkCC,YAAY1T,GAA0B;AA8ChC,iBApEN,KAAgB,mBAAsB,IACtC,KAAiB,oBAAsB,IAIvC,KAAA,SAAgCwX,GAAsB,oBACtD,KAAiB,oBAAG,GAEpB,KAAK,QAAYzB,MAMjB,KAA8B,iCAAY,IAM1C,KAAA,KAAa,OAAO,MAIlB,KAAK,QAAQA,MACb,KAAK,YAAYR,MAEjB,KAAK,cAAc,KAAK,YAAY,KAAK,IAAI,GAC7C,KAAK,UAAU,KAAK,QAAQ,KAAK,IAAI,GACrC,KAAK,QAAQ,KAAK,MAAM,KAAK,IAAI,GACjC,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,GACvC,KAAK,YAAY,KAAK,UAAU,KAAK,IAAI,GACzC,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,GAC7B,KAAK,cAAc,KAAK,YAAY,KAAK,IAAI,GAC7C,KAAK,UAAU,KAAK,QAAQ,KAAK,IAAI,GACrC,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,GACvC,KAAK,YAAY,KAAK,UAAU,KAAK,IAAI,GACzC,KAAK,UAAU,KAAK,QAAQ,KAAK,IAAI,GACrC,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,GACvC,KAAK,YAAY,KAAK,UAAU,KAAK,IAAI,GACzC,KAAK,6BACH,KAAK,2BAA2B,KAAK,IAAI,GAC3C,KAAK,YAAY,KAAK,UAAU,KAAK,IAAI,GACzC,KAAK,aAAa,KAAK,WAAW,KAAK,IAAI,GAC3C,KAAK,OAAO,KAAK,KAAK,KAAK,IAAI,GAC/B,KAAK,oCACH,KAAK,kCAAkC,KAAK,IAAI,GAClD,KAAK,4BAA4B,KAAK,0BAA0B,KAAK,IAAI,GACzE,KAAK,YAAY,KAAK,UAAU,KAAK,IAAI,GACzC,KAAK,cAAc,KAAK,YAAY,KAAK,IAAI,GAC7C,KAAK,+BACH,KAAK,6BAA6B,KAAK,IAAI,GAC7C,KAAK,mBAAmB,KAAK,iBAAiB,KAAK,IAAI,GAEvD,KAAK,eAAe,KAAK,aAAa,KAAK,IAAI,GAC/C,KAAK,sBAAsB,KAAK,oBAAoB,KAAK,IAAI,GAC7D,KAAK,mBAAmB,KAAK,iBAAiB,KAAK,IAAI,GACvD,KAAK,qBAAqB,KAAK,mBAAmB,KAAK,IAAI,GAC3D,KAAK,oBAAoB,KAAK,kBAAkB,KAAK,IAAI,GACzD,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,GACrD,KAAK,eAAe,KAAK,aAAa,KAAK,IAAI,GAC/C,KAAK,sBAAsB,KAAK,oBAAoB,KAAK,IAAI,GAC7D,KAAK,mBAAmB,KAAK,iBAAiB,KAAK,IAAI,GACvD,KAAK,qBAAqB,KAAK,mBAAmB,KAAK,IAAI,GAC3D,KAAK,oBAAoB,KAAK,kBAAkB,KAAK,IAAI,GACzD,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,GACrD,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,GAEjD,CAAC,KAAK,WAAW;AAInB,WAAK,IAAI,wCAAwC;AACjD;AAAA,IACF;AAEA,UAAMoC,IAAU;AAGJ,IAAAV,GAAA,EAAC,KAAK,MAAK;AACrB,WAAK,IAAI,YAAY,GACd,OAAA,iBAAiB,WAAW,KAAK,SAAS,GAEzCU,EAAA,QAAQrF,EAAwB,0BAA0B;AAAA,QAChE,SAASoF,GAAU;AAAA,MAAA,CACpB,GACDC,EAAQ,SAASH,GAAsB;AAAA,IAAA,CACxC,GAEKxX,KAAWA,EAAQ,0BAChB,OAAA,iBAAiB,cAAc,KAAK,gBAAgB;AAAA,EAE/D;AAAA,EAEA,kCAAkC+R,GAAqC;AACjE,QAAA,KAAK,WAAWyF,GAAsB;AAClC,YAAA;AAGR,KAAC,YACM,KAAK,YAoER,KAAK,IACH,mEAAmE,KApErE,KAAK,iBAAiBzF,EAAO,SACxB,KAAA,QAAQ4E,GAAY,KAAK,EAAE,GAChC,KAAK,YAAY5E,EAAO,UACnB,KAAA,IACH,YAAY,KAAK,SAAS,MACxB,KAAK,iBAAiB,KAAK,iBAAiB,SAC9C,cAAc,GAGZA,EAAO,SAASA,EAAO,MAAM,WAC3B,KAAK,iCACP,KAAK,mBAAmB,MAAMnB,GAC5BmB,EAAO,MAAM,MAAM,IAGhB,KAAA,mBAAmBA,EAAO,MAAM,SAYzC,KAAK,SAASyF,GAAsB,OAE/B,KAAA,QAAQlF,EAAwB,8BAA8B;AAAA,MACjE,SAASoF,GAAU;AAAA,IAAA,CACpB,GAKC,KAAK,oBACL,OAAO,KAAK,KAAK,gBAAgB,EAAE,SAAS,MAE5C,KAAK,KAAKD,EAAgB,QAAQ,KAAK,gBAAgB,GACnD,KAAK,cAAcA,EAAgB,KAAK,IAAI,KAC9C,OAAO,KAAK,KAAK,gBAAgB,EAAE,QAAQ,CAAC7B,MAC1C,KAAK,KACH6B,EAAgB,OAChB7B,GACA,KAAK,iBAAiBA,CAAM,CAAC,CAC9B,IAaF,KAAA,KAAK6B,EAAgB,SAAS,GAGnC,KAAK,QACHnF,EAAwB,eACxB,KAAK,iBAAiB;AAAA,EAQ9B;AAAA,EAEA,cAAW;AACF,WAAA,KAAK,WAAWkF,GAAsB;AAAA,EAC/C;AAAA,EAEA,MAAM,YAAS;AACb,WAAO,IAAI,QAAQ,CAAC1Z,GAASoP,MAAK;AAC5B,UAAA,KAAK,WAAWsK,GAAsB,OAAO;;AAE/C;AAAA,MACF;AACI,UAAAI;AACJ,MAAAA,IAAW,KAAK,0BACdH,EAAgB,WAChB,MAAK;;OAGJ;AAAA,IAAA,CAEJ;AAAA,EACH;AAAA,EAEA,0BACEnE,GACAC,GAA2B;AAErB,iBAAA,YAAYD,GAAOC,CAAQ,GAChB,MAAK;AACd,YAAA,eAAeD,GAAOC,CAAQ;AAAA,IAAA;AAAA,EAGxC;AAAA,EAEO,IAAIpG,GAAQqJ,GAAgBC,GAAwB;AACrD,IAAC,KAAK,SAGV,KAAK,YAAYtJ,GAAGqJ,KAAgB,KAAK,KAAK;AAAA,EAChD;AAAA,EAEO,KAAKrJ,GAAM;AACZ,IAAC,KAAK,SAGV,KAAK,YAAYA,GAAG,OAAO,KAAK,KAAK;AAAA,EACvC;AAAA,EAEO,MAAMpE,GAAQ;AACnB,SAAK,YAAYA,GAAK,KAAK,OAAO,KAAK;AAAA,EACzC;AAAA,EAEA,YAAYoE,GAAQqJ,GAAgBC,GAAwB;AACtD,QAAA9a;AACA,IAAA,OAAOwR,KAAM,WACXxR,IAAAwR,IACK,OAAOA,KAAM,WACtBxR,IAAIwR,IAAI,KAEJxR,IAAA,KAAK,UAAUwR,CAAC,GAGdqJ,IAAAA,KAAQA,IAAQ,IAEnB7a,KAAA,KAAK,KAAK,aAAa,KAAK,EAAE,OAAO,MAAM,GAAGA,CAAC,IACnCkc,GAAAlc,GAAG6a,GAAOC,CAAe;AAAA,EAC5C;AAAA,EAEO,UAAO;AACZ,UAAM,mBAAkB,GACjB,OAAA,oBAAoB,WAAW,KAAK,SAAS,GACpD,KAAK,6BAA4B,GAEjC,KAAK,mBAAmB,QAExB,KAAK,oBAAoB;AAAA,EAC3B;AAAA,EAEO,YACLnD,GACAC,GAA2B;AAErB,iBAAA,YAAYD,GAAOC,CAAQ,GAK7BD,MAAUmE,EAAgB,UAC5B,OAAO,WAAW,MAAK;AACrB,MAAI,KAAK,oBACPlE,EAAS,KAAK,gBAAgB;AAAA,OAE/B,CAAC,GAEC;AAAA,EACT;AAAA,EAEO,QAAQqC,GAAyBrC,GAAa;AACnD,WAAO,KAAK,0BACVkE,EAAgB,OAChB,CAACK,GAAuBtZ,MAAc;AACpC,MAAIoX,MAAWkC,KACbvE,EAAS/U,CAAK;AAAA,IAChB,CACD;AAAA,EAEL;AAAA,EAEO,SAAS+U,GAAwC;AAK/C,WAJU,KAAK,0BACpBkE,EAAgB,QAChBlE,CAAQ;AAAA,EAGZ;AAAA,EAQO,SAASqC,GAAyB/D,GAAS;AAChD,QAAIpB,IAA4B,CAAA;AAChC,IAAAA,EAAOmF,CAAM,IAAI/D,GACjB,KAAK,UAAUpB,CAAM;AAAA,EACvB;AAAA,EASO,MAAM,UAAUA,GAAyB;AAC9C,IAAI,KAAK,mCACEA,IAAA,MAAMG,GAAkBH,CAAM,IAEpC,KAAA,QAAQ6B,EAAwB,cAAc7B,CAAM;AAAA,EAC3D;AAAA,EAEA,MAAM,2BAA2BA,GAAyB;AAExD,IAAI,KAAK,mCACEA,IAAA,MAAMG,GAAkBH,CAAM;AAGzC,UAAMsH,IAAiBtH;AAEnB,QADJ,KAAK,mBAAmBiF,GAAM,KAAK,kBAAkBjF,CAAM,GACvD,KAAK,qBAAqBsH,GAI9B;AAAA,aAAO,KAAKtH,CAAM,EAAE,QAAQ,CAACmF,MAAU;AACjC,YAAA;AAEF,eAAK,KAAK6B,EAAgB,OAAO7B,GAAQnF,EAAOmF,CAAM,CAAC;AAAA,iBAChD7M,GAAK;AACZ,kBAAQ,MAAM,wBAAwB6M,CAAM,KAAK7M,CAAG,EAAE,GACtD,KAAK,KACH0O,EAAgB,OAChB,wBAAwB7B,CAAM,KAAK7M,CAAG,EAAE;AAAA,QAE5C;AAAA,MAAA,CACD;AACG,UAAA;AACG,aAAA,KAAK0O,EAAgB,QAAQhH,CAAM;AAAA,eACjC1H,GAAK;AACJ,gBAAA,MAAM,0BAA0BA,CAAG,EAAE,GAC7C,KAAK,KAAK0O,EAAgB,OAAO,0BAA0B1O,CAAG,EAAE;AAAA,MAClE;AAAA;AAAA,EACF;AAAA,EAEO,SAAS6M,GAAuB;AAC7B,mBAAA,OAAO,CAAC,CAACA,CAAM,GAChB,KAAK,iBAAiBA,CAAM;AAAA,EACrC;AAAA,EAEO,YAAS;AACd,WAAO,KAAK;AAAA,EACd;AAAA,EAOO,UAAUA,GAAyBoC,GAAe;AAC/C,YAAA,OAAO,CAAC,CAACpC,CAAM;AAEvB,QAAIqC,IAA6B,CAAA;AACjC,IAAAA,EAAQrC,CAAM,IAAIoC,GAElB,KAAK,WAAWC,CAAO;AAAA,EACzB;AAAA,EAEO,MAAM,WAAWA,GAA0B;AAChD,IAAI,KAAK,mCACGA,IAAA,MAAMzH,GAAgByH,CAAO;AAGzC,UAAMC,IAAkBD;AAEpB,IADJ,KAAK,oBAAoBvC,GAAM,KAAK,mBAAmBuC,CAAO,GAC1D,KAAK,sBAAsBC,KAK3B,KAAK,WAAWV,GAAsB,SACnC,KAAA,QAAQlF,EAAwB,eAAe2F,CAAO;AAAA,EAE/D;AAAA,EAOO,+BAA4B;AAC1B,WAAA,oBAAoB,cAAc,KAAK,gBAAgB;AAAA,EAChE;AAAA,EAOA,iBAAiB/K,GAAM;AACrB,UAAMiL,IAAsC;AAAA,MAC1C,MAAM,OAAO,SAAS;AAAA,MACtB,WAAW,KAAK;AAAA,IAAA;AAEb,SAAA,QAAQ7F,EAAwB,kBAAkB6F,CAAO;AAAA,EAChE;AAAA,EAEA,QAAQC,GAAiCrG,GAAW;AAClD,QAAI,KAAK,WAAW;AAClB,YAAMtT,IAAqC;AAAA,QACzC,SAAS;AAAA,QACT,IAAI,EAAE,KAAK;AAAA,QACX,QAAA2Z;AAAA,QACA,QAAArG;AAAA,QACA,UAAU,KAAK;AAAA,QACf,UAAU,KAAK;AAAA,MAAA;AAEjB,MAAI,OAAO,UACF,OAAA,OAAO,YAAYtT,GAAS,GAAG;AAAA,IACxC;AAEA,WAAK,IACH,iGAAiG;AAAA,EAGvG;AAAA,EAEA,UAAU,GAAe;AACnB,QAAA,OAAO,EAAE,QAAS,UAAU;AAC9B,UAAI4Z,IAAqC,EAAE;AACvC,UAAAA,EAAQ,YAAY,OAAO;AAE7B,YAAID,IAASC,EAAQ;AAEnB,YAAA,EACED,KAAU,+BACTC,EAAQ,YAAY,KAAK,aAAaA,EAAQ,YAAY,KAAK,KAElE;AACA,eAAK,IACH,4CAA4CD,CAAM,0BAA0BC,EAAQ,QAAQ,cAAc,KAAK,SAAS,qBAAqBA,EAAQ,QAAQ,OAAO,KAAK,EAAE,EAAE;AAE/K;AAAA,QACF;AAEA,gBAAQD,GAAQ;AAAA,UACd,KAAK7F,GAAyB;AACvB,iBAAA,kCAAkC8F,EAAQ,MAAM;AACrD;AAAA,UACF,KAAK9F,GAAyB;AACxB,gBAAA,KAAK,WAAWiF,GAAsB;AAClC,oBAAA;AAEH,iBAAA,2BAA2Ba,EAAQ,OAAO,MAAM;AACrD;AAAA,UACF,KAAK9F,GAAyB;AAC5B,YAAI,KAAK,SAAO,KAAK,IAAI,QAAQ,KAAK,UAAU8F,CAAO,CAAC,EAAE;AAC1D;AAAA,UACF;AACE,YAAI,KAAK,SACP,KAAK,IACH,4CAA4C,KAAK,UAC/CA,CAAO,CACR,EAAE;AAEP;AAAA,QACJ;AAEA,QAAI,KAAK,cAAcZ,EAAgB,OAAO,IAAI,KAC3C,KAAA,KAAKA,EAAgB,SAASY,CAAO;AAAA,MAE9C;AAAA,IACF;AAAA,EACF;AAAA,EAEA,aAAanZ,GAAaV,GAAU;AAClC8Z,IAAAA,GAAqBpZ,GAAKV,CAAK;AAAA,EACjC;AAAA,EAEA,aAAaU,GAAW;AACtB,WAAOqZ,GAAuBrZ,CAAG;AAAA,EACnC;AAAA,EAEA,oBAAoBA,GAAaV,GAA0B;AACzDga,IAAAA,GAAiCtZ,GAAKV,CAAK;AAAA,EAC7C;AAAA,EAEA,oBAAoBU,GAAW;AAC7B,WAAOuZ,GAAmCvZ,CAAG;AAAA,EAC/C;AAAA,EAEA,iBAAiBA,GAAaV,GAAU;AACtCka,IAAAA,GAA8BxZ,GAAKV,CAAK;AAAA,EAC1C;AAAA,EAEA,iBAAoBU,GAAW;AAC7B,WAAOyZ,GAAmCzZ,CAAG;AAAA,EAC/C;AAAA,EAEA,mBAAmBA,GAAaV,GAAyB;AACvDoa,IAAAA,GAAuC1Z,GAAKV,CAAK;AAAA,EACnD;AAAA,EAEA,mBAAmBU,GAAW;AAC5B,WAAO2Z,GAAyC3Z,CAAG;AAAA,EACrD;AAAA,EAEA,kBAAkBA,GAAaV,GAAyB;AACtDsa,IAAAA,GAA+B5Z,GAAKV,CAAK;AAAA,EAC3C;AAAA,EAEA,kBAAkBU,GAAW;AAC3B,WAAO6Z,GAAiC7Z,CAAG;AAAA,EAC7C;AAAA,EAEA,gBAAgBA,GAAaV,GAAyB;AACpDwa,IAAAA,GAA6B9Z,GAAKV,CAAK;AAAA,EACzC;AAAA,EAEA,gBAAgBU,GAAW;AACzB,WAAO+Z,GAA+B/Z,CAAG;AAAA,EAC3C;AAAA,EAEA,gBAAgBA,GAAW;AACzBoZ,IAAAA,GAAqBpZ,GAAK,MAAS;AAAA,EACrC;;AA1hBuBwY,GAAO,UAAGrc;AAEVqc,GAAA,QAAQD,EAAgB;AACxBC,GAAA,YAAYD,EAAgB;AAC5BC,GAAA,QAAQD,EAAgB;AACxBC,GAAA,SAASD,EAAgB;AACzBC,GAAA,UAAUD,EAAgB;AAEnCC,GAAiB,oBAAG9G;AACpB8G,GAAe,kBAAGlH;;ACnElC,MAAM0I,KAAY,SACZC,KAAe,KAAKD,EAAS,KAM7BE,KAAc,OACdC,KAAe,OACfC,KAAgB,OAChBC,KAAgB,OAChBC,KAAW,SACXC,KAAQ,QACRC,KAAa,MAAMH,EAAa,OAChCI,KAAe,QAAQJ,EAAa,KACpCK,KAAa,GAAGR,EAAW,QAAQM,EAAU,IAC7CG,KAAS,MAAMT,EAAW,KAC1BU,KAAU,MAAMH,EAAY,GAAGC,EAAU,KACzCG,KAAe,MAAMX,EAAW,QAAQM,EAAU,KAClDM,KAAgB,MAAMJ,EAAU,KAChCK,KAAe,MAAMV,EAAa,KAClCW,KAAO,GAAGT,EAAK,MACfU,KAAM,KAENC,KAAc;AAAA,EAClB,aAAAhB;AAAA,EACA,cAAAC;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAE;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAAC;AAAA,EACA,cAAAP;AAAA,EACA,KAAAQ;AACF,GAMME,KAAgB;AAAA,EACpB,GAAGD;AAAA,EAEH,eAAe,IAAIlB,EAAS;AAAA,EAC5B,OAAOC;AAAA,EACP,MAAM,GAAGA,EAAY;AAAA,EACrB,YAAY,GAAGC,EAAW,YAAYF,EAAS;AAAA,EAC/C,QAAQ,MAAME,EAAW;AAAA,EACzB,SAAS,YAAYF,EAAS,KAAKE,EAAW,YAAYF,EAAS;AAAA,EACnE,cAAc,MAAME,EAAW,YAAYF,EAAS;AAAA,EACpD,eAAe,MAAME,EAAW,YAAYF,EAAS;AAAA,EACrD,cAAc,MAAMA,EAAS;AAAA,EAC7B,cAAc,SAASA,EAAS;AAAA,EAChC,YAAY,OAAOA,EAAS;AAAA,EAC5B,KAAK;AACP,GAMMoB,KAAqB;AAAA,EACzB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AACV;AAEA,IAAAC,KAAiB;AAAA,EACf,YAAY,OAAO;AAAA,EACrB,oBAAED;AAAAA;AAAAA,EAGA,iBAAiB;AAAA,EACjB,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,6BAA6B;AAAA,EAC7B,4BAA4B;AAAA,EAC5B,wBAAwB;AAAA;AAAA,EAGxB,cAAc;AAAA,IACZ,WAAW;AAAA,IACX,OAAO;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,EACb;AAAA;AAAA,EAGD,QAAQ;AAAA;AAAA,EACR,QAAQ;AAAA;AAAA;AAAA,EAGR,kBAAkB;AAAA;AAAA,EAClB,kBAAkB;AAAA;AAAA,EAClB,kBAAkB;AAAA;AAAA,EAClB,kBAAkB;AAAA;AAAA,EAElB,uBAAuB;AAAA;AAAA,EACvB,wBAAwB;AAAA;AAAA,EAExB,eAAe;AAAA;AAAA;AAAA,EAGf,gBAAgB;AAAA;AAAA,EAChB,SAAS;AAAA;AAAA,EACT,qBAAqB;AAAA;AAAA,EACrB,sBAAsB;AAAA;AAAA,EACtB,wBAAwB;AAAA;AAAA,EACxB,YAAY;AAAA;AAAA,EACZ,YAAY;AAAA;AAAA,EACZ,UAAU;AAAA;AAAA,EACV,mBAAmB;AAAA;AAAA,EACnB,YAAY;AAAA;AAAA,EACZ,uBAAuB;AAAA;AAAA,EACvB,gBAAgB;AAAA;AAAA,EAChB,oBAAoB;AAAA;AAAA,EACpB,mBAAmB;AAAA;AAAA,EACnB,WAAW;AAAA;AAAA,EACX,mBAAmB;AAAA;AAAA,EACnB,yBAAyB;AAAA;AAAA,EACzB,uBAAuB;AAAA;AAAA,EACvB,0BAA0B;AAAA;AAAA,EAC1B,gBAAgB;AAAA;AAAA,EAChB,qBAAqB;AAAA;AAAA,EACrB,cAAc;AAAA;AAAA,EACd,WAAW;AAAA;AAAA,EACX,oBAAoB;AAAA;AAAA,EACpB,0BAA0B;AAAA;AAAA,EAC1B,wBAAwB;AAAA;AAAA,EACxB,2BAA2B;AAAA;AAAA,EAC3B,gBAAgB;AAAA;AAAA,EAChB,mBAAmB;AAAA;AAAA,EACnB,YAAY;AAAA;AAAA,EACZ,UAAU;AAAA;AAAA,EACV,iBAAiB;AAAA;AAAA,EACjB,oBAAoB;AAAA;AAAA,EACpB,+BAA+B;AAAA;AAAA;AAAA;AAAA;AAAA,EAM/B,aAAalP,GAAO;AAClB,WAAO;AAAA,MACL,KAAK,EAAE,MAAM,UAAU,MAAM,aAAa,OAAO,KAAKA,EAAM,IAAI,IAAK;AAAA,MACrE,KAAK,EAAE,MAAM,SAAS,MAAM,OAAO,OAAO,KAAM;AAAA,MAChD,KAAK,EAAE,MAAM,QAAQ,MAAM,OAAO,OAAO,KAAM;AAAA,MAC/C,KAAK,EAAE,MAAM,QAAQ,MAAM,OAAO,OAAO,KAAM;AAAA,MAC/C,KAAK,EAAE,MAAM,MAAM,MAAM,OAAO,OAAO,IAAK;AAAA,IAClD;AAAA,EACG;AAAA;AAAA;AAAA;AAAA,EAMD,UAAUoP,GAAO;AACf,WAAOA,MAAU,KAAOH,KAAgBD;AAAA,EACzC;AACH;AAAA;AChLA,QAAM;AAAA,IACJ,iBAAAK;AAAA,IACA,wBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,4BAAAC;AAAA,EACD,IAAGC;AAEJ,EAAAC,EAAA,WAAmB,CAAAC,MAAOA,MAAQ,QAAQ,OAAOA,KAAQ,YAAY,CAAC,MAAM,QAAQA,CAAG,GACvFD,EAAwB,gBAAA,CAAAlE,MAAO+D,EAAoB,KAAK/D,CAAG,GAC3DkE,EAAA,cAAsB,CAAAlE,MAAOA,EAAI,WAAW,KAAKkE,EAAQ,cAAclE,CAAG,GAC1EkE,EAAsB,cAAA,CAAAlE,MAAOA,EAAI,QAAQgE,GAA4B,MAAM,GAC3EE,EAAyB,iBAAA,CAAAlE,MAAOA,EAAI,QAAQ6D,GAAiB,GAAG,GAEhEK,EAAA,YAAoB,MAAM;AACxB,QAAI,OAAO,YAAc,OAAe,UAAU,UAAU;AAC1D,YAAME,IAAW,UAAU,SAAS,YAAW;AAC/C,aAAOA,MAAa,WAAWA,MAAa;AAAA,IAC7C;AAED,WAAI,OAAO,UAAY,OAAe,QAAQ,WACrC,QAAQ,aAAa,UAGvB;AAAA,EACT,GAEAF,EAAA,oBAA4B,CAAAlE,MACnBA,EAAI,QAAQ8D,GAAwB,CAAAjf,MAClCA,MAAU,OAAO,KAAKA,CAC9B,GAGHqf,EAAA,aAAqB,CAACrd,GAAOwd,GAAMC,MAAY;AAC7C,UAAMC,IAAM1d,EAAM,YAAYwd,GAAMC,CAAO;AAC3C,WAAIC,MAAQ,KAAW1d,IACnBA,EAAM0d,IAAM,CAAC,MAAM,OAAaL,EAAQ,WAAWrd,GAAOwd,GAAME,IAAM,CAAC,IACpE,GAAG1d,EAAM,MAAM,GAAG0d,CAAG,CAAC,KAAK1d,EAAM,MAAM0d,CAAG,CAAC;AAAA,EACpD,GAEAL,EAAA,eAAuB,CAACrd,GAAOkD,IAAQ,CAAA,MAAO;AAC5C,QAAIya,IAAS3d;AACb,WAAI2d,EAAO,WAAW,IAAI,MACxBA,IAASA,EAAO,MAAM,CAAC,GACvBza,EAAM,SAAS,OAEVya;AAAA,EACT,GAEAN,EAAqB,aAAA,CAACrd,GAAOkD,IAAQ,CAAE,GAAEX,IAAU,OAAO;AACxD,UAAMqb,IAAUrb,EAAQ,WAAW,KAAK,KAClCsb,IAAStb,EAAQ,WAAW,KAAK;AAEvC,QAAIob,IAAS,GAAGC,CAAO,MAAM5d,CAAK,IAAI6d,CAAM;AAC5C,WAAI3a,EAAM,YAAY,OACpBya,IAAS,UAAUA,CAAM,UAEpBA;AAAA,EACT,GAEAN,EAAmB,WAAA,CAAC3a,GAAM,EAAE,SAAAob,EAAO,IAAK,CAAA,MAAO;AAC7C,UAAMC,IAAOrb,EAAK,MAAMob,IAAU,UAAU,GAAG,GACzCE,IAAOD,EAAKA,EAAK,SAAS,CAAC;AAEjC,WAAIC,MAAS,KACJD,EAAKA,EAAK,SAAS,CAAC,IAGtBC;AAAA;;ACpET,MAAMC,KAAQb,IACR;AAAA,EACJ,eAAAc;AAAA;AAAA,EACA,SAAAC;AAAA;AAAA,EACA,qBAAAC;AAAA;AAAA,EACA,YAAAC;AAAA;AAAA,EACA,UAAAC;AAAA;AAAA,EACA,uBAAAC;AAAA;AAAA,EACA,oBAAAC;AAAA;AAAA,EACA,uBAAAC;AAAA;AAAA,EACA,uBAAAC;AAAA;AAAA,EACA,0BAAAC;AAAA;AAAA,EACA,WAAAC;AAAA;AAAA,EACA,oBAAAC;AAAA;AAAA,EACA,wBAAAC;AAAA;AAAA,EACA,wBAAAC;AAAA;AAAA,EACA,2BAAAC;AAAA;AACF,IAAIC,IAEEC,KAAkB,CAAAC,MACfA,MAASX,MAAsBW,MAASf,IAG3CgB,KAAQ,CAAAC,MAAS;AACrB,EAAIA,EAAM,aAAa,OACrBA,EAAM,QAAQA,EAAM,aAAa,QAAW;AAEhD,GAmBMC,KAAO,CAACtf,GAAOuC,MAAY;AAC/B,QAAM6K,IAAO7K,KAAW,IAElBqU,IAAS5W,EAAM,SAAS,GACxBuf,IAAYnS,EAAK,UAAU,MAAQA,EAAK,cAAc,IACtDoS,IAAU,CAAA,GACVC,IAAS,CAAA,GACTC,IAAQ,CAAA;AAEd,MAAIvG,IAAMnZ,GACN4D,IAAQ,IACR+b,IAAQ,GACRC,IAAY,GACZC,IAAU,IACVC,IAAY,IACZC,IAAS,IACTC,IAAY,IACZC,IAAa,IACbC,IAAe,IACfC,IAAc,IACdC,IAAU,IACVC,IAAiB,IACjBC,IAAW,IACXC,IAAS,GACTC,GACArB,GACAE,IAAQ,EAAE,OAAO,IAAI,OAAO,GAAG,QAAQ;AAE3C,QAAMoB,IAAM,MAAM7c,KAASgT,GACrB3T,IAAO,MAAMkW,EAAI,WAAWvV,IAAQ,CAAC,GACrC8c,IAAU,OACdF,IAAOrB,GACAhG,EAAI,WAAW,EAAEvV,CAAK;AAG/B,SAAOA,IAAQgT,KAAQ;AACrB,IAAAuI,IAAOuB,EAAO;AACd,QAAIC;AAEJ,QAAIxB,MAASf,IAAqB;AAChC,MAAA+B,IAAcd,EAAM,cAAc,IAClCF,IAAOuB,EAAO,GAEVvB,MAASV,OACXyB,IAAe;AAEjB;AAAA,IACD;AAED,QAAIA,MAAiB,MAAQf,MAASV,IAAuB;AAG3D,WAFA8B,KAEOE,EAAG,MAAO,OAAStB,IAAOuB,EAAS,MAAG;AAC3C,YAAIvB,MAASf,IAAqB;AAChC,UAAA+B,IAAcd,EAAM,cAAc,IAClCqB;AACA;AAAA,QACD;AAED,YAAIvB,MAASV,IAAuB;AAClC,UAAA8B;AACA;AAAA,QACD;AAED,YAAIL,MAAiB,MAAQf,MAASb,OAAaa,IAAOuB,EAAS,OAAMpC,IAAU;AAKjF,cAJAuB,IAAUR,EAAM,UAAU,IAC1BU,IAASV,EAAM,SAAS,IACxBiB,IAAW,IAEPf,MAAc;AAChB;AAGF;AAAA,QACD;AAED,YAAIW,MAAiB,MAAQf,MAASd,IAAY;AAKhD,cAJAwB,IAAUR,EAAM,UAAU,IAC1BU,IAASV,EAAM,SAAS,IACxBiB,IAAW,IAEPf,MAAc;AAChB;AAGF;AAAA,QACD;AAED,YAAIJ,MAASL,OACXyB,KAEIA,MAAW,IAAG;AAChB,UAAAL,IAAe,IACfL,IAAUR,EAAM,UAAU,IAC1BiB,IAAW;AACX;AAAA,QACD;AAAA,MAEJ;AAED,UAAIf,MAAc;AAChB;AAGF;AAAA,IACD;AAED,QAAIJ,MAASX,IAAoB;AAK/B,UAJAgB,EAAQ,KAAK5b,CAAK,GAClB6b,EAAO,KAAKJ,CAAK,GACjBA,IAAQ,EAAE,OAAO,IAAI,OAAO,GAAG,QAAQ,MAEnCiB,MAAa;AAAM;AACvB,UAAIE,MAASlC,MAAY1a,MAAW+b,IAAQ,GAAI;AAC9C,QAAAA,KAAS;AACT;AAAA,MACD;AAED,MAAAC,IAAYhc,IAAQ;AACpB;AAAA,IACD;AAED,QAAIwJ,EAAK,UAAU,OACK+R,MAASP,MAC1BO,MAAShB,MACTgB,MAASjB,MACTiB,MAASN,MACTM,MAASZ,QAEQ,MAAQtb,EAAI,MAAOyb,IAAuB;AAQ9D,UAPAqB,IAASV,EAAM,SAAS,IACxBW,IAAYX,EAAM,YAAY,IAC9BiB,IAAW,IACPnB,MAASZ,MAAyB3a,MAAU+b,MAC9CU,IAAiB,KAGfd,MAAc,IAAM;AACtB,eAAOkB,EAAG,MAAO,OAAStB,IAAOuB,EAAS,MAAG;AAC3C,cAAIvB,MAASf,IAAqB;AAChC,YAAA+B,IAAcd,EAAM,cAAc,IAClCF,IAAOuB,EAAO;AACd;AAAA,UACD;AAED,cAAIvB,MAASJ,IAAwB;AACnC,YAAAgB,IAASV,EAAM,SAAS,IACxBiB,IAAW;AACX;AAAA,UACD;AAAA,QACF;AACD;AAAA,MACD;AACD;AAAA,IACD;AAGH,QAAInB,MAASjB,IAAe;AAK1B,UAJIsC,MAAStC,OAAe+B,IAAaZ,EAAM,aAAa,KAC5DU,IAASV,EAAM,SAAS,IACxBiB,IAAW,IAEPf,MAAc;AAChB;AAEF;AAAA,IACD;AAED,QAAIJ,MAASN,IAAoB;AAI/B,UAHAkB,IAASV,EAAM,SAAS,IACxBiB,IAAW,IAEPf,MAAc;AAChB;AAEF;AAAA,IACD;AAED,QAAIJ,MAASR,IAA0B;AACrC,aAAO8B,EAAG,MAAO,OAASE,IAAOD,EAAS,MAAG;AAC3C,YAAIC,MAASvC,IAAqB;AAChC,UAAA+B,IAAcd,EAAM,cAAc,IAClCqB;AACA;AAAA,QACD;AAED,YAAIC,MAAS3B,IAA2B;AACtC,UAAAc,IAAYT,EAAM,YAAY,IAC9BU,IAASV,EAAM,SAAS,IACxBiB,IAAW;AACX;AAAA,QACD;AAAA,MACF;AAED,UAAIf,MAAc;AAChB;AAGF;AAAA,IACD;AAED,QAAInS,EAAK,aAAa,MAAQ+R,MAASZ,MAAyB3a,MAAU+b,GAAO;AAC/E,MAAAS,IAAUf,EAAM,UAAU,IAC1BM;AACA;AAAA,IACD;AAED,QAAIvS,EAAK,YAAY,MAAQ+R,MAAST,IAAuB;AAG3D,UAFAqB,IAASV,EAAM,SAAS,IAEpBE,MAAc,IAAM;AACtB,eAAOkB,EAAG,MAAO,OAAStB,IAAOuB,EAAS,MAAG;AAC3C,cAAIvB,MAAST,IAAuB;AAClC,YAAAyB,IAAcd,EAAM,cAAc,IAClCF,IAAOuB,EAAO;AACd;AAAA,UACD;AAED,cAAIvB,MAASJ,IAAwB;AACnC,YAAAuB,IAAW;AACX;AAAA,UACD;AAAA,QACF;AACD;AAAA,MACD;AACD;AAAA,IACD;AAED,QAAIP,MAAW,IAAM;AAGnB,UAFAO,IAAW,IAEPf,MAAc;AAChB;AAGF;AAAA,IACD;AAAA,EACF;AAED,EAAInS,EAAK,UAAU,OACjB4S,IAAY,IACZD,IAAS;AAGX,MAAIpc,IAAOwV,GACP9D,IAAS,IACTuL,IAAO;AAEX,EAAIjB,IAAQ,MACVtK,IAAS8D,EAAI,MAAM,GAAGwG,CAAK,GAC3BxG,IAAMA,EAAI,MAAMwG,CAAK,GACrBC,KAAaD,IAGXhc,KAAQoc,MAAW,MAAQH,IAAY,KACzCjc,IAAOwV,EAAI,MAAM,GAAGyG,CAAS,GAC7BgB,IAAOzH,EAAI,MAAMyG,CAAS,KACjBG,MAAW,MACpBpc,IAAO,IACPid,IAAOzH,KAEPxV,IAAOwV,GAGLxV,KAAQA,MAAS,MAAMA,MAAS,OAAOA,MAASwV,KAC9C+F,GAAgBvb,EAAK,WAAWA,EAAK,SAAS,CAAC,CAAC,MAClDA,IAAOA,EAAK,MAAM,GAAG,EAAE,IAIvByJ,EAAK,aAAa,OAChBwT,MAAMA,IAAO3C,GAAM,kBAAkB2C,CAAI,IAEzCjd,KAAQwc,MAAgB,OAC1Bxc,IAAOsa,GAAM,kBAAkBta,CAAI;AAIvC,QAAMT,KAAQ;AAAA,IACZ,QAAAmS;AAAA,IACA,OAAArV;AAAA,IACA,OAAA2f;AAAA,IACA,MAAAhc;AAAA,IACA,MAAAid;AAAA,IACA,SAAAf;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,SAAAG;AAAA,IACA,gBAAAC;AAAA,EACJ;AAUE,MARIjT,EAAK,WAAW,OAClBlK,GAAM,WAAW,GACZgc,GAAgBC,CAAI,KACvBM,EAAO,KAAKJ,CAAK,GAEnBnc,GAAM,SAASuc,IAGbrS,EAAK,UAAU,MAAQA,EAAK,WAAW,IAAM;AAC/C,QAAIyT;AAEJ,aAASnD,IAAM,GAAGA,IAAM8B,EAAQ,QAAQ9B,KAAO;AAC7C,YAAMrf,KAAIwiB,IAAYA,IAAY,IAAIlB,GAChC9gB,KAAI2gB,EAAQ9B,CAAG,GACf3c,KAAQf,EAAM,MAAM3B,IAAGQ,EAAC;AAC9B,MAAIuO,EAAK,WACHsQ,MAAQ,KAAKiC,MAAU,KACzBF,EAAO/B,CAAG,EAAE,WAAW,IACvB+B,EAAO/B,CAAG,EAAE,QAAQrI,KAEpBoK,EAAO/B,CAAG,EAAE,QAAQ3c,IAEtBqe,GAAMK,EAAO/B,CAAG,CAAC,GACjBxa,GAAM,YAAYuc,EAAO/B,CAAG,EAAE,SAE5BA,MAAQ,KAAK3c,OAAU,OACzB2e,EAAM,KAAK3e,EAAK,GAElB8f,IAAYhiB;AAAA,IACb;AAED,QAAIgiB,KAAaA,IAAY,IAAI7gB,EAAM,QAAQ;AAC7C,YAAMe,IAAQf,EAAM,MAAM6gB,IAAY,CAAC;AACvC,MAAAnB,EAAM,KAAK3e,CAAK,GAEZqM,EAAK,WACPqS,EAAOA,EAAO,SAAS,CAAC,EAAE,QAAQ1e,GAClCqe,GAAMK,EAAOA,EAAO,SAAS,CAAC,CAAC,GAC/Bvc,GAAM,YAAYuc,EAAOA,EAAO,SAAS,CAAC,EAAE;AAAA,IAE/C;AAED,IAAAvc,GAAM,UAAUsc,GAChBtc,GAAM,QAAQwc;AAAA,EACf;AAED,SAAOxc;AACT;AAEA,IAAA4d,KAAiBxB;ACpYjB,MAAMxC,KAAYM,IACZa,KAAQgB,IAMR;AAAA,EACJ,YAAA8B;AAAA,EACA,oBAAAlE;AAAA,EACA,yBAAAmE;AAAA,EACA,6BAAAC;AAAA,EACA,cAAAC;AACF,IAAIpE,IAMEqE,KAAc,CAAC5W,GAAMhI,MAAY;AACrC,MAAI,OAAOA,EAAQ,eAAgB;AACjC,WAAOA,EAAQ,YAAY,GAAGgI,GAAMhI,CAAO;AAG7C,EAAAgI,EAAK,KAAI;AACT,QAAMxJ,IAAQ,IAAIwJ,EAAK,KAAK,GAAG,CAAC;AAEhC,MAAI;AAEF,QAAI,OAAOxJ,CAAK;AAAA,EACjB,QAAY;AACX,WAAOwJ,EAAK,IAAI,CAAAnM,MAAK6f,GAAM,YAAY7f,CAAC,CAAC,EAAE,KAAK,IAAI;AAAA,EACrD;AAED,SAAO2C;AACT,GAMMqgB,KAAc,CAAChc,GAAMoY,MAClB,WAAWpY,CAAI,MAAMoY,CAAI,gBAAgBA,CAAI,iCAUhD6D,KAAQ,CAACrhB,GAAOuC,MAAY;AAChC,MAAI,OAAOvC,KAAU;AACnB,UAAM,IAAI,UAAU,mBAAmB;AAGzC,EAAAA,IAAQkhB,GAAalhB,CAAK,KAAKA;AAE/B,QAAMoN,IAAO,EAAE,GAAG7K,KACZ+e,IAAM,OAAOlU,EAAK,aAAc,WAAW,KAAK,IAAI2T,IAAY3T,EAAK,SAAS,IAAI2T;AAExF,MAAI/S,IAAMhO,EAAM;AAChB,MAAIgO,IAAMsT;AACR,UAAM,IAAI,YAAY,iBAAiBtT,CAAG,qCAAqCsT,CAAG,EAAE;AAGtF,QAAMC,IAAM,EAAE,MAAM,OAAO,OAAO,IAAI,QAAQnU,EAAK,WAAW,MACxDqS,IAAS,CAAC8B,CAAG,GAEbC,IAAUpU,EAAK,UAAU,KAAK,MAG9BqU,IAAiB3E,GAAU,UAAU1P,EAAK,OAAO,GACjDsU,IAAgB5E,GAAU,aAAa2E,CAAc,GAErD;AAAA,IACJ,aAAA9F;AAAA,IACA,cAAAC;AAAA,IACA,eAAAE;AAAA,IACA,UAAAC;AAAA,IACA,YAAAI;AAAA,IACA,QAAAC;AAAA,IACA,cAAAE;AAAA,IACA,eAAAC;AAAA,IACA,OAAAP;AAAA,IACA,cAAAQ;AAAA,IACA,MAAAC;AAAA,IACA,cAAAP;AAAA,EACD,IAAGuF,GAEEE,IAAW,CAAAvU,MACR,IAAIoU,CAAO,SAAStF,CAAY,GAAG9O,EAAK,MAAM+O,IAAaR,CAAW,UAGzEiG,IAAQxU,EAAK,MAAM,KAAKgP,GACxByF,IAAazU,EAAK,MAAM4O,IAAQQ;AACtC,MAAIsF,IAAO1U,EAAK,SAAS,KAAOuU,EAASvU,CAAI,IAAIqP;AAEjD,EAAIrP,EAAK,YACP0U,IAAO,IAAIA,CAAI,MAIb,OAAO1U,EAAK,SAAU,cACxBA,EAAK,YAAYA,EAAK;AAGxB,QAAMlK,IAAQ;AAAA,IACZ,OAAAlD;AAAA,IACA,OAAO;AAAA,IACP,OAAO;AAAA,IACP,KAAKoN,EAAK,QAAQ;AAAA,IAClB,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,QAAAqS;AAAA,EACJ;AAEE,EAAAzf,IAAQie,GAAM,aAAaje,GAAOkD,CAAK,GACvC8K,IAAMhO,EAAM;AAEZ,QAAM+hB,IAAW,CAAA,GACXxB,IAAS,CAAA,GACTzb,IAAQ,CAAA;AACd,MAAI0b,IAAOe,GACPxgB;AAMJ,QAAM0f,KAAM,MAAMvd,EAAM,UAAU8K,IAAM,GAClC/K,IAAOC,EAAM,OAAO,CAAC7E,IAAI,MAAM2B,EAAMkD,EAAM,QAAQ7E,CAAC,GACpDqiB,IAAUxd,EAAM,UAAU,MAAMlD,EAAM,EAAEkD,EAAM,KAAK,KAAK,IACxD8e,KAAY,MAAMhiB,EAAM,MAAMkD,EAAM,QAAQ,CAAC,GAC7C+e,KAAU,CAAClhB,IAAQ,IAAImhB,IAAM,MAAM;AACvC,IAAAhf,EAAM,YAAYnC,GAClBmC,EAAM,SAASgf;AAAA,EACnB,GAEQrE,KAAS,CAAAwB,MAAS;AACtB,IAAAnc,EAAM,UAAUmc,EAAM,UAAU,OAAOA,EAAM,SAASA,EAAM,OAC5D4C,GAAQ5C,EAAM,KAAK;AAAA,EACvB,GAEQ8C,KAAS,MAAM;AACnB,QAAIC,IAAQ;AAEZ,WAAOnf,EAAM,MAAK,QAAQA,EAAK,CAAC,MAAM,OAAOA,EAAK,CAAC,MAAM;AACvD,MAAAyd,KACAxd,EAAM,SACNkf;AAGF,WAAIA,IAAQ,MAAM,IACT,MAGTlf,EAAM,UAAU,IAChBA,EAAM,SACC;AAAA,EACX,GAEQmf,KAAY,CAAAjd,MAAQ;AACxB,IAAAlC,EAAMkC,CAAI,KACVN,EAAM,KAAKM,CAAI;AAAA,EACnB,GAEQkd,KAAY,CAAAld,MAAQ;AACxB,IAAAlC,EAAMkC,CAAI,KACVN,EAAM,IAAG;AAAA,EACb,GAUQyd,IAAO,CAAAC,MAAO;AAClB,QAAIhC,EAAK,SAAS,YAAY;AAC5B,YAAMX,IAAU3c,EAAM,SAAS,MAAMsf,EAAI,SAAS,WAAWA,EAAI,SAAS,UACpExC,IAAYwC,EAAI,YAAY,MAAST,EAAS,WAAWS,EAAI,SAAS,UAAUA,EAAI,SAAS;AAEnG,MAAIA,EAAI,SAAS,WAAWA,EAAI,SAAS,WAAW,CAAC3C,KAAW,CAACG,MAC/D9c,EAAM,SAASA,EAAM,OAAO,MAAM,GAAG,CAACsd,EAAK,OAAO,MAAM,GACxDA,EAAK,OAAO,QACZA,EAAK,QAAQ,KACbA,EAAK,SAASsB,GACd5e,EAAM,UAAUsd,EAAK;AAAA,IAExB;AAOD,QALIuB,EAAS,UAAUS,EAAI,SAAS,YAClCT,EAASA,EAAS,SAAS,CAAC,EAAE,SAASS,EAAI,SAGzCA,EAAI,SAASA,EAAI,WAAQ3E,GAAO2E,CAAG,GACnChC,KAAQA,EAAK,SAAS,UAAUgC,EAAI,SAAS,QAAQ;AACvD,MAAAhC,EAAK,UAAUA,EAAK,UAAUA,EAAK,SAASgC,EAAI,OAChDhC,EAAK,SAASgC,EAAI;AAClB;AAAA,IACD;AAED,IAAAA,EAAI,OAAOhC,GACXf,EAAO,KAAK+C,CAAG,GACfhC,IAAOgC;AAAA,EACX,GAEQC,KAAc,CAACrd,GAAMrE,MAAU;AACnC,UAAMse,IAAQ,EAAE,GAAGqC,EAAc3gB,CAAK,GAAG,YAAY,GAAG,OAAO;AAE/D,IAAAse,EAAM,OAAOmB,GACbnB,EAAM,SAASnc,EAAM,QACrBmc,EAAM,SAASnc,EAAM;AACrB,UAAMya,KAAUvQ,EAAK,UAAU,MAAM,MAAMiS,EAAM;AAEjD,IAAAgD,GAAU,QAAQ,GAClBE,EAAK,EAAE,MAAAnd,GAAM,OAAArE,GAAO,QAAQmC,EAAM,SAAS,KAAK6Y,EAAQ,CAAE,GAC1DwG,EAAK,EAAE,MAAM,SAAS,SAAS,IAAM,OAAO7B,EAAO,GAAI,QAAA/C,EAAM,CAAE,GAC/DoE,EAAS,KAAK1C,CAAK;AAAA,EACvB,GAEQqD,KAAe,CAAArD,MAAS;AAC5B,QAAI1B,IAAS0B,EAAM,SAASjS,EAAK,UAAU,MAAM,KAC7CuV;AAEJ,QAAItD,EAAM,SAAS,UAAU;AAC3B,UAAIuD,IAAcd;AAUlB,UARIzC,EAAM,SAASA,EAAM,MAAM,SAAS,KAAKA,EAAM,MAAM,SAAS,GAAG,MACnEuD,IAAcjB,EAASvU,CAAI,KAGzBwV,MAAgBd,KAAQrB,GAAG,KAAM,QAAQ,KAAKuB,GAAS,CAAE,OAC3DrE,IAAS0B,EAAM,QAAQ,OAAOuD,CAAW,KAGvCvD,EAAM,MAAM,SAAS,GAAG,MAAMsD,IAAOX,GAAS,MAAO,eAAe,KAAKW,CAAI,GAAG;AAMlF,cAAME,IAAaxB,GAAMsB,GAAM,EAAE,GAAGpgB,GAAS,WAAW,IAAO,EAAE;AAEjE,QAAAob,IAAS0B,EAAM,QAAQ,IAAIwD,CAAU,IAAID,CAAW;AAAA,MACrD;AAED,MAAIvD,EAAM,KAAK,SAAS,UACtBnc,EAAM,iBAAiB;AAAA,IAE1B;AAED,IAAAqf,EAAK,EAAE,MAAM,SAAS,SAAS,IAAM,OAAAxhB,GAAO,QAAA4c,EAAM,CAAE,GACpD2E,GAAU,QAAQ;AAAA,EACtB;AAME,MAAIlV,EAAK,cAAc,MAAS,CAAC,sBAAsB,KAAKpN,CAAK,GAAG;AAClE,QAAImgB,IAAc,IAEdxC,IAAS3d,EAAM,QAAQihB,IAA6B,CAAC9T,GAAG2V,GAAKnV,GAAOoV,GAAOJ,GAAM/e,OAC/Emf,MAAU,QACZ5C,IAAc,IACPhT,KAGL4V,MAAU,MACRD,IACKA,IAAMC,KAASJ,IAAO3G,EAAM,OAAO2G,EAAK,MAAM,IAAI,MAEvD/e,OAAU,IACLie,KAAcc,IAAO3G,EAAM,OAAO2G,EAAK,MAAM,IAAI,MAEnD3G,EAAM,OAAOrO,EAAM,MAAM,IAG9BoV,MAAU,MACLpH,EAAY,OAAOhO,EAAM,MAAM,IAGpCoV,MAAU,MACRD,IACKA,IAAMC,KAASJ,IAAOb,IAAO,MAE/BA,IAEFgB,IAAM3V,IAAI,KAAKA,CAAC,EACxB;AAYD,WAVIgT,MAAgB,OACd/S,EAAK,aAAa,KACpBuQ,IAASA,EAAO,QAAQ,OAAO,EAAE,IAEjCA,IAASA,EAAO,QAAQ,QAAQ,CAAAxQ,MACvBA,EAAE,SAAS,MAAM,IAAI,SAAUA,IAAI,OAAO,EAClD,IAIDwQ,MAAW3d,KAASoN,EAAK,aAAa,MACxClK,EAAM,SAASlD,GACRkD,MAGTA,EAAM,SAAS+a,GAAM,WAAWN,GAAQza,GAAOX,CAAO,GAC/CW;AAAA,EACR;AAMD,SAAO,CAACud,GAAG,KAAI;AAGb,QAFA1f,IAAQ2f,EAAO,GAEX3f,MAAU;AACZ;AAOF,QAAIA,MAAU,MAAM;AAClB,YAAM4f,IAAO1d;AAMb,UAJI0d,MAAS,OAAOvT,EAAK,SAAS,MAI9BuT,MAAS,OAAOA,MAAS;AAC3B;AAGF,UAAI,CAACA,GAAM;AACT,QAAA5f,KAAS,MACTwhB,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,EAAO,CAAA;AAC5B;AAAA,MACD;AAGD,YAAM/C,IAAQ,OAAO,KAAKgkB,GAAW,CAAA;AACrC,UAAIxC,IAAU;AAgBd,UAdIxhB,KAASA,EAAM,CAAC,EAAE,SAAS,MAC7BwhB,IAAUxhB,EAAM,CAAC,EAAE,QACnBkF,EAAM,SAASsc,GACXA,IAAU,MAAM,MAClBze,KAAS,QAITqM,EAAK,aAAa,KACpBrM,IAAQ2f,EAAO,IAEf3f,KAAS2f,EAAO,GAGdxd,EAAM,aAAa,GAAG;AACxB,QAAAqf,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,EAAO,CAAA;AAC5B;AAAA,MACD;AAAA,IACF;AAOD,QAAImC,EAAM,WAAW,MAAMnC,MAAU,OAAOyf,EAAK,UAAU,OAAOA,EAAK,UAAU,OAAO;AACtF,UAAIpT,EAAK,UAAU,MAASrM,MAAU,KAAK;AACzC,cAAMiiB,IAAQxC,EAAK,MAAM,MAAM,CAAC;AAChC,YAAIwC,EAAM,SAAS,GAAG,MACpBxC,EAAK,QAAQ,IAETwC,EAAM,SAAS,GAAG,IAAG;AACvB,gBAAMtF,IAAM8C,EAAK,MAAM,YAAY,GAAG,GAChCyC,IAAMzC,EAAK,MAAM,MAAM,GAAG9C,CAAG,GAC7BiF,IAAOnC,EAAK,MAAM,MAAM9C,IAAM,CAAC,GAC/BwF,IAAQrG,GAAmB8F,CAAI;AACrC,cAAIO,GAAO;AACT,YAAA1C,EAAK,QAAQyC,IAAMC,GACnBhgB,EAAM,YAAY,IAClBwd,KAEI,CAACa,EAAI,UAAU9B,EAAO,QAAQe,CAAI,MAAM,MAC1Ce,EAAI,SAASxF;AAEf;AAAA,UACD;AAAA,QACF;AAAA,MAEJ;AAED,OAAKhb,MAAU,OAAOkC,QAAW,OAASlC,MAAU,OAAOkC,QAAW,SACpElC,IAAQ,KAAKA,CAAK,KAGhBA,MAAU,QAAQyf,EAAK,UAAU,OAAOA,EAAK,UAAU,UACzDzf,IAAQ,KAAKA,CAAK,KAGhBqM,EAAK,UAAU,MAAQrM,MAAU,OAAOyf,EAAK,UAAU,QACzDzf,IAAQ,MAGVyf,EAAK,SAASzf,GACd8c,GAAO,EAAE,OAAA9c,EAAK,CAAE;AAChB;AAAA,IACD;AAOD,QAAImC,EAAM,WAAW,KAAKnC,MAAU,KAAK;AACvC,MAAAA,IAAQkd,GAAM,YAAYld,CAAK,GAC/Byf,EAAK,SAASzf,GACd8c,GAAO,EAAE,OAAA9c,EAAK,CAAE;AAChB;AAAA,IACD;AAMD,QAAIA,MAAU,KAAK;AACjB,MAAAmC,EAAM,SAASA,EAAM,WAAW,IAAI,IAAI,GACpCkK,EAAK,eAAe,MACtBmV,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,EAAO,CAAA;AAE9B;AAAA,IACD;AAMD,QAAIA,MAAU,KAAK;AACjB,MAAAshB,GAAU,QAAQ,GAClBE,EAAK,EAAE,MAAM,SAAS,OAAAxhB,EAAO,CAAA;AAC7B;AAAA,IACD;AAED,QAAIA,MAAU,KAAK;AACjB,UAAImC,EAAM,WAAW,KAAKkK,EAAK,mBAAmB;AAChD,cAAM,IAAI,YAAYgU,GAAY,WAAW,GAAG,CAAC;AAGnD,YAAM+B,IAAUpB,EAASA,EAAS,SAAS,CAAC;AAC5C,UAAIoB,KAAWjgB,EAAM,WAAWigB,EAAQ,SAAS,GAAG;AAClD,QAAAT,GAAaX,EAAS,IAAG,CAAE;AAC3B;AAAA,MACD;AAED,MAAAQ,EAAK,EAAE,MAAM,SAAS,OAAAxhB,GAAO,QAAQmC,EAAM,SAAS,MAAM,MAAK,CAAE,GACjEof,GAAU,QAAQ;AAClB;AAAA,IACD;AAMD,QAAIvhB,MAAU,KAAK;AACjB,UAAIqM,EAAK,cAAc,MAAQ,CAAC4U,KAAY,SAAS,GAAG,GAAG;AACzD,YAAI5U,EAAK,cAAc,MAAQA,EAAK,mBAAmB;AACrD,gBAAM,IAAI,YAAYgU,GAAY,WAAW,GAAG,CAAC;AAGnD,QAAArgB,IAAQ,KAAKA,CAAK;AAAA,MAC1B;AACQ,QAAAshB,GAAU,UAAU;AAGtB,MAAAE,EAAK,EAAE,MAAM,WAAW,OAAAxhB,EAAO,CAAA;AAC/B;AAAA,IACD;AAED,QAAIA,MAAU,KAAK;AACjB,UAAIqM,EAAK,cAAc,MAASoT,KAAQA,EAAK,SAAS,aAAaA,EAAK,MAAM,WAAW,GAAI;AAC3F,QAAA+B,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,GAAO,QAAQ,KAAKA,CAAK,GAAE,CAAE;AAClD;AAAA,MACD;AAED,UAAImC,EAAM,aAAa,GAAG;AACxB,YAAIkK,EAAK,mBAAmB;AAC1B,gBAAM,IAAI,YAAYgU,GAAY,WAAW,GAAG,CAAC;AAGnD,QAAAmB,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,GAAO,QAAQ,KAAKA,CAAK,GAAE,CAAE;AAClD;AAAA,MACD;AAED,MAAAuhB,GAAU,UAAU;AAEpB,YAAMc,IAAY5C,EAAK,MAAM,MAAM,CAAC;AAUpC,UATIA,EAAK,UAAU,MAAQ4C,EAAU,CAAC,MAAM,OAAO,CAACA,EAAU,SAAS,GAAG,MACxEriB,IAAQ,IAAIA,CAAK,KAGnByf,EAAK,SAASzf,GACd8c,GAAO,EAAE,OAAA9c,EAAK,CAAE,GAIZqM,EAAK,oBAAoB,MAAS6Q,GAAM,cAAcmF,CAAS;AACjE;AAGF,YAAMC,IAAUpF,GAAM,YAAYuC,EAAK,KAAK;AAK5C,UAJAtd,EAAM,SAASA,EAAM,OAAO,MAAM,GAAG,CAACsd,EAAK,MAAM,MAAM,GAInDpT,EAAK,oBAAoB,IAAM;AACjC,QAAAlK,EAAM,UAAUmgB,GAChB7C,EAAK,QAAQ6C;AACb;AAAA,MACD;AAGD,MAAA7C,EAAK,QAAQ,IAAIgB,CAAO,GAAG6B,CAAO,IAAI7C,EAAK,KAAK,KAChDtd,EAAM,UAAUsd,EAAK;AACrB;AAAA,IACD;AAMD,QAAIzf,MAAU,OAAOqM,EAAK,YAAY,IAAM;AAC1C,MAAAiV,GAAU,QAAQ;AAElB,YAAMiB,IAAO;AAAA,QACX,MAAM;AAAA,QACN,OAAAviB;AAAA,QACA,QAAQ;AAAA,QACR,aAAamC,EAAM,OAAO;AAAA,QAC1B,aAAaA,EAAM,OAAO;AAAA,MAClC;AAEM,MAAAqd,EAAO,KAAK+C,CAAI,GAChBf,EAAKe,CAAI;AACT;AAAA,IACD;AAED,QAAIviB,MAAU,KAAK;AACjB,YAAMwiB,IAAQhD,EAAOA,EAAO,SAAS,CAAC;AAEtC,UAAInT,EAAK,YAAY,MAAQ,CAACmW,GAAO;AACnC,QAAAhB,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,GAAO,QAAQA,EAAK,CAAE;AAC3C;AAAA,MACD;AAED,UAAI4c,IAAS;AAEb,UAAI4F,EAAM,SAAS,IAAM;AACvB,cAAM1Z,IAAM4V,EAAO,SACb+D,IAAQ,CAAA;AAEd,iBAAS3kB,IAAIgL,EAAI,SAAS,GAAGhL,KAAK,MAChC4gB,EAAO,IAAG,GACN5V,EAAIhL,CAAC,EAAE,SAAS,UAFeA;AAKnC,UAAIgL,EAAIhL,CAAC,EAAE,SAAS,UAClB2kB,EAAM,QAAQ3Z,EAAIhL,CAAC,EAAE,KAAK;AAI9B,QAAA8e,IAASwD,GAAYqC,GAAOpW,CAAI,GAChClK,EAAM,YAAY;AAAA,MACnB;AAED,UAAIqgB,EAAM,UAAU,MAAQA,EAAM,SAAS,IAAM;AAC/C,cAAM5L,IAAMzU,EAAM,OAAO,MAAM,GAAGqgB,EAAM,WAAW,GAC7CE,IAAOvgB,EAAM,OAAO,MAAMqgB,EAAM,WAAW;AACjD,QAAAA,EAAM,QAAQA,EAAM,SAAS,OAC7BxiB,IAAQ4c,IAAS,OACjBza,EAAM,SAASyU;AACf,mBAAW3I,KAAKyU;AACd,UAAAvgB,EAAM,UAAW8L,EAAE,UAAUA,EAAE;AAAA,MAElC;AAED,MAAAuT,EAAK,EAAE,MAAM,SAAS,OAAAxhB,GAAO,QAAA4c,EAAQ,CAAA,GACrC2E,GAAU,QAAQ,GAClB/B,EAAO,IAAG;AACV;AAAA,IACD;AAMD,QAAIxf,MAAU,KAAK;AACjB,MAAIghB,EAAS,SAAS,KACpBA,EAASA,EAAS,SAAS,CAAC,EAAE,cAEhCQ,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,EAAO,CAAA;AAC5B;AAAA,IACD;AAMD,QAAIA,MAAU,KAAK;AACjB,UAAI4c,IAAS5c;AAEb,YAAMwiB,IAAQhD,EAAOA,EAAO,SAAS,CAAC;AACtC,MAAIgD,KAASze,EAAMA,EAAM,SAAS,CAAC,MAAM,aACvCye,EAAM,QAAQ,IACd5F,IAAS,MAGX4E,EAAK,EAAE,MAAM,SAAS,OAAAxhB,GAAO,QAAA4c,EAAQ,CAAA;AACrC;AAAA,IACD;AAMD,QAAI5c,MAAU,KAAK;AAKjB,UAAIyf,EAAK,SAAS,SAAStd,EAAM,UAAUA,EAAM,QAAQ,GAAG;AAC1D,QAAAA,EAAM,QAAQA,EAAM,QAAQ,GAC5BA,EAAM,WAAW,IACjBA,EAAM,SAAS,IACfuc,EAAO,IAAG,GACVe,IAAOe;AACP;AAAA,MACD;AAED,MAAAgB,EAAK,EAAE,MAAM,SAAS,OAAAxhB,GAAO,QAAQ+a,EAAa,CAAE;AACpD;AAAA,IACD;AAMD,QAAI/a,MAAU,KAAK;AACjB,UAAImC,EAAM,SAAS,KAAKsd,EAAK,SAAS,OAAO;AAC3C,QAAIA,EAAK,UAAU,QAAKA,EAAK,SAAS7E;AACtC,cAAM4H,IAAQhD,EAAOA,EAAO,SAAS,CAAC;AACtC,QAAAC,EAAK,OAAO,QACZA,EAAK,UAAUzf,GACfyf,EAAK,SAASzf,GACdwiB,EAAM,OAAO;AACb;AAAA,MACD;AAED,UAAKrgB,EAAM,SAASA,EAAM,WAAY,KAAKsd,EAAK,SAAS,SAASA,EAAK,SAAS,SAAS;AACvF,QAAA+B,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,GAAO,QAAQ4a,EAAW,CAAE;AACjD;AAAA,MACD;AAED,MAAA4G,EAAK,EAAE,MAAM,OAAO,OAAAxhB,GAAO,QAAQ4a,EAAW,CAAE;AAChD;AAAA,IACD;AAMD,QAAI5a,MAAU,KAAK;AAEjB,UAAI,EADYyf,KAAQA,EAAK,UAAU,QACvBpT,EAAK,cAAc,MAAQnK,EAAM,MAAK,OAAOA,EAAK,CAAC,MAAM,KAAK;AAC5E,QAAAwf,GAAY,SAAS1hB,CAAK;AAC1B;AAAA,MACD;AAED,UAAIyf,KAAQA,EAAK,SAAS,SAAS;AACjC,cAAMG,IAAO1d;AACb,YAAI0a,IAAS5c;AAEb,SAAKyf,EAAK,UAAU,OAAO,CAAC,SAAS,KAAKG,CAAI,KAAOA,MAAS,OAAO,CAAC,eAAe,KAAKqB,GAAW,CAAA,OACnGrE,IAAS,KAAK5c,CAAK,KAGrBwhB,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,GAAO,QAAA4c,EAAQ,CAAA;AACpC;AAAA,MACD;AAED,UAAIvQ,EAAK,QAAQ,OAASoT,EAAK,SAAS,WAAWA,EAAK,SAAS,QAAQ;AACvE,QAAA+B,EAAK,EAAE,MAAM,SAAS,OAAAxhB,GAAO,QAAQyb,EAAY,CAAE;AACnD;AAAA,MACD;AAED,MAAA+F,EAAK,EAAE,MAAM,SAAS,OAAAxhB,GAAO,QAAQib,EAAK,CAAE;AAC5C;AAAA,IACD;AAMD,QAAIjb,MAAU,KAAK;AACjB,UAAIqM,EAAK,cAAc,MAAQnK,EAAI,MAAO,QACpCA,EAAK,CAAC,MAAM,OAAO,CAAC,SAAS,KAAKA,EAAK,CAAC,CAAC,IAAG;AAC9C,QAAAwf,GAAY,UAAU1hB,CAAK;AAC3B;AAAA,MACD;AAGH,UAAIqM,EAAK,aAAa,MAAQlK,EAAM,UAAU,GAAG;AAC/C,QAAAif;AACA;AAAA,MACD;AAAA,IACF;AAMD,QAAIphB,MAAU,KAAK;AACjB,UAAIqM,EAAK,cAAc,MAAQnK,EAAI,MAAO,OAAOA,EAAK,CAAC,MAAM,KAAK;AAChE,QAAAwf,GAAY,QAAQ1hB,CAAK;AACzB;AAAA,MACD;AAED,UAAKyf,KAAQA,EAAK,UAAU,OAAQpT,EAAK,UAAU,IAAO;AACxD,QAAAmV,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,GAAO,QAAQ6a,EAAY,CAAE;AAClD;AAAA,MACD;AAED,UAAK4E,MAASA,EAAK,SAAS,aAAaA,EAAK,SAAS,WAAWA,EAAK,SAAS,YAAatd,EAAM,SAAS,GAAG;AAC7G,QAAAqf,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,EAAO,CAAA;AAC5B;AAAA,MACD;AAED,MAAAwhB,EAAK,EAAE,MAAM,QAAQ,OAAO3G,EAAc,CAAA;AAC1C;AAAA,IACD;AAMD,QAAI7a,MAAU,KAAK;AACjB,UAAIqM,EAAK,cAAc,MAAQnK,EAAI,MAAO,OAAOA,EAAK,CAAC,MAAM,KAAK;AAChE,QAAAsf,EAAK,EAAE,MAAM,MAAM,SAAS,IAAM,OAAAxhB,GAAO,QAAQ,GAAE,CAAE;AACrD;AAAA,MACD;AAED,MAAAwhB,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,EAAO,CAAA;AAC5B;AAAA,IACD;AAMD,QAAIA,MAAU,KAAK;AACjB,OAAIA,MAAU,OAAOA,MAAU,SAC7BA,IAAQ,KAAKA,CAAK;AAGpB,YAAM/C,IAAQgjB,GAAwB,KAAKgB,GAAW,CAAA;AACtD,MAAIhkB,MACF+C,KAAS/C,EAAM,CAAC,GAChBkF,EAAM,SAASlF,EAAM,CAAC,EAAE,SAG1BukB,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,EAAO,CAAA;AAC5B;AAAA,IACD;AAMD,QAAIyf,MAASA,EAAK,SAAS,cAAcA,EAAK,SAAS,KAAO;AAC5D,MAAAA,EAAK,OAAO,QACZA,EAAK,OAAO,IACZA,EAAK,SAASzf,GACdyf,EAAK,SAASsB,GACd5e,EAAM,YAAY,IAClBA,EAAM,WAAW,IACjB+e,GAAQlhB,CAAK;AACb;AAAA,IACD;AAED,QAAI4hB,IAAOX;AACX,QAAI5U,EAAK,cAAc,MAAQ,UAAU,KAAKuV,CAAI,GAAG;AACnD,MAAAF,GAAY,QAAQ1hB,CAAK;AACzB;AAAA,IACD;AAED,QAAIyf,EAAK,SAAS,QAAQ;AACxB,UAAIpT,EAAK,eAAe,IAAM;AAC5B,QAAA6U,GAAQlhB,CAAK;AACb;AAAA,MACD;AAED,YAAM2iB,IAAQlD,EAAK,MACbmD,IAASD,EAAM,MACfE,IAAUF,EAAM,SAAS,WAAWA,EAAM,SAAS,OACnDG,IAAYF,MAAWA,EAAO,SAAS,UAAUA,EAAO,SAAS;AAEvE,UAAIvW,EAAK,SAAS,OAAS,CAACwW,KAAYjB,EAAK,CAAC,KAAKA,EAAK,CAAC,MAAM,MAAO;AACpE,QAAAJ,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,GAAO,QAAQ,GAAE,CAAE;AACxC;AAAA,MACD;AAED,YAAM8e,IAAU3c,EAAM,SAAS,MAAMwgB,EAAM,SAAS,WAAWA,EAAM,SAAS,UACxE1D,KAAY+B,EAAS,WAAW2B,EAAM,SAAS,UAAUA,EAAM,SAAS;AAC9E,UAAI,CAACE,KAAWF,EAAM,SAAS,WAAW,CAAC7D,KAAW,CAACG,IAAW;AAChE,QAAAuC,EAAK,EAAE,MAAM,QAAQ,OAAAxhB,GAAO,QAAQ,GAAE,CAAE;AACxC;AAAA,MACD;AAGD,aAAO4hB,EAAK,MAAM,GAAG,CAAC,MAAM,SAAO;AACjC,cAAMmB,KAAQ9jB,EAAMkD,EAAM,QAAQ,CAAC;AACnC,YAAI4gB,MAASA,OAAU;AACrB;AAEF,QAAAnB,IAAOA,EAAK,MAAM,CAAC,GACnBV,GAAQ,OAAO,CAAC;AAAA,MACjB;AAED,UAAIyB,EAAM,SAAS,SAASjD,GAAG,GAAI;AACjC,QAAAD,EAAK,OAAO,YACZA,EAAK,SAASzf,GACdyf,EAAK,SAASmB,EAASvU,CAAI,GAC3BlK,EAAM,SAASsd,EAAK,QACpBtd,EAAM,WAAW,IACjB+e,GAAQlhB,CAAK;AACb;AAAA,MACD;AAED,UAAI2iB,EAAM,SAAS,WAAWA,EAAM,KAAK,SAAS,SAAS,CAACG,KAAapD,MAAO;AAC9E,QAAAvd,EAAM,SAASA,EAAM,OAAO,MAAM,GAAG,EAAEwgB,EAAM,SAASlD,EAAK,QAAQ,MAAM,GACzEkD,EAAM,SAAS,MAAMA,EAAM,MAAM,IAEjClD,EAAK,OAAO,YACZA,EAAK,SAASmB,EAASvU,CAAI,KAAKA,EAAK,gBAAgB,MAAM,QAC3DoT,EAAK,SAASzf,GACdmC,EAAM,WAAW,IACjBA,EAAM,UAAUwgB,EAAM,SAASlD,EAAK,QACpCyB,GAAQlhB,CAAK;AACb;AAAA,MACD;AAED,UAAI2iB,EAAM,SAAS,WAAWA,EAAM,KAAK,SAAS,SAASf,EAAK,CAAC,MAAM,KAAK;AAC1E,cAAMoB,KAAMpB,EAAK,CAAC,MAAM,SAAS,OAAO;AAExC,QAAAzf,EAAM,SAASA,EAAM,OAAO,MAAM,GAAG,EAAEwgB,EAAM,SAASlD,EAAK,QAAQ,MAAM,GACzEkD,EAAM,SAAS,MAAMA,EAAM,MAAM,IAEjClD,EAAK,OAAO,YACZA,EAAK,SAAS,GAAGmB,EAASvU,CAAI,CAAC,GAAG0O,CAAa,IAAIA,CAAa,GAAGiI,EAAG,KACtEvD,EAAK,SAASzf,GAEdmC,EAAM,UAAUwgB,EAAM,SAASlD,EAAK,QACpCtd,EAAM,WAAW,IAEjB+e,GAAQlhB,IAAQ2f,EAAO,CAAE,GAEzB6B,EAAK,EAAE,MAAM,SAAS,OAAO,KAAK,QAAQ,GAAE,CAAE;AAC9C;AAAA,MACD;AAED,UAAImB,EAAM,SAAS,SAASf,EAAK,CAAC,MAAM,KAAK;AAC3C,QAAAnC,EAAK,OAAO,YACZA,EAAK,SAASzf,GACdyf,EAAK,SAAS,QAAQ1E,CAAa,IAAI6F,EAASvU,CAAI,CAAC,GAAG0O,CAAa,KACrE5Y,EAAM,SAASsd,EAAK,QACpBtd,EAAM,WAAW,IACjB+e,GAAQlhB,IAAQ2f,EAAO,CAAE,GACzB6B,EAAK,EAAE,MAAM,SAAS,OAAO,KAAK,QAAQ,GAAE,CAAE;AAC9C;AAAA,MACD;AAGD,MAAArf,EAAM,SAASA,EAAM,OAAO,MAAM,GAAG,CAACsd,EAAK,OAAO,MAAM,GAGxDA,EAAK,OAAO,YACZA,EAAK,SAASmB,EAASvU,CAAI,GAC3BoT,EAAK,SAASzf,GAGdmC,EAAM,UAAUsd,EAAK,QACrBtd,EAAM,WAAW,IACjB+e,GAAQlhB,CAAK;AACb;AAAA,IACD;AAED,UAAMse,IAAQ,EAAE,MAAM,QAAQ,OAAAte,GAAO,QAAQ+gB;AAE7C,QAAI1U,EAAK,SAAS,IAAM;AACtB,MAAAiS,EAAM,SAAS,QACXmB,EAAK,SAAS,SAASA,EAAK,SAAS,aACvCnB,EAAM,SAASuC,IAAQvC,EAAM,SAE/BkD,EAAKlD,CAAK;AACV;AAAA,IACD;AAED,QAAImB,MAASA,EAAK,SAAS,aAAaA,EAAK,SAAS,YAAYpT,EAAK,UAAU,IAAM;AACrF,MAAAiS,EAAM,SAASte,GACfwhB,EAAKlD,CAAK;AACV;AAAA,IACD;AAED,KAAInc,EAAM,UAAUA,EAAM,SAASsd,EAAK,SAAS,WAAWA,EAAK,SAAS,WACpEA,EAAK,SAAS,SAChBtd,EAAM,UAAUoZ,GAChBkE,EAAK,UAAUlE,KAENlP,EAAK,QAAQ,MACtBlK,EAAM,UAAUqZ,GAChBiE,EAAK,UAAUjE,MAGfrZ,EAAM,UAAU0e,GAChBpB,EAAK,UAAUoB,IAGb3e,EAAM,MAAK,QACbC,EAAM,UAAU6Y,GAChByE,EAAK,UAAUzE,KAInBwG,EAAKlD,CAAK;AAAA,EACX;AAED,SAAOnc,EAAM,WAAW,KAAG;AACzB,QAAIkK,EAAK,mBAAmB;AAAM,YAAM,IAAI,YAAYgU,GAAY,WAAW,GAAG,CAAC;AACnF,IAAAle,EAAM,SAAS+a,GAAM,WAAW/a,EAAM,QAAQ,GAAG,GACjDof,GAAU,UAAU;AAAA,EACrB;AAED,SAAOpf,EAAM,SAAS,KAAG;AACvB,QAAIkK,EAAK,mBAAmB;AAAM,YAAM,IAAI,YAAYgU,GAAY,WAAW,GAAG,CAAC;AACnF,IAAAle,EAAM,SAAS+a,GAAM,WAAW/a,EAAM,QAAQ,GAAG,GACjDof,GAAU,QAAQ;AAAA,EACnB;AAED,SAAOpf,EAAM,SAAS,KAAG;AACvB,QAAIkK,EAAK,mBAAmB;AAAM,YAAM,IAAI,YAAYgU,GAAY,WAAW,GAAG,CAAC;AACnF,IAAAle,EAAM,SAAS+a,GAAM,WAAW/a,EAAM,QAAQ,GAAG,GACjDof,GAAU,QAAQ;AAAA,EACnB;AAOD,MALIlV,EAAK,kBAAkB,OAASoT,EAAK,SAAS,UAAUA,EAAK,SAAS,cACxE+B,EAAK,EAAE,MAAM,eAAe,OAAO,IAAI,QAAQ,GAAGzG,CAAa,IAAK,CAAA,GAIlE5Y,EAAM,cAAc,IAAM;AAC5B,IAAAA,EAAM,SAAS;AAEf,eAAWmc,KAASnc,EAAM;AACxB,MAAAA,EAAM,UAAUmc,EAAM,UAAU,OAAOA,EAAM,SAASA,EAAM,OAExDA,EAAM,WACRnc,EAAM,UAAUmc,EAAM;AAAA,EAG3B;AAED,SAAOnc;AACT;AAQAme,GAAM,YAAY,CAACrhB,GAAOuC,MAAY;AACpC,QAAM6K,IAAO,EAAE,GAAG7K,KACZ+e,IAAM,OAAOlU,EAAK,aAAc,WAAW,KAAK,IAAI2T,IAAY3T,EAAK,SAAS,IAAI2T,IAClF/S,IAAMhO,EAAM;AAClB,MAAIgO,IAAMsT;AACR,UAAM,IAAI,YAAY,iBAAiBtT,CAAG,qCAAqCsT,CAAG,EAAE;AAGtF,EAAAthB,IAAQkhB,GAAalhB,CAAK,KAAKA;AAG/B,QAAM;AAAA,IACJ,aAAA2b;AAAA,IACA,eAAAG;AAAA,IACA,UAAAC;AAAA,IACA,YAAAI;AAAA,IACA,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,eAAAE;AAAA,IACA,MAAAE;AAAA,IACA,cAAAP;AAAA,EACD,IAAGY,GAAU,UAAU1P,EAAK,OAAO,GAE9BwU,IAAQxU,EAAK,MAAMiP,IAAUD,GAC7B4H,IAAW5W,EAAK,MAAMmP,IAAgBH,GACtCoF,IAAUpU,EAAK,UAAU,KAAK,MAC9BlK,IAAQ,EAAE,SAAS,IAAO,QAAQ,GAAE;AAC1C,MAAI4e,IAAO1U,EAAK,SAAS,KAAO,QAAQqP;AAExC,EAAIrP,EAAK,YACP0U,IAAO,IAAIA,CAAI;AAGjB,QAAMH,IAAW,CAAAvU,MACXA,EAAK,eAAe,KAAa0U,IAC9B,IAAIN,CAAO,SAAStF,CAAY,GAAG9O,EAAK,MAAM+O,IAAaR,CAAW,UAGzEzR,IAAS,CAAAiP,MAAO;AACpB,YAAQA,GAAG;AAAA,MACT,KAAK;AACH,eAAO,GAAGyI,CAAK,GAAG7F,CAAQ,GAAG+F,CAAI;AAAA,MAEnC,KAAK;AACH,eAAO,GAAGnG,CAAW,GAAGI,CAAQ,GAAG+F,CAAI;AAAA,MAEzC,KAAK;AACH,eAAO,GAAGF,CAAK,GAAGE,CAAI,GAAGnG,CAAW,GAAGI,CAAQ,GAAG+F,CAAI;AAAA,MAExD,KAAK;AACH,eAAO,GAAGF,CAAK,GAAGE,CAAI,GAAGhG,CAAa,GAAGC,CAAQ,GAAGiI,CAAQ,GAAGlC,CAAI;AAAA,MAErE,KAAK;AACH,eAAOF,IAAQD,EAASvU,CAAI;AAAA,MAE9B,KAAK;AACH,eAAO,MAAMwU,CAAK,GAAGD,EAASvU,CAAI,CAAC,GAAG0O,CAAa,KAAKkI,CAAQ,GAAGjI,CAAQ,GAAG+F,CAAI;AAAA,MAEpF,KAAK;AACH,eAAO,MAAMF,CAAK,GAAGD,EAASvU,CAAI,CAAC,GAAG0O,CAAa,KAAKkI,CAAQ,GAAGlC,CAAI,GAAGnG,CAAW,GAAGI,CAAQ,GAAG+F,CAAI;AAAA,MAEzG,KAAK;AACH,eAAO,MAAMF,CAAK,GAAGD,EAASvU,CAAI,CAAC,GAAG0O,CAAa,KAAKH,CAAW,GAAGI,CAAQ,GAAG+F,CAAI;AAAA,MAEvF,SAAS;AACP,cAAM9jB,IAAQ,iBAAiB,KAAKmb,CAAG;AACvC,YAAI,CAACnb;AAAO;AAEZ,cAAMiJ,IAASiD,EAAOlM,EAAM,CAAC,CAAC;AAC9B,eAAKiJ,IAEEA,IAAS0U,IAAc3d,EAAM,CAAC,IAFxB;AAAA,MAGd;AAAA,IACF;AAAA,EACL,GAEQ2f,IAASM,GAAM,aAAaje,GAAOkD,CAAK;AAC9C,MAAI+D,IAASiD,EAAOyT,CAAM;AAE1B,SAAI1W,KAAUmG,EAAK,kBAAkB,OACnCnG,KAAU,GAAG6U,CAAa,MAGrB7U;AACT;AAEA,IAAAgd,KAAiB5C;AC1jCjB,MAAM/B,KAAOlC,IACPiE,KAAQpC,IACRhB,KAAQiG,IACRpH,KAAYqH,IACZC,KAAW,CAAA9G,MAAOA,KAAO,OAAOA,KAAQ,YAAY,CAAC,MAAM,QAAQA,CAAG,GAwBtE+G,IAAY,CAACzD,GAAMre,GAAS+hB,IAAc,OAAU;AACxD,MAAI,MAAM,QAAQ1D,CAAI,GAAG;AACvB,UAAM2D,IAAM3D,EAAK,IAAI,CAAA5gB,MAASqkB,EAAUrkB,GAAOuC,GAAS+hB,CAAW,CAAC;AAQpE,WAPqB,CAAAnL,MAAO;AAC1B,iBAAWqL,KAAWD,GAAK;AACzB,cAAMrhB,IAAQshB,EAAQrL,CAAG;AACzB,YAAIjW;AAAO,iBAAOA;AAAA,MACnB;AACD,aAAO;AAAA,IACb;AAAA,EAEG;AAED,QAAMuhB,IAAUL,GAASxD,CAAI,KAAKA,EAAK,UAAUA,EAAK;AAEtD,MAAIA,MAAS,MAAO,OAAOA,KAAS,YAAY,CAAC6D;AAC/C,UAAM,IAAI,UAAU,2CAA2C;AAGjE,QAAMrX,IAAO7K,KAAW,IAClB2gB,IAAQ9V,EAAK,SACbsX,IAAQD,IACVJ,EAAU,UAAUzD,GAAMre,CAAO,IACjC8hB,EAAU,OAAOzD,GAAMre,GAAS,IAAO,EAAI,GAEzCW,IAAQwhB,EAAM;AACpB,SAAOA,EAAM;AAEb,MAAIC,IAAY,MAAM;AACtB,MAAIvX,EAAK,QAAQ;AACf,UAAMwX,IAAa,EAAE,GAAGriB,GAAS,QAAQ,MAAM,SAAS,MAAM,UAAU;AACxE,IAAAoiB,IAAYN,EAAUjX,EAAK,QAAQwX,GAAYN,CAAW;AAAA,EAC3D;AAED,QAAMO,IAAU,CAAC7kB,GAAO8kB,IAAe,OAAU;AAC/C,UAAM,EAAE,SAAAN,GAAS,OAAAxmB,GAAO,QAAA2f,EAAM,IAAK0G,EAAU,KAAKrkB,GAAO0kB,GAAOniB,GAAS,EAAE,MAAAqe,GAAM,OAAAsC,EAAO,CAAA,GAClFxb,IAAS,EAAE,MAAAkZ,GAAM,OAAA1d,GAAO,OAAAwhB,GAAO,OAAAxB,GAAO,OAAAljB,GAAO,QAAA2d,GAAQ,OAAA3f,GAAO,SAAAwmB;AAMlE,WAJI,OAAOpX,EAAK,YAAa,cAC3BA,EAAK,SAAS1F,CAAM,GAGlB8c,MAAY,MACd9c,EAAO,UAAU,IACVod,IAAepd,IAAS,MAG7Bid,EAAU3kB,CAAK,KACb,OAAOoN,EAAK,YAAa,cAC3BA,EAAK,SAAS1F,CAAM,GAEtBA,EAAO,UAAU,IACVod,IAAepd,IAAS,OAG7B,OAAO0F,EAAK,WAAY,cAC1BA,EAAK,QAAQ1F,CAAM,GAEdod,IAAepd,IAAS;AAAA,EACnC;AAEE,SAAI4c,MACFO,EAAQ,QAAQ3hB,IAGX2hB;AACT;AAmBAR,EAAU,OAAO,CAACrkB,GAAO0kB,GAAOniB,GAAS,EAAE,MAAAqe,GAAM,OAAAsC,EAAO,IAAG,OAAO;AAChE,MAAI,OAAOljB,KAAU;AACnB,UAAM,IAAI,UAAU,+BAA+B;AAGrD,MAAIA,MAAU;AACZ,WAAO,EAAE,SAAS,IAAO,QAAQ,GAAE;AAGrC,QAAMoN,IAAO7K,KAAW,IAClBwiB,IAAS3X,EAAK,WAAW8V,IAAQjF,GAAM,iBAAiB;AAC9D,MAAIjgB,IAAQgC,MAAU4gB,GAClBjD,IAAU3f,KAAS+mB,IAAUA,EAAO/kB,CAAK,IAAIA;AAEjD,SAAIhC,MAAU,OACZ2f,IAASoH,IAASA,EAAO/kB,CAAK,IAAIA,GAClChC,IAAQ2f,MAAWiD,KAGjB5iB,MAAU,MAASoP,EAAK,YAAY,QAClCA,EAAK,cAAc,MAAQA,EAAK,aAAa,KAC/CpP,IAAQqmB,EAAU,UAAUrkB,GAAO0kB,GAAOniB,GAAS2gB,CAAK,IAExDllB,IAAQ0mB,EAAM,KAAK/G,CAAM,IAItB,EAAE,SAAS,EAAQ3f,GAAQ,OAAAA,GAAO,QAAA2f;AAC3C;AAgBA0G,EAAU,YAAY,CAACrkB,GAAO4gB,GAAMre,OACpBqe,aAAgB,SAASA,IAAOyD,EAAU,OAAOzD,GAAMre,CAAO,GAC/D,KAAK0b,GAAM,SAASje,CAAK,CAAC;AAoBzCqkB,EAAU,UAAU,CAAClL,GAAK6L,GAAUziB,MAAY8hB,EAAUW,GAAUziB,CAAO,EAAE4W,CAAG;AAgBhFkL,EAAU,QAAQ,CAACY,GAAS1iB,MACtB,MAAM,QAAQ0iB,CAAO,IAAUA,EAAQ,IAAI,CAAAhX,MAAKoW,EAAU,MAAMpW,GAAG1L,CAAO,CAAC,IACxE8e,GAAM4D,GAAS,EAAE,GAAG1iB,GAAS,WAAW,GAAK,CAAE;AA8BxD8hB,EAAU,OAAO,CAACrkB,GAAOuC,MAAY+c,GAAKtf,GAAOuC,CAAO;AAcxD8hB,EAAU,YAAY,CAACnhB,GAAOX,GAAS2iB,IAAe,IAAOZ,IAAc,OAAU;AACnF,MAAIY,MAAiB;AACnB,WAAOhiB,EAAM;AAGf,QAAMkK,IAAO7K,KAAW,IAClBqb,IAAUxQ,EAAK,WAAW,KAAK,KAC/ByQ,IAASzQ,EAAK,WAAW,KAAK;AAEpC,MAAInG,IAAS,GAAG2W,CAAO,MAAM1a,EAAM,MAAM,IAAI2a,CAAM;AACnD,EAAI3a,KAASA,EAAM,YAAY,OAC7B+D,IAAS,OAAOA,CAAM;AAGxB,QAAMyd,IAAQL,EAAU,QAAQpd,GAAQ1E,CAAO;AAC/C,SAAI+hB,MAAgB,OAClBI,EAAM,QAAQxhB,IAGTwhB;AACT;AAqBAL,EAAU,SAAS,CAACrkB,GAAOuC,IAAU,CAAE,GAAE2iB,IAAe,IAAOZ,IAAc,OAAU;AACrF,MAAI,CAACtkB,KAAS,OAAOA,KAAU;AAC7B,UAAM,IAAI,UAAU,6BAA6B;AAGnD,MAAImlB,IAAS,EAAE,SAAS,IAAO,WAAW,GAAI;AAE9C,SAAI5iB,EAAQ,cAAc,OAAUvC,EAAM,CAAC,MAAM,OAAOA,EAAM,CAAC,MAAM,SACnEmlB,EAAO,SAAS9D,GAAM,UAAUrhB,GAAOuC,CAAO,IAG3C4iB,EAAO,WACVA,IAAS9D,GAAMrhB,GAAOuC,CAAO,IAGxB8hB,EAAU,UAAUc,GAAQ5iB,GAAS2iB,GAAcZ,CAAW;AACvE;AAmBAD,EAAU,UAAU,CAACpd,GAAQ1E,MAAY;AACvC,MAAI;AACF,UAAM6K,IAAO7K,KAAW;AACxB,WAAO,IAAI,OAAO0E,GAAQmG,EAAK,UAAUA,EAAK,SAAS,MAAM,GAAG;AAAA,EACjE,SAAQ9B,GAAK;AACZ,QAAI/I,KAAWA,EAAQ,UAAU;AAAM,YAAM+I;AAC7C,WAAO;AAAA,EACR;AACH;AAOA+Y,EAAU,YAAYvH;AAMtB,IAAAsI,KAAiBf,GClVjBnB,KAAiB9F;mCCeX1d,KAAawL,GAAkB,KAAK,GAE7Bma,KAA+B,OAC1CC,GACAvnB,MAGE;AACI,QAAAwnB,IAAc,IAAI,IAAID,CAAG;AACnB,EAAAC,EAAA,WACVA,EAAY,YACXA,EAAY,SAAS,SAAS,GAAG,IAAI,kBAAkB;AAMpD,QAAAC,IAAa,OALF,MAAM9lB,GAAW6lB,EAAY,MAAM;AAAA,IAClD,UAAU;AAAA,IACV,SAAS;AAAA,IACT,YAAY;AAAA,EAAA,CACb,GACiC;AAK3B,SAJqB,MAAMpa,GAChCqa,GACAznB,KAAWR,EAAsB;AAGrC,GAEakoB,KAAgC,OAC3CH,GACAvnB,MAME;AAME,MAJAunB,EAAI,WAAW,OAAO,KAItBA,EAAI,WAAW,yBAAyB;AACnC;AAGH,QAAAI,IAAe,IAAI,IAAIJ,CAAG;AAChC,MAAII,EAAa,OAAO,SAAS,cAAc;AACtC;AAIL,MAAAC,IACFC,GAA6BN,GAAK,YAAY;AAEhD,MAAIK,KAAA,QAAAA,EAAsB;AACxB,WAAOzY,GAAqCyY,CAAoB;AAIlE,EAAKD,EAAa,SAAS,SAAS,gBAAgB,MACrCA,EAAA,WACXA,EAAa,YACZA,EAAa,SAAS,SAAS,GAAG,IAC/B,mBACA;AAEJ,MAAA;AACF,UAAMhlB,IAAW,MAAMhB,GAAWgmB,EAAa,MAAM;AAAA,MACnD,UAAU;AAAA,MACV,SAAS;AAAA,MACT,YAAY;AAAA,IAAA,CACb;AACG,QAAAhlB,EAAS,WAAW;AACf;AAEH,UAAA8kB,IAAa,MAAM9kB,EAAS;AAK3B,WAJqB,MAAM4L,GAChCkZ,GACAznB,KAAWT,EAAuB;AAAA,WAG7BuD,GAAO;AACd,YAAQ,MACN,4CAA4C6kB,EAAa,IAAI,KAAK7kB,CAAK,EAAE;AAEpE;AAAA,EACT;AACF,GAEaglB,KAA6B,CACxCL,MAKKA,IAGD,EAAAA,KAAA,QAAAA,EAAY,UAAU,OAAO,KAAKA,EAAW,MAAM,EAAE,SAAS,KAG9DA,KAAA,QAAAA,EAAY,WAAW,OAAO,KAAKA,EAAW,OAAO,EAAE,SAAS,KAGhEA,KAAA,QAAAA,EAAY,SAGZA,KAAA,QAAAA,EAAY,YAAY,OAAO,KAAKA,EAAW,QAAQ,EAAE,SAAS,KAX7D;AC1EL,MAAOM,WAAgC7P,GAAAA,aAE5C;AAAA,EAsBC,YACE0D,GACA2L,GACAS,GACAC,GACAC,GACAC,IAAiB,IAAK;AAOlB,iBA1BN,KAAM,SAAsB,IAC5B,KAAO,UAAsB,IAC7B,KAAY,eAAe,IAC3B,KAAa,gBAAyC,IACtD,KAAO,UAAY,IACnB,KAAS,YAAe,IAGxB,KAA4B,+BAAY,IAqNxC,KAAA,2BAGI;AAAA,MACF,UAAU;AAAA,MACV,QAAQ;AAAA,IAAA,GAwCV,KAAA,4BAA4B;AAAA,MAC1B,UAAU;AAAA,MACV,QAAQ;AAAA,IAAA,GAlPJ,CAACZ,EAAI,WAAW,OAAO,KAAK,CAACA,EAAI,WAAW,MAAM,GAAG;AAChD,aAAAA,EAAI,WAAW,GAAG;AACjB,QAAAA,IAAAA,EAAI,UAAU,CAAC;AAEvB,MAAAA,IACE,OAAO,SAAS,WAChB,OACA,OAAO,SAAS,YACf,OAAO,SAAS,QAAQ,OAAO,SAAS,QAAQ,KAC7C,MAAM,OAAO,SAAS,OACtB,MACJ,MACAA;AAAA,IACJ;AAKA,QAJA,KAAK,MAAMA,GACX,KAAK,YAAY3L,GACjB,KAAK,SAASuM,GAEVA,GAAO;AACT,UAAIC,IAAU,IAAI,IAAI,KAAK,GAAG;AAC9B,MAAAA,EAAQ,aAAa,IAAItO,GAAmB,UAAU,MAAM,GAC5D,KAAK,MAAMsO,EAAQ;AAAA,IACrB;AAEA,SAAK,KAAKJ,GACV,KAAK,YAAYC,GACZ,KAAA,SAAS9M,GAAY,KAAK,EAAE,GACjC,KAAK,0BAA0B+M,GAG1B,KAAA,UAAU,SAAS,cAAc,QAAQ,GACzC,KAAA,QAAQ,OAAO,KAAK;AACzB,UAAMG,IAAW;AACjB,SAAK,SAAS,IAAI,QAAQ,CAAC/lB,MAAW;WAGvB,KAAK,YAAW;A3B3G5B,YAAA6B,GAAAoF,GAAAgD,GAAA+b;A2B8GC,YAAID,EAAS,SAAS;AAMpB,eAAIC,KAAA/b,KAAAhD,KAAApF,IAAA,KAAK,cAAL,gBAAAA,EAAgB,gBAAhB,gBAAAoF,EAA6B,eAA7B,gBAAAgD,EAA0C,KAAK,QAA/C,QAAA+b,EAAoD;AAC7C,YAAAD,EAAA,QAAQ,QACf,KAAK,UAAU,YAAY,WAAW,KAAK,EAAE,EAAE,OAC7C,KAAK,UACP,KAAK,IACH,YAAYA,EAAS,QAAQ,KAAK,mCAAmC;AAAA,eAGpE;AAEL,gBAAIT,IACFC,GAA6B,KAAK,KAAK,YAAY;AAQjD,gBANJD,IACEA,MAAwBA,KAAA,QAAAA,EAAsB,WAC1C,MAAMzY,GACJyY,CAAoB,IAEtB,QACF,CAACS,EAAS;AAEZ;AAEF,gBAAIT,KAAA,QAAAA,EAAsB;AACf,cAAAS,EAAA,QAAQ,QAAQT,EAAqB;AAAA,iBACzC;AAED,kBAAAW,IACF,MAAMF,EAAS;AAYb,kBAXA,KAAK,UACP,KAAK,IAAI,mBAAmB,KAAK,UAAUE,CAAY,CAAC,EAAE,GAE5DA,IACEA,MAAgBA,KAAA,QAAAA,EAAc,WAC1B,MAAMpZ,GAAqCoZ,CAAY,IACvD,QAEF,KAAK,UACP,KAAK,IAAI,mBAAmB,KAAK,UAAUA,CAAY,CAAC,EAAE,GAExD,CAACF,EAAS;AAEZ;AAEE,cAAAE,KAAgBA,EAAa,UACtBF,EAAA,QAAQ,QAAQE,EAAa;AAAA,YAE1C;AAAA,UACF;AAEA,UAAI,KAAK,UACF,KAAA,IAAI,YAAYF,EAAS,QAAQ,KAAK,SAAS,KAAK,GAAG,EAAE,GAEvDA,EAAA,QAAQ,MAAM,KAAK,KAC5B/lB,EAAQ+lB,EAAS,OAAO;AAAA,QAC1B;AAAA,MAAA,CACD;AAAA,IAAA,CACF,GAED,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,GAC7B,KAAK,UAAU,KAAK,QAAQ,KAAK,IAAI,GACrC,KAAK,gBAAgB,KAAK,cAAc,KAAK,IAAI,GACjD,KAAK,mBAAmB,KAAK,iBAAiB,KAAK,IAAI,GACvD,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,GAC7B,KAAK,cAAc,KAAK,YAAY,KAAK,IAAI,GAC7C,KAAK,UAAU,KAAK,QAAQ,KAAK,IAAI,GACrC,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,GACvC,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,GACvC,KAAK,YAAY,KAAK,UAAU,KAAK,IAAI,GACzC,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,GACvC,KAAK,aAAa,KAAK,WAAW,KAAK,IAAI,GAC3C,KAAK,aAAa,KAAK,WAAW,KAAK,IAAI,GAC3C,KAAK,0BAA0B,KAAK,wBAAwB,KAAK,IAAI,GACrE,KAAK,UAAU,KAAK,QAAQ,KAAK,IAAI,GACrC,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,GACrD,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,GACvC,KAAK,YAAY,KAAK,UAAU,KAAK,IAAI,GACzC,KAAK,cAAc,KAAK,YAAY,KAAK,IAAI,GAC7C,KAAK,YAAY,KAAK,UAAU,KAAK,IAAI,GACzC,KAAK,aAAa,KAAK,WAAW,KAAK,IAAI,GAC3C,KAAK,4BAA4B,KAAK,0BAA0B,KAAK,IAAI,GACzE,KAAK,aAAa,KAAK,WAAW,KAAK,IAAI;AAAA,EAC7C;AAAA,EAEA,0BACEvQ,GACAC,GAA2B;AAErB,iBAAA,YAAYD,GAAOC,CAAQ,GAChB,MAAK;AACd,YAAA,eAAeD,GAAOC,CAAQ;AAAA,IAAA;AAAA,EAGxC;AAAA,EAEO,YAAY6D,GAAwB;AACzC,gBAAK,YAAYA,GACV;AAAA,EACT;AAAA,EAEO,mBAAgB;AACrB,QAAI2L,IAAM,IAAI,IAAI,KAAK,GAAG;AACtB,WAAAA,EAAA,WACFA,EAAI,YACHA,EAAI,SAAS,SAAS,GAAG,IAAI,mBAAmB,oBAC5CA,EAAI;AAAA,EACb;AAAA,EAUO,MAAM,gBAAa;AACxB,QAAI,KAAK;AACP,aAAO,KAAK;AAGV,QAAA;AACF,YAAMgB,IAAe,MAAMb,GAA8B,KAAK,GAAG;AACjE,UAAIa;AACF,oBAAK,cAAcA,GACZ,KAAK;AAAA,aAEPhb,GAAc;AAEjB,UAAAga,IAAM,KAAK;AAEf,WAAK,KACH1Q,EAAe,SACf,+BAA+B0Q,CAAG;AAAA,SAC/Bha,KAAA,QAAAA,EAAe,UAAWA,KAAA,gBAAAA,EAAe,UAAUA,KAAA,gBAAAA,EAAK,UAC3D,EAAE;AAAA,IAEN;AAAA,EACF;AAAA,EAEO,SAASrG,GAAuBshB,GAAc;AAC3C,YAAA,OAAO,CAAC,CAACthB,CAAI;AACrB,QAAI+N,IAA4B,CAAA;AAChC,IAAAA,EAAO/N,CAAI,IAAIshB,GACf,KAAK,UAAUvT,CAAM;AAAA,EACvB;AAAA,EAYO,UAAUwT,GAAiC;AAChD,SAAK,IAAI,EAAE,GAAG,2BAA2B,QAAQA,GAAgB;AAEjE,UAAMlM,IAAiBkM;AAEnB,QADJ,KAAK,SAASvO,GAAM,KAAK,QAAQuO,CAAc,GAC3C,KAAK,WAAWlM;AACX,aAAA;AAgBT,QAbK,KAAK,YACR,KAAK,+BAA+B,KAMlC,KAAK,QAAQ,cAAc,KAAK,WAClC,KAAK,WAAWkM,CAAc,GAIhC,KAAK,KAAK5R,EAAe,QAAQ,KAAK,MAAM,GACxC,KAAK,UAAU,cAAcA,EAAe,MAAM,IAAI,GAAG;AAC3D,UAAI6R,IAAsC,CAAA;AAC9B,MAAAA,EAAA,KAAK,EAAE,IAAID,GACvB,KAAK,UAAU,KAAK5R,EAAe,QAAQ6R,CAAW;AAAA,IACxD;AAEO,WAAA;AAAA,EACT;AAAA,EAEO,UAAUtO,GAAyBoC,GAAe;AAC/C,YAAA,OAAO,CAAC,CAACpC,CAAM;AACvB,QAAIqC,IAA6B,CAAA;AACjC,IAAAA,EAAQrC,CAAM,IAAIoC,GAClB,KAAK,WAAWC,CAAO;AAAA,EACzB;AAAA,EAMO,WAAWkM,GAAkC;AAClD,UAAMjM,IAAkBiM;AAEpB,QADJ,KAAK,UAAUzO,GAAM,KAAK,SAASyO,CAAe,GAC9C,KAAK,YAAYjM;AACZ,aAAA;AAKT,QAFK,KAAA,KAAK7F,EAAe,SAAS8R,CAAe,GAE7C,KAAK,UAAU,cAAc9R,EAAe,OAAO,IAAI,GAAG;AAC5D,UAAI+R,IAAwC,CAAA;AAC9B,MAAAA,EAAA,KAAK,EAAE,IAAID,GACzB,KAAK,UAAU,KAAK9R,EAAe,SAAS+R,CAAa;AAAA,IAC3D;AAAA,EACF;AAAA,EAEO,SAASjW,GAAiC;AAC/C,WAAO,KAAK,0BAA0BkE,EAAe,QAAQlE,CAAC;AAAA,EAChE;AAAA,EAEO,QAAQkW,GAA2BlW,GAAmB;AACvD,QAAAmW,IAAQ,SAAU7T,GAAyB;AACzC,MAAAA,EAAO,eAAe4T,CAAQ,KAC9BlW,EAAAsC,EAAO4T,CAAQ,CAAC;AAAA,IACpB;AAEF,WAAO,KAAK,0BAA0BhS,EAAe,QAAQiS,CAAK;AAAA,EACpE;AAAA,EAEO,UAAUnW,GAAiC;AAChD,WAAO,KAAK,0BAA0BkE,EAAe,SAASlE,CAAC;AAAA,EACjE;AAAA,EAEO,SAASkW,GAA2BlW,GAAmB;AACxD,QAAAmW,IAAQ,SAAUrM,GAA0B;AAC1C,MAAAA,EAAQ,eAAeoM,CAAQ,KAC/BlW,EAAA8J,EAAQoM,CAAQ,CAAC;AAAA,IACrB;AAEF,WAAO,KAAK,0BAA0BhS,EAAe,SAASiS,CAAK;AAAA,EACrE;AAAA,EAEO,aAAU;AACf,WAAO,KAAK,WAAW;AAAA,EACzB;AAAA,EAEO,UAAO;AAEZ,SADA,MAAM,mBAAkB,GACjB,KAAK,gBAAgB,KAAK,aAAa,SAAS,KAAG;AAClD,YAAAvJ,IAAM,KAAK,aAAa;AAC9B,MAAIA;IAGN;AAEA,SAAK,gBAAgB,QAErB,KAAK,SAAS,QAEd,KAAK,UAAU,QAEX,KAAK,WAAW,KAAK,QAAQ,cAC/B,KAAK,QAAQ,WAAW,YAAY,KAAK,OAAO,GAGlD,KAAK,UAAU,QAEf,KAAK,kBAAkB,QACnB,KAAK,mBACA,OAAA,cAAc,KAAK,cAAc,GAExC,KAAK,iBAAiB,SAGxB,KAAK,YAAY;AAAA,EACnB;AAAA,EAQO,WAAQ;AACb,QAAI5c,IAA0C;AAAA,MAC5C,UAAU,KAAK;AAAA,MACf,UAAU,KAAK;AAAA,MACf,OAAO;AAAA,QACL,QAAQ,KAAK;AAAA,MACd;AAAA,MACD,SAAS/C;AAAA,IAAA;AAEN,SAAA,gBACHmX,GAAyB,2BACzBpU,CAAQ;AAAA,EAEZ;AAAA,EAEO,WAAW3C,GAA0B;AAE1C,QADA,KAAK,IAAI,EAAE,GAAG,sCAAsC,QAAQ,KAAK,QAAQ,GACrE,MAAK,SAGT;AAAA,UAAI,CAACA;AACG,cAAA;AAIR,WAFA,KAAK,UAAUA,GACf,KAAK,UAAU,IACR,KAAK,aAAa,KAAK,UAAU,SAAS;AAC1C,aAAA,UAAU;AAMjB,MAAI,KAAK,gCACF,KAAA,WAAW,KAAK,MAAM;AAAA;AAAA,EAE/B;AAAA,EAEA,MAAM,WAAWiV,GAAyB;AACxC,IAAKA,MAGIA,IAAA,MAAMD,GAAgBC,CAAM,GACjC,MAAK,gBAGJ,KAAA,QAAQ8B,GAAyB,cAAc;AAAA,MAClD,QAAA9B;AAAA,MACA,UAAU,KAAK;AAAA,IAAA,CAChB;AAAA,EACH;AAAA,EAEO,QAAQ2H,GAAgBrG,GAAW;A3BjcrC,QAAApS,GAAAoF;A2BkcH,SAAIpF,IAAA,6BAAM,YAAN,QAAAA,EAAe,cAAc,KAAK;AAC/B,WAAA,gBAAgByY,GAAQrG,CAAM;AAAA,SAC9B;AACC,OAAAhN,IAAA,6BAAA,cAAA,QAAAA,EAAW,MAAM;AACvB,YAAMwf,IAAQ;AACR,2BAAA,UAAU,KAAK,MAAK;AAClB,QAAAA,EAAA,gBAAgBnM,GAAQrG,CAAM;AAAA,MAAA;AAAA,IAExC;AAAA,EACF;AAAA,EAEO,IAAItT,GAAY;AACrB,QAAI,KAAK,QAAQ;AACf,WAAK,IAAI,wCAAwC;AACjD,UAAI0Z,IAAyC;AAAA,QAC3C,SAAA1Z;AAAA,MAAA;AAEG,WAAA,QAAQ8T,GAAyB,YAAY4F,CAAO;AAAA,IAC3D;AAAA,EACF;AAAA,EAEO,IAAIhL,GAAM;AACX,IAAC,KAAK,UAGV,KAAK,YAAYA,CAAC;AAAA,EACpB;AAAA,EAEA,YAAYA,GAAM;AACZ,QAAAxR;AACA,IAAA,OAAOwR,KAAM,WACXxR,IAAAwR,IACK,OAAOA,KAAM,WACtBxR,IAAIwR,IAAI,KAEJxR,IAAA,KAAK,UAAUwR,CAAC,GAEtB0K,GACE,YAAY,KAAK,SAAS,eAAe,KAAK,EAAE,KAAKlc,CAAC,IACtD,KAAK,QACL,KAAK,uBAAuB;AAAA,EAEhC;AAAA,EAEA,gBAAgByc,GAAgBrG,GAAW;AACzC,UAAMyS,IAAyC;AAAA,MAC7C,IAAI;AAAA,MACJ,UAAU,KAAK;AAAA,MACf,SAAS;AAAA,MACT,QAAApM;AAAA,MACA,QAAArG;AAAA,MACA,UAAU,KAAK;AAAA,IAAA;AAEjB,IAAI,KAAK,UACP,KAAK,wBAAwByS,CAAW,IAEpC,KAAK,YACF,KAAA,UAAU,MACb,2CAA2C,KAAK,UAC9CA,CAAW,EACX,UAAU,GAAG,GAAG,CAAC,EAAE,IAGf,QAAA,MACN,2CAA2C,KAAK,UAC9CA,CAAW,EACX,UAAU,GAAG,GAAG,CAAC,EAAE;AAAA,EAI7B;AAAA,EAIA,wBAAwB/lB,GAAY;AAClC,QAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,WAAK,QAAQ,cAAc,YAAYA,GAAS,KAAK,GAAG;AAAA,aAEnD,KAAK;AAcH,WAAA,gBAAgB,KAAKA,CAAO;AAAA,SAdR;AACpB,WAAA,kBAAkB,CAACA,CAAO;AAC/B,YAAM8lB,IAAQ;AACT,WAAA,iBAAiB,OAAO,YAAY,WAAA;AACvC,QAAIA,EAAM,WAAWA,EAAM,QAAQ,kBAC3BA,EAAA,gBAAiB,QAAQ,CAAC3Z,MAC9B2Z,EAAM,QAAS,cAAe,YAAY3Z,GAAG2Z,EAAM,GAAG,CAAC,GAElD,OAAA,cAAcA,EAAM,cAAc,GACzCA,EAAM,iBAAiB,QACvBA,EAAM,kBAAkB;AAAA,SAEzB,CAAC;AAAA,IAAA;AAAA,EAKV;AACD;ACpfD,MAAME,KAA4B9c,EAChC;AAAA,EACE,YAAY;AAAA,IACV,QAAQ,CAAE;AAAA,IACV,SAAS,CAAE;AAAA,EACZ;AACF,GACD,CAAC1C,MAAUA,CAAK,GAGLyf,KAA4B,CACvClpB,MAEO2N,GAA2B3N,CAAO,GAG9BmpB,KAAY,CAACC,GAAoBlgB,MAGxC,IAACA,KAAUA,MAAW,QAMtBkgB,MAAelgB,KAKfod,GAAU,QAAQ8C,GAAYlgB,CAAM,IAkCpCmgB,KAAmC;AAEnC,MAAOC,WAAiBrP,GAAc;AAAA,EAenC,aAAa,KAAKsP,GAAkBtU,GAAY;AACrD,QAAIsU,KAAe;AACX,YAAA;AAEJ,QAAA,OAAOA,KAAgB;AACrB,UAAA;AACY,QAAAA,IAAA,KAAK,MAAMA,CAAW;AAAA,cACxB;AACN,cAAA;AAAA,MACR;AAGE,QAAA3N,IAAW,IAAI0N;AACZ,WAAA1N,EAAS,cAAc2N,CAAW;AAAA,EAC3C;AAAA,EA+CA,YAAYla,GAAwB;aA5CpC,KAAM,SAAkB4Z,IACxB,KAAA,cAAgC9c,EAAO,CAAI,GAAA,CAAC1C,MAAUA,CAAK,GAE3D,KAAK,QAAY8Q,MAIjB,KAA+B,kCAAW,GAG1C,KAAA,wBAA8CpO,EAC5C,CACA,GAAA,CAAC1C,MAAUA,CAAK,GAElB,KAAS,YAEL,IA8BF,KAAK,MAAM4F,KAAQA,EAAK,KAAKA,EAAK,KAAKsL,MACvC,KAAK,0BACHtL,KAAQA,EAAK,QAAQA,EAAK,QAAQga,IAEpC,KAAK,UAAU,KAAK,QAAQ,KAAK,IAAI,GACrC,KAAK,UAAU,KAAK,QAAQ,KAAK,IAAI,GAErC,KAAK,eAAe,KAAK,aAAa,KAAK,IAAI,GAC/C,KAAK,sBAAsB,KAAK,oBAAoB,KAAK,IAAI,GAC7D,KAAK,eAAe,KAAK,aAAa,KAAK,IAAI,GAC/C,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,GACrD,KAAK,eAAe,KAAK,aAAa,KAAK,IAAI,GAC/C,KAAK,gBAAgB,KAAK,cAAc,KAAK,IAAI,GACjD,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,GACvC,KAAK,qBAAqB,KAAK,mBAAmB,KAAK,IAAI,GAC3D,KAAK,wBAAwB,KAAK,sBAAsB,KAAK,IAAI,GACjE,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,GAC7B,KAAK,cAAc,KAAK,YAAY,KAAK,IAAI,GAC7C,KAAK,eAAe,KAAK,aAAa,KAAK,IAAI,GAC/C,KAAK,aAAa,KAAK,WAAW,KAAK,IAAI,GAC3C,KAAK,YAAY,KAAK,UAAU,KAAK,IAAI,GACzC,KAAK,mBAAmB,KAAK,iBAAiB,KAAK,IAAI,GACvD,KAAK,YAAY,KAAK,UAAU,KAAK,IAAI,GACzC,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,GACrD,KAAK,wBAAwB,KAAK,sBAAsB,KAAK,IAAI,GACjE,KAAK,gBAAgB,KAAK,cAAc,KAAK,IAAI,GACjD,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,GACvC,KAAK,YAAY,KAAK,UAAU,KAAK,IAAI,GACzC,KAAK,aAAa,KAAK,WAAW,KAAK,IAAI,GAC3C,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,GACvC,KAAK,YAAY,KAAK,UAAU,KAAK,IAAI,GACzC,KAAK,UAAU,KAAK,QAAQ,KAAK,IAAI,GACrC,KAAK,sBAAsB,KAAK,oBAAoB,KAAK,IAAI,GAC7D,KAAK,uCACH,KAAK,qCAAqC,KAAK,IAAI,GACrD,KAAK,qCACH,KAAK,mCAAmC,KAAK,IAAI,GACnD,KAAK,0CACH,KAAK,wCAAwC,KAAK,IAAI,GACxD,KAAK,wCACH,KAAK,sCAAsC,KAAK,IAAI,GACtD,KAAK,sCACH,KAAK,oCAAoC,KAAK,IAAI,GACpD,KAAK,2CACH,KAAK,yCAAyC,KAAK,IAAI,GACzD,KAAK,cAAc,KAAK,YAAY,KAAK,IAAI,GAC7C,KAAK,4CACH,KAAK,0CAA0C,KAAK,IAAI,GAC1D,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,GACvC,KAAK,aAAa,KAAK,WAAW,KAAK,IAAI,GAC3C,KAAK,uBAAuB,KAAK,qBAAqB,KAAK,IAAI,GAInD5N,GAAA,EAAC,KAAK,MAAK;AACjB,MAAA,KAAK,iBAGF,OAAA,iBAAiB,WAAW,KAAK,SAAS,GACjD,KAAK,IAAI,aAAa;AAAA,IAAA,CACvB;AAAA,EACH;AAAA,EAEO,aAAU;AACf,WAAO,KAAK,gBAAgB;AAAA,EAC9B;AAAA,EAEA,0BACE3D,GACAC,GAA2B;AAErB,iBAAA,YAAYD,GAAOC,CAAQ,GAChB,MAAK;AACd,YAAA,eAAeD,GAAOC,CAAQ;AAAA,IAAA;AAAA,EAGxC;AAAA,EAEA,SAASyR,GAA4C;AACnD,WAAO,KAAK,0BAA0B3S,EAAe,QAAQ2S,CAAE;AAAA,EACjE;AAAA,EAEA,UAAUA,GAA6C;AACrD,WAAO,KAAK,0BAA0B3S,EAAe,SAAS2S,CAAE;AAAA,EAClE;AAAA,EAEA,QAAQA,GAAkC;AACxC,WAAO,KAAK,0BAA0B3S,EAAe,OAAO2S,CAAE;AAAA,EAChE;AAAA,EAEO,wBAAqB;AAC1B,UAAMjC,IAAM,IAAI,IAAI,OAAO,SAAS,IAAI;AACnC,gBAAA,QAAQ,CAAC,SAAS,UAAU,EAAE,OAAO,CAACkC,GAAQC,MAE/CD,KACAlC,EAAI,aAAa,IAAImC,CAAI,MAAM,UAC/BnC,EAAI,aAAa,IAAImC,CAAI,MAAM,KAEhC,EAAK,GACD;AAAA,EACT;AAAA,EAEO,WAAQ;AACb,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,SAASC,GAAuB;AACrC,SAAK,SAASxd,EAAsBwd,GAAU,CAAClgB,MAAUA,CAAK,GAC9D,KAAK,gBAAiB,EAAC,QAAQ,CAACmgB,MAAe;A5B1S5C,UAAAzlB,GAAAoF;A4B2SI,OAAApF,IAAA,KAAA,aAAaylB,CAAW,MAAxB,QAAAzlB,EAA2B,UAC9B,KAAK,OAAO,WAAW,OAAOylB,CAAW,KAEtCrgB,IAAA,KAAA,aAAaqgB,CAAW,MAAxB,QAAArgB,EAA2B,WAC9B,KAAK,OAAO,WAAW,QAAQqgB,CAAW;AAAA,IAAC,CAE9C,GAGC,KAAK,cAAc/S,EAAe,KAAK,IAAI,KAC3CoS,OAAe,KAAK,UAEpB,KAAK,KAAKpS,EAAe,OAAO,KAAK,MAAM;AAAA,EAE/C;AAAA,EAEO,qBAAkB;AACvB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEO,gBAAa;AAClB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,MAAM,cACXxJ,GACAlI,GAAqB;AAGjB,QAAA,CAACkI,EAAI;AACD,YAAA;AAGF,UAAAwc,IACJ,MAAMpc,GAA0CJ,CAAG;AAEjD,QAAA,KAAK;AAEA,aAAA;AAGT,IAAIwc,EAAc,cAChB,OAAO,KAAKA,EAAc,UAAU,EAAE,QAAQ,CAACD,MAAe;AACxD,UAAAE,IAAsBD,EAAc,WAAWD,CAAW;AAC1D,UAAA,OAAOE,KAAwB;AAC5B,mBAAA,iBAAiB,cAAcF,CAAW,oBAAoB,GAC7D,cAAcA,CAAW;AAG7B,UAAA,CAACE,EAAoB;AAClB,mBAAA,iBACH,cAAcF,CAAW,sBAAsB,GAE3C,cAAcA,CAAW;AAAA,IACjC,CACD;AAKH,UAAMG,IAAqB,KAAK;AAEhC,gBAAK,cAAcF,GAGnB,OAAO,KAAK,KAAK,WAAW,EAAE,QAAQ,CAACD,MAAe;AAEpD,OAAI,CAACC,EAAc,cAAc,CAACA,EAAc,WAAWD,CAAW,MAEpE,KAAK,gBAAgBA,CAAW;AAAA,IAClC,CACD,GAGGzkB,MACF,KAAK,SAASgH,EAAsBhH,GAAO,CAACsE,MAAUA,CAAK,IAIzDogB,EAAc,cAChB,OAAO,KAAKA,EAAc,UAAU,EAAE,QAAQ,CAACG,MAAkB;AAC/D,UAAI,CAAC,KAAK,YAAY,eAAeA,CAAc,GAAG;AAC9C,cAAAF,IAAsBD,EAAc,WAAWG,CAAc;AAE9D,aAAA,aAAaA,GAAgBF,CAAmB;AAAA,MACvD;AAAA,IAAA,CACD,GAOCC,MAAuB/P,MAGzB,OAAO,WAAW,MAAK;AACrB,MAAI,CAAC,KAAK,WAAA,KAAgB6P,MAAkB,KAAK,gBAC/C,KAAK,qBAAoB,GAEvB1kB,KACA,KAAK,cAAc0R,EAAe,KAAK,IAAI,KAC3CoS,OAAe,KAAK,UAEpB,KAAK,KAAKpS,EAAe,OAAO,KAAK,MAAM;AAAA,OAG9C,CAAC,GAGC;AAAA,EACT;AAAA,EAEA,YAAYoT,GAA4B;AACtC,SAAK,cAAc9d,EAAO,KAAK,aAAa,CAAC1C,MAAS;AACpD,MAAAA,EAAM,OAAOwgB;AAAA,IAAA,CACd,GACD,KAAK,qBAAoB;AAAA,EAC3B;AAAA,EAGA,uBAAoB;AAClB,QAAI,KAAK,cAAcpT,EAAe,UAAU,IAAI,GAAG;AACrD,YAAMiB,IAAiC;AAAA,QACrC,YAAY,KAAK;AAAA,QACjB,YAAY,KAAK;AAAA,MAAA;AAEd,WAAA,KAAKjB,EAAe,YAAYiB,CAAK;AAAA,IAC5C;AAAA,EACF;AAAA,EAGA,QAAQrU,GAAqBxB,GAAgB;AAE3C,SAAK,YAAYkK,EAAO,KAAK,WAAW,CAAC1C,MAAS;AAC5C,MAACA,EAAMhG,CAAM,MACTgG,EAAAhG,CAAM,IAAI,KAEZgG,EAAAhG,CAAM,EAAE,KAAKxB,CAAK;AAAA,IAAA,CACzB;AAAA,EACH;AAAA,EAGA,gBAAgB2nB,GAAwB;AACtC,IAAK,KAAK,YAAYA,CAAW,MAI5B,KAAA,YAAYA,CAAW,EAAE,WAE9B,KAAK,cAAczd,EAAO,KAAK,aAAa,CAAC1C,MAAS;AACpD,aAAOA,EAAMmgB,CAAW;AAAA,IAAA,CACzB,GAED,KAAK,SAASzd,EAAO,KAAK,QAAQ,CAAC1C,MAAS;AACnC,aAAAA,EAAM,WAAW,OAAOmgB,CAAW,GACnC,OAAAngB,EAAM,WAAW,QAAQmgB,CAAW;AAAA,IAAA,CAC5C,GAED,KAAK,YAAYzd,EAAO,KAAK,WAAW,CAAC1C,MAAS;AAChD,aAAOA,EAAMmgB,CAAW,GACxB,OAAO,KAAKngB,CAAK,EAAE,QAAQ,CAACygB,MAAoB;AACxC,cAAAC,IAAa1gB,EAAMygB,CAAgB;AACzC,YAAIrkB,IAAQ;AACL,eAAAA,KAASskB,EAAW;AACzB,UACEA,EAAWtkB,CAAK,KAChBskB,EAAWtkB,CAAK,EAAE,cAAc+jB,IAErBO,EAAA,OAAOtkB,GAAO,CAAC,IAE1BA;AAAA,MAEJ,CACD;AAAA,IAAA,CACF,GAGD,KAAK,wBAAwBsG,EAAO,CAAI,GAAA,CAAC1C,MAAUA,CAAK;AAAA,EAC1D;AAAA,EAIA,YAAS;AACP,WAAO,KAAK,KAAK,WAAW,EAAE,QAAQ,CAAC2gB,MACrC,KAAK,YAAYA,CAAE,EAAE,QAAS,CAAA,GAEhC,KAAK,cAAcje,EAAO,CAAI,GAAA,CAAC1C,MAAUA,CAAK,GAC9C,KAAK,SAASwf,IACd,KAAK,YAAY9c,EAAO,CAAI,GAAA,CAAC1C,MAAUA,CAAK,GAC5C,KAAK,wBAAwB0C,EAAO,CAAI,GAAA,CAAC1C,MAAUA,CAAK;AAAA,EAC1D;AAAA,EAEO,aAAU;AACf,WAAO,KAAK;EACd;AAAA,EAEO,eAAY;AACjB,WAAO,KAAK;EACd;AAAA,EAEO,kBAAe;AACb,WAAA,OAAO,KAAK,KAAK,WAAW;AAAA,EACrC;AAAA,EAEO,gBAAa;AAGlB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,aAAa2gB,GAAe;A5B9f9B,QAAAjmB;A4B+fI,YAAAA,IAAA,6BAAM,gBAAN,gBAAAA,EAAoBimB;AAAA,EAC7B;AAAA,EAGA,aACER,GACAnC,GAA6B;AAE7B,QAAI,CAACmC;AACG,YAAA;AAGR,QAAI,CAACnC;AACG,YAAA;AAGJ,QAAA,KAAK,YAAYmC,CAAW;AACzB,iBAAA,iBAAiB,6BAA6BA,CAAW,EAAE,GAC1D,6BAA6BA,CAAW;AAG5C,QAAA,CAACnC,EAAW;AACT,iBAAA,iBACH,uCAAuCmC,CAAW,EAAE,GAEhD,uCAAuCA,CAAW;AAG1D,QAAIS,IAAe,IAAItC,GACrB,MACAN,EAAW,KACXmC,GACA,KAAK,KACL,KAAK,yBACL,KAAK,KAAK,EACV,YAAY,IAAI;AAClB,gBAAK,cAAczd,EACjB,KAAK,aACL,CAAC1C,MAA2B;AAC1B,MAAAA,EAAMmgB,CAAW,IAAIS;AAAA,IAAA,CACtB,GAGHA,EAAa,YAAYxT,EAAe,OAAO,CAACtJ,MAAO;AAEhD,WAAA,KAAKsJ,EAAe,OAAO;AAAA,QAC9B,aAAawT,EAAa;AAAA,QAC1B,cAAcA,EAAa;AAAA,QAC3B,OAAO9c;AAAA,MAAA,CACR;AAAA,IAAA,CACF,GAGGka,EAAW,UACFA,EAAA,OAAO,QAAQ,CAACxlB,MAAU,KAAK,QAAQ2nB,GAAa3nB,CAAK,CAAC,GAIvEooB,EAAa,UAAU,KAAK,OAAO,WAAW,OAAOT,CAAW,CAAC,GAE1DS;AAAA,EACT;AAAA,EAEO,UAAO;AACZ,SAAK,IAAI,WAAW,GACpB,MAAM,mBAAkB,GACjB,OAAA,oBAAoB,WAAW,KAAK,SAAS,GAChD,KAAK,eACP,OAAO,KAAK,KAAK,WAAW,EAAE,QAAQ,CAACT,MACrC,KAAK,YAAYA,CAAW,EAAE,QAAS,CAAA,GAM3C,KAAK,MAAM,QAEX,KAAK,cAAc,QAEnB,KAAK,SAAS,QAEd,KAAK,wBAAwB,QAE7B,KAAK,YAAY;AAAA,EACnB;AAAA,EAEO,IAAIjY,GAAQqJ,GAAgBC,GAAwB;AACrD,IAAC,KAAK,SAGL,KAAA,YAAYtJ,GAAGqJ,GAAOC,CAAe;AAAA,EAC5C;AAAA,EAEO,MAAM1N,GAAQ;AACnB,SAAK,YAAYA,GAAK,OAAO,KAAK,uBAAuB,GACpD,KAAA,iBAAiB,GAAGA,CAAG,EAAE;AAAA,EAChC;AAAA,EAEO,iBAAiBA,GAAW;AAC5B,SAAA,KAAKsJ,EAAe,OAAOtJ,CAAG;AAAA,EACrC;AAAA,EAGA,oBACErE,GAEAohB,GAA6B;AAG7B,WAAK,KAAK,sBAAsBphB,CAAM,MACpC,KAAK,wBAAwBiD,EAC3B,KAAK,uBACL,CAAC1C,MAA+B;AAC9B,MAAAA,EAAMP,CAAM,IAAIiD,EAAO,CAAI,GAAA,CAACoe,MAAOA,CAAE;AAAA,IAAA,CACtC,IAIA,KAAK,sBAAsBrhB,CAAM,EAAEohB,CAAY,MAClD,KAAK,wBAAwBne,EAC3B,KAAK,uBACL,CAAC1C,MAA+B;AAC9B,UAAI+gB,IAA6C,CAAA;AAC3C,MAAA/gB,EAAAP,CAAM,EAAEohB,CAAY,IAAIE,GAE9B,OAAO,KAAK,KAAK,SAAS,EAAE,QAAQ,CAACZ,MAAe;AAClD,QAAIA,MAAgB1gB,KAKpB,KAAK,UAAU0gB,CAAW,EAAE,QAAQ,CAACa,MAAa;AAE5C,cAAAA,EAAU,cAAcvhB,KAGtBigB,GAAUmB,GAAcG,EAAU,MAAM,GAAG;AAKzC,gBAAAC,IAAqBD,EAAU,UAAU;AAE3C,YAAA,CAACA,EAAU,UACXA,EAAU,OAAO,WAAW,GAAG,KAC/BA,EAAU,WAAW,KAERC,IAAAJ,IACJI,KAAcA,EAAW,SAAS,GAAG,MAC9CA,IAAaA,IAAaJ,IAE5BE,EAAQ,KAAK,EAAE,WAAWZ,GAAa,MAAMc,GAAY;AAAA,UAC3D;AAAA,QACF,CACD;AAAA,MAAA,CACF;AAAA,IAAA,CACF,IAIE,KAAK,sBAAsBxhB,CAAM,EAAEohB,CAAY;AAAA,EACxD;AAAA,EAEA,sBAAsBrnB,GAAkC;AAClD,QAAAA,EAAQ,YAAY;AAGf,aAAA;AAGT,YADeA,EAAQ,QACP;AAAA,MACd,KAAK6T,EAAwB;AAEpB,eAAA;AAAA,MACT;AAEE,YAAIkR,IAAoC/kB,EAAQ;AAW9C,eAAA+kB,KACA/kB,EAAQ,aAAa,KAAK,OAC1B,CAAC,CAAC,KAAK,YAAY+kB,CAAQ;AAAA,IAEjC;AAAA,EACF;AAAA,EAWO,SACLA,GACA2C,GACA3nB,GAAsB;A5B7sBnB,QAAAmB,GAAAoF;A4B+sBC,IAAA,OAAOye,KAAa,WACtB,KAAK,wCAAwCA,CAAQ,IAC5C,OAAO2C,KAAgB,WAC3B,KAAA,qCAAqC3C,GAAU2C,GAAa3nB,CAAK,IAEtE,KAAK,mCAAmCglB,GAAU2C,KAAe,CAAE,CAAA,GAGhE,KAAA,0CACH3C,GACA2C,GACA3nB,CAAK,IAIL,KAAK,cAAc6T,EAAe,KAAK,IAAI,KAC3C,KAAK,cAAcA,EAAe,MAAM,IAAI,MAExCoS,OAAe,KAAK,WACtB,KAAK,KAAKpS,EAAe,OAAO,KAAK,MAAM,GAC3C,KAAK,KAAKA,EAAe,SAAQtN,KAAApF,IAAA,KAAK,WAAL,gBAAAA,EAAa,eAAb,gBAAAoF,EAAyB,MAAM;AAAA,EAGtE;AAAA,EAEA,0CACEye,GACA2C,GACA3nB,GAAsB;AAElB,QAAA,OAAOglB,KAAa,UAAU;AAChC,UAAI2C,KAAe3nB;AACX,cAAA;AAER,YAAMiS,IAAc+S;AACpB,aAAO,KAAK/S,CAAM,EAAE,QAAQ,CAACmV,MAAM;AACjC,YAAIR,IAA2BQ,GAC3BQ,IAAkB3V,EAAO2U,CAAW;AACpC,YAAA,OAAOgB,KAAoB;AACvB,gBAAA;AAEJ,YAAAP,IAAe,KAAK,YAAYT,CAAW;AAC/C,QAAIS,IACFA,EAAa,UAAUO,CAAe,IAEtC,KAAK,MAAM,2BAA2B;AAAA,MACxC,CACD;AAAA,IAAA,WACQ,OAAO5C,KAAa,UAAU;AACjC,YAAAqC,IAAe,KAAK,YAAYrC,CAAQ;AAI1C,UAHAqC,KAAgB,QACb,KAAA,MAAM,gBAAgBrC,CAAQ,EAAE,GAEnC,OAAO2C,KAAgB;AACZ,QAAAN,EAAA,SAASM,GAAa3nB,CAAK;AAAA,eAC/B,OAAO2nB,KAAgB;AAChC,QAAAN,EAAa,UAAUM,CAAW;AAAA;AAE5B,cAAA;AAAA,IACR;AAEM,YAAA;AAAA,EAEV;AAAA,EAEO,UACL3C,GACA2C,GACA3nB,GAAsB;AAEjB,SAAA,SAASglB,GAAU2C,GAAa3nB,CAAK;AAAA,EAC5C;AAAA,EAEA,yCACE6nB,GAAsC;AAEjC,SAAA,wBAAwB,IAAOA,CAAc;AAAA,EACpD;AAAA,EAEA,sCACEjB,GACAe,GACA3nB,GAAsB;AAEtB,SAAK,iCACH,IACA4mB,GACAe,GACA3nB,CAAK;AAAA,EAET;AAAA,EAEA,oCACE4mB,GACAkB,GAAqC;AAEhC,SAAA,+BAA+B,IAAOlB,GAAakB,CAAkB;AAAA,EAC5E;AAAA,EAEA,wCACED,GAAsC;AAEjC,SAAA,wBAAwB,IAAMA,CAAc;AAAA,EACnD;AAAA,EAEA,qCACEjB,GACAe,GACA3nB,GAAsB;AAEtB,SAAK,iCACH,IACA4mB,GACAe,GACA3nB,CAAK;AAAA,EAET;AAAA,EAEA,mCACE4mB,GACAkB,GAAqC;AAEhC,SAAA,+BAA+B,IAAMlB,GAAakB,CAAkB;AAAA,EAC3E;AAAA,EAEA,iCACEC,GACAnB,GACAoB,GACAhoB,GAAsB;AAEtB,SAAK,SAASmJ,EAAO,KAAK,QAAQ,CAAC1C,MAAwB;AAEzD,UAAI,CADgB,KAAK,YAAY,eAAemgB,CAAW;AAE7D,cAAM,iBAAiBA,CAAW;AAEhC,MAACngB,EAAM,eACTA,EAAM,aAAa,EAAE,QAAQ,CAAA,GAAI,SAAS,CAAA,MAGxCshB,IACGthB,EAAM,WAAW,WACdA,EAAA,WAAW,SAAS,MAGvBA,EAAM,WAAW,YACdA,EAAA,WAAW,UAAU;AAI/B,UAAIwhB,IAAqBF,IACrBthB,EAAM,WAAW,SACjBA,EAAM,WAAW;AAGrB,MAAAwhB,IAAqBA,KAAsB,IACxBA,EAAArB,CAAW,IAAMqB,EAAmBrB,CAAW,IAC9DqB,EAAmBrB,CAAW,IAC7B,IAGD5mB,MAAU,SACL,OAAAioB,EAAmBrB,CAAW,EAAEoB,CAAe,IAGnCC,EAAArB,CAAW,EAAEoB,CAAe,IAAIhoB;AAAA,IACrD,CACD;AAAA,EACH;AAAA,EAEA,+BACE+nB,GACAnB,GACAkB,GAAqC;AAErC,IAAI,CAACA,KAAsB,OAAO,KAAKA,CAAkB,EAAE,WAAW,MAItE,KAAK,SAAS3e,EAAO,KAAK,QAAQ,CAAC1C,MAAwB;AAEzD,UAAI,CADgB,KAAK,YAAY,eAAemgB,CAAW;AAE7D,cAAM,iBAAiBA,CAAW;AAGpC,UAAIqB,IAAqBF,IACrBthB,EAAM,WAAW,SACjBA,EAAM,WAAW;AAGF,MAAAwhB,EAAArB,CAAW,IAAIqB,EAAmBrB,CAAW,IAC5DqB,EAAmBrB,CAAW,IAC7B,IAEL,OAAO,KAAKkB,CAAkB,EAAE,QAAQ,CAACI,MAAoB;AAEvD,QAAAJ,EAAmBI,CAAgB,MAAM,SACpC,OAAAD,EAAmBrB,CAAW,EAAEsB,CAAgB,IAGvDD,EAAmBrB,CAAW,EAAEsB,CAAgB,IAC9CJ,EAAmBI,CAAgB;AAAA,MACvC,CACD;AAAA,IAAA,CACF;AAAA,EACH;AAAA,EAEA,wBACEH,GACAI,GAA2C;AAE3C,IAAI,CAACA,KAAuB,OAAO,KAAKA,CAAmB,EAAE,WAAW,MAIxE,KAAK,SAAShf,EAAO,KAAK,QAAQ,CAAC1C,MAAwB;AACzD,aAAO,KAAK0hB,CAAmB,EAAE,QAAQ,CAACvB,MAAe;AACnD,YAAAkB,IACFK,EAAoBvB,CAAW;AAC7B,YAAA,OAAOkB,KAAuB;AAC1B,gBAAA;AAIR,YAAI,CADgB,KAAK,YAAY,eAAelB,CAAW;AAEvD,gBAAA;AAGR,cAAMqB,IAAqBF,IACvBthB,EAAM,WAAW,SACjBA,EAAM,WAAW;AAGF,QAAAwhB,EAAArB,CAAW,IAAIqB,EAAmBrB,CAAW,IAC5DqB,EAAmBrB,CAAW,IAC7B,IAEL,OAAO,KAAKkB,CAAkB,EAAE,QAAQ,CAACI,MAAoB;AAEvD,UAAAJ,EAAmBI,CAAgB,MAAM,SACpC,OAAAD,EAAmBrB,CAAW,EAAEsB,CAAgB,IAGvDD,EAAmBrB,CAAW,EAAEsB,CAAgB,IAC9CJ,EAAmBI,CAAgB;AAAA,QACvC,CACD;AAAA,MAAA,CACF;AAAA,IAAA,CACF;AAAA,EACH;AAAA,EAQA,oBAAoBtB,GAA0BnN,GAA0B;AACtE,SAAK,iBAAiB;AAAA,MACpB,UAAUmN;AAAA,MACV,UAAU,KAAK;AAAA,MACf,SAAS;AAAA,MACT,QAAQ9S,EAAwB;AAAA,MAChC,IAAI;AAAA,MACJ,QAAQ2F;AAAA,IAAA,CACT;AAAA,EACH;AAAA,EAOA,WAAWA,GAA+B;AACpC,QAAC,KAAK;AAGV,iBAAWmN,KAAenN;AACxB,aAAK,oBAAoBmN,GAAanN,EAAQmN,CAAW,CAAC;AAAA,EAE9D;AAAA,EAEA,UAAU,GAAe;AAGnB,QAAA,OAAO,EAAE,QAAS,UAAU;AAC9B,YAAM/M,IAAU,EAAE;AAClB,UAAI,CAAC,KAAK,sBAAsBA,CAAO;AACrC;AAEF,WAAK,iBAAiBA,CAAO;AAAA,IAC/B;AAAA,EACF;AAAA,EAEA,iBAAiBA,GAAkC;AAEjD,QAAID,IAASC,EAAQ;AACrB,UAAM+M,IAAc/M,EAAQ;AAS5B,QANI,CAAC+M,KAOHhN,MAAW,8BACXC,EAAQ,aAAa,KAAK;AAE1B;AAGI,UAAAuO,IAAY,KAAK,aAAaxB,CAAW;AAC/C,QAAKwB,GAeL;AAAA,cARiBvO,EAAA,gBAAmB,EAAE,KAAK,iCAEvC,KAAK,SACP,KAAK,IACH,cAAc,KAAK,UAAUA,GAAS,MAAM,IAAI,EAAE,UAAU,GAAG,GAAG,CAAC,EAAE,GAIjED,GAAQ;AAAA,QAMd,KAAK9F,EAAwB;AAC3B,UAAAsU,EAAU,SAAQ;AAClB;AAAA,QAGF,KAAKtU,EAAwB;AAE3B,cAAIsU,GAAW;AACb,kBAAM7U,IAASsG,EAAQ;AACb,YAAAuO,EAAA,WAAW7U,EAAO,OAAO;AAAA,UACrC;AACA;AAAA,QAEF,KAAKO,EAAwB;AAC3B,gBAAM2F,IAA6BI,EAAQ;AAC3C,cAAI,CAACJ,KAAW,OAAO,KAAKA,CAAO,EAAE,WAAW;AAC9C;AAGE,cAAA,KAAK,YAAYmN,CAAW,GAAG;AAC7B,gBAAAyB,IAAS,KAAK,YAAYzB,CAAW;AAGpC,iBAAA,oCAAoCA,GAAanN,CAAO,GAE7D4O,EAAO,WAAW5O,CAAO;AAKzB,gBAAI6O,IAAW;AACT,kBAAAC,IAAa,OAAO,KAAK9O,CAAO,GAChC+O,IAA2D,CAAA;AACtD,YAAAD,EAAA,QAAQ,CAACE,GAAW3qB,MAAK;AAClC,oBAAM0pB,IACJ,KAAK,oBAAoBZ,GAAc6B,CAAS;AAE9C,cAAAjB,EAAQ,SAAS,KACXA,EAAA,QAAQ,CAAC/mB,MAAU;AACzB,gBAAK+nB,EAAiB/nB,EAAO,SAAS,MACnB+nB,EAAA/nB,EAAO,SAAS,IAAI,KAEvC+nB,EAAiB/nB,EAAO,SAAS,EAAEA,EAAO,IAAI,IAC5CgZ,EAAQgP,CAAS,GACRH,IAAA;AAAA,cAAA,CACZ;AAAA,YACH,CACD,GACGA,MACF,KAAK,wCAAwCE,CAAgB,GAC7D,OAAO,KAAKA,CAAgB,EAAE,QAAQ,CAAC5B,MAAe;AACpD,mBAAK,YAAYA,CAAW,EAAE,UAC5B4B,EAAiB5B,CAAW,CAAC;AAAA,YAAA,CAGhC,IAID,KAAK,cAAc/S,EAAe,KAAK,IAAI,KAC3CoS,OAAe,KAAK,UAEpB,KAAK,KAAKpS,EAAe,OAAO,KAAK,MAAM,GAEzC,KAAK,SACPwU,EAAO,IAAI,EAAE,SAAAxO,GAAkB,OAAO,KAAK,QAAQ;AAAA,UACrD;AAEK,iBAAA,MAAM,qBAAqB+M,CAAW,EAAE;AAG/C;AAAA,QAEF,KAAK9S,EAAwB;AAK3B,cAAI7B,IAA4B4H,EAAQ;AACxC,UAAI,KAAK,SACF,KAAA,IAAI,UAAU,KAAK,UAAU5H,CAAM,CAAC,SAAS2U,CAAW,EAAE,GAC7D,KAAK,YAAYA,CAAW,KAIzB,KAAA,mCAAmCA,GAAa3U,CAAM,GAC3D,KAAK,YAAY2U,CAAW,EAAE,UAAU3U,CAAM,GAE5C,KAAK,cAAc4B,EAAe,KAAK,IAAI,KAC3CoS,OAAe,KAAK,UAEpB,KAAK,KAAKpS,EAAe,OAAO,KAAK,MAAM,GAGzC,KAAK,SACF,KAAA,YAAY+S,CAAW,EAAE,IAAI;AAAA,YAChC,SAAA/M;AAAA,YACA,OAAO,KAAK;AAAA,UAAA,CACb,MAGK,QAAA,MACN,yCAAyC+M,CAAW,GAAG,GAEpD,KAAA,MAAM,yCAAyCA,CAAW,GAAG;AAEpE;AAAA,QACF,KAAK9S,EAAwB;AAO3B,cAAIsU,GAAW;AAMb,kBAAMM,IACJ7O,EAAQ,QACJ0K,IAAM,IAAI,IAAI6D,EAAU,GAAG;AACjC,YAAA7D,EAAI,OAAOmE,EAAwB,MAEnCN,EAAU,MAAM7D,EAAI,MAEpB,KAAK,cAAcpb,EACjB,KAAK,aACL,CAAC1C,MAAS;AACR,cAAAA,EAAM,WAAWiiB,EAAwB,SAAS,EAAE,MAClDnE,EAAI;AAAA,YAAA,CACP,GAGH,KAAK,qBAAoB;AAAA,UAC3B;AACA;AAAA,QACF;AACE,UAAI,KAAK,SACF,KAAA,IAAI,wBAAwB3K,CAAM,GAAG;AAAA,MAEhD;AACA,MAAI,KAAK,cAAc/F,EAAe,OAAO,IAAI,KAC1C,KAAA,KAAKA,EAAe,SAASgG,CAAO;AAAA;AAAA,EAE7C;AAAA,EAEA,YAAYlL,GAAQqJ,GAAgBC,GAAwB;AACxC,IAAAA,IAAAA,KAEd,KAAK;AACL,QAAA9a;AACA,IAAA,OAAOwR,KAAM,WACXxR,IAAAwR,IACK,OAAOA,KAAM,WACtBxR,IAAIwR,IAAI,KAEJxR,IAAA,KAAK,UAAUwR,CAAC,GAEtBxR,IAAI,KAAK,MAAM,YAAY,KAAK,GAAG,KAAKA,CAAC,KAAKA,GAC7Bkc,GAAAlc,GAAG6a,GAAOC,CAAe;AAAA,EAC5C;;AA9kCuBqO,GAAO,UAAG1pB;AAGV0pB,GAAA,aAAazS,EAAe;AAC5ByS,GAAA,QAAQzS,EAAe;AACvByS,GAAA,SAASzS,EAAe;AACxByS,GAAA,UAAUzS,EAAe;AACzByS,GAAA,UAAUzS,EAAe;AACzByS,GAAA,QAAQzS,EAAe;AAEhCyS,GAAiB,oBAAGlU;AACpBkU,GAAe,kBAAGtU;AC7F5B,SAAU2W,GAAmBpE,GAAW;AAC5C,SAAKA,EAAI,WAAW,OAAO,IAGpBA,EAAI,SAAS,uBAAuB,IAFlC;AAGX;AAGA,SAASqE,GACPnE,GAAgC;AAGhC,QAAMoE,IAAY,KAAK,MAAM,KAAK,UAAUpE,CAAU,CAAC;AAEnD,EAACoE,EAAU,SACbA,EAAU,OAAO,KAGdA,EAAU,KAAK,YACRA,EAAA,KAAK,UAAU,KAGtBA,EAAU,KAAK,QAAQ,mBAAmB,MACnCA,EAAA,KAAK,QAAQ,mBAAmB,IAAI;AAAA,IAC5C,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,QAAQ,CAAC,IAAI,EAAE;AAAA,MACf,WAAW;AAAA,MACX,kBAAkB,CAAC,GAAG,CAAC;AAAA,IACxB;AAAA,IACD,QAAQ,CAAE;AAAA,EAAA;AAId,QAAMC,IAASD,EAAU,KAAK,QAAQ,mBAAmB;AAGzD,MAAIA,EAAU,YAAY;AACxB,WAAO,KAAKA,EAAU,UAAU,EAAE,QAAQ,CAACjC,MAAe;AACpD,UAAA,CAACkC,EAAO,OAAO,KAAK,CAACxT,MAAkBA,EAAE,MAAMsR,CAAW,GAAG;AACzD,cAAAmC,IACJD,EAAO,OAAO,SAAS,IACnB,KAAK,IACH,GAAGA,EAAO,OAAO,IACf,CAACxT,OAAmBA,EAAE,KAAK,MAAMA,EAAE,KAAK,EAAE,CAC3C,IAEH;AAEN,QAAAwT,EAAO,OAAO,KAAK;AAAA,UACjB,GAAGlC;AAAA,UACH,GAAG;AAAA,UACH,GAAGmC;AAAA,UACH,GAAGD,EAAO,MAAM;AAAA,UAChB,GAAGH,GAAmBE,EAAU,WAAWjC,CAAW,EAAE,GAAG,IAAI,IAAI;AAAA,QAAA,CACpE;AAAA,MACH;AAAA,IAAA,CACD;AAGD,UAAMoC,IAAkB,IAAI,IAAI,OAAO,KAAKH,EAAU,UAAU,CAAC;AAC1D,IAAAC,EAAA,SAASA,EAAO,OAAO,OAAO,CAACxT,MACpC0T,EAAgB,IAAI1T,EAAE,CAAC,CAAC,GAInBwT,EAAA,OAAO,QAAQ,CAACxT,MAAiB;AACpC,MAAAA,EAAA,IAAIA,EAAE,KAAK,GACXA,EAAA,IAAIA,EAAE,KAAK,GACXA,EAAA,IAAIA,EAAE,KAAK,GACXA,EAAA,IAAIA,EAAE,KAAK;AAAA,IAAA,CACd;AAAA,EACH;AAEO,SAAAuT;AACT;AAEa,MAAAI,KAA2B,CACtCxE,MAME;A7BrHG,MAAAtjB,GAAAoF,GAAAgD;A6BuHL,QAAM2f,KAAoB3iB,KAAApF,IAAAsjB,KAAA,gBAAAA,EAAY,SAAZ,gBAAAtjB,EAAkB,YAAlB,gBAAAoF,EAA4B,sBAChDuiB,IAASI,KAAA,gBAAAA,EAAmB;AAE9B,MAAA,CAACA,KAAqB,CAACJ;AACnB,UAAA,IAAI,MAAM,8CAA8C;AAI1D,QAAAK,wBAAuB,OAGvBC,IAAWN,EACd,IAAI,CAACnmB,GAAkBE,MAAiB;AACvC,UAAMulB,IAAY3D,EAAW,WAAW9hB,EAAK,CAAC;AAC9C,WAAOylB,KAAaO,GAAmBP,EAAU,GAAG,IAChD,EAAE,OAAAvlB,GAAO,GAAGF,EAAK,GAAG,IAAIA,EAAK,MAC7B;AAAA,EACL,CAAA,EACA,OACC,CAACA,MAA2DA,MAAS,IAAI;AAIzE,MAAAymB,EAAS,SAAS,GAAG;AAEjB,UAAAC,IAAiBD,EAAS,OAC9B,CACEE,GACA7hB,MACIA,EAAQ,IAAI6hB,EAAO,IAAI7hB,IAAU6hB,CAAO,GAG1CC,MACJhgB,IAAAuf,EAAO,KAAK,CAACnmB,MAAqBA,EAAK,MAAM0mB,EAAe,EAAE,MAA9D,gBAAA9f,EAAiE,MAAK;AAGjE,IAAAuf,EAAA,QAAQ,CAACnmB,MAAoB;AAC9B,MAAAA,EAAK,KAAK4mB,KACKJ,EAAA,IAAIxmB,EAAK,CAAC;AAAA,IAC7B,CACD;AAAA,EACH;AAGA,QAAM6mB,IAAsB,OAAO,KAAK/E,EAAW,UAAU,EAAE,OAC7D,CAACmC,MAAgB,CAACuC,EAAiB,IAAIvC,CAAW,CAAC,GAE/C6C,IAAqB,OAAO,KAAKhF,EAAW,UAAU,EAAE,OAC5D,CAACmC,MAAgBuC,EAAiB,IAAIvC,CAAW,CAAC;AAIhD,MAAA8C,IAAqBZ,EAAO,OAAO,CAACnmB,MACtC6mB,EAAoB,SAAS7mB,EAAK,CAAC,CAAC;AAGnB,EAAA+mB,EAAA,KAAK,CAAClsB,GAAGC,MACtBD,EAAE,MAAMC,EAAE,IACLD,EAAE,IAAIC,EAAE,IAEVD,EAAE,IAAIC,EAAE,CAChB;AAGD,QAAMksB,IAAyBD,EAAmB,OAChD,CAACE,GAAKjnB,MAAS,KAAK,IAAIinB,GAAKjnB,EAAK,IAAIA,EAAK,CAAC,GAC5C,CAAC;AAGI,SAAA;AAAA,IACL,oBAAA+mB;AAAA,IACA,oBAAoB,IAAI,IAAID,CAAkB;AAAA,IAC9C,qBAAqB,IAAI,IAAID,CAAmB;AAAA,IAChD,wBAAAG;AAAA,EAAA;AAEJ;AAMA,eAAsBE,GAAeC,GAMpC;A7B9MM,MAAA3oB,GAAAoF,GAAAgD,GAAA+b;A6BgND,MAAA,EAAE,KAAAf,GAAK,YAAAE,GAAY,WAAAsF,GAAW,SAAAC,GAAS,SAAAxoB,IAAU,CAAA,EAAO,IAAAsoB;AACxD,MAAA,CAACvF,KAAO,CAACE;AACL,UAAA,IAAI,MAAM,2CAA2C;AAE7D,MAAIF,KAAOE;AACH,UAAA,IAAI,MAAM,qDAAqD;AAOvE,MAJIF,MACWE,IAAA,MAAMH,GAA6BC,CAAG,IAGjD,CAACE;AACG,UAAA,IAAI,MAAM,qCAAqC;AAGvD,EAAAA,IAAamE,GAAenE,CAAU,GACzBA,IAAA,MAAMwF,GAAgBxF,CAAU,GAG7C,MAAMhM;AAGA,QAAAG,IAAW,IAAI0N;AACZ,EAAA1N,EAAA,QAAQpX,EAAQ,SAAS;AAE9B,MAAA;AACI,UAAAoX,EAAS,cAAc,KAAK,MAAM,KAAK,UAAU6L,CAAU,CAAC,CAAC;AAAA,WAC5Dla,GAAK;AACZ,UAAAqO,EAAS,QAAO,GACV,IAAI,MAAM,sCAAsCrO,CAAG,EAAE;AAAA,EAC7D;AAGA,QAAM2f,IAAwB,CAAA;AAE9B,EAAIH,KACFG,EAAU,KACRtR,EAAS,0BAA0B/E,EAAe,SAASkW,CAAS,CAAC;AAKzE,QAAMb,KAAoB3iB,KAAApF,IAAAsjB,KAAA,gBAAAA,EAAY,SAAZ,gBAAAtjB,EAAkB,YAAlB,gBAAAoF,EAA4B,sBAChDuiB,IAASI,KAAA,gBAAAA,EAAmB;AAE9B,MAAA,CAACA,KAAqB,CAACJ;AACnB,UAAA,IAAI,MAAM,8CAA8C;AAG5D,MAAA,EAAE,oBAAAY,GAAoB,oBAAAD,GAAoB,qBAAAD,EAAA,IAC5CP,GAAyBrQ,EAAS,eAAe;AAG/C,MAAA8Q,EAAmB,WAAW;AAEzB,WAAA;AAAA,MACL,UAAA9Q;AAAA,MACA,WAAW,CAAC3G,MAAkC;AACxC,QAAC2G,EAAS,gBACZA,EAAS,UAAU3G,CAAM;AAAA,MAE7B;AAAA,MACA,YAAY,CAACwH,MAAmC;AAC1C,QAACb,EAAS,gBACZA,EAAS,WAAWa,CAAO;AAAA,MAE/B;AAAA,MACA,SAAS,MAAK;AACZ,QAAAyQ,EAAU,QAAQ,CAAC9Q,MAAaA,EAAU,CAAA,GAC1CR,EAAS,QAAO;AAAA,MAClB;AAAA,IAAA;AAKe,EAAA8Q,EAAA,KAAK,CAAClsB,GAAGC,MACtBD,EAAE,MAAMC,EAAE,IACLD,EAAE,IAAIC,EAAE,IAEVD,EAAE,IAAIC,EAAE,CAChB;AAGD,QAAM0sB,IAAY;AAAA,IAChB,SAAS;AAAA,IACT,qBAAqB;AAAA,IACrB,cAAc;AAAA,IACd,KAAK,KAAG5gB,IAAA2f,EAAkB,MAAM,WAAxB,gBAAA3f,EAAiC,OAAM,EAAE;AAAA,IACjD,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,WAAS+b,IAAA4D,EAAkB,MAAM,qBAAxB,gBAAA5D,EAA2C,OAAM;AAAA,IAC1D,WAAW;AAAA,IACX,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,UAAU;AAAA,EAAA,GAIN8E,IAAiB;AAAA,IACrB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,SAAS;AAAA,IACT,eAAe;AAAA,EAAA,GAIXC,IAAY,SAAS,cAAc,KAAK;AACvC,SAAA,OAAOA,EAAU,OAAOD,CAAc;AAGvC,QAAAE,IAAgB,SAAS,cAAc,KAAK;AAC3C,SAAA,OAAOA,EAAc,OAAOH,CAAS;AAG5C,QAAMI,IAAmC,CAAA;AAEzC,aAAW3D,KAAe4C,GAAqB;AAC7C,UAAMgB,IAAa1B,EAAO,KACxB,CAACnmB,MAAqBA,EAAK,MAAMikB,CAAW;AAE9C,QAAI,CAAC4D;AAAY;AAEjB,UAAMpC,IAAYxP,EAAS,cAAe,EAACgO,CAAW,GAChDyB,IAAS,MAAMD,EAAU;AAC/B,QAAI,CAACA;AAAW;AAGhB,IAAAmC,EAAmB,KAAKC,CAAU;AAElC,UAAMC,IAA6C;AAAA,MACjD,YAAY,GAAGD,EAAW,IAAI,CAAC,WAAWA,EAAW,CAAC;AAAA,MACtD,SAAS,GAAGA,EAAW,IAAI,CAAC,WAAWA,EAAW,CAAC;AAAA,MACnD,UAAU;AAAA,MACV,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQhpB,EAAQ,mBAAmB,SAAS;AAAA,MAC5C,UAAU;AAAA,MACV,WAAW;AAAA,MACX,aAAa;AAAA,IAAA,GAITkpB,IAAU,SAAS,cAAc,KAAK;AACrC,WAAA,OAAOA,EAAQ,OAAOD,CAAS,GACtCC,EAAQ,YAAYrC,CAAM,GAE1BiC,EAAc,YAAYI,CAAO;AAAA,EACnC;AAGA,QAAMC,IAAS,KAAK,IAClB,GAAGJ,EAAmB,IAAI,CAAC5nB,MAAqBA,EAAK,IAAIA,EAAK,CAAC,CAAC;AAGnD,OAAK,IAClB,GAAG4nB,EAAmB,IAAI,CAAC5nB,MAAqBA,EAAK,IAAIA,EAAK,CAAC,CAAC,GAIlE2nB,EAAc,MAAM,sBAAsB,UAAU,KAAK,IACvD,GACAK,CAAM,CACP;AAGK,QAAAC,IAAkB,SAAS,cAAc,KAAK;AACpD,EAAAA,EAAgB,MAAM,WAAW,YACjCA,EAAgB,MAAM,MAAM,WAC5BA,EAAgB,MAAM,OAAO,WAC7BA,EAAgB,MAAM,QAAQ,OAC9BA,EAAgB,MAAM,SAAS,OAC/BA,EAAgB,MAAM,WAAW,UACjCA,EAAgB,MAAM,gBAAgB;AAGtC,aAAWhE,KAAe,OAAO,KAAKhO,EAAS,cAAe,CAAA,EAAE,OAAO,CAACwO,MACtEqC,EAAmB,IAAIrC,CAAE,CAAC,GACzB;AACD,UAAMgB,IAAYxP,EAAS,cAAe,EAACgO,CAAW;AACtD,QAAI,CAACwB;AAAW;AAEV,UAAAsC,IAAU,SAAS,cAAc,KAAK;AACpC,IAAAA,EAAA,aAAa,qBAAqB9D,CAAW,GACrD8D,EAAQ,MAAM,QAAQ,SACtBA,EAAQ,MAAM,SAAS;AAGnB,QAAArC;AACJ,IAAID,EAAU,SACZC,IAAS,MAAMD,EAAU,UAEhBC,IAAA,SAAS,cAAc,QAAQ,GACxCA,EAAO,MAAMD,EAAU,KACvBC,EAAO,MAAM,SAAS,QACtBA,EAAO,MAAM,QAAQ,QACrBA,EAAO,MAAM,SAAS,SAGxBqC,EAAQ,YAAYrC,CAAM,GAC1BuC,EAAgB,YAAYF,CAAO;AAAA,EACrC;AAGA,SAAAL,EAAU,YAAYC,CAAa,GACnCD,EAAU,YAAYO,CAAe,GACrCZ,EAAQ,YAAYK,CAAS,GAGtB;AAAA,IACL,UAAAzR;AAAA,IACA,WAAW,CAAC3G,MAAkC;AACxC,MAAC2G,EAAS,gBACZA,EAAS,UAAU3G,CAAM;AAAA,IAE7B;AAAA,IACA,YAAY,CAACwH,MAAmC;AAC1C,MAACb,EAAS,gBACZA,EAAS,WAAWa,CAAO;AAAA,IAE/B;AAAA,IACA,SAAS,MAAK;AAEZ,MAAAyQ,EAAU,QAAQ,CAAC9Q,MAAaA,EAAU,CAAA,GAE1CR,EAAS,QAAO,GACZyR,EAAU,cACFA,EAAA,WAAW,YAAYA,CAAS;AAAA,IAE9C;AAAA,EAAA;AAEJ;AAEa,MAAAQ,KAAoB,CAC/BpG,GACAmC,MACW;A7B9bN,MAAAzlB,GAAAoF,GAAAgD;A6BgcL,QAAM2f,KAAoB3iB,KAAApF,IAAAsjB,KAAA,gBAAAA,EAAY,SAAZ,gBAAAtjB,EAAkB,YAAlB,gBAAAoF,EAA4B,sBAChDuiB,IAASI,KAAA,gBAAAA,EAAmB;AAE9B,MAAA,CAACA,KAAqB,CAACJ;AACnB,UAAA,IAAI,MAAM,8CAA8C;AAI1D,QAAAK,wBAAuB,OAGvBC,IAAWN,EACd,IAAI,CAACnmB,GAAkBE,MAAiB;A7B5ctC,QAAA1B;A6B6cD,UAAMinB,KAAYjnB,IAAAsjB,KAAA,gBAAAA,EAAY,eAAZ,gBAAAtjB,EAAyBwB,EAAK;AAChD,WAAOylB,KAAaO,GAAmBP,EAAU,GAAG,IAChD,EAAE,OAAAvlB,GAAO,GAAGF,EAAK,GAAG,IAAIA,EAAK,MAC7B;AAAA,EACL,CAAA,EACA,OACC,CAACA,MAA2DA,MAAS,IAAI;AAIzE,MAAAymB,EAAS,SAAS,GAAG;AAEjB,UAAAC,IAAiBD,EAAS,OAC9B,CACEE,GACA7hB,MACIA,EAAQ,IAAI6hB,EAAO,IAAI7hB,IAAU6hB,CAAO,GAG1CC,MACJhgB,IAAAuf,EAAO,KAAK,CAACnmB,MAAqBA,EAAK,MAAM0mB,EAAe,EAAE,MAA9D,gBAAA9f,EAAiE,MAAK;AAGjE,IAAAuf,EAAA,QAAQ,CAACnmB,MAAoB;AAC9B,MAAAA,EAAK,KAAK4mB,KACKJ,EAAA,IAAIxmB,EAAK,CAAC;AAAA,IAC7B,CACD;AAAA,EACH;AAEO,SAAAwmB,EAAiB,IAAIvC,CAAW;AACzC,GAEMkE,KAAkB,CAACvG,MAAyC;A7B9e3D,MAAApjB;A6B+eL,MAAI,CAACojB;AACI;AAEL,EAAA,OAAOA,KAAQ,aACbA,EAAI,WAAW,GAAG,MACpBA,IAAM,wBAAwBA,IAE1BA,IAAA,IAAI,IAAIA,CAAG;AAGnB,MAAIwG,KAAM5pB,IAAA,qDAAqD,KAC7DojB,EAAI,QAAQ,MADJ,gBAAApjB,EAEN;AACJ,SAAI4pB,MAGGxG,EAAI,aAAa,IAAI,KAAK,KAAK;AACxC,GAEM0F,KAAkB,OACtBe,MACiC;AAC7B,MAAA,EAACA,KAAA,QAAAA,EAAoB;AAChB,WAAAA;AAEE,aAAA,CAACpE,GAAawB,CAAS,KAAK,OAAO,QAC5C4C,EAAmB,UAAU,GAC5B;AAGC,QAAA,EACE5C,EAAU,IAAI,WAAW,yBAAyB,KAClDA,EAAU,IAAI,WAAW,wBAAwB;AAGnD;AAEI,UAAA2C,IAAMD,GAAgB1C,EAAU,GAAG;AACzC,QAAI,CAAC2C;AACH;AAEF,UAAMjE,IAAsB,MAAM,MAChC,yBAAyBiE,CAAG,kBAAkB,EAC9C,KAAK,CAAChtB,MAAMA,EAAE,KAAM,CAAA;AACtB,IAAI+oB,KAAA,QAAAA,EAAqB,QACvBsB,EAAU,MAAMtB,KAAA,gBAAAA,EAAqB;AAAA,EAEzC;AACO,SAAAkE;AACT;","x_google_ignoreList":[2,3,4,5,8,9,14,15,16,20,21,22,23,24,25]}