@danielgindi/selectbox 1.0.39 → 1.0.43

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["node_modules/core-js/internals/global.js","node_modules/core-js/internals/fails.js","node_modules/core-js/internals/descriptors.js","node_modules/core-js/internals/function-call.js","node_modules/core-js/internals/object-property-is-enumerable.js","node_modules/core-js/internals/create-property-descriptor.js","node_modules/core-js/internals/function-uncurry-this.js","node_modules/core-js/internals/classof-raw.js","node_modules/core-js/internals/indexed-object.js","node_modules/core-js/internals/require-object-coercible.js","node_modules/core-js/internals/to-indexed-object.js","node_modules/core-js/internals/is-callable.js","node_modules/core-js/internals/is-object.js","node_modules/core-js/internals/get-built-in.js","node_modules/core-js/internals/object-is-prototype-of.js","node_modules/core-js/internals/engine-user-agent.js","node_modules/core-js/internals/engine-v8-version.js","node_modules/core-js/internals/native-symbol.js","node_modules/core-js/internals/use-symbol-as-uid.js","node_modules/core-js/internals/is-symbol.js","node_modules/core-js/internals/try-to-string.js","node_modules/core-js/internals/a-callable.js","node_modules/core-js/internals/get-method.js","node_modules/core-js/internals/ordinary-to-primitive.js","node_modules/core-js/internals/is-pure.js","node_modules/core-js/internals/set-global.js","node_modules/core-js/internals/shared-store.js","node_modules/core-js/internals/shared.js","node_modules/core-js/internals/to-object.js","node_modules/core-js/internals/has-own-property.js","node_modules/core-js/internals/uid.js","node_modules/core-js/internals/well-known-symbol.js","node_modules/core-js/internals/to-primitive.js","node_modules/core-js/internals/to-property-key.js","node_modules/core-js/internals/document-create-element.js","node_modules/core-js/internals/ie8-dom-define.js","node_modules/core-js/internals/object-get-own-property-descriptor.js","node_modules/core-js/internals/an-object.js","node_modules/core-js/internals/object-define-property.js","node_modules/core-js/internals/create-non-enumerable-property.js","node_modules/core-js/internals/inspect-source.js","node_modules/core-js/internals/native-weak-map.js","node_modules/core-js/internals/shared-key.js","node_modules/core-js/internals/hidden-keys.js","node_modules/core-js/internals/internal-state.js","node_modules/core-js/internals/function-name.js","node_modules/core-js/internals/redefine.js","node_modules/core-js/internals/to-integer-or-infinity.js","node_modules/core-js/internals/to-absolute-index.js","node_modules/core-js/internals/to-length.js","node_modules/core-js/internals/length-of-array-like.js","node_modules/core-js/internals/array-includes.js","node_modules/core-js/internals/object-keys-internal.js","node_modules/core-js/internals/enum-bug-keys.js","node_modules/core-js/internals/object-get-own-property-names.js","node_modules/core-js/internals/object-get-own-property-symbols.js","node_modules/core-js/internals/own-keys.js","node_modules/core-js/internals/copy-constructor-properties.js","node_modules/core-js/internals/is-forced.js","node_modules/core-js/internals/export.js","node_modules/core-js/internals/function-apply.js","node_modules/core-js/internals/is-array.js","node_modules/core-js/internals/to-string-tag-support.js","node_modules/core-js/internals/classof.js","node_modules/core-js/internals/to-string.js","node_modules/core-js/internals/object-keys.js","node_modules/core-js/internals/object-define-properties.js","node_modules/core-js/internals/html.js","node_modules/core-js/internals/object-create.js","node_modules/core-js/internals/array-slice.js","node_modules/core-js/internals/object-get-own-property-names-external.js","node_modules/core-js/internals/well-known-symbol-wrapped.js","node_modules/core-js/internals/path.js","node_modules/core-js/internals/define-well-known-symbol.js","node_modules/core-js/internals/set-to-string-tag.js","node_modules/core-js/internals/function-bind-context.js","node_modules/core-js/internals/is-constructor.js","node_modules/core-js/internals/array-species-constructor.js","node_modules/core-js/internals/array-species-create.js","node_modules/core-js/internals/array-iteration.js","node_modules/core-js/modules/es.symbol.js","node_modules/core-js/modules/es.symbol.description.js","node_modules/core-js/internals/object-to-string.js","node_modules/core-js/modules/es.object.to-string.js","node_modules/core-js/internals/object-to-array.js","node_modules/core-js/modules/es.object.entries.js","node_modules/core-js/internals/create-property.js","node_modules/core-js/internals/array-method-has-species-support.js","node_modules/core-js/modules/es.array.concat.js","node_modules/core-js/internals/array-method-is-strict.js","node_modules/core-js/modules/es.array.join.js","node_modules/core-js/internals/iterator-close.js","node_modules/core-js/internals/call-with-safe-iteration-closing.js","node_modules/core-js/internals/iterators.js","node_modules/core-js/internals/is-array-iterator-method.js","node_modules/core-js/internals/get-iterator-method.js","node_modules/core-js/internals/get-iterator.js","node_modules/core-js/internals/array-from.js","node_modules/core-js/internals/check-correctness-of-iteration.js","node_modules/core-js/modules/es.array.from.js","node_modules/core-js/internals/string-multibyte.js","node_modules/core-js/internals/correct-prototype-getter.js","node_modules/core-js/internals/object-get-prototype-of.js","node_modules/core-js/internals/iterators-core.js","node_modules/core-js/internals/create-iterator-constructor.js","node_modules/core-js/internals/a-possible-prototype.js","node_modules/core-js/internals/object-set-prototype-of.js","node_modules/core-js/internals/define-iterator.js","node_modules/core-js/modules/es.string.iterator.js","node_modules/core-js/internals/is-regexp.js","node_modules/core-js/internals/not-a-regexp.js","node_modules/core-js/internals/correct-is-regexp-logic.js","node_modules/core-js/modules/es.string.starts-with.js","node_modules/core-js/modules/es.array.splice.js","node_modules/core-js/modules/es.array.slice.js","node_modules/core-js/internals/create-html.js","node_modules/core-js/internals/string-html-forced.js","node_modules/core-js/modules/es.string.anchor.js","node_modules/core-js/internals/add-to-unscopables.js","node_modules/core-js/modules/es.array.find.js","node_modules/core-js/internals/inherit-if-required.js","node_modules/core-js/internals/regexp-flags.js","node_modules/core-js/internals/regexp-sticky-helpers.js","node_modules/core-js/internals/set-species.js","node_modules/core-js/internals/regexp-unsupported-dot-all.js","node_modules/core-js/internals/regexp-unsupported-ncg.js","node_modules/core-js/modules/es.regexp.constructor.js","node_modules/core-js/internals/regexp-exec.js","node_modules/core-js/modules/es.regexp.exec.js","node_modules/core-js/modules/es.regexp.to-string.js","node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","node_modules/core-js/internals/advance-string-index.js","node_modules/core-js/internals/get-substitution.js","node_modules/core-js/internals/regexp-exec-abstract.js","node_modules/core-js/modules/es.string.replace.js","lib/utils/escapeRegex.js","lib/DropList.js","node_modules/core-js/modules/es.array.iterator.js","node_modules/core-js/internals/array-buffer-non-extensible.js","node_modules/core-js/internals/object-is-extensible.js","node_modules/core-js/internals/freezing.js","node_modules/core-js/internals/internal-metadata.js","node_modules/core-js/internals/iterate.js","node_modules/core-js/internals/an-instance.js","node_modules/core-js/internals/collection.js","node_modules/core-js/internals/redefine-all.js","node_modules/core-js/internals/collection-strong.js","node_modules/core-js/modules/es.set.js","node_modules/core-js/internals/dom-iterables.js","node_modules/core-js/internals/dom-token-list-prototype.js","node_modules/core-js/modules/web.dom-collections.iterator.js","node_modules/core-js/internals/object-assign.js","node_modules/core-js/modules/es.object.assign.js","node_modules/core-js/internals/whitespaces.js","node_modules/core-js/internals/string-trim.js","node_modules/core-js/internals/string-trim-forced.js","node_modules/core-js/modules/es.string.trim.js","node_modules/core-js/modules/es.array.filter.js","node_modules/core-js/modules/es.array.map.js","node_modules/core-js/modules/es.array.find-index.js","node_modules/core-js/internals/array-sort.js","node_modules/core-js/internals/engine-ff-version.js","node_modules/core-js/internals/engine-is-ie-or-edge.js","node_modules/core-js/internals/engine-webkit-version.js","node_modules/core-js/modules/es.array.sort.js","lib/utils/throttle.js","lib/SelectBox.js"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\n\nmodule.exports = bind ? function (fn) {\n return fn && callBind(call, fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = false;\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.19.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !hasOwn(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function (argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function (argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n // we can't check .prototype since constructors produced by .bind haven't it\n } return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n};\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar arraySlice = require('../internals/array-slice');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n redefine(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!SymbolPrototype[TO_PRIMITIVE]) {\n var valueOf = SymbolPrototype.valueOf;\n // eslint-disable-next-line no-unused-vars -- required for .length\n redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n // TODO: improve hint logic\n return call(valueOf, this);\n });\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\nvar TypeError = global.TypeError;\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar un$StartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return un$StartsWith\n ? un$StartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar TypeError = global.TypeError;\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return un$Slice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '&quot;') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nexports.UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar regExpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar getFlags = uncurryThis(regExpFlags);\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (UNSUPPORTED_Y && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxy(keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n // eslint-disable-next-line max-statements -- TODO\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar TypeError = global.TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","export default value => value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\r\n","import escapeRegex from './utils/escapeRegex';\r\nimport {\r\n closestUntil,\r\n createElement,\r\n} from '@danielgindi/dom-utils/lib/Dom';\r\nimport {\r\n remove,\r\n toggleClass,\r\n} from '@danielgindi/dom-utils/lib/DomCompat';\r\nimport {\r\n setCssProps,\r\n getElementHeight,\r\n getElementWidth,\r\n setElementHeight,\r\n setElementWidth, getElementOffset, anchoredPosition,\r\n parseTransition,\r\n} from '@danielgindi/dom-utils/lib/Css';\r\nimport DomEventsSink from '@danielgindi/dom-utils/lib/DomEventsSink';\r\nimport VirtualListHelper from '@danielgindi/virtual-list-helper';\r\nimport {\r\n VALUE_DOWN,\r\n VALUE_END,\r\n VALUE_ENTER, VALUE_ESCAPE,\r\n VALUE_HOME,\r\n VALUE_PAGE_DOWN,\r\n VALUE_PAGE_UP,\r\n VALUE_SPACE,\r\n VALUE_UP,\r\n} from 'keycode-js';\r\nimport mitt from 'mitt';\r\n\r\nconst ItemSymbol = Symbol('item');\r\nconst DestroyedSymbol = Symbol('destroyed');\r\nconst GhostSymbol = Symbol('ghost');\r\n\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\n/**\r\n * @typedef {Object} DropList.Options\r\n * @property {Element} [el] An element to attach to, instead of creating a new one\r\n * @property {string} [baseClassName='droplist'] class name for the menu root element\r\n * @property {string|string[]} [additionalClasses]\r\n * @property {number} [itemBlurDelay=300] How long to wait before deciding to blur the focused item?\r\n * @property {boolean} [capturesFocus=true] Should this DropList be added to the TAB-key stack?\r\n * @property {boolean} [multi=false] Does this DropList show checkboxes for multiple item selection?\r\n * @property {function} [keyDownHandler=null] An alternative \"keydown\" event handler. Return true to prevent default behaviour.\r\n * @property {boolean} [autoCheckGroupChildren=true] When a group is checked/unchecked - all items beneath it will update accordingly\r\n * @property {boolean} [useExactTargetWidth=false] Use the exact target's width, do not allow growing\r\n * @property {boolean} [constrainToWindow=true] Should the position be constrained to the window, attaching to window's borders if needed?\r\n * @property {Boolean} [autoFlipDirection=true] Should the position/anchor be flipped automatically when there's no space in the required direction?\r\n * @property {number} [estimatedItemHeight=20] An estimated row height, for approximating scroll height.\r\n * @property {boolean} [estimateWidth=false] Use an estimation for the width instead of measuring. May be faster - needs testing and may depend on the CSS.\r\n * @property {number} [virtualMinItems=100] Turns into a virtual list - with items being created and showing up on viewport only. The value specified the minimum item count where a virtual list will be created.\r\n * @property {string} [labelProp='label']\r\n * @property {string} [valueProp='value']\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderItem] Function to call when rendering an item element\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderItem] Function to call when rendering an item element\r\n * @property {function(name: string, data: *)} [on]\r\n * */\r\n/** */\r\n\r\n/**\r\n * @typedef {Object} DropList.PositionAnchor\r\n * @property {'left'|'center'|'right'|'start'|'end'|string|number} x - horizontal anchor specification (could be either `'left'|'center'|'right'|'start'|'end'` or a percentage `'50%'` or a fixed decimal `Number`)\r\n * @property {'top'|'center'|'bottom'|string|number} y - vertical anchor specification (could be either `'top'|'center'|'bottom'` or a percentage `'50%'` or a fixed decimal `Number`)\r\n * */\r\n/** */\r\n\r\n/**\r\n * @typedef {Object} DropList.PositionOptions\r\n * @property {Element} [target] Target element to act as anchor\r\n * @property {{left: number, top: number}} [targetOffset=undefined] Override the offset of target. Automatically calculated if unspecified.\r\n * @property {number} [targetHeight=undefined] Override height of the target\r\n * @property {number} [targetWidth=undefined] Override width of the target\r\n * @property {DropList.PositionAnchor} [position=undefined]\r\n * @property {DropList.PositionAnchor} [anchor=undefined]\r\n * @property {boolean} [updateWidth=false] Should update the width of the menu according to target\r\n * @property {string} [targetRtl=undefined] Override for rtl mode of the target\r\n * @property {{x: number, y: number}} [offset=undefined] Extra rtl-aware offset to the target\r\n * */\r\n/** */\r\n\r\n/**\r\n * @typedef {Object} DropList.ItemBase\r\n * @property {string} [value]\r\n * @property {string} [label]\r\n * @property {boolean} [_group=false]\r\n * @property {boolean} [_child=false]\r\n * @property {boolean} [_nocheck=false]\r\n * @property {boolean} [_nointeraction=false]\r\n * */\r\n\r\n/**\r\n * @typedef {DropList.ItemBase} DropList.Item\r\n * @property {boolean} [_checked=false]\r\n * */\r\n/** */\r\n\r\n/** @type {DropList.Options} */\r\nlet defaultOptions = {\r\n baseClassName: 'droplist',\r\n\r\n itemBlurDelay: 300,\r\n capturesFocus: true,\r\n multi: false,\r\n keyDownHandler: null,\r\n autoCheckGroupChildren: true,\r\n useExactTargetWidth: false,\r\n\r\n constrainToWindow: true,\r\n autoFlipDirection: true,\r\n\r\n estimateWidth: false,\r\n virtualMinItems: 100,\r\n\r\n labelProp: 'label',\r\n valueProp: 'value',\r\n\r\n on: null,\r\n};\r\n\r\n/*\r\nEmits the following events:\r\n---------------------------\r\n\r\n'itemfocus' {value, item, event}: item gained focus.\r\n'itemblur' {value, item}: item lost focus.\r\n'select' {value, item}: item was selected (in single mode).\r\n'show:before': the drop list will show.\r\n'show': the drop list has been shown.\r\n'hide:before': the drop list will hide.\r\n'hide': the drop list was hidden.\r\n'hide:after': emitted after the hide css transition has ended, or immediately after 'hide'.\r\n'check' {value, item, isCheckingGroup}: item was selected (in multi mode).\r\n'groupcheck' {value, item, affectedItems}: item was selected (in multi mode).\r\n */\r\n\r\n// noinspection JSUnusedGlobalSymbols\r\nclass DropList {\r\n\r\n /**\r\n * @param {DropList.Options} options\r\n */\r\n constructor(options) {\r\n const o = { ...defaultOptions };\r\n\r\n for (let [key, value] of Object.entries(/**@type Object*/options))\r\n if (value !== undefined)\r\n o[key] = value;\r\n\r\n const p = this._p = {\r\n ownsEl: true,\r\n elOriginalDisplay: '',\r\n\r\n baseClassName: o.baseClassName,\r\n additionalClasses: o.additionalClasses,\r\n itemBlurDelay: o.itemBlurDelay,\r\n capturesFocus: o.capturesFocus,\r\n multi: o.multi,\r\n keyDownHandler: o.keyDownHandler,\r\n autoCheckGroupChildren: o.autoCheckGroupChildren,\r\n useExactTargetWidth: o.useExactTargetWidth,\r\n constrainToWindow: o.constrainToWindow,\r\n autoFlipDirection: o.autoFlipDirection,\r\n estimateWidth: o.estimateWidth,\r\n virtualMinItems: o.virtualMinItems,\r\n labelProp: o.labelProp,\r\n valueProp: o.valueProp,\r\n renderItem: o.renderItem,\r\n unrenderItem: o.unrenderItem,\r\n on: o.on || null,\r\n silenceEvents: true,\r\n mitt: mitt(),\r\n\r\n focusItemIndex: -1,\r\n focusItemEl: null,\r\n\r\n sink: new DomEventsSink(),\r\n };\r\n\r\n let classes = [p.baseClassName];\r\n\r\n if (p.additionalClasses) {\r\n classes = classes.concat(p.additionalClasses);\r\n }\r\n\r\n const initialCss = {\r\n // make initial position not interfere with layout so it can be correctly calculated\r\n top: '-9999px',\r\n };\r\n\r\n let el = o.el;\r\n if (el instanceof Element) {\r\n p.elOriginalDisplay = el.style.display || '';\r\n el.classList.add(...classes);\r\n el.role = 'menu';\r\n setCssProps(/**@type ElementCSSInlineStyle*/el, initialCss);\r\n p.ownsEl = false;\r\n } else {\r\n el = createElement('ul', {\r\n class: classes.join(' '),\r\n role: 'menu',\r\n css: initialCss,\r\n });\r\n }\r\n\r\n p.el = el;\r\n\r\n p.items = [];\r\n\r\n p.groupCount = 0; // This will keep state of how many `group` items we have\r\n\r\n p.mouseHandled = false;\r\n\r\n p.virtualListHelper = new VirtualListHelper({\r\n list: p.el,\r\n virtual: true,\r\n buffer: 5,\r\n estimatedItemHeight: o.estimatedItemHeight || 20,\r\n itemElementCreatorFn: () => {\r\n return createElement('li',\r\n {\r\n role: 'menuitem',\r\n tabIndex: p.capturesFocus ? -1 : null,\r\n },\r\n );\r\n },\r\n onItemRender: (itemEl, index) => {\r\n let item;\r\n\r\n if ((/**@type any*/index) === GhostSymbol) {\r\n item = {\r\n [p.labelProp]: p.lastMeasureLongestLabelText,\r\n [p.valueProp]: 'Measure',\r\n };\r\n itemEl.setAttribute('aria-hidden', 'true');\r\n } else {\r\n item = p.items[index];\r\n }\r\n\r\n if (!item) {\r\n // eslint-disable-next-line no-console\r\n console.warn('onItemRender called for (' + index + ') which has no item');\r\n }\r\n\r\n itemEl.className = `${p.baseClassName}__item`;\r\n\r\n const classList = itemEl.classList;\r\n\r\n if (p.multi) {\r\n if (item._nocheck) {\r\n classList.add(`${p.baseClassName}__item_multi_nocheck`);\r\n } else {\r\n classList.add(`${p.baseClassName}__item_multi`);\r\n\r\n if (item._checked) {\r\n classList.add(`${p.baseClassName}__item_checked`);\r\n }\r\n }\r\n } else {\r\n classList.add(`${p.baseClassName}__item_single`);\r\n }\r\n\r\n if (item._group)\r\n classList.add(`${p.baseClassName}__item_group`);\r\n\r\n if (item._child)\r\n classList.add(`${p.baseClassName}__item_child`);\r\n\r\n if (item._nointeraction)\r\n classList.add(`${p.baseClassName}__item_nointeraction`);\r\n\r\n if (p.focusItemIndex === index) {\r\n p.focusItemEl = itemEl;\r\n classList.add(`${p.baseClassName}__item_focus`);\r\n }\r\n\r\n this._renderItemContent(item, itemEl);\r\n\r\n itemEl[ItemSymbol] = item;\r\n },\r\n });\r\n\r\n if (typeof p.unrenderItem === 'function') {\r\n const fn = p.unrenderItem;\r\n p.virtualListHelper.setOnItemUnrender(el => {\r\n try {\r\n fn(el[ItemSymbol], el);\r\n } catch (err) { console.error(err); } // eslint-disable-line no-console\r\n delete el[ItemSymbol];\r\n\r\n if (p.focusItemEl === el)\r\n p.focusItemEl = null;\r\n });\r\n } else {\r\n p.virtualListHelper.setOnItemUnrender(el => {\r\n delete el[ItemSymbol];\r\n\r\n if (p.focusItemEl === el)\r\n p.focusItemEl = null;\r\n });\r\n }\r\n\r\n if (p.capturesFocus) {\r\n el.tabIndex = 0;\r\n }\r\n\r\n this._hookMouseEvents();\r\n this._hookTouchEvents();\r\n this._hookFocusEvents();\r\n this._hookKeyEvents();\r\n\r\n this.silenceEvents = false;\r\n }\r\n\r\n destroy() {\r\n if (this[DestroyedSymbol])\r\n return;\r\n this[DestroyedSymbol] = true;\r\n\r\n const p = this._p;\r\n\r\n clearTimeout(p.blurTimer);\r\n clearTimeout(p.filterTimer);\r\n\r\n p.sink.remove();\r\n p.virtualListHelper.destroy();\r\n\r\n if (p.el) {\r\n remove(p.el);\r\n }\r\n\r\n if (!p.ownsEl) {\r\n for (let name of Array.from(p.el.classList)) {\r\n if (name.startsWith(p.baseClassName)) {\r\n p.el.classList.remove(name);\r\n }\r\n }\r\n p.el.removeAttribute('role');\r\n for (let key of ['position', 'left', 'top', 'right', 'bottom', 'z-index']) {\r\n p.el.style[key] = '';\r\n }\r\n p.el.style.display = p.elOriginalDisplay;\r\n }\r\n\r\n if (p.lastPositionTarget) {\r\n p.lastPositionTarget.classList.remove(\r\n `has_${p.baseClassName}`,\r\n `has_${p.baseClassName}_above`,\r\n `has_${p.baseClassName}_below`);\r\n delete p.lastPositionTarget;\r\n }\r\n\r\n this._p = null;\r\n }\r\n\r\n get el() {\r\n return this._p.el;\r\n }\r\n\r\n /**\r\n * @param {string|string[]} classes\r\n * @returns {DropList}\r\n */\r\n setAdditionalClasses(classes) {\r\n const p = this._p;\r\n p.additionalClasses = classes;\r\n this._syncBaseClasses();\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {DropList}\r\n */\r\n setLabelProp(prop) {\r\n const p = this._p;\r\n p.labelProp = prop;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {DropList}\r\n */\r\n setValueProp(prop) {\r\n const p = this._p;\r\n p.valueProp = prop;\r\n return this;\r\n }\r\n\r\n _syncBaseClasses() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!el)\r\n return;\r\n\r\n let classes = [p.baseClassName];\r\n\r\n if (p.additionalClasses) {\r\n classes = classes.concat(p.additionalClasses);\r\n }\r\n\r\n el.className = classes.join(' ');\r\n }\r\n\r\n blurFocusedItem() {\r\n const p = this._p;\r\n\r\n clearTimeout(p.blurTimer);\r\n\r\n if (!this.hasFocusedItem()) {\r\n return;\r\n }\r\n\r\n let focusItemEl = p.focusItemEl;\r\n if (focusItemEl) {\r\n focusItemEl.classList.remove(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = null;\r\n }\r\n\r\n const item = p.items[p.focusItemIndex];\r\n p.focusItemIndex = -1;\r\n\r\n if (!item)\r\n return;\r\n\r\n this._trigger('itemblur', { value: item[p.valueProp], item: item });\r\n }\r\n\r\n nextPage(event) {\r\n this._move('next_page', event);\r\n }\r\n\r\n previousPage(event) {\r\n this._move('prev_page', event);\r\n }\r\n\r\n toggleFocusedItem() {\r\n const p = this._p;\r\n\r\n if (this.hasFocusedItem() && p.multi) {\r\n let item = p.items[p.focusItemIndex];\r\n if (item._nocheck || item._nointeraction) return this;\r\n\r\n item._checked = !item._checked;\r\n if (p.focusItemEl) {\r\n toggleClass(p.focusItemEl, `${p.baseClassName}__item_checked`, item._checked);\r\n }\r\n this._trigger('check', { value: item[p.valueProp], item: item });\r\n\r\n this._updateGroupStateForItem(item);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n triggerItemSelection(event) {\r\n const p = this._p;\r\n\r\n p.focusItemEl = p.focusItemEl || closestUntil(event.target, 'li', p.el);\r\n p.focusItemIndex = p.virtualListHelper.getItemIndexFromElement(p.focusItemEl);\r\n if (p.focusItemIndex === undefined)\r\n p.focusItemIndex = -1;\r\n\r\n let item = p.focusItemEl[ItemSymbol];\r\n if (item._nointeraction) {\r\n return false;\r\n }\r\n\r\n if (!p.multi) {\r\n this._setSingleSelectedItemEl(p.focusItemEl);\r\n }\r\n\r\n this._trigger('select', { value: item ? item[p.valueProp] : undefined, item: item });\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.Item} item The item to add. It is copied.\r\n * @param {number} [atIndex=-1] The index to insert at (or -1)\r\n * @returns {DropList}\r\n */\r\n addItem(item, atIndex = -1) {\r\n return this.addItems([item], atIndex);\r\n }\r\n\r\n /**\r\n * Adds items to the menu and renders\r\n * @param {DropList.Item[]} itemsToAdd The items to add. These are copied.\r\n * @param {number} [atIndex=-1] The index to insert at (or -1)\r\n * @returns {DropList}\r\n */\r\n addItems(itemsToAdd, atIndex = -1) {\r\n const p = this._p, labelProp = p.labelProp, valueProp = p.valueProp;\r\n\r\n let isMulti = p.multi;\r\n let items = p.items;\r\n\r\n if (atIndex == null || atIndex < 0 || atIndex >= p.items.length) {\r\n atIndex = -1;\r\n }\r\n\r\n // Determine if the list is virtual or not\r\n this._determineVirtualMode(items.length + itemsToAdd.length);\r\n\r\n for (let i = 0, count = itemsToAdd.length; i < count; i++) {\r\n let oitem = itemsToAdd[i];\r\n //noinspection PointlessBooleanExpressionJS\r\n let item = {\r\n [ItemSymbol]: oitem,\r\n [labelProp]: oitem[labelProp],\r\n [valueProp]: oitem[valueProp],\r\n _nocheck: !!oitem._nocheck,\r\n _nointeraction: !!oitem._nointeraction,\r\n };\r\n\r\n if (isMulti) {\r\n item._checked = !!oitem._checked;\r\n }\r\n\r\n if (oitem._group) {\r\n item._group = true;\r\n p.groupCount++;\r\n }\r\n\r\n if (oitem._child) {\r\n // This is used for setting a child class,\r\n // But can be used to determine that current item is not part of above group,\r\n // mainly where the groups are oddly sorted.\r\n item._child = true;\r\n }\r\n\r\n // Add the item to the list of them\r\n if (atIndex !== -1) {\r\n items.splice(atIndex, 0, item);\r\n } else {\r\n items.push(item);\r\n }\r\n\r\n if (atIndex !== -1) {\r\n atIndex++;\r\n }\r\n }\r\n\r\n p.virtualListHelper\r\n .addItemsAt(itemsToAdd.length, atIndex === -1 ? atIndex : (atIndex - itemsToAdd.length))\r\n .render();\r\n\r\n return this;\r\n }\r\n\r\n updateItemByValue(value, newItem) {\r\n const p = this._p;\r\n\r\n // Look for the proper item\r\n let itemIndex = this.itemIndexByValue(value);\r\n if (itemIndex < -1) return this;\r\n\r\n let item = this.itemAtIndex(itemIndex);\r\n item[ItemSymbol] = newItem;\r\n\r\n if (hasOwnProperty.call(newItem, p.labelProp))\r\n item[p.labelProp] = newItem[p.labelProp];\r\n\r\n if (hasOwnProperty.call(newItem, p.valueProp))\r\n item[p.valueProp] = newItem[p.valueProp];\r\n\r\n if (hasOwnProperty.call(newItem, '_nocheck'))\r\n item._nocheck = !!newItem._nocheck;\r\n\r\n if (hasOwnProperty.call(newItem, '_nointeraction'))\r\n item._nointeraction = !!newItem._nointeraction;\r\n\r\n if (p.multi) {\r\n if (hasOwnProperty.call(newItem, '_checked'))\r\n item._checked = !!newItem._checked;\r\n }\r\n\r\n if (hasOwnProperty.call(newItem, '_group')) {\r\n if (!!newItem._group !== item._group) {\r\n if (item._group)\r\n p.groupCount--;\r\n else p.groupCount++;\r\n\r\n newItem._group = !!item._group;\r\n }\r\n }\r\n\r\n if (hasOwnProperty.call(newItem, '_child'))\r\n item._child = !!newItem._child;\r\n\r\n if (p.virtualListHelper.isItemRendered(itemIndex)) {\r\n p.virtualListHelper\r\n .refreshItemAt(itemIndex)\r\n .render();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n removeItem(value, label) {\r\n const p = this._p;\r\n\r\n // Look for the proper item\r\n let itemIndex = this.itemIndexByValueOrLabel(value, label);\r\n if (itemIndex < -1) return this;\r\n\r\n let spliced = p.items.splice(itemIndex, 1);\r\n if (spliced[0]._group) {\r\n p.groupCount--;\r\n }\r\n\r\n p.virtualListHelper\r\n .removeItemsAt(itemIndex, 1)\r\n .render();\r\n\r\n return this;\r\n }\r\n\r\n removeAllItems() {\r\n const p = this._p;\r\n\r\n p.items.length = 0;\r\n p.groupCount = 0;\r\n\r\n p.virtualListHelper\r\n .setCount(0)\r\n .render();\r\n\r\n return this;\r\n }\r\n\r\n itemDataByValue(value) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (item[valueProp] === value) {\r\n return item;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n itemIndexByValue(value) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (item[valueProp] === value) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n itemIndexByValueOrLabel(value, label) {\r\n const p = this._p, labelProp = p.labelProp, valueProp = p.valueProp;\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (item[valueProp] === value || item[labelProp] === label) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n items() {\r\n return this._p.items.slice(0);\r\n }\r\n\r\n itemsReference() {\r\n return this._p.items;\r\n }\r\n\r\n itemCount() {\r\n return this._p.items.length;\r\n }\r\n\r\n itemAtIndex(index) {\r\n return this._p.items[index];\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.PositionOptions} positionOptions\r\n * @returns {DropList}\r\n * @public\r\n */\r\n relayout(positionOptions) {\r\n const p = this._p, el = p.el;\r\n\r\n if (!this.isVisible()) return this;\r\n\r\n let w = window;\r\n\r\n let targetBox = {};\r\n\r\n let offset = positionOptions.targetOffset || getElementOffset(positionOptions.target);\r\n targetBox.left = offset.left;\r\n targetBox.top = offset.top;\r\n targetBox.height = positionOptions.targetHeight == null\r\n ? getElementHeight(positionOptions.target, true, true)\r\n : positionOptions.targetHeight;\r\n targetBox.width = positionOptions.targetWidth == null\r\n ? getElementWidth(positionOptions.target, true, true)\r\n : positionOptions.targetWidth;\r\n targetBox.bottom = targetBox.top + targetBox.height;\r\n\r\n let viewport = {};\r\n viewport.top = w.pageYOffset;\r\n viewport.left = w.pageXOffset;\r\n viewport.width = w.innerWidth;\r\n viewport.height = w.innerHeight;\r\n viewport.bottom = viewport.top + viewport.height;\r\n viewport.right = viewport.left + viewport.width;\r\n\r\n let defaultVerticalDirection = (positionOptions.position && positionOptions.position.y === 'bottom')\r\n ? 'above'\r\n : 'below';\r\n\r\n // Reset dropdown width\r\n el.style.width = '';\r\n\r\n // Make estimations\r\n if (p.estimateWidth ||\r\n p.virtualListHelper.isVirtual()) {\r\n this._measureItem();\r\n }\r\n\r\n // Calculate virtual viewport size\r\n if (p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.render();\r\n }\r\n\r\n // Now set the width of the dropdown\r\n if (positionOptions.updateWidth) {\r\n this._updateWidth(positionOptions);\r\n }\r\n\r\n // How much space is there above, and how much below?\r\n let roomAbove = targetBox.top - viewport.top;\r\n let roomBelow = viewport.bottom - targetBox.bottom;\r\n\r\n // Calculate height for dropdown\r\n\r\n let maxViewHeight;\r\n\r\n const elComputedStyle = getComputedStyle(el);\r\n\r\n let isBoxing = elComputedStyle.boxSizing === 'border-box';\r\n let verticalPadding = (parseFloat(elComputedStyle.paddingTop) || 0) +\r\n (parseFloat(elComputedStyle.paddingBottom) || 0);\r\n let verticalBorderWidth = (parseFloat(elComputedStyle.borderTopWidth) || 0) +\r\n (parseFloat(elComputedStyle.borderBottomWidth) || 0);\r\n\r\n if (p.virtualListHelper.isVirtual()) {\r\n maxViewHeight =\r\n p.virtualListHelper.estimateFullHeight() +\r\n verticalPadding +\r\n verticalBorderWidth;\r\n } else {\r\n // Another method to calculate height is measuring the whole thing at once.\r\n // This causes relayout of course.\r\n el.style.height = '';\r\n el.style.top = '-9999px';\r\n\r\n maxViewHeight = Math.max(getElementHeight(p.el), el.scrollHeight);\r\n maxViewHeight += verticalPadding + verticalBorderWidth;\r\n }\r\n\r\n // Consider css max-height\r\n\r\n let maxHeight = parseFloat(elComputedStyle.maxHeight);\r\n if (!isNaN(maxHeight)) {\r\n if (!isBoxing) {\r\n maxHeight += verticalPadding + verticalBorderWidth;\r\n }\r\n\r\n maxViewHeight = Math.min(maxViewHeight, maxHeight);\r\n }\r\n\r\n // Figure out the direction\r\n\r\n let enoughRoomAbove = roomAbove >= maxViewHeight;\r\n let enoughRoomBelow = roomBelow >= maxViewHeight;\r\n\r\n let newDirection = p.currentDirection || defaultVerticalDirection;\r\n if (newDirection === 'above' && !enoughRoomAbove && enoughRoomBelow) {\r\n newDirection = 'below';\r\n } else if (newDirection === 'below' && !enoughRoomBelow && enoughRoomAbove) {\r\n newDirection = 'above';\r\n } else if (enoughRoomAbove && enoughRoomBelow) {\r\n if (newDirection !== defaultVerticalDirection &&\r\n ((defaultVerticalDirection === 'above' && roomAbove >= roomBelow) ||\r\n (defaultVerticalDirection === 'below' && roomBelow >= roomAbove))) {\r\n newDirection = defaultVerticalDirection;\r\n }\r\n } else if (!enoughRoomAbove && !enoughRoomBelow) {\r\n if (roomAbove > roomBelow) {\r\n newDirection = 'above';\r\n } else if (roomBelow > roomAbove) {\r\n newDirection = 'below';\r\n }\r\n }\r\n p.currentDirection = newDirection;\r\n\r\n // Figure out that final view size\r\n let viewSize = {\r\n width: getElementWidth(el, true, true),\r\n height: Math.min(maxViewHeight, Math.max(roomAbove, roomBelow, 0)),\r\n };\r\n\r\n let isTargetRtl = positionOptions.targetRtl !== undefined ?\r\n positionOptions.targetRtl :\r\n (positionOptions.target == null ? false : getComputedStyle(positionOptions.target).direction === 'rtl');\r\n let isRtlDocument = getComputedStyle(document.documentElement).direction === 'rtl';\r\n\r\n let anchor = anchoredPosition(positionOptions.target,\r\n positionOptions.anchor ? positionOptions.anchor.x : 'start',\r\n positionOptions.anchor ? positionOptions.anchor.y : 'bottom',\r\n targetBox, isTargetRtl);\r\n let position = anchoredPosition(el,\r\n positionOptions.position ? positionOptions.position.x : 'start',\r\n positionOptions.position ? positionOptions.position.y : 'top',\r\n viewSize, isTargetRtl);\r\n\r\n // If it's not in the direction that the user expected, invert it\r\n let invertYPos =\r\n (position.specY === 'top' && newDirection === 'above') ||\r\n (position.specY === 'bottom' && newDirection === 'below') ||\r\n (position.specY !== 'bottom' && position.specY !== 'top' && newDirection === 'above');\r\n\r\n let scrollLeft =\r\n (w.pageXOffset !== undefined) ?\r\n w.pageXOffset :\r\n (document.documentElement || document.body.parentNode || document.body).scrollLeft;\r\n scrollLeft = Math.abs(scrollLeft);\r\n if (isRtlDocument) {\r\n scrollLeft = document.documentElement.scrollWidth - scrollLeft - document.documentElement.clientWidth;\r\n }\r\n\r\n let minX = scrollLeft,\r\n maxX = document.documentElement.clientWidth + scrollLeft - viewSize.width;\r\n\r\n let viewCss = {\r\n 'position': 'absolute',\r\n 'left': targetBox.left,\r\n 'top': targetBox.top + (invertYPos ? (anchor.bottom - position.bottom) : (anchor.top - position.top)),\r\n };\r\n\r\n if (isRtlDocument) {\r\n viewCss.left -= document.documentElement.clientWidth - document.documentElement.scrollWidth;\r\n }\r\n\r\n viewCss.left += anchor.left - position.left;\r\n\r\n if (positionOptions.offset) {\r\n if (positionOptions.offset.y) {\r\n if (invertYPos) {\r\n viewCss.top -= positionOptions.offset.y;\r\n } else {\r\n viewCss.top += positionOptions.offset.y;\r\n }\r\n }\r\n\r\n if (positionOptions.offset.x) {\r\n let rtl = elComputedStyle.direction === 'rtl';\r\n viewCss.left += rtl\r\n ? -positionOptions.offset.x\r\n : positionOptions.offset.x;\r\n }\r\n }\r\n\r\n if (p.autoFlipDirection) {\r\n if ((position.specX === 'right' &&\r\n viewCss.left < minX &&\r\n (Math.max(viewCss.left, minX) + viewSize.width - targetBox.left) / targetBox.width > 0.5) ||\r\n (position.specX === 'left' &&\r\n viewCss.left > maxX &&\r\n (Math.min(viewCss.left, maxX) - targetBox.left) / targetBox.width < 0.5)) {\r\n viewCss.left -= anchor.left - position.left;\r\n viewCss.left += anchor.right - position.right;\r\n }\r\n }\r\n\r\n // Constrain to the window if required\r\n if (p.constrainToWindow) {\r\n for (let which of (isRtlDocument ? ['min', 'max'] : ['max', 'min'])) {\r\n if (which === 'min' && viewCss.left < minX)\r\n viewCss.left = minX;\r\n else if (which === 'max' && viewCss.left > maxX)\r\n viewCss.left = maxX;\r\n }\r\n }\r\n\r\n // Set position CSS\r\n viewCss.left += 'px';\r\n viewCss.top += 'px';\r\n setCssProps(el, viewCss);\r\n setElementHeight(el, viewSize.height, true, true);\r\n\r\n // Update the scroll position for virtual lists\r\n p.virtualListHelper.render();\r\n\r\n // Update position classes\r\n if (positionOptions && positionOptions.target) {\r\n p.lastPositionTarget = positionOptions.target;\r\n\r\n toggleClass(positionOptions.target, `has_${p.baseClassName}`, true);\r\n toggleClass(positionOptions.target, `has_${p.baseClassName}_below`, newDirection === 'below');\r\n toggleClass(positionOptions.target, `has_${p.baseClassName}_above`, newDirection === 'above');\r\n\r\n toggleClass(el, `${p.baseClassName}__is_below`, newDirection === 'below');\r\n toggleClass(el, `${p.baseClassName}__is_above`, newDirection === 'above');\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the checked mode of a specific value.\r\n * @public\r\n * @param {*} value - array of values to check\r\n * @param {boolean} checked - will the value be checked?\r\n * @returns {DropList} self\r\n */\r\n setItemChecked(value, checked) {\r\n const p = this._p;\r\n\r\n checked = !!checked;\r\n\r\n let index = this.itemIndexByValue(value);\r\n if (index === -1) return this;\r\n\r\n let li = p.virtualListHelper.getItemElementAt(index);\r\n if (!li) return this;\r\n\r\n let item = li[ItemSymbol];\r\n\r\n checked = checked && !item._nocheck;\r\n\r\n if (item._checked !== checked) {\r\n item._checked = checked;\r\n\r\n toggleClass(li, `${p.baseClassName}__item_checked`, item._checked);\r\n\r\n this._updateGroupStateForItem(item);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the checked values. All the other values will be unchecked,\r\n * @public\r\n * @param {Array<*>} values - array of values to check\r\n * @returns {DropList} self\r\n */\r\n setCheckedValues(values) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n let groupIndexes = [];\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n let checked = !item._nocheck && values.indexOf(item[valueProp]) !== -1;\r\n\r\n if (item._group) {\r\n groupIndexes.push(i);\r\n }\r\n\r\n if (item._checked === checked) continue;\r\n\r\n item._checked = checked;\r\n\r\n let li = p.virtualListHelper.getItemElementAt(i);\r\n if (!li) continue;\r\n\r\n toggleClass(li, `${p.baseClassName}__item_checked`, item._checked);\r\n }\r\n\r\n if (p.autoCheckGroupChildren) {\r\n for (let i = 0, count = groupIndexes.length; i < count; i++) {\r\n this._updateGroupCheckedState(groupIndexes[i], false);\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Get all checked values. Returns array of item values.\r\n * @public\r\n * @param {boolean} excludeGroups=false Exclude group items\r\n * @returns {Array<*>} self\r\n */\r\n getCheckedValues(excludeGroups) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n excludeGroups = excludeGroups && p.groupCount > 0;\r\n\r\n let values = [];\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (!item._checked) continue;\r\n if (excludeGroups && item._group) continue;\r\n values.push(item[valueProp]);\r\n }\r\n\r\n return values;\r\n }\r\n\r\n /**\r\n * Get all checked items. Returns array of actual item data object.\r\n * @public\r\n * @param {boolean} excludeGroups=false Exclude group items\r\n * @returns {DropList.Item[]}\r\n */\r\n getCheckedItems(excludeGroups) {\r\n const p = this._p;\r\n\r\n excludeGroups = excludeGroups && p.groupCount > 0;\r\n\r\n let items = [];\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (!item._checked) continue;\r\n if (excludeGroups && item._group) continue;\r\n items.push(item);\r\n }\r\n\r\n return items;\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.PositionOptions?} positionOptions\r\n * @returns {DropList}\r\n * @public\r\n */\r\n show(positionOptions) {\r\n const p = this._p;\r\n\r\n p.hiding = false;\r\n\r\n if (!this.isVisible()) {\r\n this._trigger('show:before');\r\n }\r\n\r\n p.mouseHandled = false;\r\n\r\n setTimeout(() => { // Skip the end of a 'click' event\r\n if (this[DestroyedSymbol]) return;\r\n\r\n if (!p.onDocumentMouseDown) {\r\n // Detect mouse tap outside of the droplist, to blur the focused item\r\n p.sink.add(document, 'mousedown', p.onDocumentMouseDown = (event) => {\r\n if (!p.el.contains(event.target))\r\n this._delayBlur();\r\n });\r\n }\r\n });\r\n\r\n const el = p.el;\r\n el.style.position = 'absolute';\r\n el.classList.remove(`${p.baseClassName}__is-hiding`);\r\n document.body.appendChild(el);\r\n\r\n p.visible = true;\r\n\r\n p.el.style.display = '';\r\n if (getComputedStyle(p.el).display === 'none')\r\n p.el.style.display = 'block';\r\n\r\n if (positionOptions) {\r\n const elComputedStyle = getComputedStyle(el);\r\n\r\n // Set max height to avoid adding scrollbars to page\r\n const originalMaxHeight = el.style.maxHeight;\r\n let maxHeight = document.body.clientHeight -\r\n (parseFloat(elComputedStyle.marginTop) || 0) -\r\n (parseFloat(elComputedStyle.marginBottom) || 0) -\r\n (elComputedStyle.boxSizing === 'border-box'\r\n ? 0\r\n : ((parseFloat(elComputedStyle.borderTopWidth) || 0) +\r\n (parseFloat(elComputedStyle.borderBottomWidth) || 0)));\r\n\r\n el.style.maxHeight = Math.min(maxHeight, parseFloat(elComputedStyle.maxHeight) || maxHeight) + 'px';\r\n\r\n this.relayout(positionOptions);\r\n\r\n // Restore original max-height\r\n el.style.maxHeight = originalMaxHeight;\r\n } else {\r\n // Calculate virtual viewport size\r\n if (p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.render();\r\n }\r\n }\r\n\r\n if (this.isVisible()) {\r\n this._trigger('show');\r\n }\r\n\r\n return this;\r\n }\r\n\r\n hide() {\r\n const p = this._p, el = p.el;\r\n\r\n if (p.onDocumentMouseDown) {\r\n p.sink.remove(document, 'mousedown', p.onDocumentMouseDown);\r\n p.onDocumentMouseDown = null;\r\n }\r\n\r\n if (this.isVisible()) {\r\n this._trigger('hide:before');\r\n\r\n p.hiding = true;\r\n\r\n if (el) {\r\n\r\n el.classList.add(`${p.baseClassName}__is-hiding`);\r\n\r\n // support for hide transition in css\r\n const maxTransitionDuration = parseTransition(getComputedStyle(p.el).transition)\r\n .reduce((p, v) => Math.max(p, v.delay + v.duration), 0);\r\n\r\n if (maxTransitionDuration > 0) {\r\n setTimeout(() => {\r\n if (this[DestroyedSymbol]) return;\r\n\r\n if (this._p && el.parentNode && p.hiding) {\r\n remove(el);\r\n el.classList.remove(`${p.baseClassName}__is-hiding`);\r\n p.visible = false;\r\n this._trigger('hide:after');\r\n }\r\n });\r\n } else {\r\n remove(el);\r\n el.classList.remove(`${p.baseClassName}__is-hiding`);\r\n }\r\n }\r\n\r\n p.visible = false;\r\n\r\n this.blurFocusedItem();\r\n this._trigger('hide');\r\n\r\n if (this[DestroyedSymbol]) return;\r\n this._trigger('hide:after');\r\n }\r\n\r\n if (p.lastPositionTarget) {\r\n p.lastPositionTarget.classList.remove(\r\n `has_${p.baseClassName}`,\r\n `has_${p.baseClassName}_above`,\r\n `has_${p.baseClassName}_below`);\r\n delete p.lastPositionTarget;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n isVisible() {\r\n const p = this._p;\r\n if (!p.visible)\r\n return false;\r\n return p.el.parentNode && getComputedStyle(p.el).display !== 'none';\r\n }\r\n\r\n hasFocusedItem() {\r\n return this._p.focusItemIndex > -1;\r\n }\r\n\r\n getFocusedItemIndex() {\r\n if (!this.hasFocusedItem())\r\n return -1;\r\n return this._p.focusItemIndex;\r\n }\r\n\r\n setFocusedItemAtIndex(itemIndex) {\r\n const p = this._p;\r\n\r\n p.focusItemIndex = itemIndex;\r\n\r\n let item = null;\r\n if (itemIndex > -1)\r\n item = p.items[itemIndex];\r\n if (item && item._nointeraction)\r\n item = null;\r\n if (itemIndex > -1) {\r\n this.scrollItemIndexIntoView(itemIndex);\r\n }\r\n let itemElement = item ? p.virtualListHelper.getItemElementAt(itemIndex) : null;\r\n\r\n if (p.focusItemEl !== itemElement) {\r\n if (p.focusItemEl) {\r\n p.focusItemEl.classList.remove(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = null;\r\n }\r\n\r\n if (itemElement) {\r\n itemElement.classList.add(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = itemElement;\r\n\r\n this._trigger('itemfocus', { value: itemElement[p.valueProp], item: itemElement[ItemSymbol], event: null });\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n setFocusedItem(item) {\r\n const p = this._p;\r\n\r\n let itemIndex = item._nointeraction ? -1 : this._getItemIndex(item);\r\n\r\n if (itemIndex > -1 && p.items[itemIndex]._nointeraction)\r\n itemIndex = -1;\r\n\r\n return this.setFocusedItemAtIndex(itemIndex);\r\n }\r\n\r\n setFocusedItemByValue(value) {\r\n return this.setFocusedItemAtIndex(this.itemIndexByValue(value));\r\n }\r\n\r\n setSingleSelectedItemAtIndex(itemIndex) {\r\n const p = this._p;\r\n\r\n let itemEl = null;\r\n\r\n if (itemIndex > -1 && !p.items[itemIndex]._nointeraction) {\r\n itemEl = p.virtualListHelper.getItemElementAt(itemIndex);\r\n }\r\n\r\n this._setSingleSelectedItemEl(itemEl);\r\n\r\n return this;\r\n }\r\n\r\n setSingleSelectedItem(item) {\r\n const p = this._p;\r\n\r\n let itemIndex = item._nointeraction ? -1 : this._getItemIndex(item);\r\n\r\n if (itemIndex > -1 && p.items[itemIndex]._nointeraction)\r\n itemIndex = -1;\r\n\r\n return this.setSingleSelectedItemAtIndex(itemIndex);\r\n }\r\n\r\n setSingleSelectedItemByValue(value) {\r\n return this.setSingleSelectedItemAtIndex(this.itemIndexByValue(value));\r\n }\r\n\r\n next(event) {\r\n this._move('next', event);\r\n }\r\n\r\n previous(event) {\r\n this._move('prev', event);\r\n }\r\n\r\n isFirstItem() {\r\n const p = this._p;\r\n return p.focusItemIndex === 0 && p.focusItemIndex < p.items.length;\r\n }\r\n\r\n isLastItem() {\r\n const p = this._p;\r\n return p.focusItemIndex > -1 && p.focusItemIndex === p.items.length - 1;\r\n }\r\n\r\n scrollItemIndexIntoView(itemIndex) {\r\n const p = this._p;\r\n\r\n if (this._hasScroll()) {\r\n const el = p.el, scrollTop = el.scrollTop;\r\n\r\n let itemPos, previousPos = -1;\r\n\r\n // eslint-disable-next-line no-constant-condition\r\n while (true) {\r\n itemPos = p.virtualListHelper.getItemPosition(itemIndex);\r\n\r\n if (itemPos === previousPos)\r\n break;\r\n\r\n previousPos = itemPos;\r\n\r\n let itemSize = p.virtualListHelper.getItemSize(itemIndex);\r\n\r\n let listHeight = el.clientHeight;\r\n\r\n if (itemPos < scrollTop) {\r\n el.scrollTop = itemPos;\r\n } else if (itemPos + itemSize > scrollTop + listHeight) {\r\n el.scrollTop = itemPos + itemSize - listHeight;\r\n }\r\n\r\n // force update items, until the positions and sizes are final\r\n p.virtualListHelper.render();\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Register an event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {DropList}\r\n */\r\n on(/**string|'*'*/event, /**Function?*/handler) {\r\n this._p.mitt.on(event, handler);\r\n return this;\r\n }\r\n\r\n /**\r\n * Register a one time event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {DropList}\r\n */\r\n once(/**string|'*'*/event, /**Function?*/handler) {\r\n let wrapped = (value) => {\r\n this._p.mitt.off(event, wrapped);\r\n handler(value);\r\n };\r\n this._p.mitt.on(event, wrapped);\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove an `handler` for `event`, all events for `event`, or all events completely.\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {DropList}\r\n */\r\n off(/**(string|'*')?*/event, /**Function?*/handler) {\r\n if (!event && !event) {\r\n this._p.mitt.all.clear();\r\n } else {\r\n this._p.mitt.off(event, handler);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Emit an event\r\n * @param {string} event\r\n * @param {any} value\r\n * @returns {DropList}\r\n */\r\n emit(/**string|'*'*/event, /**any?*/value) {\r\n this._p.mitt.emit(event, value);\r\n return this;\r\n }\r\n\r\n _getItemIndex(item) {\r\n const p = this._p, labelProp = p.labelProp, valueProp = p.valueProp;\r\n\r\n let itemIndex = -1;\r\n\r\n if (item) {\r\n itemIndex = p.items.indexOf(item);\r\n if (itemIndex === -1) {\r\n let value = (item && item[valueProp] !== undefined) ? item[valueProp] : item;\r\n let label = (item && item[labelProp]) ? item[labelProp] : value;\r\n itemIndex = this.itemIndexByValueOrLabel(value, label);\r\n }\r\n }\r\n\r\n return itemIndex;\r\n }\r\n\r\n _setSingleSelectedItemEl(itemEl) {\r\n const p = this._p;\r\n\r\n if (p.singleSelectedItemEl) {\r\n p.singleSelectedItemEl.classList.remove(`${p.baseClassName}__item_checked`);\r\n p.singleSelectedItemEl = null;\r\n }\r\n\r\n if (itemEl) {\r\n itemEl.classList.add(`${p.baseClassName}__item_checked`);\r\n p.singleSelectedItemEl = itemEl;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} event\r\n * @param {*} [data]\r\n * @private\r\n */\r\n _trigger(event, data) {\r\n const p = this._p;\r\n if (p.on)\r\n p.on(event, ...(data === undefined ? [] : [data]));\r\n p.mitt.emit(event, data);\r\n }\r\n\r\n _itemUpAction(event, itemEl) {\r\n if (closestUntil(event.target, '.requires-pointer-events,button', itemEl)) return;\r\n\r\n let p = this._p;\r\n\r\n if (!this._mouseHandled) {\r\n\r\n this.triggerItemSelection(event);\r\n\r\n // If we are destroyed in response to a click/select, cease all actions\r\n if (this[DestroyedSymbol])\r\n return;\r\n\r\n this.toggleFocusedItem();\r\n\r\n if (document.activeElement !== this.el && p.focusItemEl) {\r\n clearTimeout(p.blurTimer);\r\n }\r\n\r\n setTimeout(() => {\r\n this._mouseHandled = false;\r\n }, 0);\r\n }\r\n }\r\n\r\n _hookMouseEvents() {\r\n const p = this._p;\r\n\r\n p.sink\r\n .add(p.el, 'mousedown', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n event.preventDefault();\r\n })\r\n .add(p.el, 'mouseup', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n if (event.button !== 0) return;\r\n\r\n this._itemUpAction(event, li);\r\n })\r\n .add(p.el, 'mouseover', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n this._handleMouseOver(event, li);\r\n });\r\n }\r\n\r\n _handleMouseOver(event, itemEl) {\r\n this._focus(event, itemEl);\r\n }\r\n\r\n _hookTouchEvents() {\r\n const p = this._p;\r\n\r\n let currentTouchId;\r\n\r\n p.sink.add(p.el, 'touchstart', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n if (currentTouchId) return;\r\n if (closestUntil(event.target, '.requires-pointer-events,button', li)) return;\r\n\r\n currentTouchId = event.changedTouches[0].identifier;\r\n\r\n // Simulate mouseover event\r\n this._handleMouseOver(event, li);\r\n\r\n // Track scrolling\r\n let didScroll = false;\r\n let onScroll = () => { didScroll = true; };\r\n let onTouchCancel = () => {\r\n currentTouchId = null;\r\n p.sink.remove(null, '.dropdown_touchextra');\r\n };\r\n\r\n let elToTrackScroll = li.parentNode;\r\n while (elToTrackScroll) {\r\n p.sink.add(elToTrackScroll, 'scroll.dropdown_touchextra', onScroll);\r\n elToTrackScroll = elToTrackScroll.parentNode;\r\n }\r\n p.sink.add(window, 'scroll.dropdown_touchextra', onScroll);\r\n\r\n p.sink.add(window, 'touchcancel.dropdown_touchextra', onTouchCancel);\r\n\r\n p.sink.add(p.el, 'touchend.dropdown_touchextra', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return onTouchCancel();\r\n\r\n let touch = Array.prototype.find.call(event.changedTouches, (touch) => {\r\n return touch.identifier === currentTouchId;\r\n });\r\n if (!touch) return onTouchCancel();\r\n\r\n onTouchCancel();\r\n\r\n if (!didScroll) {\r\n this._itemUpAction(event, li);\r\n event.preventDefault();\r\n }\r\n });\r\n });\r\n }\r\n\r\n _hookFocusEvents() {\r\n const p = this._p;\r\n\r\n p.sink\r\n .add(p.el, 'focus', event => {\r\n let itemEl = p.focusItemEl || // focused item\r\n p.el.firstChild; // or the first item\r\n\r\n this._focus(event, itemEl);\r\n })\r\n .add(p.el, 'blur', () => {\r\n setTimeout(() => {\r\n if (this[DestroyedSymbol]) return;\r\n\r\n if (!p.el.contains(document.activeElement)) {\r\n this._delayBlur();\r\n }\r\n });\r\n });\r\n }\r\n\r\n _hookKeyEvents() {\r\n const p = this._p;\r\n\r\n p.sink.add(p.el, 'keydown', evt => this._keydown(evt));\r\n p.sink.add(p.el, 'keypress', evt => this._keydown(evt));\r\n }\r\n\r\n _keydown(event) {\r\n const p = this._p;\r\n\r\n if (p.keyDownHandler && p.keyDownHandler.call(this, event)) {\r\n return;\r\n }\r\n\r\n let preventDefault = true;\r\n\r\n switch (event.key) {\r\n case VALUE_PAGE_UP:\r\n case VALUE_PAGE_DOWN:\r\n case VALUE_HOME:\r\n case VALUE_END:\r\n case VALUE_UP:\r\n case VALUE_DOWN:\r\n event.preventDefault();\r\n\r\n switch (event.key) {\r\n case VALUE_PAGE_UP:\r\n this.previousPage(event);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n this.nextPage(event);\r\n break;\r\n case VALUE_HOME:\r\n this._move('first', event);\r\n break;\r\n case VALUE_END:\r\n this._move('last', event);\r\n break;\r\n case VALUE_UP:\r\n this.previous(event);\r\n break;\r\n case VALUE_DOWN:\r\n this.next(event);\r\n break;\r\n }\r\n break;\r\n\r\n case VALUE_ENTER:\r\n this.triggerItemSelection(event);\r\n event.preventDefault();\r\n break;\r\n\r\n case VALUE_SPACE:\r\n this.toggleFocusedItem();\r\n event.preventDefault();\r\n break;\r\n\r\n case VALUE_ESCAPE:\r\n event.preventDefault();\r\n this.hide();\r\n break;\r\n\r\n default: {\r\n if (event.type === 'keydown') return;\r\n this._keydownFreeType(event);\r\n preventDefault = false;\r\n }\r\n }\r\n }\r\n\r\n _keydownFreeType(evt) {\r\n const p = this._p, labelProp = p.labelProp;\r\n\r\n // noinspection JSDeprecatedSymbols\r\n let character = evt.key || String.fromCharCode(evt.keyCode);\r\n if (character.length !== 1) return;\r\n\r\n clearTimeout(p.filterTimer);\r\n\r\n // Accumulate text to find from keystrokes\r\n let keyword = (p.previousFilter || '') + character;\r\n\r\n let regex = new RegExp(`^${escapeRegex(keyword)}`, 'i');\r\n\r\n let matchIndices = [];\r\n let item;\r\n\r\n // These are all the possible matches\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n item = p.items[i];\r\n if (regex.test(item[labelProp])) {\r\n matchIndices.push(i);\r\n }\r\n }\r\n\r\n // Did we find anything?\r\n if (!matchIndices.length) {\r\n // No... So start over with this character as the only one.\r\n keyword = character;\r\n regex = new RegExp(`^${escapeRegex(keyword)}`, 'i');\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n item = p.items[i];\r\n if (regex.test(item[labelProp])) {\r\n matchIndices.push(i);\r\n }\r\n }\r\n }\r\n\r\n let focusItemIndex = p.focusItemIndex;\r\n let matchIndex = -1;\r\n\r\n // Find a match *after* the focused item\r\n for (let i = 0, count = matchIndices.length; i < count; i++) {\r\n if (matchIndices[i] >= focusItemIndex) {\r\n matchIndex = matchIndices[i];\r\n break;\r\n }\r\n }\r\n\r\n // Find a match from the beginning.\r\n if (matchIndex === -1 && matchIndices.length) {\r\n matchIndex = matchIndices[0];\r\n }\r\n\r\n if (matchIndex > -1) {\r\n let next = p.virtualListHelper.getItemElementAt(matchIndex);\r\n this._focus(evt, next || null, matchIndex);\r\n\r\n if (!this.isVisible()) {\r\n this.triggerItemSelection(evt);\r\n }\r\n\r\n // Record the last filter used\r\n p.previousFilter = keyword;\r\n\r\n // Clear the last filter - a second from now.\r\n p.filterTimer = setTimeout(() => {\r\n delete p.previousFilter;\r\n }, 1000);\r\n\r\n } else {\r\n delete p.previousFilter;\r\n }\r\n }\r\n\r\n _focus(event, itemEl, itemIndex) {\r\n const p = this._p;\r\n\r\n if (!itemIndex && itemEl) {\r\n itemIndex = p.virtualListHelper.getItemIndexFromElement(itemEl);\r\n }\r\n\r\n if (itemIndex > -1) {\r\n this.scrollItemIndexIntoView(itemIndex);\r\n } else if (itemIndex === undefined) {\r\n itemEl = null;\r\n }\r\n\r\n let focusItemEl = itemEl || p.virtualListHelper.getItemElementAt(itemIndex);\r\n if (!focusItemEl || focusItemEl[ItemSymbol]._nointeraction) {\r\n this.blurFocusedItem();\r\n return;\r\n }\r\n\r\n if (focusItemEl === p.focusItemEl) {\r\n clearTimeout(p.blurTimer);\r\n return;\r\n }\r\n\r\n this.blurFocusedItem();\r\n\r\n focusItemEl.classList.add(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = focusItemEl;\r\n p.focusItemIndex = itemIndex;\r\n\r\n const item = p.items[itemIndex];\r\n this._trigger('itemfocus', { value: item[p.valueProp], item: item, event: event });\r\n }\r\n\r\n _delayBlur() {\r\n if (this[DestroyedSymbol])\r\n return;\r\n\r\n const p = this._p;\r\n\r\n clearTimeout(p.blurTimer);\r\n\r\n p.blurTimer = setTimeout(() => {\r\n if (this[DestroyedSymbol]) return;\r\n this.blurFocusedItem();\r\n }, p.itemBlurDelay);\r\n }\r\n\r\n _move(direction, event) {\r\n const p = this._p;\r\n\r\n let next, nextIndex, directionUp = false;\r\n\r\n if (direction === 'first') {\r\n nextIndex = 0;\r\n directionUp = false;\r\n } else if (direction === 'last') {\r\n nextIndex = p.items.length - 1;\r\n directionUp = true;\r\n } else if (direction === 'prev') {\r\n if (!this.hasFocusedItem())\r\n return this._move('last', event);\r\n\r\n nextIndex = p.focusItemIndex - 1;\r\n if (nextIndex === -1) {\r\n nextIndex = p.items.length - 1;\r\n }\r\n\r\n directionUp = true;\r\n } else if (direction === 'next') {\r\n if (!this.hasFocusedItem())\r\n return this._move('first', event);\r\n\r\n nextIndex = p.focusItemIndex + 1;\r\n if (nextIndex === p.items.length) {\r\n nextIndex = 0;\r\n }\r\n\r\n directionUp = false;\r\n } else if (direction === 'prev_page' || direction === 'next_page') {\r\n\r\n if (!this.hasFocusedItem()) {\r\n return this._move(direction === 'prev_page' ? 'prev' : 'next', event);\r\n }\r\n\r\n if ((direction === 'prev_page' && this.isFirstItem()) ||\r\n (direction === 'next_page' && this.isLastItem())) return;\r\n\r\n if (this._hasScroll()) {\r\n\r\n if (p.virtualListHelper.isVirtual()) {\r\n let visibleItemCount = p.virtualListHelper.getVisibleItemCount();\r\n\r\n nextIndex = p.focusItemIndex;\r\n\r\n if (direction === 'prev_page') {\r\n nextIndex -= visibleItemCount;\r\n } else {\r\n nextIndex += visibleItemCount;\r\n }\r\n\r\n if (nextIndex < 0) {\r\n nextIndex = 0;\r\n } else if (nextIndex >= p.items.length) {\r\n nextIndex = p.items.length;\r\n }\r\n } else if (p.focusItemEl) {\r\n let base = getElementOffset(p.focusItemEl).top;\r\n let height = getElementHeight(p.el, true);\r\n\r\n while (true) { // eslint-disable-line no-constant-condition\r\n next = p.focusItemEl.nextElementSibling;\r\n if (!next) return;\r\n if (next.tagName !== 'LI') continue;\r\n\r\n if (direction === 'prev_page') {\r\n if (getElementOffset(next).top - base + height <= 0)\r\n break;\r\n } else {\r\n if (getElementOffset(next).top - base - height >= 0)\r\n break;\r\n }\r\n }\r\n\r\n if (next) {\r\n nextIndex = p.virtualListHelper.getItemIndexFromElement(next);\r\n\r\n if (nextIndex === undefined)\r\n nextIndex = -1;\r\n }\r\n }\r\n\r\n } else {\r\n return this._move(direction === 'prev_page' ? 'first' : 'last', event);\r\n }\r\n\r\n directionUp = direction === 'prev_page';\r\n } else {\r\n return;\r\n }\r\n\r\n let itemCount = p.items.length;\r\n\r\n if (nextIndex >= itemCount) {\r\n return;\r\n }\r\n\r\n let item = p.items[nextIndex];\r\n // noinspection UnnecessaryLocalVariableJS\r\n let startedAtIndex = nextIndex;\r\n\r\n while (item && item._nointeraction) {\r\n if (directionUp) {\r\n nextIndex--;\r\n if (nextIndex === -1) {\r\n nextIndex = itemCount;\r\n }\r\n } else {\r\n nextIndex++;\r\n if (nextIndex === itemCount) {\r\n nextIndex = 0;\r\n }\r\n }\r\n\r\n item = p.items[nextIndex];\r\n\r\n if (nextIndex === startedAtIndex) {\r\n break;\r\n }\r\n }\r\n\r\n next = p.virtualListHelper.getItemElementAt(nextIndex);\r\n this._focus(event, next || null, nextIndex);\r\n\r\n if (!this.isVisible()) {\r\n this.triggerItemSelection(event);\r\n }\r\n }\r\n\r\n _hasScroll() {\r\n return this.el.clientHeight < this.el.scrollHeight;\r\n }\r\n\r\n _updateGroupStateForItem(item) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n if (p.multi && p.autoCheckGroupChildren) {\r\n\r\n let items, groupIndex, itemIndex;\r\n\r\n if (item._group) {\r\n // Now loop through children below the group\r\n\r\n items = p.items;\r\n groupIndex = items.indexOf(item);\r\n\r\n let affectedItems = 0;\r\n\r\n for (let i = groupIndex + 1, len = items.length; i < len; i++) {\r\n let next = items[i];\r\n\r\n // Hit the next group, break out\r\n if (next._group || (!next._child && items[i - 1]._child))\r\n break;\r\n\r\n // No change, skip\r\n if (!!next._checked === item._checked)\r\n continue;\r\n\r\n // Update state\r\n next._checked = item._checked;\r\n\r\n affectedItems++;\r\n\r\n // Update DOM\r\n let nextEl = p.virtualListHelper.getItemElementAt(i);\r\n if (nextEl) {\r\n toggleClass(nextEl, `${p.baseClassName}__item_checked`, item._checked);\r\n }\r\n\r\n // Fire event\r\n this._trigger('check', { value: next[valueProp], item: next, isCheckingGroup: true });\r\n }\r\n\r\n // Fire event\r\n this._trigger('groupcheck', { value: item[valueProp], item: item, affectedItems: affectedItems });\r\n } else if (p.groupCount > 0) {\r\n items = p.items;\r\n itemIndex = items.indexOf(item);\r\n groupIndex = -1;\r\n\r\n // Find the group index\r\n for (let i = itemIndex - 1; i >= 0; i--) {\r\n if (items[i]._group) {\r\n groupIndex = i;\r\n break;\r\n }\r\n }\r\n\r\n if (groupIndex > -1) {\r\n this._updateGroupCheckedState(groupIndex, true);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n _updateGroupCheckedState(groupIndex, fireEvents) {\r\n const p = this._p;\r\n\r\n if (p.multi && p.autoCheckGroupChildren && groupIndex > -1) {\r\n\r\n let items = p.items;\r\n let groupItem = items[groupIndex];\r\n if (!groupItem || !groupItem._group) return this;\r\n\r\n let item, hasChecked = false, hasUnchecked = false;\r\n\r\n for (let i = groupIndex + 1, len = items.length; i < len; i++) {\r\n item = items[i];\r\n\r\n // Hit the next group, break out\r\n if (item._group || (!item._child && items[i - 1]._child))\r\n break;\r\n\r\n if (item._checked) {\r\n hasChecked = true;\r\n } else if (!item._checked) {\r\n hasUnchecked = true;\r\n }\r\n }\r\n\r\n // See if we need to update the group\r\n let shouldCheckGroup = hasChecked && !hasUnchecked;\r\n if (!!groupItem._checked !== shouldCheckGroup) {\r\n // Update state\r\n groupItem._checked = shouldCheckGroup;\r\n\r\n // Update DOM\r\n let nextEl = p.virtualListHelper.getItemElementAt(groupIndex);\r\n if (nextEl) {\r\n toggleClass(nextEl, `${p.baseClassName}__item_checked`, groupItem._checked);\r\n }\r\n\r\n if (fireEvents) {\r\n // Fire event\r\n this._trigger('check', { value: groupItem[p.valueProp], item: groupItem });\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @private\r\n * @returns {DropList} self\r\n */\r\n _measureItem() {\r\n const p = this._p;\r\n\r\n if (p.lastMeasureItemCount !== p.items.length) {\r\n const labelProp = p.labelProp, valueProp = p.valueProp;\r\n let longestLabel = p.lastMeasureLongestLabel || 1,\r\n longestLabelText = p.lastMeasureLongestLabelText || '';\r\n\r\n for (let i = 0, items = p.items, count = items.length;\r\n i < count;\r\n i++) {\r\n\r\n const item = items[i];\r\n let text = item[labelProp];\r\n if (text == null)\r\n text = item[valueProp];\r\n if (text == null)\r\n text = '';\r\n\r\n let length = text.length;\r\n if (length > longestLabel) {\r\n longestLabel = length;\r\n longestLabelText = text;\r\n }\r\n }\r\n\r\n p.lastMeasureItemCount = p.items.length;\r\n p.lastMeasureLongestLabel = longestLabel;\r\n p.lastMeasureLongestLabelText = longestLabelText;\r\n }\r\n\r\n if (p.estimateWidth || p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.createGhostItemElement(GhostSymbol, true, itemEl => {\r\n p.lastMeasureItemWidth = getElementWidth(itemEl, true, true);\r\n });\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Determines whether the list should be in virtual mode, depending on the item count.\r\n * @param {number?} targetItemCount - item count we are expecting. Defaults to current item count\r\n * @returns {DropList}\r\n * @private\r\n */\r\n _determineVirtualMode(targetItemCount) {\r\n const p = this._p;\r\n\r\n let items = p.items;\r\n if (targetItemCount === undefined) {\r\n targetItemCount = items.length;\r\n }\r\n\r\n let shouldBeVirtual = targetItemCount >= p.virtualMinItems;\r\n\r\n if (shouldBeVirtual !== p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.setVirtual(shouldBeVirtual).render();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n _renderItemContent(item, itemEl) {\r\n const p = this._p, labelProp = p.labelProp;\r\n\r\n // NOTE: a \"measure\" item will not have full data of original item.\r\n // so for a custom renderer - we try to send original item, and fallback to our private list item.\r\n\r\n if (!p.renderItem || p.renderItem(item[ItemSymbol] || item, itemEl) === false) {\r\n itemEl.appendChild(createElement('span', {\r\n class: `${p.baseClassName}__item_label`,\r\n textContent: item[labelProp],\r\n }));\r\n\r\n if (p.multi) {\r\n if (!item._nocheck) {\r\n itemEl.insertBefore(\r\n createElement('span', { class: 'checkbox' }),\r\n itemEl.firstChild,\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.PositionOptions} [positionOptions=undefined]\r\n * @returns {number} new outer width\r\n * @private\r\n */\r\n _updateWidth(positionOptions) {\r\n const p = this._p, el = p.el;\r\n\r\n let targetWidth = 0;\r\n\r\n if (positionOptions) {\r\n // Measure target\r\n targetWidth = positionOptions.targetWidth;\r\n if (targetWidth == null) {\r\n targetWidth = getElementWidth(positionOptions.target, true, true);\r\n }\r\n }\r\n\r\n let autoWidth = 0;\r\n if (!p.useExactTargetWidth) {\r\n if (p.estimateWidth || p.virtualListHelper.isVirtual()) {\r\n autoWidth = p.lastMeasureItemWidth;\r\n } else {\r\n el.style.width = ''; // Reset width\r\n autoWidth = getElementWidth(el, true, true);\r\n }\r\n }\r\n\r\n let newOuterWidth = Math.max(autoWidth, targetWidth);\r\n\r\n setElementWidth(el, newOuterWidth, true, true);\r\n\r\n const elComputedStyle = getComputedStyle(el);\r\n let bordersWidth = (parseFloat(elComputedStyle.borderLeftWidth) || 0) + (parseFloat(elComputedStyle.borderRightWidth) || 0);\r\n let scrollWidth = el.scrollWidth + bordersWidth;\r\n if (scrollWidth > newOuterWidth) {\r\n // consider scrollWidth delta\r\n let delta = scrollWidth - newOuterWidth;\r\n el.style.width = `${parseFloat(el.style.width) + delta}px`;\r\n newOuterWidth = scrollWidth;\r\n }\r\n\r\n return newOuterWidth;\r\n }\r\n}\r\n\r\nexport default DropList;\r\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","var arraySlice = require('../internals/array-slice');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","const throttle = (func, wait, options) => {\r\n let timeout, context, args, result;\r\n let previous = 0;\r\n if (!options) options = {};\r\n\r\n const later = () => {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n result = func.apply(context, args);\r\n if (!timeout) context = args = null;\r\n };\r\n\r\n const throttled = function () {\r\n const now = Date.now();\r\n if (!previous && options.leading === false)\r\n previous = now;\r\n\r\n const remaining = wait - (now - previous);\r\n context = this;\r\n args = arguments;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n result = func.apply(context, args);\r\n if (!timeout) context = args = null;\r\n } else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(later, remaining);\r\n }\r\n return result;\r\n };\r\n\r\n throttled.cancel = () => {\r\n clearTimeout(timeout);\r\n previous = 0;\r\n timeout = context = args = null;\r\n };\r\n\r\n throttled.isScheduled = () => {\r\n return !!timeout;\r\n };\r\n\r\n return throttled;\r\n};\r\n\r\nexport default throttle;\r\n","import {\r\n getCssProps,\r\n getElementWidth,\r\n setElementWidth,\r\n getPseudoElementWidth,\r\n setCssProps,\r\n} from '@danielgindi/dom-utils/lib/Css';\r\nimport escapeRegex from './utils/escapeRegex';\r\nimport {\r\n closestUntil,\r\n createElement,\r\n next,\r\n prev,\r\n setElementAttrs,\r\n} from '@danielgindi/dom-utils/lib/Dom';\r\nimport {\r\n append,\r\n getRootNode,\r\n before,\r\n remove,\r\n toggleClass,\r\n} from '@danielgindi/dom-utils/lib/DomCompat';\r\n\r\nimport DomEventsSink from '@danielgindi/dom-utils/lib/DomEventsSink';\r\nimport DropList from './DropList';\r\nimport throttle from './utils/throttle';\r\nimport {\r\n VALUE_BACK_SPACE,\r\n VALUE_DELETE, VALUE_DOWN, VALUE_ENTER,\r\n VALUE_ESCAPE,\r\n VALUE_LEFT, VALUE_PAGE_DOWN,\r\n VALUE_PAGE_UP,\r\n VALUE_RIGHT, VALUE_SPACE,\r\n VALUE_TAB,\r\n VALUE_UP,\r\n} from 'keycode-js';\r\nimport mitt from 'mitt';\r\n\r\nconst ItemSymbol = Symbol('item');\r\nconst DestroyedSymbol = Symbol('destroyed');\r\nconst NoResultsItemSymbol = Symbol('no_results_items');\r\nconst RestMultiItemsSymbol = Symbol('rest_multi_items');\r\n\r\nconst hasTouchCapability = !!('ontouchstart' in window\r\n || (window.DocumentTouch && window.document instanceof window.DocumentTouch)\r\n || window.navigator.maxTouchPoints\r\n);\r\n\r\n/**\r\n * @param {Element|EventTarget} el\r\n * @param {string} className\r\n * @returns {boolean}\r\n */\r\nconst hasClass = function (el, className) {\r\n if (el instanceof Element) {\r\n return el.classList.contains(className);\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst inputBackbufferCssProps = [\r\n 'font-family',\r\n 'font-size',\r\n 'font-weight',\r\n 'font-size',\r\n 'letter-spacing',\r\n 'text-transform',\r\n 'word-spacing',\r\n 'text-indent',\r\n 'box-sizing',\r\n 'padding-left',\r\n 'padding-right',\r\n];\r\n\r\n/**\r\n * @typedef {Object} SelectBox.Options\r\n * @property {DropList.Options} [listOptions] options to pass to the `DropList`\r\n * @property {Element} [el] An element to attach to, instead of creating a new one\r\n * @property {string} [baseClassName='selectbox'] class name for the menu root element\r\n * @property {boolean} [disabled=false] Should start as disabled?\r\n * @property {boolean} [clearable=true] Has clear button?\r\n * @property {boolean} [hasOpenIndicator=true] has open/close indicator?\r\n * @property {string} [placeholder=''] Placeholder text\r\n * @property {boolean} [sortSelectedItems=true] Should the selected items be sorted?\r\n * @property {boolean} [sortListItems=true] Sort list items\r\n * @property {boolean} [sortListCheckedFirst=true] When sorting - put checked items first (applicable to `multi` mode only)\r\n * @property {*[]} [stickyValues]\r\n * @property {function(a: DropList.ItemBase, b: DropList.ItemBase):number} [sortItemComparator]\r\n * @property {boolean} [splitListCheckedGroups=true] Split groups to \"checked\" and \"unchecked\", works with `sortCheckedFirst` only\r\n * @property {boolean|'touch'} [blurOnSingleSelection='touch']\r\n * @property {boolean} [multi=false] can multiple values be selected?\r\n * @property {boolean} [showSelection=true] show selection? if false, the placeholder will take effect\r\n * @property {function(items: DropList.ItemBase[]):string} [multiPlaceholderFormatter] formatter for placeholder for multi items mode\r\n * @property {boolean} [searchable=false] is it searchable?\r\n * @property {string} [noResultsText='No matching results'] text for no results (empty for none)\r\n * @property {number} [filterThrottleWindow=300] throttle time (milliseconds) for filtering\r\n * @property {boolean} [filterOnEmptyTerm=false] call the filter function on empty search term too\r\n * @property {string} [labelProp='label']\r\n * @property {string} [valueProp='value']\r\n * @property {string} [multiItemLabelProp='short_label']\r\n * @property {number} [maxMultiItems] maximum number of multi items. The rest will get a single item to represent.\r\n * @property {function(count: number, items: DropList.ItemBase[]):string} [multiItemsRestLabelProvider] label for the item representing the rest of the items.\r\n * @property {DropList.ItemBase[]|null} [items] initial items\r\n * @property {*[]|null} [selectedValues] initial selected values\r\n * @property {*|*[]|null} [value] initial selected value\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderSingleItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderSingleItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderRestMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderRestMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderNoResultsItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderNoResultsItem]\r\n * @property {function(items: DropList.ItemBase[], term: string):(DropList.ItemBase[]|null)} [filterFn]\r\n * @property {function(name: string, ...args)} [on]\r\n * @property {string|string[]} [additionalClasses]\r\n * @property {boolean} [isLoadingMode]\r\n * */\r\nconst defaultOptions = {\r\n el: null,\r\n baseClassName: 'selectbox',\r\n disabled: false,\r\n clearable: true,\r\n hasOpenIndicator: true,\r\n placeholder: '',\r\n sortSelectedItems: true,\r\n sortListItems: true,\r\n sortListCheckedFirst: true,\r\n stickyValues: null,\r\n sortItemComparator: null,\r\n splitListCheckedGroups: true,\r\n blurOnSingleSelection: 'touch',\r\n multi: false,\r\n showSelection: true,\r\n multiPlaceholderFormatter: null,\r\n searchable: true,\r\n noResultsText: 'No matching results',\r\n filterThrottleWindow: 300,\r\n filterOnEmptyTerm: false,\r\n labelProp: 'label',\r\n valueProp: 'value',\r\n multiItemLabelProp: 'short_label',\r\n maxMultiItems: null,\r\n multiItemsRestLabelProvider: null,\r\n items: [],\r\n selectedValues: undefined,\r\n value: undefined,\r\n isLoadingMode: false,\r\n};\r\n\r\n/**\r\n *\r\n * @param {DropList.ItemBase[]} items\r\n * @param {string} labelProp\r\n * @returns {string}\r\n */\r\nconst defaultMultiPlaceholderFormatter = (items, labelProp) => {\r\n if (items.length === 0)\r\n return '';\r\n\r\n let title = items[0][labelProp] + '';\r\n\r\n if (items.length > 1) {\r\n title += ` (+${items.length - 1})`;\r\n }\r\n\r\n return title;\r\n};\r\n\r\n/*\r\nEmits the following events:\r\n---------------------------\r\n\r\n'clear:before' {cancel: false}: will clear the whole selection. return false to abort.\r\n'clear': clearead the whole selection.\r\n'open' { list: DropList }: the drop list is opening\r\n'open:before' { list: DropList }: the drop list will open\r\n'close': the drop list is closing\r\n'addsel:before' {value, item, cancel: false}: an item selection is about to be added (in multi mode). return false to abort.\r\n'removesel:before' {value, item, cancel: false}: an item selection is about to be removed (in multi mode). return false to abort.\r\n'select:before' {value, item, cancel: false}: an item is about to be selected (in single mode). return false to abort.\r\n'addsel' {value, item}: an item selection has been added (in multi mode)\r\n'removesel' {value, item}: an item selection has been removed (in multi mode)\r\n'select' {value, item}: an item has been selected (in single mode)\r\n'search' {value}: input box value has changed\r\n'search:focus': input box has gained focus\r\n'search:blur': input box has lost focus\r\n'input:resize': input box resized\r\n'itemschanged' {term, mutated, count}: the current set of items has changed\r\n */\r\n\r\n// noinspection JSUnusedGlobalSymbols\r\nclass SelectBox {\r\n /**\r\n * @param {SelectBox.Options} options\r\n */\r\n constructor(options) {\r\n const o = { ...defaultOptions };\r\n\r\n for (let [key, value] of Object.entries(/**@type Object*/options))\r\n if (value !== undefined)\r\n o[key] = value;\r\n\r\n const p = this._p = {\r\n ownsEl: true,\r\n\r\n baseClassName: o.baseClassName,\r\n\r\n listOptions: o.listOptions,\r\n\r\n disabled: !!o.disabled,\r\n clearable: !!o.clearable,\r\n hasOpenIndicator: !!o.hasOpenIndicator,\r\n placeholder: o.placeholder,\r\n sortSelectedItems: !!o.sortSelectedItems,\r\n sortListItems: !!o.sortListItems,\r\n sortListCheckedFirst: !!o.sortListCheckedFirst,\r\n stickyValues: Array.isArray(o.stickyValues) ? new Set(o.stickyValues) : null,\r\n sortItemComparator: o.sortItemComparator,\r\n splitListCheckedGroups: !!o.splitListCheckedGroups,\r\n blurOnSingleSelection: o.blurOnSingleSelection,\r\n multi: o.multi,\r\n showSelection: o.showSelection,\r\n multiPlaceholderFormatter: o.multiPlaceholderFormatter,\r\n searchable: o.searchable,\r\n noResultsText: o.noResultsText,\r\n filterThrottleWindow: o.filterThrottleWindow,\r\n filterOnEmptyTerm: o.filterOnEmptyTerm,\r\n\r\n labelProp: o.labelProp,\r\n valueProp: o.valueProp,\r\n multiItemLabelProp: o.multiItemLabelProp,\r\n\r\n maxMultiItems: o.maxMultiItems,\r\n multiItemsRestLabelProvider: o.multiItemsRestLabelProvider,\r\n\r\n renderSingleItem: o.renderSingleItem,\r\n unrenderSingleItem: o.unrenderSingleItem,\r\n renderMultiItem: o.renderMultiItem,\r\n unrenderMultiItem: o.unrenderMultiItem,\r\n renderRestMultiItem: o.renderRestMultiItem,\r\n unrenderRestMultiItem: o.unrenderRestMultiItem,\r\n renderNoResultsItem: o.renderNoResultsItem,\r\n unrenderNoResultsItem: o.unrenderNoResultsItem,\r\n filterFn: o.filterFn,\r\n on: o.on || null,\r\n silenceEvents: true,\r\n mitt: mitt(),\r\n additionalClasses: o.additionalClasses,\r\n\r\n isLoadingMode: !!o.isLoadingMode,\r\n\r\n items: [],\r\n filteredItems: null,\r\n itemsChanged: true,\r\n\r\n sink: new DomEventsSink(),\r\n\r\n /** @type ResizeObserver */\r\n resizeObserver: null,\r\n\r\n selectedItems: [],\r\n selectedValues: [],\r\n selectionChanged: true,\r\n resortBySelectionNeeded: false,\r\n\r\n throttledUpdateListItems: throttle(() => this._updateListItems(),\r\n o.filterThrottleWindow,\r\n { leading: true, trailing: true }),\r\n\r\n filterTerm: '',\r\n };\r\n\r\n let el = o.el;\r\n if (el instanceof Element) {\r\n p.ownsEl = false;\r\n } else {\r\n el = createElement('span');\r\n }\r\n\r\n setElementAttrs(el, {\r\n role: 'combobox',\r\n 'aria-haspopup': 'true',\r\n 'aria-expanded': 'false',\r\n });\r\n p.el = el;\r\n\r\n this._syncBaseClasses();\r\n this._renderBase();\r\n\r\n /** @type Element[] */\r\n p.multiItemEls = [];\r\n\r\n this.enable(!p.disabled);\r\n\r\n this._setupDropdownMenu();\r\n\r\n // --- Hook click\r\n p.sink\r\n .add(el, 'click', (evt) => {\r\n if (p.clearButtonWrapper && p.clearButtonWrapper.contains(evt.target)) {\r\n return;\r\n }\r\n\r\n if (!el.contains(document.activeElement)) {\r\n p.input.focus();\r\n // Go to end of input\r\n p.input.selectionStart = p.input.selectionEnd = p.input.value.length;\r\n }\r\n });\r\n\r\n // --- Handle default focus directly to search box\r\n p.sink.add(el, 'focus', evt => {\r\n const target = (/**Element*/evt.target);\r\n\r\n if (!el.contains(evt.relatedTarget) &&\r\n !hasClass(target, `${p.baseClassName}__search_field`) &&\r\n !hasClass(target, `${p.baseClassName}__item`)) {\r\n let field = el.querySelector(`.${p.baseClassName}__search_field`);\r\n field && field.focus();\r\n }\r\n }, true);\r\n\r\n p.sink\r\n .add(p.input, 'keydown', (/**KeyboardEvent*/event) => {\r\n this._handleInputKeydown(event);\r\n })\r\n .add(p.input, 'input', () => {\r\n this._resizeInput();\r\n });\r\n\r\n const focusInOutHandler = (() => {\r\n let t;\r\n return () => {\r\n if (t) {\r\n clearTimeout(t);\r\n }\r\n t = setTimeout(() => {\r\n toggleClass(el, `${p.baseClassName}__focus`, el.contains(document.activeElement));\r\n });\r\n };\r\n })();\r\n p.sink.add(el, 'focus', focusInOutHandler, true);\r\n p.sink.add(el, 'blur', focusInOutHandler, true);\r\n\r\n // --- Resize input on window change\r\n p.sink.add(window, 'resize', () => this._resizeInput());\r\n p.sink.add(window, 'orientationchange', () => this._resizeInput());\r\n\r\n if (window.ResizeObserver !== undefined) {\r\n p.resizeObserver = new ResizeObserver(() => {\r\n this._resizeInput();\r\n });\r\n p.resizeObserver.observe(p.el);\r\n }\r\n\r\n this.setItems(o.items);\r\n\r\n if (o.multi && Array.isArray(o.selectedValues)) {\r\n this.setSelectedValues(o.selectedValues);\r\n } else if (o.value != null) {\r\n this.setValue(o.value);\r\n }\r\n\r\n this._scheduleSync();\r\n\r\n this.silenceEvents = false;\r\n\r\n return this;\r\n }\r\n\r\n destroy() {\r\n if (this[DestroyedSymbol])\r\n return;\r\n this[DestroyedSymbol] = true;\r\n\r\n const p = this._p;\r\n\r\n if (p.syncTimeout) {\r\n clearTimeout(p.syncTimeout);\r\n delete p.syncTimeout;\r\n }\r\n\r\n this._stopTrackingPresence();\r\n\r\n p.sink.remove();\r\n p.dropList && p.dropList.destroy();\r\n\r\n if (p.throttledUpdateListItems)\r\n p.throttledUpdateListItems.cancel();\r\n\r\n this._cleanupSingleWrapper();\r\n\r\n if (p.unrenderMultiItem || p.unrenderRestMultiItem) {\r\n // Remove all item elements\r\n while (p.multiItemEls.length > 0) {\r\n // use fast path by removing in reverse\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n }\r\n }\r\n\r\n remove(p.list);\r\n remove(p.singleWrapper);\r\n remove(p.input);\r\n remove(p.inputBackBuffer);\r\n remove(p.clearButtonWrapper);\r\n remove(p.openIndicator);\r\n\r\n if (!p.ownsEl) {\r\n for (let name of Array.from(p.el.classList)) {\r\n if (name.startsWith(p.baseClassName)) {\r\n p.el.classList.remove(name);\r\n }\r\n }\r\n p.el.removeAttribute('role');\r\n p.el.removeAttribute('aria-haspopup');\r\n p.el.removeAttribute('aria-expanded');\r\n }\r\n\r\n p.resizeObserver?.disconnect();\r\n\r\n this._p = null;\r\n }\r\n\r\n get el() {\r\n return this._p.el;\r\n }\r\n\r\n /**\r\n * Enables the control\r\n * @param {boolean=true} enabled Should the control be enabled?\r\n * @returns {SelectBox}\r\n */\r\n enable(enabled) {\r\n const p = this._p;\r\n\r\n if (enabled === undefined) {\r\n enabled = true;\r\n }\r\n p.disabled = !enabled;\r\n p.el.setAttribute('aria-disabled', p.disabled.toString());\r\n p.input.disabled = !!p.disabled;\r\n\r\n const multiItemEls = p.multiItemEls;\r\n\r\n for (let itemEl of multiItemEls) {\r\n if (p.disabled) {\r\n itemEl.removeAttribute('tabindex');\r\n } else {\r\n itemEl.setAttribute('tabindex', '0');\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Is the control enabled?\r\n * @returns {boolean}\r\n */\r\n isEnabled() {\r\n return !this._p.disabled;\r\n }\r\n\r\n /**\r\n * Disables the control\r\n * @param {boolean=true} disabled Should the control be disabled?\r\n * @returns {SelectBox}\r\n */\r\n disable(disabled) {\r\n return this.enable(disabled === undefined ? false : !disabled);\r\n }\r\n\r\n /**\r\n * Is the control disabled?\r\n * @returns {boolean}\r\n */\r\n isDisabled() {\r\n return this._p.disabled;\r\n }\r\n\r\n /**\r\n * @param {string|string[]} classes\r\n * @returns {SelectBox}\r\n */\r\n setAdditionalClasses(classes) {\r\n const p = this._p;\r\n p.additionalClasses = classes;\r\n this._syncBaseClasses();\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.ItemBase[]} [items]\r\n * @param {boolean} [resetValues=true] should reset values to current values (essentially refresh the data based on items & values). If set to false, use setValue to set a fresh value\r\n * @returns {SelectBox}\r\n */\r\n setItems(items, resetValues = true) {\r\n const p = this._p;\r\n\r\n if (!items)\r\n items = [];\r\n\r\n p.items = items.slice(0);\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n\r\n if (resetValues) {\r\n this.setSelectedValues(this.getSelectedValues());\r\n }\r\n\r\n this._trigger('itemschanged', { term: null, mutated: true, count: this.getFilteredItemCount() });\r\n\r\n return this;\r\n }\r\n\r\n getFilteredItemCount() {\r\n const p = this._p;\r\n\r\n if (p.filteredItems)\r\n return p.filteredItems.length;\r\n\r\n if (p.items)\r\n return p.items.length;\r\n\r\n return 0;\r\n }\r\n\r\n isFilterPending() {\r\n const p = this._p;\r\n\r\n return !!(p.throttledUpdateListItems.isScheduled() ||\r\n (!p.filteredItems && (p.filterTerm || (p.filterOnEmptyTerm && p.filterFn))));\r\n }\r\n\r\n updateItemByValue(value, newItem) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n let existingItem = p.items.find(x => x[valueProp] === value);\r\n if (existingItem)\r\n Object.assign(existingItem, newItem);\r\n\r\n if (p.dropList) {\r\n p.dropList.updateItemByValue(value, newItem);\r\n }\r\n }\r\n\r\n /**\r\n * @returns {DropList.ItemBase[]|*}\r\n */\r\n getItems() {\r\n const p = this._p;\r\n return p.items;\r\n }\r\n\r\n /**\r\n * @param {boolean} clearable\r\n * @returns {SelectBox}\r\n */\r\n setClearable(clearable) {\r\n clearable = !!clearable;\r\n\r\n if (this._p.clearable === clearable)\r\n return this;\r\n\r\n this._p.clearable = !!clearable;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getClearable() {\r\n return this._p.clearable;\r\n }\r\n\r\n /**\r\n * @param {boolean} enabled\r\n * @returns {SelectBox}\r\n */\r\n setHasOpenIndicator(enabled) {\r\n enabled = !!enabled;\r\n\r\n if (this._p.hasOpenIndicator === enabled)\r\n return this;\r\n\r\n this._p.hasOpenIndicator = enabled;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getHasOpenIndicator() {\r\n return this._p.hasOpenIndicator;\r\n }\r\n\r\n /**\r\n * @param {string} placeholder\r\n * @returns {SelectBox}\r\n */\r\n setPlaceholder(placeholder) {\r\n this._p.placeholder = placeholder == null ? '' : String(placeholder);\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n getPlaceHolder() {\r\n return this._p.placeholder;\r\n }\r\n\r\n /**\r\n * @param {string} term\r\n * @param {boolean} [performSearch=false] should actually perform the search, or just set the input's text?\r\n * @returns {SelectBox}\r\n */\r\n setSearchTerm(term, performSearch = false) {\r\n const p = this._p;\r\n\r\n if (!p.input) return this;\r\n\r\n p.input.value = term;\r\n\r\n this._scheduleSync('resize_input');\r\n\r\n if (performSearch) {\r\n p.filterTerm = p.input.value.trim();\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n\r\n this._trigger('search', { value: p.input.value });\r\n p.throttledUpdateListItems();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n getSearchTerm() {\r\n const p = this._p;\r\n if (p.input)\r\n return p.input.value;\r\n return '';\r\n }\r\n\r\n /**\r\n * @param {boolean} sortSelectedItems\r\n * @returns {SelectBox}\r\n */\r\n setSortSelectedItems(sortSelectedItems) {\r\n const p = this._p;\r\n sortSelectedItems = !!sortSelectedItems;\r\n if (p.sortSelectedItems === sortSelectedItems)\r\n return this;\r\n\r\n p.sortSelectedItems = sortSelectedItems;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSortSelectedItemsEnabled() {\r\n return this._p.sortSelectedItems;\r\n }\r\n\r\n /**\r\n * @param {boolean} sortListItems\r\n * @returns {SelectBox}\r\n */\r\n setSortListItems(sortListItems) {\r\n const p = this._p;\r\n sortListItems = !!sortListItems;\r\n if (p.sortListItems === sortListItems)\r\n return this;\r\n\r\n p.sortListItems = sortListItems;\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSortListItemsEnabled() {\r\n return this._p.sortListItems;\r\n }\r\n\r\n /**\r\n * @param {boolean} sortListCheckedFirst\r\n * @returns {SelectBox}\r\n */\r\n setSortListCheckedFirst(sortListCheckedFirst) {\r\n const p = this._p;\r\n sortListCheckedFirst = !!sortListCheckedFirst;\r\n if (p.sortCheckedFirst === sortListCheckedFirst)\r\n return this;\r\n\r\n p.sortCheckedFirst = sortListCheckedFirst;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSortListCheckedFirstEnabled() {\r\n return this._p.sortListCheckedFirst;\r\n }\r\n\r\n /**\r\n * @param {*[]} values\r\n * @returns {SelectBox}\r\n */\r\n setStickyValues(values) {\r\n const p = this._p;\r\n\r\n p.stickyValues = Array.isArray(values) ? new Set(values) : null;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {*[]}\r\n */\r\n getStickyValues() {\r\n return this._p.stickyValues ? Array.from(this._p.stickyValues) : null;\r\n }\r\n\r\n /**\r\n * @param {function(a: DropList.ItemBase, b: DropList.ItemBase):number} comparator\r\n * @returns {SelectBox}\r\n */\r\n setSortItemComparator(comparator) {\r\n const p = this._p;\r\n if (p.sortItemComparator === comparator)\r\n return this;\r\n\r\n p.sortItemComparator = comparator;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {function(a: DropList.ItemBase, b: DropList.ItemBase):number}\r\n */\r\n getSortItemComparator() {\r\n return this._p.sortItemComparator;\r\n }\r\n\r\n /**\r\n * @param {boolean} splitListCheckedGroups\r\n * @returns {SelectBox}\r\n */\r\n setSplitListCheckedGroups(splitListCheckedGroups) {\r\n const p = this._p;\r\n splitListCheckedGroups = !!splitListCheckedGroups;\r\n if (p.splitListCheckedGroups === splitListCheckedGroups)\r\n return this;\r\n\r\n p.splitListCheckedGroups = splitListCheckedGroups;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSplitListCheckedGroupsEnabled() {\r\n return this._p.splitListCheckedGroups;\r\n }\r\n\r\n /**\r\n * @param {boolean} showSelection\r\n * @returns {SelectBox}\r\n */\r\n setShowSelection(showSelection) {\r\n const p = this._p;\r\n showSelection = !!showSelection;\r\n if (p.showSelection === showSelection)\r\n return this;\r\n\r\n this._p.showSelection = showSelection;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isShowSelectionEnabled() {\r\n return this._p.showSelection;\r\n }\r\n\r\n /**\r\n * @param {function(items: DropList.ItemBase[]):string} formatter\r\n * @returns {SelectBox}\r\n */\r\n setMultiPlaceholderFormatter(formatter) {\r\n const p = this._p;\r\n\r\n if (p.multiPlaceholderFormatter === formatter)\r\n return this;\r\n\r\n this._p.multiPlaceholderFormatter = formatter;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {boolean|'touch'} value\r\n * @returns {SelectBox}\r\n */\r\n setBlurOnSingleSelection(value) {\r\n const p = this._p;\r\n if (p.blurOnSingleSelection === value)\r\n return this;\r\n\r\n this._p.blurOnSingleSelection = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean|'touch'}\r\n */\r\n getBlurOnSingleSelection() {\r\n return this._p.blurOnSingleSelection;\r\n }\r\n\r\n /**\r\n * @param {boolean} multi\r\n * @returns {SelectBox}\r\n */\r\n setMulti(multi) {\r\n const p = this._p;\r\n multi = !!multi;\r\n if (p.multi === multi)\r\n return this;\r\n\r\n p.multi = multi;\r\n\r\n this._setupDropdownMenu();\r\n\r\n // move to correct parent\r\n remove(p.clearButtonWrapper);\r\n delete p.clearButtonWrapper;\r\n\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isMultiEnabled() {\r\n return this._p.multi;\r\n }\r\n\r\n /**\r\n * @param {boolean} searchable\r\n * @returns {SelectBox}\r\n */\r\n setSearchable(searchable) {\r\n const p = this._p;\r\n searchable = !!searchable;\r\n if (p.searchable === searchable)\r\n return this;\r\n\r\n p.searchable = searchable;\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSearchableEnabled() {\r\n return this._p.searchable;\r\n }\r\n\r\n /**\r\n * @param {string} noResultsText\r\n * @returns {SelectBox}\r\n */\r\n setNoResultsText(noResultsText) {\r\n this._p.noResultsText = noResultsText;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n getNoResultsText() {\r\n return this._p.noResultsText;\r\n }\r\n\r\n /**\r\n * @param {number} window\r\n * @returns {SelectBox}\r\n */\r\n setFilterThrottleWindow(window) {\r\n const p = this._p;\r\n p.filterThrottleWindow = window;\r\n\r\n let isScheduled = p.throttledUpdateListItems ? p.throttledUpdateListItems.isScheduled() : false;\r\n\r\n if (p.throttledUpdateListItems)\r\n p.throttledUpdateListItems.cancel();\r\n\r\n p.throttledUpdateListItems = throttle(() => this._updateListItems(), p.filterThrottleWindow, true);\r\n\r\n if (isScheduled)\r\n p.throttledUpdateListItems();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {number}\r\n */\r\n getFilterThrottleWindow() {\r\n return this._p.filterThrottleWindow;\r\n }\r\n\r\n /**\r\n * @param {boolean} value\r\n * @returns {SelectBox}\r\n */\r\n setFilterOnEmptyTerm(value) {\r\n const p = this._p;\r\n p.filterOnEmptyTerm = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getFilterOnEmptyTerm() {\r\n return this._p.filterOnEmptyTerm;\r\n }\r\n\r\n /**\r\n * @param {DropList.Options} listOptions\r\n * @returns {SelectBox}\r\n */\r\n setListOptions(listOptions) {\r\n const p = this._p;\r\n p.listOptions = listOptions;\r\n this._setupDropdownMenu();\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox})|null\r\n */\r\n setRenderSingleItem(render, unrender) {\r\n const p = this._p;\r\n p.renderSingleItem = render;\r\n p.unrenderSingleItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox}\r\n */\r\n setRenderMultiItem(render, unrender) {\r\n const p = this._p;\r\n p.renderMultiItem = render;\r\n p.unrenderMultiItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox}\r\n */\r\n setRenderRestMultiItem(render, unrender) {\r\n const p = this._p;\r\n p.renderRestMultiItem = render;\r\n p.unrenderRestMultiItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox}\r\n */\r\n setRenderNoResultsItem(render, unrender) {\r\n const p = this._p;\r\n p.renderNoResultsItem = render;\r\n p.unrenderNoResultsItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {SelectBox}\r\n */\r\n setLabelProp(prop) {\r\n const p = this._p;\r\n p.labelProp = prop;\r\n\r\n\t\tif (p.dropList)\r\n\t\t\tp.dropList.setLabelProp(prop);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {SelectBox}\r\n */\r\n setValueProp(prop) {\r\n const p = this._p;\r\n p.valueProp = prop;\r\n\r\n\t\tif (p.dropList)\r\n\t\t\tp.dropList.setValueProp(prop);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {SelectBox}\r\n */\r\n setMultiItemLabelProp(prop) {\r\n const p = this._p;\r\n p.multiItemLabelProp = prop;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {number|null|undefined} value\r\n * @returns {SelectBox}\r\n */\r\n setMaxMultiItems(value) {\r\n const p = this._p;\r\n p.maxMultiItems = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {function(count: number, items: DropList.ItemBase[]):string|null|undefined} value\r\n * @returns {SelectBox}\r\n */\r\n setMultiItemsRestLabelProvider(value) {\r\n const p = this._p;\r\n p.multiItemsRestLabelProvider = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {function(items: DropList.ItemBase[], term: string):(DropList.ItemBase[]|null)} fn\r\n * @returns {SelectBox}\r\n */\r\n setFilterFn(fn) {\r\n const p = this._p;\r\n p.filterFn = fn;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {function(items: DropList.ItemBase[], term: string):(DropList.ItemBase[]|null)}\r\n */\r\n getFilterFn() {\r\n return this._p.filterFn;\r\n }\r\n\r\n /**\r\n * Focus on input element\r\n * @returns {SelectBox}\r\n */\r\n focusInput() {\r\n const p = this._p;\r\n\r\n if (p.input)\r\n p.input.focus();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Remvoe focus from the input element\r\n * @returns {SelectBox}\r\n */\r\n blurInput() {\r\n const p = this._p;\r\n\r\n if (p.input)\r\n p.input.blur();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Removes all selected items\r\n * @returns {SelectBox}\r\n */\r\n clear() {\r\n const p = this._p;\r\n\r\n let clearEvt = { cancel: false };\r\n this._trigger('clear:before', clearEvt);\r\n if (clearEvt.cancel)\r\n return this;\r\n\r\n p.selectedItems = [];\r\n p.selectedValues = [];\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n\r\n this._trigger('clear');\r\n\r\n if (this[DestroyedSymbol]) return this; // destroyed by event handler\r\n\r\n this._updateListItems();\r\n\r\n this._setInputText('');\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns a single value or an array of selected values - depending on `multi` prop\r\n * @public\r\n * @returns {*[]}\r\n */\r\n getValue() {\r\n const p = this._p;\r\n if (p.multi)\r\n return p.selectedValues.slice(0);\r\n else if (p.selectedValues.length > 0)\r\n return p.selectedValues[0];\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Selects the specified value or multiple values - depending on `multi` prop\r\n * @public\r\n * @param {*|*[]} value - if `multi`, then an array of values to select, otherwise - a single value to select\r\n * @returns {SelectBox}\r\n */\r\n setValue(value) {\r\n const p = this._p;\r\n if (p.multi)\r\n return this.setSelectedValues(Array.isArray(value) ? value : value !== undefined ? [value] : []);\r\n else\r\n return this.setSelectedValues(value !== undefined ? [value] : []);\r\n }\r\n\r\n /**\r\n * Returns an array of selected values\r\n * @public\r\n * @returns {*[]}\r\n */\r\n getSelectedValues() {\r\n const p = this._p;\r\n return p.selectedValues.slice(0);\r\n }\r\n\r\n /**\r\n * Selects the specified values\r\n * @public\r\n * @param {*[]} values - an array of *values* to select\r\n * @returns {SelectBox}\r\n */\r\n setSelectedValues(values) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n if (!p.multi) {\r\n values = values.slice(0, 1);\r\n }\r\n\r\n let set = new Set();\r\n let selectedValues = [];\r\n let selectedItems = [];\r\n\r\n for (let value of values) {\r\n if (set.has(value))\r\n continue;\r\n set.add(value);\r\n\r\n selectedValues.push(value);\r\n\r\n let item = p.items.find(x => x[valueProp] === value);\r\n if (item !== undefined) {\r\n selectedItems.push(item);\r\n } else {\r\n selectedItems.push({ [p.valueProp]: value });\r\n }\r\n }\r\n\r\n p.selectedValues = selectedValues;\r\n p.selectedItems = selectedItems;\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n\r\n this._updateListItems();\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns the count of selected values\r\n * @public\r\n * @returns {number}\r\n */\r\n getSelectedValueCount() {\r\n const p = this._p;\r\n return p.selectedValues.length;\r\n }\r\n\r\n /**\r\n * Returns an array of selected items\r\n * @public\r\n * @returns {Array.<Object>}\r\n */\r\n getSelectedItems() {\r\n const p = this._p;\r\n return p.selectedItems.slice(0);\r\n }\r\n\r\n /**\r\n * Sets the specified items to \"checked\" mode.\r\n * An array of items is passed, not values, because we need to keep track if items,\r\n * and if we already have the array of items then this spares the process of searching for the items by values.\r\n * @public\r\n * @param {DropList.ItemBase[]} items - an array of *items* to select (not values)\r\n * @returns {SelectBox}\r\n */\r\n setSelectedItems(items) {\r\n this._setSelectedItems(items);\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {SelectBox}\r\n */\r\n openList() {\r\n const p = this._p;\r\n\r\n if (p.dropList.isVisible())\r\n return this;\r\n\r\n if (p.isLoadingMode && p.items.length === 0)\r\n return this;\r\n\r\n this._trigger('open:before', { list: p.dropList });\r\n\r\n p.dropList.show(this._getDropListPositionOptions());\r\n this._repositionDropList();\r\n\r\n // Another one in case the droplist position messed with screen layout.\r\n // If the out element's bounds stayed the same - nothing will be recalculated.\r\n // So this is *not* expensive.\r\n this._repositionDropList();\r\n\r\n if (p.dropList.hasFocusedItem()) {\r\n p.dropList.setFocusedItemAtIndex(p.dropList.getFocusedItemIndex());\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {SelectBox}\r\n */\r\n closeList() {\r\n const p = this._p;\r\n\r\n if (this[DestroyedSymbol])\r\n return this;\r\n\r\n if (!p.dropList.isVisible())\r\n return this;\r\n\r\n p.dropList.hide();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {boolean} [open]\r\n * @returns {SelectBox}\r\n */\r\n toggleList(open) {\r\n const p = this._p;\r\n\r\n let shouldOpen = open === undefined ? !p.dropList.isVisible() : !!open;\r\n\r\n if (shouldOpen)\r\n return this.openList();\r\n else return this.closeList();\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isListOpen() {\r\n return !!this._p.dropListVisible;\r\n }\r\n\r\n /**\r\n * @param {boolean} [on]\r\n * @returns {SelectBox}\r\n */\r\n toggleLoading(on) {\r\n return this.setIsLoadingMode(on === undefined ? !this.getIsLoadingMode() : !!on);\r\n }\r\n\r\n /**\r\n * @param {boolean} isLoadingMode\r\n * @returns {SelectBox}\r\n */\r\n setIsLoadingMode(isLoadingMode) {\r\n const p = this._p;\r\n\r\n isLoadingMode = isLoadingMode === undefined ? true : !!isLoadingMode;\r\n\r\n if (p.isLoadingMode === isLoadingMode)\r\n return this;\r\n\r\n p.isLoadingMode = isLoadingMode;\r\n\r\n if (p.isLoadingMode && p.items.length === 0 && this.isListOpen()) {\r\n this.closeList();\r\n } else if (!p.isLoadingMode && document.activeElement &&\r\n ((p.multi || p.searchable) && p.input.contains(document.activeElement) ||\r\n (!p.multi && !p.searchable) && p.el.contains(document.activeElement))) {\r\n this.openList();\r\n }\r\n\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getIsLoadingMode() {\r\n return this._p.isLoadingMode;\r\n }\r\n\r\n /**\r\n * Can be called in case that the selectbox was attached to the dom late and has a weird size.\r\n * @returns {SelectBox}\r\n */\r\n refreshSize() {\r\n this._resizeInput();\r\n return this;\r\n }\r\n\r\n /**\r\n * Register an event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {SelectBox}\r\n */\r\n on(/**string|'*'*/event, /**Function?*/handler) {\r\n this._p.mitt.on(event, handler);\r\n return this;\r\n }\r\n\r\n /**\r\n * Register a one time event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {SelectBox}\r\n */\r\n once(/**string|'*'*/event, /**Function?*/handler) {\r\n let wrapped = (value) => {\r\n this._p.mitt.off(event, wrapped);\r\n handler(value);\r\n };\r\n this._p.mitt.on(event, wrapped);\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove an `handler` for `event`, all events for `event`, or all events completely.\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {SelectBox}\r\n */\r\n off(/**(string|'*')?*/event, /**Function?*/handler) {\r\n if (!event && !event) {\r\n this._p.mitt.all.clear();\r\n } else {\r\n this._p.mitt.off(event, handler);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Emit an event\r\n * @param {string} event\r\n * @param {any} value\r\n * @returns {SelectBox}\r\n */\r\n emit(/**string|'*'*/event, /**any?*/value) {\r\n this._p.mitt.emit(event, value);\r\n return this;\r\n }\r\n\r\n /** @private */\r\n _renderBase() {\r\n const p = this._p;\r\n\r\n if (!p.inputBackBuffer) {\r\n p.inputBackBuffer = createElement('span', {\r\n css: {\r\n position: 'absolute',\r\n zIndex: -1,\r\n left: 0,\r\n top: '-9999px',\r\n whiteSpace: 'pre',\r\n },\r\n });\r\n }\r\n\r\n if (!p.input) {\r\n p.inputWrapper = createElement('span',\r\n {\r\n class: `${p.baseClassName}__search_wrapper`,\r\n },\r\n p.input = createElement('input', {\r\n class: `${p.baseClassName}__search_field`,\r\n type: 'search',\r\n autocomplete: 'off',\r\n autocorrect: 'off',\r\n autocapitalize: 'off',\r\n spellcheck: 'false',\r\n role: 'textbox',\r\n 'aria-autocomplete': 'list',\r\n readOnly: !(p.searchable || p.multi),\r\n }),\r\n );\r\n }\r\n\r\n if (p.multi) {\r\n if (p.singleWrapper) {\r\n this._cleanupSingleWrapper();\r\n remove(p.singleWrapper);\r\n delete p.singleWrapper;\r\n }\r\n\r\n if (!p.list) {\r\n // Moving `inputWrapper` to a new parent may cause a 'blur' event, and an unwanted chain reaction!\r\n // So we're unregistering those events here.\r\n this._unregisterDropdownEvents();\r\n\r\n // Restore focus to this one later if we affected it\r\n const lastActiveElement = document.activeElement;\r\n\r\n p.list = createElement('ul', {\r\n class: `${p.baseClassName}__list`,\r\n });\r\n p.el.appendChild(p.list);\r\n p.list.appendChild(p.inputWrapper);\r\n p.el.classList.remove(`${p.baseClassName}__single`);\r\n p.el.classList.add(`${p.baseClassName}__multi`);\r\n\r\n // Hook clear and remove\r\n p.sink\r\n .add(p.list, 'click', (evt) => {\r\n if (!closestUntil(evt.target, `.${p.baseClassName}__item_remove`, evt.currentTarget))\r\n return;\r\n\r\n if (p.disabled) return;\r\n\r\n this._removeMultiItemFromEvent(\r\n /**@type Element*/\r\n closestUntil(evt.target, `.${p.baseClassName}__item`, evt.currentTarget),\r\n evt);\r\n })\r\n .add(p.list, 'keydown', (/**KeyboardEvent*/evt) => {\r\n if (!closestUntil(evt.target, `.${p.baseClassName}__item`, evt.currentTarget))\r\n return;\r\n\r\n this._handleMultiKeydown(evt);\r\n });\r\n\r\n if (lastActiveElement === p.input)\r\n p.input.focus();\r\n\r\n this._registerDropdownEvents();\r\n }\r\n } else {\r\n if (p.list) {\r\n remove(p.list);\r\n p.sink.remove(p.list);\r\n delete p.list;\r\n }\r\n\r\n if (!p.singleWrapper) {\r\n // Moving `inputWrapper` to a new parent may cause a 'blur' event, and an unwanted chain reaction!\r\n // So we're unregistering those events here.\r\n this._unregisterDropdownEvents();\r\n\r\n // Restore focus to this one later if we affected it\r\n const lastActiveElement = document.activeElement;\r\n\r\n p.singleWrapper = createElement('div', {\r\n class: `${p.baseClassName}__single_wrapper`,\r\n });\r\n p.el.appendChild(p.singleWrapper);\r\n p.el.appendChild(p.inputWrapper);\r\n p.el.classList.remove(`${p.baseClassName}__multi`);\r\n p.el.classList.add(`${p.baseClassName}__single`);\r\n\r\n if (lastActiveElement === p.input)\r\n p.input.focus();\r\n\r\n this._registerDropdownEvents();\r\n }\r\n }\r\n\r\n if (p.hasOpenIndicator !== !!p.openIndicator) {\r\n if (p.hasOpenIndicator) {\r\n p.openIndicator = createElement('span', { class: `${p.baseClassName}__open_indicator` });\r\n p.el.appendChild(p.openIndicator);\r\n } else {\r\n remove(p.openIndicator);\r\n delete p.openIndicator;\r\n p.el.classList.remove(`${p.baseClassName}__has_open_indicator`);\r\n }\r\n }\r\n\r\n if (p.isLoadingMode !== !!p.spinner) {\r\n if (p.isLoadingMode) {\r\n p.spinner = createElement('span', { class: `${p.baseClassName}__spinner` });\r\n p.el.appendChild(p.spinner);\r\n p.el.classList.add(`${p.baseClassName}__has_spinner`);\r\n } else {\r\n remove(p.spinner);\r\n delete p.spinner;\r\n p.el.classList.remove(`${p.baseClassName}__has_spinner`);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _syncBaseClasses() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!el)\r\n return;\r\n\r\n let classes = [p.baseClassName];\r\n\r\n if (p.multi)\r\n classes.push(`${p.baseClassName}__multi`);\r\n else classes.push(`${p.baseClassName}__single`);\r\n\r\n if (this.isListOpen())\r\n classes.push(`${p.baseClassName}__open_list`);\r\n else classes.push(`${p.baseClassName}__closed_list`);\r\n\r\n if (p.hasOpenIndicator)\r\n classes.push(`${p.baseClassName}__has_open_indicator`);\r\n\r\n if (p.clearButtonWrapper)\r\n classes.push(`${p.baseClassName}__has_clear`);\r\n\r\n if (p.isLoadingMode)\r\n classes.push(`${p.baseClassName}__has_spinner`);\r\n\r\n if (p.selectedValues.length === 0)\r\n classes.push(`${p.baseClassName}__empty_selection`);\r\n\r\n if (p.selectedValues.length > 0)\r\n classes.push(`${p.baseClassName}__has_selection`);\r\n\r\n if (p.searchable || p.multi)\r\n classes.push(`${p.baseClassName}__searchable`);\r\n\r\n if (p.additionalClasses) {\r\n classes = classes.concat(p.additionalClasses);\r\n }\r\n\r\n el.className = classes.join(' ');\r\n }\r\n\r\n /** @private */\r\n _setupDropdownMenu() {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n if (p.dropList) {\r\n p.dropList.destroy();\r\n delete p.dropList;\r\n p.itemsChanged = true;\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n }\r\n\r\n const renderNoResultsItem = p.renderNoResultsItem;\r\n const unrenderNoResultsItem = p.unrenderNoResultsItem;\r\n const customRenderItem = (p.listOptions || {}).renderItem;\r\n const customUnrenderItem = (p.listOptions || {}).unrenderItem;\r\n\r\n const renderItem = (renderNoResultsItem || customRenderItem) ? (item, itemEl) => {\r\n if (item && item[valueProp] === NoResultsItemSymbol) {\r\n if (renderNoResultsItem && renderNoResultsItem(item, itemEl) !== false) {\r\n return true;\r\n }\r\n\r\n itemEl.appendChild(createElement('div', {\r\n class: 'droplist-no-results-content',\r\n textContent: p.noResultsText,\r\n }));\r\n return true;\r\n } else {\r\n if (customRenderItem)\r\n return customRenderItem(item, itemEl);\r\n }\r\n return false;\r\n } : null;\r\n\r\n const unrenderItem = (unrenderNoResultsItem || customRenderItem) ? (item, itemEl) => {\r\n if (item && item[valueProp] === NoResultsItemSymbol) {\r\n if (unrenderNoResultsItem)\r\n return unrenderNoResultsItem(item, itemEl);\r\n } else {\r\n if (customUnrenderItem)\r\n return customUnrenderItem(item, itemEl);\r\n }\r\n return false;\r\n } : null;\r\n\r\n const dropList = p.dropList = new DropList({\r\n virtualMinItems: 10,\r\n\r\n ...p.listOptions,\r\n\r\n renderItem: renderItem,\r\n unrenderItem: unrenderItem,\r\n\r\n multi: p.multi,\r\n capturesFocus: false,\r\n\r\n labelProp: p.labelProp,\r\n valueProp: p.valueProp,\r\n\r\n on: (name, event) => {\r\n switch (name) {\r\n case 'show:before': {\r\n p.dropListVisible = true;\r\n p.el.setAttribute('aria-expanded', 'true');\r\n p.el.classList.add(`${p.baseClassName}__open_list`);\r\n p.el.classList.remove(`${p.baseClassName}__closed_list`);\r\n\r\n if (p.resortBySelectionNeeded && (p.sortListCheckedFirst && p.multi))\r\n p.itemsChanged = true;\r\n\r\n this._updateListItems();\r\n this._trigger('open', { list: dropList });\r\n\r\n this._startTrackingPresence();\r\n\r\n p.sink.add(window, 'resize.trackposition', () => this._repositionDropList());\r\n\r\n let parent = p.el.parentNode;\r\n while (parent) {\r\n if (parent.scrollHeight > parent.offsetHeight ||\r\n parent.scrollWidth > parent.offsetWidth) {\r\n if (parent === document.documentElement) {\r\n parent = window;\r\n }\r\n p.sink.add(parent, 'scroll.trackposition', () => this._repositionDropList());\r\n }\r\n parent = parent.parentNode;\r\n }\r\n }\r\n break;\r\n\r\n case 'hide': {\r\n p.dropListVisible = false;\r\n p.el.setAttribute('aria-expanded', 'false');\r\n p.el.classList.remove(`${p.baseClassName}__open_list`);\r\n p.el.classList.add(`${p.baseClassName}__closed_list`);\r\n\r\n if (!p.multi) {\r\n this._setInputText('');\r\n this._scheduleSync();\r\n }\r\n\r\n this._trigger('close');\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n this._stopTrackingPresence();\r\n p.sink.remove(null, '.trackposition');\r\n }\r\n break;\r\n\r\n case 'check': {\r\n if (!p.multi) return;\r\n\r\n const item = /**@type DropList.Item*/event.item;\r\n const value = event.value;\r\n\r\n let checked = item._checked;\r\n if (item._group) return; // Ignore groups\r\n\r\n let selEvt = { value: value, item: item, cancel: false };\r\n this._trigger((checked ? 'addsel' : 'removesel') + ':before', selEvt);\r\n\r\n if (selEvt.cancel) {\r\n // Rollback that check\r\n p.dropList.setItemChecked(value, !checked);\r\n return;\r\n }\r\n\r\n if (checked) {\r\n p.selectedItems.push(item);\r\n p.selectedValues.push(value);\r\n } else {\r\n const idx = p.selectedValues.indexOf(value);\r\n if (idx !== -1) {\r\n p.selectedItems.splice(idx, 1);\r\n p.selectedValues.splice(idx, 1);\r\n }\r\n }\r\n\r\n // If we are in context of group, then there are lots of syncs coming, so do not do it now\r\n const hasGroupSync = !!event.isCheckingGroup;\r\n\r\n if (p.showSelection) {\r\n if (checked) {\r\n if (dropList.itemCount() === 1) {\r\n this._setInputText('');\r\n }\r\n\r\n if (p.sortSelectedItems) {\r\n if (!hasGroupSync)\r\n this._scheduleSync('full');\r\n } else {\r\n if (p.maxMultiItems != null &&\r\n p.selectedItems.filter(x => !x._group).length > p.maxMultiItems) {\r\n this._scheduleSync('addOrUpdateMultiItemRestElement');\r\n } else {\r\n this._scheduleSync('addMultiItemElement', item);\r\n }\r\n\r\n if (!hasGroupSync)\r\n this._scheduleSync();\r\n }\r\n } else {\r\n if (p.maxMultiItems != null &&\r\n p.selectedItems.filter(x => !x._group).length === p.maxMultiItems) {\r\n this._scheduleSync('removeMultiItemRestElement');\r\n } else {\r\n this._scheduleSync('removeMultiItemElement', item);\r\n }\r\n\r\n if (!hasGroupSync)\r\n this._scheduleSync();\r\n }\r\n }\r\n\r\n this._trigger(checked ? 'addsel' : 'removesel', { value: value, item: item });\r\n }\r\n break;\r\n\r\n case 'groupcheck': {\r\n if (!p.multi) return;\r\n\r\n if (event.affectedItems) {\r\n this._scheduleSync(p.sortSelectedItems ? 'full' : null);\r\n }\r\n }\r\n break;\r\n\r\n case 'select': {\r\n if (p.multi) return;\r\n\r\n const item = event.item;\r\n const value = event.value;\r\n\r\n let selectEvt = { value: value, item: item, cancel: false };\r\n this._trigger('select:before', selectEvt);\r\n\r\n if (selectEvt.cancel)\r\n return;\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n this._setSelectedItems([item]);\r\n this._trigger('select', { value: value, item: item });\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n this.closeList();\r\n\r\n if (p.blurOnSingleSelection === 'touch' && hasTouchCapability ||\r\n p.blurOnSingleSelection !== 'touch' && p.blurOnSingleSelection) {\r\n p.input && p.input.blur();\r\n }\r\n }\r\n break;\r\n }\r\n },\r\n });\r\n\r\n this._registerDropdownEvents();\r\n }\r\n\r\n _unregisterDropdownEvents() {\r\n const p = this._p;\r\n\r\n p.sink.remove(null, '.dropdown');\r\n }\r\n\r\n _registerDropdownEvents() {\r\n const p = this._p;\r\n\r\n this._unregisterDropdownEvents();\r\n\r\n const dropList = p.dropList;\r\n if (!dropList) return;\r\n\r\n let avoidToggleFromClick = false,\r\n currentTouchId = null,\r\n suppressKeyPress = false,\r\n suppressKeyPressRepeat = false;\r\n\r\n const keyEventsTarget = p.multi || p.searchable ? p.input : p.el;\r\n\r\n p.sink\r\n .add(keyEventsTarget, 'keydown.dropdown', evt => {\r\n if ((/**@type HTMLInputElement*/evt.currentTarget).readOnly)\r\n return;\r\n\r\n suppressKeyPress = false;\r\n suppressKeyPressRepeat = false;\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n case VALUE_PAGE_DOWN:\r\n case VALUE_UP:\r\n case VALUE_DOWN:\r\n suppressKeyPress = true;\r\n evt.preventDefault();\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n if (dropList.isVisible())\r\n dropList.previousPage(evt);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n if (dropList.isVisible())\r\n dropList.nextPage(evt);\r\n break;\r\n case VALUE_UP:\r\n if (dropList.isVisible()) {\r\n dropList.previous(evt);\r\n } else {\r\n this._movePrev();\r\n }\r\n break;\r\n case VALUE_DOWN:\r\n if (dropList.isVisible()) {\r\n dropList.next(evt);\r\n } else {\r\n this._moveNext();\r\n }\r\n break;\r\n\r\n }\r\n break;\r\n\r\n case VALUE_SPACE:\r\n if (p.lastKeyAllowsSpaceToggle) {\r\n if (dropList.isVisible() && dropList.hasFocusedItem()) {\r\n suppressKeyPress = true;\r\n suppressKeyPressRepeat = true;\r\n if (p.multi)\r\n dropList.toggleFocusedItem(evt);\r\n else dropList.triggerItemSelection(evt);\r\n evt.preventDefault();\r\n }\r\n }\r\n break;\r\n\r\n case VALUE_ENTER:\r\n if (dropList.isVisible() && dropList.hasFocusedItem()) {\r\n suppressKeyPress = true;\r\n suppressKeyPressRepeat = true;\r\n evt.preventDefault();\r\n dropList.triggerItemSelection(evt);\r\n }\r\n\r\n break;\r\n\r\n case VALUE_TAB:\r\n if (dropList.isVisible() && dropList.hasFocusedItem()) {\r\n dropList.triggerItemSelection(evt);\r\n }\r\n break;\r\n\r\n case VALUE_ESCAPE:\r\n if (dropList.isVisible()) {\r\n dropList.hide(evt);\r\n evt.preventDefault();\r\n }\r\n break;\r\n\r\n default:\r\n suppressKeyPressRepeat = true;\r\n dropList._keydownFreeType(evt);\r\n break;\r\n }\r\n\r\n p.lastKeyAllowsSpaceToggle = evt.key === VALUE_UP ||\r\n evt.key === VALUE_DOWN ||\r\n evt.key === VALUE_PAGE_UP ||\r\n evt.key === VALUE_PAGE_DOWN ||\r\n (evt.key === VALUE_SPACE && !!p.lastKeyAllowsSpaceToggle);\r\n })\r\n .add(keyEventsTarget, 'keypress.dropdown', evt => {\r\n if (suppressKeyPress) {\r\n suppressKeyPress = false;\r\n evt.preventDefault();\r\n return;\r\n }\r\n\r\n if (suppressKeyPressRepeat)\r\n return;\r\n\r\n if (evt.key === VALUE_ENTER ||\r\n (\r\n evt.key === VALUE_SPACE &&\r\n p.lastKeyAllowsSpaceToggle &&\r\n !p.multi &&\r\n !dropList.hasFocusedItem()\r\n )\r\n ) {\r\n this.toggleList();\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n return;\r\n }\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n case VALUE_PAGE_DOWN:\r\n case VALUE_UP:\r\n case VALUE_DOWN:\r\n evt.preventDefault();\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n if (dropList.isVisible())\r\n dropList.previousPage(evt);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n if (dropList.isVisible())\r\n dropList.nextPage(evt);\r\n break;\r\n case VALUE_UP:\r\n if (dropList.isVisible()) {\r\n dropList.previous(evt);\r\n } else {\r\n this._movePrev();\r\n }\r\n break;\r\n case VALUE_DOWN:\r\n if (dropList.isVisible()) {\r\n dropList.next(evt);\r\n } else {\r\n this._moveNext();\r\n }\r\n break;\r\n }\r\n break;\r\n }\r\n });\r\n\r\n if (p.input) {\r\n p.sink\r\n .add(p.input, 'input.dropdown', () => {\r\n p.filterTerm = p.input.value.trim();\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n\r\n this._trigger('search', { value: p.input.value });\r\n\r\n p.throttledUpdateListItems();\r\n })\r\n .add(p.input, 'click.dropdown', () => {\r\n if (!p.multi && p.searchable) {\r\n this.openList();\r\n }\r\n })\r\n .add(p.input, 'focus.dropdown', () => {\r\n this._trigger('search:focus');\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n avoidToggleFromClick = false;\r\n this.openList();\r\n\r\n avoidToggleFromClick = true;\r\n setTimeout(() => { avoidToggleFromClick = false; }, 10);\r\n })\r\n .add(p.input, 'blur.dropdown', () => {\r\n this._trigger('search:blur');\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n if (p.throttledUpdateListItems)\r\n p.throttledUpdateListItems.cancel();\r\n\r\n this.closeList();\r\n });\r\n }\r\n\r\n p.sink\r\n .add(p.el, 'mousedown.dropdown', () => {\r\n if (!p.multi && !p.searchable && !avoidToggleFromClick) {\r\n this.toggleList();\r\n }\r\n avoidToggleFromClick = false;\r\n })\r\n .add(p.el, 'touchstart.dropdown', evt => {\r\n if (currentTouchId) return;\r\n currentTouchId = evt.changedTouches[0].identifier;\r\n\r\n if (this.isDisabled())\r\n return;\r\n\r\n if (closestUntil(evt.target, `.${p.baseClassName}__item,.${p.baseClassName}__clear`, p.el))\r\n return;\r\n\r\n let onTouchCancel = () => {\r\n currentTouchId = null;\r\n p.sink.remove(p.el, '.dropdown_touchextra');\r\n };\r\n\r\n (p.input || p.el).focus();\r\n\r\n p.sink\r\n .add(p.el, 'touchend.dropdown_touchextra', (tevt) => {\r\n let touch = Array.prototype.find.call(evt.changedTouches,\r\n touch => touch.identifier === currentTouchId);\r\n if (!touch) return onTouchCancel();\r\n\r\n tevt.preventDefault();\r\n onTouchCancel();\r\n })\r\n .add(p.el, 'touchmove.dropdown_touchextra', (tevt) => {\r\n tevt.preventDefault();\r\n })\r\n .add(p.el, 'touchcancel.dropdown_touchextra', onTouchCancel);\r\n });\r\n }\r\n\r\n _movePrev() {\r\n const p = this._p;\r\n\r\n if (this.isMultiEnabled()) return;\r\n\r\n let selectedItems = this.getSelectedItems();\r\n let items = p.filteredItems ?? p.items;\r\n if ((items.length + (p.clearable ? 1 : 0)) > 1) {\r\n let nextIndex = selectedItems.length > 0 ? items.indexOf(selectedItems[0]) - 1 : (selectedItems.length - 1);\r\n if (nextIndex === -1 && !p.clearable)\r\n nextIndex = items.length - 1;\r\n this.setSelectedItems(nextIndex === -1 ? [] : [items[nextIndex]]);\r\n }\r\n }\r\n\r\n _moveNext() {\r\n const p = this._p;\r\n\r\n if (this.isMultiEnabled()) return;\r\n\r\n let selectedItems = this.getSelectedItems();\r\n let items = p.filteredItems ?? p.items;\r\n if ((items.length + (p.clearable ? 1 : 0)) > 1) {\r\n let nextIndex = selectedItems.length > 0 ? items.indexOf(selectedItems[0]) + 1 : 0;\r\n if (nextIndex === selectedItems.length)\r\n nextIndex = p.clearable ? -1 : 0;\r\n this.setSelectedItems(nextIndex === -1 ? [] : [items[nextIndex]]);\r\n }\r\n }\r\n\r\n /** @private */\r\n _updateListItems() {\r\n const p = this._p;\r\n\r\n const dropList = p.dropList;\r\n if (!dropList || !p.dropListVisible)\r\n return;\r\n\r\n // For every search change, filteredItems is cleared.\r\n // If it's non-null here, then it means we have an extra call to _updateListItems, and not need to refilter.\r\n if (!p.filteredItems && (p.filterTerm || (p.filterOnEmptyTerm && p.filterFn))) {\r\n this._refilterItems();\r\n }\r\n\r\n if (p.itemsChanged || p.selectionChanged) {\r\n p.dropList._lastSerializedBox = null;\r\n }\r\n\r\n if (p.itemsChanged) {\r\n let items = p.filteredItems || p.items;\r\n if (p.sortListItems || (p.sortListCheckedFirst && p.multi)) {\r\n items = this._sortItems(items,\r\n p.sortListItems,\r\n p.sortListCheckedFirst && p.multi,\r\n p.splitListCheckedGroups);\r\n }\r\n dropList.removeAllItems();\r\n\r\n if (items.length === 0 && p.noResultsText) {\r\n items = [{\r\n [p.labelProp]: p.noResultsText,\r\n [p.valueProp]: NoResultsItemSymbol,\r\n _nointeraction: true,\r\n _nocheck: true,\r\n }];\r\n }\r\n\r\n dropList.addItems(items);\r\n p.itemsChanged = false;\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = false;\r\n }\r\n\r\n let hasRefocusedItem = false;\r\n\r\n if (p.selectionChanged) {\r\n if (p.multi) {\r\n p.dropList.setCheckedValues(p.selectedValues);\r\n } else {\r\n const singleItemIndex = p.dropList.itemIndexByValue(this.getValue());\r\n\r\n p.dropList\r\n .setFocusedItemAtIndex(singleItemIndex)\r\n .setSingleSelectedItemAtIndex(singleItemIndex);\r\n\r\n hasRefocusedItem = p.dropList.hasFocusedItem();\r\n }\r\n p.selectionChanged = false;\r\n }\r\n\r\n this._repositionDropList();\r\n\r\n if (hasRefocusedItem) {\r\n p.dropList.setFocusedItemAtIndex(p.dropList.getFocusedItemIndex());\r\n }\r\n }\r\n\r\n _refilterItems() {\r\n const p = this._p;\r\n\r\n const term = p.filterTerm;\r\n\r\n if (term || (p.filterOnEmptyTerm && p.filterFn)) {\r\n let fn = p.filterFn;\r\n\r\n let filteredItems;\r\n\r\n if (typeof fn === 'function') {\r\n filteredItems = p.filterFn(p.items, term);\r\n }\r\n\r\n // If there was no filter function, or it gave up on filtering.\r\n if (!Array.isArray(filteredItems)) {\r\n if (term) {\r\n const matcher = new RegExp(escapeRegex(term), 'i');\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n\r\n filteredItems = p.items.filter(x => {\r\n if (x._group) return true;\r\n return matcher.test(x[labelProp] || x[multiItemLabelProp]);\r\n });\r\n } else {\r\n filteredItems = null;\r\n }\r\n }\r\n\r\n p.filteredItems = filteredItems;\r\n\r\n if (filteredItems) {\r\n // Clean up groups without children\r\n\r\n let lastGroup = -1;\r\n let len = filteredItems.length;\r\n\r\n for (let i = 0; i < len; i++) {\r\n let item = filteredItems[i];\r\n\r\n if (item._group) {\r\n if (lastGroup !== -1 && lastGroup === i - 1) {\r\n // It was an empty group\r\n filteredItems.splice(lastGroup, 1);\r\n i--;\r\n len--;\r\n }\r\n\r\n lastGroup = i;\r\n }\r\n }\r\n\r\n if (lastGroup !== -1) {\r\n if (lastGroup === len - 1) {\r\n // It was an empty group\r\n filteredItems.splice(lastGroup, 1);\r\n }\r\n }\r\n }\r\n } else {\r\n p.filteredItems = null;\r\n }\r\n\r\n this._trigger('itemschanged', { term: term, mutated: false, count: this.getFilteredItemCount() });\r\n\r\n p.itemsChanged = true;\r\n }\r\n\r\n _setSelectedItems(items) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n if (p.multi) {\r\n p.selectedItems = items.filter(x => x[valueProp] !== undefined);\r\n p.selectedValues = p.selectedItems.map(x => x[valueProp]);\r\n } else {\r\n p.selectedItems = items.slice(0, 1);\r\n p.selectedValues = items.slice(0, 1).map(x => x[valueProp]);\r\n }\r\n\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n\r\n this._updateListItems();\r\n this._scheduleSync('full');\r\n }\r\n\r\n _scheduleSync(mode, data) {\r\n const p = this._p;\r\n\r\n if (!p.syncQueue)\r\n p.syncQueue = [];\r\n\r\n if (mode === 'full')\r\n p.syncQueue.length = 0;\r\n\r\n if (p.syncQueue.length === 0 || p.syncQueue[0].mode !== 'full')\r\n p.syncQueue.push({ mode: mode, data: data });\r\n\r\n if (p.syncTimeout)\r\n return;\r\n\r\n p.syncTimeout = setTimeout(() => {\r\n delete p.syncTimeout;\r\n let queue = p.syncQueue;\r\n delete p.syncQueue;\r\n this._performSync(queue);\r\n });\r\n }\r\n\r\n _performSync(queue) {\r\n const p = this._p;\r\n\r\n if (this[DestroyedSymbol])\r\n return;\r\n\r\n for (let op of queue) {\r\n switch (op.mode) {\r\n case 'full':\r\n this._syncFull(true);\r\n break;\r\n\r\n case 'singleItem':\r\n this._syncSingleItem();\r\n break;\r\n\r\n case 'removeMultiItemElement': {\r\n if (p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n const valueProp = p.valueProp;\r\n const item = op.data,\r\n value = item[valueProp];\r\n\r\n let idx = p.multiItemEls.findIndex(x => x[ItemSymbol][valueProp] === value);\r\n if (idx !== -1) {\r\n this._removeMultiItemElementByIndex(idx);\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case 'addMultiItemElement': {\r\n if (!p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n this._addMultiItemElement(op.data);\r\n }\r\n }\r\n break;\r\n\r\n case 'addOrUpdateMultiItemRestElement': {\r\n if (!p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n this._addMultiItemRestElement();\r\n }\r\n }\r\n break;\r\n\r\n case 'removeMultiItemRestElement': {\r\n if (!p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n let itemEl = p.multiItemEls[p.multiItemEls.length - 1];\r\n if (itemEl?.[ItemSymbol]?.[p.valueProp] === RestMultiItemsSymbol) {\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case 'resize_input': {\r\n this._resizeInput();\r\n }\r\n break;\r\n\r\n default:\r\n this._syncFull(false);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n _cleanupSingleWrapper() {\r\n const p = this._p;\r\n\r\n if (!p.singleWrapper) return;\r\n\r\n if (p.unrenderSingleItem && p.singleWrapper.childNodes.length > 0) {\r\n try {\r\n p.unrenderSingleItem(p.singleWrapper[ItemSymbol], p.singleWrapper);\r\n } catch (err) { console.error(err); } // eslint-disable-line no-console\r\n }\r\n\r\n delete p.singleWrapper[ItemSymbol];\r\n p.singleWrapper.innerHTML = '';\r\n }\r\n\r\n /**\r\n * @param {number} index\r\n * @private\r\n */\r\n _removeMultiItemElementByIndex(index) {\r\n const p = this._p, multiItemEls = p.multiItemEls;\r\n\r\n if (multiItemEls.length > index) {\r\n const itemEl = multiItemEls[index];\r\n const item = itemEl[ItemSymbol];\r\n\r\n let unrender = item?.[p.valueProp] === RestMultiItemsSymbol\r\n ? p.unrenderRestMultiItem ?? p.unrenderMultiItem\r\n : p.unrenderMultiItem;\r\n\r\n if (unrender && itemEl.childNodes.length > 0) {\r\n try {\r\n unrender(item, itemEl);\r\n } catch (err) { console.error(err); } // eslint-disable-line no-console\r\n }\r\n remove(itemEl);\r\n\r\n // fastpath\r\n if (index === multiItemEls.length - 1) multiItemEls.pop();\r\n else multiItemEls.splice(index, 1);\r\n }\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @private\r\n */\r\n _renderSingleItemContent(item) {\r\n const p = this._p;\r\n\r\n if (!p.renderSingleItem || p.renderSingleItem(item, p.singleWrapper) === false) {\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n\r\n let label = item[multiItemLabelProp] || item[labelProp];\r\n if (label === null || label === undefined)\r\n label = '';\r\n\r\n p.singleWrapper.appendChild(document.createTextNode(label));\r\n }\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @param {Element} itemEl\r\n * @private\r\n */\r\n _renderMultiItemContent(item, itemEl) {\r\n const p = this._p;\r\n\r\n let render = item[p.valueProp] === RestMultiItemsSymbol\r\n ? p.renderRestMultiItem ?? p.renderMultiItem\r\n : p.renderMultiItem;\r\n\r\n if (!render || render(item, itemEl) === false) {\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n const label = item[multiItemLabelProp] || item[labelProp];\r\n itemEl.appendChild(createElement('span', {\r\n textContent: label,\r\n }));\r\n }\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @private\r\n */\r\n _addMultiItemElement(item) {\r\n const p = this._p;\r\n const itemEl = this._renderMultiItem(item);\r\n if (!itemEl) return;\r\n\r\n before(p.inputWrapper, itemEl);\r\n p.multiItemEls.push(itemEl);\r\n }\r\n\r\n /** @private */\r\n _addMultiItemRestElement() {\r\n const p = this._p;\r\n\r\n let items = p.selectedItems.slice(0);\r\n let count = items.filter(x => !x._group).length - p.maxMultiItems;\r\n let label = p.multiItemsRestLabelProvider\r\n ? p.multiItemsRestLabelProvider(count, items)\r\n : `+ ${count}`;\r\n\r\n this._addMultiItemElement({\r\n items: items,\r\n [p.valueProp]: RestMultiItemsSymbol,\r\n [p.labelProp]: label,\r\n });\r\n }\r\n\r\n /** @private */\r\n _syncClearButton() {\r\n const p = this._p;\r\n\r\n // Set clear button\r\n if (p.selectedItems.length > 0 && p.clearable && p.showSelection) {\r\n if (!p.clearButtonWrapper) {\r\n p.clearButtonWrapper = createElement(\r\n p.multi ? 'li' : 'span',\r\n { class: `${p.baseClassName}__clear` },\r\n p.clearButton = createElement('button'));\r\n if (p.multi)\r\n append(p.list, p.clearButtonWrapper);\r\n else append(p.el, p.clearButtonWrapper);\r\n p.el.classList.add(`${p.baseClassName}__has_clear`);\r\n\r\n p.sink.add(p.clearButton, 'click', () => {\r\n if (this.isDisabled()) return;\r\n this.clear();\r\n });\r\n }\r\n } else {\r\n if (p.clearButtonWrapper) {\r\n p.sink.remove(p.clearButton, 'click');\r\n\r\n remove(p.clearButtonWrapper);\r\n delete p.clearButtonWrapper;\r\n delete p.clearButton;\r\n p.el.classList.remove(`${p.baseClassName}__has_clear`);\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n _syncPlaceholder() {\r\n const p = this._p;\r\n\r\n let placeholder = '';\r\n\r\n if (p.multi && !p.showSelection) {\r\n if (typeof p.multiPlaceholderFormatter === 'function') {\r\n placeholder = p.multiPlaceholderFormatter(p.selectedItems);\r\n } else {\r\n placeholder = defaultMultiPlaceholderFormatter(p.selectedItems, p.labelProp);\r\n }\r\n } else if (p.selectedItems.length === 0 || !p.showSelection) {\r\n placeholder = p.placeholder == null ? '' : (p.placeholder + '');\r\n }\r\n\r\n // Set input placeholder\r\n p.input.setAttribute('placeholder', placeholder);\r\n }\r\n\r\n /** @private */\r\n _syncSingleItem() {\r\n const p = this._p;\r\n\r\n if (p.singleWrapper)\r\n this._cleanupSingleWrapper();\r\n\r\n const items = p.selectedItems;\r\n\r\n if (items.length > 0) {\r\n this._renderSingleItemContent(items[0]);\r\n p.singleWrapper[ItemSymbol] = items[0];\r\n }\r\n }\r\n\r\n /**\r\n * Syncs render state, selected items, and position\r\n * @param {boolean=false} fullItemsRender Should re-render all items?\r\n * @returns {SelectBox}\r\n */\r\n _syncFull(fullItemsRender) {\r\n const p = this._p;\r\n\r\n this._renderBase();\r\n this._syncClearButton();\r\n this._syncPlaceholder();\r\n\r\n fullItemsRender = p.multi && p.showSelection && (fullItemsRender || p.selectedItems.length !== p.multiItemEls.length);\r\n\r\n if (fullItemsRender || !p.showSelection || !p.multi) {\r\n // Remove all item elements\r\n while (p.multiItemEls.length > 0) {\r\n // use fast path by removing in reverse\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n }\r\n }\r\n\r\n if (p.multi) {\r\n if (fullItemsRender) {\r\n const items = p.selectedItems;\r\n\r\n // Sort these\r\n if (p.sortSelectedItems) {\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp,\r\n valueProp = p.valueProp,\r\n stickyValues = p.stickyValues;\r\n\r\n const comparator = p.sortItemComparator || ((a, b) => {\r\n if (stickyValues !== null) {\r\n let sa = stickyValues.has(a[valueProp]);\r\n let sb = stickyValues.has(b[valueProp]);\r\n if (sa && !sb) return -1;\r\n if (!sa && sb) return 1;\r\n }\r\n\r\n const aLabel = a[multiItemLabelProp] || a[labelProp];\r\n const bLabel = b[multiItemLabelProp] || b[labelProp];\r\n return aLabel < bLabel ? -1 : (aLabel > bLabel ? 1 : 0);\r\n });\r\n\r\n items.sort(comparator);\r\n\r\n p.selectedValues = items.map(x => x[valueProp]);\r\n }\r\n\r\n let actualItemCount = 0;\r\n let max = p.maxMultiItems;\r\n let addRestItem = false;\r\n\r\n // Add item elements\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i]._group) continue;\r\n\r\n if (max != null && actualItemCount === max) {\r\n addRestItem = true;\r\n break;\r\n }\r\n\r\n actualItemCount++;\r\n this._addMultiItemElement(items[i]);\r\n }\r\n\r\n if (addRestItem) {\r\n this._addMultiItemRestElement();\r\n }\r\n }\r\n } else if (!p.multi) {\r\n this._syncSingleItem();\r\n }\r\n\r\n if (getRootNode(p.el) !== document)\r\n return this;\r\n\r\n toggleClass(p.el, `${p.baseClassName}__empty_selection`, p.selectedValues.length === 0);\r\n toggleClass(p.el, `${p.baseClassName}__has_selection`, p.selectedValues.length > 0);\r\n\r\n if (p.searchable || p.multi) {\r\n if (p.input) p.input.readOnly = false;\r\n p.el.classList.add(`${p.baseClassName}__searchable`);\r\n } else {\r\n if (p.input) p.input.readOnly = true;\r\n p.el.classList.remove(`${p.baseClassName}__searchable`);\r\n }\r\n\r\n // Update input size\r\n this._resizeInput()._updateListItems();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} event\r\n * @param {*} [data]\r\n * @private\r\n */\r\n _trigger(event, data) {\r\n const p = this._p;\r\n if (p.on)\r\n p.on(event, ...(data === undefined ? [] : [data]));\r\n p.mitt.emit(event, data);\r\n }\r\n\r\n /**\r\n * Render a multi item\r\n * @param {Object} item\r\n * @returns {Element|null}\r\n * @private\r\n */\r\n _renderMultiItem(item) {\r\n const p = this._p;\r\n\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n const label = item[multiItemLabelProp] ?? item[labelProp];\r\n if (label === false)\r\n return null;\r\n\r\n const itemEl = createElement('li',\r\n {\r\n class: `${p.baseClassName}__item`,\r\n tabindex: '0',\r\n title: label,\r\n },\r\n [\r\n createElement('span', {\r\n class: `${p.baseClassName}__item_remove`,\r\n role: 'presentation',\r\n }),\r\n ],\r\n );\r\n\r\n this._renderMultiItemContent(item, itemEl);\r\n\r\n itemEl[ItemSymbol] = item;\r\n\r\n return itemEl;\r\n }\r\n\r\n /**\r\n * Removes a specific multi item by user event\r\n * @param {Element} itemEl\r\n * @param {Event} originatingEvent\r\n * @returns {SelectBox}\r\n * @private\r\n */\r\n _removeMultiItemFromEvent(itemEl, originatingEvent) {\r\n const p = this._p;\r\n\r\n let nextFocus;\r\n if (/key/.test(originatingEvent.type)) {\r\n const kEvent = /**@type KeyboardEvent*/originatingEvent;\r\n if (kEvent.key === VALUE_DELETE) { // Delete\r\n nextFocus = next(itemEl, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n } else if (kEvent.key === VALUE_BACK_SPACE) { // Backspace\r\n nextFocus = prev(itemEl, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n }\r\n } else if (/click|mouse|touch/.test(originatingEvent.type)) {\r\n nextFocus = next(itemEl, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n }\r\n\r\n const item = itemEl[ItemSymbol], value = item[p.valueProp];\r\n\r\n if (item !== undefined) {\r\n if (value === RestMultiItemsSymbol) {\r\n let items = p.selectedItems.filter(x => !x._group).slice(p.maxMultiItems);\r\n let itemsToRemove = [];\r\n\r\n for (let item of items) {\r\n let removeselEvt = { value: value, item: item, cancel: false };\r\n this._trigger('removesel:before', removeselEvt);\r\n if (!removeselEvt.cancel)\r\n itemsToRemove.push(item);\r\n }\r\n\r\n if (itemsToRemove.length > 0) {\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n\r\n for (let item of itemsToRemove) {\r\n // sync selection\r\n let idx = p.selectedItems.indexOf(item);\r\n if (idx === -1)\r\n idx = p.selectedValues.indexOf(value[p.valueProp]);\r\n if (idx !== -1) {\r\n p.selectedItems.splice(idx, 1);\r\n p.selectedValues.splice(idx, 1);\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n }\r\n }\r\n }\r\n\r\n if (items.length > itemsToRemove.length) {\r\n this._addMultiItemRestElement();\r\n }\r\n\r\n if (itemsToRemove.length > 0) {\r\n this._scheduleSync();\r\n }\r\n } else {\r\n let removeselEvt = { value: value, item: item, cancel: false };\r\n this._trigger('removesel:before', removeselEvt);\r\n if (removeselEvt.cancel)\r\n return this;\r\n\r\n this._removeMultiItem(item);\r\n\r\n // trigger event\r\n this._trigger('removesel', { value: value, item: item });\r\n }\r\n }\r\n\r\n if (!nextFocus) {\r\n nextFocus = p.el.querySelector(`.${p.baseClassName}__item, .${p.baseClassName}__search_field`);\r\n }\r\n\r\n if (hasClass(nextFocus, `${p.baseClassName}__search_wrapper`)) {\r\n nextFocus = nextFocus.querySelector('input');\r\n }\r\n\r\n nextFocus && nextFocus.focus();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @param {boolean} [populate]\r\n * @private\r\n */\r\n _removeMultiItem(item, populate = false) {\r\n const p = this._p;\r\n const valueProp = p.valueProp,\r\n labelProp = p.labelProp;\r\n const value = item[valueProp];\r\n\r\n // sync selection\r\n let idx = p.selectedItems.indexOf(item);\r\n if (idx === -1)\r\n idx = p.selectedValues.indexOf(value);\r\n if (idx !== -1) {\r\n p.selectedItems.splice(idx, 1);\r\n p.selectedValues.splice(idx, 1);\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n }\r\n\r\n // sync multi item element\r\n idx = p.multiItemEls.findIndex(x => x[ItemSymbol] === item);\r\n if (idx === -1)\r\n idx = p.multiItemEls.findIndex(x => x[ItemSymbol][valueProp] === value);\r\n if (idx !== -1) {\r\n this._removeMultiItemElementByIndex(idx);\r\n }\r\n\r\n if (populate) {\r\n this._setInputText(item[p.multiItemLabelProp] || item[labelProp]);\r\n\r\n p.input.focus();\r\n\r\n // Go to end of input\r\n p.input.selectionStart = p.input.selectionEnd = p.input.value.length;\r\n }\r\n\r\n // sync\r\n this._scheduleSync();\r\n }\r\n\r\n /**\r\n * @param {*} value\r\n * @private\r\n */\r\n _setInputText(value) {\r\n const p = this._p;\r\n\r\n p.input.value = value == null ? '' : String(value);\r\n\r\n p.filterTerm = '';\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n }\r\n\r\n /**\r\n * Update input size to current state\r\n * @returns {SelectBox}\r\n * @private\r\n */\r\n _resizeInput() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!el.parentNode || !document.body.contains(el))\r\n return this;\r\n\r\n const input = p.input, backBufferEl = p.inputBackBuffer;\r\n\r\n let inputValue = input.value || input.placeholder;\r\n toggleClass(el, `${p.baseClassName}__has_input`, !!inputValue);\r\n toggleClass(el, `${p.baseClassName}__empty_input`, !inputValue);\r\n\r\n let hasResize = false;\r\n\r\n if (p.multi && p.multiItemEls.length === 0 && p.showSelection) {\r\n // Full width of list wrapper\r\n input.style.width = ''; // reset first\r\n\r\n let beforeWidth = 0, afterWidth = 0;\r\n\r\n let beforeStyle = getComputedStyle(p.list || el, '::before');\r\n if (beforeStyle.content &&\r\n beforeStyle.content !== 'none' &&\r\n beforeStyle.position !== 'absolute' &&\r\n beforeStyle.float !== 'none') {\r\n beforeWidth = getPseudoElementWidth(p.list || el, '::before', true, true, true);\r\n }\r\n\r\n let afterStyle = getComputedStyle(p.list || el, '::after');\r\n if (afterStyle.content &&\r\n afterStyle.content !== 'none' &&\r\n afterStyle.position !== 'absolute' &&\r\n afterStyle.float !== 'none') {\r\n afterWidth = getPseudoElementWidth(p.list || el, '::after', true, true, true);\r\n }\r\n\r\n let contentWidth = getElementWidth(p.list || el); // calculate width\r\n contentWidth -= beforeWidth + afterWidth;\r\n\r\n input.style.width = `${contentWidth}px`;\r\n\r\n hasResize = true; // We may want to track the resize here better to avoid unnecessary event\r\n } else {\r\n // Introduce backbuffer to DOM\r\n setCssProps(backBufferEl, getCssProps(input, inputBackbufferCssProps));\r\n backBufferEl.textContent = inputValue;\r\n el.appendChild(backBufferEl);\r\n\r\n // Measure these\r\n const computedStyle = getComputedStyle(input);\r\n const paddingTotal = (parseFloat(computedStyle.paddingLeft) || 0) + (parseFloat(computedStyle.paddingRight) || 0);\r\n const minWidth = (parseFloat(computedStyle['font-size']) || 0) * 0.75 + paddingTotal;\r\n const backBufferWidth = getElementWidth(backBufferEl, true, true);\r\n const currentWidth = getElementWidth(input, true, true);\r\n let newWidth = Math.max(backBufferWidth, minWidth);\r\n\r\n // Compare\r\n if (newWidth !== currentWidth) {\r\n // Update if needed\r\n setElementWidth(input, newWidth, true, true);\r\n\r\n let bordersWidth = (parseFloat(computedStyle.borderLeftWidth) || 0) + (parseFloat(computedStyle.borderRightWidth) || 0);\r\n let scrollWidth = input.scrollWidth + bordersWidth;\r\n\r\n if (scrollWidth > newWidth) {\r\n // consider scrollWidth delta\r\n let delta = scrollWidth - newWidth;\r\n input.style.width = `${parseFloat(input.style.width) + delta}px`;\r\n\r\n newWidth += delta;\r\n }\r\n\r\n // sync the single value wrapper.\r\n // it is meant as a preview or spacer for single selection value, so its appropriate to sync it with this width\r\n if (p.singleWrapper) {\r\n p.singleWrapper.style.width = '';\r\n\r\n if (inputValue) {\r\n let width = newWidth - paddingTotal - bordersWidth;\r\n if (getElementWidth(p.singleWrapper, false, false) < width) {\r\n setElementWidth(p.singleWrapper, width, false, false);\r\n }\r\n }\r\n }\r\n\r\n hasResize = true;\r\n }\r\n\r\n // Remove backbuffer from DOM\r\n remove(backBufferEl);\r\n }\r\n\r\n if (hasResize)\r\n this._trigger('input:resize');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Update autocomplete position if needed\r\n * @returns {SelectBox}\r\n * @private\r\n */\r\n _repositionDropList() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!p.dropList || !p.dropListVisible || !p.dropList.isVisible())\r\n return this;\r\n\r\n const box = el.getBoundingClientRect();\r\n const serialized = box.left + ',' + box.top + ',' + box.right + ',' + box.bottom;\r\n\r\n if (p.dropList._lastSerializedBox !== serialized) {\r\n p.dropList.relayout(this._getDropListPositionOptions());\r\n p.dropList._lastSerializedBox = serialized;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {KeyboardEvent} event\r\n * @private\r\n */\r\n _handleInputKeydown(event) {\r\n const p = this._p;\r\n\r\n const target = (/**@type HTMLInputElement*/event.target);\r\n\r\n if (event.key === VALUE_BACK_SPACE && event.ctrlKey && target.value.length === 0) {\r\n this.clear();\r\n\r\n event.preventDefault();\r\n } else if (event.key === VALUE_BACK_SPACE && target.value.length === 0) {\r\n const itemEl = p.multiItemEls[p.multiItemEls.length - 1];\r\n if (!itemEl || itemEl[ItemSymbol].value === undefined)\r\n return;\r\n\r\n const item = itemEl[ItemSymbol], value = item[p.valueProp];\r\n\r\n let removeselEvt = { value: value, item: item, cancel: false };\r\n this._trigger('removesel:before', removeselEvt);\r\n if (removeselEvt.cancel)\r\n return;\r\n\r\n this._removeMultiItem(item, true);\r\n\r\n // trigger event\r\n this._trigger('removesel', { value: value, item: item });\r\n\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * @param {KeyboardEvent} event\r\n * @private\r\n */\r\n _handleMultiKeydown(event) {\r\n const p = this._p;\r\n\r\n if (p.disabled) return;\r\n\r\n const isRtl = getComputedStyle(p.el).direction === 'rtl';\r\n\r\n let nextFocus;\r\n\r\n if (event.key === (isRtl ? VALUE_LEFT : VALUE_RIGHT)) { // Next arrow\r\n nextFocus = next(/**@type Element*/event.target, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n if (hasClass(nextFocus, `${p.baseClassName}__search_wrapper`)) {\r\n nextFocus = nextFocus.querySelector('input');\r\n }\r\n nextFocus && nextFocus.focus();\r\n\r\n event.preventDefault();\r\n } else if (event.key === (isRtl ? VALUE_RIGHT : VALUE_LEFT)) { // Prev arrow\r\n nextFocus = prev(/**@type Element*/event.target, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n if (hasClass(nextFocus, `${p.baseClassName}__search_wrapper`)) {\r\n nextFocus = nextFocus.querySelector('input');\r\n }\r\n nextFocus && nextFocus.focus();\r\n\r\n event.preventDefault();\r\n } else if (event.key === VALUE_BACK_SPACE && event.ctrlKey) { // Ctrl + Backspace\r\n const multiItemEls = [];\r\n let itemEl = event.target;\r\n while (itemEl) {\r\n multiItemEls.push(itemEl);\r\n itemEl = prev(/**@type Element*/itemEl, `.${p.baseClassName}__item`);\r\n }\r\n\r\n while (multiItemEls.length) {\r\n this._removeMultiItemFromEvent(multiItemEls.shift(), event);\r\n }\r\n\r\n event.preventDefault();\r\n } else if (event.key === VALUE_DELETE || event.key === VALUE_BACK_SPACE) { // Delete / Backspace\r\n this._removeMultiItemFromEvent(closestUntil(event.target, `.${p.baseClassName}__item`, p.el), event);\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * @returns {DropList.PositionOptions}\r\n * @private\r\n */\r\n _getDropListPositionOptions() {\r\n const p = this._p;\r\n\r\n return {\r\n target: /**@type Element*/p.el,\r\n offset: { x: 0, y: 0 },\r\n anchor: { x: 'start', y: 'bottom' },\r\n position: { x: 'start', y: 'top' },\r\n updateWidth: true,\r\n };\r\n }\r\n\r\n /** @private */\r\n _startTrackingPresence() {\r\n const p = this._p;\r\n\r\n this._stopTrackingPresence();\r\n\r\n p.presenceInt = setInterval(function () {\r\n if (getRootNode(p.el) !== document)\r\n this.hide();\r\n }, 200);\r\n }\r\n\r\n /** @private */\r\n _stopTrackingPresence() {\r\n const p = this._p;\r\n\r\n if (p.presenceInt) {\r\n clearInterval(p.presenceInt);\r\n p.presenceInt = null;\r\n }\r\n }\r\n\r\n /**\r\n * Handles sorting, and putting checked items first (according to selectedValues, not item.checked)\r\n * @private\r\n * @param {DropList.ItemBase[]} items\r\n * @param {boolean=false} sort\r\n * @param {boolean=false} sortCheckedFirst\r\n * @param {boolean=false} splitCheckedGroups\r\n * @returns {DropList.ItemBase[]}\r\n */\r\n _sortItems(items, sort, sortCheckedFirst, splitCheckedGroups) {\r\n const p = this._p;\r\n\r\n if (!sort && !sortCheckedFirst)\r\n return items; // Nothing to do\r\n\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp,\r\n valueProp = p.valueProp,\r\n stickyValues = p.stickyValues,\r\n comparator = p.sortItemComparator || ((a, b) => {\r\n if (stickyValues !== null) {\r\n let sa = stickyValues.has(a[valueProp]);\r\n let sb = stickyValues.has(b[valueProp]);\r\n if (sa && !sb) return -1;\r\n if (!sa && sb) return 1;\r\n }\r\n\r\n const aLabel = a[labelProp] || a[multiItemLabelProp];\r\n const bLabel = b[labelProp] || b[multiItemLabelProp];\r\n\r\n if (aLabel < bLabel) return -1;\r\n if (aLabel > bLabel) return 1;\r\n\r\n return 0;\r\n });\r\n\r\n let group = [], stickyGroup = null;\r\n let groups = [group];\r\n const selectedValuesSet = new Set(p.selectedValues);\r\n let item, i, len;\r\n\r\n // Split to groups\r\n for (i = 0, len = items.length; i < len; i++) {\r\n item = items[i];\r\n if (item._group && group.length) {\r\n group = [];\r\n groups.push(group);\r\n }\r\n group.push(item);\r\n }\r\n\r\n // Leftover\r\n if (!group.length) {\r\n groups.length = 0;\r\n }\r\n\r\n // Non-grouped sticky should be first\r\n if (stickyValues && items.length > 0 && !items[0]._group) {\r\n stickyGroup = groups[0].filter(x => stickyValues.has(x[valueProp]));\r\n if (stickyGroup.length > 0) {\r\n groups[0] = groups[0].filter(x => !stickyValues.has(x[valueProp]));\r\n }\r\n }\r\n\r\n if (sort) {\r\n // Sort the groups\r\n groups.sort((a, b) => {\r\n a = a[0];\r\n b = b[0];\r\n\r\n if (stickyValues !== null) {\r\n let sa = stickyValues.has(a[valueProp]);\r\n let sb = stickyValues.has(b[valueProp]);\r\n if (sa && !sb) return -1;\r\n if (!sa && sb) return 1;\r\n }\r\n\r\n // A \"group\" without a group item will come first\r\n if (!a._group && b._group) return -1;\r\n if (a._group && !b._group) return 1;\r\n\r\n return comparator(a, b);\r\n });\r\n }\r\n\r\n if (stickyGroup && stickyGroup.length > 0) {\r\n groups.unshift(stickyGroup);\r\n }\r\n\r\n // Now we have an array of groups, possibly sorted.\r\n // Each group is an array that begins with the group item (group name/id).\r\n // A group could possible start with a normal item, if it's a \"default group\", which had no group item.\r\n\r\n const checkedGroups = [], uncheckedGroups = [];\r\n\r\n // Iterate groups\r\n for (let g = 0, glen = groups.length; g < glen; g++) {\r\n group = groups[g];\r\n\r\n // Sort each group\r\n group.sort((a, b) => {\r\n\r\n // Grouping items come first\r\n if (a._group && !b._group) return -1;\r\n if (!a._group && b._group) return 1;\r\n\r\n if (sortCheckedFirst) {\r\n const aChecked = selectedValuesSet.has(a[valueProp]);\r\n const bChecked = selectedValuesSet.has(b[valueProp]);\r\n\r\n if (aChecked && !bChecked) return -1;\r\n if (!aChecked && bChecked) return 1;\r\n }\r\n\r\n if (sort) {\r\n return comparator(a, b);\r\n }\r\n\r\n return 0;\r\n });\r\n\r\n uncheckedGroups.push(group);\r\n }\r\n\r\n if (sortCheckedFirst && splitCheckedGroups) {\r\n\r\n let virtualGroup;\r\n\r\n // Iterate groups\r\n for (let g = 0, glen = groups.length; g < glen; g++) {\r\n group = groups[g];\r\n\r\n if (group === stickyGroup) {\r\n checkedGroups.push(stickyGroup);\r\n let sgi = uncheckedGroups.indexOf(stickyGroup);\r\n if (sgi !== -1) {\r\n uncheckedGroups.splice(sgi, 1);\r\n }\r\n continue;\r\n }\r\n\r\n virtualGroup = null;\r\n\r\n for (let gi = 0, gilen = group.length; gi < gilen; gi++) {\r\n item = group[gi];\r\n if (item._group) continue;\r\n if (!selectedValuesSet.has(item[p.valueProp])) break;\r\n\r\n if (!virtualGroup) {\r\n virtualGroup = [];\r\n if (group[0]._group) {\r\n virtualGroup.push(group[0]);\r\n }\r\n }\r\n\r\n virtualGroup.push(item);\r\n group.splice(gi--, 1);\r\n gilen--;\r\n }\r\n\r\n if (virtualGroup) {\r\n checkedGroups.push(virtualGroup);\r\n if (group.length === 0 || (group.length === 1 && group[0]._group)) {\r\n groups.splice(g--, 1);\r\n glen--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Prepare the target array\r\n const joined = [];\r\n joined.length = items.length;\r\n let itemIndex = 0;\r\n\r\n groups = checkedGroups.length ?\r\n checkedGroups.concat(uncheckedGroups) : // Concat both lists\r\n uncheckedGroups; // No need for concat\r\n\r\n for (let g = 0, glen = groups.length; g < glen; g++) {\r\n group = groups[g];\r\n\r\n for (i = 0, len = group.length; i < len; i++) {\r\n joined[itemIndex++] = group[i];\r\n }\r\n }\r\n\r\n return joined;\r\n }\r\n}\r\n\r\nexport default SelectBox;\r\n"],"names":["global","fails","require$$0","call","$propertyIsEnumerable","getOwnPropertyDescriptor","createPropertyDescriptor","FunctionPrototype","bind","uncurryThis","toString","stringSlice","classofRaw","require$$1","require$$2","classof","require$$3","Object","TypeError","requireObjectCoercible","IndexedObject","toIndexedObject","isCallable","isObject","getBuiltIn","userAgent","V8_VERSION","NATIVE_SYMBOL","isPrototypeOf","USE_SYMBOL_AS_UID","require$$4","isSymbol","String","tryToString","aCallable","getMethod","ordinaryToPrimitive","defineProperty","setGlobal","store","IS_PURE","sharedModule","toObject","hasOwnProperty","id","uid","shared","hasOwn","require$$5","WellKnownSymbolsStore","Symbol","wellKnownSymbol","require$$6","TO_PRIMITIVE","toPrimitive","toPropertyKey","document","EXISTS","documentCreateElement","DESCRIPTORS","propertyIsEnumerableModule","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","anObject","$defineProperty","definePropertyModule","createNonEnumerableProperty","inspectSource","WeakMap","keys","sharedKey","hiddenKeys","require$$8","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","getInternalState","enforceInternalState","redefineModule","floor","toIntegerOrInfinity","max","min","toAbsoluteIndex","toLength","lengthOfArrayLike","createMethod","indexOf","push","enumBugKeys","internalObjectKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","concat","ownKeys","getOwnPropertyDescriptorModule","copyConstructorProperties","isForced","redefine","apply","isArray","TO_STRING_TAG","test","TO_STRING_TAG_SUPPORT","objectKeys","html","PROTOTYPE","IE_PROTO","arraySlice","$getOwnPropertyNames","path","wrappedWellKnownSymbolModule","defineWellKnownSymbol","setToStringTag","exec","isConstructor","SPECIES","Array","arraySpeciesConstructor","arraySpeciesCreate","$","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","$toString","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","require$$35","require$$36","require$$37","require$$38","require$$39","require$$40","require$$41","setInternalState","ObjectPrototype","SymbolPrototype","replace","createProperty","arrayMethodHasSpeciesSupport","MAX_SAFE_INTEGER","FORCED","arrayMethodIsStrict","STRICT_METHOD","iteratorClose","callWithSafeIterationClosing","Iterators","ITERATOR","ArrayPrototype","isArrayIteratorMethod","getIteratorMethod","getIterator","checkCorrectnessOfIteration","charAt","create","getPrototypeOf","BUGGY_SAFARI_ITERATORS","IteratorPrototype","returnThis","createIteratorConstructor","aPossiblePrototype","setPrototypeOf","PROPER_FUNCTION_NAME","defineIterator","MATCH","isRegExp","HAS_SPECIES_SUPPORT","addToUnscopables","SKIPS_HOLES","inheritIfRequired","regexpFlags","$RegExp","setSpecies","regExpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","RegExpPrototype","getFlags","stringIndexOf","UNSUPPORTED_Y","regexpExec","advanceStringIndex","getSubstitution","value","ItemSymbol","DestroyedSymbol","GhostSymbol","prototype","defaultOptions","baseClassName","itemBlurDelay","capturesFocus","multi","keyDownHandler","autoCheckGroupChildren","useExactTargetWidth","constrainToWindow","autoFlipDirection","estimateWidth","virtualMinItems","labelProp","valueProp","on","DropList","options","o","entries","key","undefined","p","_p","ownsEl","elOriginalDisplay","additionalClasses","renderItem","unrenderItem","silenceEvents","mitt","focusItemIndex","focusItemEl","sink","DomEventsSink","classes","initialCss","top","el","Element","style","display","classList","add","role","setCssProps","createElement","class","join","css","items","groupCount","mouseHandled","virtualListHelper","VirtualListHelper","list","virtual","buffer","estimatedItemHeight","itemElementCreatorFn","tabIndex","onItemRender","itemEl","index","item","lastMeasureLongestLabelText","setAttribute","console","warn","className","_nocheck","_checked","_group","_child","_nointeraction","_renderItemContent","fn","setOnItemUnrender","err","error","_hookMouseEvents","_hookTouchEvents","_hookFocusEvents","_hookKeyEvents","clearTimeout","blurTimer","filterTimer","remove","destroy","from","name","startsWith","removeAttribute","lastPositionTarget","_syncBaseClasses","prop","hasFocusedItem","_trigger","event","_move","toggleClass","_updateGroupStateForItem","closestUntil","target","getItemIndexFromElement","_setSingleSelectedItemEl","atIndex","addItems","itemsToAdd","isMulti","length","_determineVirtualMode","i","count","oitem","splice","addItemsAt","render","newItem","itemIndex","itemIndexByValue","itemAtIndex","isItemRendered","refreshItemAt","label","itemIndexByValueOrLabel","spliced","removeItemsAt","setCount","slice","positionOptions","isVisible","w","window","targetBox","offset","targetOffset","getElementOffset","left","height","targetHeight","getElementHeight","width","targetWidth","getElementWidth","bottom","viewport","pageYOffset","pageXOffset","innerWidth","innerHeight","right","defaultVerticalDirection","position","y","isVirtual","_measureItem","updateWidth","_updateWidth","roomAbove","roomBelow","maxViewHeight","elComputedStyle","getComputedStyle","isBoxing","boxSizing","verticalPadding","parseFloat","paddingTop","paddingBottom","verticalBorderWidth","borderTopWidth","borderBottomWidth","estimateFullHeight","Math","scrollHeight","maxHeight","isNaN","enoughRoomAbove","enoughRoomBelow","newDirection","currentDirection","viewSize","isTargetRtl","targetRtl","direction","isRtlDocument","documentElement","anchor","anchoredPosition","x","invertYPos","specY","scrollLeft","body","parentNode","abs","scrollWidth","clientWidth","minX","maxX","viewCss","rtl","specX","which","setElementHeight","checked","li","getItemElementAt","values","groupIndexes","_updateGroupCheckedState","excludeGroups","hiding","setTimeout","onDocumentMouseDown","contains","_delayBlur","appendChild","visible","originalMaxHeight","clientHeight","marginTop","marginBottom","relayout","maxTransitionDuration","parseTransition","transition","reduce","v","delay","duration","blurFocusedItem","scrollItemIndexIntoView","itemElement","_getItemIndex","setFocusedItemAtIndex","setSingleSelectedItemAtIndex","_hasScroll","scrollTop","itemPos","previousPos","getItemPosition","itemSize","getItemSize","listHeight","handler","wrapped","off","all","clear","emit","singleSelectedItemEl","data","_mouseHandled","triggerItemSelection","toggleFocusedItem","activeElement","currentTarget","preventDefault","button","_itemUpAction","_handleMouseOver","_focus","currentTouchId","changedTouches","identifier","didScroll","onScroll","onTouchCancel","elToTrackScroll","touch","find","firstChild","evt","_keydown","VALUE_PAGE_UP","VALUE_PAGE_DOWN","VALUE_HOME","VALUE_END","VALUE_UP","VALUE_DOWN","previousPage","nextPage","previous","next","VALUE_ENTER","VALUE_SPACE","VALUE_ESCAPE","hide","type","_keydownFreeType","character","fromCharCode","keyCode","keyword","previousFilter","regex","RegExp","escapeRegex","matchIndices","matchIndex","nextIndex","directionUp","isFirstItem","isLastItem","visibleItemCount","getVisibleItemCount","base","nextElementSibling","tagName","itemCount","startedAtIndex","groupIndex","affectedItems","len","nextEl","isCheckingGroup","fireEvents","groupItem","hasChecked","hasUnchecked","shouldCheckGroup","lastMeasureItemCount","longestLabel","lastMeasureLongestLabel","longestLabelText","text","createGhostItemElement","lastMeasureItemWidth","targetItemCount","shouldBeVirtual","setVirtual","textContent","insertBefore","autoWidth","newOuterWidth","setElementWidth","bordersWidth","borderLeftWidth","borderRightWidth","delta","fastKey","internalMetadataModule","iterate","anInstance","collection","redefineAll","collectionStrong","DOMTokenListPrototype","whitespaces","throttle","func","wait","timeout","context","args","result","later","leading","Date","now","throttled","remaining","arguments","trailing","cancel","isScheduled","NoResultsItemSymbol","RestMultiItemsSymbol","hasTouchCapability","DocumentTouch","navigator","maxTouchPoints","hasClass","inputBackbufferCssProps","disabled","clearable","hasOpenIndicator","placeholder","sortSelectedItems","sortListItems","sortListCheckedFirst","stickyValues","sortItemComparator","splitListCheckedGroups","blurOnSingleSelection","showSelection","multiPlaceholderFormatter","searchable","noResultsText","filterThrottleWindow","filterOnEmptyTerm","multiItemLabelProp","maxMultiItems","multiItemsRestLabelProvider","selectedValues","isLoadingMode","defaultMultiPlaceholderFormatter","title","SelectBox","listOptions","Set","renderSingleItem","unrenderSingleItem","renderMultiItem","unrenderMultiItem","renderRestMultiItem","unrenderRestMultiItem","renderNoResultsItem","unrenderNoResultsItem","filterFn","filteredItems","itemsChanged","resizeObserver","selectedItems","selectionChanged","resortBySelectionNeeded","throttledUpdateListItems","_updateListItems","filterTerm","setElementAttrs","_renderBase","multiItemEls","enable","_setupDropdownMenu","clearButtonWrapper","input","focus","selectionStart","selectionEnd","relatedTarget","field","querySelector","_handleInputKeydown","_resizeInput","focusInOutHandler","t","ResizeObserver","observe","setItems","setSelectedValues","setValue","_scheduleSync","syncTimeout","_stopTrackingPresence","dropList","_cleanupSingleWrapper","_removeMultiItemElementByIndex","singleWrapper","inputBackBuffer","openIndicator","disconnect","enabled","resetValues","getSelectedValues","term","mutated","getFilteredItemCount","existingItem","assign","updateItemByValue","performSearch","trim","sortCheckedFirst","comparator","formatter","unrender","setLabelProp","setValueProp","blur","clearEvt","_setInputText","set","has","_setSelectedItems","show","_getDropListPositionOptions","_repositionDropList","getFocusedItemIndex","open","shouldOpen","openList","closeList","dropListVisible","setIsLoadingMode","getIsLoadingMode","isListOpen","zIndex","whiteSpace","inputWrapper","autocomplete","autocorrect","autocapitalize","spellcheck","readOnly","_unregisterDropdownEvents","lastActiveElement","_removeMultiItemFromEvent","_handleMultiKeydown","_registerDropdownEvents","spinner","customRenderItem","customUnrenderItem","_startTrackingPresence","parent","offsetHeight","offsetWidth","selEvt","setItemChecked","idx","hasGroupSync","filter","selectEvt","avoidToggleFromClick","suppressKeyPress","suppressKeyPressRepeat","keyEventsTarget","_movePrev","_moveNext","lastKeyAllowsSpaceToggle","VALUE_TAB","toggleList","stopPropagation","isDisabled","tevt","isMultiEnabled","getSelectedItems","setSelectedItems","_refilterItems","_lastSerializedBox","_sortItems","removeAllItems","hasRefocusedItem","setCheckedValues","singleItemIndex","getValue","matcher","lastGroup","map","mode","syncQueue","queue","_performSync","op","_syncFull","_syncSingleItem","_syncPlaceholder","findIndex","_addMultiItemElement","_addMultiItemRestElement","childNodes","innerHTML","pop","createTextNode","_renderMultiItem","before","clearButton","append","_renderSingleItemContent","fullItemsRender","_syncClearButton","a","b","sa","sb","aLabel","bLabel","sort","actualItemCount","addRestItem","getRootNode","tabindex","_renderMultiItemContent","originatingEvent","nextFocus","kEvent","VALUE_DELETE","VALUE_BACK_SPACE","prev","itemsToRemove","removeselEvt","_removeMultiItem","populate","backBufferEl","inputValue","hasResize","beforeWidth","afterWidth","beforeStyle","content","float","getPseudoElementWidth","afterStyle","contentWidth","getCssProps","computedStyle","paddingTotal","paddingLeft","paddingRight","minWidth","backBufferWidth","currentWidth","newWidth","box","getBoundingClientRect","serialized","ctrlKey","isRtl","VALUE_LEFT","VALUE_RIGHT","shift","presenceInt","setInterval","clearInterval","splitCheckedGroups","group","stickyGroup","groups","selectedValuesSet","unshift","checkedGroups","uncheckedGroups","g","glen","aChecked","bChecked","virtualGroup","sgi","gi","gilen","joined"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"index.js","sources":["node_modules/core-js/internals/global.js","node_modules/core-js/internals/fails.js","node_modules/core-js/internals/descriptors.js","node_modules/core-js/internals/function-call.js","node_modules/core-js/internals/object-property-is-enumerable.js","node_modules/core-js/internals/create-property-descriptor.js","node_modules/core-js/internals/function-uncurry-this.js","node_modules/core-js/internals/classof-raw.js","node_modules/core-js/internals/indexed-object.js","node_modules/core-js/internals/require-object-coercible.js","node_modules/core-js/internals/to-indexed-object.js","node_modules/core-js/internals/is-callable.js","node_modules/core-js/internals/is-object.js","node_modules/core-js/internals/get-built-in.js","node_modules/core-js/internals/object-is-prototype-of.js","node_modules/core-js/internals/engine-user-agent.js","node_modules/core-js/internals/engine-v8-version.js","node_modules/core-js/internals/native-symbol.js","node_modules/core-js/internals/use-symbol-as-uid.js","node_modules/core-js/internals/is-symbol.js","node_modules/core-js/internals/try-to-string.js","node_modules/core-js/internals/a-callable.js","node_modules/core-js/internals/get-method.js","node_modules/core-js/internals/ordinary-to-primitive.js","node_modules/core-js/internals/is-pure.js","node_modules/core-js/internals/set-global.js","node_modules/core-js/internals/shared-store.js","node_modules/core-js/internals/shared.js","node_modules/core-js/internals/to-object.js","node_modules/core-js/internals/has-own-property.js","node_modules/core-js/internals/uid.js","node_modules/core-js/internals/well-known-symbol.js","node_modules/core-js/internals/to-primitive.js","node_modules/core-js/internals/to-property-key.js","node_modules/core-js/internals/document-create-element.js","node_modules/core-js/internals/ie8-dom-define.js","node_modules/core-js/internals/object-get-own-property-descriptor.js","node_modules/core-js/internals/an-object.js","node_modules/core-js/internals/object-define-property.js","node_modules/core-js/internals/create-non-enumerable-property.js","node_modules/core-js/internals/inspect-source.js","node_modules/core-js/internals/native-weak-map.js","node_modules/core-js/internals/shared-key.js","node_modules/core-js/internals/hidden-keys.js","node_modules/core-js/internals/internal-state.js","node_modules/core-js/internals/function-name.js","node_modules/core-js/internals/redefine.js","node_modules/core-js/internals/to-integer-or-infinity.js","node_modules/core-js/internals/to-absolute-index.js","node_modules/core-js/internals/to-length.js","node_modules/core-js/internals/length-of-array-like.js","node_modules/core-js/internals/array-includes.js","node_modules/core-js/internals/object-keys-internal.js","node_modules/core-js/internals/enum-bug-keys.js","node_modules/core-js/internals/object-get-own-property-names.js","node_modules/core-js/internals/object-get-own-property-symbols.js","node_modules/core-js/internals/own-keys.js","node_modules/core-js/internals/copy-constructor-properties.js","node_modules/core-js/internals/is-forced.js","node_modules/core-js/internals/export.js","node_modules/core-js/internals/function-apply.js","node_modules/core-js/internals/is-array.js","node_modules/core-js/internals/to-string-tag-support.js","node_modules/core-js/internals/classof.js","node_modules/core-js/internals/to-string.js","node_modules/core-js/internals/object-keys.js","node_modules/core-js/internals/object-define-properties.js","node_modules/core-js/internals/html.js","node_modules/core-js/internals/object-create.js","node_modules/core-js/internals/array-slice.js","node_modules/core-js/internals/object-get-own-property-names-external.js","node_modules/core-js/internals/well-known-symbol-wrapped.js","node_modules/core-js/internals/path.js","node_modules/core-js/internals/define-well-known-symbol.js","node_modules/core-js/internals/set-to-string-tag.js","node_modules/core-js/internals/function-bind-context.js","node_modules/core-js/internals/is-constructor.js","node_modules/core-js/internals/array-species-constructor.js","node_modules/core-js/internals/array-species-create.js","node_modules/core-js/internals/array-iteration.js","node_modules/core-js/modules/es.symbol.js","node_modules/core-js/modules/es.symbol.description.js","node_modules/core-js/internals/object-to-string.js","node_modules/core-js/modules/es.object.to-string.js","node_modules/core-js/internals/object-to-array.js","node_modules/core-js/modules/es.object.entries.js","node_modules/core-js/internals/create-property.js","node_modules/core-js/internals/array-method-has-species-support.js","node_modules/core-js/modules/es.array.concat.js","node_modules/core-js/internals/array-method-is-strict.js","node_modules/core-js/modules/es.array.join.js","node_modules/core-js/internals/iterator-close.js","node_modules/core-js/internals/call-with-safe-iteration-closing.js","node_modules/core-js/internals/iterators.js","node_modules/core-js/internals/is-array-iterator-method.js","node_modules/core-js/internals/get-iterator-method.js","node_modules/core-js/internals/get-iterator.js","node_modules/core-js/internals/array-from.js","node_modules/core-js/internals/check-correctness-of-iteration.js","node_modules/core-js/modules/es.array.from.js","node_modules/core-js/internals/string-multibyte.js","node_modules/core-js/internals/correct-prototype-getter.js","node_modules/core-js/internals/object-get-prototype-of.js","node_modules/core-js/internals/iterators-core.js","node_modules/core-js/internals/create-iterator-constructor.js","node_modules/core-js/internals/a-possible-prototype.js","node_modules/core-js/internals/object-set-prototype-of.js","node_modules/core-js/internals/define-iterator.js","node_modules/core-js/modules/es.string.iterator.js","node_modules/core-js/internals/is-regexp.js","node_modules/core-js/internals/not-a-regexp.js","node_modules/core-js/internals/correct-is-regexp-logic.js","node_modules/core-js/modules/es.string.starts-with.js","node_modules/core-js/modules/es.array.splice.js","node_modules/core-js/modules/es.array.map.js","node_modules/core-js/internals/create-html.js","node_modules/core-js/internals/string-html-forced.js","node_modules/core-js/modules/es.string.anchor.js","node_modules/core-js/internals/add-to-unscopables.js","node_modules/core-js/modules/es.array.find.js","node_modules/core-js/internals/inherit-if-required.js","node_modules/core-js/internals/regexp-flags.js","node_modules/core-js/internals/regexp-sticky-helpers.js","node_modules/core-js/internals/set-species.js","node_modules/core-js/internals/regexp-unsupported-dot-all.js","node_modules/core-js/internals/regexp-unsupported-ncg.js","node_modules/core-js/modules/es.regexp.constructor.js","node_modules/core-js/internals/regexp-exec.js","node_modules/core-js/modules/es.regexp.exec.js","node_modules/core-js/modules/es.regexp.to-string.js","node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","node_modules/core-js/internals/advance-string-index.js","node_modules/core-js/internals/get-substitution.js","node_modules/core-js/internals/regexp-exec-abstract.js","node_modules/core-js/modules/es.string.replace.js","lib/utils/escapeRegex.js","lib/DropList.js","node_modules/core-js/modules/es.array.iterator.js","node_modules/core-js/internals/array-buffer-non-extensible.js","node_modules/core-js/internals/object-is-extensible.js","node_modules/core-js/internals/freezing.js","node_modules/core-js/internals/internal-metadata.js","node_modules/core-js/internals/iterate.js","node_modules/core-js/internals/an-instance.js","node_modules/core-js/internals/collection.js","node_modules/core-js/internals/redefine-all.js","node_modules/core-js/internals/collection-strong.js","node_modules/core-js/modules/es.set.js","node_modules/core-js/internals/dom-iterables.js","node_modules/core-js/internals/dom-token-list-prototype.js","node_modules/core-js/modules/web.dom-collections.iterator.js","node_modules/core-js/modules/es.array.slice.js","node_modules/core-js/internals/object-assign.js","node_modules/core-js/modules/es.object.assign.js","node_modules/core-js/internals/whitespaces.js","node_modules/core-js/internals/string-trim.js","node_modules/core-js/internals/string-trim-forced.js","node_modules/core-js/modules/es.string.trim.js","node_modules/core-js/modules/es.array.filter.js","node_modules/core-js/modules/es.array.find-index.js","node_modules/core-js/internals/array-sort.js","node_modules/core-js/internals/engine-ff-version.js","node_modules/core-js/internals/engine-is-ie-or-edge.js","node_modules/core-js/internals/engine-webkit-version.js","node_modules/core-js/modules/es.array.sort.js","lib/utils/throttle.js","lib/SelectBox.js"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\n\nmodule.exports = bind ? function (fn) {\n return fn && callBind(call, fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = false;\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.19.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !hasOwn(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function (argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function (argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n // we can't check .prototype since constructors produced by .bind haven't it\n } return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n};\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar arraySlice = require('../internals/array-slice');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n redefine(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!SymbolPrototype[TO_PRIMITIVE]) {\n var valueOf = SymbolPrototype.valueOf;\n // eslint-disable-next-line no-unused-vars -- required for .length\n redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n // TODO: improve hint logic\n return call(valueOf, this);\n });\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\nvar TypeError = global.TypeError;\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar un$StartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return un$StartsWith\n ? un$StartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar TypeError = global.TypeError;\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '&quot;') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nexports.UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar regExpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar getFlags = uncurryThis(regExpFlags);\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (UNSUPPORTED_Y && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxy(keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n // eslint-disable-next-line max-statements -- TODO\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar TypeError = global.TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","export default value => value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\r\n","import escapeRegex from './utils/escapeRegex';\r\nimport {\r\n closestUntil,\r\n createElement,\r\n} from '@danielgindi/dom-utils/lib/Dom';\r\nimport {\r\n remove,\r\n toggleClass,\r\n} from '@danielgindi/dom-utils/lib/DomCompat';\r\nimport {\r\n setCssProps,\r\n getElementHeight,\r\n getElementWidth,\r\n setElementHeight,\r\n setElementWidth, getElementOffset, anchoredPosition,\r\n parseTransition,\r\n} from '@danielgindi/dom-utils/lib/Css';\r\nimport DomEventsSink from '@danielgindi/dom-utils/lib/DomEventsSink';\r\nimport VirtualListHelper from '@danielgindi/virtual-list-helper';\r\nimport {\r\n VALUE_DOWN,\r\n VALUE_END,\r\n VALUE_ENTER, VALUE_ESCAPE,\r\n VALUE_HOME,\r\n VALUE_PAGE_DOWN,\r\n VALUE_PAGE_UP,\r\n VALUE_SPACE,\r\n VALUE_UP,\r\n} from 'keycode-js';\r\nimport mitt from 'mitt';\r\n\r\nconst ItemSymbol = Symbol('item');\r\nconst DestroyedSymbol = Symbol('destroyed');\r\nconst GhostSymbol = Symbol('ghost');\r\n\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\n/**\r\n * @typedef {Object} DropList.Options\r\n * @property {Element} [el] An element to attach to, instead of creating a new one\r\n * @property {string} [baseClassName='droplist'] class name for the menu root element\r\n * @property {string|string[]} [additionalClasses]\r\n * @property {number} [itemBlurDelay=300] How long to wait before deciding to blur the focused item?\r\n * @property {boolean} [capturesFocus=true] Should this DropList be added to the TAB-key stack?\r\n * @property {boolean} [multi=false] Does this DropList show checkboxes for multiple item selection?\r\n * @property {function} [keyDownHandler=null] An alternative \"keydown\" event handler. Return true to prevent default behaviour.\r\n * @property {boolean} [autoCheckGroupChildren=true] When a group is checked/unchecked - all items beneath it will update accordingly\r\n * @property {boolean} [useExactTargetWidth=false] Use the exact target's width, do not allow growing\r\n * @property {boolean} [constrainToWindow=true] Should the position be constrained to the window, attaching to window's borders if needed?\r\n * @property {Boolean} [autoFlipDirection=true] Should the position/anchor be flipped automatically when there's no space in the required direction?\r\n * @property {number} [estimatedItemHeight=20] An estimated row height, for approximating scroll height.\r\n * @property {boolean} [estimateWidth=false] Use an estimation for the width instead of measuring. May be faster - needs testing and may depend on the CSS.\r\n * @property {number} [virtualMinItems=100] Turns into a virtual list - with items being created and showing up on viewport only. The value specified the minimum item count where a virtual list will be created.\r\n * @property {string} [labelProp='label']\r\n * @property {string} [valueProp='value']\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderItem] Function to call when rendering an item element\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderItem] Function to call when rendering an item element\r\n * @property {function(name: string, data: *)} [on]\r\n * */\r\n/** */\r\n\r\n/**\r\n * @typedef {Object} DropList.PositionAnchor\r\n * @property {'left'|'center'|'right'|'start'|'end'|string|number} x - horizontal anchor specification (could be either `'left'|'center'|'right'|'start'|'end'` or a percentage `'50%'` or a fixed decimal `Number`)\r\n * @property {'top'|'center'|'bottom'|string|number} y - vertical anchor specification (could be either `'top'|'center'|'bottom'` or a percentage `'50%'` or a fixed decimal `Number`)\r\n * */\r\n/** */\r\n\r\n/**\r\n * @typedef {Object} DropList.PositionOptions\r\n * @property {Element} [target] Target element to act as anchor\r\n * @property {{left: number, top: number}} [targetOffset=undefined] Override the offset of target. Automatically calculated if unspecified.\r\n * @property {number} [targetHeight=undefined] Override height of the target\r\n * @property {number} [targetWidth=undefined] Override width of the target\r\n * @property {DropList.PositionAnchor} [position=undefined]\r\n * @property {DropList.PositionAnchor} [anchor=undefined]\r\n * @property {boolean} [updateWidth=false] Should update the width of the menu according to target\r\n * @property {string} [targetRtl=undefined] Override for rtl mode of the target\r\n * @property {{x: number, y: number}} [offset=undefined] Extra rtl-aware offset to the target\r\n * */\r\n/** */\r\n\r\n/**\r\n * @typedef {Object} DropList.ItemBase\r\n * @property {string} [value]\r\n * @property {string} [label]\r\n * @property {boolean} [_group=false]\r\n * @property {boolean} [_child=false]\r\n * @property {boolean} [_nocheck=false]\r\n * @property {boolean} [_nointeraction=false]\r\n * */\r\n\r\n/**\r\n * @typedef {DropList.ItemBase} DropList.Item\r\n * @property {boolean} [_checked=false]\r\n * */\r\n/** */\r\n\r\n/** @type {DropList.Options} */\r\nlet defaultOptions = {\r\n baseClassName: 'droplist',\r\n\r\n itemBlurDelay: 300,\r\n capturesFocus: true,\r\n multi: false,\r\n keyDownHandler: null,\r\n autoCheckGroupChildren: true,\r\n useExactTargetWidth: false,\r\n\r\n constrainToWindow: true,\r\n autoFlipDirection: true,\r\n\r\n estimateWidth: false,\r\n virtualMinItems: 100,\r\n\r\n labelProp: 'label',\r\n valueProp: 'value',\r\n\r\n on: null,\r\n};\r\n\r\n/*\r\nEmits the following events:\r\n---------------------------\r\n\r\n'itemfocus' {value, item, event}: item gained focus.\r\n'itemblur' {value, item}: item lost focus.\r\n'select' {value, item}: item was selected (in single mode).\r\n'show:before': the drop list will show.\r\n'show': the drop list has been shown.\r\n'hide:before': the drop list will hide.\r\n'hide': the drop list was hidden.\r\n'hide:after': emitted after the hide css transition has ended, or immediately after 'hide'.\r\n'check' {value, item, checked: boolean, isGroup: boolean, isCheckingGroup: boolean}: item was selected (in multi mode).\r\n'groupcheck' {value, item, affectedItems}: item was selected (in multi mode).\r\n */\r\n\r\n// noinspection JSUnusedGlobalSymbols\r\nclass DropList {\r\n\r\n /**\r\n * @param {DropList.Options} options\r\n */\r\n constructor(options) {\r\n const o = { ...defaultOptions };\r\n\r\n for (let [key, value] of Object.entries(/**@type Object*/options))\r\n if (value !== undefined)\r\n o[key] = value;\r\n\r\n const p = this._p = {\r\n ownsEl: true,\r\n elOriginalDisplay: '',\r\n\r\n baseClassName: o.baseClassName,\r\n additionalClasses: o.additionalClasses,\r\n itemBlurDelay: o.itemBlurDelay,\r\n capturesFocus: o.capturesFocus,\r\n multi: o.multi,\r\n keyDownHandler: o.keyDownHandler,\r\n autoCheckGroupChildren: o.autoCheckGroupChildren,\r\n useExactTargetWidth: o.useExactTargetWidth,\r\n constrainToWindow: o.constrainToWindow,\r\n autoFlipDirection: o.autoFlipDirection,\r\n estimateWidth: o.estimateWidth,\r\n virtualMinItems: o.virtualMinItems,\r\n labelProp: o.labelProp,\r\n valueProp: o.valueProp,\r\n renderItem: o.renderItem,\r\n unrenderItem: o.unrenderItem,\r\n on: o.on || null,\r\n silenceEvents: true,\r\n mitt: mitt(),\r\n\r\n focusItemIndex: -1,\r\n focusItemEl: null,\r\n\r\n sink: new DomEventsSink(),\r\n };\r\n\r\n let classes = [p.baseClassName];\r\n\r\n if (p.additionalClasses) {\r\n classes = classes.concat(p.additionalClasses);\r\n }\r\n\r\n const initialCss = {\r\n // make initial position not interfere with layout so it can be correctly calculated\r\n top: '-9999px',\r\n };\r\n\r\n let el = o.el;\r\n if (el instanceof Element) {\r\n p.elOriginalDisplay = el.style.display || '';\r\n el.classList.add(...classes);\r\n el.role = 'menu';\r\n setCssProps(/**@type ElementCSSInlineStyle*/el, initialCss);\r\n p.ownsEl = false;\r\n } else {\r\n el = createElement('ul', {\r\n class: classes.join(' '),\r\n role: 'menu',\r\n css: initialCss,\r\n });\r\n }\r\n\r\n p.el = el;\r\n\r\n p.items = [];\r\n\r\n p.groupCount = 0; // This will keep state of how many `group` items we have\r\n\r\n p.mouseHandled = false;\r\n\r\n p.virtualListHelper = new VirtualListHelper({\r\n list: p.el,\r\n virtual: true,\r\n buffer: 5,\r\n estimatedItemHeight: o.estimatedItemHeight || 20,\r\n itemElementCreatorFn: () => {\r\n return createElement('li',\r\n {\r\n role: 'menuitem',\r\n tabIndex: p.capturesFocus ? -1 : null,\r\n },\r\n );\r\n },\r\n onItemRender: (itemEl, index) => {\r\n let item;\r\n\r\n if ((/**@type any*/index) === GhostSymbol) {\r\n item = {\r\n label: p.lastMeasureLongestLabelText,\r\n value: 'Measure',\r\n\r\n [ItemSymbol]: {\r\n [p.labelProp]: p.lastMeasureLongestLabelText,\r\n [p.valueProp]: 'Measure',\r\n },\r\n };\r\n itemEl.setAttribute('aria-hidden', 'true');\r\n } else {\r\n item = p.items[index];\r\n }\r\n\r\n if (!item) {\r\n // eslint-disable-next-line no-console\r\n console.warn('onItemRender called for (' + index + ') which has no item');\r\n }\r\n\r\n itemEl.className = `${p.baseClassName}__item`;\r\n\r\n const classList = itemEl.classList;\r\n\r\n if (p.multi) {\r\n if (item._nocheck) {\r\n classList.add(`${p.baseClassName}__item_multi_nocheck`);\r\n } else {\r\n classList.add(`${p.baseClassName}__item_multi`);\r\n\r\n if (item._checked) {\r\n classList.add(`${p.baseClassName}__item_checked`);\r\n }\r\n }\r\n } else {\r\n classList.add(`${p.baseClassName}__item_single`);\r\n }\r\n\r\n if (item._group)\r\n classList.add(`${p.baseClassName}__item_group`);\r\n\r\n if (item._child)\r\n classList.add(`${p.baseClassName}__item_child`);\r\n\r\n if (item._nointeraction)\r\n classList.add(`${p.baseClassName}__item_nointeraction`);\r\n\r\n if (p.focusItemIndex === index) {\r\n p.focusItemEl = itemEl;\r\n classList.add(`${p.baseClassName}__item_focus`);\r\n }\r\n\r\n this._renderItemContent(item, itemEl);\r\n\r\n itemEl[ItemSymbol] = item;\r\n },\r\n });\r\n\r\n if (typeof p.unrenderItem === 'function') {\r\n const fn = p.unrenderItem;\r\n p.virtualListHelper.setOnItemUnrender(el => {\r\n try {\r\n fn(el[ItemSymbol][ItemSymbol], el);\r\n } catch (err) { console.error(err); } // eslint-disable-line no-console\r\n delete el[ItemSymbol];\r\n\r\n if (p.focusItemEl === el)\r\n p.focusItemEl = null;\r\n });\r\n } else {\r\n p.virtualListHelper.setOnItemUnrender(el => {\r\n delete el[ItemSymbol];\r\n\r\n if (p.focusItemEl === el)\r\n p.focusItemEl = null;\r\n });\r\n }\r\n\r\n if (p.capturesFocus) {\r\n el.tabIndex = 0;\r\n }\r\n\r\n this._hookMouseEvents();\r\n this._hookTouchEvents();\r\n this._hookFocusEvents();\r\n this._hookKeyEvents();\r\n\r\n this.silenceEvents = false;\r\n }\r\n\r\n destroy() {\r\n if (this[DestroyedSymbol])\r\n return;\r\n this[DestroyedSymbol] = true;\r\n\r\n const p = this._p;\r\n\r\n clearTimeout(p.blurTimer);\r\n clearTimeout(p.filterTimer);\r\n\r\n p.sink.remove();\r\n p.virtualListHelper.destroy();\r\n\r\n if (p.el) {\r\n remove(p.el);\r\n }\r\n\r\n if (!p.ownsEl) {\r\n for (let name of Array.from(p.el.classList)) {\r\n if (name.startsWith(p.baseClassName)) {\r\n p.el.classList.remove(name);\r\n }\r\n }\r\n p.el.removeAttribute('role');\r\n for (let key of ['position', 'left', 'top', 'right', 'bottom', 'z-index']) {\r\n p.el.style[key] = '';\r\n }\r\n p.el.style.display = p.elOriginalDisplay;\r\n }\r\n\r\n if (p.lastPositionTarget) {\r\n p.lastPositionTarget.classList.remove(\r\n `has_${p.baseClassName}`,\r\n `has_${p.baseClassName}_above`,\r\n `has_${p.baseClassName}_below`);\r\n delete p.lastPositionTarget;\r\n }\r\n\r\n this._p = null;\r\n }\r\n\r\n get el() {\r\n return this._p.el;\r\n }\r\n\r\n /**\r\n * @param {string|string[]} classes\r\n * @returns {DropList}\r\n */\r\n setAdditionalClasses(classes) {\r\n const p = this._p;\r\n p.additionalClasses = classes;\r\n this._syncBaseClasses();\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {DropList}\r\n */\r\n setLabelProp(prop) {\r\n const p = this._p;\r\n p.labelProp = prop;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {DropList}\r\n */\r\n setValueProp(prop) {\r\n const p = this._p;\r\n p.valueProp = prop;\r\n return this;\r\n }\r\n\r\n _syncBaseClasses() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!el)\r\n return;\r\n\r\n let classes = [p.baseClassName];\r\n\r\n if (p.additionalClasses) {\r\n classes = classes.concat(p.additionalClasses);\r\n }\r\n\r\n el.className = classes.join(' ');\r\n }\r\n\r\n blurFocusedItem() {\r\n const p = this._p;\r\n\r\n clearTimeout(p.blurTimer);\r\n\r\n if (!this.hasFocusedItem()) {\r\n return;\r\n }\r\n\r\n let focusItemEl = p.focusItemEl;\r\n if (focusItemEl) {\r\n focusItemEl.classList.remove(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = null;\r\n }\r\n\r\n const item = p.items[p.focusItemIndex];\r\n p.focusItemIndex = -1;\r\n\r\n if (!item)\r\n return;\r\n\r\n this._trigger('itemblur', { value: item.value, item: item[ItemSymbol] ?? item });\r\n }\r\n\r\n nextPage(event) {\r\n this._move('next_page', event);\r\n }\r\n\r\n previousPage(event) {\r\n this._move('prev_page', event);\r\n }\r\n\r\n toggleFocusedItem() {\r\n const p = this._p;\r\n\r\n if (this.hasFocusedItem() && p.multi) {\r\n let item = p.items[p.focusItemIndex];\r\n if (item._nocheck || item._nointeraction) return this;\r\n\r\n item._checked = !item._checked;\r\n if (p.focusItemEl) {\r\n toggleClass(p.focusItemEl, `${p.baseClassName}__item_checked`, item._checked);\r\n }\r\n this._trigger('check', {\r\n value: item.value,\r\n item: item[ItemSymbol] ?? item,\r\n checked: item._checked,\r\n isGroup: item._group,\r\n isCheckingGroup: false,\r\n });\r\n\r\n this._updateGroupStateForItem(item);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n triggerItemSelection(event) {\r\n const p = this._p;\r\n\r\n p.focusItemEl = p.focusItemEl || closestUntil(event.target, 'li', p.el);\r\n p.focusItemIndex = p.virtualListHelper.getItemIndexFromElement(p.focusItemEl);\r\n if (p.focusItemIndex === undefined)\r\n p.focusItemIndex = -1;\r\n\r\n let item = p.focusItemEl[ItemSymbol];\r\n if (item._nointeraction) {\r\n return false;\r\n }\r\n\r\n if (!p.multi) {\r\n this._setSingleSelectedItemEl(p.focusItemEl);\r\n }\r\n\r\n this._trigger('select', { value: item ? item.value : undefined, item: item[ItemSymbol] ?? item });\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.Item} item The item to add. It is copied.\r\n * @param {number} [atIndex=-1] The index to insert at (or -1)\r\n * @returns {DropList}\r\n */\r\n addItem(item, atIndex = -1) {\r\n return this.addItems([item], atIndex);\r\n }\r\n\r\n /**\r\n * Adds items to the menu and renders\r\n * @param {DropList.Item[]} itemsToAdd The items to add. These are copied.\r\n * @param {number} [atIndex=-1] The index to insert at (or -1)\r\n * @returns {DropList}\r\n */\r\n addItems(itemsToAdd, atIndex = -1) {\r\n const p = this._p, labelProp = p.labelProp, valueProp = p.valueProp;\r\n\r\n let isMulti = p.multi;\r\n let items = p.items;\r\n\r\n if (atIndex == null || atIndex < 0 || atIndex >= p.items.length) {\r\n atIndex = -1;\r\n }\r\n\r\n // Determine if the list is virtual or not\r\n this._determineVirtualMode(items.length + itemsToAdd.length);\r\n\r\n for (let i = 0, count = itemsToAdd.length; i < count; i++) {\r\n let oitem = itemsToAdd[i];\r\n //noinspection PointlessBooleanExpressionJS\r\n let item = {\r\n [ItemSymbol]: oitem,\r\n label: oitem[labelProp],\r\n value: oitem[valueProp],\r\n _nocheck: !!oitem._nocheck,\r\n _nointeraction: !!oitem._nointeraction,\r\n };\r\n\r\n if (isMulti) {\r\n item._checked = !!oitem._checked;\r\n }\r\n\r\n if (oitem._group) {\r\n item._group = true;\r\n p.groupCount++;\r\n }\r\n\r\n if (oitem._child) {\r\n // This is used for setting a child class,\r\n // But can be used to determine that current item is not part of above group,\r\n // mainly where the groups are oddly sorted.\r\n item._child = true;\r\n }\r\n\r\n // Add the item to the list of them\r\n if (atIndex !== -1) {\r\n items.splice(atIndex, 0, item);\r\n } else {\r\n items.push(item);\r\n }\r\n\r\n if (atIndex !== -1) {\r\n atIndex++;\r\n }\r\n }\r\n\r\n p.virtualListHelper\r\n .addItemsAt(itemsToAdd.length, atIndex === -1 ? atIndex : (atIndex - itemsToAdd.length))\r\n .render();\r\n\r\n return this;\r\n }\r\n\r\n updateItemByValue(value, newItem) {\r\n const p = this._p;\r\n\r\n // Look for the proper item\r\n let itemIndex = this.itemIndexByValue(value);\r\n if (itemIndex < -1) return this;\r\n\r\n let item = this.itemAtIndex(itemIndex);\r\n item[ItemSymbol] = newItem;\r\n\r\n if (hasOwnProperty.call(newItem, p.labelProp))\r\n item.label = newItem[p.labelProp];\r\n\r\n if (hasOwnProperty.call(newItem, p.valueProp))\r\n item.value = newItem[p.valueProp];\r\n\r\n if (hasOwnProperty.call(newItem, '_nocheck'))\r\n item._nocheck = !!newItem._nocheck;\r\n\r\n if (hasOwnProperty.call(newItem, '_nointeraction'))\r\n item._nointeraction = !!newItem._nointeraction;\r\n\r\n if (p.multi) {\r\n if (hasOwnProperty.call(newItem, '_checked'))\r\n item._checked = !!newItem._checked;\r\n }\r\n\r\n if (hasOwnProperty.call(newItem, '_group')) {\r\n if (!!newItem._group !== item._group) {\r\n if (item._group)\r\n p.groupCount--;\r\n else p.groupCount++;\r\n\r\n newItem._group = !!item._group;\r\n }\r\n }\r\n\r\n if (hasOwnProperty.call(newItem, '_child'))\r\n item._child = !!newItem._child;\r\n\r\n if (p.virtualListHelper.isItemRendered(itemIndex)) {\r\n p.virtualListHelper\r\n .refreshItemAt(itemIndex)\r\n .render();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n removeItem(value, label) {\r\n const p = this._p;\r\n\r\n // Look for the proper item\r\n let itemIndex = this.itemIndexByValueOrLabel(value, label);\r\n if (itemIndex < -1) return this;\r\n\r\n let spliced = p.items.splice(itemIndex, 1);\r\n if (spliced[0]._group) {\r\n p.groupCount--;\r\n }\r\n\r\n p.virtualListHelper\r\n .removeItemsAt(itemIndex, 1)\r\n .render();\r\n\r\n return this;\r\n }\r\n\r\n removeAllItems() {\r\n const p = this._p;\r\n\r\n p.items.length = 0;\r\n p.groupCount = 0;\r\n\r\n p.virtualListHelper\r\n .setCount(0)\r\n .render();\r\n\r\n return this;\r\n }\r\n\r\n itemDataByValue(value) {\r\n const p = this._p;\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (item.value === value) {\r\n return item[ItemSymbol];\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n itemIndexByValue(value) {\r\n const p = this._p;\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (item.value === value) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n itemIndexByValueOrLabel(value, label) {\r\n const p = this._p;\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (item.value === value || item.label === label) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n items() {\r\n return this._p.items.map(x => x[ItemSymbol]);\r\n }\r\n\r\n itemsReference() {\r\n return this._p.items;\r\n }\r\n\r\n itemCount() {\r\n return this._p.items.length;\r\n }\r\n\r\n itemAtIndex(index) {\r\n return this._p.items[index]?.[ItemSymbol];\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.PositionOptions} positionOptions\r\n * @returns {DropList}\r\n * @public\r\n */\r\n relayout(positionOptions) {\r\n const p = this._p, el = p.el;\r\n\r\n if (!this.isVisible()) return this;\r\n\r\n let w = window;\r\n\r\n let targetBox = {};\r\n\r\n let offset = positionOptions.targetOffset || getElementOffset(positionOptions.target);\r\n targetBox.left = offset.left;\r\n targetBox.top = offset.top;\r\n targetBox.height = positionOptions.targetHeight == null\r\n ? getElementHeight(positionOptions.target, true, true)\r\n : positionOptions.targetHeight;\r\n targetBox.width = positionOptions.targetWidth == null\r\n ? getElementWidth(positionOptions.target, true, true)\r\n : positionOptions.targetWidth;\r\n targetBox.bottom = targetBox.top + targetBox.height;\r\n\r\n let viewport = {};\r\n viewport.top = w.pageYOffset;\r\n viewport.left = w.pageXOffset;\r\n viewport.width = w.innerWidth;\r\n viewport.height = w.innerHeight;\r\n viewport.bottom = viewport.top + viewport.height;\r\n viewport.right = viewport.left + viewport.width;\r\n\r\n let defaultVerticalDirection = (positionOptions.position && positionOptions.position.y === 'bottom')\r\n ? 'above'\r\n : 'below';\r\n\r\n // Reset dropdown width\r\n el.style.width = '';\r\n\r\n // Make estimations\r\n if (p.estimateWidth ||\r\n p.virtualListHelper.isVirtual()) {\r\n this._measureItem();\r\n }\r\n\r\n // Calculate virtual viewport size\r\n if (p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.render();\r\n }\r\n\r\n // Now set the width of the dropdown\r\n if (positionOptions.updateWidth) {\r\n this._updateWidth(positionOptions);\r\n }\r\n\r\n // How much space is there above, and how much below?\r\n let roomAbove = targetBox.top - viewport.top;\r\n let roomBelow = viewport.bottom - targetBox.bottom;\r\n\r\n // Calculate height for dropdown\r\n\r\n let maxViewHeight;\r\n\r\n const elComputedStyle = getComputedStyle(el);\r\n\r\n let isBoxing = elComputedStyle.boxSizing === 'border-box';\r\n let verticalPadding = (parseFloat(elComputedStyle.paddingTop) || 0) +\r\n (parseFloat(elComputedStyle.paddingBottom) || 0);\r\n let verticalBorderWidth = (parseFloat(elComputedStyle.borderTopWidth) || 0) +\r\n (parseFloat(elComputedStyle.borderBottomWidth) || 0);\r\n\r\n if (p.virtualListHelper.isVirtual()) {\r\n maxViewHeight =\r\n p.virtualListHelper.estimateFullHeight() +\r\n verticalPadding +\r\n verticalBorderWidth;\r\n } else {\r\n // Another method to calculate height is measuring the whole thing at once.\r\n // This causes relayout of course.\r\n el.style.height = '';\r\n el.style.top = '-9999px';\r\n\r\n maxViewHeight = Math.max(getElementHeight(p.el), el.scrollHeight);\r\n maxViewHeight += verticalPadding + verticalBorderWidth;\r\n }\r\n\r\n // Consider css max-height\r\n\r\n let maxHeight = parseFloat(elComputedStyle.maxHeight);\r\n if (!isNaN(maxHeight)) {\r\n if (!isBoxing) {\r\n maxHeight += verticalPadding + verticalBorderWidth;\r\n }\r\n\r\n maxViewHeight = Math.min(maxViewHeight, maxHeight);\r\n }\r\n\r\n // Figure out the direction\r\n\r\n let enoughRoomAbove = roomAbove >= maxViewHeight;\r\n let enoughRoomBelow = roomBelow >= maxViewHeight;\r\n\r\n let newDirection = p.currentDirection || defaultVerticalDirection;\r\n if (newDirection === 'above' && !enoughRoomAbove && enoughRoomBelow) {\r\n newDirection = 'below';\r\n } else if (newDirection === 'below' && !enoughRoomBelow && enoughRoomAbove) {\r\n newDirection = 'above';\r\n } else if (enoughRoomAbove && enoughRoomBelow) {\r\n if (newDirection !== defaultVerticalDirection &&\r\n ((defaultVerticalDirection === 'above' && roomAbove >= roomBelow) ||\r\n (defaultVerticalDirection === 'below' && roomBelow >= roomAbove))) {\r\n newDirection = defaultVerticalDirection;\r\n }\r\n } else if (!enoughRoomAbove && !enoughRoomBelow) {\r\n if (roomAbove > roomBelow) {\r\n newDirection = 'above';\r\n } else if (roomBelow > roomAbove) {\r\n newDirection = 'below';\r\n }\r\n }\r\n p.currentDirection = newDirection;\r\n\r\n // Figure out that final view size\r\n let viewSize = {\r\n width: getElementWidth(el, true, true),\r\n height: Math.min(maxViewHeight, Math.max(roomAbove, roomBelow, 0)),\r\n };\r\n\r\n let isTargetRtl = positionOptions.targetRtl !== undefined ?\r\n positionOptions.targetRtl :\r\n (positionOptions.target == null ? false : getComputedStyle(positionOptions.target).direction === 'rtl');\r\n let isRtlDocument = getComputedStyle(document.documentElement).direction === 'rtl';\r\n\r\n let anchor = anchoredPosition(positionOptions.target,\r\n positionOptions.anchor ? positionOptions.anchor.x : 'start',\r\n positionOptions.anchor ? positionOptions.anchor.y : 'bottom',\r\n targetBox, isTargetRtl);\r\n let position = anchoredPosition(el,\r\n positionOptions.position ? positionOptions.position.x : 'start',\r\n positionOptions.position ? positionOptions.position.y : 'top',\r\n viewSize, isTargetRtl);\r\n\r\n // If it's not in the direction that the user expected, invert it\r\n let invertYPos =\r\n (position.specY === 'top' && newDirection === 'above') ||\r\n (position.specY === 'bottom' && newDirection === 'below') ||\r\n (position.specY !== 'bottom' && position.specY !== 'top' && newDirection === 'above');\r\n\r\n let scrollLeft =\r\n (w.pageXOffset !== undefined) ?\r\n w.pageXOffset :\r\n (document.documentElement || document.body.parentNode || document.body).scrollLeft;\r\n scrollLeft = Math.abs(scrollLeft);\r\n if (isRtlDocument) {\r\n scrollLeft = document.documentElement.scrollWidth - scrollLeft - document.documentElement.clientWidth;\r\n }\r\n\r\n let minX = scrollLeft,\r\n maxX = document.documentElement.clientWidth + scrollLeft - viewSize.width;\r\n\r\n let viewCss = {\r\n 'position': 'absolute',\r\n 'left': targetBox.left,\r\n 'top': targetBox.top + (invertYPos ? (anchor.bottom - position.bottom) : (anchor.top - position.top)),\r\n };\r\n\r\n if (isRtlDocument) {\r\n viewCss.left -= document.documentElement.clientWidth - document.documentElement.scrollWidth;\r\n }\r\n\r\n viewCss.left += anchor.left - position.left;\r\n\r\n if (positionOptions.offset) {\r\n if (positionOptions.offset.y) {\r\n if (invertYPos) {\r\n viewCss.top -= positionOptions.offset.y;\r\n } else {\r\n viewCss.top += positionOptions.offset.y;\r\n }\r\n }\r\n\r\n if (positionOptions.offset.x) {\r\n let rtl = elComputedStyle.direction === 'rtl';\r\n viewCss.left += rtl\r\n ? -positionOptions.offset.x\r\n : positionOptions.offset.x;\r\n }\r\n }\r\n\r\n if (p.autoFlipDirection) {\r\n if ((position.specX === 'right' &&\r\n viewCss.left < minX &&\r\n (Math.max(viewCss.left, minX) + viewSize.width - targetBox.left) / targetBox.width > 0.5) ||\r\n (position.specX === 'left' &&\r\n viewCss.left > maxX &&\r\n (Math.min(viewCss.left, maxX) - targetBox.left) / targetBox.width < 0.5)) {\r\n viewCss.left -= anchor.left - position.left;\r\n viewCss.left += anchor.right - position.right;\r\n }\r\n }\r\n\r\n // Constrain to the window if required\r\n if (p.constrainToWindow) {\r\n for (let which of (isRtlDocument ? ['min', 'max'] : ['max', 'min'])) {\r\n if (which === 'min' && viewCss.left < minX)\r\n viewCss.left = minX;\r\n else if (which === 'max' && viewCss.left > maxX)\r\n viewCss.left = maxX;\r\n }\r\n }\r\n\r\n // Set position CSS\r\n viewCss.left += 'px';\r\n viewCss.top += 'px';\r\n setCssProps(el, viewCss);\r\n setElementHeight(el, viewSize.height, true, true);\r\n\r\n // Update the scroll position for virtual lists\r\n p.virtualListHelper.render();\r\n\r\n // Update position classes\r\n if (positionOptions && positionOptions.target) {\r\n p.lastPositionTarget = positionOptions.target;\r\n\r\n toggleClass(positionOptions.target, `has_${p.baseClassName}`, true);\r\n toggleClass(positionOptions.target, `has_${p.baseClassName}_below`, newDirection === 'below');\r\n toggleClass(positionOptions.target, `has_${p.baseClassName}_above`, newDirection === 'above');\r\n\r\n toggleClass(el, `${p.baseClassName}__is_below`, newDirection === 'below');\r\n toggleClass(el, `${p.baseClassName}__is_above`, newDirection === 'above');\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the checked mode of a specific value.\r\n * @public\r\n * @param {*} value - array of values to check\r\n * @param {boolean} checked - will the value be checked?\r\n * @returns {DropList} self\r\n */\r\n setItemChecked(value, checked) {\r\n const p = this._p;\r\n\r\n checked = !!checked;\r\n\r\n let index = this.itemIndexByValue(value);\r\n if (index === -1) return this;\r\n\r\n let li = p.virtualListHelper.getItemElementAt(index);\r\n if (!li) return this;\r\n\r\n let item = li[ItemSymbol];\r\n\r\n checked = checked && !item._nocheck;\r\n\r\n if (item._checked !== checked) {\r\n item._checked = checked;\r\n\r\n toggleClass(li, `${p.baseClassName}__item_checked`, item._checked);\r\n\r\n this._updateGroupStateForItem(item);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the checked values. All the other values will be unchecked,\r\n * @public\r\n * @param {Array<*>} values - array of values to check\r\n * @returns {DropList} self\r\n */\r\n setCheckedValues(values) {\r\n const p = this._p;\r\n\r\n let groupIndexes = [];\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n let checked = !item._nocheck && values.indexOf(item.value) !== -1;\r\n\r\n if (item._group) {\r\n groupIndexes.push(i);\r\n }\r\n\r\n if (item._checked === checked) continue;\r\n\r\n item._checked = checked;\r\n\r\n let li = p.virtualListHelper.getItemElementAt(i);\r\n if (!li) continue;\r\n\r\n toggleClass(li, `${p.baseClassName}__item_checked`, item._checked);\r\n }\r\n\r\n if (p.autoCheckGroupChildren) {\r\n for (let i = 0, count = groupIndexes.length; i < count; i++) {\r\n this._updateGroupCheckedState(groupIndexes[i], false);\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Get all checked values. Returns array of item values.\r\n * @public\r\n * @param {boolean} excludeGroups=false Exclude group items\r\n * @returns {Array<*>} self\r\n */\r\n getCheckedValues(excludeGroups) {\r\n const p = this._p;\r\n\r\n excludeGroups = excludeGroups && p.groupCount > 0;\r\n\r\n let values = [];\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (!item._checked) continue;\r\n if (excludeGroups && item._group) continue;\r\n values.push(item.value);\r\n }\r\n\r\n return values;\r\n }\r\n\r\n /**\r\n * Get all checked items. Returns array of actual item data object.\r\n * @public\r\n * @param {boolean} excludeGroups=false Exclude group items\r\n * @returns {DropList.Item[]}\r\n */\r\n getCheckedItems(excludeGroups) {\r\n const p = this._p;\r\n\r\n excludeGroups = excludeGroups && p.groupCount > 0;\r\n\r\n let items = [];\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n let item = p.items[i];\r\n if (!item._checked) continue;\r\n if (excludeGroups && item._group) continue;\r\n items.push(item[ItemSymbol]);\r\n }\r\n\r\n return items;\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.PositionOptions?} positionOptions\r\n * @returns {DropList}\r\n * @public\r\n */\r\n show(positionOptions) {\r\n const p = this._p;\r\n\r\n p.hiding = false;\r\n\r\n if (!this.isVisible()) {\r\n this._trigger('show:before');\r\n }\r\n\r\n p.mouseHandled = false;\r\n\r\n setTimeout(() => { // Skip the end of a 'click' event\r\n if (this[DestroyedSymbol]) return;\r\n\r\n if (!p.onDocumentMouseDown) {\r\n // Detect mouse tap outside of the droplist, to blur the focused item\r\n p.sink.add(document, 'mousedown', p.onDocumentMouseDown = (event) => {\r\n if (!p.el.contains(event.target))\r\n this._delayBlur();\r\n });\r\n }\r\n });\r\n\r\n const el = p.el;\r\n el.style.position = 'absolute';\r\n el.classList.remove(`${p.baseClassName}__is-hiding`);\r\n document.body.appendChild(el);\r\n\r\n p.visible = true;\r\n\r\n p.el.style.display = '';\r\n if (getComputedStyle(p.el).display === 'none')\r\n p.el.style.display = 'block';\r\n\r\n if (positionOptions) {\r\n const elComputedStyle = getComputedStyle(el);\r\n\r\n // Set max height to avoid adding scrollbars to page\r\n const originalMaxHeight = el.style.maxHeight;\r\n let maxHeight = document.body.clientHeight -\r\n (parseFloat(elComputedStyle.marginTop) || 0) -\r\n (parseFloat(elComputedStyle.marginBottom) || 0) -\r\n (elComputedStyle.boxSizing === 'border-box'\r\n ? 0\r\n : ((parseFloat(elComputedStyle.borderTopWidth) || 0) +\r\n (parseFloat(elComputedStyle.borderBottomWidth) || 0)));\r\n\r\n el.style.maxHeight = Math.min(maxHeight, parseFloat(elComputedStyle.maxHeight) || maxHeight) + 'px';\r\n\r\n this.relayout(positionOptions);\r\n\r\n // Restore original max-height\r\n el.style.maxHeight = originalMaxHeight;\r\n } else {\r\n // Calculate virtual viewport size\r\n if (p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.render();\r\n }\r\n }\r\n\r\n if (this.isVisible()) {\r\n this._trigger('show');\r\n }\r\n\r\n return this;\r\n }\r\n\r\n hide() {\r\n const p = this._p, el = p.el;\r\n\r\n if (p.onDocumentMouseDown) {\r\n p.sink.remove(document, 'mousedown', p.onDocumentMouseDown);\r\n p.onDocumentMouseDown = null;\r\n }\r\n\r\n if (this.isVisible()) {\r\n this._trigger('hide:before');\r\n\r\n p.hiding = true;\r\n\r\n if (el) {\r\n\r\n el.classList.add(`${p.baseClassName}__is-hiding`);\r\n\r\n // support for hide transition in css\r\n const maxTransitionDuration = parseTransition(getComputedStyle(p.el).transition)\r\n .reduce((p, v) => Math.max(p, v.delay + v.duration), 0);\r\n\r\n if (maxTransitionDuration > 0) {\r\n setTimeout(() => {\r\n if (this[DestroyedSymbol]) return;\r\n\r\n if (this._p && el.parentNode && p.hiding) {\r\n remove(el);\r\n el.classList.remove(`${p.baseClassName}__is-hiding`);\r\n p.visible = false;\r\n this._trigger('hide:after');\r\n }\r\n });\r\n } else {\r\n remove(el);\r\n el.classList.remove(`${p.baseClassName}__is-hiding`);\r\n }\r\n }\r\n\r\n p.visible = false;\r\n\r\n this.blurFocusedItem();\r\n this._trigger('hide');\r\n\r\n if (this[DestroyedSymbol]) return;\r\n this._trigger('hide:after');\r\n }\r\n\r\n if (p.lastPositionTarget) {\r\n p.lastPositionTarget.classList.remove(\r\n `has_${p.baseClassName}`,\r\n `has_${p.baseClassName}_above`,\r\n `has_${p.baseClassName}_below`);\r\n delete p.lastPositionTarget;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n isVisible() {\r\n const p = this._p;\r\n if (!p.visible)\r\n return false;\r\n return p.el.parentNode && getComputedStyle(p.el).display !== 'none';\r\n }\r\n\r\n hasFocusedItem() {\r\n return this._p.focusItemIndex > -1;\r\n }\r\n\r\n getFocusedItemIndex() {\r\n if (!this.hasFocusedItem())\r\n return -1;\r\n return this._p.focusItemIndex;\r\n }\r\n\r\n setFocusedItemAtIndex(itemIndex) {\r\n const p = this._p;\r\n\r\n p.focusItemIndex = itemIndex;\r\n\r\n let item = null;\r\n if (itemIndex > -1)\r\n item = p.items[itemIndex];\r\n if (item && item._nointeraction)\r\n item = null;\r\n if (itemIndex > -1) {\r\n this.scrollItemIndexIntoView(itemIndex);\r\n }\r\n let itemElement = item ? p.virtualListHelper.getItemElementAt(itemIndex) : null;\r\n\r\n if (p.focusItemEl !== itemElement) {\r\n if (p.focusItemEl) {\r\n p.focusItemEl.classList.remove(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = null;\r\n }\r\n\r\n if (itemElement) {\r\n itemElement.classList.add(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = itemElement;\r\n\r\n this._trigger('itemfocus', { value: itemElement.value, item: itemElement[ItemSymbol], event: null });\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n setFocusedItem(item) {\r\n const p = this._p;\r\n\r\n let itemIndex = item._nointeraction ? -1 : this._getItemIndex(item);\r\n\r\n if (itemIndex > -1 && p.items[itemIndex]._nointeraction)\r\n itemIndex = -1;\r\n\r\n return this.setFocusedItemAtIndex(itemIndex);\r\n }\r\n\r\n setFocusedItemByValue(value) {\r\n return this.setFocusedItemAtIndex(this.itemIndexByValue(value));\r\n }\r\n\r\n setSingleSelectedItemAtIndex(itemIndex) {\r\n const p = this._p;\r\n\r\n let itemEl = null;\r\n\r\n if (itemIndex > -1 && !p.items[itemIndex]._nointeraction) {\r\n itemEl = p.virtualListHelper.getItemElementAt(itemIndex);\r\n }\r\n\r\n this._setSingleSelectedItemEl(itemEl);\r\n\r\n return this;\r\n }\r\n\r\n setSingleSelectedItem(item) {\r\n const p = this._p;\r\n\r\n let itemIndex = item._nointeraction ? -1 : this._getItemIndex(item);\r\n\r\n if (itemIndex > -1 && p.items[itemIndex]._nointeraction)\r\n itemIndex = -1;\r\n\r\n return this.setSingleSelectedItemAtIndex(itemIndex);\r\n }\r\n\r\n setSingleSelectedItemByValue(value) {\r\n return this.setSingleSelectedItemAtIndex(this.itemIndexByValue(value));\r\n }\r\n\r\n next(event) {\r\n this._move('next', event);\r\n }\r\n\r\n previous(event) {\r\n this._move('prev', event);\r\n }\r\n\r\n isFirstItem() {\r\n const p = this._p;\r\n return p.focusItemIndex === 0 && p.focusItemIndex < p.items.length;\r\n }\r\n\r\n isLastItem() {\r\n const p = this._p;\r\n return p.focusItemIndex > -1 && p.focusItemIndex === p.items.length - 1;\r\n }\r\n\r\n scrollItemIndexIntoView(itemIndex) {\r\n const p = this._p;\r\n\r\n if (this._hasScroll()) {\r\n const el = p.el, scrollTop = el.scrollTop;\r\n\r\n let itemPos, previousPos = -1;\r\n\r\n // eslint-disable-next-line no-constant-condition\r\n while (true) {\r\n itemPos = p.virtualListHelper.getItemPosition(itemIndex);\r\n\r\n if (itemPos === previousPos)\r\n break;\r\n\r\n previousPos = itemPos;\r\n\r\n let itemSize = p.virtualListHelper.getItemSize(itemIndex);\r\n\r\n let listHeight = el.clientHeight;\r\n\r\n if (itemPos < scrollTop) {\r\n el.scrollTop = itemPos;\r\n } else if (itemPos + itemSize > scrollTop + listHeight) {\r\n el.scrollTop = itemPos + itemSize - listHeight;\r\n }\r\n\r\n // force update items, until the positions and sizes are final\r\n p.virtualListHelper.render();\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Register an event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {DropList}\r\n */\r\n on(/**string|'*'*/event, /**Function?*/handler) {\r\n this._p.mitt.on(event, handler);\r\n return this;\r\n }\r\n\r\n /**\r\n * Register a one time event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {DropList}\r\n */\r\n once(/**string|'*'*/event, /**Function?*/handler) {\r\n let wrapped = (value) => {\r\n this._p.mitt.off(event, wrapped);\r\n handler(value);\r\n };\r\n this._p.mitt.on(event, wrapped);\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove an `handler` for `event`, all events for `event`, or all events completely.\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {DropList}\r\n */\r\n off(/**(string|'*')?*/event, /**Function?*/handler) {\r\n if (!event && !event) {\r\n this._p.mitt.all.clear();\r\n } else {\r\n this._p.mitt.off(event, handler);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Emit an event\r\n * @param {string} event\r\n * @param {any} value\r\n * @returns {DropList}\r\n */\r\n emit(/**string|'*'*/event, /**any?*/value) {\r\n this._p.mitt.emit(event, value);\r\n return this;\r\n }\r\n\r\n _getItemIndex(item) {\r\n const p = this._p;\r\n\r\n let itemIndex = -1;\r\n\r\n if (item) {\r\n itemIndex = p.items.indexOf(item);\r\n if (itemIndex === -1) {\r\n let value = (item && item.value !== undefined) ? item.value : item;\r\n let label = (item && item.label) ? item.label : value;\r\n itemIndex = this.itemIndexByValueOrLabel(value, label);\r\n }\r\n }\r\n\r\n return itemIndex;\r\n }\r\n\r\n _setSingleSelectedItemEl(itemEl) {\r\n const p = this._p;\r\n\r\n if (p.singleSelectedItemEl) {\r\n p.singleSelectedItemEl.classList.remove(`${p.baseClassName}__item_checked`);\r\n p.singleSelectedItemEl = null;\r\n }\r\n\r\n if (itemEl) {\r\n itemEl.classList.add(`${p.baseClassName}__item_checked`);\r\n p.singleSelectedItemEl = itemEl;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} event\r\n * @param {*} [data]\r\n * @private\r\n */\r\n _trigger(event, data) {\r\n const p = this._p;\r\n if (p.on)\r\n p.on(event, ...(data === undefined ? [] : [data]));\r\n p.mitt.emit(event, data);\r\n }\r\n\r\n _itemUpAction(event, itemEl) {\r\n if (closestUntil(event.target, '.requires-pointer-events,button', itemEl)) return;\r\n\r\n let p = this._p;\r\n\r\n if (!this._mouseHandled) {\r\n\r\n this.triggerItemSelection(event);\r\n\r\n // If we are destroyed in response to a click/select, cease all actions\r\n if (this[DestroyedSymbol])\r\n return;\r\n\r\n this.toggleFocusedItem();\r\n\r\n if (document.activeElement !== this.el && p.focusItemEl) {\r\n clearTimeout(p.blurTimer);\r\n }\r\n\r\n setTimeout(() => {\r\n this._mouseHandled = false;\r\n }, 0);\r\n }\r\n }\r\n\r\n _hookMouseEvents() {\r\n const p = this._p;\r\n\r\n p.sink\r\n .add(p.el, 'mousedown', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n event.preventDefault();\r\n })\r\n .add(p.el, 'mouseup', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n if (event.button !== 0) return;\r\n\r\n this._itemUpAction(event, li);\r\n })\r\n .add(p.el, 'mouseover', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n this._handleMouseOver(event, li);\r\n });\r\n }\r\n\r\n _handleMouseOver(event, itemEl) {\r\n this._focus(event, itemEl);\r\n }\r\n\r\n _hookTouchEvents() {\r\n const p = this._p;\r\n\r\n let currentTouchId;\r\n\r\n p.sink.add(p.el, 'touchstart', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return;\r\n\r\n if (currentTouchId) return;\r\n if (closestUntil(event.target, '.requires-pointer-events,button', li)) return;\r\n\r\n currentTouchId = event.changedTouches[0].identifier;\r\n\r\n // Simulate mouseover event\r\n this._handleMouseOver(event, li);\r\n\r\n // Track scrolling\r\n let didScroll = false;\r\n let onScroll = () => { didScroll = true; };\r\n let onTouchCancel = () => {\r\n currentTouchId = null;\r\n p.sink.remove(null, '.dropdown_touchextra');\r\n };\r\n\r\n let elToTrackScroll = li.parentNode;\r\n while (elToTrackScroll) {\r\n p.sink.add(elToTrackScroll, 'scroll.dropdown_touchextra', onScroll);\r\n elToTrackScroll = elToTrackScroll.parentNode;\r\n }\r\n p.sink.add(window, 'scroll.dropdown_touchextra', onScroll);\r\n\r\n p.sink.add(window, 'touchcancel.dropdown_touchextra', onTouchCancel);\r\n\r\n p.sink.add(p.el, 'touchend.dropdown_touchextra', (event) => {\r\n const li = closestUntil(event.target, 'li', event.currentTarget);\r\n if (!li) return onTouchCancel();\r\n\r\n let touch = Array.prototype.find.call(event.changedTouches, (touch) => {\r\n return touch.identifier === currentTouchId;\r\n });\r\n if (!touch) return onTouchCancel();\r\n\r\n onTouchCancel();\r\n\r\n if (!didScroll) {\r\n this._itemUpAction(event, li);\r\n event.preventDefault();\r\n }\r\n });\r\n });\r\n }\r\n\r\n _hookFocusEvents() {\r\n const p = this._p;\r\n\r\n p.sink\r\n .add(p.el, 'focus', event => {\r\n let itemEl = p.focusItemEl || // focused item\r\n p.el.firstChild; // or the first item\r\n\r\n this._focus(event, itemEl);\r\n })\r\n .add(p.el, 'blur', () => {\r\n setTimeout(() => {\r\n if (this[DestroyedSymbol]) return;\r\n\r\n if (!p.el.contains(document.activeElement)) {\r\n this._delayBlur();\r\n }\r\n });\r\n });\r\n }\r\n\r\n _hookKeyEvents() {\r\n const p = this._p;\r\n\r\n p.sink.add(p.el, 'keydown', evt => this._keydown(evt));\r\n p.sink.add(p.el, 'keypress', evt => this._keydown(evt));\r\n }\r\n\r\n _keydown(event) {\r\n const p = this._p;\r\n\r\n if (p.keyDownHandler && p.keyDownHandler.call(this, event)) {\r\n return;\r\n }\r\n\r\n let preventDefault = true;\r\n\r\n switch (event.key) {\r\n case VALUE_PAGE_UP:\r\n case VALUE_PAGE_DOWN:\r\n case VALUE_HOME:\r\n case VALUE_END:\r\n case VALUE_UP:\r\n case VALUE_DOWN:\r\n event.preventDefault();\r\n\r\n switch (event.key) {\r\n case VALUE_PAGE_UP:\r\n this.previousPage(event);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n this.nextPage(event);\r\n break;\r\n case VALUE_HOME:\r\n this._move('first', event);\r\n break;\r\n case VALUE_END:\r\n this._move('last', event);\r\n break;\r\n case VALUE_UP:\r\n this.previous(event);\r\n break;\r\n case VALUE_DOWN:\r\n this.next(event);\r\n break;\r\n }\r\n break;\r\n\r\n case VALUE_ENTER:\r\n this.triggerItemSelection(event);\r\n event.preventDefault();\r\n break;\r\n\r\n case VALUE_SPACE:\r\n this.toggleFocusedItem();\r\n event.preventDefault();\r\n break;\r\n\r\n case VALUE_ESCAPE:\r\n event.preventDefault();\r\n this.hide();\r\n break;\r\n\r\n default: {\r\n if (event.type === 'keydown') return;\r\n this._keydownFreeType(event);\r\n preventDefault = false;\r\n }\r\n }\r\n }\r\n\r\n _keydownFreeType(evt) {\r\n const p = this._p;\r\n\r\n // noinspection JSDeprecatedSymbols\r\n let character = evt.key || String.fromCharCode(evt.keyCode);\r\n if (character.length !== 1) return;\r\n\r\n clearTimeout(p.filterTimer);\r\n\r\n // Accumulate text to find from keystrokes\r\n let keyword = (p.previousFilter || '') + character;\r\n\r\n let regex = new RegExp(`^${escapeRegex(keyword)}`, 'i');\r\n\r\n let matchIndices = [];\r\n let item;\r\n\r\n // These are all the possible matches\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n item = p.items[i];\r\n if (regex.test(item.label)) {\r\n matchIndices.push(i);\r\n }\r\n }\r\n\r\n // Did we find anything?\r\n if (!matchIndices.length) {\r\n // No... So start over with this character as the only one.\r\n keyword = character;\r\n regex = new RegExp(`^${escapeRegex(keyword)}`, 'i');\r\n\r\n for (let i = 0, count = p.items.length; i < count; i++) {\r\n item = p.items[i];\r\n if (regex.test(item.label)) {\r\n matchIndices.push(i);\r\n }\r\n }\r\n }\r\n\r\n let focusItemIndex = p.focusItemIndex;\r\n let matchIndex = -1;\r\n\r\n // Find a match *after* the focused item\r\n for (let i = 0, count = matchIndices.length; i < count; i++) {\r\n if (matchIndices[i] >= focusItemIndex) {\r\n matchIndex = matchIndices[i];\r\n break;\r\n }\r\n }\r\n\r\n // Find a match from the beginning.\r\n if (matchIndex === -1 && matchIndices.length) {\r\n matchIndex = matchIndices[0];\r\n }\r\n\r\n if (matchIndex > -1) {\r\n let next = p.virtualListHelper.getItemElementAt(matchIndex);\r\n this._focus(evt, next || null, matchIndex);\r\n\r\n if (!this.isVisible()) {\r\n this.triggerItemSelection(evt);\r\n }\r\n\r\n // Record the last filter used\r\n p.previousFilter = keyword;\r\n\r\n // Clear the last filter - a second from now.\r\n p.filterTimer = setTimeout(() => {\r\n delete p.previousFilter;\r\n }, 1000);\r\n\r\n } else {\r\n delete p.previousFilter;\r\n }\r\n }\r\n\r\n _focus(event, itemEl, itemIndex) {\r\n const p = this._p;\r\n\r\n if (!itemIndex && itemEl) {\r\n itemIndex = p.virtualListHelper.getItemIndexFromElement(itemEl);\r\n }\r\n\r\n if (itemIndex > -1) {\r\n this.scrollItemIndexIntoView(itemIndex);\r\n } else if (itemIndex === undefined) {\r\n itemEl = null;\r\n }\r\n\r\n let focusItemEl = itemEl || p.virtualListHelper.getItemElementAt(itemIndex);\r\n if (!focusItemEl || focusItemEl[ItemSymbol]._nointeraction) {\r\n this.blurFocusedItem();\r\n return;\r\n }\r\n\r\n if (focusItemEl === p.focusItemEl) {\r\n clearTimeout(p.blurTimer);\r\n return;\r\n }\r\n\r\n this.blurFocusedItem();\r\n\r\n focusItemEl.classList.add(`${p.baseClassName}__item_focus`);\r\n p.focusItemEl = focusItemEl;\r\n p.focusItemIndex = itemIndex;\r\n\r\n const item = p.items[itemIndex];\r\n this._trigger('itemfocus', { value: item.value, item: item[ItemSymbol] ?? item, event: event });\r\n }\r\n\r\n _delayBlur() {\r\n if (this[DestroyedSymbol])\r\n return;\r\n\r\n const p = this._p;\r\n\r\n clearTimeout(p.blurTimer);\r\n\r\n p.blurTimer = setTimeout(() => {\r\n if (this[DestroyedSymbol]) return;\r\n this.blurFocusedItem();\r\n }, p.itemBlurDelay);\r\n }\r\n\r\n _move(direction, event) {\r\n const p = this._p;\r\n\r\n let next, nextIndex, directionUp = false;\r\n\r\n if (direction === 'first') {\r\n nextIndex = 0;\r\n directionUp = false;\r\n } else if (direction === 'last') {\r\n nextIndex = p.items.length - 1;\r\n directionUp = true;\r\n } else if (direction === 'prev') {\r\n if (!this.hasFocusedItem())\r\n return this._move('last', event);\r\n\r\n nextIndex = p.focusItemIndex - 1;\r\n if (nextIndex === -1) {\r\n nextIndex = p.items.length - 1;\r\n }\r\n\r\n directionUp = true;\r\n } else if (direction === 'next') {\r\n if (!this.hasFocusedItem())\r\n return this._move('first', event);\r\n\r\n nextIndex = p.focusItemIndex + 1;\r\n if (nextIndex === p.items.length) {\r\n nextIndex = 0;\r\n }\r\n\r\n directionUp = false;\r\n } else if (direction === 'prev_page' || direction === 'next_page') {\r\n\r\n if (!this.hasFocusedItem()) {\r\n return this._move(direction === 'prev_page' ? 'prev' : 'next', event);\r\n }\r\n\r\n if ((direction === 'prev_page' && this.isFirstItem()) ||\r\n (direction === 'next_page' && this.isLastItem())) return;\r\n\r\n if (this._hasScroll()) {\r\n\r\n if (p.virtualListHelper.isVirtual()) {\r\n let visibleItemCount = p.virtualListHelper.getVisibleItemCount();\r\n\r\n nextIndex = p.focusItemIndex;\r\n\r\n if (direction === 'prev_page') {\r\n nextIndex -= visibleItemCount;\r\n } else {\r\n nextIndex += visibleItemCount;\r\n }\r\n\r\n if (nextIndex < 0) {\r\n nextIndex = 0;\r\n } else if (nextIndex >= p.items.length) {\r\n nextIndex = p.items.length;\r\n }\r\n } else if (p.focusItemEl) {\r\n let base = getElementOffset(p.focusItemEl).top;\r\n let height = getElementHeight(p.el, true);\r\n\r\n while (true) { // eslint-disable-line no-constant-condition\r\n next = p.focusItemEl.nextElementSibling;\r\n if (!next) return;\r\n if (next.tagName !== 'LI') continue;\r\n\r\n if (direction === 'prev_page') {\r\n if (getElementOffset(next).top - base + height <= 0)\r\n break;\r\n } else {\r\n if (getElementOffset(next).top - base - height >= 0)\r\n break;\r\n }\r\n }\r\n\r\n if (next) {\r\n nextIndex = p.virtualListHelper.getItemIndexFromElement(next);\r\n\r\n if (nextIndex === undefined)\r\n nextIndex = -1;\r\n }\r\n }\r\n\r\n } else {\r\n return this._move(direction === 'prev_page' ? 'first' : 'last', event);\r\n }\r\n\r\n directionUp = direction === 'prev_page';\r\n } else {\r\n return;\r\n }\r\n\r\n let itemCount = p.items.length;\r\n\r\n if (nextIndex >= itemCount) {\r\n return;\r\n }\r\n\r\n let item = p.items[nextIndex];\r\n // noinspection UnnecessaryLocalVariableJS\r\n let startedAtIndex = nextIndex;\r\n\r\n while (item && item._nointeraction) {\r\n if (directionUp) {\r\n nextIndex--;\r\n if (nextIndex === -1) {\r\n nextIndex = itemCount;\r\n }\r\n } else {\r\n nextIndex++;\r\n if (nextIndex === itemCount) {\r\n nextIndex = 0;\r\n }\r\n }\r\n\r\n item = p.items[nextIndex];\r\n\r\n if (nextIndex === startedAtIndex) {\r\n break;\r\n }\r\n }\r\n\r\n next = p.virtualListHelper.getItemElementAt(nextIndex);\r\n this._focus(event, next || null, nextIndex);\r\n\r\n if (!this.isVisible()) {\r\n this.triggerItemSelection(event);\r\n }\r\n }\r\n\r\n _hasScroll() {\r\n return this.el.clientHeight < this.el.scrollHeight;\r\n }\r\n\r\n _updateGroupStateForItem(item) {\r\n const p = this._p;\r\n\r\n if (p.multi && p.autoCheckGroupChildren) {\r\n\r\n let items, groupIndex, itemIndex;\r\n\r\n if (item._group) {\r\n // Now loop through children below the group\r\n\r\n items = p.items;\r\n groupIndex = items.indexOf(item);\r\n\r\n let affectedItems = 0;\r\n\r\n for (let i = groupIndex + 1, len = items.length; i < len; i++) {\r\n let next = items[i];\r\n\r\n // Hit the next group, break out\r\n if (next._group || (!next._child && items[i - 1]._child))\r\n break;\r\n\r\n // No change, skip\r\n if (!!next._checked === item._checked)\r\n continue;\r\n\r\n // Update state\r\n next._checked = item._checked;\r\n\r\n affectedItems++;\r\n\r\n // Update DOM\r\n let nextEl = p.virtualListHelper.getItemElementAt(i);\r\n if (nextEl) {\r\n toggleClass(nextEl, `${p.baseClassName}__item_checked`, item._checked);\r\n }\r\n\r\n // Fire event\r\n this._trigger('check', {\r\n value: next.value,\r\n item: next[ItemSymbol] ?? next,\r\n checked: item._checked,\r\n isGroup: item._group,\r\n isCheckingGroup: true,\r\n });\r\n }\r\n\r\n // Fire event\r\n this._trigger('groupcheck', { value: item.value, item: item[ItemSymbol] ?? item, affectedItems: affectedItems });\r\n } else if (p.groupCount > 0) {\r\n items = p.items;\r\n itemIndex = items.indexOf(item);\r\n groupIndex = -1;\r\n\r\n // Find the group index\r\n for (let i = itemIndex - 1; i >= 0; i--) {\r\n if (items[i]._group) {\r\n groupIndex = i;\r\n break;\r\n }\r\n }\r\n\r\n if (groupIndex > -1) {\r\n this._updateGroupCheckedState(groupIndex, true);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n _updateGroupCheckedState(groupIndex, fireEvents) {\r\n const p = this._p;\r\n\r\n if (p.multi && p.autoCheckGroupChildren && groupIndex > -1) {\r\n\r\n let items = p.items;\r\n let groupItem = items[groupIndex];\r\n if (!groupItem || !groupItem._group) return this;\r\n\r\n let item, hasChecked = false, hasUnchecked = false;\r\n\r\n for (let i = groupIndex + 1, len = items.length; i < len; i++) {\r\n item = items[i];\r\n\r\n // Hit the next group, break out\r\n if (item._group || (!item._child && items[i - 1]._child))\r\n break;\r\n\r\n if (item._checked) {\r\n hasChecked = true;\r\n } else if (!item._checked) {\r\n hasUnchecked = true;\r\n }\r\n }\r\n\r\n // See if we need to update the group\r\n let shouldCheckGroup = hasChecked && !hasUnchecked;\r\n if (!!groupItem._checked !== shouldCheckGroup) {\r\n // Update state\r\n groupItem._checked = shouldCheckGroup;\r\n\r\n // Update DOM\r\n let nextEl = p.virtualListHelper.getItemElementAt(groupIndex);\r\n if (nextEl) {\r\n toggleClass(nextEl, `${p.baseClassName}__item_checked`, groupItem._checked);\r\n }\r\n\r\n if (fireEvents) {\r\n // Fire event\r\n this._trigger('check', {\r\n value: groupItem.value,\r\n item: groupItem[ItemSymbol] ?? groupItem,\r\n checked: item._checked,\r\n isGroup: item._group,\r\n isCheckingGroup: false,\r\n });\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @private\r\n * @returns {DropList} self\r\n */\r\n _measureItem() {\r\n const p = this._p;\r\n\r\n if (p.lastMeasureItemCount !== p.items.length) {\r\n let longestLabel = p.lastMeasureLongestLabel || 1,\r\n longestLabelText = p.lastMeasureLongestLabelText || '';\r\n\r\n for (let i = 0, items = p.items, count = items.length;\r\n i < count;\r\n i++) {\r\n\r\n const item = items[i];\r\n let text = item.label;\r\n if (text == null)\r\n text = item.value;\r\n if (text == null)\r\n text = '';\r\n\r\n let length = text.length;\r\n if (length > longestLabel) {\r\n longestLabel = length;\r\n longestLabelText = text;\r\n }\r\n }\r\n\r\n p.lastMeasureItemCount = p.items.length;\r\n p.lastMeasureLongestLabel = longestLabel;\r\n p.lastMeasureLongestLabelText = longestLabelText;\r\n }\r\n\r\n if (p.estimateWidth || p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.createGhostItemElement(GhostSymbol, true, itemEl => {\r\n p.lastMeasureItemWidth = getElementWidth(itemEl, true, true);\r\n });\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Determines whether the list should be in virtual mode, depending on the item count.\r\n * @param {number?} targetItemCount - item count we are expecting. Defaults to current item count\r\n * @returns {DropList}\r\n * @private\r\n */\r\n _determineVirtualMode(targetItemCount) {\r\n const p = this._p;\r\n\r\n let items = p.items;\r\n if (targetItemCount === undefined) {\r\n targetItemCount = items.length;\r\n }\r\n\r\n let shouldBeVirtual = targetItemCount >= p.virtualMinItems;\r\n\r\n if (shouldBeVirtual !== p.virtualListHelper.isVirtual()) {\r\n p.virtualListHelper.setVirtual(shouldBeVirtual).render();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n _renderItemContent(item, itemEl) {\r\n const p = this._p;\r\n\r\n // NOTE: a \"measure\" item will not have full data of original item.\r\n // so for a custom renderer - we try to send original item, and fallback to our private list item.\r\n\r\n if (!p.renderItem || p.renderItem(item[ItemSymbol] || item, itemEl) === false) {\r\n itemEl.appendChild(createElement('span', {\r\n class: `${p.baseClassName}__item_label`,\r\n textContent: item.label,\r\n }));\r\n\r\n if (p.multi) {\r\n if (!item._nocheck) {\r\n itemEl.insertBefore(\r\n createElement('span', { class: 'checkbox' }),\r\n itemEl.firstChild,\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.PositionOptions} [positionOptions=undefined]\r\n * @returns {number} new outer width\r\n * @private\r\n */\r\n _updateWidth(positionOptions) {\r\n const p = this._p, el = p.el;\r\n\r\n let targetWidth = 0;\r\n\r\n if (positionOptions) {\r\n // Measure target\r\n targetWidth = positionOptions.targetWidth;\r\n if (targetWidth == null) {\r\n targetWidth = getElementWidth(positionOptions.target, true, true);\r\n }\r\n }\r\n\r\n let autoWidth = 0;\r\n if (!p.useExactTargetWidth) {\r\n if (p.estimateWidth || p.virtualListHelper.isVirtual()) {\r\n autoWidth = p.lastMeasureItemWidth;\r\n } else {\r\n el.style.width = ''; // Reset width\r\n autoWidth = getElementWidth(el, true, true);\r\n }\r\n }\r\n\r\n let newOuterWidth = Math.max(autoWidth, targetWidth);\r\n\r\n setElementWidth(el, newOuterWidth, true, true);\r\n\r\n const elComputedStyle = getComputedStyle(el);\r\n let bordersWidth = (parseFloat(elComputedStyle.borderLeftWidth) || 0) + (parseFloat(elComputedStyle.borderRightWidth) || 0);\r\n let scrollWidth = el.scrollWidth + bordersWidth;\r\n if (scrollWidth > newOuterWidth) {\r\n // consider scrollWidth delta\r\n let delta = scrollWidth - newOuterWidth;\r\n el.style.width = `${parseFloat(el.style.width) + delta}px`;\r\n newOuterWidth = scrollWidth;\r\n }\r\n\r\n return newOuterWidth;\r\n }\r\n}\r\n\r\nexport default DropList;\r\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return un$Slice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","var arraySlice = require('../internals/array-slice');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","const throttle = (func, wait, options) => {\r\n let timeout, context, args, result;\r\n let previous = 0;\r\n if (!options) options = {};\r\n\r\n const later = () => {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n result = func.apply(context, args);\r\n if (!timeout) context = args = null;\r\n };\r\n\r\n const throttled = function () {\r\n const now = Date.now();\r\n if (!previous && options.leading === false)\r\n previous = now;\r\n\r\n const remaining = wait - (now - previous);\r\n context = this;\r\n args = arguments;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n result = func.apply(context, args);\r\n if (!timeout) context = args = null;\r\n } else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(later, remaining);\r\n }\r\n return result;\r\n };\r\n\r\n throttled.cancel = () => {\r\n clearTimeout(timeout);\r\n previous = 0;\r\n timeout = context = args = null;\r\n };\r\n\r\n throttled.isScheduled = () => {\r\n return !!timeout;\r\n };\r\n\r\n return throttled;\r\n};\r\n\r\nexport default throttle;\r\n","import {\r\n getCssProps,\r\n getElementWidth,\r\n setElementWidth,\r\n getPseudoElementWidth,\r\n setCssProps,\r\n} from '@danielgindi/dom-utils/lib/Css';\r\nimport escapeRegex from './utils/escapeRegex';\r\nimport {\r\n closestUntil,\r\n createElement,\r\n next,\r\n prev,\r\n setElementAttrs,\r\n} from '@danielgindi/dom-utils/lib/Dom';\r\nimport {\r\n append,\r\n getRootNode,\r\n before,\r\n remove,\r\n toggleClass,\r\n} from '@danielgindi/dom-utils/lib/DomCompat';\r\n\r\nimport DomEventsSink from '@danielgindi/dom-utils/lib/DomEventsSink';\r\nimport DropList from './DropList';\r\nimport throttle from './utils/throttle';\r\nimport {\r\n VALUE_BACK_SPACE,\r\n VALUE_DELETE, VALUE_DOWN, VALUE_ENTER,\r\n VALUE_ESCAPE,\r\n VALUE_LEFT, VALUE_PAGE_DOWN,\r\n VALUE_PAGE_UP,\r\n VALUE_RIGHT, VALUE_SPACE,\r\n VALUE_TAB,\r\n VALUE_UP,\r\n} from 'keycode-js';\r\nimport mitt from 'mitt';\r\n\r\nconst ItemSymbol = Symbol('item');\r\nconst DestroyedSymbol = Symbol('destroyed');\r\nconst NoResultsItemSymbol = Symbol('no_results_items');\r\nconst RestMultiItemsSymbol = Symbol('rest_multi_items');\r\n\r\nconst hasTouchCapability = !!('ontouchstart' in window\r\n || (window.DocumentTouch && window.document instanceof window.DocumentTouch)\r\n || window.navigator.maxTouchPoints\r\n);\r\n\r\n/**\r\n * @param {Element|EventTarget} el\r\n * @param {string} className\r\n * @returns {boolean}\r\n */\r\nconst hasClass = function (el, className) {\r\n if (el instanceof Element) {\r\n return el.classList.contains(className);\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst inputBackbufferCssProps = [\r\n 'font-family',\r\n 'font-size',\r\n 'font-weight',\r\n 'font-size',\r\n 'letter-spacing',\r\n 'text-transform',\r\n 'word-spacing',\r\n 'text-indent',\r\n 'box-sizing',\r\n 'padding-left',\r\n 'padding-right',\r\n];\r\n\r\n/**\r\n * @typedef {Object} SelectBox.Options\r\n * @property {DropList.Options} [listOptions] options to pass to the `DropList`\r\n * @property {Element} [el] An element to attach to, instead of creating a new one\r\n * @property {string} [baseClassName='selectbox'] class name for the menu root element\r\n * @property {boolean} [disabled=false] Should start as disabled?\r\n * @property {boolean} [clearable=true] Has clear button?\r\n * @property {boolean} [hasOpenIndicator=true] has open/close indicator?\r\n * @property {string} [placeholder=''] Placeholder text\r\n * @property {boolean} [sortSelectedItems=true] Should the selected items be sorted?\r\n * @property {boolean} [sortListItems=true] Sort list items\r\n * @property {boolean} [sortListCheckedFirst=true] When sorting - put checked items first (applicable to `multi` mode only)\r\n * @property {*[]} [stickyValues]\r\n * @property {function(a: DropList.ItemBase, b: DropList.ItemBase):number} [sortItemComparator]\r\n * @property {boolean} [splitListCheckedGroups=true] Split groups to \"checked\" and \"unchecked\", works with `sortCheckedFirst` only\r\n * @property {boolean|'touch'} [blurOnSingleSelection='touch']\r\n * @property {boolean} [multi=false] can multiple values be selected?\r\n * @property {boolean} [showSelection=true] show selection? if false, the placeholder will take effect\r\n * @property {function(items: DropList.ItemBase[]):string} [multiPlaceholderFormatter] formatter for placeholder for multi items mode\r\n * @property {boolean} [searchable=false] is it searchable?\r\n * @property {string} [noResultsText='No matching results'] text for no results (empty for none)\r\n * @property {number} [filterThrottleWindow=300] throttle time (milliseconds) for filtering\r\n * @property {boolean} [filterOnEmptyTerm=false] call the filter function on empty search term too\r\n * @property {string} [labelProp='label']\r\n * @property {string} [valueProp='value']\r\n * @property {string} [multiItemLabelProp='short_label']\r\n * @property {number} [maxMultiItems] maximum number of multi items. The rest will get a single item to represent.\r\n * @property {function(count: number, items: DropList.ItemBase[]):string} [multiItemsRestLabelProvider] label for the item representing the rest of the items.\r\n * @property {DropList.ItemBase[]|null} [items] initial items\r\n * @property {*[]|null} [selectedValues] initial selected values\r\n * @property {*|*[]|null} [value] initial selected value\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderSingleItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderSingleItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderRestMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderRestMultiItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element):(*|false)} [renderNoResultsItem]\r\n * @property {function(item: DropList.ItemBase, itemEl: Element)} [unrenderNoResultsItem]\r\n * @property {function(items: DropList.ItemBase[], term: string):(DropList.ItemBase[]|null)} [filterFn]\r\n * @property {function(name: string, ...args)} [on]\r\n * @property {string|string[]} [additionalClasses]\r\n * @property {boolean} [isLoadingMode]\r\n * */\r\nconst defaultOptions = {\r\n el: null,\r\n baseClassName: 'selectbox',\r\n disabled: false,\r\n clearable: true,\r\n hasOpenIndicator: true,\r\n placeholder: '',\r\n sortSelectedItems: true,\r\n sortListItems: true,\r\n sortListCheckedFirst: true,\r\n stickyValues: null,\r\n sortItemComparator: null,\r\n splitListCheckedGroups: true,\r\n blurOnSingleSelection: 'touch',\r\n multi: false,\r\n showSelection: true,\r\n multiPlaceholderFormatter: null,\r\n searchable: true,\r\n noResultsText: 'No matching results',\r\n filterThrottleWindow: 300,\r\n filterOnEmptyTerm: false,\r\n labelProp: 'label',\r\n valueProp: 'value',\r\n multiItemLabelProp: 'short_label',\r\n maxMultiItems: null,\r\n multiItemsRestLabelProvider: null,\r\n items: [],\r\n selectedValues: undefined,\r\n value: undefined,\r\n isLoadingMode: false,\r\n};\r\n\r\n/**\r\n *\r\n * @param {DropList.ItemBase[]} items\r\n * @param {string} labelProp\r\n * @returns {string}\r\n */\r\nconst defaultMultiPlaceholderFormatter = (items, labelProp) => {\r\n if (items.length === 0)\r\n return '';\r\n\r\n let title = items[0][labelProp] + '';\r\n\r\n if (items.length > 1) {\r\n title += ` (+${items.length - 1})`;\r\n }\r\n\r\n return title;\r\n};\r\n\r\n/*\r\nEmits the following events:\r\n---------------------------\r\n\r\n'clear:before' {cancel: false}: will clear the whole selection. return false to abort.\r\n'clear': clearead the whole selection.\r\n'open' { list: DropList }: the drop list is opening\r\n'open:before' { list: DropList }: the drop list will open\r\n'close': the drop list is closing\r\n'addsel:before' {value, item, cancel: false}: an item selection is about to be added (in multi mode). return false to abort.\r\n'removesel:before' {value, item, cancel: false}: an item selection is about to be removed (in multi mode). return false to abort.\r\n'select:before' {value, item, cancel: false}: an item is about to be selected (in single mode). return false to abort.\r\n'addsel' {value, item}: an item selection has been added (in multi mode)\r\n'removesel' {value, item}: an item selection has been removed (in multi mode)\r\n'select' {value, item}: an item has been selected (in single mode)\r\n'search' {value}: input box value has changed\r\n'search:focus': input box has gained focus\r\n'search:blur': input box has lost focus\r\n'input:resize': input box resized\r\n'itemschanged' {term, mutated, count}: the current set of items has changed\r\n */\r\n\r\n// noinspection JSUnusedGlobalSymbols\r\nclass SelectBox {\r\n /**\r\n * @param {SelectBox.Options} options\r\n */\r\n constructor(options) {\r\n const o = { ...defaultOptions };\r\n\r\n for (let [key, value] of Object.entries(/**@type Object*/options))\r\n if (value !== undefined)\r\n o[key] = value;\r\n\r\n const p = this._p = {\r\n ownsEl: true,\r\n\r\n baseClassName: o.baseClassName,\r\n\r\n listOptions: o.listOptions,\r\n\r\n disabled: !!o.disabled,\r\n clearable: !!o.clearable,\r\n hasOpenIndicator: !!o.hasOpenIndicator,\r\n placeholder: o.placeholder,\r\n sortSelectedItems: !!o.sortSelectedItems,\r\n sortListItems: !!o.sortListItems,\r\n sortListCheckedFirst: !!o.sortListCheckedFirst,\r\n stickyValues: Array.isArray(o.stickyValues) ? new Set(o.stickyValues) : null,\r\n sortItemComparator: o.sortItemComparator,\r\n splitListCheckedGroups: !!o.splitListCheckedGroups,\r\n blurOnSingleSelection: o.blurOnSingleSelection,\r\n multi: o.multi,\r\n showSelection: o.showSelection,\r\n multiPlaceholderFormatter: o.multiPlaceholderFormatter,\r\n searchable: o.searchable,\r\n noResultsText: o.noResultsText,\r\n filterThrottleWindow: o.filterThrottleWindow,\r\n filterOnEmptyTerm: o.filterOnEmptyTerm,\r\n\r\n labelProp: o.labelProp,\r\n valueProp: o.valueProp,\r\n multiItemLabelProp: o.multiItemLabelProp,\r\n\r\n maxMultiItems: o.maxMultiItems,\r\n multiItemsRestLabelProvider: o.multiItemsRestLabelProvider,\r\n\r\n renderSingleItem: o.renderSingleItem,\r\n unrenderSingleItem: o.unrenderSingleItem,\r\n renderMultiItem: o.renderMultiItem,\r\n unrenderMultiItem: o.unrenderMultiItem,\r\n renderRestMultiItem: o.renderRestMultiItem,\r\n unrenderRestMultiItem: o.unrenderRestMultiItem,\r\n renderNoResultsItem: o.renderNoResultsItem,\r\n unrenderNoResultsItem: o.unrenderNoResultsItem,\r\n filterFn: o.filterFn,\r\n on: o.on || null,\r\n silenceEvents: true,\r\n mitt: mitt(),\r\n additionalClasses: o.additionalClasses,\r\n\r\n isLoadingMode: !!o.isLoadingMode,\r\n\r\n items: [],\r\n filteredItems: null,\r\n currentItemsView: [], // contains the final version of items sent to DropList\r\n itemsChanged: true,\r\n\r\n sink: new DomEventsSink(),\r\n\r\n /** @type ResizeObserver */\r\n resizeObserver: null,\r\n\r\n selectedItems: [],\r\n selectedValues: [],\r\n selectionChanged: true,\r\n resortBySelectionNeeded: false,\r\n\r\n throttledUpdateListItems: throttle(() => this._updateListItems(),\r\n o.filterThrottleWindow,\r\n { leading: true, trailing: true }),\r\n\r\n filterTerm: '',\r\n };\r\n\r\n let el = o.el;\r\n if (el instanceof Element) {\r\n p.ownsEl = false;\r\n } else {\r\n el = createElement('span');\r\n }\r\n\r\n setElementAttrs(el, {\r\n role: 'combobox',\r\n 'aria-haspopup': 'true',\r\n 'aria-expanded': 'false',\r\n });\r\n p.el = el;\r\n\r\n this._syncBaseClasses();\r\n this._renderBase();\r\n\r\n /** @type Element[] */\r\n p.multiItemEls = [];\r\n\r\n this.enable(!p.disabled);\r\n\r\n this._setupDropdownMenu();\r\n\r\n // --- Hook click\r\n p.sink\r\n .add(el, 'click', (evt) => {\r\n if (p.clearButtonWrapper && p.clearButtonWrapper.contains(evt.target)) {\r\n return;\r\n }\r\n\r\n if (!el.contains(document.activeElement)) {\r\n p.input.focus();\r\n // Go to end of input\r\n p.input.selectionStart = p.input.selectionEnd = p.input.value.length;\r\n }\r\n });\r\n\r\n // --- Handle default focus directly to search box\r\n p.sink.add(el, 'focus', evt => {\r\n const target = (/**Element*/evt.target);\r\n\r\n if (!el.contains(evt.relatedTarget) &&\r\n !hasClass(target, `${p.baseClassName}__search_field`) &&\r\n !hasClass(target, `${p.baseClassName}__item`)) {\r\n let field = el.querySelector(`.${p.baseClassName}__search_field`);\r\n field && field.focus();\r\n }\r\n }, true);\r\n\r\n p.sink\r\n .add(p.input, 'keydown', (/**KeyboardEvent*/event) => {\r\n this._handleInputKeydown(event);\r\n })\r\n .add(p.input, 'input', () => {\r\n this._resizeInput();\r\n });\r\n\r\n const focusInOutHandler = (() => {\r\n let t;\r\n return () => {\r\n if (t) {\r\n clearTimeout(t);\r\n }\r\n t = setTimeout(() => {\r\n toggleClass(el, `${p.baseClassName}__focus`, el.contains(document.activeElement));\r\n });\r\n };\r\n })();\r\n p.sink.add(el, 'focus', focusInOutHandler, true);\r\n p.sink.add(el, 'blur', focusInOutHandler, true);\r\n\r\n // --- Resize input on window change\r\n p.sink.add(window, 'resize', () => this._resizeInput());\r\n p.sink.add(window, 'orientationchange', () => this._resizeInput());\r\n\r\n if (window.ResizeObserver !== undefined) {\r\n p.resizeObserver = new ResizeObserver(() => {\r\n this._resizeInput();\r\n });\r\n p.resizeObserver.observe(p.el);\r\n }\r\n\r\n this.setItems(o.items);\r\n\r\n if (o.multi && Array.isArray(o.selectedValues)) {\r\n this.setSelectedValues(o.selectedValues);\r\n } else if (o.value != null) {\r\n this.setValue(o.value);\r\n }\r\n\r\n this._scheduleSync();\r\n\r\n this.silenceEvents = false;\r\n\r\n return this;\r\n }\r\n\r\n destroy() {\r\n if (this[DestroyedSymbol])\r\n return;\r\n this[DestroyedSymbol] = true;\r\n\r\n const p = this._p;\r\n\r\n if (p.syncTimeout) {\r\n clearTimeout(p.syncTimeout);\r\n delete p.syncTimeout;\r\n }\r\n\r\n this._stopTrackingPresence();\r\n\r\n p.sink.remove();\r\n p.dropList && p.dropList.destroy();\r\n\r\n if (p.throttledUpdateListItems)\r\n p.throttledUpdateListItems.cancel();\r\n\r\n this._cleanupSingleWrapper();\r\n\r\n if (p.unrenderMultiItem || p.unrenderRestMultiItem) {\r\n // Remove all item elements\r\n while (p.multiItemEls.length > 0) {\r\n // use fast path by removing in reverse\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n }\r\n }\r\n\r\n remove(p.list);\r\n remove(p.singleWrapper);\r\n remove(p.input);\r\n remove(p.inputBackBuffer);\r\n remove(p.clearButtonWrapper);\r\n remove(p.openIndicator);\r\n\r\n if (!p.ownsEl) {\r\n for (let name of Array.from(p.el.classList)) {\r\n if (name.startsWith(p.baseClassName)) {\r\n p.el.classList.remove(name);\r\n }\r\n }\r\n p.el.removeAttribute('role');\r\n p.el.removeAttribute('aria-haspopup');\r\n p.el.removeAttribute('aria-expanded');\r\n }\r\n\r\n p.resizeObserver?.disconnect();\r\n\r\n this._p = null;\r\n }\r\n\r\n get el() {\r\n return this._p.el;\r\n }\r\n\r\n /**\r\n * Enables the control\r\n * @param {boolean=true} enabled Should the control be enabled?\r\n * @returns {SelectBox}\r\n */\r\n enable(enabled) {\r\n const p = this._p;\r\n\r\n if (enabled === undefined) {\r\n enabled = true;\r\n }\r\n p.disabled = !enabled;\r\n p.el.setAttribute('aria-disabled', p.disabled.toString());\r\n p.input.disabled = !!p.disabled;\r\n\r\n const multiItemEls = p.multiItemEls;\r\n\r\n for (let itemEl of multiItemEls) {\r\n if (p.disabled) {\r\n itemEl.removeAttribute('tabindex');\r\n } else {\r\n itemEl.setAttribute('tabindex', '0');\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Is the control enabled?\r\n * @returns {boolean}\r\n */\r\n isEnabled() {\r\n return !this._p.disabled;\r\n }\r\n\r\n /**\r\n * Disables the control\r\n * @param {boolean=true} disabled Should the control be disabled?\r\n * @returns {SelectBox}\r\n */\r\n disable(disabled) {\r\n return this.enable(disabled === undefined ? false : !disabled);\r\n }\r\n\r\n /**\r\n * Is the control disabled?\r\n * @returns {boolean}\r\n */\r\n isDisabled() {\r\n return this._p.disabled;\r\n }\r\n\r\n /**\r\n * @param {string|string[]} classes\r\n * @returns {SelectBox}\r\n */\r\n setAdditionalClasses(classes) {\r\n const p = this._p;\r\n p.additionalClasses = classes;\r\n this._syncBaseClasses();\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n * @param {DropList.ItemBase[]} [items]\r\n * @param {boolean} [resetValues=true] should reset values to current values (essentially refresh the data based on items & values). If set to false, use setValue to set a fresh value\r\n * @returns {SelectBox}\r\n */\r\n setItems(items, resetValues = true) {\r\n const p = this._p;\r\n\r\n if (!items)\r\n items = [];\r\n\r\n p.items = items.slice(0);\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n\r\n if (resetValues) {\r\n this.setSelectedValues(this.getSelectedValues());\r\n }\r\n\r\n this._trigger('itemschanged', { term: null, mutated: true, count: this.getFilteredItemCount() });\r\n\r\n return this;\r\n }\r\n\r\n getFilteredItemCount() {\r\n const p = this._p;\r\n\r\n if (p.filteredItems)\r\n return p.filteredItems.length;\r\n\r\n if (p.items)\r\n return p.items.length;\r\n\r\n return 0;\r\n }\r\n\r\n isFilterPending() {\r\n const p = this._p;\r\n\r\n return !!(p.throttledUpdateListItems.isScheduled() ||\r\n (!p.filteredItems && (p.filterTerm || (p.filterOnEmptyTerm && p.filterFn))));\r\n }\r\n\r\n updateItemByValue(value, newItem) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n let existingItem = p.items.find(x => x[valueProp] === value);\r\n if (existingItem)\r\n Object.assign(existingItem, newItem);\r\n\r\n if (p.dropList) {\r\n p.dropList.updateItemByValue(value, newItem);\r\n }\r\n }\r\n\r\n /**\r\n * @returns {DropList.ItemBase[]|*}\r\n */\r\n getItems() {\r\n const p = this._p;\r\n return p.items;\r\n }\r\n\r\n /**\r\n * @param {boolean} clearable\r\n * @returns {SelectBox}\r\n */\r\n setClearable(clearable) {\r\n clearable = !!clearable;\r\n\r\n if (this._p.clearable === clearable)\r\n return this;\r\n\r\n this._p.clearable = !!clearable;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getClearable() {\r\n return this._p.clearable;\r\n }\r\n\r\n /**\r\n * @param {boolean} enabled\r\n * @returns {SelectBox}\r\n */\r\n setHasOpenIndicator(enabled) {\r\n enabled = !!enabled;\r\n\r\n if (this._p.hasOpenIndicator === enabled)\r\n return this;\r\n\r\n this._p.hasOpenIndicator = enabled;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getHasOpenIndicator() {\r\n return this._p.hasOpenIndicator;\r\n }\r\n\r\n /**\r\n * @param {string} placeholder\r\n * @returns {SelectBox}\r\n */\r\n setPlaceholder(placeholder) {\r\n this._p.placeholder = placeholder == null ? '' : String(placeholder);\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n getPlaceHolder() {\r\n return this._p.placeholder;\r\n }\r\n\r\n /**\r\n * @param {string} term\r\n * @param {boolean} [performSearch=false] should actually perform the search, or just set the input's text?\r\n * @returns {SelectBox}\r\n */\r\n setSearchTerm(term, performSearch = false) {\r\n const p = this._p;\r\n\r\n if (!p.input) return this;\r\n\r\n p.input.value = term;\r\n\r\n this._scheduleSync('resize_input');\r\n\r\n if (performSearch) {\r\n p.filterTerm = p.input.value.trim();\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n\r\n this._trigger('search', { value: p.input.value });\r\n p.throttledUpdateListItems();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n getSearchTerm() {\r\n const p = this._p;\r\n if (p.input)\r\n return p.input.value;\r\n return '';\r\n }\r\n\r\n /**\r\n * @param {boolean} sortSelectedItems\r\n * @returns {SelectBox}\r\n */\r\n setSortSelectedItems(sortSelectedItems) {\r\n const p = this._p;\r\n sortSelectedItems = !!sortSelectedItems;\r\n if (p.sortSelectedItems === sortSelectedItems)\r\n return this;\r\n\r\n p.sortSelectedItems = sortSelectedItems;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSortSelectedItemsEnabled() {\r\n return this._p.sortSelectedItems;\r\n }\r\n\r\n /**\r\n * @param {boolean} sortListItems\r\n * @returns {SelectBox}\r\n */\r\n setSortListItems(sortListItems) {\r\n const p = this._p;\r\n sortListItems = !!sortListItems;\r\n if (p.sortListItems === sortListItems)\r\n return this;\r\n\r\n p.sortListItems = sortListItems;\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSortListItemsEnabled() {\r\n return this._p.sortListItems;\r\n }\r\n\r\n /**\r\n * @param {boolean} sortListCheckedFirst\r\n * @returns {SelectBox}\r\n */\r\n setSortListCheckedFirst(sortListCheckedFirst) {\r\n const p = this._p;\r\n sortListCheckedFirst = !!sortListCheckedFirst;\r\n if (p.sortCheckedFirst === sortListCheckedFirst)\r\n return this;\r\n\r\n p.sortCheckedFirst = sortListCheckedFirst;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSortListCheckedFirstEnabled() {\r\n return this._p.sortListCheckedFirst;\r\n }\r\n\r\n /**\r\n * @param {*[]} values\r\n * @returns {SelectBox}\r\n */\r\n setStickyValues(values) {\r\n const p = this._p;\r\n\r\n p.stickyValues = Array.isArray(values) ? new Set(values) : null;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {*[]}\r\n */\r\n getStickyValues() {\r\n return this._p.stickyValues ? Array.from(this._p.stickyValues) : null;\r\n }\r\n\r\n /**\r\n * @param {function(a: DropList.ItemBase, b: DropList.ItemBase):number} comparator\r\n * @returns {SelectBox}\r\n */\r\n setSortItemComparator(comparator) {\r\n const p = this._p;\r\n if (p.sortItemComparator === comparator)\r\n return this;\r\n\r\n p.sortItemComparator = comparator;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {function(a: DropList.ItemBase, b: DropList.ItemBase):number}\r\n */\r\n getSortItemComparator() {\r\n return this._p.sortItemComparator;\r\n }\r\n\r\n /**\r\n * @param {boolean} splitListCheckedGroups\r\n * @returns {SelectBox}\r\n */\r\n setSplitListCheckedGroups(splitListCheckedGroups) {\r\n const p = this._p;\r\n splitListCheckedGroups = !!splitListCheckedGroups;\r\n if (p.splitListCheckedGroups === splitListCheckedGroups)\r\n return this;\r\n\r\n p.splitListCheckedGroups = splitListCheckedGroups;\r\n p.itemsChanged = true;\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSplitListCheckedGroupsEnabled() {\r\n return this._p.splitListCheckedGroups;\r\n }\r\n\r\n /**\r\n * @param {boolean} showSelection\r\n * @returns {SelectBox}\r\n */\r\n setShowSelection(showSelection) {\r\n const p = this._p;\r\n showSelection = !!showSelection;\r\n if (p.showSelection === showSelection)\r\n return this;\r\n\r\n this._p.showSelection = showSelection;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isShowSelectionEnabled() {\r\n return this._p.showSelection;\r\n }\r\n\r\n /**\r\n * @param {function(items: DropList.ItemBase[]):string} formatter\r\n * @returns {SelectBox}\r\n */\r\n setMultiPlaceholderFormatter(formatter) {\r\n const p = this._p;\r\n\r\n if (p.multiPlaceholderFormatter === formatter)\r\n return this;\r\n\r\n this._p.multiPlaceholderFormatter = formatter;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {boolean|'touch'} value\r\n * @returns {SelectBox}\r\n */\r\n setBlurOnSingleSelection(value) {\r\n const p = this._p;\r\n if (p.blurOnSingleSelection === value)\r\n return this;\r\n\r\n this._p.blurOnSingleSelection = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean|'touch'}\r\n */\r\n getBlurOnSingleSelection() {\r\n return this._p.blurOnSingleSelection;\r\n }\r\n\r\n /**\r\n * @param {boolean} multi\r\n * @returns {SelectBox}\r\n */\r\n setMulti(multi) {\r\n const p = this._p;\r\n multi = !!multi;\r\n if (p.multi === multi)\r\n return this;\r\n\r\n p.multi = multi;\r\n\r\n this._setupDropdownMenu();\r\n\r\n // move to correct parent\r\n remove(p.clearButtonWrapper);\r\n delete p.clearButtonWrapper;\r\n\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isMultiEnabled() {\r\n return this._p.multi;\r\n }\r\n\r\n /**\r\n * @param {boolean} searchable\r\n * @returns {SelectBox}\r\n */\r\n setSearchable(searchable) {\r\n const p = this._p;\r\n searchable = !!searchable;\r\n if (p.searchable === searchable)\r\n return this;\r\n\r\n p.searchable = searchable;\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isSearchableEnabled() {\r\n return this._p.searchable;\r\n }\r\n\r\n /**\r\n * @param {string} noResultsText\r\n * @returns {SelectBox}\r\n */\r\n setNoResultsText(noResultsText) {\r\n this._p.noResultsText = noResultsText;\r\n this._scheduleSync('full');\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string}\r\n */\r\n getNoResultsText() {\r\n return this._p.noResultsText;\r\n }\r\n\r\n /**\r\n * @param {number} window\r\n * @returns {SelectBox}\r\n */\r\n setFilterThrottleWindow(window) {\r\n const p = this._p;\r\n p.filterThrottleWindow = window;\r\n\r\n let isScheduled = p.throttledUpdateListItems ? p.throttledUpdateListItems.isScheduled() : false;\r\n\r\n if (p.throttledUpdateListItems)\r\n p.throttledUpdateListItems.cancel();\r\n\r\n p.throttledUpdateListItems = throttle(() => this._updateListItems(), p.filterThrottleWindow, true);\r\n\r\n if (isScheduled)\r\n p.throttledUpdateListItems();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {number}\r\n */\r\n getFilterThrottleWindow() {\r\n return this._p.filterThrottleWindow;\r\n }\r\n\r\n /**\r\n * @param {boolean} value\r\n * @returns {SelectBox}\r\n */\r\n setFilterOnEmptyTerm(value) {\r\n const p = this._p;\r\n p.filterOnEmptyTerm = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getFilterOnEmptyTerm() {\r\n return this._p.filterOnEmptyTerm;\r\n }\r\n\r\n /**\r\n * @param {DropList.Options} listOptions\r\n * @returns {SelectBox}\r\n */\r\n setListOptions(listOptions) {\r\n const p = this._p;\r\n p.listOptions = listOptions;\r\n this._setupDropdownMenu();\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox})|null\r\n */\r\n setRenderSingleItem(render, unrender) {\r\n const p = this._p;\r\n p.renderSingleItem = render;\r\n p.unrenderSingleItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox}\r\n */\r\n setRenderMultiItem(render, unrender) {\r\n const p = this._p;\r\n p.renderMultiItem = render;\r\n p.unrenderMultiItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox}\r\n */\r\n setRenderRestMultiItem(render, unrender) {\r\n const p = this._p;\r\n p.renderRestMultiItem = render;\r\n p.unrenderRestMultiItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element):(*|false))|null} render\r\n * @param {(function(item: DropList.ItemBase, itemEl: Element))|null} unrender\r\n * @returns {SelectBox}\r\n */\r\n setRenderNoResultsItem(render, unrender) {\r\n const p = this._p;\r\n p.renderNoResultsItem = render;\r\n p.unrenderNoResultsItem = unrender;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {SelectBox}\r\n */\r\n setLabelProp(prop) {\r\n const p = this._p;\r\n p.labelProp = prop;\r\n\r\n\t\tif (p.dropList)\r\n\t\t\tp.dropList.setLabelProp(prop);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {SelectBox}\r\n */\r\n setValueProp(prop) {\r\n const p = this._p;\r\n p.valueProp = prop;\r\n\r\n\t\tif (p.dropList)\r\n\t\t\tp.dropList.setValueProp(prop);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} prop\r\n * @returns {SelectBox}\r\n */\r\n setMultiItemLabelProp(prop) {\r\n const p = this._p;\r\n p.multiItemLabelProp = prop;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {number|null|undefined} value\r\n * @returns {SelectBox}\r\n */\r\n setMaxMultiItems(value) {\r\n const p = this._p;\r\n p.maxMultiItems = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {function(count: number, items: DropList.ItemBase[]):string|null|undefined} value\r\n * @returns {SelectBox}\r\n */\r\n setMultiItemsRestLabelProvider(value) {\r\n const p = this._p;\r\n p.multiItemsRestLabelProvider = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {function(items: DropList.ItemBase[], term: string):(DropList.ItemBase[]|null)} fn\r\n * @returns {SelectBox}\r\n */\r\n setFilterFn(fn) {\r\n const p = this._p;\r\n p.filterFn = fn;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {function(items: DropList.ItemBase[], term: string):(DropList.ItemBase[]|null)}\r\n */\r\n getFilterFn() {\r\n return this._p.filterFn;\r\n }\r\n\r\n /**\r\n * Focus on input element\r\n * @returns {SelectBox}\r\n */\r\n focusInput() {\r\n const p = this._p;\r\n\r\n if (p.input)\r\n p.input.focus();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Remvoe focus from the input element\r\n * @returns {SelectBox}\r\n */\r\n blurInput() {\r\n const p = this._p;\r\n\r\n if (p.input)\r\n p.input.blur();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Removes all selected items\r\n * @returns {SelectBox}\r\n */\r\n clear() {\r\n const p = this._p;\r\n\r\n let clearEvt = { cancel: false };\r\n this._trigger('clear:before', clearEvt);\r\n if (clearEvt.cancel)\r\n return this;\r\n\r\n p.selectedItems = [];\r\n p.selectedValues = [];\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n\r\n this._trigger('clear');\r\n\r\n if (this[DestroyedSymbol]) return this; // destroyed by event handler\r\n\r\n this._updateListItems();\r\n\r\n this._setInputText('');\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns a single value or an array of selected values - depending on `multi` prop\r\n * @public\r\n * @returns {*[]}\r\n */\r\n getValue() {\r\n const p = this._p;\r\n if (p.multi)\r\n return p.selectedValues.slice(0);\r\n else if (p.selectedValues.length > 0)\r\n return p.selectedValues[0];\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Selects the specified value or multiple values - depending on `multi` prop\r\n * @public\r\n * @param {*|*[]} value - if `multi`, then an array of values to select, otherwise - a single value to select\r\n * @returns {SelectBox}\r\n */\r\n setValue(value) {\r\n const p = this._p;\r\n if (p.multi)\r\n return this.setSelectedValues(Array.isArray(value) ? value : value !== undefined ? [value] : []);\r\n else\r\n return this.setSelectedValues(value !== undefined ? [value] : []);\r\n }\r\n\r\n /**\r\n * Returns an array of selected values\r\n * @public\r\n * @returns {*[]}\r\n */\r\n getSelectedValues() {\r\n const p = this._p;\r\n return p.selectedValues.slice(0);\r\n }\r\n\r\n /**\r\n * Selects the specified values\r\n * @public\r\n * @param {*[]} values - an array of *values* to select\r\n * @returns {SelectBox}\r\n */\r\n setSelectedValues(values) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n if (!p.multi) {\r\n values = values.slice(0, 1);\r\n }\r\n\r\n let set = new Set();\r\n let selectedValues = [];\r\n let selectedItems = [];\r\n\r\n for (let value of values) {\r\n if (set.has(value))\r\n continue;\r\n set.add(value);\r\n\r\n selectedValues.push(value);\r\n\r\n let item = p.items.find(x => x[valueProp] === value);\r\n if (item !== undefined) {\r\n selectedItems.push(item);\r\n } else {\r\n selectedItems.push({ [p.valueProp]: value });\r\n }\r\n }\r\n\r\n p.selectedValues = selectedValues;\r\n p.selectedItems = selectedItems;\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n\r\n this._updateListItems();\r\n this._scheduleSync('full');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns the count of selected values\r\n * @public\r\n * @returns {number}\r\n */\r\n getSelectedValueCount() {\r\n const p = this._p;\r\n return p.selectedValues.length;\r\n }\r\n\r\n /**\r\n * Returns an array of selected items\r\n * @public\r\n * @returns {Array.<Object>}\r\n */\r\n getSelectedItems() {\r\n const p = this._p;\r\n return p.selectedItems.slice(0);\r\n }\r\n\r\n /**\r\n * Sets the specified items to \"checked\" mode.\r\n * An array of items is passed, not values, because we need to keep track if items,\r\n * and if we already have the array of items then this spares the process of searching for the items by values.\r\n * @public\r\n * @param {DropList.ItemBase[]} items - an array of *items* to select (not values)\r\n * @returns {SelectBox}\r\n */\r\n setSelectedItems(items) {\r\n this._setSelectedItems(items);\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {SelectBox}\r\n */\r\n openList() {\r\n const p = this._p;\r\n\r\n if (p.dropList.isVisible())\r\n return this;\r\n\r\n if (p.isLoadingMode && p.items.length === 0)\r\n return this;\r\n\r\n this._trigger('open:before', { list: p.dropList });\r\n\r\n p.dropList.show(this._getDropListPositionOptions());\r\n this._repositionDropList();\r\n\r\n // Another one in case the droplist position messed with screen layout.\r\n // If the out element's bounds stayed the same - nothing will be recalculated.\r\n // So this is *not* expensive.\r\n this._repositionDropList();\r\n\r\n if (p.dropList.hasFocusedItem()) {\r\n p.dropList.setFocusedItemAtIndex(p.dropList.getFocusedItemIndex());\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {SelectBox}\r\n */\r\n closeList() {\r\n const p = this._p;\r\n\r\n if (this[DestroyedSymbol])\r\n return this;\r\n\r\n if (!p.dropList.isVisible())\r\n return this;\r\n\r\n p.dropList.hide();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {boolean} [open]\r\n * @returns {SelectBox}\r\n */\r\n toggleList(open) {\r\n const p = this._p;\r\n\r\n let shouldOpen = open === undefined ? !p.dropList.isVisible() : !!open;\r\n\r\n if (shouldOpen)\r\n return this.openList();\r\n else return this.closeList();\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n isListOpen() {\r\n return !!this._p.dropListVisible;\r\n }\r\n\r\n /**\r\n * @param {boolean} [on]\r\n * @returns {SelectBox}\r\n */\r\n toggleLoading(on) {\r\n return this.setIsLoadingMode(on === undefined ? !this.getIsLoadingMode() : !!on);\r\n }\r\n\r\n /**\r\n * @param {boolean} isLoadingMode\r\n * @returns {SelectBox}\r\n */\r\n setIsLoadingMode(isLoadingMode) {\r\n const p = this._p;\r\n\r\n isLoadingMode = isLoadingMode === undefined ? true : !!isLoadingMode;\r\n\r\n if (p.isLoadingMode === isLoadingMode)\r\n return this;\r\n\r\n p.isLoadingMode = isLoadingMode;\r\n\r\n if (p.isLoadingMode && p.items.length === 0 && this.isListOpen()) {\r\n this.closeList();\r\n } else if (!p.isLoadingMode && document.activeElement &&\r\n ((p.multi || p.searchable) && p.input.contains(document.activeElement) ||\r\n (!p.multi && !p.searchable) && p.el.contains(document.activeElement))) {\r\n this.openList();\r\n }\r\n\r\n this._scheduleSync();\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n getIsLoadingMode() {\r\n return this._p.isLoadingMode;\r\n }\r\n\r\n /**\r\n * Can be called in case that the selectbox was attached to the dom late and has a weird size.\r\n * @returns {SelectBox}\r\n */\r\n refreshSize() {\r\n this._resizeInput();\r\n return this;\r\n }\r\n\r\n /**\r\n * Register an event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {SelectBox}\r\n */\r\n on(/**string|'*'*/event, /**Function?*/handler) {\r\n this._p.mitt.on(event, handler);\r\n return this;\r\n }\r\n\r\n /**\r\n * Register a one time event handler\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {SelectBox}\r\n */\r\n once(/**string|'*'*/event, /**Function?*/handler) {\r\n let wrapped = (value) => {\r\n this._p.mitt.off(event, wrapped);\r\n handler(value);\r\n };\r\n this._p.mitt.on(event, wrapped);\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove an `handler` for `event`, all events for `event`, or all events completely.\r\n * @param {(string|'*')?} event\r\n * @param {function(any)} handler\r\n * @returns {SelectBox}\r\n */\r\n off(/**(string|'*')?*/event, /**Function?*/handler) {\r\n if (!event && !event) {\r\n this._p.mitt.all.clear();\r\n } else {\r\n this._p.mitt.off(event, handler);\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Emit an event\r\n * @param {string} event\r\n * @param {any} value\r\n * @returns {SelectBox}\r\n */\r\n emit(/**string|'*'*/event, /**any?*/value) {\r\n this._p.mitt.emit(event, value);\r\n return this;\r\n }\r\n\r\n /** @private */\r\n _renderBase() {\r\n const p = this._p;\r\n\r\n if (!p.inputBackBuffer) {\r\n p.inputBackBuffer = createElement('span', {\r\n css: {\r\n position: 'absolute',\r\n zIndex: -1,\r\n left: 0,\r\n top: '-9999px',\r\n whiteSpace: 'pre',\r\n },\r\n });\r\n }\r\n\r\n if (!p.input) {\r\n p.inputWrapper = createElement('span',\r\n {\r\n class: `${p.baseClassName}__search_wrapper`,\r\n },\r\n p.input = createElement('input', {\r\n class: `${p.baseClassName}__search_field`,\r\n type: 'search',\r\n autocomplete: 'off',\r\n autocorrect: 'off',\r\n autocapitalize: 'off',\r\n spellcheck: 'false',\r\n role: 'textbox',\r\n 'aria-autocomplete': 'list',\r\n readOnly: !(p.searchable || p.multi),\r\n }),\r\n );\r\n }\r\n\r\n if (p.multi) {\r\n if (p.singleWrapper) {\r\n this._cleanupSingleWrapper();\r\n remove(p.singleWrapper);\r\n delete p.singleWrapper;\r\n }\r\n\r\n if (!p.list) {\r\n // Moving `inputWrapper` to a new parent may cause a 'blur' event, and an unwanted chain reaction!\r\n // So we're unregistering those events here.\r\n this._unregisterDropdownEvents();\r\n\r\n // Restore focus to this one later if we affected it\r\n const lastActiveElement = document.activeElement;\r\n\r\n p.list = createElement('ul', {\r\n class: `${p.baseClassName}__list`,\r\n });\r\n p.el.appendChild(p.list);\r\n p.list.appendChild(p.inputWrapper);\r\n p.el.classList.remove(`${p.baseClassName}__single`);\r\n p.el.classList.add(`${p.baseClassName}__multi`);\r\n\r\n // Hook clear and remove\r\n p.sink\r\n .add(p.list, 'click', (evt) => {\r\n if (!closestUntil(evt.target, `.${p.baseClassName}__item_remove`, evt.currentTarget))\r\n return;\r\n\r\n if (p.disabled) return;\r\n\r\n this._removeMultiItemFromEvent(\r\n /**@type Element*/\r\n closestUntil(evt.target, `.${p.baseClassName}__item`, evt.currentTarget),\r\n evt);\r\n })\r\n .add(p.list, 'keydown', (/**KeyboardEvent*/evt) => {\r\n if (!closestUntil(evt.target, `.${p.baseClassName}__item`, evt.currentTarget))\r\n return;\r\n\r\n this._handleMultiKeydown(evt);\r\n });\r\n\r\n if (lastActiveElement === p.input)\r\n p.input.focus();\r\n\r\n this._registerDropdownEvents();\r\n }\r\n } else {\r\n if (p.list) {\r\n remove(p.list);\r\n p.sink.remove(p.list);\r\n delete p.list;\r\n }\r\n\r\n if (!p.singleWrapper) {\r\n // Moving `inputWrapper` to a new parent may cause a 'blur' event, and an unwanted chain reaction!\r\n // So we're unregistering those events here.\r\n this._unregisterDropdownEvents();\r\n\r\n // Restore focus to this one later if we affected it\r\n const lastActiveElement = document.activeElement;\r\n\r\n p.singleWrapper = createElement('div', {\r\n class: `${p.baseClassName}__single_wrapper`,\r\n });\r\n p.el.appendChild(p.singleWrapper);\r\n p.el.appendChild(p.inputWrapper);\r\n p.el.classList.remove(`${p.baseClassName}__multi`);\r\n p.el.classList.add(`${p.baseClassName}__single`);\r\n\r\n if (lastActiveElement === p.input)\r\n p.input.focus();\r\n\r\n this._registerDropdownEvents();\r\n }\r\n }\r\n\r\n if (p.hasOpenIndicator !== !!p.openIndicator) {\r\n if (p.hasOpenIndicator) {\r\n p.openIndicator = createElement('span', { class: `${p.baseClassName}__open_indicator` });\r\n p.el.appendChild(p.openIndicator);\r\n } else {\r\n remove(p.openIndicator);\r\n delete p.openIndicator;\r\n p.el.classList.remove(`${p.baseClassName}__has_open_indicator`);\r\n }\r\n }\r\n\r\n if (p.isLoadingMode !== !!p.spinner) {\r\n if (p.isLoadingMode) {\r\n p.spinner = createElement('span', { class: `${p.baseClassName}__spinner` });\r\n p.el.appendChild(p.spinner);\r\n p.el.classList.add(`${p.baseClassName}__has_spinner`);\r\n } else {\r\n remove(p.spinner);\r\n delete p.spinner;\r\n p.el.classList.remove(`${p.baseClassName}__has_spinner`);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @private\r\n */\r\n _syncBaseClasses() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!el)\r\n return;\r\n\r\n let classes = [p.baseClassName];\r\n\r\n if (p.multi)\r\n classes.push(`${p.baseClassName}__multi`);\r\n else classes.push(`${p.baseClassName}__single`);\r\n\r\n if (this.isListOpen())\r\n classes.push(`${p.baseClassName}__open_list`);\r\n else classes.push(`${p.baseClassName}__closed_list`);\r\n\r\n if (p.hasOpenIndicator)\r\n classes.push(`${p.baseClassName}__has_open_indicator`);\r\n\r\n if (p.clearButtonWrapper)\r\n classes.push(`${p.baseClassName}__has_clear`);\r\n\r\n if (p.isLoadingMode)\r\n classes.push(`${p.baseClassName}__has_spinner`);\r\n\r\n if (p.selectedValues.length === 0)\r\n classes.push(`${p.baseClassName}__empty_selection`);\r\n\r\n if (p.selectedValues.length > 0)\r\n classes.push(`${p.baseClassName}__has_selection`);\r\n\r\n if (p.searchable || p.multi)\r\n classes.push(`${p.baseClassName}__searchable`);\r\n\r\n if (p.additionalClasses) {\r\n classes = classes.concat(p.additionalClasses);\r\n }\r\n\r\n el.className = classes.join(' ');\r\n }\r\n\r\n /** @private */\r\n _setupDropdownMenu() {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n if (p.dropList) {\r\n p.dropList.destroy();\r\n delete p.dropList;\r\n p.itemsChanged = true;\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n }\r\n\r\n const renderNoResultsItem = p.renderNoResultsItem;\r\n const unrenderNoResultsItem = p.unrenderNoResultsItem;\r\n const customRenderItem = (p.listOptions || {}).renderItem;\r\n const customUnrenderItem = (p.listOptions || {}).unrenderItem;\r\n\r\n const renderItem = (renderNoResultsItem || customRenderItem) ? (item, itemEl) => {\r\n if (item && item[valueProp] === NoResultsItemSymbol) {\r\n if (renderNoResultsItem && renderNoResultsItem(item, itemEl) !== false) {\r\n return true;\r\n }\r\n\r\n itemEl.appendChild(createElement('div', {\r\n class: 'droplist-no-results-content',\r\n textContent: p.noResultsText,\r\n }));\r\n return true;\r\n } else {\r\n if (customRenderItem)\r\n return customRenderItem(item, itemEl);\r\n }\r\n return false;\r\n } : null;\r\n\r\n const unrenderItem = (unrenderNoResultsItem || customRenderItem) ? (item, itemEl) => {\r\n if (item && item[valueProp] === NoResultsItemSymbol) {\r\n if (unrenderNoResultsItem)\r\n return unrenderNoResultsItem(item, itemEl);\r\n } else {\r\n if (customUnrenderItem)\r\n return customUnrenderItem(item, itemEl);\r\n }\r\n return false;\r\n } : null;\r\n\r\n const dropList = p.dropList = new DropList({\r\n virtualMinItems: 10,\r\n\r\n ...p.listOptions,\r\n\r\n renderItem: renderItem,\r\n unrenderItem: unrenderItem,\r\n\r\n multi: p.multi,\r\n capturesFocus: false,\r\n\r\n labelProp: p.labelProp,\r\n valueProp: p.valueProp,\r\n\r\n on: (name, event) => {\r\n switch (name) {\r\n case 'show:before': {\r\n p.dropListVisible = true;\r\n p.el.setAttribute('aria-expanded', 'true');\r\n p.el.classList.add(`${p.baseClassName}__open_list`);\r\n p.el.classList.remove(`${p.baseClassName}__closed_list`);\r\n\r\n if (p.resortBySelectionNeeded && (p.sortListCheckedFirst && p.multi))\r\n p.itemsChanged = true;\r\n\r\n this._updateListItems();\r\n this._trigger('open', { list: dropList });\r\n\r\n this._startTrackingPresence();\r\n\r\n p.sink.add(window, 'resize.trackposition', () => this._repositionDropList());\r\n\r\n let parent = p.el.parentNode;\r\n while (parent) {\r\n if (parent.scrollHeight > parent.offsetHeight ||\r\n parent.scrollWidth > parent.offsetWidth) {\r\n if (parent === document.documentElement) {\r\n parent = window;\r\n }\r\n p.sink.add(parent, 'scroll.trackposition', () => this._repositionDropList());\r\n }\r\n parent = parent.parentNode;\r\n }\r\n }\r\n break;\r\n\r\n case 'hide': {\r\n p.dropListVisible = false;\r\n p.el.setAttribute('aria-expanded', 'false');\r\n p.el.classList.remove(`${p.baseClassName}__open_list`);\r\n p.el.classList.add(`${p.baseClassName}__closed_list`);\r\n\r\n if (!p.multi) {\r\n this._setInputText('');\r\n this._scheduleSync();\r\n }\r\n\r\n this._trigger('close');\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n this._stopTrackingPresence();\r\n p.sink.remove(null, '.trackposition');\r\n }\r\n break;\r\n\r\n case 'check': {\r\n if (!p.multi) return;\r\n\r\n const item = /**@type DropList.Item*/event.item;\r\n const value = event.value;\r\n\r\n let checked = event.checked;\r\n if (event.isGroup) return; // Ignore groups\r\n\r\n let selEvt = { value: value, item: item, cancel: false };\r\n this._trigger((checked ? 'addsel' : 'removesel') + ':before', selEvt);\r\n\r\n if (selEvt.cancel) {\r\n // Rollback that check\r\n p.dropList.setItemChecked(value, !checked);\r\n return;\r\n }\r\n\r\n if (checked) {\r\n p.selectedItems.push(item);\r\n p.selectedValues.push(value);\r\n } else {\r\n const idx = p.selectedValues.indexOf(value);\r\n if (idx !== -1) {\r\n p.selectedItems.splice(idx, 1);\r\n p.selectedValues.splice(idx, 1);\r\n }\r\n }\r\n\r\n // If we are in context of group, then there are lots of syncs coming, so do not do it now\r\n const hasGroupSync = !!event.isCheckingGroup;\r\n\r\n if (p.showSelection) {\r\n if (checked) {\r\n if (dropList.itemCount() === 1) {\r\n this._setInputText('');\r\n }\r\n\r\n if (p.sortSelectedItems) {\r\n if (!hasGroupSync)\r\n this._scheduleSync('full');\r\n } else {\r\n if (p.maxMultiItems != null &&\r\n p.selectedItems.filter(x => !x._group).length > p.maxMultiItems) {\r\n this._scheduleSync('addOrUpdateMultiItemRestElement');\r\n } else {\r\n this._scheduleSync('addMultiItemElement', item);\r\n }\r\n\r\n if (!hasGroupSync)\r\n this._scheduleSync();\r\n }\r\n } else {\r\n if (p.maxMultiItems != null &&\r\n p.selectedItems.filter(x => !x._group).length === p.maxMultiItems) {\r\n this._scheduleSync('removeMultiItemRestElement');\r\n } else {\r\n this._scheduleSync('removeMultiItemElement', item);\r\n }\r\n\r\n if (!hasGroupSync)\r\n this._scheduleSync();\r\n }\r\n }\r\n\r\n this._trigger(checked ? 'addsel' : 'removesel', { value: value, item: item });\r\n }\r\n break;\r\n\r\n case 'groupcheck': {\r\n if (!p.multi) return;\r\n\r\n if (event.affectedItems) {\r\n this._scheduleSync(p.sortSelectedItems ? 'full' : null);\r\n }\r\n }\r\n break;\r\n\r\n case 'select': {\r\n if (p.multi) return;\r\n\r\n const item = event.item;\r\n const value = event.value;\r\n\r\n let selectEvt = { value: value, item: item, cancel: false };\r\n this._trigger('select:before', selectEvt);\r\n\r\n if (selectEvt.cancel)\r\n return;\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n this._setSelectedItems([item]);\r\n this._trigger('select', { value: value, item: item });\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n this.closeList();\r\n\r\n if (p.blurOnSingleSelection === 'touch' && hasTouchCapability ||\r\n p.blurOnSingleSelection !== 'touch' && p.blurOnSingleSelection) {\r\n p.input && p.input.blur();\r\n }\r\n }\r\n break;\r\n }\r\n },\r\n });\r\n\r\n this._registerDropdownEvents();\r\n }\r\n\r\n _unregisterDropdownEvents() {\r\n const p = this._p;\r\n\r\n p.sink.remove(null, '.dropdown');\r\n }\r\n\r\n _registerDropdownEvents() {\r\n const p = this._p;\r\n\r\n this._unregisterDropdownEvents();\r\n\r\n const dropList = p.dropList;\r\n if (!dropList) return;\r\n\r\n let avoidToggleFromClick = false,\r\n currentTouchId = null,\r\n suppressKeyPress = false,\r\n suppressKeyPressRepeat = false;\r\n\r\n const keyEventsTarget = p.multi || p.searchable ? p.input : p.el;\r\n\r\n p.sink\r\n .add(keyEventsTarget, 'keydown.dropdown', evt => {\r\n if ((/**@type HTMLInputElement*/evt.currentTarget).readOnly)\r\n return;\r\n\r\n suppressKeyPress = false;\r\n suppressKeyPressRepeat = false;\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n case VALUE_PAGE_DOWN:\r\n case VALUE_UP:\r\n case VALUE_DOWN:\r\n suppressKeyPress = true;\r\n evt.preventDefault();\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n if (dropList.isVisible())\r\n dropList.previousPage(evt);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n if (dropList.isVisible())\r\n dropList.nextPage(evt);\r\n break;\r\n case VALUE_UP:\r\n if (dropList.isVisible()) {\r\n dropList.previous(evt);\r\n } else {\r\n this._movePrev();\r\n }\r\n break;\r\n case VALUE_DOWN:\r\n if (dropList.isVisible()) {\r\n dropList.next(evt);\r\n } else {\r\n this._moveNext();\r\n }\r\n break;\r\n\r\n }\r\n break;\r\n\r\n case VALUE_SPACE:\r\n if (p.lastKeyAllowsSpaceToggle) {\r\n if (dropList.isVisible() && dropList.hasFocusedItem()) {\r\n suppressKeyPress = true;\r\n suppressKeyPressRepeat = true;\r\n if (p.multi)\r\n dropList.toggleFocusedItem(evt);\r\n else dropList.triggerItemSelection(evt);\r\n evt.preventDefault();\r\n }\r\n }\r\n break;\r\n\r\n case VALUE_ENTER:\r\n if (dropList.isVisible() && dropList.hasFocusedItem()) {\r\n suppressKeyPress = true;\r\n suppressKeyPressRepeat = true;\r\n evt.preventDefault();\r\n dropList.triggerItemSelection(evt);\r\n }\r\n\r\n break;\r\n\r\n case VALUE_TAB:\r\n if (dropList.isVisible() && dropList.hasFocusedItem()) {\r\n dropList.triggerItemSelection(evt);\r\n }\r\n break;\r\n\r\n case VALUE_ESCAPE:\r\n if (dropList.isVisible()) {\r\n dropList.hide(evt);\r\n evt.preventDefault();\r\n }\r\n break;\r\n\r\n default:\r\n suppressKeyPressRepeat = true;\r\n dropList._keydownFreeType(evt);\r\n break;\r\n }\r\n\r\n p.lastKeyAllowsSpaceToggle = evt.key === VALUE_UP ||\r\n evt.key === VALUE_DOWN ||\r\n evt.key === VALUE_PAGE_UP ||\r\n evt.key === VALUE_PAGE_DOWN ||\r\n (evt.key === VALUE_SPACE && !!p.lastKeyAllowsSpaceToggle);\r\n })\r\n .add(keyEventsTarget, 'keypress.dropdown', evt => {\r\n if (suppressKeyPress) {\r\n suppressKeyPress = false;\r\n evt.preventDefault();\r\n return;\r\n }\r\n\r\n if (suppressKeyPressRepeat)\r\n return;\r\n\r\n if (evt.key === VALUE_ENTER ||\r\n (\r\n evt.key === VALUE_SPACE &&\r\n p.lastKeyAllowsSpaceToggle &&\r\n !p.multi &&\r\n !dropList.hasFocusedItem()\r\n )\r\n ) {\r\n this.toggleList();\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n return;\r\n }\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n case VALUE_PAGE_DOWN:\r\n case VALUE_UP:\r\n case VALUE_DOWN:\r\n evt.preventDefault();\r\n\r\n switch (evt.key) {\r\n case VALUE_PAGE_UP:\r\n if (dropList.isVisible())\r\n dropList.previousPage(evt);\r\n break;\r\n case VALUE_PAGE_DOWN:\r\n if (dropList.isVisible())\r\n dropList.nextPage(evt);\r\n break;\r\n case VALUE_UP:\r\n if (dropList.isVisible()) {\r\n dropList.previous(evt);\r\n } else {\r\n this._movePrev();\r\n }\r\n break;\r\n case VALUE_DOWN:\r\n if (dropList.isVisible()) {\r\n dropList.next(evt);\r\n } else {\r\n this._moveNext();\r\n }\r\n break;\r\n }\r\n break;\r\n }\r\n });\r\n\r\n if (p.input) {\r\n p.sink\r\n .add(p.input, 'input.dropdown', () => {\r\n p.filterTerm = p.input.value.trim();\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n\r\n this._trigger('search', { value: p.input.value });\r\n\r\n p.throttledUpdateListItems();\r\n })\r\n .add(p.input, 'click.dropdown', () => {\r\n if (!p.multi && p.searchable) {\r\n this.openList();\r\n }\r\n })\r\n .add(p.input, 'focus.dropdown', () => {\r\n this._trigger('search:focus');\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n avoidToggleFromClick = false;\r\n this.openList();\r\n\r\n avoidToggleFromClick = true;\r\n setTimeout(() => { avoidToggleFromClick = false; }, 10);\r\n })\r\n .add(p.input, 'blur.dropdown', () => {\r\n this._trigger('search:blur');\r\n\r\n if (this[DestroyedSymbol]) return; // destroyed by event handler\r\n\r\n if (p.throttledUpdateListItems)\r\n p.throttledUpdateListItems.cancel();\r\n\r\n this.closeList();\r\n });\r\n }\r\n\r\n p.sink\r\n .add(p.el, 'mousedown.dropdown', () => {\r\n if (!p.multi && !p.searchable && !avoidToggleFromClick) {\r\n this.toggleList();\r\n }\r\n avoidToggleFromClick = false;\r\n })\r\n .add(p.el, 'touchstart.dropdown', evt => {\r\n if (currentTouchId) return;\r\n currentTouchId = evt.changedTouches[0].identifier;\r\n\r\n if (this.isDisabled())\r\n return;\r\n\r\n if (closestUntil(evt.target, `.${p.baseClassName}__item,.${p.baseClassName}__clear`, p.el))\r\n return;\r\n\r\n let onTouchCancel = () => {\r\n currentTouchId = null;\r\n p.sink.remove(p.el, '.dropdown_touchextra');\r\n };\r\n\r\n (p.input || p.el).focus();\r\n\r\n p.sink\r\n .add(p.el, 'touchend.dropdown_touchextra', (tevt) => {\r\n let touch = Array.prototype.find.call(evt.changedTouches,\r\n touch => touch.identifier === currentTouchId);\r\n if (!touch) return onTouchCancel();\r\n\r\n tevt.preventDefault();\r\n onTouchCancel();\r\n })\r\n .add(p.el, 'touchmove.dropdown_touchextra', (tevt) => {\r\n tevt.preventDefault();\r\n })\r\n .add(p.el, 'touchcancel.dropdown_touchextra', onTouchCancel);\r\n });\r\n }\r\n\r\n _movePrev() {\r\n const p = this._p;\r\n\r\n if (this.isMultiEnabled()) return;\r\n\r\n let selectedItems = this.getSelectedItems();\r\n let items = p.filteredItems ?? p.items;\r\n if (p.currentItemsView && p.currentItemsView.length === items.length)\r\n items = p.currentItemsView;\r\n if ((items.length + (p.clearable ? 1 : 0)) > 1) {\r\n let nextIndex = selectedItems.length > 0 ? items.indexOf(selectedItems[0]) - 1 : (items.length - 1);\r\n if (nextIndex === -1 && !p.clearable)\r\n nextIndex = items.length - 1;\r\n this.setSelectedItems(nextIndex === -1 ? [] : [items[nextIndex]]);\r\n }\r\n }\r\n\r\n _moveNext() {\r\n const p = this._p;\r\n\r\n if (this.isMultiEnabled()) return;\r\n\r\n let selectedItems = this.getSelectedItems();\r\n let items = p.filteredItems ?? p.items;\r\n if (p.currentItemsView && p.currentItemsView.length === items.length)\r\n items = p.currentItemsView;\r\n if ((items.length + (p.clearable ? 1 : 0)) > 1) {\r\n let nextIndex = selectedItems.length > 0 ? items.indexOf(selectedItems[0]) + 1 : 0;\r\n if (nextIndex === items.length)\r\n nextIndex = p.clearable ? -1 : 0;\r\n this.setSelectedItems(nextIndex === -1 ? [] : [items[nextIndex]]);\r\n }\r\n }\r\n\r\n /** @private */\r\n _updateListItems() {\r\n const p = this._p;\r\n\r\n const dropList = p.dropList;\r\n if (!dropList || !p.dropListVisible)\r\n return;\r\n\r\n // For every search change, filteredItems is cleared.\r\n // If it's non-null here, then it means we have an extra call to _updateListItems, and not need to refilter.\r\n if (!p.filteredItems && (p.filterTerm || (p.filterOnEmptyTerm && p.filterFn))) {\r\n this._refilterItems();\r\n }\r\n\r\n if (p.itemsChanged || p.selectionChanged) {\r\n p.dropList._lastSerializedBox = null;\r\n }\r\n\r\n if (p.itemsChanged) {\r\n let items = p.filteredItems || p.items;\r\n if (p.sortListItems || (p.sortListCheckedFirst && p.multi)) {\r\n items = this._sortItems(items,\r\n p.sortListItems,\r\n p.sortListCheckedFirst && p.multi,\r\n p.splitListCheckedGroups);\r\n }\r\n dropList.removeAllItems();\r\n\r\n if (items.length === 0 && p.noResultsText) {\r\n items = [{\r\n [p.labelProp]: p.noResultsText,\r\n [p.valueProp]: NoResultsItemSymbol,\r\n _nointeraction: true,\r\n _nocheck: true,\r\n }];\r\n }\r\n\r\n dropList.addItems(items);\r\n p.currentItemsView = items;\r\n p.itemsChanged = false;\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = false;\r\n }\r\n\r\n let hasRefocusedItem = false;\r\n\r\n if (p.selectionChanged) {\r\n if (p.multi) {\r\n p.dropList.setCheckedValues(p.selectedValues);\r\n } else {\r\n const singleItemIndex = p.dropList.itemIndexByValue(this.getValue());\r\n\r\n p.dropList\r\n .setFocusedItemAtIndex(singleItemIndex)\r\n .setSingleSelectedItemAtIndex(singleItemIndex);\r\n\r\n hasRefocusedItem = p.dropList.hasFocusedItem();\r\n }\r\n p.selectionChanged = false;\r\n }\r\n\r\n this._repositionDropList();\r\n\r\n if (hasRefocusedItem) {\r\n p.dropList.setFocusedItemAtIndex(p.dropList.getFocusedItemIndex());\r\n }\r\n }\r\n\r\n _refilterItems() {\r\n const p = this._p;\r\n\r\n const term = p.filterTerm;\r\n\r\n if (term || (p.filterOnEmptyTerm && p.filterFn)) {\r\n let fn = p.filterFn;\r\n\r\n let filteredItems;\r\n\r\n if (typeof fn === 'function') {\r\n filteredItems = p.filterFn(p.items, term);\r\n }\r\n\r\n // If there was no filter function, or it gave up on filtering.\r\n if (!Array.isArray(filteredItems)) {\r\n if (term) {\r\n const matcher = new RegExp(escapeRegex(term), 'i');\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n\r\n filteredItems = p.items.filter(x => {\r\n if (x._group) return true;\r\n return matcher.test(x[labelProp] || x[multiItemLabelProp]);\r\n });\r\n } else {\r\n filteredItems = null;\r\n }\r\n }\r\n\r\n p.filteredItems = filteredItems;\r\n\r\n if (filteredItems) {\r\n // Clean up groups without children\r\n\r\n let lastGroup = -1;\r\n let len = filteredItems.length;\r\n\r\n for (let i = 0; i < len; i++) {\r\n let item = filteredItems[i];\r\n\r\n if (item._group) {\r\n if (lastGroup !== -1 && lastGroup === i - 1) {\r\n // It was an empty group\r\n filteredItems.splice(lastGroup, 1);\r\n i--;\r\n len--;\r\n }\r\n\r\n lastGroup = i;\r\n }\r\n }\r\n\r\n if (lastGroup !== -1) {\r\n if (lastGroup === len - 1) {\r\n // It was an empty group\r\n filteredItems.splice(lastGroup, 1);\r\n }\r\n }\r\n }\r\n } else {\r\n p.filteredItems = null;\r\n }\r\n\r\n this._trigger('itemschanged', { term: term, mutated: false, count: this.getFilteredItemCount() });\r\n\r\n p.itemsChanged = true;\r\n }\r\n\r\n _setSelectedItems(items) {\r\n const p = this._p, valueProp = p.valueProp;\r\n\r\n if (p.multi) {\r\n p.selectedItems = items.filter(x => x[valueProp] !== undefined);\r\n p.selectedValues = p.selectedItems.map(x => x[valueProp]);\r\n } else {\r\n p.selectedItems = items.slice(0, 1);\r\n p.selectedValues = items.slice(0, 1).map(x => x[valueProp]);\r\n }\r\n\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n\r\n this._updateListItems();\r\n this._scheduleSync('full');\r\n }\r\n\r\n _scheduleSync(mode, data) {\r\n const p = this._p;\r\n\r\n if (!p.syncQueue)\r\n p.syncQueue = [];\r\n\r\n if (mode === 'full')\r\n p.syncQueue.length = 0;\r\n\r\n if (p.syncQueue.length === 0 || p.syncQueue[0].mode !== 'full')\r\n p.syncQueue.push({ mode: mode, data: data });\r\n\r\n if (p.syncTimeout)\r\n return;\r\n\r\n p.syncTimeout = setTimeout(() => {\r\n delete p.syncTimeout;\r\n let queue = p.syncQueue;\r\n delete p.syncQueue;\r\n this._performSync(queue);\r\n });\r\n }\r\n\r\n _performSync(queue) {\r\n const p = this._p;\r\n\r\n if (this[DestroyedSymbol])\r\n return;\r\n\r\n for (let op of queue) {\r\n switch (op.mode) {\r\n case 'full':\r\n this._syncFull(true);\r\n break;\r\n\r\n case 'singleItem':\r\n this._syncSingleItem();\r\n break;\r\n\r\n case 'removeMultiItemElement': {\r\n if (p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n const valueProp = p.valueProp;\r\n const item = op.data,\r\n value = item[valueProp];\r\n\r\n let idx = p.multiItemEls.findIndex(x => x[ItemSymbol][valueProp] === value);\r\n if (idx !== -1) {\r\n this._removeMultiItemElementByIndex(idx);\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case 'addMultiItemElement': {\r\n if (!p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n this._addMultiItemElement(op.data);\r\n }\r\n }\r\n break;\r\n\r\n case 'addOrUpdateMultiItemRestElement': {\r\n if (!p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n this._addMultiItemRestElement();\r\n }\r\n }\r\n break;\r\n\r\n case 'removeMultiItemRestElement': {\r\n if (!p.showSelection) {\r\n this._syncPlaceholder();\r\n } else {\r\n let itemEl = p.multiItemEls[p.multiItemEls.length - 1];\r\n if (itemEl?.[ItemSymbol]?.[p.valueProp] === RestMultiItemsSymbol) {\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case 'resize_input': {\r\n this._resizeInput();\r\n }\r\n break;\r\n\r\n default:\r\n this._syncFull(false);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n _cleanupSingleWrapper() {\r\n const p = this._p;\r\n\r\n if (!p.singleWrapper) return;\r\n\r\n if (p.unrenderSingleItem && p.singleWrapper.childNodes.length > 0) {\r\n try {\r\n p.unrenderSingleItem(p.singleWrapper[ItemSymbol], p.singleWrapper);\r\n } catch (err) { console.error(err); } // eslint-disable-line no-console\r\n }\r\n\r\n delete p.singleWrapper[ItemSymbol];\r\n p.singleWrapper.innerHTML = '';\r\n }\r\n\r\n /**\r\n * @param {number} index\r\n * @private\r\n */\r\n _removeMultiItemElementByIndex(index) {\r\n const p = this._p, multiItemEls = p.multiItemEls;\r\n\r\n if (multiItemEls.length > index) {\r\n const itemEl = multiItemEls[index];\r\n const item = itemEl[ItemSymbol];\r\n\r\n let unrender = item?.[p.valueProp] === RestMultiItemsSymbol\r\n ? p.unrenderRestMultiItem ?? p.unrenderMultiItem\r\n : p.unrenderMultiItem;\r\n\r\n if (unrender && itemEl.childNodes.length > 0) {\r\n try {\r\n unrender(item, itemEl);\r\n } catch (err) { console.error(err); } // eslint-disable-line no-console\r\n }\r\n remove(itemEl);\r\n\r\n // fastpath\r\n if (index === multiItemEls.length - 1) multiItemEls.pop();\r\n else multiItemEls.splice(index, 1);\r\n }\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @private\r\n */\r\n _renderSingleItemContent(item) {\r\n const p = this._p;\r\n\r\n if (!p.renderSingleItem || p.renderSingleItem(item, p.singleWrapper) === false) {\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n\r\n let label = item[multiItemLabelProp] || item[labelProp];\r\n if (label === null || label === undefined)\r\n label = '';\r\n\r\n p.singleWrapper.appendChild(document.createTextNode(label));\r\n }\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @param {Element} itemEl\r\n * @private\r\n */\r\n _renderMultiItemContent(item, itemEl) {\r\n const p = this._p;\r\n\r\n let render = item[p.valueProp] === RestMultiItemsSymbol\r\n ? p.renderRestMultiItem ?? p.renderMultiItem\r\n : p.renderMultiItem;\r\n\r\n if (!render || render(item, itemEl) === false) {\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n const label = item[multiItemLabelProp] || item[labelProp];\r\n itemEl.appendChild(createElement('span', {\r\n textContent: label,\r\n }));\r\n }\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @private\r\n */\r\n _addMultiItemElement(item) {\r\n const p = this._p;\r\n const itemEl = this._renderMultiItem(item);\r\n if (!itemEl) return;\r\n\r\n before(p.inputWrapper, itemEl);\r\n p.multiItemEls.push(itemEl);\r\n }\r\n\r\n /** @private */\r\n _addMultiItemRestElement() {\r\n const p = this._p;\r\n\r\n let items = p.selectedItems.slice(0);\r\n let count = items.filter(x => !x._group).length - p.maxMultiItems;\r\n let label = p.multiItemsRestLabelProvider\r\n ? p.multiItemsRestLabelProvider(count, items)\r\n : `+ ${count}`;\r\n\r\n this._addMultiItemElement({\r\n items: items,\r\n [p.valueProp]: RestMultiItemsSymbol,\r\n [p.labelProp]: label,\r\n });\r\n }\r\n\r\n /** @private */\r\n _syncClearButton() {\r\n const p = this._p;\r\n\r\n // Set clear button\r\n if (p.selectedItems.length > 0 && p.clearable && p.showSelection) {\r\n if (!p.clearButtonWrapper) {\r\n p.clearButtonWrapper = createElement(\r\n p.multi ? 'li' : 'span',\r\n { class: `${p.baseClassName}__clear` },\r\n p.clearButton = createElement('button'));\r\n if (p.multi)\r\n append(p.list, p.clearButtonWrapper);\r\n else append(p.el, p.clearButtonWrapper);\r\n p.el.classList.add(`${p.baseClassName}__has_clear`);\r\n\r\n p.sink.add(p.clearButton, 'click', () => {\r\n if (this.isDisabled()) return;\r\n this.clear();\r\n });\r\n }\r\n } else {\r\n if (p.clearButtonWrapper) {\r\n p.sink.remove(p.clearButton, 'click');\r\n\r\n remove(p.clearButtonWrapper);\r\n delete p.clearButtonWrapper;\r\n delete p.clearButton;\r\n p.el.classList.remove(`${p.baseClassName}__has_clear`);\r\n }\r\n }\r\n }\r\n\r\n /** @private */\r\n _syncPlaceholder() {\r\n const p = this._p;\r\n\r\n let placeholder = '';\r\n\r\n if (p.multi && !p.showSelection) {\r\n if (typeof p.multiPlaceholderFormatter === 'function') {\r\n placeholder = p.multiPlaceholderFormatter(p.selectedItems);\r\n } else {\r\n placeholder = defaultMultiPlaceholderFormatter(p.selectedItems, p.labelProp);\r\n }\r\n } else if (p.selectedItems.length === 0 || !p.showSelection) {\r\n placeholder = p.placeholder == null ? '' : (p.placeholder + '');\r\n }\r\n\r\n // Set input placeholder\r\n p.input.setAttribute('placeholder', placeholder);\r\n }\r\n\r\n /** @private */\r\n _syncSingleItem() {\r\n const p = this._p;\r\n\r\n if (p.singleWrapper)\r\n this._cleanupSingleWrapper();\r\n\r\n const items = p.selectedItems;\r\n\r\n if (items.length > 0) {\r\n this._renderSingleItemContent(items[0]);\r\n p.singleWrapper[ItemSymbol] = items[0];\r\n }\r\n }\r\n\r\n /**\r\n * Syncs render state, selected items, and position\r\n * @param {boolean=false} fullItemsRender Should re-render all items?\r\n * @returns {SelectBox}\r\n */\r\n _syncFull(fullItemsRender) {\r\n const p = this._p;\r\n\r\n this._renderBase();\r\n this._syncClearButton();\r\n this._syncPlaceholder();\r\n\r\n fullItemsRender = p.multi && p.showSelection && (fullItemsRender || p.selectedItems.length !== p.multiItemEls.length);\r\n\r\n if (fullItemsRender || !p.showSelection || !p.multi) {\r\n // Remove all item elements\r\n while (p.multiItemEls.length > 0) {\r\n // use fast path by removing in reverse\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n }\r\n }\r\n\r\n if (p.multi) {\r\n if (fullItemsRender) {\r\n const items = p.selectedItems;\r\n\r\n // Sort these\r\n if (p.sortSelectedItems) {\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp,\r\n valueProp = p.valueProp,\r\n stickyValues = p.stickyValues;\r\n\r\n const comparator = p.sortItemComparator || ((a, b) => {\r\n if (stickyValues !== null) {\r\n let sa = stickyValues.has(a[valueProp]);\r\n let sb = stickyValues.has(b[valueProp]);\r\n if (sa && !sb) return -1;\r\n if (!sa && sb) return 1;\r\n }\r\n\r\n const aLabel = a[multiItemLabelProp] || a[labelProp];\r\n const bLabel = b[multiItemLabelProp] || b[labelProp];\r\n return aLabel < bLabel ? -1 : (aLabel > bLabel ? 1 : 0);\r\n });\r\n\r\n items.sort(comparator);\r\n\r\n p.selectedValues = items.map(x => x[valueProp]);\r\n }\r\n\r\n let actualItemCount = 0;\r\n let max = p.maxMultiItems;\r\n let addRestItem = false;\r\n\r\n // Add item elements\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i]._group) continue;\r\n\r\n if (max != null && actualItemCount === max) {\r\n addRestItem = true;\r\n break;\r\n }\r\n\r\n actualItemCount++;\r\n this._addMultiItemElement(items[i]);\r\n }\r\n\r\n if (addRestItem) {\r\n this._addMultiItemRestElement();\r\n }\r\n }\r\n } else if (!p.multi) {\r\n this._syncSingleItem();\r\n }\r\n\r\n if (getRootNode(p.el) !== document)\r\n return this;\r\n\r\n toggleClass(p.el, `${p.baseClassName}__empty_selection`, p.selectedValues.length === 0);\r\n toggleClass(p.el, `${p.baseClassName}__has_selection`, p.selectedValues.length > 0);\r\n\r\n if (p.searchable || p.multi) {\r\n if (p.input) p.input.readOnly = false;\r\n p.el.classList.add(`${p.baseClassName}__searchable`);\r\n } else {\r\n if (p.input) p.input.readOnly = true;\r\n p.el.classList.remove(`${p.baseClassName}__searchable`);\r\n }\r\n\r\n // Update input size\r\n this._resizeInput()._updateListItems();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} event\r\n * @param {*} [data]\r\n * @private\r\n */\r\n _trigger(event, data) {\r\n const p = this._p;\r\n if (p.on)\r\n p.on(event, ...(data === undefined ? [] : [data]));\r\n p.mitt.emit(event, data);\r\n }\r\n\r\n /**\r\n * Render a multi item\r\n * @param {Object} item\r\n * @returns {Element|null}\r\n * @private\r\n */\r\n _renderMultiItem(item) {\r\n const p = this._p;\r\n\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp;\r\n const label = item[multiItemLabelProp] ?? item[labelProp];\r\n if (label === false)\r\n return null;\r\n\r\n const itemEl = createElement('li',\r\n {\r\n class: `${p.baseClassName}__item`,\r\n tabindex: '0',\r\n title: label,\r\n },\r\n [\r\n createElement('span', {\r\n class: `${p.baseClassName}__item_remove`,\r\n role: 'presentation',\r\n }),\r\n ],\r\n );\r\n\r\n this._renderMultiItemContent(item, itemEl);\r\n\r\n itemEl[ItemSymbol] = item;\r\n\r\n return itemEl;\r\n }\r\n\r\n /**\r\n * Removes a specific multi item by user event\r\n * @param {Element} itemEl\r\n * @param {Event} originatingEvent\r\n * @returns {SelectBox}\r\n * @private\r\n */\r\n _removeMultiItemFromEvent(itemEl, originatingEvent) {\r\n const p = this._p;\r\n\r\n let nextFocus;\r\n if (/key/.test(originatingEvent.type)) {\r\n const kEvent = /**@type KeyboardEvent*/originatingEvent;\r\n if (kEvent.key === VALUE_DELETE) { // Delete\r\n nextFocus = next(itemEl, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n } else if (kEvent.key === VALUE_BACK_SPACE) { // Backspace\r\n nextFocus = prev(itemEl, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n }\r\n } else if (/click|mouse|touch/.test(originatingEvent.type)) {\r\n nextFocus = next(itemEl, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n }\r\n\r\n const item = itemEl[ItemSymbol], value = item[p.valueProp];\r\n\r\n if (item !== undefined) {\r\n if (value === RestMultiItemsSymbol) {\r\n let items = p.selectedItems.filter(x => !x._group).slice(p.maxMultiItems);\r\n let itemsToRemove = [];\r\n\r\n for (let item of items) {\r\n let removeselEvt = { value: value, item: item, cancel: false };\r\n this._trigger('removesel:before', removeselEvt);\r\n if (!removeselEvt.cancel)\r\n itemsToRemove.push(item);\r\n }\r\n\r\n if (itemsToRemove.length > 0) {\r\n this._removeMultiItemElementByIndex(p.multiItemEls.length - 1);\r\n\r\n for (let item of itemsToRemove) {\r\n // sync selection\r\n let idx = p.selectedItems.indexOf(item);\r\n if (idx === -1)\r\n idx = p.selectedValues.indexOf(value[p.valueProp]);\r\n if (idx !== -1) {\r\n p.selectedItems.splice(idx, 1);\r\n p.selectedValues.splice(idx, 1);\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n }\r\n }\r\n }\r\n\r\n if (items.length > itemsToRemove.length) {\r\n this._addMultiItemRestElement();\r\n }\r\n\r\n if (itemsToRemove.length > 0) {\r\n this._scheduleSync();\r\n }\r\n } else {\r\n let removeselEvt = { value: value, item: item, cancel: false };\r\n this._trigger('removesel:before', removeselEvt);\r\n if (removeselEvt.cancel)\r\n return this;\r\n\r\n this._removeMultiItem(item);\r\n\r\n // trigger event\r\n this._trigger('removesel', { value: value, item: item });\r\n }\r\n }\r\n\r\n if (!nextFocus) {\r\n nextFocus = p.el.querySelector(`.${p.baseClassName}__item, .${p.baseClassName}__search_field`);\r\n }\r\n\r\n if (hasClass(nextFocus, `${p.baseClassName}__search_wrapper`)) {\r\n nextFocus = nextFocus.querySelector('input');\r\n }\r\n\r\n nextFocus && nextFocus.focus();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {DropList.ItemBase} item\r\n * @param {boolean} [populate]\r\n * @private\r\n */\r\n _removeMultiItem(item, populate = false) {\r\n const p = this._p;\r\n const valueProp = p.valueProp,\r\n labelProp = p.labelProp;\r\n const value = item[valueProp];\r\n\r\n // sync selection\r\n let idx = p.selectedItems.indexOf(item);\r\n if (idx === -1)\r\n idx = p.selectedValues.indexOf(value);\r\n if (idx !== -1) {\r\n p.selectedItems.splice(idx, 1);\r\n p.selectedValues.splice(idx, 1);\r\n p.selectionChanged = true;\r\n p.resortBySelectionNeeded = true;\r\n }\r\n\r\n // sync multi item element\r\n idx = p.multiItemEls.findIndex(x => x[ItemSymbol] === item);\r\n if (idx === -1)\r\n idx = p.multiItemEls.findIndex(x => x[ItemSymbol][valueProp] === value);\r\n if (idx !== -1) {\r\n this._removeMultiItemElementByIndex(idx);\r\n }\r\n\r\n if (populate) {\r\n this._setInputText(item[p.multiItemLabelProp] || item[labelProp]);\r\n\r\n p.input.focus();\r\n\r\n // Go to end of input\r\n p.input.selectionStart = p.input.selectionEnd = p.input.value.length;\r\n }\r\n\r\n // sync\r\n this._scheduleSync();\r\n }\r\n\r\n /**\r\n * @param {*} value\r\n * @private\r\n */\r\n _setInputText(value) {\r\n const p = this._p;\r\n\r\n p.input.value = value == null ? '' : String(value);\r\n\r\n p.filterTerm = '';\r\n p.filteredItems = null;\r\n p.itemsChanged = true;\r\n }\r\n\r\n /**\r\n * Update input size to current state\r\n * @returns {SelectBox}\r\n * @private\r\n */\r\n _resizeInput() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!el.parentNode || !document.body.contains(el))\r\n return this;\r\n\r\n const input = p.input, backBufferEl = p.inputBackBuffer;\r\n\r\n let inputValue = input.value || input.placeholder;\r\n toggleClass(el, `${p.baseClassName}__has_input`, !!inputValue);\r\n toggleClass(el, `${p.baseClassName}__empty_input`, !inputValue);\r\n\r\n let hasResize = false;\r\n\r\n if (p.multi && p.multiItemEls.length === 0 && p.showSelection) {\r\n // Full width of list wrapper\r\n input.style.width = ''; // reset first\r\n\r\n let beforeWidth = 0, afterWidth = 0;\r\n\r\n let beforeStyle = getComputedStyle(p.list || el, '::before');\r\n if (beforeStyle.content &&\r\n beforeStyle.content !== 'none' &&\r\n beforeStyle.position !== 'absolute' &&\r\n beforeStyle.float !== 'none') {\r\n beforeWidth = getPseudoElementWidth(p.list || el, '::before', true, true, true);\r\n }\r\n\r\n let afterStyle = getComputedStyle(p.list || el, '::after');\r\n if (afterStyle.content &&\r\n afterStyle.content !== 'none' &&\r\n afterStyle.position !== 'absolute' &&\r\n afterStyle.float !== 'none') {\r\n afterWidth = getPseudoElementWidth(p.list || el, '::after', true, true, true);\r\n }\r\n\r\n let contentWidth = getElementWidth(p.list || el); // calculate width\r\n contentWidth -= beforeWidth + afterWidth;\r\n\r\n input.style.width = `${contentWidth}px`;\r\n\r\n hasResize = true; // We may want to track the resize here better to avoid unnecessary event\r\n } else {\r\n // Introduce backbuffer to DOM\r\n setCssProps(backBufferEl, getCssProps(input, inputBackbufferCssProps));\r\n backBufferEl.textContent = inputValue;\r\n el.appendChild(backBufferEl);\r\n\r\n // Measure these\r\n const computedStyle = getComputedStyle(input);\r\n const paddingTotal = (parseFloat(computedStyle.paddingLeft) || 0) + (parseFloat(computedStyle.paddingRight) || 0);\r\n const minWidth = (parseFloat(computedStyle['font-size']) || 0) * 0.75 + paddingTotal;\r\n const backBufferWidth = getElementWidth(backBufferEl, true, true);\r\n const currentWidth = getElementWidth(input, true, true);\r\n let newWidth = Math.max(backBufferWidth, minWidth);\r\n\r\n // Compare\r\n if (newWidth !== currentWidth) {\r\n // Update if needed\r\n setElementWidth(input, newWidth, true, true);\r\n\r\n let bordersWidth = (parseFloat(computedStyle.borderLeftWidth) || 0) + (parseFloat(computedStyle.borderRightWidth) || 0);\r\n let scrollWidth = input.scrollWidth + bordersWidth;\r\n\r\n if (scrollWidth > newWidth) {\r\n // consider scrollWidth delta\r\n let delta = scrollWidth - newWidth;\r\n input.style.width = `${parseFloat(input.style.width) + delta}px`;\r\n\r\n newWidth += delta;\r\n }\r\n\r\n // sync the single value wrapper.\r\n // it is meant as a preview or spacer for single selection value, so its appropriate to sync it with this width\r\n if (p.singleWrapper) {\r\n p.singleWrapper.style.width = '';\r\n\r\n if (inputValue) {\r\n let width = newWidth - paddingTotal - bordersWidth;\r\n if (getElementWidth(p.singleWrapper, false, false) < width) {\r\n setElementWidth(p.singleWrapper, width, false, false);\r\n }\r\n }\r\n }\r\n\r\n hasResize = true;\r\n }\r\n\r\n // Remove backbuffer from DOM\r\n remove(backBufferEl);\r\n }\r\n\r\n if (hasResize)\r\n this._trigger('input:resize');\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Update autocomplete position if needed\r\n * @returns {SelectBox}\r\n * @private\r\n */\r\n _repositionDropList() {\r\n const p = this._p, el = p.el;\r\n\r\n if (!p.dropList || !p.dropListVisible || !p.dropList.isVisible())\r\n return this;\r\n\r\n const box = el.getBoundingClientRect();\r\n const serialized = box.left + ',' + box.top + ',' + box.right + ',' + box.bottom;\r\n\r\n if (p.dropList._lastSerializedBox !== serialized) {\r\n p.dropList.relayout(this._getDropListPositionOptions());\r\n p.dropList._lastSerializedBox = serialized;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {KeyboardEvent} event\r\n * @private\r\n */\r\n _handleInputKeydown(event) {\r\n const p = this._p;\r\n\r\n const target = (/**@type HTMLInputElement*/event.target);\r\n\r\n if (event.key === VALUE_BACK_SPACE && event.ctrlKey && target.value.length === 0) {\r\n this.clear();\r\n\r\n event.preventDefault();\r\n } else if (event.key === VALUE_BACK_SPACE && target.value.length === 0) {\r\n const itemEl = p.multiItemEls[p.multiItemEls.length - 1];\r\n if (!itemEl || itemEl[ItemSymbol].value === undefined)\r\n return;\r\n\r\n const item = itemEl[ItemSymbol], value = item[p.valueProp];\r\n\r\n let removeselEvt = { value: value, item: item, cancel: false };\r\n this._trigger('removesel:before', removeselEvt);\r\n if (removeselEvt.cancel)\r\n return;\r\n\r\n this._removeMultiItem(item, true);\r\n\r\n // trigger event\r\n this._trigger('removesel', { value: value, item: item });\r\n\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * @param {KeyboardEvent} event\r\n * @private\r\n */\r\n _handleMultiKeydown(event) {\r\n const p = this._p;\r\n\r\n if (p.disabled) return;\r\n\r\n const isRtl = getComputedStyle(p.el).direction === 'rtl';\r\n\r\n let nextFocus;\r\n\r\n if (event.key === (isRtl ? VALUE_LEFT : VALUE_RIGHT)) { // Next arrow\r\n nextFocus = next(/**@type Element*/event.target, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n if (hasClass(nextFocus, `${p.baseClassName}__search_wrapper`)) {\r\n nextFocus = nextFocus.querySelector('input');\r\n }\r\n nextFocus && nextFocus.focus();\r\n\r\n event.preventDefault();\r\n } else if (event.key === (isRtl ? VALUE_RIGHT : VALUE_LEFT)) { // Prev arrow\r\n nextFocus = prev(/**@type Element*/event.target, `.${p.baseClassName}__item,.${p.baseClassName}__search_wrapper`);\r\n if (hasClass(nextFocus, `${p.baseClassName}__search_wrapper`)) {\r\n nextFocus = nextFocus.querySelector('input');\r\n }\r\n nextFocus && nextFocus.focus();\r\n\r\n event.preventDefault();\r\n } else if (event.key === VALUE_BACK_SPACE && event.ctrlKey) { // Ctrl + Backspace\r\n const multiItemEls = [];\r\n let itemEl = event.target;\r\n while (itemEl) {\r\n multiItemEls.push(itemEl);\r\n itemEl = prev(/**@type Element*/itemEl, `.${p.baseClassName}__item`);\r\n }\r\n\r\n while (multiItemEls.length) {\r\n this._removeMultiItemFromEvent(multiItemEls.shift(), event);\r\n }\r\n\r\n event.preventDefault();\r\n } else if (event.key === VALUE_DELETE || event.key === VALUE_BACK_SPACE) { // Delete / Backspace\r\n this._removeMultiItemFromEvent(closestUntil(event.target, `.${p.baseClassName}__item`, p.el), event);\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * @returns {DropList.PositionOptions}\r\n * @private\r\n */\r\n _getDropListPositionOptions() {\r\n const p = this._p;\r\n\r\n return {\r\n target: /**@type Element*/p.el,\r\n offset: { x: 0, y: 0 },\r\n anchor: { x: 'start', y: 'bottom' },\r\n position: { x: 'start', y: 'top' },\r\n updateWidth: true,\r\n };\r\n }\r\n\r\n /** @private */\r\n _startTrackingPresence() {\r\n const p = this._p;\r\n\r\n this._stopTrackingPresence();\r\n\r\n p.presenceInt = setInterval(function () {\r\n if (getRootNode(p.el) !== document)\r\n this.hide();\r\n }, 200);\r\n }\r\n\r\n /** @private */\r\n _stopTrackingPresence() {\r\n const p = this._p;\r\n\r\n if (p.presenceInt) {\r\n clearInterval(p.presenceInt);\r\n p.presenceInt = null;\r\n }\r\n }\r\n\r\n /**\r\n * Handles sorting, and putting checked items first (according to selectedValues, not item.checked)\r\n * @private\r\n * @param {DropList.ItemBase[]} items\r\n * @param {boolean=false} sort\r\n * @param {boolean=false} sortCheckedFirst\r\n * @param {boolean=false} splitCheckedGroups\r\n * @returns {DropList.ItemBase[]}\r\n */\r\n _sortItems(items, sort, sortCheckedFirst, splitCheckedGroups) {\r\n const p = this._p;\r\n\r\n if (!sort && !sortCheckedFirst)\r\n return items; // Nothing to do\r\n\r\n const labelProp = p.labelProp,\r\n multiItemLabelProp = p.multiItemLabelProp,\r\n valueProp = p.valueProp,\r\n stickyValues = p.stickyValues,\r\n comparator = p.sortItemComparator || ((a, b) => {\r\n if (stickyValues !== null) {\r\n let sa = stickyValues.has(a[valueProp]);\r\n let sb = stickyValues.has(b[valueProp]);\r\n if (sa && !sb) return -1;\r\n if (!sa && sb) return 1;\r\n }\r\n\r\n const aLabel = a[labelProp] || a[multiItemLabelProp];\r\n const bLabel = b[labelProp] || b[multiItemLabelProp];\r\n\r\n if (aLabel < bLabel) return -1;\r\n if (aLabel > bLabel) return 1;\r\n\r\n return 0;\r\n });\r\n\r\n let group = [], stickyGroup = null;\r\n let groups = [group];\r\n const selectedValuesSet = new Set(p.selectedValues);\r\n let item, i, len;\r\n\r\n // Split to groups\r\n for (i = 0, len = items.length; i < len; i++) {\r\n item = items[i];\r\n if (item._group && group.length) {\r\n group = [];\r\n groups.push(group);\r\n }\r\n group.push(item);\r\n }\r\n\r\n // Leftover\r\n if (!group.length) {\r\n groups.length = 0;\r\n }\r\n\r\n // Non-grouped sticky should be first\r\n if (stickyValues && items.length > 0 && !items[0]._group) {\r\n stickyGroup = groups[0].filter(x => stickyValues.has(x[valueProp]));\r\n if (stickyGroup.length > 0) {\r\n groups[0] = groups[0].filter(x => !stickyValues.has(x[valueProp]));\r\n }\r\n }\r\n\r\n if (sort) {\r\n // Sort the groups\r\n groups.sort((a, b) => {\r\n a = a[0];\r\n b = b[0];\r\n\r\n if (stickyValues !== null) {\r\n let sa = stickyValues.has(a[valueProp]);\r\n let sb = stickyValues.has(b[valueProp]);\r\n if (sa && !sb) return -1;\r\n if (!sa && sb) return 1;\r\n }\r\n\r\n // A \"group\" without a group item will come first\r\n if (!a._group && b._group) return -1;\r\n if (a._group && !b._group) return 1;\r\n\r\n return comparator(a, b);\r\n });\r\n }\r\n\r\n if (stickyGroup && stickyGroup.length > 0) {\r\n groups.unshift(stickyGroup);\r\n }\r\n\r\n // Now we have an array of groups, possibly sorted.\r\n // Each group is an array that begins with the group item (group name/id).\r\n // A group could possible start with a normal item, if it's a \"default group\", which had no group item.\r\n\r\n const checkedGroups = [], uncheckedGroups = [];\r\n\r\n // Iterate groups\r\n for (let g = 0, glen = groups.length; g < glen; g++) {\r\n group = groups[g];\r\n\r\n // Sort each group\r\n group.sort((a, b) => {\r\n\r\n // Grouping items come first\r\n if (a._group && !b._group) return -1;\r\n if (!a._group && b._group) return 1;\r\n\r\n if (sortCheckedFirst) {\r\n const aChecked = selectedValuesSet.has(a[valueProp]);\r\n const bChecked = selectedValuesSet.has(b[valueProp]);\r\n\r\n if (aChecked && !bChecked) return -1;\r\n if (!aChecked && bChecked) return 1;\r\n }\r\n\r\n if (sort) {\r\n return comparator(a, b);\r\n }\r\n\r\n return 0;\r\n });\r\n\r\n uncheckedGroups.push(group);\r\n }\r\n\r\n if (sortCheckedFirst && splitCheckedGroups) {\r\n\r\n let virtualGroup;\r\n\r\n // Iterate groups\r\n for (let g = 0, glen = groups.length; g < glen; g++) {\r\n group = groups[g];\r\n\r\n if (group === stickyGroup) {\r\n checkedGroups.push(stickyGroup);\r\n let sgi = uncheckedGroups.indexOf(stickyGroup);\r\n if (sgi !== -1) {\r\n uncheckedGroups.splice(sgi, 1);\r\n }\r\n continue;\r\n }\r\n\r\n virtualGroup = null;\r\n\r\n for (let gi = 0, gilen = group.length; gi < gilen; gi++) {\r\n item = group[gi];\r\n if (item._group) continue;\r\n if (!selectedValuesSet.has(item[p.valueProp])) break;\r\n\r\n if (!virtualGroup) {\r\n virtualGroup = [];\r\n if (group[0]._group) {\r\n virtualGroup.push(group[0]);\r\n }\r\n }\r\n\r\n virtualGroup.push(item);\r\n group.splice(gi--, 1);\r\n gilen--;\r\n }\r\n\r\n if (virtualGroup) {\r\n checkedGroups.push(virtualGroup);\r\n if (group.length === 0 || (group.length === 1 && group[0]._group)) {\r\n groups.splice(g--, 1);\r\n glen--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Prepare the target array\r\n const joined = [];\r\n joined.length = items.length;\r\n let itemIndex = 0;\r\n\r\n groups = checkedGroups.length ?\r\n checkedGroups.concat(uncheckedGroups) : // Concat both lists\r\n uncheckedGroups; // No need for concat\r\n\r\n for (let g = 0, glen = groups.length; g < glen; g++) {\r\n group = groups[g];\r\n\r\n for (i = 0, len = group.length; i < len; i++) {\r\n joined[itemIndex++] = group[i];\r\n }\r\n }\r\n\r\n return joined;\r\n }\r\n}\r\n\r\nexport default SelectBox;\r\n"],"names":["global","fails","require$$0","call","$propertyIsEnumerable","getOwnPropertyDescriptor","createPropertyDescriptor","FunctionPrototype","bind","uncurryThis","toString","stringSlice","classofRaw","require$$1","require$$2","classof","require$$3","Object","TypeError","requireObjectCoercible","IndexedObject","toIndexedObject","isCallable","isObject","getBuiltIn","userAgent","V8_VERSION","NATIVE_SYMBOL","isPrototypeOf","USE_SYMBOL_AS_UID","require$$4","isSymbol","String","tryToString","aCallable","getMethod","ordinaryToPrimitive","defineProperty","setGlobal","store","IS_PURE","sharedModule","toObject","hasOwnProperty","id","uid","shared","hasOwn","require$$5","WellKnownSymbolsStore","Symbol","wellKnownSymbol","require$$6","TO_PRIMITIVE","toPrimitive","toPropertyKey","document","EXISTS","documentCreateElement","DESCRIPTORS","propertyIsEnumerableModule","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","anObject","$defineProperty","definePropertyModule","createNonEnumerableProperty","inspectSource","WeakMap","keys","sharedKey","hiddenKeys","require$$8","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","getInternalState","enforceInternalState","redefineModule","floor","toIntegerOrInfinity","max","min","toAbsoluteIndex","toLength","lengthOfArrayLike","createMethod","indexOf","push","enumBugKeys","internalObjectKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","concat","ownKeys","getOwnPropertyDescriptorModule","copyConstructorProperties","isForced","redefine","apply","isArray","TO_STRING_TAG","test","TO_STRING_TAG_SUPPORT","objectKeys","html","PROTOTYPE","IE_PROTO","arraySlice","$getOwnPropertyNames","path","wrappedWellKnownSymbolModule","defineWellKnownSymbol","setToStringTag","exec","isConstructor","SPECIES","Array","arraySpeciesConstructor","arraySpeciesCreate","$","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","$toString","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","require$$35","require$$36","require$$37","require$$38","require$$39","require$$40","require$$41","setInternalState","ObjectPrototype","SymbolPrototype","replace","createProperty","arrayMethodHasSpeciesSupport","MAX_SAFE_INTEGER","FORCED","arrayMethodIsStrict","STRICT_METHOD","iteratorClose","callWithSafeIterationClosing","Iterators","ITERATOR","ArrayPrototype","isArrayIteratorMethod","getIteratorMethod","getIterator","checkCorrectnessOfIteration","charAt","create","getPrototypeOf","BUGGY_SAFARI_ITERATORS","IteratorPrototype","returnThis","createIteratorConstructor","aPossiblePrototype","setPrototypeOf","PROPER_FUNCTION_NAME","defineIterator","MATCH","isRegExp","HAS_SPECIES_SUPPORT","addToUnscopables","SKIPS_HOLES","inheritIfRequired","regexpFlags","$RegExp","setSpecies","regExpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","RegExpPrototype","getFlags","stringIndexOf","UNSUPPORTED_Y","regexpExec","advanceStringIndex","getSubstitution","value","ItemSymbol","DestroyedSymbol","GhostSymbol","prototype","defaultOptions","baseClassName","itemBlurDelay","capturesFocus","multi","keyDownHandler","autoCheckGroupChildren","useExactTargetWidth","constrainToWindow","autoFlipDirection","estimateWidth","virtualMinItems","labelProp","valueProp","on","DropList","options","o","entries","key","undefined","p","_p","ownsEl","elOriginalDisplay","additionalClasses","renderItem","unrenderItem","silenceEvents","mitt","focusItemIndex","focusItemEl","sink","DomEventsSink","classes","initialCss","top","el","Element","style","display","classList","add","role","setCssProps","createElement","class","join","css","items","groupCount","mouseHandled","virtualListHelper","VirtualListHelper","list","virtual","buffer","estimatedItemHeight","itemElementCreatorFn","tabIndex","onItemRender","itemEl","index","item","label","lastMeasureLongestLabelText","setAttribute","console","warn","className","_nocheck","_checked","_group","_child","_nointeraction","_renderItemContent","fn","setOnItemUnrender","err","error","_hookMouseEvents","_hookTouchEvents","_hookFocusEvents","_hookKeyEvents","clearTimeout","blurTimer","filterTimer","remove","destroy","from","name","startsWith","removeAttribute","lastPositionTarget","_syncBaseClasses","prop","hasFocusedItem","_trigger","event","_move","toggleClass","checked","isGroup","isCheckingGroup","_updateGroupStateForItem","closestUntil","target","getItemIndexFromElement","_setSingleSelectedItemEl","atIndex","addItems","itemsToAdd","isMulti","length","_determineVirtualMode","i","count","oitem","splice","addItemsAt","render","newItem","itemIndex","itemIndexByValue","itemAtIndex","isItemRendered","refreshItemAt","itemIndexByValueOrLabel","spliced","removeItemsAt","setCount","map","x","positionOptions","isVisible","w","window","targetBox","offset","targetOffset","getElementOffset","left","height","targetHeight","getElementHeight","width","targetWidth","getElementWidth","bottom","viewport","pageYOffset","pageXOffset","innerWidth","innerHeight","right","defaultVerticalDirection","position","y","isVirtual","_measureItem","updateWidth","_updateWidth","roomAbove","roomBelow","maxViewHeight","elComputedStyle","getComputedStyle","isBoxing","boxSizing","verticalPadding","parseFloat","paddingTop","paddingBottom","verticalBorderWidth","borderTopWidth","borderBottomWidth","estimateFullHeight","Math","scrollHeight","maxHeight","isNaN","enoughRoomAbove","enoughRoomBelow","newDirection","currentDirection","viewSize","isTargetRtl","targetRtl","direction","isRtlDocument","documentElement","anchor","anchoredPosition","invertYPos","specY","scrollLeft","body","parentNode","abs","scrollWidth","clientWidth","minX","maxX","viewCss","rtl","specX","which","setElementHeight","li","getItemElementAt","values","groupIndexes","_updateGroupCheckedState","excludeGroups","hiding","setTimeout","onDocumentMouseDown","contains","_delayBlur","appendChild","visible","originalMaxHeight","clientHeight","marginTop","marginBottom","relayout","maxTransitionDuration","parseTransition","transition","reduce","v","delay","duration","blurFocusedItem","scrollItemIndexIntoView","itemElement","_getItemIndex","setFocusedItemAtIndex","setSingleSelectedItemAtIndex","_hasScroll","scrollTop","itemPos","previousPos","getItemPosition","itemSize","getItemSize","listHeight","handler","wrapped","off","all","clear","emit","singleSelectedItemEl","data","_mouseHandled","triggerItemSelection","toggleFocusedItem","activeElement","currentTarget","preventDefault","button","_itemUpAction","_handleMouseOver","_focus","currentTouchId","changedTouches","identifier","didScroll","onScroll","onTouchCancel","elToTrackScroll","touch","find","firstChild","evt","_keydown","VALUE_PAGE_UP","VALUE_PAGE_DOWN","VALUE_HOME","VALUE_END","VALUE_UP","VALUE_DOWN","previousPage","nextPage","previous","next","VALUE_ENTER","VALUE_SPACE","VALUE_ESCAPE","hide","type","_keydownFreeType","character","fromCharCode","keyCode","keyword","previousFilter","regex","RegExp","escapeRegex","matchIndices","matchIndex","nextIndex","directionUp","isFirstItem","isLastItem","visibleItemCount","getVisibleItemCount","base","nextElementSibling","tagName","itemCount","startedAtIndex","groupIndex","affectedItems","len","nextEl","fireEvents","groupItem","hasChecked","hasUnchecked","shouldCheckGroup","lastMeasureItemCount","longestLabel","lastMeasureLongestLabel","longestLabelText","text","createGhostItemElement","lastMeasureItemWidth","targetItemCount","shouldBeVirtual","setVirtual","textContent","insertBefore","autoWidth","newOuterWidth","setElementWidth","bordersWidth","borderLeftWidth","borderRightWidth","delta","fastKey","internalMetadataModule","iterate","anInstance","collection","redefineAll","collectionStrong","DOMTokenListPrototype","whitespaces","throttle","func","wait","timeout","context","args","result","later","leading","Date","now","throttled","remaining","arguments","trailing","cancel","isScheduled","NoResultsItemSymbol","RestMultiItemsSymbol","hasTouchCapability","DocumentTouch","navigator","maxTouchPoints","hasClass","inputBackbufferCssProps","disabled","clearable","hasOpenIndicator","placeholder","sortSelectedItems","sortListItems","sortListCheckedFirst","stickyValues","sortItemComparator","splitListCheckedGroups","blurOnSingleSelection","showSelection","multiPlaceholderFormatter","searchable","noResultsText","filterThrottleWindow","filterOnEmptyTerm","multiItemLabelProp","maxMultiItems","multiItemsRestLabelProvider","selectedValues","isLoadingMode","defaultMultiPlaceholderFormatter","title","SelectBox","listOptions","Set","renderSingleItem","unrenderSingleItem","renderMultiItem","unrenderMultiItem","renderRestMultiItem","unrenderRestMultiItem","renderNoResultsItem","unrenderNoResultsItem","filterFn","filteredItems","currentItemsView","itemsChanged","resizeObserver","selectedItems","selectionChanged","resortBySelectionNeeded","throttledUpdateListItems","_updateListItems","filterTerm","setElementAttrs","_renderBase","multiItemEls","enable","_setupDropdownMenu","clearButtonWrapper","input","focus","selectionStart","selectionEnd","relatedTarget","field","querySelector","_handleInputKeydown","_resizeInput","focusInOutHandler","t","ResizeObserver","observe","setItems","setSelectedValues","setValue","_scheduleSync","syncTimeout","_stopTrackingPresence","dropList","_cleanupSingleWrapper","_removeMultiItemElementByIndex","singleWrapper","inputBackBuffer","openIndicator","disconnect","enabled","resetValues","slice","getSelectedValues","term","mutated","getFilteredItemCount","existingItem","assign","updateItemByValue","performSearch","trim","sortCheckedFirst","comparator","formatter","unrender","setLabelProp","setValueProp","blur","clearEvt","_setInputText","set","has","_setSelectedItems","show","_getDropListPositionOptions","_repositionDropList","getFocusedItemIndex","open","shouldOpen","openList","closeList","dropListVisible","setIsLoadingMode","getIsLoadingMode","isListOpen","zIndex","whiteSpace","inputWrapper","autocomplete","autocorrect","autocapitalize","spellcheck","readOnly","_unregisterDropdownEvents","lastActiveElement","_removeMultiItemFromEvent","_handleMultiKeydown","_registerDropdownEvents","spinner","customRenderItem","customUnrenderItem","_startTrackingPresence","parent","offsetHeight","offsetWidth","selEvt","setItemChecked","idx","hasGroupSync","filter","selectEvt","avoidToggleFromClick","suppressKeyPress","suppressKeyPressRepeat","keyEventsTarget","_movePrev","_moveNext","lastKeyAllowsSpaceToggle","VALUE_TAB","toggleList","stopPropagation","isDisabled","tevt","isMultiEnabled","getSelectedItems","setSelectedItems","_refilterItems","_lastSerializedBox","_sortItems","removeAllItems","hasRefocusedItem","setCheckedValues","singleItemIndex","getValue","matcher","lastGroup","mode","syncQueue","queue","_performSync","op","_syncFull","_syncSingleItem","_syncPlaceholder","findIndex","_addMultiItemElement","_addMultiItemRestElement","childNodes","innerHTML","pop","createTextNode","_renderMultiItem","before","clearButton","append","_renderSingleItemContent","fullItemsRender","_syncClearButton","a","b","sa","sb","aLabel","bLabel","sort","actualItemCount","addRestItem","getRootNode","tabindex","_renderMultiItemContent","originatingEvent","nextFocus","kEvent","VALUE_DELETE","VALUE_BACK_SPACE","prev","itemsToRemove","removeselEvt","_removeMultiItem","populate","backBufferEl","inputValue","hasResize","beforeWidth","afterWidth","beforeStyle","content","float","getPseudoElementWidth","afterStyle","contentWidth","getCssProps","computedStyle","paddingTotal","paddingLeft","paddingRight","minWidth","backBufferWidth","currentWidth","newWidth","box","getBoundingClientRect","serialized","ctrlKey","isRtl","VALUE_LEFT","VALUE_RIGHT","shift","presenceInt","setInterval","clearInterval","splitCheckedGroups","group","stickyGroup","groups","selectedValuesSet","unshift","checkedGroups","uncheckedGroups","g","glen","aChecked","bChecked","virtualGroup","sgi","gi","gilen","joined"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAI,KAAK,GAAG,UAAU,EAAE,EAAE;AAC1B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;AACrC,CAAC,CAAC;AACF;AACA;IACAA,QAAc;AACd;AACA,EAAE,KAAK,CAAC,OAAO,UAAU,IAAI,QAAQ,IAAI,UAAU,CAAC;AACpD,EAAE,KAAK,CAAC,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC;AAC5C;AACA,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC;AACxC,EAAE,KAAK,CAAC,OAAOA,cAAM,IAAI,QAAQ,IAAIA,cAAM,CAAC;AAC5C;AACA,EAAE,CAAC,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,aAAa,CAAC,EAAE;;;;ICb/DC,OAAc,GAAG,UAAU,IAAI,EAAE;AACjC,EAAE,IAAI;AACN,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AACpB,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,CAAC;;ACND,IAAIA,OAAK,GAAGC,OAA6B,CAAC;AAC1C;AACA;IACA,WAAc,GAAG,CAACD,OAAK,CAAC,YAAY;AACpC;AACA,EAAE,OAAO,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClF,CAAC,CAAC;;ACNF,IAAIE,MAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;AACnC;IACA,YAAc,GAAGA,MAAI,CAAC,IAAI,GAAGA,MAAI,CAAC,IAAI,CAACA,MAAI,CAAC,GAAG,YAAY;AAC3D,EAAE,OAAOA,MAAI,CAAC,KAAK,CAACA,MAAI,EAAE,SAAS,CAAC,CAAC;AACrC,CAAC;;;;ACJD,YAAY,CAAC;AACb,IAAIC,uBAAqB,GAAG,EAAE,CAAC,oBAAoB,CAAC;AACpD;AACA,IAAIC,0BAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAC/D;AACA;AACA,IAAI,WAAW,GAAGA,0BAAwB,IAAI,CAACD,uBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACvF;AACA;AACA;AACA,sCAAS,GAAG,WAAW,GAAG,SAAS,oBAAoB,CAAC,CAAC,EAAE;AAC3D,EAAE,IAAI,UAAU,GAAGC,0BAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACrD,EAAE,OAAO,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC;AAC/C,CAAC,GAAGD,uBAAqB;;ICbzBE,0BAAc,GAAG,UAAU,MAAM,EAAE,KAAK,EAAE;AAC1C,EAAE,OAAO;AACT,IAAI,UAAU,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC;AAC7B,IAAI,YAAY,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC;AAC/B,IAAI,QAAQ,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC;AAC3B,IAAI,KAAK,EAAE,KAAK;AAChB,GAAG,CAAC;AACJ,CAAC;;ACPD,IAAIC,mBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC3C,IAAIC,MAAI,GAAGD,mBAAiB,CAAC,IAAI,CAAC;AAClC,IAAIJ,MAAI,GAAGI,mBAAiB,CAAC,IAAI,CAAC;AAClC,IAAI,QAAQ,GAAGC,MAAI,IAAIA,MAAI,CAAC,IAAI,CAACL,MAAI,CAAC,CAAC;AACvC;IACA,mBAAc,GAAGK,MAAI,GAAG,UAAU,EAAE,EAAE;AACtC,EAAE,OAAO,EAAE,IAAI,QAAQ,CAACL,MAAI,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC,GAAG,UAAU,EAAE,EAAE;AAClB,EAAE,OAAO,EAAE,IAAI,YAAY;AAC3B,IAAI,OAAOA,MAAI,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AACrC,GAAG,CAAC;AACJ,CAAC;;ACXD,IAAIM,aAAW,GAAGP,mBAA6C,CAAC;AAChE;AACA,IAAIQ,UAAQ,GAAGD,aAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACxC,IAAIE,aAAW,GAAGF,aAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACxC;IACAG,YAAc,GAAG,UAAU,EAAE,EAAE;AAC/B,EAAE,OAAOD,aAAW,CAACD,UAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;;ACPD,IAAIV,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIO,aAAW,GAAGI,mBAA6C,CAAC;AAChE,IAAIZ,OAAK,GAAGa,OAA6B,CAAC;AAC1C,IAAIC,SAAO,GAAGC,YAAmC,CAAC;AAClD;AACA,IAAIC,QAAM,GAAGjB,QAAM,CAAC,MAAM,CAAC;AAC3B,IAAI,KAAK,GAAGS,aAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAClC;AACA;IACA,aAAc,GAAGR,OAAK,CAAC,YAAY;AACnC;AACA;AACA,EAAE,OAAO,CAACgB,QAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC,GAAG,UAAU,EAAE,EAAE;AACnB,EAAE,OAAOF,SAAO,CAAC,EAAE,CAAC,IAAI,QAAQ,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAGE,QAAM,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC,GAAGA,QAAM;;ACfV,IAAIjB,QAAM,GAAGE,QAA8B,CAAC;AAC5C;AACA,IAAIgB,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC;AACA;AACA;IACAmB,wBAAc,GAAG,UAAU,EAAE,EAAE;AAC/B,EAAE,IAAI,EAAE,IAAI,SAAS,EAAE,MAAMD,WAAS,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;AACrE,EAAE,OAAO,EAAE,CAAC;AACZ,CAAC;;ACTD;AACA,IAAIE,eAAa,GAAGlB,aAAsC,CAAC;AAC3D,IAAIiB,wBAAsB,GAAGN,wBAAgD,CAAC;AAC9E;IACAQ,iBAAc,GAAG,UAAU,EAAE,EAAE;AAC/B,EAAE,OAAOD,eAAa,CAACD,wBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,CAAC;;ACND;AACA;IACAG,YAAc,GAAG,UAAU,QAAQ,EAAE;AACrC,EAAE,OAAO,OAAO,QAAQ,IAAI,UAAU,CAAC;AACvC,CAAC;;ACJD,IAAIA,YAAU,GAAGpB,YAAmC,CAAC;AACrD;IACAqB,UAAc,GAAG,UAAU,EAAE,EAAE;AAC/B,EAAE,OAAO,OAAO,EAAE,IAAI,QAAQ,GAAG,EAAE,KAAK,IAAI,GAAGD,YAAU,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC;;ACJD,IAAItB,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIoB,YAAU,GAAGT,YAAmC,CAAC;AACrD;AACA,IAAI,SAAS,GAAG,UAAU,QAAQ,EAAE;AACpC,EAAE,OAAOS,YAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC;AACrD,CAAC,CAAC;AACF;IACAE,YAAc,GAAG,UAAU,SAAS,EAAE,MAAM,EAAE;AAC9C,EAAE,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAACxB,QAAM,CAAC,SAAS,CAAC,CAAC,GAAGA,QAAM,CAAC,SAAS,CAAC,IAAIA,QAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9G,CAAC;;ACTD,IAAIS,aAAW,GAAGP,mBAA6C,CAAC;AAChE;IACA,mBAAc,GAAGO,aAAW,CAAC,EAAE,CAAC,aAAa,CAAC;;ACF9C,IAAIe,YAAU,GAAGtB,YAAoC,CAAC;AACtD;IACA,eAAc,GAAGsB,YAAU,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE;;ACF3D,IAAIxB,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIuB,WAAS,GAAGZ,eAAyC,CAAC;AAC1D;AACA,IAAI,OAAO,GAAGb,QAAM,CAAC,OAAO,CAAC;AAC7B,IAAI,IAAI,GAAGA,QAAM,CAAC,IAAI,CAAC;AACvB,IAAI,QAAQ,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC;AACnE,IAAI,EAAE,GAAG,QAAQ,IAAI,QAAQ,CAAC,EAAE,CAAC;AACjC,IAAI,KAAK,EAAE,OAAO,CAAC;AACnB;AACA,IAAI,EAAE,EAAE;AACR,EAAE,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxB;AACA;AACA,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AACD;AACA;AACA;AACA,IAAI,CAAC,OAAO,IAAIyB,WAAS,EAAE;AAC3B,EAAE,KAAK,GAAGA,WAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACzC,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;AAChC,IAAI,KAAK,GAAGA,WAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC7C,IAAI,IAAI,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,GAAG;AACH,CAAC;AACD;IACA,eAAc,GAAG,OAAO;;;;ACzBxB,IAAIC,YAAU,GAAGxB,eAAyC,CAAC;AAC3D,IAAID,OAAK,GAAGY,OAA6B,CAAC;AAC1C;AACA;IACA,YAAc,GAAG,CAAC,CAAC,MAAM,CAAC,qBAAqB,IAAI,CAACZ,OAAK,CAAC,YAAY;AACtE,EAAE,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;AACxB;AACA;AACA,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,MAAM,CAAC;AAC/D;AACA,IAAI,CAAC,MAAM,CAAC,IAAI,IAAIyB,YAAU,IAAIA,YAAU,GAAG,EAAE,CAAC;AAClD,CAAC,CAAC;;;;ACXF,IAAIC,eAAa,GAAGzB,YAAqC,CAAC;AAC1D;IACA,cAAc,GAAGyB,eAAa;AAC9B,KAAK,CAAC,MAAM,CAAC,IAAI;AACjB,KAAK,OAAO,MAAM,CAAC,QAAQ,IAAI,QAAQ;;ACLvC,IAAI3B,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIsB,YAAU,GAAGX,YAAoC,CAAC;AACtD,IAAIS,YAAU,GAAGR,YAAmC,CAAC;AACrD,IAAIc,eAAa,GAAGZ,mBAA8C,CAAC;AACnE,IAAIa,mBAAiB,GAAGC,cAAyC,CAAC;AAClE;AACA,IAAIb,QAAM,GAAGjB,QAAM,CAAC,MAAM,CAAC;AAC3B;IACA+B,UAAc,GAAGF,mBAAiB,GAAG,UAAU,EAAE,EAAE;AACnD,EAAE,OAAO,OAAO,EAAE,IAAI,QAAQ,CAAC;AAC/B,CAAC,GAAG,UAAU,EAAE,EAAE;AAClB,EAAE,IAAI,OAAO,GAAGL,YAAU,CAAC,QAAQ,CAAC,CAAC;AACrC,EAAE,OAAOF,YAAU,CAAC,OAAO,CAAC,IAAIM,eAAa,CAAC,OAAO,CAAC,SAAS,EAAEX,QAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,CAAC;;ACbD,IAAIjB,QAAM,GAAGE,QAA8B,CAAC;AAC5C;AACA,IAAI8B,QAAM,GAAGhC,QAAM,CAAC,MAAM,CAAC;AAC3B;IACAiC,aAAc,GAAG,UAAU,QAAQ,EAAE;AACrC,EAAE,IAAI;AACN,IAAI,OAAOD,QAAM,CAAC,QAAQ,CAAC,CAAC;AAC5B,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH,CAAC;;ACVD,IAAIhC,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIoB,YAAU,GAAGT,YAAmC,CAAC;AACrD,IAAIoB,aAAW,GAAGnB,aAAqC,CAAC;AACxD;AACA,IAAII,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC;AACA;IACAkC,WAAc,GAAG,UAAU,QAAQ,EAAE;AACrC,EAAE,IAAIZ,YAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC;AAC5C,EAAE,MAAMJ,WAAS,CAACe,aAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC,CAAC;AAChE,CAAC;;ACVD,IAAIC,WAAS,GAAGhC,WAAkC,CAAC;AACnD;AACA;AACA;IACAiC,WAAc,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACjC,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,EAAE,OAAO,IAAI,IAAI,IAAI,GAAG,SAAS,GAAGD,WAAS,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;;ACPD,IAAIlC,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIC,MAAI,GAAGU,YAAqC,CAAC;AACjD,IAAIS,YAAU,GAAGR,YAAmC,CAAC;AACrD,IAAIS,UAAQ,GAAGP,UAAiC,CAAC;AACjD;AACA,IAAIE,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC;AACA;AACA;IACAoC,qBAAc,GAAG,UAAU,KAAK,EAAE,IAAI,EAAE;AACxC,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC;AACd,EAAE,IAAI,IAAI,KAAK,QAAQ,IAAId,YAAU,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAACC,UAAQ,CAAC,GAAG,GAAGpB,MAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC;AAC3G,EAAE,IAAImB,YAAU,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAACC,UAAQ,CAAC,GAAG,GAAGpB,MAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC;AACrF,EAAE,IAAI,IAAI,KAAK,QAAQ,IAAImB,YAAU,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAACC,UAAQ,CAAC,GAAG,GAAGpB,MAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC;AAC3G,EAAE,MAAMe,WAAS,CAAC,yCAAyC,CAAC,CAAC;AAC7D,CAAC;;;;ICfD,MAAc,GAAG,KAAK;;ACAtB,IAAIlB,QAAM,GAAGE,QAA8B,CAAC;AAC5C;AACA;AACA,IAAImC,gBAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC3C;IACAC,WAAc,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE;AACvC,EAAE,IAAI;AACN,IAAID,gBAAc,CAACrC,QAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACtF,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,IAAIA,QAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACxB,GAAG,CAAC,OAAO,KAAK,CAAC;AACjB,CAAC;;ACXD,IAAIA,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIoC,WAAS,GAAGzB,WAAkC,CAAC;AACnD;AACA,IAAI,MAAM,GAAG,oBAAoB,CAAC;AAClC,IAAI0B,OAAK,GAAGvC,QAAM,CAAC,MAAM,CAAC,IAAIsC,WAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpD;IACA,WAAc,GAAGC,OAAK;;ACNtB,IAAIC,SAAO,GAAGtC,MAA+B,CAAC;AAC9C,IAAIqC,OAAK,GAAG1B,WAAoC,CAAC;AACjD;AACA,CAAC4B,gBAAc,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE;AACxC,EAAE,OAAOF,OAAK,CAAC,GAAG,CAAC,KAAKA,OAAK,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;AACvE,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;AACxB,EAAE,OAAO,EAAE,QAAQ;AACnB,EAAE,IAAI,EAAEC,SAAO,GAAG,MAAM,GAAG,QAAQ;AACnC,EAAE,SAAS,EAAE,sCAAsC;AACnD,CAAC,CAAC;;;;ACTF,IAAIxC,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIiB,wBAAsB,GAAGN,wBAAgD,CAAC;AAC9E;AACA,IAAII,QAAM,GAAGjB,QAAM,CAAC,MAAM,CAAC;AAC3B;AACA;AACA;IACA0C,UAAc,GAAG,UAAU,QAAQ,EAAE;AACrC,EAAE,OAAOzB,QAAM,CAACE,wBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClD,CAAC;;ACTD,IAAIV,aAAW,GAAGP,mBAA6C,CAAC;AAChE,IAAIwC,UAAQ,GAAG7B,UAAiC,CAAC;AACjD;AACA,IAAI8B,gBAAc,GAAGlC,aAAW,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;AACpD;AACA;AACA;IACA,gBAAc,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE;AAC3D,EAAE,OAAOkC,gBAAc,CAACD,UAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;;ACTD,IAAIjC,aAAW,GAAGP,mBAA6C,CAAC;AAChE;AACA,IAAI0C,IAAE,GAAG,CAAC,CAAC;AACX,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAC5B,IAAIlC,UAAQ,GAAGD,aAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACzC;IACAoC,KAAc,GAAG,UAAU,GAAG,EAAE;AAChC,EAAE,OAAO,SAAS,IAAI,GAAG,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,GAAGnC,UAAQ,CAAC,EAAEkC,IAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;AAC1F,CAAC;;ACRD,IAAI5C,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAI4C,QAAM,GAAGjC,gBAA8B,CAAC;AAC5C,IAAIkC,QAAM,GAAGjC,gBAAwC,CAAC;AACtD,IAAI+B,KAAG,GAAG7B,KAA2B,CAAC;AACtC,IAAIW,eAAa,GAAGG,YAAqC,CAAC;AAC1D,IAAI,iBAAiB,GAAGkB,cAAyC,CAAC;AAClE;AACA,IAAIC,uBAAqB,GAAGH,QAAM,CAAC,KAAK,CAAC,CAAC;AAC1C,IAAII,QAAM,GAAGlD,QAAM,CAAC,MAAM,CAAC;AAC3B,IAAI,SAAS,GAAGkD,QAAM,IAAIA,QAAM,CAAC,KAAK,CAAC,CAAC;AACxC,IAAI,qBAAqB,GAAG,iBAAiB,GAAGA,QAAM,GAAGA,QAAM,IAAIA,QAAM,CAAC,aAAa,IAAIL,KAAG,CAAC;AAC/F;IACAM,iBAAc,GAAG,UAAU,IAAI,EAAE;AACjC,EAAE,IAAI,CAACJ,QAAM,CAACE,uBAAqB,EAAE,IAAI,CAAC,IAAI,EAAEtB,eAAa,IAAI,OAAOsB,uBAAqB,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,EAAE;AAClH,IAAI,IAAI,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;AACvC,IAAI,IAAItB,eAAa,IAAIoB,QAAM,CAACG,QAAM,EAAE,IAAI,CAAC,EAAE;AAC/C,MAAMD,uBAAqB,CAAC,IAAI,CAAC,GAAGC,QAAM,CAAC,IAAI,CAAC,CAAC;AACjD,KAAK,MAAM,IAAI,iBAAiB,IAAI,SAAS,EAAE;AAC/C,MAAMD,uBAAqB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AAC3D,KAAK,MAAM;AACX,MAAMA,uBAAqB,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;AACvE,KAAK;AACL,GAAG,CAAC,OAAOA,uBAAqB,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;;ACvBD,IAAIjD,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIC,MAAI,GAAGU,YAAqC,CAAC;AACjD,IAAIU,UAAQ,GAAGT,UAAiC,CAAC;AACjD,IAAIiB,UAAQ,GAAGf,UAAiC,CAAC;AACjD,IAAImB,WAAS,GAAGL,WAAkC,CAAC;AACnD,IAAI,mBAAmB,GAAGkB,qBAA6C,CAAC;AACxE,IAAIG,iBAAe,GAAGC,iBAAyC,CAAC;AAChE;AACA,IAAIlC,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC,IAAIqD,cAAY,GAAGF,iBAAe,CAAC,aAAa,CAAC,CAAC;AAClD;AACA;AACA;IACAG,aAAc,GAAG,UAAU,KAAK,EAAE,IAAI,EAAE;AACxC,EAAE,IAAI,CAAC/B,UAAQ,CAAC,KAAK,CAAC,IAAIQ,UAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AACxD,EAAE,IAAI,YAAY,GAAGI,WAAS,CAAC,KAAK,EAAEkB,cAAY,CAAC,CAAC;AACpD,EAAE,IAAI,MAAM,CAAC;AACb,EAAE,IAAI,YAAY,EAAE;AACpB,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC;AAC7C,IAAI,MAAM,GAAGlD,MAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7C,IAAI,IAAI,CAACoB,UAAQ,CAAC,MAAM,CAAC,IAAIQ,UAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC;AAC7D,IAAI,MAAMb,WAAS,CAAC,yCAAyC,CAAC,CAAC;AAC/D,GAAG;AACH,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE,IAAI,GAAG,QAAQ,CAAC;AAC1C,EAAE,OAAO,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;;ACzBD,IAAI,WAAW,GAAGhB,aAAoC,CAAC;AACvD,IAAI6B,UAAQ,GAAGlB,UAAiC,CAAC;AACjD;AACA;AACA;IACA0C,eAAc,GAAG,UAAU,QAAQ,EAAE;AACrC,EAAE,IAAI,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5C,EAAE,OAAOxB,UAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AACxC,CAAC;;ACRD,IAAI/B,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIqB,UAAQ,GAAGV,UAAiC,CAAC;AACjD;AACA,IAAI2C,UAAQ,GAAGxD,QAAM,CAAC,QAAQ,CAAC;AAC/B;AACA,IAAIyD,QAAM,GAAGlC,UAAQ,CAACiC,UAAQ,CAAC,IAAIjC,UAAQ,CAACiC,UAAQ,CAAC,aAAa,CAAC,CAAC;AACpE;IACAE,uBAAc,GAAG,UAAU,EAAE,EAAE;AAC/B,EAAE,OAAOD,QAAM,GAAGD,UAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AAClD,CAAC;;ACTD,IAAIG,aAAW,GAAGzD,WAAmC,CAAC;AACtD,IAAID,OAAK,GAAGY,OAA6B,CAAC;AAC1C,IAAI,aAAa,GAAGC,uBAA+C,CAAC;AACpE;AACA;IACA,YAAc,GAAG,CAAC6C,aAAW,IAAI,CAAC1D,OAAK,CAAC,YAAY;AACpD;AACA,EAAE,OAAO,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE;AAC1D,IAAI,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE;AAClC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACZ,CAAC,CAAC;;ACVF,IAAI0D,aAAW,GAAGzD,WAAmC,CAAC;AACtD,IAAIC,MAAI,GAAGU,YAAqC,CAAC;AACjD,IAAI+C,4BAA0B,GAAG9C,0BAAqD,CAAC;AACvF,IAAIR,0BAAwB,GAAGU,0BAAkD,CAAC;AAClF,IAAIK,iBAAe,GAAGS,iBAAyC,CAAC;AAChE,IAAIyB,eAAa,GAAGP,eAAuC,CAAC;AAC5D,IAAID,QAAM,GAAGK,gBAAwC,CAAC;AACtD,IAAIS,gBAAc,GAAGC,YAAsC,CAAC;AAC5D;AACA;AACA,IAAIC,2BAAyB,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAChE;AACA;AACA;AACA,0CAAS,GAAGJ,aAAW,GAAGI,2BAAyB,GAAG,SAAS,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE;AAC9F,EAAE,CAAC,GAAG1C,iBAAe,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE,CAAC,GAAGkC,eAAa,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,IAAIM,gBAAc,EAAE,IAAI;AAC1B,IAAI,OAAOE,2BAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C,GAAG,CAAC,OAAO,KAAK,EAAE,eAAe;AACjC,EAAE,IAAIhB,QAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAOzC,0BAAwB,CAAC,CAACH,MAAI,CAACyD,4BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC;;;;ACrBD,IAAI5D,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIqB,UAAQ,GAAGV,UAAiC,CAAC;AACjD;AACA,IAAImB,QAAM,GAAGhC,QAAM,CAAC,MAAM,CAAC;AAC3B,IAAIkB,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC;AACA;IACAgE,UAAc,GAAG,UAAU,QAAQ,EAAE;AACrC,EAAE,IAAIzC,UAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC;AAC1C,EAAE,MAAML,WAAS,CAACc,QAAM,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,CAAC;AAC1D,CAAC;;ACVD,IAAIhC,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIyD,aAAW,GAAG9C,WAAmC,CAAC;AACtD,IAAI,cAAc,GAAGC,YAAsC,CAAC;AAC5D,IAAIkD,UAAQ,GAAGhD,UAAiC,CAAC;AACjD,IAAIuC,eAAa,GAAGzB,eAAuC,CAAC;AAC5D;AACA,IAAIZ,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC;AACA,IAAIiE,iBAAe,GAAG,MAAM,CAAC,cAAc,CAAC;AAC5C;AACA;AACA;AACA,gCAAS,GAAGN,aAAW,GAAGM,iBAAe,GAAG,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE;AACtF,EAAED,UAAQ,CAAC,CAAC,CAAC,CAAC;AACd,EAAE,CAAC,GAAGT,eAAa,CAAC,CAAC,CAAC,CAAC;AACvB,EAAES,UAAQ,CAAC,UAAU,CAAC,CAAC;AACvB,EAAE,IAAI,cAAc,EAAE,IAAI;AAC1B,IAAI,OAAOC,iBAAe,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AAC7C,GAAG,CAAC,OAAO,KAAK,EAAE,eAAe;AACjC,EAAE,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,UAAU,EAAE,MAAM/C,WAAS,CAAC,yBAAyB,CAAC,CAAC;AAC7F,EAAE,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;AACrD,EAAE,OAAO,CAAC,CAAC;AACX,CAAC;;ACtBD,IAAIyC,aAAW,GAAGzD,WAAmC,CAAC;AACtD,IAAIgE,sBAAoB,GAAGrD,oBAA8C,CAAC;AAC1E,IAAIP,0BAAwB,GAAGQ,0BAAkD,CAAC;AAClF;IACAqD,6BAAc,GAAGR,aAAW,GAAG,UAAU,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;AAC7D,EAAE,OAAOO,sBAAoB,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE5D,0BAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACjF,CAAC,GAAG,UAAU,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;AAClC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACtB,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;;;;ACTD,IAAIG,aAAW,GAAGP,mBAA6C,CAAC;AAChE,IAAIoB,YAAU,GAAGT,YAAmC,CAAC;AACrD,IAAI0B,OAAK,GAAGzB,WAAoC,CAAC;AACjD;AACA,IAAI,gBAAgB,GAAGL,aAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACtD;AACA;AACA,IAAI,CAACa,YAAU,CAACiB,OAAK,CAAC,aAAa,CAAC,EAAE;AACtC,EAAEA,OAAK,CAAC,aAAa,GAAG,UAAU,EAAE,EAAE;AACtC,IAAI,OAAO,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAChC,GAAG,CAAC;AACJ,CAAC;AACD;IACA6B,eAAc,GAAG7B,OAAK,CAAC,aAAa;;ACbpC,IAAIvC,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIoB,YAAU,GAAGT,YAAmC,CAAC;AACrD,IAAIuD,eAAa,GAAGtD,eAAsC,CAAC;AAC3D;AACA,IAAIuD,SAAO,GAAGrE,QAAM,CAAC,OAAO,CAAC;AAC7B;IACA,aAAc,GAAGsB,YAAU,CAAC+C,SAAO,CAAC,IAAI,aAAa,CAAC,IAAI,CAACD,eAAa,CAACC,SAAO,CAAC,CAAC;;ACNlF,IAAIvB,QAAM,GAAG5C,gBAA8B,CAAC;AAC5C,IAAI2C,KAAG,GAAGhC,KAA2B,CAAC;AACtC;AACA,IAAIyD,MAAI,GAAGxB,QAAM,CAAC,MAAM,CAAC,CAAC;AAC1B;IACAyB,WAAc,GAAG,UAAU,GAAG,EAAE;AAChC,EAAE,OAAOD,MAAI,CAAC,GAAG,CAAC,KAAKA,MAAI,CAAC,GAAG,CAAC,GAAGzB,KAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC;;ICPD2B,YAAc,GAAG,EAAE;;ACAnB,IAAI,eAAe,GAAGtE,aAAuC,CAAC;AAC9D,IAAIF,QAAM,GAAGa,QAA8B,CAAC;AAC5C,IAAIJ,aAAW,GAAGK,mBAA6C,CAAC;AAChE,IAAIS,UAAQ,GAAGP,UAAiC,CAAC;AACjD,IAAImD,6BAA2B,GAAGrC,6BAAsD,CAAC;AACzF,IAAIiB,QAAM,GAAGC,gBAAwC,CAAC;AACtD,IAAIF,QAAM,GAAGM,WAAoC,CAAC;AAClD,IAAImB,WAAS,GAAGT,WAAkC,CAAC;AACnD,IAAIU,YAAU,GAAGC,YAAmC,CAAC;AACrD;AACA,IAAI,0BAA0B,GAAG,4BAA4B,CAAC;AAC9D,IAAIvD,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC,IAAIqE,SAAO,GAAGrE,QAAM,CAAC,OAAO,CAAC;AAC7B,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAClB;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE;AAC5B,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC,CAAC;AACF;AACA,IAAI,SAAS,GAAG,UAAU,IAAI,EAAE;AAChC,EAAE,OAAO,UAAU,EAAE,EAAE;AACvB,IAAI,IAAI,KAAK,CAAC;AACd,IAAI,IAAI,CAACuB,UAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,KAAK,IAAI,EAAE;AAC1D,MAAM,MAAML,WAAS,CAAC,yBAAyB,GAAG,IAAI,GAAG,WAAW,CAAC,CAAC;AACtE,KAAK,CAAC,OAAO,KAAK,CAAC;AACnB,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,IAAI,eAAe,IAAI4B,QAAM,CAAC,KAAK,EAAE;AACrC,EAAE,IAAI,KAAK,GAAGA,QAAM,CAAC,KAAK,KAAKA,QAAM,CAAC,KAAK,GAAG,IAAIuB,SAAO,EAAE,CAAC,CAAC;AAC7D,EAAE,IAAI,KAAK,GAAG5D,aAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrC,EAAE,IAAI,KAAK,GAAGA,aAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrC,EAAE,IAAI,KAAK,GAAGA,aAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrC,EAAE,GAAG,GAAG,UAAU,EAAE,EAAE,QAAQ,EAAE;AAChC,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,MAAM,IAAIS,WAAS,CAAC,0BAA0B,CAAC,CAAC;AAC1E,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;AACzB,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC/B,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG,CAAC;AACJ,EAAE,GAAG,GAAG,UAAU,EAAE,EAAE;AACtB,IAAI,OAAO,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAClC,GAAG,CAAC;AACJ,EAAE,GAAG,GAAG,UAAU,EAAE,EAAE;AACtB,IAAI,OAAO,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC5B,GAAG,CAAC;AACJ,CAAC,MAAM;AACP,EAAE,IAAI,KAAK,GAAGqD,WAAS,CAAC,OAAO,CAAC,CAAC;AACjC,EAAEC,YAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC3B,EAAE,GAAG,GAAG,UAAU,EAAE,EAAE,QAAQ,EAAE;AAChC,IAAI,IAAIzB,QAAM,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,IAAI7B,WAAS,CAAC,0BAA0B,CAAC,CAAC;AAC3E,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;AACzB,IAAIiD,6BAA2B,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACrD,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG,CAAC;AACJ,EAAE,GAAG,GAAG,UAAU,EAAE,EAAE;AACtB,IAAI,OAAOpB,QAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAC9C,GAAG,CAAC;AACJ,EAAE,GAAG,GAAG,UAAU,EAAE,EAAE;AACtB,IAAI,OAAOA,QAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC7B,GAAG,CAAC;AACJ,CAAC;AACD;IACA,aAAc,GAAG;AACjB,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,SAAS,EAAE,SAAS;AACtB,CAAC;;ACpED,IAAIY,aAAW,GAAGzD,WAAmC,CAAC;AACtD,IAAI6C,QAAM,GAAGlC,gBAAwC,CAAC;AACtD;AACA,IAAIN,mBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC3C;AACA,IAAI,aAAa,GAAGoD,aAAW,IAAI,MAAM,CAAC,wBAAwB,CAAC;AACnE;AACA,IAAI,MAAM,GAAGZ,QAAM,CAACxC,mBAAiB,EAAE,MAAM,CAAC,CAAC;AAC/C;AACA,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,SAAS,GAAG,eAAe,EAAE,IAAI,KAAK,WAAW,CAAC;AACnF,IAAI,YAAY,GAAG,MAAM,KAAK,CAACoD,aAAW,KAAKA,aAAW,IAAI,aAAa,CAACpD,mBAAiB,EAAE,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AACtH;IACA,YAAc,GAAG;AACjB,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,YAAY,EAAE,YAAY;AAC5B,CAAC;;AChBD,IAAIP,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIoB,YAAU,GAAGT,YAAmC,CAAC;AACrD,IAAIkC,QAAM,GAAGjC,gBAAwC,CAAC;AACtD,IAAIqD,6BAA2B,GAAGnD,6BAAsD,CAAC;AACzF,IAAIsB,WAAS,GAAGR,WAAkC,CAAC;AACnD,IAAIsC,eAAa,GAAGpB,eAAsC,CAAC;AAC3D,IAAI0B,qBAAmB,GAAGtB,aAAsC,CAAC;AACjE,IAAIuB,4BAA0B,GAAGb,YAAqC,CAAC,YAAY,CAAC;AACpF;AACA,IAAIc,kBAAgB,GAAGF,qBAAmB,CAAC,GAAG,CAAC;AAC/C,IAAIG,sBAAoB,GAAGH,qBAAmB,CAAC,OAAO,CAAC;AACvD,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9C;AACA,CAACI,kBAAc,GAAG,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE;AACpD,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;AAClD,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;AACtD,EAAE,IAAI,WAAW,GAAG,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;AAC5D,EAAE,IAAI,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;AACxE,EAAE,IAAI,KAAK,CAAC;AACZ,EAAE,IAAIxD,YAAU,CAAC,KAAK,CAAC,EAAE;AACzB,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,EAAE;AAChD,MAAM,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;AAC1E,KAAK;AACL,IAAI,IAAI,CAACyB,QAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK4B,4BAA0B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;AACvF,MAAMR,6BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACvD,KAAK;AACL,IAAI,KAAK,GAAGU,sBAAoB,CAAC,KAAK,CAAC,CAAC;AACxC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACvB,MAAM,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;AACxE,KAAK;AACL,GAAG;AACH,EAAE,IAAI,CAAC,KAAK7E,QAAM,EAAE;AACpB,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC/B,SAASsC,WAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC/B,IAAI,OAAO;AACX,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE;AACtB,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,GAAG,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;AACrC,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC7B,OAAO6B,6BAA2B,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAClD;AACA,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,QAAQ,GAAG;AACvD,EAAE,OAAO7C,YAAU,CAAC,IAAI,CAAC,IAAIsD,kBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,IAAIR,eAAa,CAAC,IAAI,CAAC,CAAC;AAClF,CAAC,CAAC;;;;;;AC7CF,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACrB,IAAIW,OAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACvB;AACA;AACA;IACAC,qBAAc,GAAG,UAAU,QAAQ,EAAE;AACrC,EAAE,IAAI,MAAM,GAAG,CAAC,QAAQ,CAAC;AACzB;AACA,EAAE,OAAO,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAGD,OAAK,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AACrF,CAAC;;ACTD,IAAIC,qBAAmB,GAAG9E,qBAA8C,CAAC;AACzE;AACA,IAAI+E,KAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACnB,IAAIC,KAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACnB;AACA;AACA;AACA;IACAC,iBAAc,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE;AAC1C,EAAE,IAAI,OAAO,GAAGH,qBAAmB,CAAC,KAAK,CAAC,CAAC;AAC3C,EAAE,OAAO,OAAO,GAAG,CAAC,GAAGC,KAAG,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC,GAAGC,KAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvE,CAAC;;ACXD,IAAIF,qBAAmB,GAAG9E,qBAA8C,CAAC;AACzE;AACA,IAAIgF,KAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACnB;AACA;AACA;IACAE,UAAc,GAAG,UAAU,QAAQ,EAAE;AACrC,EAAE,OAAO,QAAQ,GAAG,CAAC,GAAGF,KAAG,CAACF,qBAAmB,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACjF,CAAC;;ACRD,IAAII,UAAQ,GAAGlF,UAAiC,CAAC;AACjD;AACA;AACA;IACAmF,mBAAc,GAAG,UAAU,GAAG,EAAE;AAChC,EAAE,OAAOD,UAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;;ACND,IAAI/D,iBAAe,GAAGnB,iBAAyC,CAAC;AAChE,IAAIiF,iBAAe,GAAGtE,iBAAyC,CAAC;AAChE,IAAIwE,mBAAiB,GAAGvE,mBAA4C,CAAC;AACrE;AACA;AACA,IAAIwE,cAAY,GAAG,UAAU,WAAW,EAAE;AAC1C,EAAE,OAAO,UAAU,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE;AACzC,IAAI,IAAI,CAAC,GAAGjE,iBAAe,CAAC,KAAK,CAAC,CAAC;AACnC,IAAI,IAAI,MAAM,GAAGgE,mBAAiB,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,IAAI,KAAK,GAAGF,iBAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACnD,IAAI,IAAI,KAAK,CAAC;AACd;AACA;AACA,IAAI,IAAI,WAAW,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,MAAM,GAAG,KAAK,EAAE;AACxD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACzB;AACA,MAAM,IAAI,KAAK,IAAI,KAAK,EAAE,OAAO,IAAI,CAAC;AACtC;AACA,KAAK,MAAM,MAAM,MAAM,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;AAC1C,MAAM,IAAI,CAAC,WAAW,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,WAAW,IAAI,KAAK,IAAI,CAAC,CAAC;AAC3F,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;AAChC,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;IACA,aAAc,GAAG;AACjB;AACA;AACA,EAAE,QAAQ,EAAEG,cAAY,CAAC,IAAI,CAAC;AAC9B;AACA;AACA,EAAE,OAAO,EAAEA,cAAY,CAAC,KAAK,CAAC;AAC9B,CAAC;;AC/BD,IAAI7E,aAAW,GAAGP,mBAA6C,CAAC;AAChE,IAAI6C,QAAM,GAAGlC,gBAAwC,CAAC;AACtD,IAAIQ,iBAAe,GAAGP,iBAAyC,CAAC;AAChE,IAAIyE,SAAO,GAAGvE,aAAsC,CAAC,OAAO,CAAC;AAC7D,IAAIwD,YAAU,GAAG1C,YAAmC,CAAC;AACrD;AACA,IAAI0D,MAAI,GAAG/E,aAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAChC;IACA,kBAAc,GAAG,UAAU,MAAM,EAAE,KAAK,EAAE;AAC1C,EAAE,IAAI,CAAC,GAAGY,iBAAe,CAAC,MAAM,CAAC,CAAC;AAClC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,GAAG,CAAC;AACV,EAAE,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC0B,QAAM,CAACyB,YAAU,EAAE,GAAG,CAAC,IAAIzB,QAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAIyC,MAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACjF;AACA,EAAE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,IAAIzC,QAAM,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAC5D,IAAI,CAACwC,SAAO,CAAC,MAAM,EAAE,GAAG,CAAC,IAAIC,MAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/C,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;;ACnBD;IACAC,aAAc,GAAG;AACjB,EAAE,aAAa;AACf,EAAE,gBAAgB;AAClB,EAAE,eAAe;AACjB,EAAE,sBAAsB;AACxB,EAAE,gBAAgB;AAClB,EAAE,UAAU;AACZ,EAAE,SAAS;AACX,CAAC;;ACTD,IAAIC,oBAAkB,GAAGxF,kBAA4C,CAAC;AACtE,IAAIuF,aAAW,GAAG5E,aAAqC,CAAC;AACxD;AACA,IAAI2D,YAAU,GAAGiB,aAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC3D;AACA;AACA;AACA;AACA,qCAAS,GAAG,MAAM,CAAC,mBAAmB,IAAI,SAAS,mBAAmB,CAAC,CAAC,EAAE;AAC1E,EAAE,OAAOC,oBAAkB,CAAC,CAAC,EAAElB,YAAU,CAAC,CAAC;AAC3C,CAAC;;;;ACVD;AACA,uCAAS,GAAG,MAAM,CAAC,qBAAqB;;ACDxC,IAAIhD,YAAU,GAAGtB,YAAoC,CAAC;AACtD,IAAIO,aAAW,GAAGI,mBAA6C,CAAC;AAChE,IAAI8E,2BAAyB,GAAG7E,yBAAqD,CAAC;AACtF,IAAI8E,6BAA2B,GAAG5E,2BAAuD,CAAC;AAC1F,IAAIgD,UAAQ,GAAGlC,UAAiC,CAAC;AACjD;AACA,IAAI+D,QAAM,GAAGpF,aAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACpC;AACA;IACAqF,SAAc,GAAGtE,YAAU,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,SAAS,OAAO,CAAC,EAAE,EAAE;AAC1E,EAAE,IAAI,IAAI,GAAGmE,2BAAyB,CAAC,CAAC,CAAC3B,UAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,EAAE,IAAI,qBAAqB,GAAG4B,6BAA2B,CAAC,CAAC,CAAC;AAC5D,EAAE,OAAO,qBAAqB,GAAGC,QAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAChF,CAAC;;ACbD,IAAI9C,QAAM,GAAG7C,gBAAwC,CAAC;AACtD,IAAI,OAAO,GAAGW,SAAgC,CAAC;AAC/C,IAAIkF,gCAA8B,GAAGjF,8BAA0D,CAAC;AAChG,IAAIoD,sBAAoB,GAAGlD,oBAA8C,CAAC;AAC1E;IACAgF,2BAAc,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE;AAC3C,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,EAAE,IAAI,cAAc,GAAG9B,sBAAoB,CAAC,CAAC,CAAC;AAC9C,EAAE,IAAI,wBAAwB,GAAG6B,gCAA8B,CAAC,CAAC,CAAC;AAClE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAChD,QAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AACjG,GAAG;AACH,CAAC;;ACbD,IAAI9C,OAAK,GAAGC,OAA6B,CAAC;AAC1C,IAAIoB,YAAU,GAAGT,YAAmC,CAAC;AACrD;AACA,IAAI,WAAW,GAAG,iBAAiB,CAAC;AACpC;AACA,IAAIoF,UAAQ,GAAG,UAAU,OAAO,EAAE,SAAS,EAAE;AAC7C,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACvC,EAAE,OAAO,KAAK,IAAI,QAAQ,GAAG,IAAI;AACjC,MAAM,KAAK,IAAI,MAAM,GAAG,KAAK;AAC7B,MAAM3E,YAAU,CAAC,SAAS,CAAC,GAAGrB,OAAK,CAAC,SAAS,CAAC;AAC9C,MAAM,CAAC,CAAC,SAAS,CAAC;AAClB,CAAC,CAAC;AACF;AACA,IAAI,SAAS,GAAGgG,UAAQ,CAAC,SAAS,GAAG,UAAU,MAAM,EAAE;AACvD,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AAChE,CAAC,CAAC;AACF;AACA,IAAI,IAAI,GAAGA,UAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;AAC9B,IAAI,MAAM,GAAGA,UAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;AACnC,IAAI,QAAQ,GAAGA,UAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC;AACvC;IACA,UAAc,GAAGA,UAAQ;;ACrBzB,IAAIjG,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIG,0BAAwB,GAAGQ,8BAA0D,CAAC,CAAC,CAAC;AAC5F,IAAIsD,6BAA2B,GAAGrD,6BAAsD,CAAC;AACzF,IAAIoF,UAAQ,GAAGlF,kBAAgC,CAAC;AAChD,IAAI,SAAS,GAAGc,WAAkC,CAAC;AACnD,IAAIkE,2BAAyB,GAAGhD,2BAAmD,CAAC;AACpF,IAAIiD,UAAQ,GAAG7C,UAAiC,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACA,OAAc,GAAG,UAAU,OAAO,EAAE,MAAM,EAAE;AAC5C,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAC9B,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAC9B,EAAE,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;AAC5B,EAAE,IAAI,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,CAAC;AACtE,EAAE,IAAI,MAAM,EAAE;AACd,IAAI,MAAM,GAAGpD,QAAM,CAAC;AACpB,GAAG,MAAM,IAAI,MAAM,EAAE;AACrB,IAAI,MAAM,GAAGA,QAAM,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACrD,GAAG,MAAM;AACT,IAAI,MAAM,GAAG,CAACA,QAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC;AAC9C,GAAG;AACH,EAAE,IAAI,MAAM,EAAE,KAAK,GAAG,IAAI,MAAM,EAAE;AAClC,IAAI,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE;AAC7B,MAAM,UAAU,GAAGK,0BAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACzD,MAAM,cAAc,GAAG,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC;AACtD,KAAK,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACxC,IAAI,MAAM,GAAG4F,UAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC1F;AACA,IAAI,IAAI,CAAC,MAAM,IAAI,cAAc,KAAK,SAAS,EAAE;AACjD,MAAM,IAAI,OAAO,cAAc,IAAI,OAAO,cAAc,EAAE,SAAS;AACnE,MAAMD,2BAAyB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAChE,KAAK;AACL;AACA,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;AACjE,MAAM7B,6BAA2B,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAChE,KAAK;AACL;AACA,IAAI+B,UAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AACnD,GAAG;AACH,CAAC;;ACtDD,IAAI,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC3C,IAAIC,OAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC;AACpC,IAAI3F,MAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAClC,IAAIL,MAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAClC;AACA;IACA,aAAc,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAKK,MAAI,GAAGL,MAAI,CAAC,IAAI,CAACgG,OAAK,CAAC,GAAG,YAAY;AACvG,EAAE,OAAOhG,MAAI,CAAC,KAAK,CAACgG,OAAK,EAAE,SAAS,CAAC,CAAC;AACtC,CAAC,CAAC;;ACRF,IAAIpF,SAAO,GAAGb,YAAmC,CAAC;AAClD;AACA;AACA;AACA;IACAkG,SAAc,GAAG,KAAK,CAAC,OAAO,IAAI,SAAS,OAAO,CAAC,QAAQ,EAAE;AAC7D,EAAE,OAAOrF,SAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC;AACtC,CAAC;;ACPD,IAAIoC,iBAAe,GAAGjD,iBAAyC,CAAC;AAChE;AACA,IAAImG,eAAa,GAAGlD,iBAAe,CAAC,aAAa,CAAC,CAAC;AACnD,IAAImD,MAAI,GAAG,EAAE,CAAC;AACd;AACAA,MAAI,CAACD,eAAa,CAAC,GAAG,GAAG,CAAC;AAC1B;IACA,kBAAc,GAAG,MAAM,CAACC,MAAI,CAAC,KAAK,YAAY;;ACP9C,IAAItG,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIqG,uBAAqB,GAAG1F,kBAA6C,CAAC;AAC1E,IAAIS,YAAU,GAAGR,YAAmC,CAAC;AACrD,IAAI,UAAU,GAAGE,YAAmC,CAAC;AACrD,IAAImC,iBAAe,GAAGrB,iBAAyC,CAAC;AAChE;AACA,IAAIuE,eAAa,GAAGlD,iBAAe,CAAC,aAAa,CAAC,CAAC;AACnD,IAAIlC,QAAM,GAAGjB,QAAM,CAAC,MAAM,CAAC;AAC3B;AACA;AACA,IAAI,iBAAiB,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC;AACvF;AACA;AACA,IAAI,MAAM,GAAG,UAAU,EAAE,EAAE,GAAG,EAAE;AAChC,EAAE,IAAI;AACN,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;AACnB,GAAG,CAAC,OAAO,KAAK,EAAE,eAAe;AACjC,CAAC,CAAC;AACF;AACA;IACAe,SAAc,GAAGwF,uBAAqB,GAAG,UAAU,GAAG,UAAU,EAAE,EAAE;AACpE,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC;AACrB,EAAE,OAAO,EAAE,KAAK,SAAS,GAAG,WAAW,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM;AAC9D;AACA,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,CAAC,GAAGtF,QAAM,CAAC,EAAE,CAAC,EAAEoF,eAAa,CAAC,CAAC,IAAI,QAAQ,GAAG,GAAG;AAC5E;AACA,MAAM,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAAC;AACvC;AACA,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI/E,YAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,WAAW,GAAG,MAAM,CAAC;AAC1F,CAAC;;AC7BD,IAAItB,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIa,SAAO,GAAGF,SAA+B,CAAC;AAC9C;AACA,IAAImB,QAAM,GAAGhC,QAAM,CAAC,MAAM,CAAC;AAC3B;IACAU,UAAc,GAAG,UAAU,QAAQ,EAAE;AACrC,EAAE,IAAIK,SAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC,2CAA2C,CAAC,CAAC;AACnG,EAAE,OAAOiB,QAAM,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC;;ACRD,IAAI,kBAAkB,GAAG9B,kBAA4C,CAAC;AACtE,IAAIuF,aAAW,GAAG5E,aAAqC,CAAC;AACxD;AACA;AACA;AACA;IACA2F,YAAc,GAAG,MAAM,CAAC,IAAI,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE;AACjD,EAAE,OAAO,kBAAkB,CAAC,CAAC,EAAEf,aAAW,CAAC,CAAC;AAC5C,CAAC;;ACRD,IAAI9B,aAAW,GAAGzD,WAAmC,CAAC;AACtD,IAAIgE,sBAAoB,GAAGrD,oBAA8C,CAAC;AAC1E,IAAImD,UAAQ,GAAGlD,UAAiC,CAAC;AACjD,IAAIO,iBAAe,GAAGL,iBAAyC,CAAC;AAChE,IAAIwF,YAAU,GAAG1E,YAAmC,CAAC;AACrD;AACA;AACA;AACA;IACA,sBAAc,GAAG6B,aAAW,GAAG,MAAM,CAAC,gBAAgB,GAAG,SAAS,gBAAgB,CAAC,CAAC,EAAE,UAAU,EAAE;AAClG,EAAEK,UAAQ,CAAC,CAAC,CAAC,CAAC;AACd,EAAE,IAAI,KAAK,GAAG3C,iBAAe,CAAC,UAAU,CAAC,CAAC;AAC1C,EAAE,IAAI,IAAI,GAAGmF,YAAU,CAAC,UAAU,CAAC,CAAC;AACpC,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3B,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;AAChB,EAAE,IAAI,GAAG,CAAC;AACV,EAAE,OAAO,MAAM,GAAG,KAAK,EAAEtC,sBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACpF,EAAE,OAAO,CAAC,CAAC;AACX,CAAC;;AClBD,IAAI1C,YAAU,GAAGtB,YAAoC,CAAC;AACtD;IACAuG,MAAc,GAAGjF,YAAU,CAAC,UAAU,EAAE,iBAAiB,CAAC;;;;ACD1D,IAAIwC,UAAQ,GAAG9D,UAAiC,CAAC;AACjD,IAAI,gBAAgB,GAAGW,sBAAgD,CAAC;AACxE,IAAI,WAAW,GAAGC,aAAqC,CAAC;AACxD,IAAI0D,YAAU,GAAGxD,YAAmC,CAAC;AACrD,IAAI,IAAI,GAAGc,MAA4B,CAAC;AACxC,IAAI4B,uBAAqB,GAAGV,uBAA+C,CAAC;AAC5E,IAAIuB,WAAS,GAAGnB,WAAkC,CAAC;AACnD;AACA,IAAI,EAAE,GAAG,GAAG,CAAC;AACb,IAAI,EAAE,GAAG,GAAG,CAAC;AACb,IAAIsD,WAAS,GAAG,WAAW,CAAC;AAC5B,IAAI,MAAM,GAAG,QAAQ,CAAC;AACtB,IAAIC,UAAQ,GAAGpC,WAAS,CAAC,UAAU,CAAC,CAAC;AACrC;AACA,IAAI,gBAAgB,GAAG,YAAY,eAAe,CAAC;AACnD;AACA,IAAI,SAAS,GAAG,UAAU,OAAO,EAAE;AACnC,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,GAAG,GAAG,MAAM,GAAG,EAAE,CAAC;AAC7D,CAAC,CAAC;AACF;AACA;AACA,IAAI,yBAAyB,GAAG,UAAU,eAAe,EAAE;AAC3D,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC;AAC1B,EAAE,IAAI,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC;AACjD,EAAE,eAAe,GAAG,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA;AACA,IAAI,wBAAwB,GAAG,YAAY;AAC3C;AACA,EAAE,IAAI,MAAM,GAAGb,uBAAqB,CAAC,QAAQ,CAAC,CAAC;AAC/C,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;AACjC,EAAE,IAAI,cAAc,CAAC;AACrB,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAChC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC3B;AACA,EAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAC1B,EAAE,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;AACjD,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC;AACxB,EAAE,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACvD,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC;AACzB,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC;AACpB,IAAI,eAAe,GAAG,YAAY;AAClC,EAAE,IAAI;AACN,IAAI,eAAe,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;AACpD,GAAG,CAAC,OAAO,KAAK,EAAE,gBAAgB;AAClC,EAAE,eAAe,GAAG,OAAO,QAAQ,IAAI,WAAW;AAClD,MAAM,QAAQ,CAAC,MAAM,IAAI,eAAe;AACxC,QAAQ,yBAAyB,CAAC,eAAe,CAAC;AAClD,QAAQ,wBAAwB,EAAE;AAClC,MAAM,yBAAyB,CAAC,eAAe,CAAC,CAAC;AACjD,EAAE,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;AAClC,EAAE,OAAO,MAAM,EAAE,EAAE,OAAO,eAAe,CAACgD,WAAS,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1E,EAAE,OAAO,eAAe,EAAE,CAAC;AAC3B,CAAC,CAAC;AACF;AACAlC,YAAU,CAACmC,UAAQ,CAAC,GAAG,IAAI,CAAC;AAC5B;AACA;AACA;IACA,YAAc,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE;AACjE,EAAE,IAAI,MAAM,CAAC;AACb,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;AAClB,IAAI,gBAAgB,CAACD,WAAS,CAAC,GAAG1C,UAAQ,CAAC,CAAC,CAAC,CAAC;AAC9C,IAAI,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;AACpC,IAAI,gBAAgB,CAAC0C,WAAS,CAAC,GAAG,IAAI,CAAC;AACvC;AACA,IAAI,MAAM,CAACC,UAAQ,CAAC,GAAG,CAAC,CAAC;AACzB,GAAG,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;AACpC,EAAE,OAAO,UAAU,KAAK,SAAS,GAAG,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAClF,CAAC;;;;ACjFD,IAAIlG,aAAW,GAAGP,mBAA6C,CAAC;AAChE;IACA0G,YAAc,GAAGnG,aAAW,CAAC,EAAE,CAAC,KAAK,CAAC;;;;ACDtC,IAAIM,SAAO,GAAGb,YAAmC,CAAC;AAClD,IAAImB,iBAAe,GAAGR,iBAAyC,CAAC;AAChE,IAAIgG,sBAAoB,GAAG/F,yBAAqD,CAAC,CAAC,CAAC;AACnF,IAAI8F,YAAU,GAAG5F,YAAmC,CAAC;AACrD;AACA,IAAI,WAAW,GAAG,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,mBAAmB;AACnF,IAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAC5C;AACA,IAAI,cAAc,GAAG,UAAU,EAAE,EAAE;AACnC,EAAE,IAAI;AACN,IAAI,OAAO6F,sBAAoB,CAAC,EAAE,CAAC,CAAC;AACpC,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,OAAOD,YAAU,CAAC,WAAW,CAAC,CAAC;AACnC,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA,6CAAgB,GAAG,SAAS,mBAAmB,CAAC,EAAE,EAAE;AACpD,EAAE,OAAO,WAAW,IAAI7F,SAAO,CAAC,EAAE,CAAC,IAAI,QAAQ;AAC/C,MAAM,cAAc,CAAC,EAAE,CAAC;AACxB,MAAM8F,sBAAoB,CAACxF,iBAAe,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC;;;;ACtBD,IAAI8B,iBAAe,GAAGjD,iBAAyC,CAAC;AAChE;AACA,gCAAS,GAAGiD,iBAAe;;ACF3B,IAAInD,QAAM,GAAGE,QAA8B,CAAC;AAC5C;IACA4G,MAAc,GAAG9G,QAAM;;ACFvB,IAAI,IAAI,GAAGE,MAA4B,CAAC;AACxC,IAAI6C,QAAM,GAAGlC,gBAAwC,CAAC;AACtD,IAAIkG,8BAA4B,GAAGjG,sBAAiD,CAAC;AACrF,IAAIuB,gBAAc,GAAGrB,oBAA8C,CAAC,CAAC,CAAC;AACtE;IACAgG,uBAAc,GAAG,UAAU,IAAI,EAAE;AACjC,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AACjD,EAAE,IAAI,CAACjE,QAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAEV,gBAAc,CAAC,MAAM,EAAE,IAAI,EAAE;AAC1D,IAAI,KAAK,EAAE0E,8BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,GAAG,CAAC,CAAC;AACL,CAAC;;ACVD,IAAI1E,gBAAc,GAAGnC,oBAA8C,CAAC,CAAC,CAAC;AACtE,IAAI6C,QAAM,GAAGlC,gBAAwC,CAAC;AACtD,IAAIsC,iBAAe,GAAGrC,iBAAyC,CAAC;AAChE;AACA,IAAIuF,eAAa,GAAGlD,iBAAe,CAAC,aAAa,CAAC,CAAC;AACnD;IACA8D,gBAAc,GAAG,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE;AAC5C,EAAE,IAAI,EAAE,IAAI,CAAClE,QAAM,CAAC,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,EAAEsD,eAAa,CAAC,EAAE;AACrE,IAAIhE,gBAAc,CAAC,EAAE,EAAEgE,eAAa,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAC1E,GAAG;AACH,CAAC;;ACVD,IAAI5F,aAAW,GAAGP,mBAA6C,CAAC;AAChE,IAAIgC,WAAS,GAAGrB,WAAkC,CAAC;AACnD;AACA,IAAIL,MAAI,GAAGC,aAAW,CAACA,aAAW,CAAC,IAAI,CAAC,CAAC;AACzC;AACA;IACA,mBAAc,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE;AACrC,EAAEyB,WAAS,CAAC,EAAE,CAAC,CAAC;AAChB,EAAE,OAAO,IAAI,KAAK,SAAS,GAAG,EAAE,GAAG1B,MAAI,GAAGA,MAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,yBAAyB;AACpF,IAAI,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACrC,GAAG,CAAC;AACJ,CAAC;;ACXD,IAAIC,aAAW,GAAGP,mBAA6C,CAAC;AAChE,IAAID,OAAK,GAAGY,OAA6B,CAAC;AAC1C,IAAIS,YAAU,GAAGR,YAAmC,CAAC;AACrD,IAAIC,SAAO,GAAGC,SAA+B,CAAC;AAC9C,IAAIQ,YAAU,GAAGM,YAAoC,CAAC;AACtD,IAAI,aAAa,GAAGkB,eAAsC,CAAC;AAC3D;AACA,IAAI,IAAI,GAAG,YAAY,eAAe,CAAC;AACvC,IAAI,KAAK,GAAG,EAAE,CAAC;AACf,IAAI,SAAS,GAAGxB,YAAU,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACnD,IAAI,iBAAiB,GAAG,0BAA0B,CAAC;AACnD,IAAI0F,MAAI,GAAGzG,aAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC/C,IAAI,mBAAmB,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxD;AACA,IAAI,mBAAmB,GAAG,UAAU,QAAQ,EAAE;AAC9C,EAAE,IAAI,CAACa,YAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,CAAC;AAC1C,EAAE,IAAI;AACN,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACrC,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,CAAC,CAAC;AACF;AACA,IAAI,mBAAmB,GAAG,UAAU,QAAQ,EAAE;AAC9C,EAAE,IAAI,CAACA,YAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,CAAC;AAC1C,EAAE,QAAQP,SAAO,CAAC,QAAQ,CAAC;AAC3B,IAAI,KAAK,eAAe,CAAC;AACzB,IAAI,KAAK,mBAAmB,CAAC;AAC7B,IAAI,KAAK,wBAAwB,EAAE,OAAO,KAAK,CAAC;AAChD;AACA,GAAG,CAAC,OAAO,mBAAmB,IAAI,CAAC,CAACmG,MAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrF,CAAC,CAAC;AACF;AACA;AACA;IACAC,eAAc,GAAG,CAAC,SAAS,IAAIlH,OAAK,CAAC,YAAY;AACjD,EAAE,IAAI,MAAM,CAAC;AACb,EAAE,OAAO,mBAAmB,CAAC,mBAAmB,CAAC,IAAI,CAAC;AACtD,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC;AACnC,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;AAC3D,OAAO,MAAM,CAAC;AACd,CAAC,CAAC,GAAG,mBAAmB,GAAG,mBAAmB;;AC1C9C,IAAID,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIkG,SAAO,GAAGvF,SAAgC,CAAC;AAC/C,IAAIsG,eAAa,GAAGrG,eAAsC,CAAC;AAC3D,IAAIS,UAAQ,GAAGP,UAAiC,CAAC;AACjD,IAAImC,iBAAe,GAAGrB,iBAAyC,CAAC;AAChE;AACA,IAAIsF,SAAO,GAAGjE,iBAAe,CAAC,SAAS,CAAC,CAAC;AACzC,IAAIkE,OAAK,GAAGrH,QAAM,CAAC,KAAK,CAAC;AACzB;AACA;AACA;IACAsH,yBAAc,GAAG,UAAU,aAAa,EAAE;AAC1C,EAAE,IAAI,CAAC,CAAC;AACR,EAAE,IAAIlB,SAAO,CAAC,aAAa,CAAC,EAAE;AAC9B,IAAI,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC;AAClC;AACA,IAAI,IAAIe,eAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAKE,OAAK,IAAIjB,SAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;AACjF,SAAS,IAAI7E,UAAQ,CAAC,CAAC,CAAC,EAAE;AAC1B,MAAM,CAAC,GAAG,CAAC,CAAC6F,SAAO,CAAC,CAAC;AACrB,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;AACpC,KAAK;AACL,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS,GAAGC,OAAK,GAAG,CAAC,CAAC;AACvC,CAAC;;ACtBD,IAAI,uBAAuB,GAAGnH,yBAAiD,CAAC;AAChF;AACA;AACA;IACAqH,oBAAc,GAAG,UAAU,aAAa,EAAE,MAAM,EAAE;AAClD,EAAE,OAAO,KAAK,uBAAuB,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AACjF,CAAC;;ACND,IAAI/G,MAAI,GAAGN,mBAA6C,CAAC;AACzD,IAAIO,aAAW,GAAGI,mBAA6C,CAAC;AAChE,IAAIO,eAAa,GAAGN,aAAsC,CAAC;AAC3D,IAAI4B,UAAQ,GAAG1B,UAAiC,CAAC;AACjD,IAAIqE,mBAAiB,GAAGvD,mBAA4C,CAAC;AACrE,IAAIyF,oBAAkB,GAAGvE,oBAA4C,CAAC;AACtE;AACA,IAAIwC,MAAI,GAAG/E,aAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAChC;AACA;AACA,IAAI6E,cAAY,GAAG,UAAU,IAAI,EAAE;AACnC,EAAE,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC;AACzB,EAAE,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC;AAC5B,EAAE,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC;AAC1B,EAAE,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC;AAC3B,EAAE,IAAI,aAAa,GAAG,IAAI,IAAI,CAAC,CAAC;AAChC,EAAE,IAAI,gBAAgB,GAAG,IAAI,IAAI,CAAC,CAAC;AACnC,EAAE,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,aAAa,CAAC;AAC5C,EAAE,OAAO,UAAU,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE;AAC5D,IAAI,IAAI,CAAC,GAAG5C,UAAQ,CAAC,KAAK,CAAC,CAAC;AAC5B,IAAI,IAAI,IAAI,GAAGtB,eAAa,CAAC,CAAC,CAAC,CAAC;AAChC,IAAI,IAAI,aAAa,GAAGZ,MAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC/C,IAAI,IAAI,MAAM,GAAG6E,mBAAiB,CAAC,IAAI,CAAC,CAAC;AACzC,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,MAAM,GAAG,cAAc,IAAIkC,oBAAkB,CAAC;AACtD,IAAI,IAAI,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,IAAI,gBAAgB,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;AAC/G,IAAI,IAAI,KAAK,EAAE,MAAM,CAAC;AACtB,IAAI,MAAM,MAAM,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,QAAQ,IAAI,KAAK,IAAI,IAAI,EAAE;AAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC9C,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,IAAI,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;AAC3C,aAAa,IAAI,MAAM,EAAE,QAAQ,IAAI;AACrC,UAAU,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC;AAC9B,UAAU,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AAC/B,UAAU,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AAC/B,UAAU,KAAK,CAAC,EAAE/B,MAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACtC,SAAS,MAAM,QAAQ,IAAI;AAC3B,UAAU,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AAC/B,UAAU,KAAK,CAAC,EAAEA,MAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACtC,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,OAAO,aAAa,GAAG,CAAC,CAAC,GAAG,OAAO,IAAI,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AACxE,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;IACA,cAAc,GAAG;AACjB;AACA;AACA,EAAE,OAAO,EAAEF,cAAY,CAAC,CAAC,CAAC;AAC1B;AACA;AACA,EAAE,GAAG,EAAEA,cAAY,CAAC,CAAC,CAAC;AACtB;AACA;AACA,EAAE,MAAM,EAAEA,cAAY,CAAC,CAAC,CAAC;AACzB;AACA;AACA,EAAE,IAAI,EAAEA,cAAY,CAAC,CAAC,CAAC;AACvB;AACA;AACA,EAAE,KAAK,EAAEA,cAAY,CAAC,CAAC,CAAC;AACxB;AACA;AACA,EAAE,IAAI,EAAEA,cAAY,CAAC,CAAC,CAAC;AACvB;AACA;AACA,EAAE,SAAS,EAAEA,cAAY,CAAC,CAAC,CAAC;AAC5B;AACA;AACA,EAAE,YAAY,EAAEA,cAAY,CAAC,CAAC,CAAC;AAC/B,CAAC;;ACxED,YAAY,CAAC;AACb,IAAIkC,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAIF,QAAM,GAAGa,QAA8B,CAAC;AAC5C,IAAIW,YAAU,GAAGV,YAAoC,CAAC;AACtD,IAAIqF,OAAK,GAAGnF,aAAsC,CAAC;AACnD,IAAIb,MAAI,GAAG2B,YAAqC,CAAC;AACjD,IAAIrB,aAAW,GAAGuC,mBAA6C,CAAC;AAChE,IAAIR,SAAO,GAAGY,MAA+B,CAAC;AAC9C,IAAIO,aAAW,GAAGG,WAAmC,CAAC;AACtD,IAAInC,eAAa,GAAG8C,YAAqC,CAAC;AAC1D,IAAIxE,OAAK,GAAGwH,OAA6B,CAAC;AAC1C,IAAI1E,QAAM,GAAG2E,gBAAwC,CAAC;AACtD,IAAItB,SAAO,GAAGuB,SAAgC,CAAC;AAC/C,IAAIrG,YAAU,GAAGsG,YAAmC,CAAC;AACrD,IAAIrG,UAAQ,GAAGsG,UAAiC,CAAC;AACjD,IAAIjG,eAAa,GAAGkG,mBAA8C,CAAC;AACnE,IAAI,QAAQ,GAAGC,UAAiC,CAAC;AACjD,IAAI/D,UAAQ,GAAGgE,UAAiC,CAAC;AACjD,IAAItF,UAAQ,GAAGuF,UAAiC,CAAC;AACjD,IAAI5G,iBAAe,GAAG6G,iBAAyC,CAAC;AAChE,IAAI3E,eAAa,GAAG4E,eAAuC,CAAC;AAC5D,IAAIC,WAAS,GAAGC,UAAiC,CAAC;AAClD,IAAI/H,0BAAwB,GAAGgI,0BAAkD,CAAC;AAClF,IAAI,kBAAkB,GAAGC,YAAqC,CAAC;AAC/D,IAAI/B,YAAU,GAAGgC,YAAmC,CAAC;AACrD,IAAI7C,2BAAyB,GAAG8C,yBAAqD,CAAC;AACtF,IAAI,2BAA2B,GAAGC,iCAA8D,CAAC;AACjG,IAAI9C,6BAA2B,GAAG+C,2BAAuD,CAAC;AAC1F,IAAI,8BAA8B,GAAGC,8BAA0D,CAAC;AAChG,IAAI1E,sBAAoB,GAAG2E,oBAA8C,CAAC;AAC1E,IAAIjF,4BAA0B,GAAGkF,0BAAqD,CAAC;AACvF,IAAIlC,YAAU,GAAGmC,YAAmC,CAAC;AACrD,IAAI7C,UAAQ,GAAG8C,kBAAgC,CAAC;AAChD,IAAIlG,QAAM,GAAGmG,gBAA8B,CAAC;AAC5C,IAAI1E,WAAS,GAAG2E,WAAkC,CAAC;AACnD,IAAI1E,YAAU,GAAG2E,YAAmC,CAAC;AACrD,IAAItG,KAAG,GAAGuG,KAA2B,CAAC;AACtC,IAAIjG,iBAAe,GAAGkG,iBAAyC,CAAC;AAChE,IAAI,4BAA4B,GAAGC,sBAAiD,CAAC;AACrF,IAAI,qBAAqB,GAAGC,uBAAgD,CAAC;AAC7E,IAAItC,gBAAc,GAAGuC,gBAAyC,CAAC;AAC/D,IAAI9E,qBAAmB,GAAG+E,aAAsC,CAAC;AACjE,IAAI,QAAQ,GAAGC,cAAuC,CAAC,OAAO,CAAC;AAC/D;AACA,IAAI,MAAM,GAAGnF,WAAS,CAAC,QAAQ,CAAC,CAAC;AACjC,IAAI,MAAM,GAAG,QAAQ,CAAC;AACtB,IAAI,SAAS,GAAG,WAAW,CAAC;AAC5B,IAAI,YAAY,GAAGpB,iBAAe,CAAC,aAAa,CAAC,CAAC;AAClD;AACA,IAAIwG,kBAAgB,GAAGjF,qBAAmB,CAAC,GAAG,CAAC;AAC/C,IAAIE,kBAAgB,GAAGF,qBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7D;AACA,IAAIkF,iBAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AACxC,IAAI,OAAO,GAAG5J,QAAM,CAAC,MAAM,CAAC;AAC5B,IAAI6J,iBAAe,GAAG,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;AACpD,IAAI3I,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC,IAAI,OAAO,GAAGA,QAAM,CAAC,OAAO,CAAC;AAC7B,IAAI,UAAU,GAAGwB,YAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACjD,IAAI,8BAA8B,GAAG,8BAA8B,CAAC,CAAC,CAAC;AACtE,IAAI,oBAAoB,GAAG0C,sBAAoB,CAAC,CAAC,CAAC;AAClD,IAAI,yBAAyB,GAAG,2BAA2B,CAAC,CAAC,CAAC;AAC9D,IAAI,0BAA0B,GAAGN,4BAA0B,CAAC,CAAC,CAAC;AAC9D,IAAI4B,MAAI,GAAG/E,aAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAChC;AACA,IAAI,UAAU,GAAGqC,QAAM,CAAC,SAAS,CAAC,CAAC;AACnC,IAAI,sBAAsB,GAAGA,QAAM,CAAC,YAAY,CAAC,CAAC;AAClD,IAAI,sBAAsB,GAAGA,QAAM,CAAC,2BAA2B,CAAC,CAAC;AACjE,IAAI,sBAAsB,GAAGA,QAAM,CAAC,2BAA2B,CAAC,CAAC;AACjE,IAAI,qBAAqB,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC;AAC1C;AACA;AACA,IAAI,UAAU,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;AAClF;AACA;AACA,IAAI,mBAAmB,GAAGa,aAAW,IAAI1D,OAAK,CAAC,YAAY;AAC3D,EAAE,OAAO,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,EAAE;AAC1D,IAAI,GAAG,EAAE,YAAY,EAAE,OAAO,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AAChF,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACb,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE;AACjC,EAAE,IAAI,yBAAyB,GAAG,8BAA8B,CAAC2J,iBAAe,EAAE,CAAC,CAAC,CAAC;AACrF,EAAE,IAAI,yBAAyB,EAAE,OAAOA,iBAAe,CAAC,CAAC,CAAC,CAAC;AAC3D,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACzC,EAAE,IAAI,yBAAyB,IAAI,CAAC,KAAKA,iBAAe,EAAE;AAC1D,IAAI,oBAAoB,CAACA,iBAAe,EAAE,CAAC,EAAE,yBAAyB,CAAC,CAAC;AACxE,GAAG;AACH,CAAC,GAAG,oBAAoB,CAAC;AACzB;AACA,IAAI,IAAI,GAAG,UAAU,GAAG,EAAE,WAAW,EAAE;AACvC,EAAE,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAACC,iBAAe,CAAC,CAAC;AACrE,EAAEF,kBAAgB,CAAC,MAAM,EAAE;AAC3B,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,GAAG,EAAE,GAAG;AACZ,IAAI,WAAW,EAAE,WAAW;AAC5B,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,CAAChG,aAAW,EAAE,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;AACrD,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AACF;AACA,IAAI,eAAe,GAAG,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE;AAChE,EAAE,IAAI,CAAC,KAAKiG,iBAAe,EAAE,eAAe,CAAC,sBAAsB,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACpF,EAAE5F,UAAQ,CAAC,CAAC,CAAC,CAAC;AACd,EAAE,IAAI,GAAG,GAAGT,eAAa,CAAC,CAAC,CAAC,CAAC;AAC7B,EAAES,UAAQ,CAAC,UAAU,CAAC,CAAC;AACvB,EAAE,IAAIjB,QAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE;AAC/B,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;AAChC,MAAM,IAAI,CAACA,QAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAEzC,0BAAwB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/F,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC5B,KAAK,MAAM;AACX,MAAM,IAAIyC,QAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACtE,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,EAAE,EAAE,UAAU,EAAEzC,0BAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AACtG,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;AACrD,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC,CAAC;AACF;AACA,IAAI,iBAAiB,GAAG,SAAS,gBAAgB,CAAC,CAAC,EAAE,UAAU,EAAE;AACjE,EAAE0D,UAAQ,CAAC,CAAC,CAAC,CAAC;AACd,EAAE,IAAI,UAAU,GAAG3C,iBAAe,CAAC,UAAU,CAAC,CAAC;AAC/C,EAAE,IAAI,IAAI,GAAGmF,YAAU,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/E,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE;AAChC,IAAI,IAAI,CAAC7C,aAAW,IAAIxD,MAAI,CAACC,uBAAqB,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/G,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA,IAAI,OAAO,GAAG,SAAS,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE;AAC7C,EAAE,OAAO,UAAU,KAAK,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACjH,CAAC,CAAC;AACF;AACA,IAAIA,uBAAqB,GAAG,SAAS,oBAAoB,CAAC,CAAC,EAAE;AAC7D,EAAE,IAAI,CAAC,GAAGmD,eAAa,CAAC,CAAC,CAAC,CAAC;AAC3B,EAAE,IAAI,UAAU,GAAGpD,MAAI,CAAC,0BAA0B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7D,EAAE,IAAI,IAAI,KAAKyJ,iBAAe,IAAI7G,QAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAACA,QAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AAC5G,EAAE,OAAO,UAAU,IAAI,CAACA,QAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAACA,QAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAIA,QAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5G,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,CAAC,CAAC;AACF;AACA,IAAI,yBAAyB,GAAG,SAAS,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE;AACxE,EAAE,IAAI,EAAE,GAAG1B,iBAAe,CAAC,CAAC,CAAC,CAAC;AAC9B,EAAE,IAAI,GAAG,GAAGkC,eAAa,CAAC,CAAC,CAAC,CAAC;AAC7B,EAAE,IAAI,EAAE,KAAKqG,iBAAe,IAAI7G,QAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAACA,QAAM,CAAC,sBAAsB,EAAE,GAAG,CAAC,EAAE,OAAO;AACxG,EAAE,IAAI,UAAU,GAAG,8BAA8B,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC3D,EAAE,IAAI,UAAU,IAAIA,QAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAEA,QAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACzF,IAAI,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;AACjC,GAAG;AACH,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AACF;AACA,IAAI,oBAAoB,GAAG,SAAS,mBAAmB,CAAC,CAAC,EAAE;AAC3D,EAAE,IAAI,KAAK,GAAG,yBAAyB,CAAC1B,iBAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,EAAE;AACjC,IAAI,IAAI,CAAC0B,QAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAACA,QAAM,CAACyB,YAAU,EAAE,GAAG,CAAC,EAAEgB,MAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChF,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AACF;AACA,IAAI,sBAAsB,GAAG,SAAS,qBAAqB,CAAC,CAAC,EAAE;AAC/D,EAAE,IAAI,mBAAmB,GAAG,CAAC,KAAKoE,iBAAe,CAAC;AAClD,EAAE,IAAI,KAAK,GAAG,yBAAyB,CAAC,mBAAmB,GAAG,sBAAsB,GAAGvI,iBAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3G,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,EAAE;AACjC,IAAI,IAAI0B,QAAM,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,mBAAmB,IAAIA,QAAM,CAAC6G,iBAAe,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3F,MAAMpE,MAAI,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AACF;AACA;AACA;AACA,IAAI,CAAC7D,eAAa,EAAE;AACpB,EAAE,OAAO,GAAG,SAAS,MAAM,GAAG;AAC9B,IAAI,IAAIC,eAAa,CAACiI,iBAAe,EAAE,IAAI,CAAC,EAAE,MAAM3I,WAAS,CAAC,6BAA6B,CAAC,CAAC;AAC7F,IAAI,IAAI,WAAW,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,GAAGkH,WAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5G,IAAI,IAAI,GAAG,GAAGvF,KAAG,CAAC,WAAW,CAAC,CAAC;AAC/B,IAAI,IAAI,MAAM,GAAG,UAAU,KAAK,EAAE;AAClC,MAAM,IAAI,IAAI,KAAK+G,iBAAe,EAAEzJ,MAAI,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;AAChF,MAAM,IAAI4C,QAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAIA,QAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACvF,MAAM,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAEzC,0BAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACzE,KAAK,CAAC;AACN,IAAI,IAAIqD,aAAW,IAAI,UAAU,EAAE,mBAAmB,CAACiG,iBAAe,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;AAClH,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAClC,GAAG,CAAC;AACJ;AACA,EAAEC,iBAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACvC;AACA,EAAE3D,UAAQ,CAAC2D,iBAAe,EAAE,UAAU,EAAE,SAAS,QAAQ,GAAG;AAC5D,IAAI,OAAOjF,kBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AACtC,GAAG,CAAC,CAAC;AACL;AACA,EAAEsB,UAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,WAAW,EAAE;AAC5D,IAAI,OAAO,IAAI,CAACrD,KAAG,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;AAC/C,GAAG,CAAC,CAAC;AACL;AACA,EAAEe,4BAA0B,CAAC,CAAC,GAAGxD,uBAAqB,CAAC;AACvD,EAAE8D,sBAAoB,CAAC,CAAC,GAAG,eAAe,CAAC;AAC3C,EAAE,8BAA8B,CAAC,CAAC,GAAG,yBAAyB,CAAC;AAC/D,EAAEyB,2BAAyB,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,GAAG,oBAAoB,CAAC;AACrF,EAAEC,6BAA2B,CAAC,CAAC,GAAG,sBAAsB,CAAC;AACzD;AACA,EAAE,4BAA4B,CAAC,CAAC,GAAG,UAAU,IAAI,EAAE;AACnD,IAAI,OAAO,IAAI,CAACzC,iBAAe,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAC7C,GAAG,CAAC;AACJ;AACA,EAAE,IAAIQ,aAAW,EAAE;AACnB;AACA,IAAI,oBAAoB,CAACkG,iBAAe,EAAE,aAAa,EAAE;AACzD,MAAM,YAAY,EAAE,IAAI;AACxB,MAAM,GAAG,EAAE,SAAS,WAAW,GAAG;AAClC,QAAQ,OAAOjF,kBAAgB,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;AAClD,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,CAACpC,SAAO,EAAE;AAClB,MAAM0D,UAAQ,CAAC0D,iBAAe,EAAE,sBAAsB,EAAExJ,uBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACjG,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACAoH,GAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC7F,eAAa,EAAE,IAAI,EAAE,CAACA,eAAa,EAAE,EAAE;AAC9E,EAAE,MAAM,EAAE,OAAO;AACjB,CAAC,CAAC,CAAC;AACH;AACA,QAAQ,CAAC6E,YAAU,CAAC,qBAAqB,CAAC,EAAE,UAAU,IAAI,EAAE;AAC5D,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AACH;AACAgB,GAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC7F,eAAa,EAAE,EAAE;AAC1D;AACA;AACA,EAAE,KAAK,EAAE,UAAU,GAAG,EAAE;AACxB,IAAI,IAAI,MAAM,GAAGyG,WAAS,CAAC,GAAG,CAAC,CAAC;AAChC,IAAI,IAAIrF,QAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,EAAE,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;AACtF,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACjC,IAAI,sBAAsB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAC5C,IAAI,sBAAsB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAC5C,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH;AACA;AACA,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,GAAG,EAAE;AAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM7B,WAAS,CAAC,GAAG,GAAG,kBAAkB,CAAC,CAAC;AAClE,IAAI,IAAI6B,QAAM,CAAC,sBAAsB,EAAE,GAAG,CAAC,EAAE,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC;AAChF,GAAG;AACH,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC,EAAE;AAC/C,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,GAAG,KAAK,CAAC,EAAE;AAChD,CAAC,CAAC,CAAC;AACH;AACAyE,GAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC7F,eAAa,EAAE,IAAI,EAAE,CAACgC,aAAW,EAAE,EAAE;AAChF;AACA;AACA,EAAE,MAAM,EAAE,OAAO;AACjB;AACA;AACA,EAAE,cAAc,EAAE,eAAe;AACjC;AACA;AACA,EAAE,gBAAgB,EAAE,iBAAiB;AACrC;AACA;AACA,EAAE,wBAAwB,EAAE,yBAAyB;AACrD,CAAC,CAAC,CAAC;AACH;AACA6D,GAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC7F,eAAa,EAAE,EAAE;AAC5D;AACA;AACA,EAAE,mBAAmB,EAAE,oBAAoB;AAC3C;AACA;AACA,EAAE,qBAAqB,EAAE,sBAAsB;AAC/C,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA6F,GAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAEvH,OAAK,CAAC,YAAY,EAAE2F,6BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AACtG,EAAE,qBAAqB,EAAE,SAAS,qBAAqB,CAAC,EAAE,EAAE;AAC5D,IAAI,OAAOA,6BAA2B,CAAC,CAAC,CAAClD,UAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,GAAG;AACH,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA,IAAI,UAAU,EAAE;AAChB,EAAE,IAAI,qBAAqB,GAAG,CAACf,eAAa,IAAI1B,OAAK,CAAC,YAAY;AAClE,IAAI,IAAI,MAAM,GAAG,OAAO,EAAE,CAAC;AAC3B;AACA,IAAI,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,QAAQ;AAC3C;AACA,SAAS,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,IAAI;AAC1C;AACA,SAAS,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5C,GAAG,CAAC,CAAC;AACL;AACA,EAAEuH,GAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE;AACnE;AACA,IAAI,SAAS,EAAE,SAAS,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;AACvD,MAAM,IAAI,IAAI,GAAGZ,YAAU,CAAC,SAAS,CAAC,CAAC;AACvC,MAAM,IAAI,SAAS,GAAG,QAAQ,CAAC;AAC/B,MAAM,IAAI,CAACrF,UAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,SAAS,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO;AAC1E,MAAM,IAAI,CAAC6E,SAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE;AAC/D,QAAQ,IAAI9E,YAAU,CAAC,SAAS,CAAC,EAAE,KAAK,GAAGnB,MAAI,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAC7E,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AAC3C,OAAO,CAAC;AACR,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;AACzB,MAAM,OAAOgG,OAAK,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3C,KAAK;AACL,GAAG,CAAC,CAAC;AACL,CAAC;AACD;AACA;AACA;AACA,IAAI,CAAC0D,iBAAe,CAAC,YAAY,CAAC,EAAE;AACpC,EAAE,IAAI,OAAO,GAAGA,iBAAe,CAAC,OAAO,CAAC;AACxC;AACA,EAAE3D,UAAQ,CAAC2D,iBAAe,EAAE,YAAY,EAAE,UAAU,IAAI,EAAE;AAC1D;AACA,IAAI,OAAO1J,MAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC/B,GAAG,CAAC,CAAC;AACL,CAAC;AACD;AACA;AACA8G,gBAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC;AACAzC,YAAU,CAAC,MAAM,CAAC,GAAG,IAAI;;;;AClUzB;AACA;AACA,YAAY,CAAC;AACb,IAAIgD,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAIyD,aAAW,GAAG9C,WAAmC,CAAC;AACtD,IAAIb,QAAM,GAAGc,QAA8B,CAAC;AAC5C,IAAIL,aAAW,GAAGO,mBAA6C,CAAC;AAChE,IAAI+B,QAAM,GAAGjB,gBAAwC,CAAC;AACtD,IAAIR,YAAU,GAAG0B,YAAmC,CAAC;AACrD,IAAIpB,eAAa,GAAGwB,mBAA8C,CAAC;AACnE,IAAI1C,UAAQ,GAAGoD,UAAiC,CAAC;AACjD,IAAIzB,gBAAc,GAAGoC,oBAA8C,CAAC,CAAC,CAAC;AACtE,IAAI,yBAAyB,GAAGgD,2BAAmD,CAAC;AACpF;AACA,IAAI,YAAY,GAAGzH,QAAM,CAAC,MAAM,CAAC;AACjC,IAAI,eAAe,GAAG,YAAY,IAAI,YAAY,CAAC,SAAS,CAAC;AAC7D;AACA,IAAI2D,aAAW,IAAIrC,YAAU,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,IAAI,eAAe,CAAC;AACnF;AACA,EAAE,YAAY,EAAE,CAAC,WAAW,KAAK,SAAS;AAC1C,CAAC,EAAE;AACH,EAAE,IAAI,2BAA2B,GAAG,EAAE,CAAC;AACvC;AACA,EAAE,IAAI,aAAa,GAAG,SAAS,MAAM,GAAG;AACxC,IAAI,IAAI,WAAW,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,GAAGZ,UAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9G,IAAI,IAAI,MAAM,GAAGkB,eAAa,CAAC,eAAe,EAAE,IAAI,CAAC;AACrD,QAAQ,IAAI,YAAY,CAAC,WAAW,CAAC;AACrC;AACA,QAAQ,WAAW,KAAK,SAAS,GAAG,YAAY,EAAE,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AAC/E,IAAI,IAAI,WAAW,KAAK,EAAE,EAAE,2BAA2B,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AACvE,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC;AACJ;AACA,EAAE,yBAAyB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AACzD,EAAE,aAAa,CAAC,SAAS,GAAG,eAAe,CAAC;AAC5C,EAAE,eAAe,CAAC,WAAW,GAAG,aAAa,CAAC;AAC9C;AACA,EAAE,IAAI,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,cAAc,CAAC;AACrE,EAAE,IAAI,cAAc,GAAGnB,aAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AAC7D,EAAE,IAAI,aAAa,GAAGA,aAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC3D,EAAE,IAAI,MAAM,GAAG,uBAAuB,CAAC;AACvC,EAAE,IAAIqJ,SAAO,GAAGrJ,aAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACxC,EAAE,IAAIE,aAAW,GAAGF,aAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1C;AACA,EAAE4B,gBAAc,CAAC,eAAe,EAAE,aAAa,EAAE;AACjD,IAAI,YAAY,EAAE,IAAI;AACtB,IAAI,GAAG,EAAE,SAAS,WAAW,GAAG;AAChC,MAAM,IAAI,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AACvC,MAAM,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAC1C,MAAM,IAAIU,QAAM,CAAC,2BAA2B,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;AACjE,MAAM,IAAI,IAAI,GAAG,aAAa,GAAGpC,aAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAGmJ,SAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC5F,MAAM,OAAO,IAAI,KAAK,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;AAC5C,KAAK;AACL,GAAG,CAAC,CAAC;AACL;AACA,EAAEtC,GAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;AACpC,IAAI,MAAM,EAAE,aAAa;AACzB,GAAG,CAAC,CAAC;AACL;;;;AC1DA,YAAY,CAAC;AACb,IAAIjB,uBAAqB,GAAGrG,kBAA6C,CAAC;AAC1E,IAAIa,SAAO,GAAGF,SAA+B,CAAC;AAC9C;AACA;AACA;IACA,cAAc,GAAG0F,uBAAqB,GAAG,EAAE,CAAC,QAAQ,GAAG,SAAS,QAAQ,GAAG;AAC3E,EAAE,OAAO,UAAU,GAAGxF,SAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AAC1C,CAAC;;ACRD,IAAI,qBAAqB,GAAGb,kBAA6C,CAAC;AAC1E,IAAIgG,UAAQ,GAAGrF,kBAAgC,CAAC;AAChD,IAAIH,UAAQ,GAAGI,cAAwC,CAAC;AACxD;AACA;AACA;AACA,IAAI,CAAC,qBAAqB,EAAE;AAC5B,EAAEoF,UAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,EAAExF,UAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACrE;;;;ACRA,IAAIiD,aAAW,GAAGzD,WAAmC,CAAC;AACtD,IAAIO,aAAW,GAAGI,mBAA6C,CAAC;AAChE,IAAI2F,YAAU,GAAG1F,YAAmC,CAAC;AACrD,IAAIO,iBAAe,GAAGL,iBAAyC,CAAC;AAChE,IAAI,qBAAqB,GAAGc,0BAAqD,CAAC,CAAC,CAAC;AACpF;AACA,IAAI,oBAAoB,GAAGrB,aAAW,CAAC,qBAAqB,CAAC,CAAC;AAC9D,IAAI+E,MAAI,GAAG/E,aAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAChC;AACA;AACA,IAAI6E,cAAY,GAAG,UAAU,UAAU,EAAE;AACzC,EAAE,OAAO,UAAU,EAAE,EAAE;AACvB,IAAI,IAAI,CAAC,GAAGjE,iBAAe,CAAC,EAAE,CAAC,CAAC;AAChC,IAAI,IAAI,IAAI,GAAGmF,YAAU,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,OAAO,MAAM,GAAG,CAAC,EAAE;AACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,MAAM,IAAI,CAAC7C,aAAW,IAAI,oBAAoB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AACxD,QAAQ6B,MAAI,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,OAAO;AACP,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;IACA,aAAc,GAAG;AACjB;AACA;AACA,EAAE,OAAO,EAAEF,cAAY,CAAC,IAAI,CAAC;AAC7B;AACA;AACA,EAAE,MAAM,EAAEA,cAAY,CAAC,KAAK,CAAC;AAC7B,CAAC;;ACnCD,IAAIkC,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAI,QAAQ,GAAGW,aAAuC,CAAC,OAAO,CAAC;AAC/D;AACA;AACA;AACA2G,GAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;AACpC,EAAE,OAAO,EAAE,SAAS,OAAO,CAAC,CAAC,EAAE;AAC/B,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,GAAG;AACH,CAAC,CAAC;;;;ACTF,YAAY,CAAC;AACb,IAAI,aAAa,GAAGtH,eAAuC,CAAC;AAC5D,IAAIgE,sBAAoB,GAAGrD,oBAA8C,CAAC;AAC1E,IAAIP,0BAAwB,GAAGQ,0BAAkD,CAAC;AAClF;IACAiJ,gBAAc,GAAG,UAAU,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;AAC/C,EAAE,IAAI,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AACvC,EAAE,IAAI,WAAW,IAAI,MAAM,EAAE7F,sBAAoB,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE5D,0BAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7G,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;AACnC,CAAC;;ACTD,IAAIL,OAAK,GAAGC,OAA6B,CAAC;AAC1C,IAAIiD,iBAAe,GAAGtC,iBAAyC,CAAC;AAChE,IAAIa,YAAU,GAAGZ,eAAyC,CAAC;AAC3D;AACA,IAAIsG,SAAO,GAAGjE,iBAAe,CAAC,SAAS,CAAC,CAAC;AACzC;IACA6G,8BAAc,GAAG,UAAU,WAAW,EAAE;AACxC;AACA;AACA;AACA,EAAE,OAAOtI,YAAU,IAAI,EAAE,IAAI,CAACzB,OAAK,CAAC,YAAY;AAChD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,WAAW,GAAG,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;AAC7C,IAAI,WAAW,CAACmH,SAAO,CAAC,GAAG,YAAY;AACvC,MAAM,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACxB,KAAK,CAAC;AACN,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AACjD,GAAG,CAAC,CAAC;AACL,CAAC;;AClBD,YAAY,CAAC;AACb,IAAII,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAIF,QAAM,GAAGa,QAA8B,CAAC;AAC5C,IAAIZ,OAAK,GAAGa,OAA6B,CAAC;AAC1C,IAAIsF,SAAO,GAAGpF,SAAgC,CAAC;AAC/C,IAAIO,UAAQ,GAAGO,UAAiC,CAAC;AACjD,IAAIY,UAAQ,GAAGM,UAAiC,CAAC;AACjD,IAAIqC,mBAAiB,GAAGjC,mBAA4C,CAAC;AACrE,IAAI2G,gBAAc,GAAGjG,gBAAuC,CAAC;AAC7D,IAAIyD,oBAAkB,GAAG9C,oBAA4C,CAAC;AACtE,IAAIuF,8BAA4B,GAAGvC,8BAAwD,CAAC;AAC5F,IAAItE,iBAAe,GAAGuE,iBAAyC,CAAC;AAChE,IAAI,UAAU,GAAGC,eAAyC,CAAC;AAC3D;AACA,IAAI,oBAAoB,GAAGxE,iBAAe,CAAC,oBAAoB,CAAC,CAAC;AACjE,IAAI8G,kBAAgB,GAAG,gBAAgB,CAAC;AACxC,IAAI,8BAA8B,GAAG,gCAAgC,CAAC;AACtE,IAAI/I,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC;AACA;AACA;AACA;AACA,IAAI,4BAA4B,GAAG,UAAU,IAAI,EAAE,IAAI,CAACC,OAAK,CAAC,YAAY;AAC1E,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;AACjB,EAAE,KAAK,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC;AACtC,EAAE,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;AACrC,CAAC,CAAC,CAAC;AACH;AACA,IAAI,eAAe,GAAG+J,8BAA4B,CAAC,QAAQ,CAAC,CAAC;AAC7D;AACA,IAAI,kBAAkB,GAAG,UAAU,CAAC,EAAE;AACtC,EAAE,IAAI,CAACzI,UAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AACjC,EAAE,IAAI,UAAU,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAC3C,EAAE,OAAO,UAAU,KAAK,SAAS,GAAG,CAAC,CAAC,UAAU,GAAG6E,SAAO,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AACF;AACA,IAAI8D,QAAM,GAAG,CAAC,4BAA4B,IAAI,CAAC,eAAe,CAAC;AAC/D;AACA;AACA;AACA;AACA1C,GAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE0C,QAAM,EAAE,EAAE;AACpD;AACA,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,GAAG,EAAE;AAC/B,IAAI,IAAI,CAAC,GAAGxH,UAAQ,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,GAAG6E,oBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7B,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7D,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACtC,MAAM,IAAI,kBAAkB,CAAC,CAAC,CAAC,EAAE;AACjC,QAAQ,GAAG,GAAGlC,mBAAiB,CAAC,CAAC,CAAC,CAAC;AACnC,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG4E,kBAAgB,EAAE,MAAM/I,WAAS,CAAC,8BAA8B,CAAC,CAAC;AACxF,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE6I,gBAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,IAAIE,kBAAgB,EAAE,MAAM/I,WAAS,CAAC,8BAA8B,CAAC,CAAC;AACnF,QAAQ6I,gBAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAClC,OAAO;AACP,KAAK;AACL,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACjB,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,CAAC,CAAC;;;;AC9DF,YAAY,CAAC;AACb,IAAI9J,OAAK,GAAGC,OAA6B,CAAC;AAC1C;IACAiK,qBAAc,GAAG,UAAU,WAAW,EAAE,QAAQ,EAAE;AAClD,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;AAC/B,EAAE,OAAO,CAAC,CAAC,MAAM,IAAIlK,OAAK,CAAC,YAAY;AACvC;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,GAAG,CAAC,CAAC;AACL,CAAC;;ACTD,YAAY,CAAC;AACb,IAAIuH,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAIO,aAAW,GAAGI,mBAA6C,CAAC;AAChE,IAAIO,eAAa,GAAGN,aAAsC,CAAC;AAC3D,IAAIO,iBAAe,GAAGL,iBAAyC,CAAC;AAChE,IAAImJ,qBAAmB,GAAGrI,qBAA8C,CAAC;AACzE;AACA,IAAI,OAAO,GAAGrB,aAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACnC;AACA,IAAI,WAAW,GAAGW,eAAa,IAAI,MAAM,CAAC;AAC1C,IAAIgJ,eAAa,GAAGD,qBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACrD;AACA;AACA;AACA3C,GAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,IAAI,CAAC4C,eAAa,EAAE,EAAE;AAC3E,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC,SAAS,EAAE;AACjC,IAAI,OAAO,OAAO,CAAC/I,iBAAe,CAAC,IAAI,CAAC,EAAE,SAAS,KAAK,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;AACrF,GAAG;AACH,CAAC,CAAC;;;;AClBF,IAAIlB,MAAI,GAAGD,YAAqC,CAAC;AACjD,IAAI8D,UAAQ,GAAGnD,UAAiC,CAAC;AACjD,IAAIsB,WAAS,GAAGrB,WAAkC,CAAC;AACnD;IACAuJ,eAAc,GAAG,UAAU,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;AAClD,EAAE,IAAI,WAAW,EAAE,UAAU,CAAC;AAC9B,EAAErG,UAAQ,CAAC,QAAQ,CAAC,CAAC;AACrB,EAAE,IAAI;AACN,IAAI,WAAW,GAAG7B,WAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAChD,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AACxC,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,WAAW,GAAGhC,MAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC9C,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,UAAU,GAAG,IAAI,CAAC;AACtB,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,IAAI,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AACpC,EAAE,IAAI,UAAU,EAAE,MAAM,WAAW,CAAC;AACpC,EAAE6D,UAAQ,CAAC,WAAW,CAAC,CAAC;AACxB,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;;ACtBD,IAAIA,UAAQ,GAAG9D,UAAiC,CAAC;AACjD,IAAImK,eAAa,GAAGxJ,eAAsC,CAAC;AAC3D;AACA;IACAyJ,8BAAc,GAAG,UAAU,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AACzD,EAAE,IAAI;AACN,IAAI,OAAO,OAAO,GAAG,EAAE,CAACtG,UAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAClE,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,IAAIqG,eAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC5C,GAAG;AACH,CAAC;;ICVD,SAAc,GAAG,EAAE;;ACAnB,IAAIlH,iBAAe,GAAGjD,iBAAyC,CAAC;AAChE,IAAIqK,WAAS,GAAG1J,SAAiC,CAAC;AAClD;AACA,IAAI2J,UAAQ,GAAGrH,iBAAe,CAAC,UAAU,CAAC,CAAC;AAC3C,IAAIsH,gBAAc,GAAG,KAAK,CAAC,SAAS,CAAC;AACrC;AACA;IACAC,uBAAc,GAAG,UAAU,EAAE,EAAE;AAC/B,EAAE,OAAO,EAAE,KAAK,SAAS,KAAKH,WAAS,CAAC,KAAK,KAAK,EAAE,IAAIE,gBAAc,CAACD,UAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;AACzF,CAAC;;ACTD,IAAIzJ,SAAO,GAAGb,SAA+B,CAAC;AAC9C,IAAIiC,WAAS,GAAGtB,WAAkC,CAAC;AACnD,IAAI0J,WAAS,GAAGzJ,SAAiC,CAAC;AAClD,IAAIqC,iBAAe,GAAGnC,iBAAyC,CAAC;AAChE;AACA,IAAIwJ,UAAQ,GAAGrH,iBAAe,CAAC,UAAU,CAAC,CAAC;AAC3C;IACAwH,mBAAc,GAAG,UAAU,EAAE,EAAE;AAC/B,EAAE,IAAI,EAAE,IAAI,SAAS,EAAE,OAAOxI,WAAS,CAAC,EAAE,EAAEqI,UAAQ,CAAC;AACrD,OAAOrI,WAAS,CAAC,EAAE,EAAE,YAAY,CAAC;AAClC,OAAOoI,WAAS,CAACxJ,SAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;;ACXD,IAAIf,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIC,MAAI,GAAGU,YAAqC,CAAC;AACjD,IAAIqB,WAAS,GAAGpB,WAAkC,CAAC;AACnD,IAAIkD,UAAQ,GAAGhD,UAAiC,CAAC;AACjD,IAAIiB,aAAW,GAAGH,aAAqC,CAAC;AACxD,IAAI6I,mBAAiB,GAAG3H,mBAA2C,CAAC;AACpE;AACA,IAAI9B,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC;IACA4K,aAAc,GAAG,UAAU,QAAQ,EAAE,aAAa,EAAE;AACpD,EAAE,IAAI,cAAc,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,GAAGD,mBAAiB,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;AAC1F,EAAE,IAAIzI,WAAS,CAAC,cAAc,CAAC,EAAE,OAAO8B,UAAQ,CAAC7D,MAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;AACjF,EAAE,MAAMe,WAAS,CAACe,aAAW,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAC,CAAC;AAC9D,CAAC;;ACbD,YAAY,CAAC;AACb,IAAIjC,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIM,MAAI,GAAGK,mBAA6C,CAAC;AACzD,IAAIV,MAAI,GAAGW,YAAqC,CAAC;AACjD,IAAI4B,UAAQ,GAAG1B,UAAiC,CAAC;AACjD,IAAI,4BAA4B,GAAGc,8BAAwD,CAAC;AAC5F,IAAI4I,uBAAqB,GAAG1H,uBAAgD,CAAC;AAC7E,IAAImE,eAAa,GAAG/D,eAAsC,CAAC;AAC3D,IAAIiC,mBAAiB,GAAGvB,mBAA4C,CAAC;AACrE,IAAIiG,gBAAc,GAAGtF,gBAAuC,CAAC;AAC7D,IAAImG,aAAW,GAAGnD,aAAoC,CAAC;AACvD,IAAIkD,mBAAiB,GAAGjD,mBAA2C,CAAC;AACpE;AACA,IAAIL,OAAK,GAAGrH,QAAM,CAAC,KAAK,CAAC;AACzB;AACA;AACA;IACA,SAAc,GAAG,SAAS,IAAI,CAAC,SAAS,iDAAiD;AACzF,EAAE,IAAI,CAAC,GAAG0C,UAAQ,CAAC,SAAS,CAAC,CAAC;AAC9B,EAAE,IAAI,cAAc,GAAGyE,eAAa,CAAC,IAAI,CAAC,CAAC;AAC3C,EAAE,IAAI,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,eAAe,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAC7D,EAAE,IAAI,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC;AACpC,EAAE,IAAI,OAAO,EAAE,KAAK,GAAG3G,MAAI,CAAC,KAAK,EAAE,eAAe,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AACnF,EAAE,IAAI,cAAc,GAAGmK,mBAAiB,CAAC,CAAC,CAAC,CAAC;AAC5C,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;AAChB,EAAE,IAAI,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC;AAClD;AACA,EAAE,IAAI,cAAc,IAAI,EAAE,IAAI,IAAItD,OAAK,IAAIqD,uBAAqB,CAAC,cAAc,CAAC,CAAC,EAAE;AACnF,IAAI,QAAQ,GAAGE,aAAW,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;AAC9C,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AACzB,IAAI,MAAM,GAAG,cAAc,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;AAC9C,IAAI,MAAM,CAAC,CAAC,IAAI,GAAGzK,MAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;AACxD,MAAM,KAAK,GAAG,OAAO,GAAG,4BAA4B,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAC9G,MAAM4J,gBAAc,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3C,KAAK;AACL,GAAG,MAAM;AACT,IAAI,MAAM,GAAG1E,mBAAiB,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,MAAM,GAAG,cAAc,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,GAAGgC,OAAK,CAAC,MAAM,CAAC,CAAC;AAC/D,IAAI,MAAM,MAAM,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;AACnC,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1D,MAAM0C,gBAAc,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3C,KAAK;AACL,GAAG;AACH,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;;AC9CD,IAAI5G,iBAAe,GAAGjD,iBAAyC,CAAC;AAChE;AACA,IAAIsK,UAAQ,GAAGrH,iBAAe,CAAC,UAAU,CAAC,CAAC;AAC3C,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB;AACA,IAAI;AACJ,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;AACjB,EAAE,IAAI,kBAAkB,GAAG;AAC3B,IAAI,IAAI,EAAE,YAAY;AACtB,MAAM,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;AAClC,KAAK;AACL,IAAI,QAAQ,EAAE,YAAY;AAC1B,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,kBAAkB,CAACqH,UAAQ,CAAC,GAAG,YAAY;AAC7C,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC;AACJ;AACA,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAC,OAAO,KAAK,EAAE,eAAe;AAC/B;IACAK,6BAAc,GAAG,UAAU,IAAI,EAAE,YAAY,EAAE;AAC/C,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,OAAO,KAAK,CAAC;AACnD,EAAE,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAChC,EAAE,IAAI;AACN,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,MAAM,CAACL,UAAQ,CAAC,GAAG,YAAY;AACnC,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE,YAAY;AAC1B,UAAU,OAAO,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAAE,CAAC;AACpD,SAAS;AACT,OAAO,CAAC;AACR,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,GAAG,CAAC,OAAO,KAAK,EAAE,eAAe;AACjC,EAAE,OAAO,iBAAiB,CAAC;AAC3B,CAAC;;ACrCD,IAAIhD,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAI,IAAI,GAAGW,SAAkC,CAAC;AAC9C,IAAIgK,6BAA2B,GAAG/J,6BAAsD,CAAC;AACzF;AACA,IAAI,mBAAmB,GAAG,CAAC+J,6BAA2B,CAAC,UAAU,QAAQ,EAAE;AAC3E;AACA,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACArD,GAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE;AAChE,EAAE,IAAI,EAAE,IAAI;AACZ,CAAC,CAAC;;;;ACbF,IAAI/G,aAAW,GAAGP,mBAA6C,CAAC;AAChE,IAAI8E,qBAAmB,GAAGnE,qBAA8C,CAAC;AACzE,IAAIH,UAAQ,GAAGI,UAAiC,CAAC;AACjD,IAAIK,wBAAsB,GAAGH,wBAAgD,CAAC;AAC9E;AACA,IAAI8J,QAAM,GAAGrK,aAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACpC,IAAI,UAAU,GAAGA,aAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AAC5C,IAAIE,aAAW,GAAGF,aAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACxC;AACA,IAAI6E,cAAY,GAAG,UAAU,iBAAiB,EAAE;AAChD,EAAE,OAAO,UAAU,KAAK,EAAE,GAAG,EAAE;AAC/B,IAAI,IAAI,CAAC,GAAG5E,UAAQ,CAACS,wBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,IAAI,IAAI,QAAQ,GAAG6D,qBAAmB,CAAC,GAAG,CAAC,CAAC;AAC5C,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;AACxB,IAAI,IAAI,KAAK,EAAE,MAAM,CAAC;AACtB,IAAI,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,IAAI,IAAI,EAAE,OAAO,iBAAiB,GAAG,EAAE,GAAG,SAAS,CAAC;AACpF,IAAI,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACpC,IAAI,OAAO,KAAK,GAAG,MAAM,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,GAAG,CAAC,KAAK,IAAI;AACpE,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM;AAC3E,UAAU,iBAAiB;AAC3B,YAAY8F,QAAM,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC/B,YAAY,KAAK;AACjB,UAAU,iBAAiB;AAC3B,YAAYnK,aAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC;AAClD,YAAY,CAAC,KAAK,GAAG,MAAM,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;AACjE,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;IACA,eAAc,GAAG;AACjB;AACA;AACA,EAAE,MAAM,EAAE2E,cAAY,CAAC,KAAK,CAAC;AAC7B;AACA;AACA,EAAE,MAAM,EAAEA,cAAY,CAAC,IAAI,CAAC;AAC5B,CAAC;;ACnCD,IAAIrF,OAAK,GAAGC,OAA6B,CAAC;AAC1C;IACA,sBAAc,GAAG,CAACD,OAAK,CAAC,YAAY;AACpC,EAAE,SAAS,CAAC,GAAG,eAAe;AAC9B,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;AACjC;AACA,EAAE,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC,CAAC;;ACPF,IAAID,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAI6C,QAAM,GAAGlC,gBAAwC,CAAC;AACtD,IAAIS,YAAU,GAAGR,YAAmC,CAAC;AACrD,IAAI4B,UAAQ,GAAG1B,UAAiC,CAAC;AACjD,IAAI,SAAS,GAAGc,WAAkC,CAAC;AACnD,IAAI,wBAAwB,GAAGkB,sBAAgD,CAAC;AAChF;AACA,IAAI,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;AACrC,IAAI/B,QAAM,GAAGjB,QAAM,CAAC,MAAM,CAAC;AAC3B,IAAI,eAAe,GAAGiB,QAAM,CAAC,SAAS,CAAC;AACvC;AACA;AACA;IACA,oBAAc,GAAG,wBAAwB,GAAGA,QAAM,CAAC,cAAc,GAAG,UAAU,CAAC,EAAE;AACjF,EAAE,IAAI,MAAM,GAAGyB,UAAQ,CAAC,CAAC,CAAC,CAAC;AAC3B,EAAE,IAAIK,QAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;AACxD,EAAE,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACvC,EAAE,IAAIzB,YAAU,CAAC,WAAW,CAAC,IAAI,MAAM,YAAY,WAAW,EAAE;AAChE,IAAI,OAAO,WAAW,CAAC,SAAS,CAAC;AACjC,GAAG,CAAC,OAAO,MAAM,YAAYL,QAAM,GAAG,eAAe,GAAG,IAAI,CAAC;AAC7D,CAAC;;ACpBD,YAAY,CAAC;AACb,IAAIhB,OAAK,GAAGC,OAA6B,CAAC;AAC1C,IAAIoB,YAAU,GAAGT,YAAmC,CAAC;AACrD,IAAIkK,QAAM,GAAGjK,YAAqC,CAAC;AACnD,IAAIkK,gBAAc,GAAGhK,oBAA+C,CAAC;AACrE,IAAIkF,UAAQ,GAAGpE,kBAAgC,CAAC;AAChD,IAAIqB,iBAAe,GAAGH,iBAAyC,CAAC;AAChE,IAAIR,SAAO,GAAGY,MAA+B,CAAC;AAC9C;AACA,IAAIoH,UAAQ,GAAGrH,iBAAe,CAAC,UAAU,CAAC,CAAC;AAC3C,IAAI8H,wBAAsB,GAAG,KAAK,CAAC;AACnC;AACA;AACA;AACA,IAAIC,mBAAiB,EAAE,iCAAiC,EAAE,aAAa,CAAC;AACxE;AACA;AACA,IAAI,EAAE,CAAC,IAAI,EAAE;AACb,EAAE,aAAa,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AAC5B;AACA,EAAE,IAAI,EAAE,MAAM,IAAI,aAAa,CAAC,EAAED,wBAAsB,GAAG,IAAI,CAAC;AAChE,OAAO;AACP,IAAI,iCAAiC,GAAGD,gBAAc,CAACA,gBAAc,CAAC,aAAa,CAAC,CAAC,CAAC;AACtF,IAAI,IAAI,iCAAiC,KAAK,MAAM,CAAC,SAAS,EAAEE,mBAAiB,GAAG,iCAAiC,CAAC;AACtH,GAAG;AACH,CAAC;AACD;AACA,IAAI,sBAAsB,GAAGA,mBAAiB,IAAI,SAAS,IAAIjL,OAAK,CAAC,YAAY;AACjF,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB;AACA,EAAE,OAAOiL,mBAAiB,CAACV,UAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AACzD,CAAC,CAAC,CAAC;AACH;AACA,IAAI,sBAAsB,EAAEU,mBAAiB,GAAG,EAAE,CAAC;AACnD,KAAK,IAAI1I,SAAO,EAAE0I,mBAAiB,GAAGH,QAAM,CAACG,mBAAiB,CAAC,CAAC;AAChE;AACA;AACA;AACA,IAAI,CAAC5J,YAAU,CAAC4J,mBAAiB,CAACV,UAAQ,CAAC,CAAC,EAAE;AAC9C,EAAEtE,UAAQ,CAACgF,mBAAiB,EAAEV,UAAQ,EAAE,YAAY;AACpD,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC,CAAC;AACL,CAAC;AACD;IACA,aAAc,GAAG;AACjB,EAAE,iBAAiB,EAAEU,mBAAiB;AACtC,EAAE,sBAAsB,EAAED,wBAAsB;AAChD,CAAC;;AC/CD,YAAY,CAAC;AACb,IAAIC,mBAAiB,GAAGhL,aAAsC,CAAC,iBAAiB,CAAC;AACjF,IAAI6K,QAAM,GAAGlK,YAAqC,CAAC;AACnD,IAAI,wBAAwB,GAAGC,0BAAkD,CAAC;AAClF,IAAImG,gBAAc,GAAGjG,gBAAyC,CAAC;AAC/D,IAAIuJ,WAAS,GAAGzI,SAAiC,CAAC;AAClD;AACA,IAAIqJ,YAAU,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;AAC9C;IACAC,2BAAc,GAAG,UAAU,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE;AAC5D,EAAE,IAAI,aAAa,GAAG,IAAI,GAAG,WAAW,CAAC;AACzC,EAAE,mBAAmB,CAAC,SAAS,GAAGL,QAAM,CAACG,mBAAiB,EAAE,EAAE,IAAI,EAAE,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AACzG,EAAEjE,gBAAc,CAAC,mBAAmB,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAClE,EAAEsD,WAAS,CAAC,aAAa,CAAC,GAAGY,YAAU,CAAC;AACxC,EAAE,OAAO,mBAAmB,CAAC;AAC7B,CAAC;;ACfD,IAAInL,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIoB,YAAU,GAAGT,YAAmC,CAAC;AACrD;AACA,IAAImB,QAAM,GAAGhC,QAAM,CAAC,MAAM,CAAC;AAC3B,IAAIkB,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC;IACAqL,oBAAc,GAAG,UAAU,QAAQ,EAAE;AACrC,EAAE,IAAI,OAAO,QAAQ,IAAI,QAAQ,IAAI/J,YAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC;AAC3E,EAAE,MAAMJ,WAAS,CAAC,YAAY,GAAGc,QAAM,CAAC,QAAQ,CAAC,GAAG,iBAAiB,CAAC,CAAC;AACvE,CAAC;;;;ACRD,IAAIvB,aAAW,GAAGP,mBAA6C,CAAC;AAChE,IAAI8D,UAAQ,GAAGnD,UAAiC,CAAC;AACjD,IAAI,kBAAkB,GAAGC,oBAA4C,CAAC;AACtE;AACA;AACA;AACA;AACA;IACA,oBAAc,GAAG,MAAM,CAAC,cAAc,KAAK,WAAW,IAAI,EAAE,GAAG,YAAY;AAC3E,EAAE,IAAI,cAAc,GAAG,KAAK,CAAC;AAC7B,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,IAAI,MAAM,CAAC;AACb,EAAE,IAAI;AACN;AACA,IAAI,MAAM,GAAGL,aAAW,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7F,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACrB,IAAI,cAAc,GAAG,IAAI,YAAY,KAAK,CAAC;AAC3C,GAAG,CAAC,OAAO,KAAK,EAAE,eAAe;AACjC,EAAE,OAAO,SAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE;AAC3C,IAAIuD,UAAQ,CAAC,CAAC,CAAC,CAAC;AAChB,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC9B,IAAI,IAAI,cAAc,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,SAAS,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;AAC7B,IAAI,OAAO,CAAC,CAAC;AACb,GAAG,CAAC;AACJ,CAAC,EAAE,GAAG,SAAS,CAAC;;AC1BhB,YAAY,CAAC;AACb,IAAIwD,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAIC,MAAI,GAAGU,YAAqC,CAAC;AACjD,IAAI2B,SAAO,GAAG1B,MAA+B,CAAC;AAC9C,IAAI,YAAY,GAAGE,YAAqC,CAAC;AACzD,IAAIM,YAAU,GAAGQ,YAAmC,CAAC;AACrD,IAAI,yBAAyB,GAAGkB,2BAAmD,CAAC;AACpF,IAAI,cAAc,GAAGI,oBAA+C,CAAC;AACrE,IAAIkI,gBAAc,GAAGxH,oBAA+C,CAAC;AACrE,IAAImD,gBAAc,GAAGxC,gBAAyC,CAAC;AAC/D,IAAIN,6BAA2B,GAAGsD,6BAAsD,CAAC;AACzF,IAAIvB,UAAQ,GAAGwB,kBAAgC,CAAC;AAChD,IAAIvE,iBAAe,GAAGwE,iBAAyC,CAAC;AAChE,IAAI4C,WAAS,GAAG3C,SAAiC,CAAC;AAClD,IAAI,aAAa,GAAGC,aAAsC,CAAC;AAC3D;AACA,IAAI0D,sBAAoB,GAAG,YAAY,CAAC,MAAM,CAAC;AAC/C,IAAI,0BAA0B,GAAG,YAAY,CAAC,YAAY,CAAC;AAC3D,IAAI,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC;AACxD,IAAI,sBAAsB,GAAG,aAAa,CAAC,sBAAsB,CAAC;AAClE,IAAIf,UAAQ,GAAGrH,iBAAe,CAAC,UAAU,CAAC,CAAC;AAC3C,IAAI,IAAI,GAAG,MAAM,CAAC;AAClB,IAAI,MAAM,GAAG,QAAQ,CAAC;AACtB,IAAI,OAAO,GAAG,SAAS,CAAC;AACxB;AACA,IAAI,UAAU,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;AAC9C;IACAqI,gBAAc,GAAG,UAAU,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;AAC/F,EAAE,yBAAyB,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D;AACA,EAAE,IAAI,kBAAkB,GAAG,UAAU,IAAI,EAAE;AAC3C,IAAI,IAAI,IAAI,KAAK,OAAO,IAAI,eAAe,EAAE,OAAO,eAAe,CAAC;AACpE,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,IAAI,iBAAiB,EAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC7F,IAAI,QAAQ,IAAI;AAChB,MAAM,KAAK,IAAI,EAAE,OAAO,SAAS,IAAI,GAAG,EAAE,OAAO,IAAI,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AACxF,MAAM,KAAK,MAAM,EAAE,OAAO,SAAS,MAAM,GAAG,EAAE,OAAO,IAAI,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AAC5F,MAAM,KAAK,OAAO,EAAE,OAAO,SAAS,OAAO,GAAG,EAAE,OAAO,IAAI,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AAC9F,KAAK,CAAC,OAAO,YAAY,EAAE,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AACnE,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,aAAa,GAAG,IAAI,GAAG,WAAW,CAAC;AACzC,EAAE,IAAI,qBAAqB,GAAG,KAAK,CAAC;AACpC,EAAE,IAAI,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC7C,EAAE,IAAI,cAAc,GAAG,iBAAiB,CAAChB,UAAQ,CAAC;AAClD,OAAO,iBAAiB,CAAC,YAAY,CAAC;AACtC,OAAO,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC7C,EAAE,IAAI,eAAe,GAAG,CAAC,sBAAsB,IAAI,cAAc,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACjG,EAAE,IAAI,iBAAiB,GAAG,IAAI,IAAI,OAAO,GAAG,iBAAiB,CAAC,OAAO,IAAI,cAAc,GAAG,cAAc,CAAC;AACzG,EAAE,IAAI,wBAAwB,EAAE,OAAO,EAAE,GAAG,CAAC;AAC7C;AACA;AACA,EAAE,IAAI,iBAAiB,EAAE;AACzB,IAAI,wBAAwB,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;AACtF,IAAI,IAAI,wBAAwB,KAAK,MAAM,CAAC,SAAS,IAAI,wBAAwB,CAAC,IAAI,EAAE;AACxF,MAAM,IAAI,CAAChI,SAAO,IAAI,cAAc,CAAC,wBAAwB,CAAC,KAAK,iBAAiB,EAAE;AACtF,QAAQ,IAAI8I,gBAAc,EAAE;AAC5B,UAAUA,gBAAc,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAC;AACtE,SAAS,MAAM,IAAI,CAAChK,YAAU,CAAC,wBAAwB,CAACkJ,UAAQ,CAAC,CAAC,EAAE;AACpE,UAAUtE,UAAQ,CAAC,wBAAwB,EAAEsE,UAAQ,EAAE,UAAU,CAAC,CAAC;AACnE,SAAS;AACT,OAAO;AACP;AACA,MAAMvD,gBAAc,CAAC,wBAAwB,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1E,MAAM,IAAIzE,SAAO,EAAE+H,WAAS,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;AACzD,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,IAAIgB,sBAAoB,IAAI,OAAO,IAAI,MAAM,IAAI,cAAc,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE;AACrG,IAAI,IAAI,CAAC/I,SAAO,IAAI,0BAA0B,EAAE;AAChD,MAAM2B,6BAA2B,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACrE,KAAK,MAAM;AACX,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,eAAe,GAAG,SAAS,MAAM,GAAG,EAAE,OAAOhE,MAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AACjF,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,OAAO,GAAG;AACd,MAAM,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC;AACxC,MAAM,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC;AAC/D,MAAM,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC;AAC1C,KAAK,CAAC;AACN,IAAI,IAAI,MAAM,EAAE,KAAK,GAAG,IAAI,OAAO,EAAE;AACrC,MAAM,IAAI,sBAAsB,IAAI,qBAAqB,IAAI,EAAE,GAAG,IAAI,iBAAiB,CAAC,EAAE;AAC1F,QAAQ+F,UAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,OAAO;AACP,KAAK,MAAMsB,GAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,sBAAsB,IAAI,qBAAqB,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9G,GAAG;AACH;AACA;AACA,EAAE,IAAI,CAAC,CAAChF,SAAO,IAAI,MAAM,KAAK,iBAAiB,CAACgI,UAAQ,CAAC,KAAK,eAAe,EAAE;AAC/E,IAAItE,UAAQ,CAAC,iBAAiB,EAAEsE,UAAQ,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAC9E,GAAG;AACH,EAAED,WAAS,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;AACpC;AACA,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC;;AClGD,YAAY,CAAC;AACb,IAAIO,QAAM,GAAG5K,eAAwC,CAAC,MAAM,CAAC;AAC7D,IAAIQ,UAAQ,GAAGG,UAAiC,CAAC;AACjD,IAAI6D,qBAAmB,GAAG5D,aAAsC,CAAC;AACjE,IAAI0K,gBAAc,GAAGxK,gBAAuC,CAAC;AAC7D;AACA,IAAI,eAAe,GAAG,iBAAiB,CAAC;AACxC,IAAI2I,kBAAgB,GAAGjF,qBAAmB,CAAC,GAAG,CAAC;AAC/C,IAAIE,kBAAgB,GAAGF,qBAAmB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;AACtE;AACA;AACA;AACA8G,gBAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,QAAQ,EAAE;AACrD,EAAE7B,kBAAgB,CAAC,IAAI,EAAE;AACzB,IAAI,IAAI,EAAE,eAAe;AACzB,IAAI,MAAM,EAAEjJ,UAAQ,CAAC,QAAQ,CAAC;AAC9B,IAAI,KAAK,EAAE,CAAC;AACZ,GAAG,CAAC,CAAC;AACL;AACA;AACA,CAAC,EAAE,SAAS,IAAI,GAAG;AACnB,EAAE,IAAI,KAAK,GAAGkE,kBAAgB,CAAC,IAAI,CAAC,CAAC;AACrC,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5B,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC1B,EAAE,IAAI,KAAK,CAAC;AACZ,EAAE,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACtE,EAAE,KAAK,GAAGkG,QAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChC,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;AAC9B,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC,CAAC;;;;AC7BF,IAAIvJ,UAAQ,GAAGrB,UAAiC,CAAC;AACjD,IAAIa,SAAO,GAAGF,YAAmC,CAAC;AAClD,IAAIsC,iBAAe,GAAGrC,iBAAyC,CAAC;AAChE;AACA,IAAI2K,OAAK,GAAGtI,iBAAe,CAAC,OAAO,CAAC,CAAC;AACrC;AACA;AACA;IACA,QAAc,GAAG,UAAU,EAAE,EAAE;AAC/B,EAAE,IAAI,QAAQ,CAAC;AACf,EAAE,OAAO5B,UAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAACkK,OAAK,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,GAAG1K,SAAO,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC;AACvG,CAAC;;ACXD,IAAIf,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIwL,UAAQ,GAAG7K,QAAiC,CAAC;AACjD;AACA,IAAIK,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC;IACA,UAAc,GAAG,UAAU,EAAE,EAAE;AAC/B,EAAE,IAAI0L,UAAQ,CAAC,EAAE,CAAC,EAAE;AACpB,IAAI,MAAMxK,WAAS,CAAC,+CAA+C,CAAC,CAAC;AACrE,GAAG,CAAC,OAAO,EAAE,CAAC;AACd,CAAC;;ACTD,IAAIiC,iBAAe,GAAGjD,iBAAyC,CAAC;AAChE;AACA,IAAIuL,OAAK,GAAGtI,iBAAe,CAAC,OAAO,CAAC,CAAC;AACrC;IACA,oBAAc,GAAG,UAAU,WAAW,EAAE;AACxC,EAAE,IAAI,MAAM,GAAG,GAAG,CAAC;AACnB,EAAE,IAAI;AACN,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/B,GAAG,CAAC,OAAO,MAAM,EAAE;AACnB,IAAI,IAAI;AACR,MAAM,MAAM,CAACsI,OAAK,CAAC,GAAG,KAAK,CAAC;AAC5B,MAAM,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACxC,KAAK,CAAC,OAAO,MAAM,EAAE,eAAe;AACpC,GAAG,CAAC,OAAO,KAAK,CAAC;AACjB,CAAC;;ACdD,YAAY,CAAC;AACb,IAAIjE,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAIO,aAAW,GAAGI,mBAA6C,CAAC;AAChE,IAAI,wBAAwB,GAAGC,8BAA0D,CAAC,CAAC,CAAC;AAC5F,IAAIsE,UAAQ,GAAGpE,UAAiC,CAAC;AACjD,IAAIN,UAAQ,GAAGoB,UAAiC,CAAC;AACjD,IAAI,UAAU,GAAGkB,UAAoC,CAAC;AACtD,IAAI7B,wBAAsB,GAAGiC,wBAAgD,CAAC;AAC9E,IAAI,oBAAoB,GAAGU,oBAA+C,CAAC;AAC3E,IAAI,OAAO,GAAGW,MAA+B,CAAC;AAC9C;AACA;AACA,IAAI,aAAa,GAAGhE,aAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AAC/C,IAAIE,aAAW,GAAGF,aAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACxC,IAAIyE,KAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACnB;AACA,IAAI,uBAAuB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;AACjE;AACA,IAAI,gBAAgB,GAAG,CAAC,OAAO,IAAI,CAAC,uBAAuB,IAAI,CAAC,CAAC,YAAY;AAC7E,EAAE,IAAI,UAAU,GAAG,wBAAwB,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAC5E,EAAE,OAAO,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC5C,CAAC,EAAE,CAAC;AACJ;AACA;AACA;AACAsC,GAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,gBAAgB,IAAI,CAAC,uBAAuB,EAAE,EAAE;AAC5F,EAAE,UAAU,EAAE,SAAS,UAAU,CAAC,YAAY,uBAAuB;AACrE,IAAI,IAAI,IAAI,GAAG9G,UAAQ,CAACS,wBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;AACtD,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;AAC7B,IAAI,IAAI,KAAK,GAAGiE,UAAQ,CAACF,KAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5F,IAAI,IAAI,MAAM,GAAGxE,UAAQ,CAAC,YAAY,CAAC,CAAC;AACxC,IAAI,OAAO,aAAa;AACxB,QAAQ,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC;AAC1C,QAAQC,aAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;AACnE,GAAG;AACH,CAAC,CAAC;;;;ACnCF,YAAY,CAAC;AACb,IAAI6G,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAIF,QAAM,GAAGa,QAA8B,CAAC;AAC5C,IAAIsE,iBAAe,GAAGrE,iBAAyC,CAAC;AAChE,IAAIkE,qBAAmB,GAAGhE,qBAA8C,CAAC;AACzE,IAAIqE,mBAAiB,GAAGvD,mBAA4C,CAAC;AACrE,IAAIY,UAAQ,GAAGM,UAAiC,CAAC;AACjD,IAAI,kBAAkB,GAAGI,oBAA4C,CAAC;AACtE,IAAI2G,gBAAc,GAAGjG,gBAAuC,CAAC;AAC7D,IAAIkG,8BAA4B,GAAGvF,8BAAwD,CAAC;AAC5F;AACA,IAAIkH,qBAAmB,GAAG3B,8BAA4B,CAAC,QAAQ,CAAC,CAAC;AACjE;AACA,IAAI9I,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC,IAAIiF,KAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACnB,IAAIC,KAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACnB,IAAI,gBAAgB,GAAG,gBAAgB,CAAC;AACxC,IAAI,+BAA+B,GAAG,iCAAiC,CAAC;AACxE;AACA;AACA;AACA;AACAsC,GAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAACmE,qBAAmB,EAAE,EAAE;AAClE,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,KAAK,EAAE,WAAW,mBAAmB;AAC/D,IAAI,IAAI,CAAC,GAAGjJ,UAAQ,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,IAAI,GAAG,GAAG2C,mBAAiB,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,WAAW,GAAGF,iBAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAClD,IAAI,IAAI,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC;AAC3C,IAAI,IAAI,WAAW,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;AACvD,IAAI,IAAI,eAAe,KAAK,CAAC,EAAE;AAC/B,MAAM,WAAW,GAAG,iBAAiB,GAAG,CAAC,CAAC;AAC1C,KAAK,MAAM,IAAI,eAAe,KAAK,CAAC,EAAE;AACtC,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,iBAAiB,GAAG,GAAG,GAAG,WAAW,CAAC;AAC5C,KAAK,MAAM;AACX,MAAM,WAAW,GAAG,eAAe,GAAG,CAAC,CAAC;AACxC,MAAM,iBAAiB,GAAGD,KAAG,CAACD,KAAG,CAACD,qBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,CAAC;AAC3F,KAAK;AACL,IAAI,IAAI,GAAG,GAAG,WAAW,GAAG,iBAAiB,GAAG,gBAAgB,EAAE;AAClE,MAAM,MAAM9D,WAAS,CAAC,+BAA+B,CAAC,CAAC;AACvD,KAAK;AACL,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;AACjD,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE;AAC5C,MAAM,IAAI,GAAG,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE6I,gBAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,CAAC,CAAC,MAAM,GAAG,iBAAiB,CAAC;AACjC,IAAI,IAAI,WAAW,GAAG,iBAAiB,EAAE;AACzC,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,GAAG,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE;AAC9D,QAAQ,IAAI,GAAG,CAAC,GAAG,iBAAiB,CAAC;AACrC,QAAQ,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC;AAC7B,QAAQ,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACvC,aAAa,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1B,OAAO;AACP,MAAM,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,iBAAiB,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpF,KAAK,MAAM,IAAI,WAAW,GAAG,iBAAiB,EAAE;AAChD,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,iBAAiB,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;AAC9D,QAAQ,IAAI,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,CAAC;AACzC,QAAQ,EAAE,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;AACjC,QAAQ,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACvC,aAAa,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;AACtC,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,KAAK;AACL,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,iBAAiB,GAAG,WAAW,CAAC;AACrD,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH,CAAC,CAAC;;;;ACrEF,YAAY,CAAC;AACb,IAAIvC,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAI,IAAI,GAAGW,cAAuC,CAAC,GAAG,CAAC;AACvD,IAAImJ,8BAA4B,GAAGlJ,8BAAwD,CAAC;AAC5F;AACA,IAAI6K,qBAAmB,GAAG3B,8BAA4B,CAAC,KAAK,CAAC,CAAC;AAC9D;AACA;AACA;AACA;AACAxC,GAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAACmE,qBAAmB,EAAE,EAAE;AAClE,EAAE,GAAG,EAAE,SAAS,GAAG,CAAC,UAAU,kBAAkB;AAChD,IAAI,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AACnF,GAAG;AACH,CAAC,CAAC;;;;ACdF,IAAIlL,aAAW,GAAGP,mBAA6C,CAAC;AAChE,IAAIiB,wBAAsB,GAAGN,wBAAgD,CAAC;AAC9E,IAAIH,UAAQ,GAAGI,UAAiC,CAAC;AACjD;AACA,IAAI,IAAI,GAAG,IAAI,CAAC;AAChB,IAAIgJ,SAAO,GAAGrJ,aAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACtC;AACA;AACA;IACA,UAAc,GAAG,UAAU,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE;AAC1D,EAAE,IAAI,CAAC,GAAGC,UAAQ,CAACS,wBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;AACrB,EAAE,IAAI,SAAS,KAAK,EAAE,EAAE,EAAE,IAAI,GAAG,GAAG,SAAS,GAAG,IAAI,GAAG2I,SAAO,CAACpJ,UAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC;AACtG,EAAE,OAAO,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;AACzC,CAAC;;ACdD,IAAIT,OAAK,GAAGC,OAA6B,CAAC;AAC1C;AACA;AACA;IACA,gBAAc,GAAG,UAAU,WAAW,EAAE;AACxC,EAAE,OAAOD,OAAK,CAAC,YAAY;AAC3B,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;AACpC,IAAI,OAAO,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACrE,GAAG,CAAC,CAAC;AACL,CAAC;;ACTD,YAAY,CAAC;AACb,IAAIuH,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAI,UAAU,GAAGW,UAAmC,CAAC;AACrD,IAAI,sBAAsB,GAAGC,gBAA0C,CAAC;AACxE;AACA;AACA;AACA0G,GAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,EAAE,EAAE;AAC/E,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,IAAI,EAAE;AAChC,IAAI,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/C,GAAG;AACH,CAAC,CAAC;;;;ACXF,IAAIrE,iBAAe,GAAGjD,iBAAyC,CAAC;AAChE,IAAI6K,QAAM,GAAGlK,YAAqC,CAAC;AACnD,IAAIqD,sBAAoB,GAAGpD,oBAA8C,CAAC;AAC1E;AACA,IAAI,WAAW,GAAGqC,iBAAe,CAAC,aAAa,CAAC,CAAC;AACjD,IAAI,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC;AACrC;AACA;AACA;AACA,IAAI,cAAc,CAAC,WAAW,CAAC,IAAI,SAAS,EAAE;AAC9C,EAAEe,sBAAoB,CAAC,CAAC,CAAC,cAAc,EAAE,WAAW,EAAE;AACtD,IAAI,YAAY,EAAE,IAAI;AACtB,IAAI,KAAK,EAAE6G,QAAM,CAAC,IAAI,CAAC;AACvB,GAAG,CAAC,CAAC;AACL,CAAC;AACD;AACA;IACAa,kBAAc,GAAG,UAAU,GAAG,EAAE;AAChC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC1C,CAAC;;ACnBD,YAAY,CAAC;AACb,IAAIpE,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAI,KAAK,GAAGW,cAAuC,CAAC,IAAI,CAAC;AACzD,IAAI+K,kBAAgB,GAAG9K,kBAA0C,CAAC;AAClE;AACA,IAAI,IAAI,GAAG,MAAM,CAAC;AAClB,IAAI+K,aAAW,GAAG,IAAI,CAAC;AACvB;AACA;AACA,IAAI,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAEA,aAAW,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;AACrE;AACA;AACA;AACArE,GAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAEqE,aAAW,EAAE,EAAE;AACzD,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC,UAAU,2BAA2B;AAC3D,IAAI,OAAO,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AACpF,GAAG;AACH,CAAC,CAAC,CAAC;AACH;AACA;AACAD,kBAAgB,CAAC,IAAI,CAAC;;;;ACpBtB,IAAItK,YAAU,GAAGpB,YAAmC,CAAC;AACrD,IAAIqB,UAAQ,GAAGV,UAAiC,CAAC;AACjD,IAAI,cAAc,GAAGC,oBAA+C,CAAC;AACrE;AACA;IACAgL,mBAAc,GAAG,UAAU,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;AAClD,EAAE,IAAI,SAAS,EAAE,kBAAkB,CAAC;AACpC,EAAE;AACF;AACA,IAAI,cAAc;AAClB;AACA,IAAIxK,YAAU,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC;AAC7C,IAAI,SAAS,KAAK,OAAO;AACzB,IAAIC,UAAQ,CAAC,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC;AACtD,IAAI,kBAAkB,KAAK,OAAO,CAAC,SAAS;AAC5C,IAAI,cAAc,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;AAC9C,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;;ACjBD,YAAY,CAAC;AACb,IAAIyC,UAAQ,GAAG9D,UAAiC,CAAC;AACjD;AACA;AACA;IACA6L,aAAc,GAAG,YAAY;AAC7B,EAAE,IAAI,IAAI,GAAG/H,UAAQ,CAAC,IAAI,CAAC,CAAC;AAC5B,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,CAAC;AACjC,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,GAAG,CAAC;AACrC,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,GAAG,CAAC;AACpC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,CAAC;AACjC,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,CAAC;AAClC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,CAAC;AACjC,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;;;;ACfD,IAAI/D,OAAK,GAAGC,OAA6B,CAAC;AAC1C,IAAIF,QAAM,GAAGa,QAA8B,CAAC;AAC5C;AACA;AACA,IAAImL,SAAO,GAAGhM,QAAM,CAAC,MAAM,CAAC;AAC5B;AACA,uDAAqB,GAAGC,OAAK,CAAC,YAAY;AAC1C,EAAE,IAAI,EAAE,GAAG+L,SAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,EAAE,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC,CAAC,CAAC;AACH;AACA,mDAAoB,GAAG/L,OAAK,CAAC,YAAY;AACzC;AACA,EAAE,IAAI,EAAE,GAAG+L,SAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/B,EAAE,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAChC,CAAC,CAAC;;ACjBF,YAAY,CAAC;AACb,IAAI,UAAU,GAAG9L,YAAoC,CAAC;AACtD,IAAI,oBAAoB,GAAGW,oBAA8C,CAAC;AAC1E,IAAIsC,iBAAe,GAAGrC,iBAAyC,CAAC;AAChE,IAAI6C,aAAW,GAAG3C,WAAmC,CAAC;AACtD;AACA,IAAIoG,SAAO,GAAGjE,iBAAe,CAAC,SAAS,CAAC,CAAC;AACzC;IACA8I,YAAc,GAAG,UAAU,gBAAgB,EAAE;AAC7C,EAAE,IAAI,WAAW,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACjD,EAAE,IAAI,cAAc,GAAG,oBAAoB,CAAC,CAAC,CAAC;AAC9C;AACA,EAAE,IAAItI,aAAW,IAAI,WAAW,IAAI,CAAC,WAAW,CAACyD,SAAO,CAAC,EAAE;AAC3D,IAAI,cAAc,CAAC,WAAW,EAAEA,SAAO,EAAE;AACzC,MAAM,YAAY,EAAE,IAAI;AACxB,MAAM,GAAG,EAAE,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE;AACvC,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC;;AClBD,IAAInH,OAAK,GAAGC,OAA6B,CAAC;AAC1C,IAAIF,QAAM,GAAGa,QAA8B,CAAC;AAC5C;AACA;AACA,IAAImL,SAAO,GAAGhM,QAAM,CAAC,MAAM,CAAC;AAC5B;IACA,uBAAc,GAAGC,OAAK,CAAC,YAAY;AACnC,EAAE,IAAI,EAAE,GAAG+L,SAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;AAC3D,CAAC,CAAC;;ACTF,IAAI/L,OAAK,GAAGC,OAA6B,CAAC;AAC1C,IAAIF,QAAM,GAAGa,QAA8B,CAAC;AAC5C;AACA;AACA,IAAI,OAAO,GAAGb,QAAM,CAAC,MAAM,CAAC;AAC5B;IACA,oBAAc,GAAGC,OAAK,CAAC,YAAY;AACnC,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACnC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG;AACtC,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AACtC,CAAC,CAAC;;ACVF,IAAI0D,aAAW,GAAGzD,WAAmC,CAAC;AACtD,IAAIF,QAAM,GAAGa,QAA8B,CAAC;AAC5C,IAAIJ,aAAW,GAAGK,mBAA6C,CAAC;AAChE,IAAImF,UAAQ,GAAGjF,UAAiC,CAAC;AACjD,IAAI8K,mBAAiB,GAAGhK,mBAA2C,CAAC;AACpE,IAAIqC,6BAA2B,GAAGnB,6BAAsD,CAAC;AACzF,IAAIX,gBAAc,GAAGe,oBAA8C,CAAC,CAAC,CAAC;AACtE,IAAI,mBAAmB,GAAGU,yBAAqD,CAAC,CAAC,CAAC;AAClF,IAAIlC,eAAa,GAAG6C,mBAA8C,CAAC;AACnE,IAAI,QAAQ,GAAGgD,QAAiC,CAAC;AACjD,IAAI/G,UAAQ,GAAGgH,UAAiC,CAAC;AACjD,IAAIwE,aAAW,GAAGvE,aAAoC,CAAC;AACvD,IAAIwE,eAAa,GAAGvE,mBAA6C,CAAC;AAClE,IAAI1B,UAAQ,GAAG2B,kBAAgC,CAAC;AAChD,IAAI5H,OAAK,GAAG6H,OAA6B,CAAC;AAC1C,IAAI/E,QAAM,GAAGgF,gBAAwC,CAAC;AACtD,IAAI,oBAAoB,GAAGC,aAAsC,CAAC,OAAO,CAAC;AAC1E,IAAIiE,YAAU,GAAGhE,YAAmC,CAAC;AACrD,IAAI9E,iBAAe,GAAG+E,iBAAyC,CAAC;AAChE,IAAIkE,qBAAmB,GAAGjE,uBAAkD,CAAC;AAC7E,IAAIkE,iBAAe,GAAGhE,oBAA8C,CAAC;AACrE;AACA,IAAI,KAAK,GAAGlF,iBAAe,CAAC,OAAO,CAAC,CAAC;AACrC,IAAI,YAAY,GAAGnD,QAAM,CAAC,MAAM,CAAC;AACjC,IAAIsM,iBAAe,GAAG,YAAY,CAAC,SAAS,CAAC;AAC7C,IAAI,WAAW,GAAGtM,QAAM,CAAC,WAAW,CAAC;AACrC,IAAIuM,UAAQ,GAAG9L,aAAW,CAACyL,aAAW,CAAC,CAAC;AACxC,IAAIhF,MAAI,GAAGzG,aAAW,CAAC6L,iBAAe,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAIxB,QAAM,GAAGrK,aAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACpC,IAAIqJ,SAAO,GAAGrJ,aAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACtC,IAAI+L,eAAa,GAAG/L,aAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC5C,IAAIE,aAAW,GAAGF,aAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACxC;AACA,IAAI,MAAM,GAAG,0CAA0C,CAAC;AACxD,IAAI,GAAG,GAAG,IAAI,CAAC;AACf,IAAI,GAAG,GAAG,IAAI,CAAC;AACf;AACA;AACA,IAAI,WAAW,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;AAChD;AACA,IAAIgM,eAAa,GAAGN,eAAa,CAAC,aAAa,CAAC;AAChD;AACA,IAAI,WAAW,GAAGxI,aAAW;AAC7B,GAAG,CAAC,WAAW,IAAI8I,eAAa,IAAIL,qBAAmB,IAAIC,iBAAe,IAAIpM,OAAK,CAAC,YAAY;AAChG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACvB;AACA,IAAI,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC;AACpG,GAAG,CAAC,CAAC,CAAC;AACN;AACA,IAAI,YAAY,GAAG,UAAU,MAAM,EAAE;AACrC,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;AAChB,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,QAAQ,GAAG,KAAK,CAAC;AACvB,EAAE,IAAI,GAAG,CAAC;AACV,EAAE,OAAO,KAAK,IAAI,MAAM,EAAE,KAAK,EAAE,EAAE;AACnC,IAAI,GAAG,GAAG6K,QAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChC,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE;AACtB,MAAM,MAAM,IAAI,GAAG,GAAGA,QAAM,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;AAC9C,MAAM,SAAS;AACf,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,IAAI,GAAG,KAAK,GAAG,EAAE;AAClC,MAAM,MAAM,IAAI,UAAU,CAAC;AAC3B,KAAK,MAAM;AACX,MAAM,IAAI,GAAG,KAAK,GAAG,EAAE;AACvB,QAAQ,QAAQ,GAAG,IAAI,CAAC;AACxB,OAAO,MAAM,IAAI,GAAG,KAAK,GAAG,EAAE;AAC9B,QAAQ,QAAQ,GAAG,KAAK,CAAC;AACzB,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC;AACtB,KAAK;AACL,GAAG,CAAC,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AACF;AACA,IAAI,SAAS,GAAG,UAAU,MAAM,EAAE;AAClC,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;AAChB,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;AACjB,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;AACjB,EAAE,IAAI,QAAQ,GAAG,KAAK,CAAC;AACvB,EAAE,IAAI,GAAG,GAAG,KAAK,CAAC;AAClB,EAAE,IAAI,OAAO,GAAG,CAAC,CAAC;AAClB,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC;AACrB,EAAE,IAAI,GAAG,CAAC;AACV,EAAE,OAAO,KAAK,IAAI,MAAM,EAAE,KAAK,EAAE,EAAE;AACnC,IAAI,GAAG,GAAGA,QAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChC,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE;AACtB,MAAM,GAAG,GAAG,GAAG,GAAGA,QAAM,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;AAC1C,KAAK,MAAM,IAAI,GAAG,KAAK,GAAG,EAAE;AAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC;AACvB,KAAK,MAAM,IAAI,CAAC,QAAQ,EAAE,QAAQ,IAAI;AACtC,MAAM,KAAK,GAAG,KAAK,GAAG;AACtB,QAAQ,QAAQ,GAAG,IAAI,CAAC;AACxB,QAAQ,MAAM;AACd,MAAM,KAAK,GAAG,KAAK,GAAG;AACtB,QAAQ,IAAI5D,MAAI,CAAC,MAAM,EAAEvG,aAAW,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;AAC1D,UAAU,KAAK,IAAI,CAAC,CAAC;AACrB,UAAU,GAAG,GAAG,IAAI,CAAC;AACrB,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG,CAAC;AACtB,QAAQ,OAAO,EAAE,CAAC;AAClB,QAAQ,SAAS;AACjB,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG;AAC7B,QAAQ,IAAI,SAAS,KAAK,EAAE,IAAIoC,QAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;AAC1D,UAAU,MAAM,IAAI,WAAW,CAAC,4BAA4B,CAAC,CAAC;AAC9D,SAAS;AACT,QAAQ,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AAChC,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACnD,QAAQ,GAAG,GAAG,KAAK,CAAC;AACpB,QAAQ,SAAS,GAAG,EAAE,CAAC;AACvB,QAAQ,SAAS;AACjB,KAAK;AACL,IAAI,IAAI,GAAG,EAAE,SAAS,IAAI,GAAG,CAAC;AAC9B,SAAS,MAAM,IAAI,GAAG,CAAC;AACvB,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC,CAAC;AACF;AACA;AACA;AACA,IAAIkD,UAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;AACrC,EAAE,IAAI,aAAa,GAAG,SAAS,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE;AACtD,IAAI,IAAI,YAAY,GAAGrE,eAAa,CAAC0K,iBAAe,EAAE,IAAI,CAAC,CAAC;AAC5D,IAAI,IAAI,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC5C,IAAI,IAAI,iBAAiB,GAAG,KAAK,KAAK,SAAS,CAAC;AAChD,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,UAAU,GAAG,OAAO,CAAC;AAC7B,IAAI,IAAI,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;AACzD;AACA,IAAI,IAAI,CAAC,YAAY,IAAI,eAAe,IAAI,iBAAiB,IAAI,OAAO,CAAC,WAAW,KAAK,aAAa,EAAE;AACxG,MAAM,OAAO,OAAO,CAAC;AACrB,KAAK;AACL;AACA,IAAI,IAAI,eAAe,IAAI1K,eAAa,CAAC0K,iBAAe,EAAE,OAAO,CAAC,EAAE;AACpE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;AAC/B,MAAM,IAAI,iBAAiB,EAAE,KAAK,GAAG,OAAO,IAAI,UAAU,GAAG,UAAU,CAAC,KAAK,GAAGC,UAAQ,CAAC,UAAU,CAAC,CAAC;AACrG,KAAK;AACL;AACA,IAAI,OAAO,GAAG,OAAO,KAAK,SAAS,GAAG,EAAE,GAAG7L,UAAQ,CAAC,OAAO,CAAC,CAAC;AAC7D,IAAI,KAAK,GAAG,KAAK,KAAK,SAAS,GAAG,EAAE,GAAGA,UAAQ,CAAC,KAAK,CAAC,CAAC;AACvD,IAAI,UAAU,GAAG,OAAO,CAAC;AACzB;AACA,IAAI,IAAI0L,qBAAmB,IAAI,QAAQ,IAAI,GAAG,EAAE;AAChD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,IAAII,eAAa,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,MAAM,IAAI,MAAM,EAAE,KAAK,GAAG1C,SAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACnD,KAAK;AACL;AACA,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB;AACA,IAAI,IAAI2C,eAAa,IAAI,QAAQ,IAAI,GAAG,EAAE;AAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,IAAID,eAAa,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,MAAM,IAAI,MAAM,EAAE,KAAK,GAAG1C,SAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACnD,KAAK;AACL;AACA,IAAI,IAAIuC,iBAAe,EAAE;AACzB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,KAAK;AACL;AACA,IAAI,MAAM,GAAGP,mBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,GAAGQ,iBAAe,EAAE,aAAa,CAAC,CAAC;AACnH;AACA,IAAI,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AAC3C,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC3C,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AAC5B,QAAQ,KAAK,CAAC,GAAG,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AACnE,OAAO;AACP,MAAM,IAAI,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AACtC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAC/C,KAAK;AACL;AACA,IAAI,IAAI,OAAO,KAAK,UAAU,EAAE,IAAI;AACpC;AACA,MAAMnI,6BAA2B,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,KAAK,EAAE,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;AAC7F,KAAK,CAAC,OAAO,KAAK,EAAE,eAAe;AACnC;AACA,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,KAAK,GAAG,UAAU,GAAG,EAAE;AAC7B,IAAI,GAAG,IAAI,aAAa,IAAI9B,gBAAc,CAAC,aAAa,EAAE,GAAG,EAAE;AAC/D,MAAM,YAAY,EAAE,IAAI;AACxB,MAAM,GAAG,EAAE,YAAY,EAAE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE;AACpD,MAAM,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE;AACpD,KAAK,CAAC,CAAC;AACP,GAAG,CAAC;AACJ;AACA,EAAE,KAAK,IAAI,IAAI,GAAG,mBAAmB,CAAC,YAAY,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG;AACtF,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACzB,GAAG;AACH;AACA,EAAEiK,iBAAe,CAAC,WAAW,GAAG,aAAa,CAAC;AAC9C,EAAE,aAAa,CAAC,SAAS,GAAGA,iBAAe,CAAC;AAC5C,EAAEpG,UAAQ,CAAClG,QAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC5C,CAAC;AACD;AACA;AACAiM,YAAU,CAAC,QAAQ,CAAC;;;;ACrMpB,YAAY,CAAC;AACb;AACA;AACA,IAAI9L,MAAI,GAAGD,YAAqC,CAAC;AACjD,IAAIO,aAAW,GAAGI,mBAA6C,CAAC;AAChE,IAAIH,UAAQ,GAAGI,UAAiC,CAAC;AACjD,IAAI,WAAW,GAAGE,aAAoC,CAAC;AACvD,IAAI,aAAa,GAAGc,mBAA6C,CAAC;AAClE,IAAI,MAAM,GAAGkB,gBAA8B,CAAC;AAC5C,IAAI+H,QAAM,GAAG3H,YAAqC,CAAC;AACnD,IAAIwB,kBAAgB,GAAGd,aAAsC,CAAC,GAAG,CAAC;AAClE,IAAI,mBAAmB,GAAGW,uBAAkD,CAAC;AAC7E,IAAI,eAAe,GAAGgD,oBAA8C,CAAC;AACrE;AACA,IAAI,aAAa,GAAG,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC9E,IAAI,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;AACvC,IAAI,WAAW,GAAG,UAAU,CAAC;AAC7B,IAAIqD,QAAM,GAAGrK,aAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACpC,IAAI,OAAO,GAAGA,aAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACtC,IAAIqJ,SAAO,GAAGrJ,aAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACtC,IAAIE,aAAW,GAAGF,aAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACxC;AACA,IAAI,wBAAwB,GAAG,CAAC,YAAY;AAC5C,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;AAChB,EAAE,IAAI,GAAG,GAAG,KAAK,CAAC;AAClB,EAAEN,MAAI,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,EAAEA,MAAI,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,EAAE,OAAO,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,KAAK,CAAC,CAAC;AACpD,CAAC,GAAG,CAAC;AACL;AACA,IAAI,aAAa,GAAG,aAAa,CAAC,aAAa,IAAI,aAAa,CAAC,YAAY,CAAC;AAC9E;AACA;AACA,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;AACrD;AACA,IAAI,KAAK,GAAG,wBAAwB,IAAI,aAAa,IAAI,aAAa,IAAI,mBAAmB,IAAI,eAAe,CAAC;AACjH;AACA,IAAI,KAAK,EAAE;AACX;AACA,EAAE,WAAW,GAAG,SAAS,IAAI,CAAC,MAAM,EAAE;AACtC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC;AAClB,IAAI,IAAI,KAAK,GAAGyE,kBAAgB,CAAC,EAAE,CAAC,CAAC;AACrC,IAAI,IAAI,GAAG,GAAGlE,UAAQ,CAAC,MAAM,CAAC,CAAC;AAC/B,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AACxB,IAAI,IAAI,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC;AAC3D;AACA,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;AACnC,MAAM,MAAM,GAAGP,MAAI,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC3C,MAAM,EAAE,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;AACnC,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL;AACA,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC9B,IAAI,IAAI,MAAM,GAAG,aAAa,IAAI,EAAE,CAAC,MAAM,CAAC;AAC5C,IAAI,IAAI,KAAK,GAAGA,MAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACtC,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;AAC3B,IAAI,IAAI,UAAU,GAAG,CAAC,CAAC;AACvB,IAAI,IAAI,OAAO,GAAG,GAAG,CAAC;AACtB;AACA,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,KAAK,GAAG2J,SAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACtC,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;AACtC,QAAQ,KAAK,IAAI,GAAG,CAAC;AACrB,OAAO;AACP;AACA,MAAM,OAAO,GAAGnJ,aAAW,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;AAC/C;AACA,MAAM,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,IAAImK,QAAM,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;AACzG,QAAQ,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;AACvC,QAAQ,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC;AAChC,QAAQ,UAAU,EAAE,CAAC;AACrB,OAAO;AACP;AACA;AACA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;AACxD,KAAK;AACL;AACA,IAAI,IAAI,aAAa,EAAE;AACvB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,MAAM,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,wBAAwB,EAAE,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;AAC3D;AACA,IAAI,KAAK,GAAG3K,MAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5D;AACA,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,KAAK,CAAC,KAAK,GAAGQ,aAAW,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC3D,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAGA,aAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACrD,QAAQ,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC;AACnC,QAAQ,EAAE,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACxC,OAAO,MAAM,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC;AAC9B,KAAK,MAAM,IAAI,wBAAwB,IAAI,KAAK,EAAE;AAClD,MAAM,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;AAC3E,KAAK;AACL,IAAI,IAAI,aAAa,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpD;AACA;AACA,MAAMR,MAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY;AACxD,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAC/D,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA,IAAI,IAAI,KAAK,IAAI,MAAM,EAAE;AACzB,MAAM,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG4K,QAAM,CAAC,IAAI,CAAC,CAAC;AAC3C,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,QAAQ,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG,CAAC;AACJ,CAAC;AACD;IACA2B,YAAc,GAAG,WAAW;;ACrH5B,YAAY,CAAC;AACb,IAAIlF,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAI,IAAI,GAAGW,YAAmC,CAAC;AAC/C;AACA;AACA;AACA2G,GAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,EAAE;AAChE,EAAE,IAAI,EAAE,IAAI;AACZ,CAAC,CAAC;;;;ACRF,YAAY,CAAC;AACb,IAAI/G,aAAW,GAAGP,mBAA6C,CAAC;AAChE,IAAIqL,sBAAoB,GAAG1K,YAAqC,CAAC,MAAM,CAAC;AACxE,IAAIqF,UAAQ,GAAGpF,kBAAgC,CAAC;AAChD,IAAIkD,UAAQ,GAAGhD,UAAiC,CAAC;AACjD,IAAIY,eAAa,GAAGE,mBAA8C,CAAC;AACnE,IAAI,SAAS,GAAGkB,UAAiC,CAAC;AAClD,IAAI/C,OAAK,GAAGmD,OAA6B,CAAC;AAC1C,IAAI,WAAW,GAAGU,aAAoC,CAAC;AACvD;AACA,IAAI,SAAS,GAAG,UAAU,CAAC;AAC3B,IAAIwI,iBAAe,GAAG,MAAM,CAAC,SAAS,CAAC;AACvC,IAAI,UAAU,GAAGA,iBAAe,CAAC,SAAS,CAAC,CAAC;AAC5C,IAAI,QAAQ,GAAG7L,aAAW,CAAC,WAAW,CAAC,CAAC;AACxC;AACA,IAAI,WAAW,GAAGR,OAAK,CAAC,YAAY,EAAE,OAAO,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;AACxG;AACA,IAAI,cAAc,GAAGsL,sBAAoB,IAAI,UAAU,CAAC,IAAI,IAAI,SAAS,CAAC;AAC1E;AACA;AACA;AACA,IAAI,WAAW,IAAI,cAAc,EAAE;AACnC,EAAErF,UAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,QAAQ,GAAG;AAC5D,IAAI,IAAI,CAAC,GAAGlC,UAAQ,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAChC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;AACrB,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,KAAK,SAAS,IAAIpC,eAAa,CAAC0K,iBAAe,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,IAAIA,iBAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACjI,IAAI,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAC7B,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACvB;;;;AC7BA,YAAY,CAAC;AACb;AACqC;AACrC,IAAI7L,aAAW,GAAGP,mBAA6C,CAAC;AAChE,IAAIgG,UAAQ,GAAGrF,kBAAgC,CAAC;AAChD,IAAI6L,YAAU,GAAG5L,YAAmC,CAAC;AACrD,IAAIb,OAAK,GAAGe,OAA6B,CAAC;AAC1C,IAAImC,iBAAe,GAAGrB,iBAAyC,CAAC;AAChE,IAAIqC,6BAA2B,GAAGnB,6BAAsD,CAAC;AACzF;AACA,IAAIoE,SAAO,GAAGjE,iBAAe,CAAC,SAAS,CAAC,CAAC;AACzC,IAAI,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;AACvC;IACA,6BAAc,GAAG,UAAU,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AACpD,EAAE,IAAI,MAAM,GAAGA,iBAAe,CAAC,GAAG,CAAC,CAAC;AACpC;AACA,EAAE,IAAI,mBAAmB,GAAG,CAAClD,OAAK,CAAC,YAAY;AAC/C;AACA,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;AAC1C,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3B,GAAG,CAAC,CAAC;AACL;AACA,EAAE,IAAI,iBAAiB,GAAG,mBAAmB,IAAI,CAACA,OAAK,CAAC,YAAY;AACpE;AACA,IAAI,IAAI,UAAU,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,EAAE,GAAG,GAAG,CAAC;AACjB;AACA,IAAI,IAAI,GAAG,KAAK,OAAO,EAAE;AACzB;AACA;AACA;AACA,MAAM,EAAE,GAAG,EAAE,CAAC;AACd;AACA;AACA,MAAM,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC;AAC1B,MAAM,EAAE,CAAC,WAAW,CAACmH,SAAO,CAAC,GAAG,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC3D,MAAM,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;AAC/B,KAAK;AACL;AACA,IAAI,EAAE,CAAC,IAAI,GAAG,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;AAC9D;AACA,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACnB,IAAI,OAAO,CAAC,UAAU,CAAC;AACvB,GAAG,CAAC,CAAC;AACL;AACA,EAAE;AACF,IAAI,CAAC,mBAAmB;AACxB,IAAI,CAAC,iBAAiB;AACtB,IAAI,MAAM;AACV,IAAI;AACJ,IAAI,IAAI,2BAA2B,GAAG3G,aAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/D,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,UAAU,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE;AACtG,MAAM,IAAI,qBAAqB,GAAGA,aAAW,CAAC,YAAY,CAAC,CAAC;AAC5D,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;AAC9B,MAAM,IAAI,KAAK,KAAKiM,YAAU,IAAI,KAAK,KAAK,eAAe,CAAC,IAAI,EAAE;AAClE,QAAQ,IAAI,mBAAmB,IAAI,CAAC,iBAAiB,EAAE;AACvD;AACA;AACA;AACA,UAAU,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,2BAA2B,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;AACvF,SAAS;AACT,QAAQ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;AAC/E,OAAO;AACP,MAAM,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,KAAK,CAAC,CAAC;AACP;AACA,IAAIxG,UAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,IAAIA,UAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,GAAG;AACH;AACA,EAAE,IAAI,IAAI,EAAE/B,6BAA2B,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/E,CAAC;;ACzED,YAAY,CAAC;AACb,IAAI2G,QAAM,GAAG5K,eAAwC,CAAC,MAAM,CAAC;AAC7D;AACA;AACA;IACAyM,oBAAc,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;AAC9C,EAAE,OAAO,KAAK,IAAI,OAAO,GAAG7B,QAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzD,CAAC;;ACPD,IAAIrK,aAAW,GAAGP,mBAA6C,CAAC;AAChE,IAAIwC,UAAQ,GAAG7B,UAAiC,CAAC;AACjD;AACA,IAAIkE,OAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACvB,IAAI,MAAM,GAAGtE,aAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACpC,IAAIqJ,SAAO,GAAGrJ,aAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACtC,IAAIE,aAAW,GAAGF,aAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACxC,IAAI,oBAAoB,GAAG,6BAA6B,CAAC;AACzD,IAAI,6BAA6B,GAAG,qBAAqB,CAAC;AAC1D;AACA;AACA;IACAmM,iBAAc,GAAG,UAAU,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE;AACzF,EAAE,IAAI,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;AAC1C,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC1B,EAAE,IAAI,OAAO,GAAG,6BAA6B,CAAC;AAC9C,EAAE,IAAI,aAAa,KAAK,SAAS,EAAE;AACnC,IAAI,aAAa,GAAGlK,UAAQ,CAAC,aAAa,CAAC,CAAC;AAC5C,IAAI,OAAO,GAAG,oBAAoB,CAAC;AACnC,GAAG;AACH,EAAE,OAAOoH,SAAO,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,KAAK,EAAE,EAAE,EAAE;AAC5D,IAAI,IAAI,OAAO,CAAC;AAChB,IAAI,QAAQ,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;AACzB,MAAM,KAAK,GAAG,EAAE,OAAO,GAAG,CAAC;AAC3B,MAAM,KAAK,GAAG,EAAE,OAAO,OAAO,CAAC;AAC/B,MAAM,KAAK,GAAG,EAAE,OAAOnJ,aAAW,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACrD,MAAM,KAAK,GAAG,EAAE,OAAOA,aAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACjD,MAAM,KAAK,GAAG;AACd,QAAQ,OAAO,GAAG,aAAa,CAACA,aAAW,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,QAAQ,MAAM;AACd,MAAM;AACN,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACpB,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE;AACnB,UAAU,IAAI,CAAC,GAAGoE,OAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAChC,UAAU,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AACpC,UAAU,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7G,UAAU,OAAO,KAAK,CAAC;AACvB,SAAS;AACT,QAAQ,OAAO,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,OAAO,OAAO,KAAK,SAAS,GAAG,EAAE,GAAG,OAAO,CAAC;AAChD,GAAG,CAAC,CAAC;AACL,CAAC;;AC3CD,IAAI/E,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIC,MAAI,GAAGU,YAAqC,CAAC;AACjD,IAAImD,UAAQ,GAAGlD,UAAiC,CAAC;AACjD,IAAIQ,YAAU,GAAGN,YAAmC,CAAC;AACrD,IAAID,SAAO,GAAGe,YAAmC,CAAC;AAClD,IAAI,UAAU,GAAGkB,YAAmC,CAAC;AACrD;AACA,IAAI9B,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC;AACA;AACA;IACA,kBAAc,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACjC,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACpB,EAAE,IAAIsB,YAAU,CAAC,IAAI,CAAC,EAAE;AACxB,IAAI,IAAI,MAAM,GAAGnB,MAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE6D,UAAQ,CAAC,MAAM,CAAC,CAAC;AAC1C,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAIjD,SAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,OAAOZ,MAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,EAAE,MAAMe,WAAS,CAAC,6CAA6C,CAAC,CAAC;AACjE,CAAC;;ACpBD,YAAY,CAAC;AACb,IAAI,KAAK,GAAGhB,aAAsC,CAAC;AACnD,IAAIC,MAAI,GAAGU,YAAqC,CAAC;AACjD,IAAIJ,aAAW,GAAGK,mBAA6C,CAAC;AAChE,IAAI,6BAA6B,GAAGE,6BAA0D,CAAC;AAC/F,IAAIf,OAAK,GAAG6B,OAA6B,CAAC;AAC1C,IAAIkC,UAAQ,GAAGhB,UAAiC,CAAC;AACjD,IAAI1B,YAAU,GAAG8B,YAAmC,CAAC;AACrD,IAAI,mBAAmB,GAAGU,qBAA8C,CAAC;AACzE,IAAI,QAAQ,GAAGW,UAAiC,CAAC;AACjD,IAAI/D,UAAQ,GAAG+G,UAAiC,CAAC;AACjD,IAAItG,wBAAsB,GAAGuG,wBAAgD,CAAC;AAC9E,IAAI,kBAAkB,GAAGC,oBAA4C,CAAC;AACtE,IAAI,SAAS,GAAGC,WAAkC,CAAC;AACnD,IAAI,eAAe,GAAGC,iBAAwC,CAAC;AAC/D,IAAI,UAAU,GAAGC,kBAA4C,CAAC;AAC9D,IAAI3E,iBAAe,GAAG4E,iBAAyC,CAAC;AAChE;AACA,IAAI,OAAO,GAAG5E,iBAAe,CAAC,SAAS,CAAC,CAAC;AACzC,IAAI8B,KAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACnB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACnB,IAAIY,QAAM,GAAGpF,aAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACpC,IAAI+E,MAAI,GAAG/E,aAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAChC,IAAI,aAAa,GAAGA,aAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC5C,IAAI,WAAW,GAAGA,aAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACxC;AACA,IAAI,aAAa,GAAG,UAAU,EAAE,EAAE;AAClC,EAAE,OAAO,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAC5C,CAAC,CAAC;AACF;AACA;AACA;AACA,IAAI,gBAAgB,GAAG,CAAC,YAAY;AACpC;AACA,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;AACzC,CAAC,GAAG,CAAC;AACL;AACA;AACA,IAAI,4CAA4C,GAAG,CAAC,YAAY;AAChE,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE;AACpB,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAC1C,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC,GAAG,CAAC;AACL;AACA,IAAI,6BAA6B,GAAG,CAACR,OAAK,CAAC,YAAY;AACvD,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;AACf,EAAE,EAAE,CAAC,IAAI,GAAG,YAAY;AACxB,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;AAC/B,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC;AACJ;AACA,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC;AACxC,CAAC,CAAC,CAAC;AACH;AACA;AACA,6BAA6B,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE;AACtF,EAAE,IAAI,iBAAiB,GAAG,4CAA4C,GAAG,GAAG,GAAG,IAAI,CAAC;AACpF;AACA,EAAE,OAAO;AACT;AACA;AACA,IAAI,SAAS,OAAO,CAAC,WAAW,EAAE,YAAY,EAAE;AAChD,MAAM,IAAI,CAAC,GAAGkB,wBAAsB,CAAC,IAAI,CAAC,CAAC;AAC3C,MAAM,IAAI,QAAQ,GAAG,WAAW,IAAI,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC5F,MAAM,OAAO,QAAQ;AACrB,UAAUhB,MAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,CAAC;AACtD,UAAUA,MAAI,CAAC,aAAa,EAAEO,UAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AACtE,KAAK;AACL;AACA;AACA,IAAI,UAAU,MAAM,EAAE,YAAY,EAAE;AACpC,MAAM,IAAI,EAAE,GAAGsD,UAAQ,CAAC,IAAI,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,GAAGtD,UAAQ,CAAC,MAAM,CAAC,CAAC;AAC/B;AACA,MAAM;AACN,QAAQ,OAAO,YAAY,IAAI,QAAQ;AACvC,QAAQ,aAAa,CAAC,YAAY,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC7D,QAAQ,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,QAAQ;AACR,QAAQ,IAAI,GAAG,GAAG,eAAe,CAAC,aAAa,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;AACtE,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,KAAK,CAAC;AACvC,OAAO;AACP;AACA,MAAM,IAAI,iBAAiB,GAAGY,YAAU,CAAC,YAAY,CAAC,CAAC;AACvD,MAAM,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAGZ,UAAQ,CAAC,YAAY,CAAC,CAAC;AACpE;AACA,MAAM,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;AAC7B,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,IAAI,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC;AACrC,QAAQ,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC;AACzB,OAAO;AACP,MAAM,IAAI,OAAO,GAAG,EAAE,CAAC;AACvB,MAAM,OAAO,IAAI,EAAE;AACnB,QAAQ,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACvC,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,MAAM;AACnC;AACA,QAAQ8E,MAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9B,QAAQ,IAAI,CAAC,MAAM,EAAE,MAAM;AAC3B;AACA,QAAQ,IAAI,QAAQ,GAAG9E,UAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE,EAAE,CAAC,SAAS,GAAG,kBAAkB,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;AACvG,OAAO;AACP;AACA,MAAM,IAAI,iBAAiB,GAAG,EAAE,CAAC;AACjC,MAAM,IAAI,kBAAkB,GAAG,CAAC,CAAC;AACjC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAQ,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5B;AACA,QAAQ,IAAI,OAAO,GAAGA,UAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAQ,IAAI,QAAQ,GAAGuE,KAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAChF,QAAQ,IAAI,QAAQ,GAAG,EAAE,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAEO,MAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,QAAQ,IAAI,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;AAC1C,QAAQ,IAAI,iBAAiB,EAAE;AAC/B,UAAU,IAAI,YAAY,GAAGK,QAAM,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACtE,UAAU,IAAI,aAAa,KAAK,SAAS,EAAEL,MAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AAC7E,UAAU,IAAI,WAAW,GAAG9E,UAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;AACnF,SAAS,MAAM;AACf,UAAU,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;AACrG,SAAS;AACT,QAAQ,IAAI,QAAQ,IAAI,kBAAkB,EAAE;AAC5C,UAAU,iBAAiB,IAAI,WAAW,CAAC,CAAC,EAAE,kBAAkB,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC;AAC1F,UAAU,kBAAkB,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;AACzD,SAAS;AACT,OAAO;AACP,MAAM,OAAO,iBAAiB,GAAG,WAAW,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;AACpE,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,EAAE,CAAC,6BAA6B,IAAI,CAAC,gBAAgB,IAAI,4CAA4C,CAAC;;ACvIvG,mBAAe,UAAAmM,KAAK,UAAIA,KAAK,CAAC/C,OAAN,CAAc,0BAAd,EAA0C,MAA1C,CAAJ,EAApB;;AC+BA,IAAMgD,YAAU,GAAG5J,MAAM,CAAC,MAAD,CAAzB;AACA,IAAM6J,iBAAe,GAAG7J,MAAM,CAAC,WAAD,CAA9B;AACA,IAAM8J,WAAW,GAAG9J,MAAM,CAAC,OAAD,CAA1B;;AAEA,IAAMP,cAAc,GAAG1B,MAAM,CAACgM,SAAP,CAAiBtK,cAAxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAIuK,gBAAc,GAAG;AACjBC,EAAAA,aAAa,EAAE,UADE;;AAGjBC,EAAAA,aAAa,EAAE,GAHE;AAIjBC,EAAAA,aAAa,EAAE,IAJE;AAKjBC,EAAAA,KAAK,EAAE,KALU;AAMjBC,EAAAA,cAAc,EAAE,IANC;AAOjBC,EAAAA,sBAAsB,EAAE,IAPP;AAQjBC,EAAAA,mBAAmB,EAAE,KARJ;;AAUjBC,EAAAA,iBAAiB,EAAE,IAVF;AAWjBC,EAAAA,iBAAiB,EAAE,IAXF;;AAajBC,EAAAA,aAAa,EAAE,KAbE;AAcjBC,EAAAA,eAAe,EAAE,GAdA;;AAgBjBC,EAAAA,SAAS,EAAE,OAhBM;AAiBjBC,EAAAA,SAAS,EAAE,OAjBM;;AAmBjBC,EAAAA,EAAE,EAAE,IAnBa,EAArB;;;AAsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;IACMC;;AAEF;AACJ;AACA;AACI,oBAAYC,OAAZ,EAAqB;AACjB,QAAMC,CAAC,sBAAQjB,gBAAR,CAAP;;AAEA,uCAAyBjM,MAAM,CAACmN,OAAP,mBAAgCF,OAAhC,CAAzB,sCAAK,gEAAKG,GAAL,yBAAUxB,KAAV;AACD,UAAIA,KAAK,KAAKyB,SAAd;AACIH,MAAAA,CAAC,CAACE,GAAD,CAAD,GAASxB,KAAT,CAFR;;AAIA,QAAM0B,CAAC,GAAG,KAAKC,EAAL,GAAU;AAChBC,MAAAA,MAAM,EAAE,IADQ;AAEhBC,MAAAA,iBAAiB,EAAE,EAFH;;AAIhBvB,MAAAA,aAAa,EAAEgB,CAAC,CAAChB,aAJD;AAKhBwB,MAAAA,iBAAiB,EAAER,CAAC,CAACQ,iBALL;AAMhBvB,MAAAA,aAAa,EAAEe,CAAC,CAACf,aAND;AAOhBC,MAAAA,aAAa,EAAEc,CAAC,CAACd,aAPD;AAQhBC,MAAAA,KAAK,EAAEa,CAAC,CAACb,KARO;AAShBC,MAAAA,cAAc,EAAEY,CAAC,CAACZ,cATF;AAUhBC,MAAAA,sBAAsB,EAAEW,CAAC,CAACX,sBAVV;AAWhBC,MAAAA,mBAAmB,EAAEU,CAAC,CAACV,mBAXP;AAYhBC,MAAAA,iBAAiB,EAAES,CAAC,CAACT,iBAZL;AAahBC,MAAAA,iBAAiB,EAAEQ,CAAC,CAACR,iBAbL;AAchBC,MAAAA,aAAa,EAAEO,CAAC,CAACP,aAdD;AAehBC,MAAAA,eAAe,EAAEM,CAAC,CAACN,eAfH;AAgBhBC,MAAAA,SAAS,EAAEK,CAAC,CAACL,SAhBG;AAiBhBC,MAAAA,SAAS,EAAEI,CAAC,CAACJ,SAjBG;AAkBhBa,MAAAA,UAAU,EAAET,CAAC,CAACS,UAlBE;AAmBhBC,MAAAA,YAAY,EAAEV,CAAC,CAACU,YAnBA;AAoBhBb,MAAAA,EAAE,EAAEG,CAAC,CAACH,EAAF,IAAQ,IApBI;AAqBhBc,MAAAA,aAAa,EAAE,IArBC;AAsBhBC,MAAAA,IAAI,EAAEA,wBAAI,EAtBM;;AAwBhBC,MAAAA,cAAc,EAAE,CAAC,CAxBD;AAyBhBC,MAAAA,WAAW,EAAE,IAzBG;;AA2BhBC,MAAAA,IAAI,EAAE,IAAIC,iCAAJ,EA3BU,EAApB;;;AA8BA,QAAIC,OAAO,GAAG,CAACb,CAAC,CAACpB,aAAH,CAAd;;AAEA,QAAIoB,CAAC,CAACI,iBAAN,EAAyB;AACrBS,MAAAA,OAAO,GAAGA,OAAO,CAACvJ,MAAR,CAAe0I,CAAC,CAACI,iBAAjB,CAAV;AACH;;AAED,QAAMU,UAAU,GAAG;AACf;AACAC,MAAAA,GAAG,EAAE,SAFU,EAAnB;;;AAKA,QAAIC,EAAE,GAAGpB,CAAC,CAACoB,EAAX;AACA,QAAIA,EAAE,YAAYC,OAAlB,EAA2B;AACvBjB,MAAAA,CAAC,CAACG,iBAAF,GAAsBa,EAAE,CAACE,KAAH,CAASC,OAAT,IAAoB,EAA1C;AACA,uBAAAH,EAAE,CAACI,SAAH,EAAaC,GAAb,yCAAoBR,OAApB;AACAG,MAAAA,EAAE,CAACM,IAAH,GAAU,MAAV;AACAC,MAAAA,eAAW,kCAAiCP,EAAjC,EAAqCF,UAArC,CAAX;AACAd,MAAAA,CAAC,CAACE,MAAF,GAAW,KAAX;AACH,KAND,MAMO;AACHc,MAAAA,EAAE,GAAGQ,iBAAa,CAAC,IAAD,EAAO;AACrBC,QAAAA,KAAK,EAAEZ,OAAO,CAACa,IAAR,CAAa,GAAb,CADc;AAErBJ,QAAAA,IAAI,EAAE,MAFe;AAGrBK,QAAAA,GAAG,EAAEb,UAHgB,EAAP,CAAlB;;AAKH;;AAEDd,IAAAA,CAAC,CAACgB,EAAF,GAAOA,EAAP;;AAEAhB,IAAAA,CAAC,CAAC4B,KAAF,GAAU,EAAV;;AAEA5B,IAAAA,CAAC,CAAC6B,UAAF,GAAe,CAAf,CAnEiB;;AAqEjB7B,IAAAA,CAAC,CAAC8B,YAAF,GAAiB,KAAjB;;AAEA9B,IAAAA,CAAC,CAAC+B,iBAAF,GAAsB,IAAIC,qCAAJ,CAAsB;AACxCC,MAAAA,IAAI,EAAEjC,CAAC,CAACgB,EADgC;AAExCkB,MAAAA,OAAO,EAAE,IAF+B;AAGxCC,MAAAA,MAAM,EAAE,CAHgC;AAIxCC,MAAAA,mBAAmB,EAAExC,CAAC,CAACwC,mBAAF,IAAyB,EAJN;AAKxCC,MAAAA,oBAAoB,EAAE,gCAAM;AACxB,eAAOb,iBAAa,CAAC,IAAD;AAChB;AACIF,UAAAA,IAAI,EAAE,UADV;AAEIgB,UAAAA,QAAQ,EAAEtC,CAAC,CAAClB,aAAF,GAAkB,CAAC,CAAnB,GAAuB,IAFrC,EADgB,CAApB;;;AAMH,OAZuC;AAaxCyD,MAAAA,YAAY,EAAE,sBAACC,MAAD,EAASC,KAAT,EAAmB;AAC7B,YAAIC,IAAJ;;AAEA,2BAAmBD,KAAf,KAA0BhE,WAA9B,EAA2C;AACvCiE,UAAAA,IAAI;AACAC,YAAAA,KAAK,EAAE3C,CAAC,CAAC4C,2BADT;AAEAtE,YAAAA,KAAK,EAAE,SAFP;;AAICC,UAAAA,YAJD;AAKKyB,UAAAA,CAAC,CAACT,SALP,EAKmBS,CAAC,CAAC4C,2BALrB;AAMK5C,UAAAA,CAAC,CAACR,SANP,EAMmB,SANnB,gBAAJ;;;AASAgD,UAAAA,MAAM,CAACK,YAAP,CAAoB,aAApB,EAAmC,MAAnC;AACH,SAXD,MAWO;AACHH,UAAAA,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQa,KAAR,CAAP;AACH;;AAED,YAAI,CAACC,IAAL,EAAW;AACP;AACAI,UAAAA,OAAO,CAACC,IAAR,CAAa,8BAA8BN,KAA9B,GAAsC,qBAAnD;AACH;;AAEDD,QAAAA,MAAM,CAACQ,SAAP,aAAsBhD,CAAC,CAACpB,aAAxB;;AAEA,YAAMwC,SAAS,GAAGoB,MAAM,CAACpB,SAAzB;;AAEA,YAAIpB,CAAC,CAACjB,KAAN,EAAa;AACT,cAAI2D,IAAI,CAACO,QAAT,EAAmB;AACf7B,YAAAA,SAAS,CAACC,GAAV,WAAiBrB,CAAC,CAACpB,aAAnB;AACH,WAFD,MAEO;AACHwC,YAAAA,SAAS,CAACC,GAAV,WAAiBrB,CAAC,CAACpB,aAAnB;;AAEA,gBAAI8D,IAAI,CAACQ,QAAT,EAAmB;AACf9B,cAAAA,SAAS,CAACC,GAAV,WAAiBrB,CAAC,CAACpB,aAAnB;AACH;AACJ;AACJ,SAVD,MAUO;AACHwC,UAAAA,SAAS,CAACC,GAAV,WAAiBrB,CAAC,CAACpB,aAAnB;AACH;;AAED,YAAI8D,IAAI,CAACS,MAAT;AACI/B,QAAAA,SAAS,CAACC,GAAV,WAAiBrB,CAAC,CAACpB,aAAnB;;AAEJ,YAAI8D,IAAI,CAACU,MAAT;AACIhC,QAAAA,SAAS,CAACC,GAAV,WAAiBrB,CAAC,CAACpB,aAAnB;;AAEJ,YAAI8D,IAAI,CAACW,cAAT;AACIjC,QAAAA,SAAS,CAACC,GAAV,WAAiBrB,CAAC,CAACpB,aAAnB;;AAEJ,YAAIoB,CAAC,CAACS,cAAF,KAAqBgC,KAAzB,EAAgC;AAC5BzC,UAAAA,CAAC,CAACU,WAAF,GAAgB8B,MAAhB;AACApB,UAAAA,SAAS,CAACC,GAAV,WAAiBrB,CAAC,CAACpB,aAAnB;AACH;;AAED,QAAA,KAAI,CAAC0E,kBAAL,CAAwBZ,IAAxB,EAA8BF,MAA9B;;AAEAA,QAAAA,MAAM,CAACjE,YAAD,CAAN,GAAqBmE,IAArB;AACH,OAvEuC,EAAtB,CAAtB;;;AA0EA,QAAI,OAAO1C,CAAC,CAACM,YAAT,KAA0B,UAA9B,EAA0C;AACtC,UAAMiD,EAAE,GAAGvD,CAAC,CAACM,YAAb;AACAN,MAAAA,CAAC,CAAC+B,iBAAF,CAAoByB,iBAApB,CAAsC,UAAAxC,EAAE,EAAI;AACxC,YAAI;AACAuC,UAAAA,EAAE,CAACvC,EAAE,CAACzC,YAAD,CAAF,CAAeA,YAAf,CAAD,EAA6ByC,EAA7B,CAAF;AACH,SAFD,CAEE,OAAOyC,GAAP,EAAY,CAAEX,OAAO,CAACY,KAAR,CAAcD,GAAd,EAAqB,CAHG;AAIxC,eAAOzC,EAAE,CAACzC,YAAD,CAAT;;AAEA,YAAIyB,CAAC,CAACU,WAAF,KAAkBM,EAAtB;AACIhB,QAAAA,CAAC,CAACU,WAAF,GAAgB,IAAhB;AACP,OARD;AASH,KAXD,MAWO;AACHV,MAAAA,CAAC,CAAC+B,iBAAF,CAAoByB,iBAApB,CAAsC,UAAAxC,EAAE,EAAI;AACxC,eAAOA,EAAE,CAACzC,YAAD,CAAT;;AAEA,YAAIyB,CAAC,CAACU,WAAF,KAAkBM,EAAtB;AACIhB,QAAAA,CAAC,CAACU,WAAF,GAAgB,IAAhB;AACP,OALD;AAMH;;AAED,QAAIV,CAAC,CAAClB,aAAN,EAAqB;AACjBkC,MAAAA,EAAE,CAACsB,QAAH,GAAc,CAAd;AACH;;AAED,SAAKqB,gBAAL;AACA,SAAKC,gBAAL;AACA,SAAKC,gBAAL;AACA,SAAKC,cAAL;;AAEA,SAAKvD,aAAL,GAAqB,KAArB;AACH;;AAED,uBAAU;AACN,UAAI,KAAK/B,iBAAL,CAAJ;AACI;AACJ,WAAKA,iBAAL,IAAwB,IAAxB;;AAEA,UAAMwB,CAAC,GAAG,KAAKC,EAAf;;AAEA8D,MAAAA,YAAY,CAAC/D,CAAC,CAACgE,SAAH,CAAZ;AACAD,MAAAA,YAAY,CAAC/D,CAAC,CAACiE,WAAH,CAAZ;;AAEAjE,MAAAA,CAAC,CAACW,IAAF,CAAOuD,MAAP;AACAlE,MAAAA,CAAC,CAAC+B,iBAAF,CAAoBoC,OAApB;;AAEA,UAAInE,CAAC,CAACgB,EAAN,EAAU;AACNkD,QAAAA,gBAAM,CAAClE,CAAC,CAACgB,EAAH,CAAN;AACH;;AAED,UAAI,CAAChB,CAAC,CAACE,MAAP,EAAe;AACX,wCAAiBpH,KAAK,CAACsL,IAAN,CAAWpE,CAAC,CAACgB,EAAF,CAAKI,SAAhB,CAAjB,mCAA6C,CAAxC,IAAIiD,IAAI,mBAAR;AACD,cAAIA,IAAI,CAACC,UAAL,CAAgBtE,CAAC,CAACpB,aAAlB,CAAJ,EAAsC;AAClCoB,YAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAe8C,MAAf,CAAsBG,IAAtB;AACH;AACJ;AACDrE,QAAAA,CAAC,CAACgB,EAAF,CAAKuD,eAAL,CAAqB,MAArB;AACA,iCAAgB,CAAC,UAAD,EAAa,MAAb,EAAqB,KAArB,EAA4B,OAA5B,EAAqC,QAArC,EAA+C,SAA/C,CAAhB,4BAA2E,CAAtE,IAAIzE,GAAG,YAAP;AACDE,UAAAA,CAAC,CAACgB,EAAF,CAAKE,KAAL,CAAWpB,GAAX,IAAkB,EAAlB;AACH;AACDE,QAAAA,CAAC,CAACgB,EAAF,CAAKE,KAAL,CAAWC,OAAX,GAAqBnB,CAAC,CAACG,iBAAvB;AACH;;AAED,UAAIH,CAAC,CAACwE,kBAAN,EAA0B;AACtBxE,QAAAA,CAAC,CAACwE,kBAAF,CAAqBpD,SAArB,CAA+B8C,MAA/B;AACWlE,QAAAA,CAAC,CAACpB,aADb;AAEWoB,QAAAA,CAAC,CAACpB,aAFb;AAGWoB,QAAAA,CAAC,CAACpB,aAHb;AAIA,eAAOoB,CAAC,CAACwE,kBAAT;AACH;;AAED,WAAKvE,EAAL,GAAU,IAAV;AACH;;AAED,mBAAS;AACL,aAAO,KAAKA,EAAL,CAAQe,EAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,kCAAqBH,OAArB,EAA8B;AAC1B,UAAMb,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACI,iBAAF,GAAsBS,OAAtB;AACA,WAAK4D,gBAAL;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,0BAAaC,IAAb,EAAmB;AACf,UAAM1E,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACT,SAAF,GAAcmF,IAAd;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,0BAAaA,IAAb,EAAmB;AACf,UAAM1E,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACR,SAAF,GAAckF,IAAd;AACA,aAAO,IAAP;AACH;;AAED,gCAAmB;AACf,UAAM1E,CAAC,GAAG,KAAKC,EAAf,CAAmBe,EAAE,GAAGhB,CAAC,CAACgB,EAA1B;;AAEA,UAAI,CAACA,EAAL;AACI;;AAEJ,UAAIH,OAAO,GAAG,CAACb,CAAC,CAACpB,aAAH,CAAd;;AAEA,UAAIoB,CAAC,CAACI,iBAAN,EAAyB;AACrBS,QAAAA,OAAO,GAAGA,OAAO,CAACvJ,MAAR,CAAe0I,CAAC,CAACI,iBAAjB,CAAV;AACH;;AAEDY,MAAAA,EAAE,CAACgC,SAAH,GAAenC,OAAO,CAACa,IAAR,CAAa,GAAb,CAAf;AACH;;AAED,+BAAkB;AACd,UAAM1B,CAAC,GAAG,KAAKC,EAAf;;AAEA8D,MAAAA,YAAY,CAAC/D,CAAC,CAACgE,SAAH,CAAZ;;AAEA,UAAI,CAAC,KAAKW,cAAL,EAAL,EAA4B;AACxB;AACH;;AAED,UAAIjE,WAAW,GAAGV,CAAC,CAACU,WAApB;AACA,UAAIA,WAAJ,EAAiB;AACbA,QAAAA,WAAW,CAACU,SAAZ,CAAsB8C,MAAtB,WAAgClE,CAAC,CAACpB,aAAlC;AACAoB,QAAAA,CAAC,CAACU,WAAF,GAAgB,IAAhB;AACH;;AAED,UAAMgC,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQ5B,CAAC,CAACS,cAAV,CAAb;AACAT,MAAAA,CAAC,CAACS,cAAF,GAAmB,CAAC,CAApB;;AAEA,UAAI,CAACiC,IAAL;AACI;;AAEJ,WAAKkC,QAAL,CAAc,UAAd,EAA0B,EAAEtG,KAAK,EAAEoE,IAAI,CAACpE,KAAd,EAAqBoE,IAAI,sBAAEA,IAAI,CAACnE,YAAD,CAAN,+DAAsBmE,IAA/C,EAA1B;AACH;;AAED,sBAASmC,KAAT,EAAgB;AACZ,WAAKC,KAAL,CAAW,WAAX,EAAwBD,KAAxB;AACH;;AAED,0BAAaA,KAAb,EAAoB;AAChB,WAAKC,KAAL,CAAW,WAAX,EAAwBD,KAAxB;AACH;;AAED,iCAAoB;AAChB,UAAM7E,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI,KAAK0E,cAAL,MAAyB3E,CAAC,CAACjB,KAA/B,EAAsC;AAClC,YAAI2D,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQ5B,CAAC,CAACS,cAAV,CAAX;AACA,YAAIiC,IAAI,CAACO,QAAL,IAAiBP,IAAI,CAACW,cAA1B,EAA0C,OAAO,IAAP;;AAE1CX,QAAAA,IAAI,CAACQ,QAAL,GAAgB,CAACR,IAAI,CAACQ,QAAtB;AACA,YAAIlD,CAAC,CAACU,WAAN,EAAmB;AACfqE,UAAAA,qBAAW,CAAC/E,CAAC,CAACU,WAAH,YAAmBV,CAAC,CAACpB,aAArB,qBAAoD8D,IAAI,CAACQ,QAAzD,CAAX;AACH;AACD,aAAK0B,QAAL,CAAc,OAAd,EAAuB;AACnBtG,UAAAA,KAAK,EAAEoE,IAAI,CAACpE,KADO;AAEnBoE,UAAAA,IAAI,uBAAEA,IAAI,CAACnE,YAAD,CAAN,iEAAsBmE,IAFP;AAGnBsC,UAAAA,OAAO,EAAEtC,IAAI,CAACQ,QAHK;AAInB+B,UAAAA,OAAO,EAAEvC,IAAI,CAACS,MAJK;AAKnB+B,UAAAA,eAAe,EAAE,KALE,EAAvB;;;AAQA,aAAKC,wBAAL,CAA8BzC,IAA9B;AACH;;AAED,aAAO,IAAP;AACH;;AAED,kCAAqBmC,KAArB,EAA4B;AACxB,UAAM7E,CAAC,GAAG,KAAKC,EAAf;;AAEAD,MAAAA,CAAC,CAACU,WAAF,GAAgBV,CAAC,CAACU,WAAF,IAAiB0E,gBAAY,CAACP,KAAK,CAACQ,MAAP,EAAe,IAAf,EAAqBrF,CAAC,CAACgB,EAAvB,CAA7C;AACAhB,MAAAA,CAAC,CAACS,cAAF,GAAmBT,CAAC,CAAC+B,iBAAF,CAAoBuD,uBAApB,CAA4CtF,CAAC,CAACU,WAA9C,CAAnB;AACA,UAAIV,CAAC,CAACS,cAAF,KAAqBV,SAAzB;AACIC,MAAAA,CAAC,CAACS,cAAF,GAAmB,CAAC,CAApB;;AAEJ,UAAIiC,IAAI,GAAG1C,CAAC,CAACU,WAAF,CAAcnC,YAAd,CAAX;AACA,UAAImE,IAAI,CAACW,cAAT,EAAyB;AACrB,eAAO,KAAP;AACH;;AAED,UAAI,CAACrD,CAAC,CAACjB,KAAP,EAAc;AACV,aAAKwG,wBAAL,CAA8BvF,CAAC,CAACU,WAAhC;AACH;;AAED,WAAKkE,QAAL,CAAc,QAAd,EAAwB,EAAEtG,KAAK,EAAEoE,IAAI,GAAGA,IAAI,CAACpE,KAAR,GAAgByB,SAA7B,EAAwC2C,IAAI,uBAAEA,IAAI,CAACnE,YAAD,CAAN,iEAAsBmE,IAAlE,EAAxB;;AAEA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,qBAAQA,IAAR,EAA4B,KAAd8C,OAAc,uEAAJ,CAAC,CAAG;AACxB,aAAO,KAAKC,QAAL,CAAc,CAAC/C,IAAD,CAAd,EAAsB8C,OAAtB,CAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,sBAASE,UAAT,EAAmC,KAAdF,OAAc,uEAAJ,CAAC,CAAG;AAC/B,UAAMxF,CAAC,GAAG,KAAKC,EAAf,CAAmBV,SAAS,GAAGS,CAAC,CAACT,SAAjC,CAA4CC,SAAS,GAAGQ,CAAC,CAACR,SAA1D;;AAEA,UAAImG,OAAO,GAAG3F,CAAC,CAACjB,KAAhB;AACA,UAAI6C,KAAK,GAAG5B,CAAC,CAAC4B,KAAd;;AAEA,UAAI4D,OAAO,IAAI,IAAX,IAAmBA,OAAO,GAAG,CAA7B,IAAkCA,OAAO,IAAIxF,CAAC,CAAC4B,KAAF,CAAQgE,MAAzD,EAAiE;AAC7DJ,QAAAA,OAAO,GAAG,CAAC,CAAX;AACH;;AAED;AACA,WAAKK,qBAAL,CAA2BjE,KAAK,CAACgE,MAAN,GAAeF,UAAU,CAACE,MAArD;;AAEA,WAAK,IAAIE,CAAC,GAAG,CAAR,EAAWC,KAAK,GAAGL,UAAU,CAACE,MAAnC,EAA2CE,CAAC,GAAGC,KAA/C,EAAsDD,CAAC,EAAvD,EAA2D;AACvD,YAAIE,KAAK,GAAGN,UAAU,CAACI,CAAD,CAAtB;AACA;AACA,YAAIpD,IAAI;AACHnE,QAAAA,YADG,EACUyH,KADV;AAEGA,QAAAA,KAAK,CAACzG,SAAD,CAFR;AAGGyG,QAAAA,KAAK,CAACxG,SAAD,CAHR;AAIM,SAAC,CAACwG,KAAK,CAAC/C,QAJd;AAKY,SAAC,CAAC+C,KAAK,CAAC3C,cALpB,UAAR;;;AAQA,YAAIsC,OAAJ,EAAa;AACTjD,UAAAA,IAAI,CAACQ,QAAL,GAAgB,CAAC,CAAC8C,KAAK,CAAC9C,QAAxB;AACH;;AAED,YAAI8C,KAAK,CAAC7C,MAAV,EAAkB;AACdT,UAAAA,IAAI,CAACS,MAAL,GAAc,IAAd;AACAnD,UAAAA,CAAC,CAAC6B,UAAF;AACH;;AAED,YAAImE,KAAK,CAAC5C,MAAV,EAAkB;AACd;AACA;AACA;AACAV,UAAAA,IAAI,CAACU,MAAL,GAAc,IAAd;AACH;;AAED;AACA,YAAIoC,OAAO,KAAK,CAAC,CAAjB,EAAoB;AAChB5D,UAAAA,KAAK,CAACqE,MAAN,CAAaT,OAAb,EAAsB,CAAtB,EAAyB9C,IAAzB;AACH,SAFD,MAEO;AACHd,UAAAA,KAAK,CAAC3K,IAAN,CAAWyL,IAAX;AACH;;AAED,YAAI8C,OAAO,KAAK,CAAC,CAAjB,EAAoB;AAChBA,UAAAA,OAAO;AACV;AACJ;;AAEDxF,MAAAA,CAAC,CAAC+B,iBAAF;AACKmE,MAAAA,UADL,CACgBR,UAAU,CAACE,MAD3B,EACmCJ,OAAO,KAAK,CAAC,CAAb,GAAiBA,OAAjB,GAA4BA,OAAO,GAAGE,UAAU,CAACE,MADpF;AAEKO,MAAAA,MAFL;;AAIA,aAAO,IAAP;AACH;;AAED,+BAAkB7H,KAAlB,EAAyB8H,OAAzB,EAAkC;AAC9B,UAAMpG,CAAC,GAAG,KAAKC,EAAf;;AAEA;AACA,UAAIoG,SAAS,GAAG,KAAKC,gBAAL,CAAsBhI,KAAtB,CAAhB;AACA,UAAI+H,SAAS,GAAG,CAAC,CAAjB,EAAoB,OAAO,IAAP;;AAEpB,UAAI3D,IAAI,GAAG,KAAK6D,WAAL,CAAiBF,SAAjB,CAAX;AACA3D,MAAAA,IAAI,CAACnE,YAAD,CAAJ,GAAmB6H,OAAnB;;AAEA,UAAIhS,cAAc,CAACxC,IAAf,CAAoBwU,OAApB,EAA6BpG,CAAC,CAACT,SAA/B,CAAJ;AACImD,MAAAA,IAAI,CAACC,KAAL,GAAayD,OAAO,CAACpG,CAAC,CAACT,SAAH,CAApB;;AAEJ,UAAInL,cAAc,CAACxC,IAAf,CAAoBwU,OAApB,EAA6BpG,CAAC,CAACR,SAA/B,CAAJ;AACIkD,MAAAA,IAAI,CAACpE,KAAL,GAAa8H,OAAO,CAACpG,CAAC,CAACR,SAAH,CAApB;;AAEJ,UAAIpL,cAAc,CAACxC,IAAf,CAAoBwU,OAApB,EAA6B,UAA7B,CAAJ;AACI1D,MAAAA,IAAI,CAACO,QAAL,GAAgB,CAAC,CAACmD,OAAO,CAACnD,QAA1B;;AAEJ,UAAI7O,cAAc,CAACxC,IAAf,CAAoBwU,OAApB,EAA6B,gBAA7B,CAAJ;AACI1D,MAAAA,IAAI,CAACW,cAAL,GAAsB,CAAC,CAAC+C,OAAO,CAAC/C,cAAhC;;AAEJ,UAAIrD,CAAC,CAACjB,KAAN,EAAa;AACT,YAAI3K,cAAc,CAACxC,IAAf,CAAoBwU,OAApB,EAA6B,UAA7B,CAAJ;AACI1D,QAAAA,IAAI,CAACQ,QAAL,GAAgB,CAAC,CAACkD,OAAO,CAAClD,QAA1B;AACP;;AAED,UAAI9O,cAAc,CAACxC,IAAf,CAAoBwU,OAApB,EAA6B,QAA7B,CAAJ,EAA4C;AACxC,YAAI,CAAC,CAACA,OAAO,CAACjD,MAAV,KAAqBT,IAAI,CAACS,MAA9B,EAAsC;AAClC,cAAIT,IAAI,CAACS,MAAT;AACInD,UAAAA,CAAC,CAAC6B,UAAF,GADJ;AAEK7B,UAAAA,CAAC,CAAC6B,UAAF;;AAELuE,UAAAA,OAAO,CAACjD,MAAR,GAAiB,CAAC,CAACT,IAAI,CAACS,MAAxB;AACH;AACJ;;AAED,UAAI/O,cAAc,CAACxC,IAAf,CAAoBwU,OAApB,EAA6B,QAA7B,CAAJ;AACI1D,MAAAA,IAAI,CAACU,MAAL,GAAc,CAAC,CAACgD,OAAO,CAAChD,MAAxB;;AAEJ,UAAIpD,CAAC,CAAC+B,iBAAF,CAAoByE,cAApB,CAAmCH,SAAnC,CAAJ,EAAmD;AAC/CrG,QAAAA,CAAC,CAAC+B,iBAAF;AACK0E,QAAAA,aADL,CACmBJ,SADnB;AAEKF,QAAAA,MAFL;AAGH;;AAED,aAAO,IAAP;AACH;;AAED,wBAAW7H,KAAX,EAAkBqE,KAAlB,EAAyB;AACrB,UAAM3C,CAAC,GAAG,KAAKC,EAAf;;AAEA;AACA,UAAIoG,SAAS,GAAG,KAAKK,uBAAL,CAA6BpI,KAA7B,EAAoCqE,KAApC,CAAhB;AACA,UAAI0D,SAAS,GAAG,CAAC,CAAjB,EAAoB,OAAO,IAAP;;AAEpB,UAAIM,OAAO,GAAG3G,CAAC,CAAC4B,KAAF,CAAQqE,MAAR,CAAeI,SAAf,EAA0B,CAA1B,CAAd;AACA,UAAIM,OAAO,CAAC,CAAD,CAAP,CAAWxD,MAAf,EAAuB;AACnBnD,QAAAA,CAAC,CAAC6B,UAAF;AACH;;AAED7B,MAAAA,CAAC,CAAC+B,iBAAF;AACK6E,MAAAA,aADL,CACmBP,SADnB,EAC8B,CAD9B;AAEKF,MAAAA,MAFL;;AAIA,aAAO,IAAP;AACH;;AAED,8BAAiB;AACb,UAAMnG,CAAC,GAAG,KAAKC,EAAf;;AAEAD,MAAAA,CAAC,CAAC4B,KAAF,CAAQgE,MAAR,GAAiB,CAAjB;AACA5F,MAAAA,CAAC,CAAC6B,UAAF,GAAe,CAAf;;AAEA7B,MAAAA,CAAC,CAAC+B,iBAAF;AACK8E,MAAAA,QADL,CACc,CADd;AAEKV,MAAAA,MAFL;;AAIA,aAAO,IAAP;AACH;;AAED,6BAAgB7H,KAAhB,EAAuB;AACnB,UAAM0B,CAAC,GAAG,KAAKC,EAAf;;AAEA,WAAK,IAAI6F,CAAC,GAAG,CAAR,EAAWC,KAAK,GAAG/F,CAAC,CAAC4B,KAAF,CAAQgE,MAAhC,EAAwCE,CAAC,GAAGC,KAA5C,EAAmDD,CAAC,EAApD,EAAwD;AACpD,YAAIpD,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQkE,CAAR,CAAX;AACA,YAAIpD,IAAI,CAACpE,KAAL,KAAeA,KAAnB,EAA0B;AACtB,iBAAOoE,IAAI,CAACnE,YAAD,CAAX;AACH;AACJ;;AAED,aAAO,IAAP;AACH;;AAED,8BAAiBD,KAAjB,EAAwB;AACpB,UAAM0B,CAAC,GAAG,KAAKC,EAAf;;AAEA,WAAK,IAAI6F,CAAC,GAAG,CAAR,EAAWC,KAAK,GAAG/F,CAAC,CAAC4B,KAAF,CAAQgE,MAAhC,EAAwCE,CAAC,GAAGC,KAA5C,EAAmDD,CAAC,EAApD,EAAwD;AACpD,YAAIpD,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQkE,CAAR,CAAX;AACA,YAAIpD,IAAI,CAACpE,KAAL,KAAeA,KAAnB,EAA0B;AACtB,iBAAOwH,CAAP;AACH;AACJ;;AAED,aAAO,CAAC,CAAR;AACH;;AAED,qCAAwBxH,KAAxB,EAA+BqE,KAA/B,EAAsC;AAClC,UAAM3C,CAAC,GAAG,KAAKC,EAAf;;AAEA,WAAK,IAAI6F,CAAC,GAAG,CAAR,EAAWC,KAAK,GAAG/F,CAAC,CAAC4B,KAAF,CAAQgE,MAAhC,EAAwCE,CAAC,GAAGC,KAA5C,EAAmDD,CAAC,EAApD,EAAwD;AACpD,YAAIpD,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQkE,CAAR,CAAX;AACA,YAAIpD,IAAI,CAACpE,KAAL,KAAeA,KAAf,IAAwBoE,IAAI,CAACC,KAAL,KAAeA,KAA3C,EAAkD;AAC9C,iBAAOmD,CAAP;AACH;AACJ;;AAED,aAAO,CAAC,CAAR;AACH;;AAED,qBAAQ;AACJ,aAAO,KAAK7F,EAAL,CAAQ2B,KAAR,CAAckF,GAAd,CAAkB,UAAAC,CAAC,UAAIA,CAAC,CAACxI,YAAD,CAAL,EAAnB,CAAP;AACH;;AAED,8BAAiB;AACb,aAAO,KAAK0B,EAAL,CAAQ2B,KAAf;AACH;;AAED,yBAAY;AACR,aAAO,KAAK3B,EAAL,CAAQ2B,KAAR,CAAcgE,MAArB;AACH;;AAED,yBAAYnD,KAAZ,EAAmB;AACf,qCAAO,KAAKxC,EAAL,CAAQ2B,KAAR,CAAca,KAAd,CAAP,yDAAO,qBAAuBlE,YAAvB,CAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,sBAASyI,eAAT,EAA0B;AACtB,UAAMhH,CAAC,GAAG,KAAKC,EAAf,CAAmBe,EAAE,GAAGhB,CAAC,CAACgB,EAA1B;;AAEA,UAAI,CAAC,KAAKiG,SAAL,EAAL,EAAuB,OAAO,IAAP;;AAEvB,UAAIC,CAAC,GAAGC,MAAR;;AAEA,UAAIC,SAAS,GAAG,EAAhB;;AAEA,UAAIC,MAAM,GAAGL,eAAe,CAACM,YAAhB,IAAgCC,oBAAgB,CAACP,eAAe,CAAC3B,MAAjB,CAA7D;AACA+B,MAAAA,SAAS,CAACI,IAAV,GAAiBH,MAAM,CAACG,IAAxB;AACAJ,MAAAA,SAAS,CAACrG,GAAV,GAAgBsG,MAAM,CAACtG,GAAvB;AACAqG,MAAAA,SAAS,CAACK,MAAV,GAAmBT,eAAe,CAACU,YAAhB,IAAgC,IAAhC;AACbC,MAAAA,oBAAgB,CAACX,eAAe,CAAC3B,MAAjB,EAAyB,IAAzB,EAA+B,IAA/B,CADH;AAEb2B,MAAAA,eAAe,CAACU,YAFtB;AAGAN,MAAAA,SAAS,CAACQ,KAAV,GAAkBZ,eAAe,CAACa,WAAhB,IAA+B,IAA/B;AACZC,MAAAA,mBAAe,CAACd,eAAe,CAAC3B,MAAjB,EAAyB,IAAzB,EAA+B,IAA/B,CADH;AAEZ2B,MAAAA,eAAe,CAACa,WAFtB;AAGAT,MAAAA,SAAS,CAACW,MAAV,GAAmBX,SAAS,CAACrG,GAAV,GAAgBqG,SAAS,CAACK,MAA7C;;AAEA,UAAIO,QAAQ,GAAG,EAAf;AACAA,MAAAA,QAAQ,CAACjH,GAAT,GAAemG,CAAC,CAACe,WAAjB;AACAD,MAAAA,QAAQ,CAACR,IAAT,GAAgBN,CAAC,CAACgB,WAAlB;AACAF,MAAAA,QAAQ,CAACJ,KAAT,GAAiBV,CAAC,CAACiB,UAAnB;AACAH,MAAAA,QAAQ,CAACP,MAAT,GAAkBP,CAAC,CAACkB,WAApB;AACAJ,MAAAA,QAAQ,CAACD,MAAT,GAAkBC,QAAQ,CAACjH,GAAT,GAAeiH,QAAQ,CAACP,MAA1C;AACAO,MAAAA,QAAQ,CAACK,KAAT,GAAiBL,QAAQ,CAACR,IAAT,GAAgBQ,QAAQ,CAACJ,KAA1C;;AAEA,UAAIU,wBAAwB,GAAItB,eAAe,CAACuB,QAAhB,IAA4BvB,eAAe,CAACuB,QAAhB,CAAyBC,CAAzB,KAA+B,QAA5D;AACzB,aADyB;AAEzB,aAFN;;AAIA;AACAxH,MAAAA,EAAE,CAACE,KAAH,CAAS0G,KAAT,GAAiB,EAAjB;;AAEA;AACA,UAAI5H,CAAC,CAACX,aAAF;AACAW,MAAAA,CAAC,CAAC+B,iBAAF,CAAoB0G,SAApB,EADJ,EACqC;AACjC,aAAKC,YAAL;AACH;;AAED;AACA,UAAI1I,CAAC,CAAC+B,iBAAF,CAAoB0G,SAApB,EAAJ,EAAqC;AACjCzI,QAAAA,CAAC,CAAC+B,iBAAF,CAAoBoE,MAApB;AACH;;AAED;AACA,UAAIa,eAAe,CAAC2B,WAApB,EAAiC;AAC7B,aAAKC,YAAL,CAAkB5B,eAAlB;AACH;;AAED;AACA,UAAI6B,SAAS,GAAGzB,SAAS,CAACrG,GAAV,GAAgBiH,QAAQ,CAACjH,GAAzC;AACA,UAAI+H,SAAS,GAAGd,QAAQ,CAACD,MAAT,GAAkBX,SAAS,CAACW,MAA5C;;AAEA;;AAEA,UAAIgB,aAAJ;;AAEA,UAAMC,eAAe,GAAGC,gBAAgB,CAACjI,EAAD,CAAxC;;AAEA,UAAIkI,QAAQ,GAAGF,eAAe,CAACG,SAAhB,KAA8B,YAA7C;AACA,UAAIC,eAAe,GAAG,CAACC,UAAU,CAACL,eAAe,CAACM,UAAjB,CAAV,IAA0C,CAA3C;AACjBD,MAAAA,UAAU,CAACL,eAAe,CAACO,aAAjB,CAAV,IAA6C,CAD5B,CAAtB;AAEA,UAAIC,mBAAmB,GAAG,CAACH,UAAU,CAACL,eAAe,CAACS,cAAjB,CAAV,IAA8C,CAA/C;AACrBJ,MAAAA,UAAU,CAACL,eAAe,CAACU,iBAAjB,CAAV,IAAiD,CAD5B,CAA1B;;AAGA,UAAI1J,CAAC,CAAC+B,iBAAF,CAAoB0G,SAApB,EAAJ,EAAqC;AACjCM,QAAAA,aAAa;AACT/I,QAAAA,CAAC,CAAC+B,iBAAF,CAAoB4H,kBAApB;AACAP,QAAAA,eADA;AAEAI,QAAAA,mBAHJ;AAIH,OALD,MAKO;AACH;AACA;AACAxI,QAAAA,EAAE,CAACE,KAAH,CAASuG,MAAT,GAAkB,EAAlB;AACAzG,QAAAA,EAAE,CAACE,KAAH,CAASH,GAAT,GAAe,SAAf;;AAEAgI,QAAAA,aAAa,GAAGa,IAAI,CAAClT,GAAL,CAASiR,oBAAgB,CAAC3H,CAAC,CAACgB,EAAH,CAAzB,EAAiCA,EAAE,CAAC6I,YAApC,CAAhB;AACAd,QAAAA,aAAa,IAAIK,eAAe,GAAGI,mBAAnC;AACH;;AAED;;AAEA,UAAIM,SAAS,GAAGT,UAAU,CAACL,eAAe,CAACc,SAAjB,CAA1B;AACA,UAAI,CAACC,KAAK,CAACD,SAAD,CAAV,EAAuB;AACnB,YAAI,CAACZ,QAAL,EAAe;AACXY,UAAAA,SAAS,IAAIV,eAAe,GAAGI,mBAA/B;AACH;;AAEDT,QAAAA,aAAa,GAAGa,IAAI,CAACjT,GAAL,CAASoS,aAAT,EAAwBe,SAAxB,CAAhB;AACH;;AAED;;AAEA,UAAIE,eAAe,GAAGnB,SAAS,IAAIE,aAAnC;AACA,UAAIkB,eAAe,GAAGnB,SAAS,IAAIC,aAAnC;;AAEA,UAAImB,YAAY,GAAGlK,CAAC,CAACmK,gBAAF,IAAsB7B,wBAAzC;AACA,UAAI4B,YAAY,KAAK,OAAjB,IAA4B,CAACF,eAA7B,IAAgDC,eAApD,EAAqE;AACjEC,QAAAA,YAAY,GAAG,OAAf;AACH,OAFD,MAEO,IAAIA,YAAY,KAAK,OAAjB,IAA4B,CAACD,eAA7B,IAAgDD,eAApD,EAAqE;AACxEE,QAAAA,YAAY,GAAG,OAAf;AACH,OAFM,MAEA,IAAIF,eAAe,IAAIC,eAAvB,EAAwC;AAC3C,YAAIC,YAAY,KAAK5B,wBAAjB;AACEA,QAAAA,wBAAwB,KAAK,OAA7B,IAAwCO,SAAS,IAAIC,SAAtD;AACIR,QAAAA,wBAAwB,KAAK,OAA7B,IAAwCQ,SAAS,IAAID,SAF1D,CAAJ,EAE2E;AACvEqB,UAAAA,YAAY,GAAG5B,wBAAf;AACH;AACJ,OANM,MAMA,IAAI,CAAC0B,eAAD,IAAoB,CAACC,eAAzB,EAA0C;AAC7C,YAAIpB,SAAS,GAAGC,SAAhB,EAA2B;AACvBoB,UAAAA,YAAY,GAAG,OAAf;AACH,SAFD,MAEO,IAAIpB,SAAS,GAAGD,SAAhB,EAA2B;AAC9BqB,UAAAA,YAAY,GAAG,OAAf;AACH;AACJ;AACDlK,MAAAA,CAAC,CAACmK,gBAAF,GAAqBD,YAArB;;AAEA;AACA,UAAIE,QAAQ,GAAG;AACXxC,QAAAA,KAAK,EAAEE,mBAAe,CAAC9G,EAAD,EAAK,IAAL,EAAW,IAAX,CADX;AAEXyG,QAAAA,MAAM,EAAEmC,IAAI,CAACjT,GAAL,CAASoS,aAAT,EAAwBa,IAAI,CAAClT,GAAL,CAASmS,SAAT,EAAoBC,SAApB,EAA+B,CAA/B,CAAxB,CAFG,EAAf;;;AAKA,UAAIuB,WAAW,GAAGrD,eAAe,CAACsD,SAAhB,KAA8BvK,SAA9B;AACdiH,MAAAA,eAAe,CAACsD,SADF;AAEbtD,MAAAA,eAAe,CAAC3B,MAAhB,IAA0B,IAA1B,GAAiC,KAAjC,GAAyC4D,gBAAgB,CAACjC,eAAe,CAAC3B,MAAjB,CAAhB,CAAyCkF,SAAzC,KAAuD,KAFrG;AAGA,UAAIC,aAAa,GAAGvB,gBAAgB,CAAChU,QAAQ,CAACwV,eAAV,CAAhB,CAA2CF,SAA3C,KAAyD,KAA7E;;AAEA,UAAIG,MAAM,GAAGC,oBAAgB,CAAC3D,eAAe,CAAC3B,MAAjB;AACzB2B,MAAAA,eAAe,CAAC0D,MAAhB,GAAyB1D,eAAe,CAAC0D,MAAhB,CAAuB3D,CAAhD,GAAoD,OAD3B;AAEzBC,MAAAA,eAAe,CAAC0D,MAAhB,GAAyB1D,eAAe,CAAC0D,MAAhB,CAAuBlC,CAAhD,GAAoD,QAF3B;AAGzBpB,MAAAA,SAHyB,EAGdiD,WAHc,CAA7B;AAIA,UAAI9B,QAAQ,GAAGoC,oBAAgB,CAAC3J,EAAD;AAC3BgG,MAAAA,eAAe,CAACuB,QAAhB,GAA2BvB,eAAe,CAACuB,QAAhB,CAAyBxB,CAApD,GAAwD,OAD7B;AAE3BC,MAAAA,eAAe,CAACuB,QAAhB,GAA2BvB,eAAe,CAACuB,QAAhB,CAAyBC,CAApD,GAAwD,KAF7B;AAG3B4B,MAAAA,QAH2B,EAGjBC,WAHiB,CAA/B;;AAKA;AACA,UAAIO,UAAU;AACTrC,MAAAA,QAAQ,CAACsC,KAAT,KAAmB,KAAnB,IAA4BX,YAAY,KAAK,OAA9C;AACC3B,MAAAA,QAAQ,CAACsC,KAAT,KAAmB,QAAnB,IAA+BX,YAAY,KAAK,OADjD;AAEC3B,MAAAA,QAAQ,CAACsC,KAAT,KAAmB,QAAnB,IAA+BtC,QAAQ,CAACsC,KAAT,KAAmB,KAAlD,IAA2DX,YAAY,KAAK,OAHjF;;AAKA,UAAIY,UAAU;AACT5D,MAAAA,CAAC,CAACgB,WAAF,KAAkBnI,SAAnB;AACImH,MAAAA,CAAC,CAACgB,WADN;AAEI,OAACjT,QAAQ,CAACwV,eAAT,IAA4BxV,QAAQ,CAAC8V,IAAT,CAAcC,UAA1C,IAAwD/V,QAAQ,CAAC8V,IAAlE,EAAwED,UAHhF;AAIAA,MAAAA,UAAU,GAAGlB,IAAI,CAACqB,GAAL,CAASH,UAAT,CAAb;AACA,UAAIN,aAAJ,EAAmB;AACfM,QAAAA,UAAU,GAAG7V,QAAQ,CAACwV,eAAT,CAAyBS,WAAzB,GAAuCJ,UAAvC,GAAoD7V,QAAQ,CAACwV,eAAT,CAAyBU,WAA1F;AACH;;AAED,UAAIC,IAAI,GAAGN,UAAX;AACIO,MAAAA,IAAI,GAAGpW,QAAQ,CAACwV,eAAT,CAAyBU,WAAzB,GAAuCL,UAAvC,GAAoDV,QAAQ,CAACxC,KADxE;;AAGA,UAAI0D,OAAO,GAAG;AACV,oBAAY,UADF;AAEV,gBAAQlE,SAAS,CAACI,IAFR;AAGV,eAAOJ,SAAS,CAACrG,GAAV,IAAiB6J,UAAU,GAAIF,MAAM,CAAC3C,MAAP,GAAgBQ,QAAQ,CAACR,MAA7B,GAAwC2C,MAAM,CAAC3J,GAAP,GAAawH,QAAQ,CAACxH,GAAzF,CAHG,EAAd;;;AAMA,UAAIyJ,aAAJ,EAAmB;AACfc,QAAAA,OAAO,CAAC9D,IAAR,IAAgBvS,QAAQ,CAACwV,eAAT,CAAyBU,WAAzB,GAAuClW,QAAQ,CAACwV,eAAT,CAAyBS,WAAhF;AACH;;AAEDI,MAAAA,OAAO,CAAC9D,IAAR,IAAgBkD,MAAM,CAAClD,IAAP,GAAce,QAAQ,CAACf,IAAvC;;AAEA,UAAIR,eAAe,CAACK,MAApB,EAA4B;AACxB,YAAIL,eAAe,CAACK,MAAhB,CAAuBmB,CAA3B,EAA8B;AAC1B,cAAIoC,UAAJ,EAAgB;AACZU,YAAAA,OAAO,CAACvK,GAAR,IAAeiG,eAAe,CAACK,MAAhB,CAAuBmB,CAAtC;AACH,WAFD,MAEO;AACH8C,YAAAA,OAAO,CAACvK,GAAR,IAAeiG,eAAe,CAACK,MAAhB,CAAuBmB,CAAtC;AACH;AACJ;;AAED,YAAIxB,eAAe,CAACK,MAAhB,CAAuBN,CAA3B,EAA8B;AAC1B,cAAIwE,GAAG,GAAGvC,eAAe,CAACuB,SAAhB,KAA8B,KAAxC;AACAe,UAAAA,OAAO,CAAC9D,IAAR,IAAgB+D,GAAG;AACb,WAACvE,eAAe,CAACK,MAAhB,CAAuBN,CADX;AAEbC,UAAAA,eAAe,CAACK,MAAhB,CAAuBN,CAF7B;AAGH;AACJ;;AAED,UAAI/G,CAAC,CAACZ,iBAAN,EAAyB;AACrB,YAAKmJ,QAAQ,CAACiD,KAAT,KAAmB,OAAnB;AACDF,QAAAA,OAAO,CAAC9D,IAAR,GAAe4D,IADd;AAED,SAACxB,IAAI,CAAClT,GAAL,CAAS4U,OAAO,CAAC9D,IAAjB,EAAuB4D,IAAvB,IAA+BhB,QAAQ,CAACxC,KAAxC,GAAgDR,SAAS,CAACI,IAA3D,IAAmEJ,SAAS,CAACQ,KAA7E,GAAqF,GAFrF;AAGCW,QAAAA,QAAQ,CAACiD,KAAT,KAAmB,MAAnB;AACGF,QAAAA,OAAO,CAAC9D,IAAR,GAAe6D,IADlB;AAEG,SAACzB,IAAI,CAACjT,GAAL,CAAS2U,OAAO,CAAC9D,IAAjB,EAAuB6D,IAAvB,IAA+BjE,SAAS,CAACI,IAA1C,IAAkDJ,SAAS,CAACQ,KAA5D,GAAoE,GAL5E,EAKkF;AAC9E0D,UAAAA,OAAO,CAAC9D,IAAR,IAAgBkD,MAAM,CAAClD,IAAP,GAAce,QAAQ,CAACf,IAAvC;AACA8D,UAAAA,OAAO,CAAC9D,IAAR,IAAgBkD,MAAM,CAACrC,KAAP,GAAeE,QAAQ,CAACF,KAAxC;AACH;AACJ;;AAED;AACA,UAAIrI,CAAC,CAACb,iBAAN,EAAyB;AACrB,kCAAmBqL,aAAa,GAAG,CAAC,KAAD,EAAQ,KAAR,CAAH,GAAoB,CAAC,KAAD,EAAQ,KAAR,CAApD,6BAAqE,CAAhE,IAAIiB,KAAK,aAAT;AACD,cAAIA,KAAK,KAAK,KAAV,IAAmBH,OAAO,CAAC9D,IAAR,GAAe4D,IAAtC;AACIE,UAAAA,OAAO,CAAC9D,IAAR,GAAe4D,IAAf,CADJ;AAEK,cAAIK,KAAK,KAAK,KAAV,IAAmBH,OAAO,CAAC9D,IAAR,GAAe6D,IAAtC;AACDC,UAAAA,OAAO,CAAC9D,IAAR,GAAe6D,IAAf;AACP;AACJ;;AAED;AACAC,MAAAA,OAAO,CAAC9D,IAAR,IAAgB,IAAhB;AACA8D,MAAAA,OAAO,CAACvK,GAAR,IAAe,IAAf;AACAQ,MAAAA,eAAW,CAACP,EAAD,EAAKsK,OAAL,CAAX;AACAI,MAAAA,oBAAgB,CAAC1K,EAAD,EAAKoJ,QAAQ,CAAC3C,MAAd,EAAsB,IAAtB,EAA4B,IAA5B,CAAhB;;AAEA;AACAzH,MAAAA,CAAC,CAAC+B,iBAAF,CAAoBoE,MAApB;;AAEA;AACA,UAAIa,eAAe,IAAIA,eAAe,CAAC3B,MAAvC,EAA+C;AAC3CrF,QAAAA,CAAC,CAACwE,kBAAF,GAAuBwC,eAAe,CAAC3B,MAAvC;;AAEAN,QAAAA,qBAAW,CAACiC,eAAe,CAAC3B,MAAjB,gBAAgCrF,CAAC,CAACpB,aAAlC,GAAmD,IAAnD,CAAX;AACAmG,QAAAA,qBAAW,CAACiC,eAAe,CAAC3B,MAAjB,gBAAgCrF,CAAC,CAACpB,aAAlC,aAAyDsL,YAAY,KAAK,OAA1E,CAAX;AACAnF,QAAAA,qBAAW,CAACiC,eAAe,CAAC3B,MAAjB,gBAAgCrF,CAAC,CAACpB,aAAlC,aAAyDsL,YAAY,KAAK,OAA1E,CAAX;;AAEAnF,QAAAA,qBAAW,CAAC/D,EAAD,YAAQhB,CAAC,CAACpB,aAAV,iBAAqCsL,YAAY,KAAK,OAAtD,CAAX;AACAnF,QAAAA,qBAAW,CAAC/D,EAAD,YAAQhB,CAAC,CAACpB,aAAV,iBAAqCsL,YAAY,KAAK,OAAtD,CAAX;AACH;;AAED,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACI,4BAAe5L,KAAf,EAAsB0G,OAAtB,EAA+B;AAC3B,UAAMhF,CAAC,GAAG,KAAKC,EAAf;;AAEA+E,MAAAA,OAAO,GAAG,CAAC,CAACA,OAAZ;;AAEA,UAAIvC,KAAK,GAAG,KAAK6D,gBAAL,CAAsBhI,KAAtB,CAAZ;AACA,UAAImE,KAAK,KAAK,CAAC,CAAf,EAAkB,OAAO,IAAP;;AAElB,UAAIkJ,EAAE,GAAG3L,CAAC,CAAC+B,iBAAF,CAAoB6J,gBAApB,CAAqCnJ,KAArC,CAAT;AACA,UAAI,CAACkJ,EAAL,EAAS,OAAO,IAAP;;AAET,UAAIjJ,IAAI,GAAGiJ,EAAE,CAACpN,YAAD,CAAb;;AAEAyG,MAAAA,OAAO,GAAGA,OAAO,IAAI,CAACtC,IAAI,CAACO,QAA3B;;AAEA,UAAIP,IAAI,CAACQ,QAAL,KAAkB8B,OAAtB,EAA+B;AAC3BtC,QAAAA,IAAI,CAACQ,QAAL,GAAgB8B,OAAhB;;AAEAD,QAAAA,qBAAW,CAAC4G,EAAD,YAAQ3L,CAAC,CAACpB,aAAV,qBAAyC8D,IAAI,CAACQ,QAA9C,CAAX;;AAEA,aAAKiC,wBAAL,CAA8BzC,IAA9B;AACH;;AAED,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,8BAAiBmJ,MAAjB,EAAyB;AACrB,UAAM7L,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI6L,YAAY,GAAG,EAAnB;;AAEA,WAAK,IAAIhG,CAAC,GAAG,CAAR,EAAWC,KAAK,GAAG/F,CAAC,CAAC4B,KAAF,CAAQgE,MAAhC,EAAwCE,CAAC,GAAGC,KAA5C,EAAmDD,CAAC,EAApD,EAAwD;AACpD,YAAIpD,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQkE,CAAR,CAAX;AACA,YAAId,OAAO,GAAG,CAACtC,IAAI,CAACO,QAAN,IAAkB4I,MAAM,CAAC7U,OAAP,CAAe0L,IAAI,CAACpE,KAApB,MAA+B,CAAC,CAAhE;;AAEA,YAAIoE,IAAI,CAACS,MAAT,EAAiB;AACb2I,UAAAA,YAAY,CAAC7U,IAAb,CAAkB6O,CAAlB;AACH;;AAED,YAAIpD,IAAI,CAACQ,QAAL,KAAkB8B,OAAtB,EAA+B;;AAE/BtC,QAAAA,IAAI,CAACQ,QAAL,GAAgB8B,OAAhB;;AAEA,YAAI2G,EAAE,GAAG3L,CAAC,CAAC+B,iBAAF,CAAoB6J,gBAApB,CAAqC9F,CAArC,CAAT;AACA,YAAI,CAAC6F,EAAL,EAAS;;AAET5G,QAAAA,qBAAW,CAAC4G,EAAD,YAAQ3L,CAAC,CAACpB,aAAV,qBAAyC8D,IAAI,CAACQ,QAA9C,CAAX;AACH;;AAED,UAAIlD,CAAC,CAACf,sBAAN,EAA8B;AAC1B,aAAK,IAAI6G,GAAC,GAAG,CAAR,EAAWC,MAAK,GAAG+F,YAAY,CAAClG,MAArC,EAA6CE,GAAC,GAAGC,MAAjD,EAAwDD,GAAC,EAAzD,EAA6D;AACzD,eAAKiG,wBAAL,CAA8BD,YAAY,CAAChG,GAAD,CAA1C,EAA+C,KAA/C;AACH;AACJ;;AAED,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,8BAAiBkG,aAAjB,EAAgC;AAC5B,UAAMhM,CAAC,GAAG,KAAKC,EAAf;;AAEA+L,MAAAA,aAAa,GAAGA,aAAa,IAAIhM,CAAC,CAAC6B,UAAF,GAAe,CAAhD;;AAEA,UAAIgK,MAAM,GAAG,EAAb;;AAEA,WAAK,IAAI/F,CAAC,GAAG,CAAR,EAAWC,KAAK,GAAG/F,CAAC,CAAC4B,KAAF,CAAQgE,MAAhC,EAAwCE,CAAC,GAAGC,KAA5C,EAAmDD,CAAC,EAApD,EAAwD;AACpD,YAAIpD,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQkE,CAAR,CAAX;AACA,YAAI,CAACpD,IAAI,CAACQ,QAAV,EAAoB;AACpB,YAAI8I,aAAa,IAAItJ,IAAI,CAACS,MAA1B,EAAkC;AAClC0I,QAAAA,MAAM,CAAC5U,IAAP,CAAYyL,IAAI,CAACpE,KAAjB;AACH;;AAED,aAAOuN,MAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,6BAAgBG,aAAhB,EAA+B;AAC3B,UAAMhM,CAAC,GAAG,KAAKC,EAAf;;AAEA+L,MAAAA,aAAa,GAAGA,aAAa,IAAIhM,CAAC,CAAC6B,UAAF,GAAe,CAAhD;;AAEA,UAAID,KAAK,GAAG,EAAZ;;AAEA,WAAK,IAAIkE,CAAC,GAAG,CAAR,EAAWC,KAAK,GAAG/F,CAAC,CAAC4B,KAAF,CAAQgE,MAAhC,EAAwCE,CAAC,GAAGC,KAA5C,EAAmDD,CAAC,EAApD,EAAwD;AACpD,YAAIpD,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQkE,CAAR,CAAX;AACA,YAAI,CAACpD,IAAI,CAACQ,QAAV,EAAoB;AACpB,YAAI8I,aAAa,IAAItJ,IAAI,CAACS,MAA1B,EAAkC;AAClCvB,QAAAA,KAAK,CAAC3K,IAAN,CAAWyL,IAAI,CAACnE,YAAD,CAAf;AACH;;AAED,aAAOqD,KAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,kBAAKoF,eAAL,EAAsB;AAClB,UAAMhH,CAAC,GAAG,KAAKC,EAAf;;AAEAD,MAAAA,CAAC,CAACiM,MAAF,GAAW,KAAX;;AAEA,UAAI,CAAC,KAAKhF,SAAL,EAAL,EAAuB;AACnB,aAAKrC,QAAL,CAAc,aAAd;AACH;;AAED5E,MAAAA,CAAC,CAAC8B,YAAF,GAAiB,KAAjB;;AAEAoK,MAAAA,UAAU,CAAC,YAAM;AACb,YAAI,MAAI,CAAC1N,iBAAD,CAAR,EAA2B;;AAE3B,YAAI,CAACwB,CAAC,CAACmM,mBAAP,EAA4B;AACxB;AACAnM,UAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAWpM,QAAX,EAAqB,WAArB,EAAkC+K,CAAC,CAACmM,mBAAF,GAAwB,UAACtH,KAAD,EAAW;AACjE,gBAAI,CAAC7E,CAAC,CAACgB,EAAF,CAAKoL,QAAL,CAAcvH,KAAK,CAACQ,MAApB,CAAL;AACI,YAAA,MAAI,CAACgH,UAAL;AACP,WAHD;AAIH;AACJ,OAVS,CAAV;;AAYA,UAAMrL,EAAE,GAAGhB,CAAC,CAACgB,EAAb;AACAA,MAAAA,EAAE,CAACE,KAAH,CAASqH,QAAT,GAAoB,UAApB;AACAvH,MAAAA,EAAE,CAACI,SAAH,CAAa8C,MAAb,WAAuBlE,CAAC,CAACpB,aAAzB;AACA3J,MAAAA,QAAQ,CAAC8V,IAAT,CAAcuB,WAAd,CAA0BtL,EAA1B;;AAEAhB,MAAAA,CAAC,CAACuM,OAAF,GAAY,IAAZ;;AAEAvM,MAAAA,CAAC,CAACgB,EAAF,CAAKE,KAAL,CAAWC,OAAX,GAAqB,EAArB;AACA,UAAI8H,gBAAgB,CAACjJ,CAAC,CAACgB,EAAH,CAAhB,CAAuBG,OAAvB,KAAmC,MAAvC;AACInB,MAAAA,CAAC,CAACgB,EAAF,CAAKE,KAAL,CAAWC,OAAX,GAAqB,OAArB;;AAEJ,UAAI6F,eAAJ,EAAqB;AACjB,YAAMgC,eAAe,GAAGC,gBAAgB,CAACjI,EAAD,CAAxC;;AAEA;AACA,YAAMwL,iBAAiB,GAAGxL,EAAE,CAACE,KAAH,CAAS4I,SAAnC;AACA,YAAIA,SAAS,GAAG7U,QAAQ,CAAC8V,IAAT,CAAc0B,YAAd;AACXpD,QAAAA,UAAU,CAACL,eAAe,CAAC0D,SAAjB,CAAV,IAAyC,CAD9B;AAEXrD,QAAAA,UAAU,CAACL,eAAe,CAAC2D,YAAjB,CAAV,IAA4C,CAFjC;AAGX3D,QAAAA,eAAe,CAACG,SAAhB,KAA8B,YAA9B;AACK,SADL;AAEM,SAACE,UAAU,CAACL,eAAe,CAACS,cAAjB,CAAV,IAA8C,CAA/C;AACEJ,QAAAA,UAAU,CAACL,eAAe,CAACU,iBAAjB,CAAV,IAAiD,CADnD,CALK,CAAhB;;AAQA1I,QAAAA,EAAE,CAACE,KAAH,CAAS4I,SAAT,GAAqBF,IAAI,CAACjT,GAAL,CAASmT,SAAT,EAAoBT,UAAU,CAACL,eAAe,CAACc,SAAjB,CAAV,IAAyCA,SAA7D,IAA0E,IAA/F;;AAEA,aAAK8C,QAAL,CAAc5F,eAAd;;AAEA;AACAhG,QAAAA,EAAE,CAACE,KAAH,CAAS4I,SAAT,GAAqB0C,iBAArB;AACH,OAnBD,MAmBO;AACH;AACA,YAAIxM,CAAC,CAAC+B,iBAAF,CAAoB0G,SAApB,EAAJ,EAAqC;AACjCzI,UAAAA,CAAC,CAAC+B,iBAAF,CAAoBoE,MAApB;AACH;AACJ;;AAED,UAAI,KAAKc,SAAL,EAAJ,EAAsB;AAClB,aAAKrC,QAAL,CAAc,MAAd;AACH;;AAED,aAAO,IAAP;AACH;;AAED,oBAAO;AACH,UAAM5E,CAAC,GAAG,KAAKC,EAAf,CAAmBe,EAAE,GAAGhB,CAAC,CAACgB,EAA1B;;AAEA,UAAIhB,CAAC,CAACmM,mBAAN,EAA2B;AACvBnM,QAAAA,CAAC,CAACW,IAAF,CAAOuD,MAAP,CAAcjP,QAAd,EAAwB,WAAxB,EAAqC+K,CAAC,CAACmM,mBAAvC;AACAnM,QAAAA,CAAC,CAACmM,mBAAF,GAAwB,IAAxB;AACH;;AAED,UAAI,KAAKlF,SAAL,EAAJ,EAAsB;AAClB,aAAKrC,QAAL,CAAc,aAAd;;AAEA5E,QAAAA,CAAC,CAACiM,MAAF,GAAW,IAAX;;AAEA,YAAIjL,EAAJ,EAAQ;;AAEJA,UAAAA,EAAE,CAACI,SAAH,CAAaC,GAAb,WAAoBrB,CAAC,CAACpB,aAAtB;;AAEA;AACA,cAAMiO,qBAAqB,GAAGC,mBAAe,CAAC7D,gBAAgB,CAACjJ,CAAC,CAACgB,EAAH,CAAhB,CAAuB+L,UAAxB,CAAf;AACzBC,UAAAA,MADyB,CAClB,UAAChN,CAAD,EAAIiN,CAAJ,UAAUrD,IAAI,CAAClT,GAAL,CAASsJ,CAAT,EAAYiN,CAAC,CAACC,KAAF,GAAUD,CAAC,CAACE,QAAxB,CAAV,EADkB,EAC2B,CAD3B,CAA9B;;AAGA,cAAIN,qBAAqB,GAAG,CAA5B,EAA+B;AAC3BX,YAAAA,UAAU,CAAC,YAAM;AACb,kBAAI,MAAI,CAAC1N,iBAAD,CAAR,EAA2B;;AAE3B,kBAAI,MAAI,CAACyB,EAAL,IAAWe,EAAE,CAACgK,UAAd,IAA4BhL,CAAC,CAACiM,MAAlC,EAA0C;AACtC/H,gBAAAA,gBAAM,CAAClD,EAAD,CAAN;AACAA,gBAAAA,EAAE,CAACI,SAAH,CAAa8C,MAAb,WAAuBlE,CAAC,CAACpB,aAAzB;AACAoB,gBAAAA,CAAC,CAACuM,OAAF,GAAY,KAAZ;AACA,gBAAA,MAAI,CAAC3H,QAAL,CAAc,YAAd;AACH;AACJ,aATS,CAAV;AAUH,WAXD,MAWO;AACHV,YAAAA,gBAAM,CAAClD,EAAD,CAAN;AACAA,YAAAA,EAAE,CAACI,SAAH,CAAa8C,MAAb,WAAuBlE,CAAC,CAACpB,aAAzB;AACH;AACJ;;AAEDoB,QAAAA,CAAC,CAACuM,OAAF,GAAY,KAAZ;;AAEA,aAAKa,eAAL;AACA,aAAKxI,QAAL,CAAc,MAAd;;AAEA,YAAI,KAAKpG,iBAAL,CAAJ,EAA2B;AAC3B,aAAKoG,QAAL,CAAc,YAAd;AACH;;AAED,UAAI5E,CAAC,CAACwE,kBAAN,EAA0B;AACtBxE,QAAAA,CAAC,CAACwE,kBAAF,CAAqBpD,SAArB,CAA+B8C,MAA/B;AACWlE,QAAAA,CAAC,CAACpB,aADb;AAEWoB,QAAAA,CAAC,CAACpB,aAFb;AAGWoB,QAAAA,CAAC,CAACpB,aAHb;AAIA,eAAOoB,CAAC,CAACwE,kBAAT;AACH;;AAED,aAAO,IAAP;AACH;;AAED,yBAAY;AACR,UAAMxE,CAAC,GAAG,KAAKC,EAAf;AACA,UAAI,CAACD,CAAC,CAACuM,OAAP;AACI,aAAO,KAAP;AACJ,aAAOvM,CAAC,CAACgB,EAAF,CAAKgK,UAAL,IAAmB/B,gBAAgB,CAACjJ,CAAC,CAACgB,EAAH,CAAhB,CAAuBG,OAAvB,KAAmC,MAA7D;AACH;;AAED,8BAAiB;AACb,aAAO,KAAKlB,EAAL,CAAQQ,cAAR,GAAyB,CAAC,CAAjC;AACH;;AAED,mCAAsB;AAClB,UAAI,CAAC,KAAKkE,cAAL,EAAL;AACI,aAAO,CAAC,CAAR;AACJ,aAAO,KAAK1E,EAAL,CAAQQ,cAAf;AACH;;AAED,mCAAsB4F,SAAtB,EAAiC;AAC7B,UAAMrG,CAAC,GAAG,KAAKC,EAAf;;AAEAD,MAAAA,CAAC,CAACS,cAAF,GAAmB4F,SAAnB;;AAEA,UAAI3D,IAAI,GAAG,IAAX;AACA,UAAI2D,SAAS,GAAG,CAAC,CAAjB;AACI3D,MAAAA,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQyE,SAAR,CAAP;AACJ,UAAI3D,IAAI,IAAIA,IAAI,CAACW,cAAjB;AACIX,MAAAA,IAAI,GAAG,IAAP;AACJ,UAAI2D,SAAS,GAAG,CAAC,CAAjB,EAAoB;AAChB,aAAKgH,uBAAL,CAA6BhH,SAA7B;AACH;AACD,UAAIiH,WAAW,GAAG5K,IAAI,GAAG1C,CAAC,CAAC+B,iBAAF,CAAoB6J,gBAApB,CAAqCvF,SAArC,CAAH,GAAqD,IAA3E;;AAEA,UAAIrG,CAAC,CAACU,WAAF,KAAkB4M,WAAtB,EAAmC;AAC/B,YAAItN,CAAC,CAACU,WAAN,EAAmB;AACfV,UAAAA,CAAC,CAACU,WAAF,CAAcU,SAAd,CAAwB8C,MAAxB,WAAkClE,CAAC,CAACpB,aAApC;AACAoB,UAAAA,CAAC,CAACU,WAAF,GAAgB,IAAhB;AACH;;AAED,YAAI4M,WAAJ,EAAiB;AACbA,UAAAA,WAAW,CAAClM,SAAZ,CAAsBC,GAAtB,WAA6BrB,CAAC,CAACpB,aAA/B;AACAoB,UAAAA,CAAC,CAACU,WAAF,GAAgB4M,WAAhB;;AAEA,eAAK1I,QAAL,CAAc,WAAd,EAA2B,EAAEtG,KAAK,EAAEgP,WAAW,CAAChP,KAArB,EAA4BoE,IAAI,EAAE4K,WAAW,CAAC/O,YAAD,CAA7C,EAA2DsG,KAAK,EAAE,IAAlE,EAA3B;AACH;AACJ;;AAED,aAAO,IAAP;AACH;;AAED,4BAAenC,IAAf,EAAqB;AACjB,UAAM1C,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAIoG,SAAS,GAAG3D,IAAI,CAACW,cAAL,GAAsB,CAAC,CAAvB,GAA2B,KAAKkK,aAAL,CAAmB7K,IAAnB,CAA3C;;AAEA,UAAI2D,SAAS,GAAG,CAAC,CAAb,IAAkBrG,CAAC,CAAC4B,KAAF,CAAQyE,SAAR,EAAmBhD,cAAzC;AACIgD,MAAAA,SAAS,GAAG,CAAC,CAAb;;AAEJ,aAAO,KAAKmH,qBAAL,CAA2BnH,SAA3B,CAAP;AACH;;AAED,mCAAsB/H,KAAtB,EAA6B;AACzB,aAAO,KAAKkP,qBAAL,CAA2B,KAAKlH,gBAAL,CAAsBhI,KAAtB,CAA3B,CAAP;AACH;;AAED,0CAA6B+H,SAA7B,EAAwC;AACpC,UAAMrG,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAIuC,MAAM,GAAG,IAAb;;AAEA,UAAI6D,SAAS,GAAG,CAAC,CAAb,IAAkB,CAACrG,CAAC,CAAC4B,KAAF,CAAQyE,SAAR,EAAmBhD,cAA1C,EAA0D;AACtDb,QAAAA,MAAM,GAAGxC,CAAC,CAAC+B,iBAAF,CAAoB6J,gBAApB,CAAqCvF,SAArC,CAAT;AACH;;AAED,WAAKd,wBAAL,CAA8B/C,MAA9B;;AAEA,aAAO,IAAP;AACH;;AAED,mCAAsBE,IAAtB,EAA4B;AACxB,UAAM1C,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAIoG,SAAS,GAAG3D,IAAI,CAACW,cAAL,GAAsB,CAAC,CAAvB,GAA2B,KAAKkK,aAAL,CAAmB7K,IAAnB,CAA3C;;AAEA,UAAI2D,SAAS,GAAG,CAAC,CAAb,IAAkBrG,CAAC,CAAC4B,KAAF,CAAQyE,SAAR,EAAmBhD,cAAzC;AACIgD,MAAAA,SAAS,GAAG,CAAC,CAAb;;AAEJ,aAAO,KAAKoH,4BAAL,CAAkCpH,SAAlC,CAAP;AACH;;AAED,0CAA6B/H,KAA7B,EAAoC;AAChC,aAAO,KAAKmP,4BAAL,CAAkC,KAAKnH,gBAAL,CAAsBhI,KAAtB,CAAlC,CAAP;AACH;;AAED,kBAAKuG,KAAL,EAAY;AACR,WAAKC,KAAL,CAAW,MAAX,EAAmBD,KAAnB;AACH;;AAED,sBAASA,KAAT,EAAgB;AACZ,WAAKC,KAAL,CAAW,MAAX,EAAmBD,KAAnB;AACH;;AAED,2BAAc;AACV,UAAM7E,CAAC,GAAG,KAAKC,EAAf;AACA,aAAOD,CAAC,CAACS,cAAF,KAAqB,CAArB,IAA0BT,CAAC,CAACS,cAAF,GAAmBT,CAAC,CAAC4B,KAAF,CAAQgE,MAA5D;AACH;;AAED,0BAAa;AACT,UAAM5F,CAAC,GAAG,KAAKC,EAAf;AACA,aAAOD,CAAC,CAACS,cAAF,GAAmB,CAAC,CAApB,IAAyBT,CAAC,CAACS,cAAF,KAAqBT,CAAC,CAAC4B,KAAF,CAAQgE,MAAR,GAAiB,CAAtE;AACH;;AAED,qCAAwBS,SAAxB,EAAmC;AAC/B,UAAMrG,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI,KAAKyN,UAAL,EAAJ,EAAuB;AACnB,YAAM1M,EAAE,GAAGhB,CAAC,CAACgB,EAAb,CAAiB2M,SAAS,GAAG3M,EAAE,CAAC2M,SAAhC;;AAEA,YAAIC,OAAJ,CAAaC,WAAW,GAAG,CAAC,CAA5B;;AAEA;AACA,eAAO,IAAP,EAAa;AACTD,UAAAA,OAAO,GAAG5N,CAAC,CAAC+B,iBAAF,CAAoB+L,eAApB,CAAoCzH,SAApC,CAAV;;AAEA,cAAIuH,OAAO,KAAKC,WAAhB;AACI;;AAEJA,UAAAA,WAAW,GAAGD,OAAd;;AAEA,cAAIG,QAAQ,GAAG/N,CAAC,CAAC+B,iBAAF,CAAoBiM,WAApB,CAAgC3H,SAAhC,CAAf;;AAEA,cAAI4H,UAAU,GAAGjN,EAAE,CAACyL,YAApB;;AAEA,cAAImB,OAAO,GAAGD,SAAd,EAAyB;AACrB3M,YAAAA,EAAE,CAAC2M,SAAH,GAAeC,OAAf;AACH,WAFD,MAEO,IAAIA,OAAO,GAAGG,QAAV,GAAqBJ,SAAS,GAAGM,UAArC,EAAiD;AACpDjN,YAAAA,EAAE,CAAC2M,SAAH,GAAeC,OAAO,GAAGG,QAAV,GAAqBE,UAApC;AACH;;AAED;AACAjO,UAAAA,CAAC,CAAC+B,iBAAF,CAAoBoE,MAApB;AACH;AACJ;;AAED,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,gCAAkBtB,KAAlB,gBAAuCqJ,OAAvC,EAAgD;AAC5C,WAAKjO,EAAL,CAAQO,IAAR,CAAaf,EAAb,CAAgBoF,KAAhB,EAAuBqJ,OAAvB;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,kCAAoBrJ,KAApB,gBAAyCqJ,OAAzC,EAAkD;AAC9C,UAAIC,OAAO,GAAG,SAAVA,OAAU,CAAC7P,KAAD,EAAW;AACrB,QAAA,MAAI,CAAC2B,EAAL,CAAQO,IAAR,CAAa4N,GAAb,CAAiBvJ,KAAjB,EAAwBsJ,OAAxB;AACAD,QAAAA,OAAO,CAAC5P,KAAD,CAAP;AACH,OAHD;AAIA,WAAK2B,EAAL,CAAQO,IAAR,CAAaf,EAAb,CAAgBoF,KAAhB,EAAuBsJ,OAAvB;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,oCAAsBtJ,KAAtB,gBAA2CqJ,OAA3C,EAAoD;AAChD,UAAI,CAACrJ,KAAD,IAAU,CAACA,KAAf,EAAsB;AAClB,aAAK5E,EAAL,CAAQO,IAAR,CAAa6N,GAAb,CAAiBC,KAAjB;AACH,OAFD,MAEO;AACH,aAAKrO,EAAL,CAAQO,IAAR,CAAa4N,GAAb,CAAiBvJ,KAAjB,EAAwBqJ,OAAxB;AACH;AACD,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,kCAAoBrJ,KAApB,WAAoCvG,KAApC,EAA2C;AACvC,WAAK2B,EAAL,CAAQO,IAAR,CAAa+N,IAAb,CAAkB1J,KAAlB,EAAyBvG,KAAzB;AACA,aAAO,IAAP;AACH;;AAED,2BAAcoE,IAAd,EAAoB;AAChB,UAAM1C,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAIoG,SAAS,GAAG,CAAC,CAAjB;;AAEA,UAAI3D,IAAJ,EAAU;AACN2D,QAAAA,SAAS,GAAGrG,CAAC,CAAC4B,KAAF,CAAQ5K,OAAR,CAAgB0L,IAAhB,CAAZ;AACA,YAAI2D,SAAS,KAAK,CAAC,CAAnB,EAAsB;AAClB,cAAI/H,KAAK,GAAIoE,IAAI,IAAIA,IAAI,CAACpE,KAAL,KAAeyB,SAAxB,GAAqC2C,IAAI,CAACpE,KAA1C,GAAkDoE,IAA9D;AACA,cAAIC,KAAK,GAAID,IAAI,IAAIA,IAAI,CAACC,KAAd,GAAuBD,IAAI,CAACC,KAA5B,GAAoCrE,KAAhD;AACA+H,UAAAA,SAAS,GAAG,KAAKK,uBAAL,CAA6BpI,KAA7B,EAAoCqE,KAApC,CAAZ;AACH;AACJ;;AAED,aAAO0D,SAAP;AACH;;AAED,sCAAyB7D,MAAzB,EAAiC;AAC7B,UAAMxC,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAID,CAAC,CAACwO,oBAAN,EAA4B;AACxBxO,QAAAA,CAAC,CAACwO,oBAAF,CAAuBpN,SAAvB,CAAiC8C,MAAjC,WAA2ClE,CAAC,CAACpB,aAA7C;AACAoB,QAAAA,CAAC,CAACwO,oBAAF,GAAyB,IAAzB;AACH;;AAED,UAAIhM,MAAJ,EAAY;AACRA,QAAAA,MAAM,CAACpB,SAAP,CAAiBC,GAAjB,WAAwBrB,CAAC,CAACpB,aAA1B;AACAoB,QAAAA,CAAC,CAACwO,oBAAF,GAAyBhM,MAAzB;AACH;;AAED,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,sBAASqC,KAAT,EAAgB4J,IAAhB,EAAsB;AAClB,UAAMzO,CAAC,GAAG,KAAKC,EAAf;AACA,UAAID,CAAC,CAACP,EAAN;AACIO,MAAAA,CAAC,CAACP,EAAF,OAAAO,CAAC,GAAI6E,KAAJ,4BAAe4J,IAAI,KAAK1O,SAAT,GAAqB,EAArB,GAA0B,CAAC0O,IAAD,CAAzC,GAAD;AACJzO,MAAAA,CAAC,CAACQ,IAAF,CAAO+N,IAAP,CAAY1J,KAAZ,EAAmB4J,IAAnB;AACH;;AAED,2BAAc5J,KAAd,EAAqBrC,MAArB,EAA6B;AACzB,UAAI4C,gBAAY,CAACP,KAAK,CAACQ,MAAP,EAAe,iCAAf,EAAkD7C,MAAlD,CAAhB,EAA2E;;AAE3E,UAAIxC,CAAC,GAAG,KAAKC,EAAb;;AAEA,UAAI,CAAC,KAAKyO,aAAV,EAAyB;;AAErB,aAAKC,oBAAL,CAA0B9J,KAA1B;;AAEA;AACA,YAAI,KAAKrG,iBAAL,CAAJ;AACI;;AAEJ,aAAKoQ,iBAAL;;AAEA,YAAI3Z,QAAQ,CAAC4Z,aAAT,KAA2B,KAAK7N,EAAhC,IAAsChB,CAAC,CAACU,WAA5C,EAAyD;AACrDqD,UAAAA,YAAY,CAAC/D,CAAC,CAACgE,SAAH,CAAZ;AACH;;AAEDkI,QAAAA,UAAU,CAAC,YAAM;AACb,UAAA,MAAI,CAACwC,aAAL,GAAqB,KAArB;AACH,SAFS,EAEP,CAFO,CAAV;AAGH;AACJ;;AAED,gCAAmB;AACf,UAAM1O,CAAC,GAAG,KAAKC,EAAf;;AAEAD,MAAAA,CAAC,CAACW,IAAF;AACKU,MAAAA,GADL,CACSrB,CAAC,CAACgB,EADX,EACe,WADf,EAC4B,UAAC6D,KAAD,EAAW;AAC/B,YAAM8G,EAAE,GAAGvG,gBAAY,CAACP,KAAK,CAACQ,MAAP,EAAe,IAAf,EAAqBR,KAAK,CAACiK,aAA3B,CAAvB;AACA,YAAI,CAACnD,EAAL,EAAS;;AAET9G,QAAAA,KAAK,CAACkK,cAAN;AACH,OANL;AAOK1N,MAAAA,GAPL,CAOSrB,CAAC,CAACgB,EAPX,EAOe,SAPf,EAO0B,UAAC6D,KAAD,EAAW;AAC7B,YAAM8G,EAAE,GAAGvG,gBAAY,CAACP,KAAK,CAACQ,MAAP,EAAe,IAAf,EAAqBR,KAAK,CAACiK,aAA3B,CAAvB;AACA,YAAI,CAACnD,EAAL,EAAS;;AAET,YAAI9G,KAAK,CAACmK,MAAN,KAAiB,CAArB,EAAwB;;AAExB,QAAA,MAAI,CAACC,aAAL,CAAmBpK,KAAnB,EAA0B8G,EAA1B;AACH,OAdL;AAeKtK,MAAAA,GAfL,CAeSrB,CAAC,CAACgB,EAfX,EAee,WAff,EAe4B,UAAC6D,KAAD,EAAW;AAC/B,YAAM8G,EAAE,GAAGvG,gBAAY,CAACP,KAAK,CAACQ,MAAP,EAAe,IAAf,EAAqBR,KAAK,CAACiK,aAA3B,CAAvB;AACA,YAAI,CAACnD,EAAL,EAAS;;AAET,QAAA,MAAI,CAACuD,gBAAL,CAAsBrK,KAAtB,EAA6B8G,EAA7B;AACH,OApBL;AAqBH;;AAED,8BAAiB9G,KAAjB,EAAwBrC,MAAxB,EAAgC;AAC5B,WAAK2M,MAAL,CAAYtK,KAAZ,EAAmBrC,MAAnB;AACH;;AAED,gCAAmB;AACf,UAAMxC,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAImP,cAAJ;;AAEApP,MAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAWrB,CAAC,CAACgB,EAAb,EAAiB,YAAjB,EAA+B,UAAC6D,KAAD,EAAW;AACtC,YAAM8G,EAAE,GAAGvG,gBAAY,CAACP,KAAK,CAACQ,MAAP,EAAe,IAAf,EAAqBR,KAAK,CAACiK,aAA3B,CAAvB;AACA,YAAI,CAACnD,EAAL,EAAS;;AAET,YAAIyD,cAAJ,EAAoB;AACpB,YAAIhK,gBAAY,CAACP,KAAK,CAACQ,MAAP,EAAe,iCAAf,EAAkDsG,EAAlD,CAAhB,EAAuE;;AAEvEyD,QAAAA,cAAc,GAAGvK,KAAK,CAACwK,cAAN,CAAqB,CAArB,EAAwBC,UAAzC;;AAEA;AACA,QAAA,MAAI,CAACJ,gBAAL,CAAsBrK,KAAtB,EAA6B8G,EAA7B;;AAEA;AACA,YAAI4D,SAAS,GAAG,KAAhB;AACA,YAAIC,QAAQ,GAAG,SAAXA,QAAW,GAAM,CAAED,SAAS,GAAG,IAAZ,CAAmB,CAA1C;AACA,YAAIE,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AACtBL,UAAAA,cAAc,GAAG,IAAjB;AACApP,UAAAA,CAAC,CAACW,IAAF,CAAOuD,MAAP,CAAc,IAAd,EAAoB,sBAApB;AACH,SAHD;;AAKA,YAAIwL,eAAe,GAAG/D,EAAE,CAACX,UAAzB;AACA,eAAO0E,eAAP,EAAwB;AACpB1P,UAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAWqO,eAAX,EAA4B,4BAA5B,EAA0DF,QAA1D;AACAE,UAAAA,eAAe,GAAGA,eAAe,CAAC1E,UAAlC;AACH;AACDhL,QAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAW8F,MAAX,EAAmB,4BAAnB,EAAiDqI,QAAjD;;AAEAxP,QAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAW8F,MAAX,EAAmB,iCAAnB,EAAsDsI,aAAtD;;AAEAzP,QAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAWrB,CAAC,CAACgB,EAAb,EAAiB,8BAAjB,EAAiD,UAAC6D,KAAD,EAAW;AACxD,cAAM8G,EAAE,GAAGvG,gBAAY,CAACP,KAAK,CAACQ,MAAP,EAAe,IAAf,EAAqBR,KAAK,CAACiK,aAA3B,CAAvB;AACA,cAAI,CAACnD,EAAL,EAAS,OAAO8D,aAAa,EAApB;;AAET,cAAIE,KAAK,GAAG7W,KAAK,CAAC4F,SAAN,CAAgBkR,IAAhB,CAAqBhe,IAArB,CAA0BiT,KAAK,CAACwK,cAAhC,EAAgD,UAACM,KAAD,EAAW;AACnE,mBAAOA,KAAK,CAACL,UAAN,KAAqBF,cAA5B;AACH,WAFW,CAAZ;AAGA,cAAI,CAACO,KAAL,EAAY,OAAOF,aAAa,EAApB;;AAEZA,UAAAA,aAAa;;AAEb,cAAI,CAACF,SAAL,EAAgB;AACZ,YAAA,MAAI,CAACN,aAAL,CAAmBpK,KAAnB,EAA0B8G,EAA1B;AACA9G,YAAAA,KAAK,CAACkK,cAAN;AACH;AACJ,SAfD;AAgBH,OA7CD;AA8CH;;AAED,gCAAmB;AACf,UAAM/O,CAAC,GAAG,KAAKC,EAAf;;AAEAD,MAAAA,CAAC,CAACW,IAAF;AACKU,MAAAA,GADL,CACSrB,CAAC,CAACgB,EADX,EACe,OADf,EACwB,UAAA6D,KAAK,EAAI;AACzB,YAAIrC,MAAM,GAAGxC,CAAC,CAACU,WAAF;AACTV,QAAAA,CAAC,CAACgB,EAAF,CAAK6O,UADT,CADyB;;AAIzB,QAAA,MAAI,CAACV,MAAL,CAAYtK,KAAZ,EAAmBrC,MAAnB;AACH,OANL;AAOKnB,MAAAA,GAPL,CAOSrB,CAAC,CAACgB,EAPX,EAOe,MAPf,EAOuB,YAAM;AACrBkL,QAAAA,UAAU,CAAC,YAAM;AACb,cAAI,MAAI,CAAC1N,iBAAD,CAAR,EAA2B;;AAE3B,cAAI,CAACwB,CAAC,CAACgB,EAAF,CAAKoL,QAAL,CAAcnX,QAAQ,CAAC4Z,aAAvB,CAAL,EAA4C;AACxC,YAAA,MAAI,CAACxC,UAAL;AACH;AACJ,SANS,CAAV;AAOH,OAfL;AAgBH;;AAED,8BAAiB;AACb,UAAMrM,CAAC,GAAG,KAAKC,EAAf;;AAEAD,MAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAWrB,CAAC,CAACgB,EAAb,EAAiB,SAAjB,EAA4B,UAAA8O,GAAG,UAAI,MAAI,CAACC,QAAL,CAAcD,GAAd,CAAJ,EAA/B;AACA9P,MAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAWrB,CAAC,CAACgB,EAAb,EAAiB,UAAjB,EAA6B,UAAA8O,GAAG,UAAI,MAAI,CAACC,QAAL,CAAcD,GAAd,CAAJ,EAAhC;AACH;;AAED,sBAASjL,KAAT,EAAgB;AACZ,UAAM7E,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAID,CAAC,CAAChB,cAAF,IAAoBgB,CAAC,CAAChB,cAAF,CAAiBpN,IAAjB,CAAsB,IAAtB,EAA4BiT,KAA5B,CAAxB,EAA4D;AACxD;AACH;;AAED,UAAIkK,cAAc,GAAG,IAArB;;AAEA,cAAQlK,KAAK,CAAC/E,GAAd;AACI,aAAKkQ,uBAAL;AACA,aAAKC,yBAAL;AACA,aAAKC,oBAAL;AACA,aAAKC,mBAAL;AACA,aAAKC,kBAAL;AACA,aAAKC,oBAAL;AACIxL,UAAAA,KAAK,CAACkK,cAAN;;AAEA,kBAAQlK,KAAK,CAAC/E,GAAd;AACI,iBAAKkQ,uBAAL;AACI,mBAAKM,YAAL,CAAkBzL,KAAlB;AACA;AACJ,iBAAKoL,yBAAL;AACI,mBAAKM,QAAL,CAAc1L,KAAd;AACA;AACJ,iBAAKqL,oBAAL;AACI,mBAAKpL,KAAL,CAAW,OAAX,EAAoBD,KAApB;AACA;AACJ,iBAAKsL,mBAAL;AACI,mBAAKrL,KAAL,CAAW,MAAX,EAAmBD,KAAnB;AACA;AACJ,iBAAKuL,kBAAL;AACI,mBAAKI,QAAL,CAAc3L,KAAd;AACA;AACJ,iBAAKwL,oBAAL;AACI,mBAAKI,IAAL,CAAU5L,KAAV;AACA,oBAlBR;;AAoBA;;AAEJ,aAAK6L,qBAAL;AACI,eAAK/B,oBAAL,CAA0B9J,KAA1B;AACAA,UAAAA,KAAK,CAACkK,cAAN;AACA;;AAEJ,aAAK4B,qBAAL;AACI,eAAK/B,iBAAL;AACA/J,UAAAA,KAAK,CAACkK,cAAN;AACA;;AAEJ,aAAK6B,sBAAL;AACI/L,UAAAA,KAAK,CAACkK,cAAN;AACA,eAAK8B,IAAL;AACA;;AAEJ,gBAAS;AACL,gBAAIhM,KAAK,CAACiM,IAAN,KAAe,SAAnB,EAA8B;AAC9B,iBAAKC,gBAAL,CAAsBlM,KAAtB;AACAkK,YAAAA,cAAc,GAAG,KAAjB;AACH,WAlDL;;AAoDH;;AAED,8BAAiBe,GAAjB,EAAsB;AAClB,UAAM9P,CAAC,GAAG,KAAKC,EAAf;;AAEA;AACA,UAAI+Q,SAAS,GAAGlB,GAAG,CAAChQ,GAAJ,IAAWrM,MAAM,CAACwd,YAAP,CAAoBnB,GAAG,CAACoB,OAAxB,CAA3B;AACA,UAAIF,SAAS,CAACpL,MAAV,KAAqB,CAAzB,EAA4B;;AAE5B7B,MAAAA,YAAY,CAAC/D,CAAC,CAACiE,WAAH,CAAZ;;AAEA;AACA,UAAIkN,OAAO,GAAG,CAACnR,CAAC,CAACoR,cAAF,IAAoB,EAArB,IAA2BJ,SAAzC;;AAEA,UAAIK,KAAK,GAAG,IAAIC,MAAJ,YAAeC,WAAW,CAACJ,OAAD,CAA1B,GAAuC,GAAvC,CAAZ;;AAEA,UAAIK,YAAY,GAAG,EAAnB;AACA,UAAI9O,IAAJ;;AAEA;AACA,WAAK,IAAIoD,CAAC,GAAG,CAAR,EAAWC,KAAK,GAAG/F,CAAC,CAAC4B,KAAF,CAAQgE,MAAhC,EAAwCE,CAAC,GAAGC,KAA5C,EAAmDD,CAAC,EAApD,EAAwD;AACpDpD,QAAAA,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQkE,CAAR,CAAP;AACA,YAAIuL,KAAK,CAACtZ,IAAN,CAAW2K,IAAI,CAACC,KAAhB,CAAJ,EAA4B;AACxB6O,UAAAA,YAAY,CAACva,IAAb,CAAkB6O,CAAlB;AACH;AACJ;;AAED;AACA,UAAI,CAAC0L,YAAY,CAAC5L,MAAlB,EAA0B;AACtB;AACAuL,QAAAA,OAAO,GAAGH,SAAV;AACAK,QAAAA,KAAK,GAAG,IAAIC,MAAJ,YAAeC,WAAW,CAACJ,OAAD,CAA1B,GAAuC,GAAvC,CAAR;;AAEA,aAAK,IAAIrL,GAAC,GAAG,CAAR,EAAWC,OAAK,GAAG/F,CAAC,CAAC4B,KAAF,CAAQgE,MAAhC,EAAwCE,GAAC,GAAGC,OAA5C,EAAmDD,GAAC,EAApD,EAAwD;AACpDpD,UAAAA,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQkE,GAAR,CAAP;AACA,cAAIuL,KAAK,CAACtZ,IAAN,CAAW2K,IAAI,CAACC,KAAhB,CAAJ,EAA4B;AACxB6O,YAAAA,YAAY,CAACva,IAAb,CAAkB6O,GAAlB;AACH;AACJ;AACJ;;AAED,UAAIrF,cAAc,GAAGT,CAAC,CAACS,cAAvB;AACA,UAAIgR,UAAU,GAAG,CAAC,CAAlB;;AAEA;AACA,WAAK,IAAI3L,GAAC,GAAG,CAAR,EAAWC,OAAK,GAAGyL,YAAY,CAAC5L,MAArC,EAA6CE,GAAC,GAAGC,OAAjD,EAAwDD,GAAC,EAAzD,EAA6D;AACzD,YAAI0L,YAAY,CAAC1L,GAAD,CAAZ,IAAmBrF,cAAvB,EAAuC;AACnCgR,UAAAA,UAAU,GAAGD,YAAY,CAAC1L,GAAD,CAAzB;AACA;AACH;AACJ;;AAED;AACA,UAAI2L,UAAU,KAAK,CAAC,CAAhB,IAAqBD,YAAY,CAAC5L,MAAtC,EAA8C;AAC1C6L,QAAAA,UAAU,GAAGD,YAAY,CAAC,CAAD,CAAzB;AACH;;AAED,UAAIC,UAAU,GAAG,CAAC,CAAlB,EAAqB;AACjB,YAAIhB,IAAI,GAAGzQ,CAAC,CAAC+B,iBAAF,CAAoB6J,gBAApB,CAAqC6F,UAArC,CAAX;AACA,aAAKtC,MAAL,CAAYW,GAAZ,EAAiBW,IAAI,IAAI,IAAzB,EAA+BgB,UAA/B;;AAEA,YAAI,CAAC,KAAKxK,SAAL,EAAL,EAAuB;AACnB,eAAK0H,oBAAL,CAA0BmB,GAA1B;AACH;;AAED;AACA9P,QAAAA,CAAC,CAACoR,cAAF,GAAmBD,OAAnB;;AAEA;AACAnR,QAAAA,CAAC,CAACiE,WAAF,GAAgBiI,UAAU,CAAC,YAAM;AAC7B,iBAAOlM,CAAC,CAACoR,cAAT;AACH,SAFyB,EAEvB,IAFuB,CAA1B;;AAIH,OAhBD,MAgBO;AACH,eAAOpR,CAAC,CAACoR,cAAT;AACH;AACJ;;AAED,oBAAOvM,KAAP,EAAcrC,MAAd,EAAsB6D,SAAtB,EAAiC;AAC7B,UAAMrG,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI,CAACoG,SAAD,IAAc7D,MAAlB,EAA0B;AACtB6D,QAAAA,SAAS,GAAGrG,CAAC,CAAC+B,iBAAF,CAAoBuD,uBAApB,CAA4C9C,MAA5C,CAAZ;AACH;;AAED,UAAI6D,SAAS,GAAG,CAAC,CAAjB,EAAoB;AAChB,aAAKgH,uBAAL,CAA6BhH,SAA7B;AACH,OAFD,MAEO,IAAIA,SAAS,KAAKtG,SAAlB,EAA6B;AAChCyC,QAAAA,MAAM,GAAG,IAAT;AACH;;AAED,UAAI9B,WAAW,GAAG8B,MAAM,IAAIxC,CAAC,CAAC+B,iBAAF,CAAoB6J,gBAApB,CAAqCvF,SAArC,CAA5B;AACA,UAAI,CAAC3F,WAAD,IAAgBA,WAAW,CAACnC,YAAD,CAAX,CAAwB8E,cAA5C,EAA4D;AACxD,aAAK+J,eAAL;AACA;AACH;;AAED,UAAI1M,WAAW,KAAKV,CAAC,CAACU,WAAtB,EAAmC;AAC/BqD,QAAAA,YAAY,CAAC/D,CAAC,CAACgE,SAAH,CAAZ;AACA;AACH;;AAED,WAAKoJ,eAAL;;AAEA1M,MAAAA,WAAW,CAACU,SAAZ,CAAsBC,GAAtB,WAA6BrB,CAAC,CAACpB,aAA/B;AACAoB,MAAAA,CAAC,CAACU,WAAF,GAAgBA,WAAhB;AACAV,MAAAA,CAAC,CAACS,cAAF,GAAmB4F,SAAnB;;AAEA,UAAM3D,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQyE,SAAR,CAAb;AACA,WAAKzB,QAAL,CAAc,WAAd,EAA2B,EAAEtG,KAAK,EAAEoE,IAAI,CAACpE,KAAd,EAAqBoE,IAAI,uBAAEA,IAAI,CAACnE,YAAD,CAAN,iEAAsBmE,IAA/C,EAAqDmC,KAAK,EAAEA,KAA5D,EAA3B;AACH;;AAED,0BAAa;AACT,UAAI,KAAKrG,iBAAL,CAAJ;AACI;;AAEJ,UAAMwB,CAAC,GAAG,KAAKC,EAAf;;AAEA8D,MAAAA,YAAY,CAAC/D,CAAC,CAACgE,SAAH,CAAZ;;AAEAhE,MAAAA,CAAC,CAACgE,SAAF,GAAckI,UAAU,CAAC,YAAM;AAC3B,YAAI,OAAI,CAAC1N,iBAAD,CAAR,EAA2B;AAC3B,QAAA,OAAI,CAAC4O,eAAL;AACH,OAHuB,EAGrBpN,CAAC,CAACnB,aAHmB,CAAxB;AAIH;;AAED,mBAAM0L,SAAN,EAAiB1F,KAAjB,EAAwB;AACpB,UAAM7E,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAIwQ,IAAJ,CAAUiB,SAAV,CAAqBC,WAAW,GAAG,KAAnC;;AAEA,UAAIpH,SAAS,KAAK,OAAlB,EAA2B;AACvBmH,QAAAA,SAAS,GAAG,CAAZ;AACAC,QAAAA,WAAW,GAAG,KAAd;AACH,OAHD,MAGO,IAAIpH,SAAS,KAAK,MAAlB,EAA0B;AAC7BmH,QAAAA,SAAS,GAAG1R,CAAC,CAAC4B,KAAF,CAAQgE,MAAR,GAAiB,CAA7B;AACA+L,QAAAA,WAAW,GAAG,IAAd;AACH,OAHM,MAGA,IAAIpH,SAAS,KAAK,MAAlB,EAA0B;AAC7B,YAAI,CAAC,KAAK5F,cAAL,EAAL;AACI,eAAO,KAAKG,KAAL,CAAW,MAAX,EAAmBD,KAAnB,CAAP;;AAEJ6M,QAAAA,SAAS,GAAG1R,CAAC,CAACS,cAAF,GAAmB,CAA/B;AACA,YAAIiR,SAAS,KAAK,CAAC,CAAnB,EAAsB;AAClBA,UAAAA,SAAS,GAAG1R,CAAC,CAAC4B,KAAF,CAAQgE,MAAR,GAAiB,CAA7B;AACH;;AAED+L,QAAAA,WAAW,GAAG,IAAd;AACH,OAVM,MAUA,IAAIpH,SAAS,KAAK,MAAlB,EAA0B;AAC7B,YAAI,CAAC,KAAK5F,cAAL,EAAL;AACI,eAAO,KAAKG,KAAL,CAAW,OAAX,EAAoBD,KAApB,CAAP;;AAEJ6M,QAAAA,SAAS,GAAG1R,CAAC,CAACS,cAAF,GAAmB,CAA/B;AACA,YAAIiR,SAAS,KAAK1R,CAAC,CAAC4B,KAAF,CAAQgE,MAA1B,EAAkC;AAC9B8L,UAAAA,SAAS,GAAG,CAAZ;AACH;;AAEDC,QAAAA,WAAW,GAAG,KAAd;AACH,OAVM,MAUA,IAAIpH,SAAS,KAAK,WAAd,IAA6BA,SAAS,KAAK,WAA/C,EAA4D;;AAE/D,YAAI,CAAC,KAAK5F,cAAL,EAAL,EAA4B;AACxB,iBAAO,KAAKG,KAAL,CAAWyF,SAAS,KAAK,WAAd,GAA4B,MAA5B,GAAqC,MAAhD,EAAwD1F,KAAxD,CAAP;AACH;;AAED,YAAK0F,SAAS,KAAK,WAAd,IAA6B,KAAKqH,WAAL,EAA9B;AACCrH,QAAAA,SAAS,KAAK,WAAd,IAA6B,KAAKsH,UAAL,EADlC,EACsD;;AAEtD,YAAI,KAAKnE,UAAL,EAAJ,EAAuB;;AAEnB,cAAI1N,CAAC,CAAC+B,iBAAF,CAAoB0G,SAApB,EAAJ,EAAqC;AACjC,gBAAIqJ,gBAAgB,GAAG9R,CAAC,CAAC+B,iBAAF,CAAoBgQ,mBAApB,EAAvB;;AAEAL,YAAAA,SAAS,GAAG1R,CAAC,CAACS,cAAd;;AAEA,gBAAI8J,SAAS,KAAK,WAAlB,EAA+B;AAC3BmH,cAAAA,SAAS,IAAII,gBAAb;AACH,aAFD,MAEO;AACHJ,cAAAA,SAAS,IAAII,gBAAb;AACH;;AAED,gBAAIJ,SAAS,GAAG,CAAhB,EAAmB;AACfA,cAAAA,SAAS,GAAG,CAAZ;AACH,aAFD,MAEO,IAAIA,SAAS,IAAI1R,CAAC,CAAC4B,KAAF,CAAQgE,MAAzB,EAAiC;AACpC8L,cAAAA,SAAS,GAAG1R,CAAC,CAAC4B,KAAF,CAAQgE,MAApB;AACH;AACJ,WAhBD,MAgBO,IAAI5F,CAAC,CAACU,WAAN,EAAmB;AACtB,gBAAIsR,IAAI,GAAGzK,oBAAgB,CAACvH,CAAC,CAACU,WAAH,CAAhB,CAAgCK,GAA3C;AACA,gBAAI0G,MAAM,GAAGE,oBAAgB,CAAC3H,CAAC,CAACgB,EAAH,EAAO,IAAP,CAA7B;;AAEA,mBAAO,IAAP,EAAa;AACTyP,cAAAA,IAAI,GAAGzQ,CAAC,CAACU,WAAF,CAAcuR,kBAArB;AACA,kBAAI,CAACxB,IAAL,EAAW;AACX,kBAAIA,IAAI,CAACyB,OAAL,KAAiB,IAArB,EAA2B;;AAE3B,kBAAI3H,SAAS,KAAK,WAAlB,EAA+B;AAC3B,oBAAIhD,oBAAgB,CAACkJ,IAAD,CAAhB,CAAuB1P,GAAvB,GAA6BiR,IAA7B,GAAoCvK,MAApC,IAA8C,CAAlD;AACI;AACP,eAHD,MAGO;AACH,oBAAIF,oBAAgB,CAACkJ,IAAD,CAAhB,CAAuB1P,GAAvB,GAA6BiR,IAA7B,GAAoCvK,MAApC,IAA8C,CAAlD;AACI;AACP;AACJ;;AAED,gBAAIgJ,IAAJ,EAAU;AACNiB,cAAAA,SAAS,GAAG1R,CAAC,CAAC+B,iBAAF,CAAoBuD,uBAApB,CAA4CmL,IAA5C,CAAZ;;AAEA,kBAAIiB,SAAS,KAAK3R,SAAlB;AACI2R,cAAAA,SAAS,GAAG,CAAC,CAAb;AACP;AACJ;;AAEJ,SA5CD,MA4CO;AACH,iBAAO,KAAK5M,KAAL,CAAWyF,SAAS,KAAK,WAAd,GAA4B,OAA5B,GAAsC,MAAjD,EAAyD1F,KAAzD,CAAP;AACH;;AAED8M,QAAAA,WAAW,GAAGpH,SAAS,KAAK,WAA5B;AACH,OA1DM,MA0DA;AACH;AACH;;AAED,UAAI4H,SAAS,GAAGnS,CAAC,CAAC4B,KAAF,CAAQgE,MAAxB;;AAEA,UAAI8L,SAAS,IAAIS,SAAjB,EAA4B;AACxB;AACH;;AAED,UAAIzP,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQ8P,SAAR,CAAX;AACA;AACA,UAAIU,cAAc,GAAGV,SAArB;;AAEA,aAAOhP,IAAI,IAAIA,IAAI,CAACW,cAApB,EAAoC;AAChC,YAAIsO,WAAJ,EAAiB;AACbD,UAAAA,SAAS;AACT,cAAIA,SAAS,KAAK,CAAC,CAAnB,EAAsB;AAClBA,YAAAA,SAAS,GAAGS,SAAZ;AACH;AACJ,SALD,MAKO;AACHT,UAAAA,SAAS;AACT,cAAIA,SAAS,KAAKS,SAAlB,EAA6B;AACzBT,YAAAA,SAAS,GAAG,CAAZ;AACH;AACJ;;AAEDhP,QAAAA,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQ8P,SAAR,CAAP;;AAEA,YAAIA,SAAS,KAAKU,cAAlB,EAAkC;AAC9B;AACH;AACJ;;AAED3B,MAAAA,IAAI,GAAGzQ,CAAC,CAAC+B,iBAAF,CAAoB6J,gBAApB,CAAqC8F,SAArC,CAAP;AACA,WAAKvC,MAAL,CAAYtK,KAAZ,EAAmB4L,IAAI,IAAI,IAA3B,EAAiCiB,SAAjC;;AAEA,UAAI,CAAC,KAAKzK,SAAL,EAAL,EAAuB;AACnB,aAAK0H,oBAAL,CAA0B9J,KAA1B;AACH;AACJ;;AAED,0BAAa;AACT,aAAO,KAAK7D,EAAL,CAAQyL,YAAR,GAAuB,KAAKzL,EAAL,CAAQ6I,YAAtC;AACH;;AAED,sCAAyBnH,IAAzB,EAA+B;AAC3B,UAAM1C,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAID,CAAC,CAACjB,KAAF,IAAWiB,CAAC,CAACf,sBAAjB,EAAyC;;AAErC,YAAI2C,KAAJ,EAAWyQ,UAAX,EAAuBhM,SAAvB;;AAEA,YAAI3D,IAAI,CAACS,MAAT,EAAiB;AACb;;AAEAvB,UAAAA,KAAK,GAAG5B,CAAC,CAAC4B,KAAV;AACAyQ,UAAAA,UAAU,GAAGzQ,KAAK,CAAC5K,OAAN,CAAc0L,IAAd,CAAb;;AAEA,cAAI4P,aAAa,GAAG,CAApB;;AAEA,eAAK,IAAIxM,CAAC,GAAGuM,UAAU,GAAG,CAArB,EAAwBE,GAAG,GAAG3Q,KAAK,CAACgE,MAAzC,EAAiDE,CAAC,GAAGyM,GAArD,EAA0DzM,CAAC,EAA3D,EAA+D;AAC3D,gBAAI2K,IAAI,GAAG7O,KAAK,CAACkE,CAAD,CAAhB;;AAEA;AACA,gBAAI2K,IAAI,CAACtN,MAAL,IAAgB,CAACsN,IAAI,CAACrN,MAAN,IAAgBxB,KAAK,CAACkE,CAAC,GAAG,CAAL,CAAL,CAAa1C,MAAjD;AACI;;AAEJ;AACA,gBAAI,CAAC,CAACqN,IAAI,CAACvN,QAAP,KAAoBR,IAAI,CAACQ,QAA7B;AACI;;AAEJ;AACAuN,YAAAA,IAAI,CAACvN,QAAL,GAAgBR,IAAI,CAACQ,QAArB;;AAEAoP,YAAAA,aAAa;;AAEb;AACA,gBAAIE,MAAM,GAAGxS,CAAC,CAAC+B,iBAAF,CAAoB6J,gBAApB,CAAqC9F,CAArC,CAAb;AACA,gBAAI0M,MAAJ,EAAY;AACRzN,cAAAA,qBAAW,CAACyN,MAAD,YAAYxS,CAAC,CAACpB,aAAd,qBAA6C8D,IAAI,CAACQ,QAAlD,CAAX;AACH;;AAED;AACA,iBAAK0B,QAAL,CAAc,OAAd,EAAuB;AACnBtG,cAAAA,KAAK,EAAEmS,IAAI,CAACnS,KADO;AAEnBoE,cAAAA,IAAI,sBAAE+N,IAAI,CAAClS,YAAD,CAAN,+DAAsBkS,IAFP;AAGnBzL,cAAAA,OAAO,EAAEtC,IAAI,CAACQ,QAHK;AAInB+B,cAAAA,OAAO,EAAEvC,IAAI,CAACS,MAJK;AAKnB+B,cAAAA,eAAe,EAAE,IALE,EAAvB;;AAOH;;AAED;AACA,eAAKN,QAAL,CAAc,YAAd,EAA4B,EAAEtG,KAAK,EAAEoE,IAAI,CAACpE,KAAd,EAAqBoE,IAAI,uBAAEA,IAAI,CAACnE,YAAD,CAAN,iEAAsBmE,IAA/C,EAAqD4P,aAAa,EAAEA,aAApE,EAA5B;AACH,SA1CD,MA0CO,IAAItS,CAAC,CAAC6B,UAAF,GAAe,CAAnB,EAAsB;AACzBD,UAAAA,KAAK,GAAG5B,CAAC,CAAC4B,KAAV;AACAyE,UAAAA,SAAS,GAAGzE,KAAK,CAAC5K,OAAN,CAAc0L,IAAd,CAAZ;AACA2P,UAAAA,UAAU,GAAG,CAAC,CAAd;;AAEA;AACA,eAAK,IAAIvM,GAAC,GAAGO,SAAS,GAAG,CAAzB,EAA4BP,GAAC,IAAI,CAAjC,EAAoCA,GAAC,EAArC,EAAyC;AACrC,gBAAIlE,KAAK,CAACkE,GAAD,CAAL,CAAS3C,MAAb,EAAqB;AACjBkP,cAAAA,UAAU,GAAGvM,GAAb;AACA;AACH;AACJ;;AAED,cAAIuM,UAAU,GAAG,CAAC,CAAlB,EAAqB;AACjB,iBAAKtG,wBAAL,CAA8BsG,UAA9B,EAA0C,IAA1C;AACH;AACJ;AACJ;;AAED,aAAO,IAAP;AACH;;AAED,sCAAyBA,UAAzB,EAAqCI,UAArC,EAAiD;AAC7C,UAAMzS,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAID,CAAC,CAACjB,KAAF,IAAWiB,CAAC,CAACf,sBAAb,IAAuCoT,UAAU,GAAG,CAAC,CAAzD,EAA4D;;AAExD,YAAIzQ,KAAK,GAAG5B,CAAC,CAAC4B,KAAd;AACA,YAAI8Q,SAAS,GAAG9Q,KAAK,CAACyQ,UAAD,CAArB;AACA,YAAI,CAACK,SAAD,IAAc,CAACA,SAAS,CAACvP,MAA7B,EAAqC,OAAO,IAAP;;AAErC,YAAIT,IAAJ,CAAUiQ,UAAU,GAAG,KAAvB,CAA8BC,YAAY,GAAG,KAA7C;;AAEA,aAAK,IAAI9M,CAAC,GAAGuM,UAAU,GAAG,CAArB,EAAwBE,GAAG,GAAG3Q,KAAK,CAACgE,MAAzC,EAAiDE,CAAC,GAAGyM,GAArD,EAA0DzM,CAAC,EAA3D,EAA+D;AAC3DpD,UAAAA,IAAI,GAAGd,KAAK,CAACkE,CAAD,CAAZ;;AAEA;AACA,cAAIpD,IAAI,CAACS,MAAL,IAAgB,CAACT,IAAI,CAACU,MAAN,IAAgBxB,KAAK,CAACkE,CAAC,GAAG,CAAL,CAAL,CAAa1C,MAAjD;AACI;;AAEJ,cAAIV,IAAI,CAACQ,QAAT,EAAmB;AACfyP,YAAAA,UAAU,GAAG,IAAb;AACH,WAFD,MAEO,IAAI,CAACjQ,IAAI,CAACQ,QAAV,EAAoB;AACvB0P,YAAAA,YAAY,GAAG,IAAf;AACH;AACJ;;AAED;AACA,YAAIC,gBAAgB,GAAGF,UAAU,IAAI,CAACC,YAAtC;AACA,YAAI,CAAC,CAACF,SAAS,CAACxP,QAAZ,KAAyB2P,gBAA7B,EAA+C;AAC3C;AACAH,UAAAA,SAAS,CAACxP,QAAV,GAAqB2P,gBAArB;;AAEA;AACA,cAAIL,MAAM,GAAGxS,CAAC,CAAC+B,iBAAF,CAAoB6J,gBAApB,CAAqCyG,UAArC,CAAb;AACA,cAAIG,MAAJ,EAAY;AACRzN,YAAAA,qBAAW,CAACyN,MAAD,YAAYxS,CAAC,CAACpB,aAAd,qBAA6C8T,SAAS,CAACxP,QAAvD,CAAX;AACH;;AAED,cAAIuP,UAAJ,EAAgB;AACZ;AACA,iBAAK7N,QAAL,CAAc,OAAd,EAAuB;AACnBtG,cAAAA,KAAK,EAAEoU,SAAS,CAACpU,KADE;AAEnBoE,cAAAA,IAAI,2BAAEgQ,SAAS,CAACnU,YAAD,CAAX,yEAA2BmU,SAFZ;AAGnB1N,cAAAA,OAAO,EAAEtC,IAAI,CAACQ,QAHK;AAInB+B,cAAAA,OAAO,EAAEvC,IAAI,CAACS,MAJK;AAKnB+B,cAAAA,eAAe,EAAE,KALE,EAAvB;;AAOH;AACJ;AACJ;;AAED,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,4BAAe;AACX,UAAMlF,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAID,CAAC,CAAC8S,oBAAF,KAA2B9S,CAAC,CAAC4B,KAAF,CAAQgE,MAAvC,EAA+C;AAC3C,YAAImN,YAAY,GAAG/S,CAAC,CAACgT,uBAAF,IAA6B,CAAhD;AACIC,QAAAA,gBAAgB,GAAGjT,CAAC,CAAC4C,2BAAF,IAAiC,EADxD;;AAGA,aAAK,IAAIkD,CAAC,GAAG,CAAR,EAAWlE,KAAK,GAAG5B,CAAC,CAAC4B,KAArB,EAA4BmE,KAAK,GAAGnE,KAAK,CAACgE,MAA/C;AACKE,QAAAA,CAAC,GAAGC,KADT;AAEKD,QAAAA,CAAC,EAFN,EAEU;;AAEN,cAAMpD,IAAI,GAAGd,KAAK,CAACkE,CAAD,CAAlB;AACA,cAAIoN,IAAI,GAAGxQ,IAAI,CAACC,KAAhB;AACA,cAAIuQ,IAAI,IAAI,IAAZ;AACIA,UAAAA,IAAI,GAAGxQ,IAAI,CAACpE,KAAZ;AACJ,cAAI4U,IAAI,IAAI,IAAZ;AACIA,UAAAA,IAAI,GAAG,EAAP;;AAEJ,cAAItN,MAAM,GAAGsN,IAAI,CAACtN,MAAlB;AACA,cAAIA,MAAM,GAAGmN,YAAb,EAA2B;AACvBA,YAAAA,YAAY,GAAGnN,MAAf;AACAqN,YAAAA,gBAAgB,GAAGC,IAAnB;AACH;AACJ;;AAEDlT,QAAAA,CAAC,CAAC8S,oBAAF,GAAyB9S,CAAC,CAAC4B,KAAF,CAAQgE,MAAjC;AACA5F,QAAAA,CAAC,CAACgT,uBAAF,GAA4BD,YAA5B;AACA/S,QAAAA,CAAC,CAAC4C,2BAAF,GAAgCqQ,gBAAhC;AACH;;AAED,UAAIjT,CAAC,CAACX,aAAF,IAAmBW,CAAC,CAAC+B,iBAAF,CAAoB0G,SAApB,EAAvB,EAAwD;AACpDzI,QAAAA,CAAC,CAAC+B,iBAAF,CAAoBoR,sBAApB,CAA2C1U,WAA3C,EAAwD,IAAxD,EAA8D,UAAA+D,MAAM,EAAI;AACpExC,UAAAA,CAAC,CAACoT,oBAAF,GAAyBtL,mBAAe,CAACtF,MAAD,EAAS,IAAT,EAAe,IAAf,CAAxC;AACH,SAFD;AAGH;;AAED,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,mCAAsB6Q,eAAtB,EAAuC;AACnC,UAAMrT,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI2B,KAAK,GAAG5B,CAAC,CAAC4B,KAAd;AACA,UAAIyR,eAAe,KAAKtT,SAAxB,EAAmC;AAC/BsT,QAAAA,eAAe,GAAGzR,KAAK,CAACgE,MAAxB;AACH;;AAED,UAAI0N,eAAe,GAAGD,eAAe,IAAIrT,CAAC,CAACV,eAA3C;;AAEA,UAAIgU,eAAe,KAAKtT,CAAC,CAAC+B,iBAAF,CAAoB0G,SAApB,EAAxB,EAAyD;AACrDzI,QAAAA,CAAC,CAAC+B,iBAAF,CAAoBwR,UAApB,CAA+BD,eAA/B,EAAgDnN,MAAhD;AACH;;AAED,aAAO,IAAP;AACH;;AAED,gCAAmBzD,IAAnB,EAAyBF,MAAzB,EAAiC;AAC7B,UAAMxC,CAAC,GAAG,KAAKC,EAAf;;AAEA;AACA;;AAEA,UAAI,CAACD,CAAC,CAACK,UAAH,IAAiBL,CAAC,CAACK,UAAF,CAAaqC,IAAI,CAACnE,YAAD,CAAJ,IAAoBmE,IAAjC,EAAuCF,MAAvC,MAAmD,KAAxE,EAA+E;AAC3EA,QAAAA,MAAM,CAAC8J,WAAP,CAAmB9K,iBAAa,CAAC,MAAD,EAAS;AACrCC,UAAAA,KAAK,YAAKzB,CAAC,CAACpB,aAAP,iBADgC;AAErC4U,UAAAA,WAAW,EAAE9Q,IAAI,CAACC,KAFmB,EAAT,CAAhC;;;AAKA,YAAI3C,CAAC,CAACjB,KAAN,EAAa;AACT,cAAI,CAAC2D,IAAI,CAACO,QAAV,EAAoB;AAChBT,YAAAA,MAAM,CAACiR,YAAP;AACIjS,YAAAA,iBAAa,CAAC,MAAD,EAAS,EAAEC,KAAK,EAAE,UAAT,EAAT,CADjB;AAEIe,YAAAA,MAAM,CAACqN,UAFX;;AAIH;AACJ;AACJ;AACJ;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,0BAAa7I,eAAb,EAA8B;AAC1B,UAAMhH,CAAC,GAAG,KAAKC,EAAf,CAAmBe,EAAE,GAAGhB,CAAC,CAACgB,EAA1B;;AAEA,UAAI6G,WAAW,GAAG,CAAlB;;AAEA,UAAIb,eAAJ,EAAqB;AACjB;AACAa,QAAAA,WAAW,GAAGb,eAAe,CAACa,WAA9B;AACA,YAAIA,WAAW,IAAI,IAAnB,EAAyB;AACrBA,UAAAA,WAAW,GAAGC,mBAAe,CAACd,eAAe,CAAC3B,MAAjB,EAAyB,IAAzB,EAA+B,IAA/B,CAA7B;AACH;AACJ;;AAED,UAAIqO,SAAS,GAAG,CAAhB;AACA,UAAI,CAAC1T,CAAC,CAACd,mBAAP,EAA4B;AACxB,YAAIc,CAAC,CAACX,aAAF,IAAmBW,CAAC,CAAC+B,iBAAF,CAAoB0G,SAApB,EAAvB,EAAwD;AACpDiL,UAAAA,SAAS,GAAG1T,CAAC,CAACoT,oBAAd;AACH,SAFD,MAEO;AACHpS,UAAAA,EAAE,CAACE,KAAH,CAAS0G,KAAT,GAAiB,EAAjB,CADG;AAEH8L,UAAAA,SAAS,GAAG5L,mBAAe,CAAC9G,EAAD,EAAK,IAAL,EAAW,IAAX,CAA3B;AACH;AACJ;;AAED,UAAI2S,aAAa,GAAG/J,IAAI,CAAClT,GAAL,CAASgd,SAAT,EAAoB7L,WAApB,CAApB;;AAEA+L,MAAAA,mBAAe,CAAC5S,EAAD,EAAK2S,aAAL,EAAoB,IAApB,EAA0B,IAA1B,CAAf;;AAEA,UAAM3K,eAAe,GAAGC,gBAAgB,CAACjI,EAAD,CAAxC;AACA,UAAI6S,YAAY,GAAG,CAACxK,UAAU,CAACL,eAAe,CAAC8K,eAAjB,CAAV,IAA+C,CAAhD,KAAsDzK,UAAU,CAACL,eAAe,CAAC+K,gBAAjB,CAAV,IAAgD,CAAtG,CAAnB;AACA,UAAI7I,WAAW,GAAGlK,EAAE,CAACkK,WAAH,GAAiB2I,YAAnC;AACA,UAAI3I,WAAW,GAAGyI,aAAlB,EAAiC;AAC7B;AACA,YAAIK,KAAK,GAAG9I,WAAW,GAAGyI,aAA1B;AACA3S,QAAAA,EAAE,CAACE,KAAH,CAAS0G,KAAT,aAAoByB,UAAU,CAACrI,EAAE,CAACE,KAAH,CAAS0G,KAAV,CAAV,GAA6BoM,KAAjD;AACAL,QAAAA,aAAa,GAAGzI,WAAhB;AACH;;AAED,aAAOyI,aAAP;AACH;;AChmEL,YAAY,CAAC;AACb,IAAI7gB,iBAAe,GAAGnB,iBAAyC,CAAC;AAChE,IAAI0L,kBAAgB,GAAG/K,kBAA0C,CAAC;AAClE,IAAI,SAAS,GAAGC,SAAiC,CAAC;AAClD,IAAI4D,qBAAmB,GAAG1D,aAAsC,CAAC;AACjE,IAAIwK,gBAAc,GAAG1J,gBAAuC,CAAC;AAC7D;AACA,IAAI,cAAc,GAAG,gBAAgB,CAAC;AACtC,IAAI6H,kBAAgB,GAAGjF,qBAAmB,CAAC,GAAG,CAAC;AAC/C,IAAI,gBAAgB,GAAGA,qBAAmB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACA,iBAAc,GAAG8G,gBAAc,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,QAAQ,EAAE,IAAI,EAAE;AAC1E,EAAE7B,kBAAgB,CAAC,IAAI,EAAE;AACzB,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI,MAAM,EAAEtI,iBAAe,CAAC,QAAQ,CAAC;AACrC,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,EAAE,IAAI;AACd,GAAG,CAAC,CAAC;AACL;AACA;AACA,CAAC,EAAE,YAAY;AACf,EAAE,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACrC,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5B,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACxB,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AAC5B,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE;AACzC,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;AAC7B,IAAI,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5C,GAAG;AACH,EAAE,IAAI,IAAI,IAAI,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC3D,EAAE,IAAI,IAAI,IAAI,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACrE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACxD,CAAC,EAAE,QAAQ,CAAC,CAAC;AACb;AACA;AACA;AACA;AACA,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;AACtC;AACA;AACAuK,kBAAgB,CAAC,MAAM,CAAC,CAAC;AACzBA,kBAAgB,CAAC,QAAQ,CAAC,CAAC;AAC3BA,kBAAgB,CAAC,SAAS,CAAC;;;;;;ACpD3B;AACA,IAAI3L,OAAK,GAAGC,OAA6B,CAAC;AAC1C;IACA,wBAAc,GAAGD,OAAK,CAAC,YAAY;AACnC,EAAE,IAAI,OAAO,WAAW,IAAI,UAAU,EAAE;AACxC,IAAI,IAAI,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AACpC;AACA,IAAI,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACtF,GAAG;AACH,CAAC,CAAC;;ACTF,IAAIA,OAAK,GAAGC,OAA6B,CAAC;AAC1C,IAAIqB,UAAQ,GAAGV,UAAiC,CAAC;AACjD,IAAI,OAAO,GAAGC,YAAmC,CAAC;AAClD,IAAI,2BAA2B,GAAGE,wBAAmD,CAAC;AACtF;AACA;AACA,IAAI,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;AACxC,IAAI,mBAAmB,GAAGf,OAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnE;AACA;AACA;IACA,kBAAc,GAAG,CAAC,mBAAmB,IAAI,2BAA2B,IAAI,SAAS,YAAY,CAAC,EAAE,EAAE;AAClG,EAAE,IAAI,CAACsB,UAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,CAAC;AAClC,EAAE,IAAI,2BAA2B,IAAI,OAAO,CAAC,EAAE,CAAC,IAAI,aAAa,EAAE,OAAO,KAAK,CAAC;AAChF,EAAE,OAAO,aAAa,GAAG,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AAClD,CAAC,GAAG,aAAa;;ACfjB,IAAItB,OAAK,GAAGC,OAA6B,CAAC;AAC1C;IACA,QAAc,GAAG,CAACD,OAAK,CAAC,YAAY;AACpC;AACA,EAAE,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC;;ACLF,IAAIuH,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAIO,aAAW,GAAGI,mBAA6C,CAAC;AAChE,IAAI,UAAU,GAAGC,YAAmC,CAAC;AACrD,IAAIS,UAAQ,GAAGP,UAAiC,CAAC;AACjD,IAAI,MAAM,GAAGc,gBAAwC,CAAC;AACtD,IAAIO,gBAAc,GAAGW,oBAA8C,CAAC,CAAC,CAAC;AACtE,IAAI,yBAAyB,GAAGI,yBAAqD,CAAC;AACtF,IAAI,iCAAiC,GAAGU,iCAA8D,CAAC;AACvG,IAAI,YAAY,GAAGW,kBAA4C,CAAC;AAChE,IAAI,GAAG,GAAGgD,KAA2B,CAAC;AACtC,IAAI,QAAQ,GAAGC,QAAgC,CAAC;AAChD;AACA,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,IAAI,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3B,IAAI,EAAE,GAAG,CAAC,CAAC;AACX;AACA,IAAI,WAAW,GAAG,UAAU,EAAE,EAAE;AAChC,EAAErF,gBAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE;AACxC,IAAI,QAAQ,EAAE,GAAG,GAAG,EAAE,EAAE;AACxB,IAAI,QAAQ,EAAE,EAAE;AAChB,GAAG,EAAE,CAAC,CAAC;AACP,CAAC,CAAC;AACF;AACA,IAAImgB,SAAO,GAAG,UAAU,EAAE,EAAE,MAAM,EAAE;AACpC;AACA,EAAE,IAAI,CAACjhB,UAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,OAAO,EAAE,IAAI,QAAQ,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,QAAQ,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;AAClG,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE;AAC7B;AACA,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC;AACtC;AACA,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC;AAC5B;AACA,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;AACpB;AACA,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;AACjC,CAAC,CAAC;AACF;AACA,IAAI,WAAW,GAAG,UAAU,EAAE,EAAE,MAAM,EAAE;AACxC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE;AAC7B;AACA,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AACvC;AACA,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;AAC9B;AACA,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;AACpB;AACA,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;AACjC,CAAC,CAAC;AACF;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,EAAE,EAAE;AAC7B,EAAE,IAAI,QAAQ,IAAI,QAAQ,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;AACzF,EAAE,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AACF;AACA,IAAI,MAAM,GAAG,YAAY;AACzB,EAAE,IAAI,CAAC,MAAM,GAAG,YAAY,eAAe,CAAC;AAC5C,EAAE,QAAQ,GAAG,IAAI,CAAC;AAClB,EAAE,IAAI,mBAAmB,GAAG,yBAAyB,CAAC,CAAC,CAAC;AACxD,EAAE,IAAI,MAAM,GAAGd,aAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACtC,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACrB;AACA;AACA,EAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;AACxC,IAAI,yBAAyB,CAAC,CAAC,GAAG,UAAU,EAAE,EAAE;AAChD,MAAM,IAAI,MAAM,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;AAC3C,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/D,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACpC,UAAU,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,UAAU,MAAM;AAChB,SAAS;AACT,OAAO,CAAC,OAAO,MAAM,CAAC;AACtB,KAAK,CAAC;AACN;AACA,IAAI+G,GAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;AACtD,MAAM,mBAAmB,EAAE,iCAAiC,CAAC,CAAC;AAC9D,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC,CAAC;AACF;AACA,IAAI,IAAI,GAAGib,0BAAc,GAAG;AAC5B,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,OAAO,EAAED,SAAO;AAClB,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,QAAQ,EAAE,QAAQ;AACpB,CAAC,CAAC;AACF;AACA,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI;;;;ACxF3B,IAAIxiB,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAIM,MAAI,GAAGK,mBAA6C,CAAC;AACzD,IAAIV,MAAI,GAAGW,YAAqC,CAAC;AACjD,IAAI,QAAQ,GAAGE,UAAiC,CAAC;AACjD,IAAI,WAAW,GAAGc,aAAqC,CAAC;AACxD,IAAI,qBAAqB,GAAGkB,uBAAgD,CAAC;AAC7E,IAAIqC,mBAAiB,GAAGjC,mBAA4C,CAAC;AACrE,IAAIxB,eAAa,GAAGkC,mBAA8C,CAAC;AACnE,IAAI,WAAW,GAAGW,aAAoC,CAAC;AACvD,IAAI,iBAAiB,GAAGgD,mBAA2C,CAAC;AACpE,IAAI,aAAa,GAAGC,eAAsC,CAAC;AAC3D;AACA,IAAIxG,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC;AACA,IAAI,MAAM,GAAG,UAAU,OAAO,EAAE,MAAM,EAAE;AACxC,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACzB,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,CAAC,CAAC;AACF;AACA,IAAI,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;AACvC;IACA0iB,SAAc,GAAG,UAAU,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE;AAC/D,EAAE,IAAI,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;AACrC,EAAE,IAAI,UAAU,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;AACrD,EAAE,IAAI,WAAW,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;AACvD,EAAE,IAAI,WAAW,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;AACvD,EAAE,IAAI,EAAE,GAAGliB,MAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AACvC,EAAE,IAAI,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;AAC1D;AACA,EAAE,IAAI,IAAI,GAAG,UAAU,SAAS,EAAE;AAClC,IAAI,IAAI,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC/D,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvC,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,MAAM,GAAG,UAAU,KAAK,EAAE;AAChC,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,MAAM,OAAO,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,KAAK,CAAC,OAAO,WAAW,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACvD,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,QAAQ,GAAG,QAAQ,CAAC;AACxB,GAAG,MAAM;AACT,IAAI,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,MAAM,EAAE,MAAMU,WAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAC,CAAC;AAC7E;AACA,IAAI,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;AACvC,MAAM,KAAK,KAAK,GAAG,CAAC,EAAE,MAAM,GAAGmE,mBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;AACrF,QAAQ,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,QAAQ,IAAI,MAAM,IAAIzD,eAAa,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC;AAC5E,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AACvB,EAAE,OAAO,CAAC,CAAC,IAAI,GAAGzB,MAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE;AAC9C,IAAI,IAAI;AACR,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,KAAK,CAAC,OAAO,KAAK,EAAE;AACpB,MAAM,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,IAAIyB,eAAa,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC;AACrG,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;;ACjED,IAAI5B,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAI,aAAa,GAAGW,mBAA8C,CAAC;AACnE;AACA,IAAIK,WAAS,GAAGlB,QAAM,CAAC,SAAS,CAAC;AACjC;IACA2iB,YAAc,GAAG,UAAU,EAAE,EAAE,SAAS,EAAE;AAC1C,EAAE,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;AAC9C,EAAE,MAAMzhB,WAAS,CAAC,sBAAsB,CAAC,CAAC;AAC1C,CAAC;;ACRD,YAAY,CAAC;AACb,IAAIsG,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAIF,QAAM,GAAGa,QAA8B,CAAC;AAC5C,IAAIJ,aAAW,GAAGK,mBAA6C,CAAC;AAChE,IAAI,QAAQ,GAAGE,UAAiC,CAAC;AACjD,IAAIkF,UAAQ,GAAGpE,kBAAgC,CAAC;AAChD,IAAI,sBAAsB,GAAGkB,0BAAyC,CAAC;AACvE,IAAI0f,SAAO,GAAGtf,SAA+B,CAAC;AAC9C,IAAIuf,YAAU,GAAG7e,YAAmC,CAAC;AACrD,IAAI,UAAU,GAAGW,YAAmC,CAAC;AACrD,IAAIlD,UAAQ,GAAGkG,UAAiC,CAAC;AACjD,IAAIxH,OAAK,GAAGyH,OAA6B,CAAC;AAC1C,IAAI,2BAA2B,GAAGC,6BAAsD,CAAC;AACzF,IAAI,cAAc,GAAGC,gBAAyC,CAAC;AAC/D,IAAI,iBAAiB,GAAGC,mBAA2C,CAAC;AACpE;IACA+a,YAAc,GAAG,UAAU,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE;AAC9D,EAAE,IAAI,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACtD,EAAE,IAAI,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACxD,EAAE,IAAI,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AACrC,EAAE,IAAI,iBAAiB,GAAG5iB,QAAM,CAAC,gBAAgB,CAAC,CAAC;AACnD,EAAE,IAAI,eAAe,GAAG,iBAAiB,IAAI,iBAAiB,CAAC,SAAS,CAAC;AACzE,EAAE,IAAI,WAAW,GAAG,iBAAiB,CAAC;AACtC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC;AACpB;AACA,EAAE,IAAI,SAAS,GAAG,UAAU,GAAG,EAAE;AACjC,IAAI,IAAI,qBAAqB,GAAGS,aAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,IAAIyF,UAAQ,CAAC,eAAe,EAAE,GAAG;AACjC,MAAM,GAAG,IAAI,KAAK,GAAG,SAAS,GAAG,CAAC,KAAK,EAAE;AACzC,QAAQ,qBAAqB,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAC7D,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO,GAAG,GAAG,IAAI,QAAQ,GAAG,UAAU,GAAG,EAAE;AAC3C,QAAQ,OAAO,OAAO,IAAI,CAAC3E,UAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,qBAAqB,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACpG,OAAO,GAAG,GAAG,IAAI,KAAK,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE;AAC3C,QAAQ,OAAO,OAAO,IAAI,CAACA,UAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,qBAAqB,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACxG,OAAO,GAAG,GAAG,IAAI,KAAK,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE;AAC3C,QAAQ,OAAO,OAAO,IAAI,CAACA,UAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,qBAAqB,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACpG,OAAO,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE;AACnC,QAAQ,qBAAqB,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;AAChE,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP,KAAK,CAAC;AACN,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,OAAO,GAAG,QAAQ;AACxB,IAAI,gBAAgB;AACpB,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,IAAI,eAAe,CAAC,OAAO,IAAI,CAACtB,OAAK,CAAC,YAAY;AACjG,MAAM,IAAI,iBAAiB,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;AAC/C,KAAK,CAAC,CAAC;AACP,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,OAAO,EAAE;AACf;AACA,IAAI,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAClF,IAAI,sBAAsB,CAAC,MAAM,EAAE,CAAC;AACpC,GAAG,MAAM,IAAI,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE;AAC/C,IAAI,IAAI,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;AACrC;AACA,IAAI,IAAI,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC;AAC3E;AACA,IAAI,IAAI,oBAAoB,GAAGA,OAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvE;AACA;AACA,IAAI,IAAI,gBAAgB,GAAG,2BAA2B,CAAC,UAAU,QAAQ,EAAE,EAAE,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;AACjH;AACA,IAAI,IAAI,UAAU,GAAG,CAAC,OAAO,IAAIA,OAAK,CAAC,YAAY;AACnD;AACA,MAAM,IAAI,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAC9C,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC;AACpB,MAAM,OAAO,KAAK,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACrD,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,KAAK,EAAE,QAAQ,EAAE;AACvD,QAAQ0iB,YAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AAC3C,QAAQ,IAAI,IAAI,GAAG,iBAAiB,CAAC,IAAI,iBAAiB,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AAClF,QAAQ,IAAI,QAAQ,IAAI,SAAS,EAAED,SAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACtG,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO,CAAC,CAAC;AACT,MAAM,WAAW,CAAC,SAAS,GAAG,eAAe,CAAC;AAC9C,MAAM,eAAe,CAAC,WAAW,GAAG,WAAW,CAAC;AAChD,KAAK;AACL;AACA,IAAI,IAAI,oBAAoB,IAAI,UAAU,EAAE;AAC5C,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1B,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;AACvB,MAAM,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK;AACL;AACA,IAAI,IAAI,UAAU,IAAI,cAAc,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AACvD;AACA;AACA,IAAI,IAAI,OAAO,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,eAAe,CAAC,KAAK,CAAC;AACvE,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,WAAW,CAAC;AAC3C,EAAElb,GAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,IAAI,iBAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC1E;AACA,EAAE,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAChD;AACA,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;AACxE;AACA,EAAE,OAAO,WAAW,CAAC;AACrB,CAAC;;ACxGD,IAAI,QAAQ,GAAGtH,kBAAgC,CAAC;AAChD;IACA2iB,aAAc,GAAG,UAAU,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE;AACjD,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AAChE,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;;ACLD,YAAY,CAAC;AACb,IAAIxgB,gBAAc,GAAGnC,oBAA8C,CAAC,CAAC,CAAC;AACtE,IAAI,MAAM,GAAGW,YAAqC,CAAC;AACnD,IAAI,WAAW,GAAGC,aAAoC,CAAC;AACvD,IAAI,IAAI,GAAGE,mBAA6C,CAAC;AACzD,IAAI,UAAU,GAAGc,YAAmC,CAAC;AACrD,IAAI,OAAO,GAAGkB,SAA+B,CAAC;AAC9C,IAAI,cAAc,GAAGI,gBAAuC,CAAC;AAC7D,IAAI,UAAU,GAAGU,YAAmC,CAAC;AACrD,IAAIH,aAAW,GAAGc,WAAmC,CAAC;AACtD,IAAI,OAAO,GAAGgD,0BAAyC,CAAC,OAAO,CAAC;AAChE,IAAI,mBAAmB,GAAGC,aAAsC,CAAC;AACjE;AACA,IAAI,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC;AAC/C,IAAI,sBAAsB,GAAG,mBAAmB,CAAC,SAAS,CAAC;AAC3D;IACAob,kBAAc,GAAG;AACjB,EAAE,cAAc,EAAE,UAAU,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE;AACtE,IAAI,IAAI,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,QAAQ,EAAE;AACxD,MAAM,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAClC,MAAM,gBAAgB,CAAC,IAAI,EAAE;AAC7B,QAAQ,IAAI,EAAE,gBAAgB;AAC9B,QAAQ,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;AAC3B,QAAQ,KAAK,EAAE,SAAS;AACxB,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,IAAI,EAAE,CAAC;AACf,OAAO,CAAC,CAAC;AACT,MAAM,IAAI,CAACnf,aAAW,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACtC,MAAM,IAAI,QAAQ,IAAI,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACpG,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;AAC1C;AACA,IAAI,IAAI,gBAAgB,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;AACpE;AACA,IAAI,IAAI,MAAM,GAAG,UAAU,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;AAC7C,MAAM,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC,MAAM,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACtC,MAAM,IAAI,QAAQ,EAAE,KAAK,CAAC;AAC1B;AACA,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;AAC5B;AACA,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG;AAC7B,UAAU,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;AAC3C,UAAU,GAAG,EAAE,GAAG;AAClB,UAAU,KAAK,EAAE,KAAK;AACtB,UAAU,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC,IAAI;AACzC,UAAU,IAAI,EAAE,SAAS;AACzB,UAAU,OAAO,EAAE,KAAK;AACxB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;AAC9C,QAAQ,IAAI,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;AAC5C,QAAQ,IAAIA,aAAW,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AACtC,aAAa,IAAI,CAAC,IAAI,EAAE,CAAC;AACzB;AACA,QAAQ,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACtD,OAAO,CAAC,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC;AACN;AACA,IAAI,IAAI,QAAQ,GAAG,UAAU,IAAI,EAAE,GAAG,EAAE;AACxC,MAAM,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC;AACA,MAAM,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAC/B,MAAM,IAAI,KAAK,CAAC;AAChB,MAAM,IAAI,KAAK,KAAK,GAAG,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACnD;AACA,MAAM,KAAK,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE;AAC3D,QAAQ,IAAI,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,OAAO,KAAK,CAAC;AAC3C,OAAO;AACP,KAAK,CAAC;AACN;AACA,IAAI,WAAW,CAAC,SAAS,EAAE;AAC3B;AACA;AACA;AACA,MAAM,KAAK,EAAE,SAAS,KAAK,GAAG;AAC9B,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC;AACxB,QAAQ,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;AAC/B,QAAQ,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAChC,QAAQ,OAAO,KAAK,EAAE;AACtB,UAAU,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AAC/B,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC;AAC/E,UAAU,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACnC,UAAU,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;AAC7B,SAAS;AACT,QAAQ,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;AAC7C,QAAQ,IAAIA,aAAW,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;AACxC,aAAa,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAC3B,OAAO;AACP;AACA;AACA;AACA,MAAM,QAAQ,EAAE,UAAU,GAAG,EAAE;AAC/B,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC;AACxB,QAAQ,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAQ,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACxC,QAAQ,IAAI,KAAK,EAAE;AACnB,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAChC,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;AACpC,UAAU,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1C,UAAU,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AAC/B,UAAU,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrC,UAAU,IAAI,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzC,UAAU,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;AACvD,UAAU,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;AACrD,UAAU,IAAIA,aAAW,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AACxC,eAAe,IAAI,CAAC,IAAI,EAAE,CAAC;AAC3B,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;AACzB,OAAO;AACP;AACA;AACA;AACA,MAAM,OAAO,EAAE,SAAS,OAAO,CAAC,UAAU,2BAA2B;AACrE,QAAQ,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAC9F,QAAQ,IAAI,KAAK,CAAC;AAClB,QAAQ,OAAO,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE;AACzD,UAAU,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACtD;AACA,UAAU,OAAO,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;AAChE,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,MAAM,GAAG,EAAE,SAAS,GAAG,CAAC,GAAG,EAAE;AAC7B,QAAQ,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACrC,OAAO;AACP,KAAK,CAAC,CAAC;AACP;AACA,IAAI,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG;AACpC;AACA;AACA,MAAM,GAAG,EAAE,SAAS,GAAG,CAAC,GAAG,EAAE;AAC7B,QAAQ,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACxC,QAAQ,OAAO,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;AACpC,OAAO;AACP;AACA;AACA,MAAM,GAAG,EAAE,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE;AACpC,QAAQ,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;AACxD,OAAO;AACP,KAAK,GAAG;AACR;AACA;AACA,MAAM,GAAG,EAAE,SAAS,GAAG,CAAC,KAAK,EAAE;AAC/B,QAAQ,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;AACpE,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,IAAIA,aAAW,EAAEtB,gBAAc,CAAC,SAAS,EAAE,MAAM,EAAE;AACvD,MAAM,GAAG,EAAE,YAAY;AACvB,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AAC3C,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,WAAW,CAAC;AACvB,GAAG;AACH,EAAE,SAAS,EAAE,UAAU,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE;AAC9D,IAAI,IAAI,aAAa,GAAG,gBAAgB,GAAG,WAAW,CAAC;AACvD,IAAI,IAAI,0BAA0B,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;AAC9E,IAAI,IAAI,wBAAwB,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,WAAW,EAAE,gBAAgB,EAAE,UAAU,QAAQ,EAAE,IAAI,EAAE;AAC5E,MAAM,gBAAgB,CAAC,IAAI,EAAE;AAC7B,QAAQ,IAAI,EAAE,aAAa;AAC3B,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,KAAK,EAAE,0BAA0B,CAAC,QAAQ,CAAC;AACnD,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,IAAI,EAAE,SAAS;AACvB,OAAO,CAAC,CAAC;AACT,KAAK,EAAE,YAAY;AACnB,MAAM,IAAI,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;AACjD,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAC5B,MAAM,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA,MAAM,OAAO,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC5D;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC3F;AACA,QAAQ,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;AACjC,QAAQ,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAChD,OAAO;AACP;AACA,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACnE,MAAM,IAAI,IAAI,IAAI,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACvE,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC9D,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrD;AACA;AACA;AACA;AACA,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACjC,GAAG;AACH,CAAC;;AC3MD,YAAY,CAAC;AACb,IAAI,UAAU,GAAGnC,YAAkC,CAAC;AACpD,IAAI,gBAAgB,GAAGW,kBAAyC,CAAC;AACjE;AACA;AACA;AACA,UAAU,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE;AAClC,EAAE,OAAO,SAAS,GAAG,GAAG,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC;AAC5F,CAAC,EAAE,gBAAgB,CAAC;;;;ACRpB;AACA;IACA,YAAc,GAAG;AACjB,EAAE,WAAW,EAAE,CAAC;AAChB,EAAE,mBAAmB,EAAE,CAAC;AACxB,EAAE,YAAY,EAAE,CAAC;AACjB,EAAE,cAAc,EAAE,CAAC;AACnB,EAAE,WAAW,EAAE,CAAC;AAChB,EAAE,aAAa,EAAE,CAAC;AAClB,EAAE,YAAY,EAAE,CAAC;AACjB,EAAE,oBAAoB,EAAE,CAAC;AACzB,EAAE,QAAQ,EAAE,CAAC;AACb,EAAE,iBAAiB,EAAE,CAAC;AACtB,EAAE,cAAc,EAAE,CAAC;AACnB,EAAE,eAAe,EAAE,CAAC;AACpB,EAAE,iBAAiB,EAAE,CAAC;AACtB,EAAE,SAAS,EAAE,CAAC;AACd,EAAE,aAAa,EAAE,CAAC;AAClB,EAAE,YAAY,EAAE,CAAC;AACjB,EAAE,QAAQ,EAAE,CAAC;AACb,EAAE,gBAAgB,EAAE,CAAC;AACrB,EAAE,MAAM,EAAE,CAAC;AACX,EAAE,WAAW,EAAE,CAAC;AAChB,EAAE,aAAa,EAAE,CAAC;AAClB,EAAE,aAAa,EAAE,CAAC;AAClB,EAAE,cAAc,EAAE,CAAC;AACnB,EAAE,YAAY,EAAE,CAAC;AACjB,EAAE,aAAa,EAAE,CAAC;AAClB,EAAE,gBAAgB,EAAE,CAAC;AACrB,EAAE,gBAAgB,EAAE,CAAC;AACrB,EAAE,cAAc,EAAE,CAAC;AACnB,EAAE,gBAAgB,EAAE,CAAC;AACrB,EAAE,aAAa,EAAE,CAAC;AAClB,EAAE,SAAS,EAAE,CAAC;AACd,CAAC;;AClCD;AACA,IAAI,qBAAqB,GAAGX,uBAA+C,CAAC;AAC5E;AACA,IAAI,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;AACxD,IAAI6iB,uBAAqB,GAAG,SAAS,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC;AAClG;IACA,qBAAc,GAAGA,uBAAqB,KAAK,MAAM,CAAC,SAAS,GAAG,SAAS,GAAGA,uBAAqB;;ACN/F,IAAI/iB,QAAM,GAAGE,QAA8B,CAAC;AAC5C,IAAI,YAAY,GAAGW,YAAqC,CAAC;AACzD,IAAI,qBAAqB,GAAGC,qBAAgD,CAAC;AAC7E,IAAI,oBAAoB,GAAGE,iBAAuC,CAAC;AACnE,IAAI,2BAA2B,GAAGc,6BAAsD,CAAC;AACzF,IAAIqB,iBAAe,GAAGH,iBAAyC,CAAC;AAChE;AACA,IAAI,QAAQ,GAAGG,iBAAe,CAAC,UAAU,CAAC,CAAC;AAC3C,IAAI,aAAa,GAAGA,iBAAe,CAAC,aAAa,CAAC,CAAC;AACnD,IAAI,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC;AAC9C;AACA,IAAI,eAAe,GAAG,UAAU,mBAAmB,EAAE,eAAe,EAAE;AACtE,EAAE,IAAI,mBAAmB,EAAE;AAC3B;AACA,IAAI,IAAI,mBAAmB,CAAC,QAAQ,CAAC,KAAK,WAAW,EAAE,IAAI;AAC3D,MAAM,2BAA2B,CAAC,mBAAmB,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC9E,KAAK,CAAC,OAAO,KAAK,EAAE;AACpB,MAAM,mBAAmB,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;AAClD,KAAK;AACL,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE;AAC7C,MAAM,2BAA2B,CAAC,mBAAmB,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;AACvF,KAAK;AACL,IAAI,IAAI,YAAY,CAAC,eAAe,CAAC,EAAE,KAAK,IAAI,WAAW,IAAI,oBAAoB,EAAE;AACrF;AACA,MAAM,IAAI,mBAAmB,CAAC,WAAW,CAAC,KAAK,oBAAoB,CAAC,WAAW,CAAC,EAAE,IAAI;AACtF,QAAQ,2BAA2B,CAAC,mBAAmB,EAAE,WAAW,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;AACzG,OAAO,CAAC,OAAO,KAAK,EAAE;AACtB,QAAQ,mBAAmB,CAAC,WAAW,CAAC,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;AAC7E,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACF;AACA,KAAK,IAAI,eAAe,IAAI,YAAY,EAAE;AAC1C,EAAE,eAAe,CAACnD,QAAM,CAAC,eAAe,CAAC,IAAIA,QAAM,CAAC,eAAe,CAAC,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AACjG,CAAC;AACD;AACA,eAAe,CAAC,qBAAqB,EAAE,cAAc,CAAC;;;;ACrCtD,YAAY,CAAC;AACb,IAAIwH,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAIF,QAAM,GAAGa,QAA8B,CAAC;AAC5C,IAAI,OAAO,GAAGC,SAAgC,CAAC;AAC/C,IAAI,aAAa,GAAGE,eAAsC,CAAC;AAC3D,IAAI,QAAQ,GAAGc,UAAiC,CAAC;AACjD,IAAI,eAAe,GAAGkB,iBAAyC,CAAC;AAChE,IAAIqC,mBAAiB,GAAGjC,mBAA4C,CAAC;AACrE,IAAI,eAAe,GAAGU,iBAAyC,CAAC;AAChE,IAAI,cAAc,GAAGW,gBAAuC,CAAC;AAC7D,IAAI,eAAe,GAAGgD,iBAAyC,CAAC;AAChE,IAAIuC,8BAA4B,GAAGtC,8BAAwD,CAAC;AAC5F,IAAI,QAAQ,GAAGC,YAAmC,CAAC;AACnD;AACA,IAAIgE,qBAAmB,GAAG3B,8BAA4B,CAAC,OAAO,CAAC,CAAC;AAChE;AACA,IAAI,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;AACzC,IAAI3C,OAAK,GAAGrH,QAAM,CAAC,KAAK,CAAC;AACzB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACnB;AACA;AACA;AACA;AACAwH,GAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAACmE,qBAAmB,EAAE,EAAE;AAClE,EAAE,KAAK,EAAE,SAAS,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;AACpC,IAAI,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;AAClC,IAAI,IAAI,MAAM,GAAGtG,mBAAiB,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3C,IAAI,IAAI,GAAG,GAAG,eAAe,CAAC,GAAG,KAAK,SAAS,GAAG,MAAM,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC;AACxE;AACA,IAAI,IAAI,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/B,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;AACpB,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;AAClC;AACA,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC,KAAK,WAAW,KAAKgC,OAAK,IAAI,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE;AACnG,QAAQ,WAAW,GAAG,SAAS,CAAC;AAChC,OAAO,MAAM,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE;AACxC,QAAQ,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAC3C,QAAQ,IAAI,WAAW,KAAK,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;AAC1D,OAAO;AACP,MAAM,IAAI,WAAW,KAAKA,OAAK,IAAI,WAAW,KAAK,SAAS,EAAE;AAC9D,QAAQ,OAAO,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AACnC,OAAO;AACP,KAAK;AACL,IAAI,MAAM,GAAG,KAAK,WAAW,KAAK,SAAS,GAAGA,OAAK,GAAG,WAAW,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpF,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACtB,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,CAAC,CAAC;;;;ACjDF,YAAY,CAAC;AACb,IAAI,WAAW,GAAGnH,WAAmC,CAAC;AACtD,IAAIO,aAAW,GAAGI,mBAA6C,CAAC;AAChE,IAAI,IAAI,GAAGC,YAAqC,CAAC;AACjD,IAAIb,OAAK,GAAGe,OAA6B,CAAC;AAC1C,IAAI,UAAU,GAAGc,YAAmC,CAAC;AACrD,IAAI,2BAA2B,GAAGkB,2BAAuD,CAAC;AAC1F,IAAI,0BAA0B,GAAGI,0BAAqD,CAAC;AACvF,IAAIV,UAAQ,GAAGoB,UAAiC,CAAC;AACjD,IAAI,aAAa,GAAGW,aAAsC,CAAC;AAC3D;AACA;AACA,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B;AACA,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC3C,IAAI,MAAM,GAAGhE,aAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACpC;AACA;AACA;IACA,YAAc,GAAG,CAAC,OAAO,IAAIR,OAAK,CAAC,YAAY;AAC/C;AACA,EAAE,IAAI,WAAW,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE;AACvE,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,GAAG,EAAE,YAAY;AACrB,MAAM,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;AAChC,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,UAAU,EAAE,KAAK;AACzB,OAAO,CAAC,CAAC;AACT,KAAK;AACL,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC;AACtC;AACA,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AACb,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AACb;AACA,EAAE,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;AACxB,EAAE,IAAI,QAAQ,GAAG,sBAAsB,CAAC;AACxC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAChB,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/D,EAAE,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC;AACxF,CAAC,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE;AACrC,EAAE,IAAI,CAAC,GAAGyC,UAAQ,CAAC,MAAM,CAAC,CAAC;AAC3B,EAAE,IAAI,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC;AACzC,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;AAChB,EAAE,IAAI,qBAAqB,GAAG,2BAA2B,CAAC,CAAC,CAAC;AAC5D,EAAE,IAAI,oBAAoB,GAAG,0BAA0B,CAAC,CAAC,CAAC;AAC1D,EAAE,OAAO,eAAe,GAAG,KAAK,EAAE;AAClC,IAAI,IAAI,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC9C,IAAI,IAAI,IAAI,GAAG,qBAAqB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACvG,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,OAAO,MAAM,GAAG,CAAC,EAAE;AACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,MAAM,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9E,KAAK;AACL,GAAG,CAAC,OAAO,CAAC,CAAC;AACb,CAAC,GAAG,OAAO;;ACxDX,IAAI8E,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAI,MAAM,GAAGW,YAAqC,CAAC;AACnD;AACA;AACA;AACA;AACA2G,GAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,EAAE;AACtE,EAAE,MAAM,EAAE,MAAM;AAChB,CAAC,CAAC;;;;ACRF;IACAwb,aAAc,GAAG,oEAAoE;AACrF,EAAE,sFAAsF;;ACFxF,IAAIviB,aAAW,GAAGP,mBAA6C,CAAC;AAChE,IAAI,sBAAsB,GAAGW,wBAAgD,CAAC;AAC9E,IAAIH,UAAQ,GAAGI,UAAiC,CAAC;AACjD,IAAIkiB,aAAW,GAAGhiB,aAAmC,CAAC;AACtD;AACA,IAAI,OAAO,GAAGP,aAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACtC,IAAI,UAAU,GAAG,GAAG,GAAGuiB,aAAW,GAAG,GAAG,CAAC;AACzC,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,GAAG,UAAU,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;AACxD,IAAI,KAAK,GAAG,MAAM,CAAC,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;AACnD;AACA;AACA,IAAI,YAAY,GAAG,UAAU,IAAI,EAAE;AACnC,EAAE,OAAO,UAAU,KAAK,EAAE;AAC1B,IAAI,IAAI,MAAM,GAAGtiB,UAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;AACzD,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AACtD,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AACtD,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;IACA,UAAc,GAAG;AACjB;AACA;AACA,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;AACxB;AACA;AACA,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;AACtB;AACA;AACA,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;AACvB,CAAC;;AC9BD,IAAI,oBAAoB,GAAGR,YAAqC,CAAC,MAAM,CAAC;AACxE,IAAID,OAAK,GAAGY,OAA6B,CAAC;AAC1C,IAAI,WAAW,GAAGC,aAAmC,CAAC;AACtD;AACA,IAAI,GAAG,GAAG,oBAAoB,CAAC;AAC/B;AACA;AACA;IACA,gBAAc,GAAG,UAAU,WAAW,EAAE;AACxC,EAAE,OAAOb,OAAK,CAAC,YAAY;AAC3B,IAAI,OAAO,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;AACvC,SAAS,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,GAAG;AACnC,UAAU,oBAAoB,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;AACjF,GAAG,CAAC,CAAC;AACL,CAAC;;ACdD,YAAY,CAAC;AACb,IAAIuH,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAI,KAAK,GAAGW,UAAmC,CAAC,IAAI,CAAC;AACrD,IAAI,sBAAsB,GAAGC,gBAA0C,CAAC;AACxE;AACA;AACA;AACA0G,GAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAAE,EAAE;AAC7E,EAAE,IAAI,EAAE,SAAS,IAAI,GAAG;AACxB,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AACvB,GAAG;AACH,CAAC,CAAC;;;;ACXF,YAAY,CAAC;AACb,IAAIA,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAI,OAAO,GAAGW,cAAuC,CAAC,MAAM,CAAC;AAC7D,IAAI,4BAA4B,GAAGC,8BAAwD,CAAC;AAC5F;AACA,IAAI,mBAAmB,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;AACjE;AACA;AACA;AACA;AACA0G,GAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,mBAAmB,EAAE,EAAE;AAClE,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,UAAU,kBAAkB;AACtD,IAAI,OAAO,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AACtF,GAAG;AACH,CAAC,CAAC;;;;ACdF,YAAY,CAAC;AACb,IAAIA,GAAC,GAAGtH,OAA8B,CAAC;AACvC,IAAI,UAAU,GAAGW,cAAuC,CAAC,SAAS,CAAC;AACnE,IAAI,gBAAgB,GAAGC,kBAA0C,CAAC;AAClE;AACA,IAAI,UAAU,GAAG,WAAW,CAAC;AAC7B,IAAI,WAAW,GAAG,IAAI,CAAC;AACvB;AACA;AACA,IAAI,UAAU,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,YAAY,EAAE,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;AACjF;AACA;AACA;AACA0G,GAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;AACzD,EAAE,SAAS,EAAE,SAAS,SAAS,CAAC,UAAU,2BAA2B;AACrE,IAAI,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AACzF,GAAG;AACH,CAAC,CAAC,CAAC;AACH;AACA;AACA,gBAAgB,CAAC,UAAU,CAAC;;;;ACpB5B,IAAI,UAAU,GAAGtH,YAAmC,CAAC;AACrD;AACA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACvB;AACA,IAAI,SAAS,GAAG,UAAU,KAAK,EAAE,SAAS,EAAE;AAC5C,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5B,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,EAAE,OAAO,MAAM,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK;AAC7D,IAAI,KAAK;AACT,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC;AACtD,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC;AACnD,IAAI,SAAS;AACb,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,IAAI,aAAa,GAAG,UAAU,KAAK,EAAE,SAAS,EAAE;AAChD,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5B,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACZ,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC;AACjB;AACA,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE;AACrB,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,OAAO,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;AACtD,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;AACtC,GAAG,CAAC,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AACF;AACA,IAAI,KAAK,GAAG,UAAU,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;AACrD,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;AAC5B,EAAE,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;AAC7B,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;AACjB,EAAE,IAAI,MAAM,GAAG,CAAC,CAAC;AACjB;AACA,EAAE,OAAO,MAAM,GAAG,OAAO,IAAI,MAAM,GAAG,OAAO,EAAE;AAC/C,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,IAAI,MAAM,GAAG,OAAO;AAClE,QAAQ,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;AACtF,QAAQ,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5D,GAAG,CAAC,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AACF;IACA,SAAc,GAAG,SAAS;;AC3C1B,IAAIuB,WAAS,GAAGvB,eAAyC,CAAC;AAC1D;AACA,IAAI,OAAO,GAAGuB,WAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACjD;IACA,eAAc,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;;ACJzC,IAAI,EAAE,GAAGvB,eAAyC,CAAC;AACnD;IACA,gBAAc,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;;ACFxC,IAAI,SAAS,GAAGA,eAAyC,CAAC;AAC1D;AACA,IAAI,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACrD;IACA,mBAAc,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;;ACJvC,YAAY,CAAC;AACb,IAAI,CAAC,GAAGA,OAA8B,CAAC;AACvC,IAAI,WAAW,GAAGW,mBAA6C,CAAC;AAChE,IAAI,SAAS,GAAGC,WAAkC,CAAC;AACnD,IAAI,QAAQ,GAAGE,UAAiC,CAAC;AACjD,IAAI,iBAAiB,GAAGc,mBAA4C,CAAC;AACrE,IAAI,QAAQ,GAAGkB,UAAiC,CAAC;AACjD,IAAI,KAAK,GAAGI,OAA6B,CAAC;AAC1C,IAAI,YAAY,GAAGU,SAAkC,CAAC;AACtD,IAAI,mBAAmB,GAAGW,qBAA8C,CAAC;AACzE,IAAI,EAAE,GAAGgD,eAAyC,CAAC;AACnD,IAAI,UAAU,GAAGC,gBAA4C,CAAC;AAC9D,IAAI,EAAE,GAAGC,eAAyC,CAAC;AACnD,IAAI,MAAM,GAAGC,mBAA6C,CAAC;AAC3D;AACA,IAAI,IAAI,GAAG,EAAE,CAAC;AACd,IAAI,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC;AACA;AACA,IAAI,kBAAkB,GAAG,KAAK,CAAC,YAAY;AAC3C,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AACH;AACA,IAAI,aAAa,GAAG,KAAK,CAAC,YAAY;AACtC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AACH;AACA,IAAI,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAChD;AACA,IAAI,WAAW,GAAG,CAAC,KAAK,CAAC,YAAY;AACrC;AACA,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACzB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO;AAC3B,EAAE,IAAI,UAAU,EAAE,OAAO,IAAI,CAAC;AAC9B,EAAE,IAAI,MAAM,EAAE,OAAO,MAAM,GAAG,GAAG,CAAC;AAClC;AACA,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;AAC9B;AACA;AACA,EAAE,KAAK,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE;AACrC,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACpC;AACA,IAAI,QAAQ,IAAI;AAChB,MAAM,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM;AAC3D,MAAM,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM;AACzC,MAAM,SAAS,KAAK,GAAG,CAAC,CAAC;AACzB,KAAK;AACL;AACA,IAAI,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE;AACzC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9C,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnD;AACA,EAAE,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AAChD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,CAAC;AAChE,GAAG;AACH;AACA,EAAE,OAAO,MAAM,KAAK,aAAa,CAAC;AAClC,CAAC,CAAC,CAAC;AACH;AACA,IAAI,MAAM,GAAG,kBAAkB,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC;AACpF;AACA,IAAI,cAAc,GAAG,UAAU,SAAS,EAAE;AAC1C,EAAE,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE;AACzB,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,OAAO,CAAC,CAAC;AAClC,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9D,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA;AACA;AACA,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;AACpD,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC,SAAS,EAAE;AACjC,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;AACtD;AACA,IAAI,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/B;AACA,IAAI,IAAI,WAAW,EAAE,OAAO,SAAS,KAAK,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACjG;AACA,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/C,IAAI,IAAI,WAAW,EAAE,KAAK,CAAC;AAC3B;AACA,IAAI,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE;AAClD,MAAM,IAAI,KAAK,IAAI,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,KAAK;AACL;AACA,IAAI,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;AACnD;AACA,IAAI,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;AAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;AACd;AACA,IAAI,OAAO,KAAK,GAAG,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AAC9D,IAAI,OAAO,KAAK,GAAG,WAAW,EAAE,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AACtD;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,CAAC,CAAC;;ACxGF,IAAMqb,QAAQ,GAAG,SAAXA,QAAW,CAACC,IAAD,EAAOC,IAAP,EAAajV,OAAb,EAAyB;AACtC,MAAIkV,OAAJ,EAAaC,OAAb,EAAsBC,IAAtB,EAA4BC,MAA5B;AACA,MAAIxE,QAAQ,GAAG,CAAf;AACA,MAAI,CAAC7Q,OAAL,EAAcA,OAAO,GAAG,EAAV;;AAEd,MAAMsV,KAAK,GAAG,SAARA,KAAQ,GAAM;AAChBzE,IAAAA,QAAQ,GAAG7Q,OAAO,CAACuV,OAAR,KAAoB,KAApB,GAA4B,CAA5B,GAAgCC,IAAI,CAACC,GAAL,EAA3C;AACAP,IAAAA,OAAO,GAAG,IAAV;AACAG,IAAAA,MAAM,GAAGL,IAAI,CAAC/c,KAAL,CAAWkd,OAAX,EAAoBC,IAApB,CAAT;AACA,QAAI,CAACF,OAAL,EAAcC,OAAO,GAAGC,IAAI,GAAG,IAAjB;AACjB,GALD;;AAOA,MAAMM,SAAS,GAAG,SAAZA,SAAY,GAAY;AAC1B,QAAMD,GAAG,GAAGD,IAAI,CAACC,GAAL,EAAZ;AACA,QAAI,CAAC5E,QAAD,IAAa7Q,OAAO,CAACuV,OAAR,KAAoB,KAArC;AACI1E,IAAAA,QAAQ,GAAG4E,GAAX;;AAEJ,QAAME,SAAS,GAAGV,IAAI,IAAIQ,GAAG,GAAG5E,QAAV,CAAtB;AACAsE,IAAAA,OAAO,GAAG,IAAV;AACAC,IAAAA,IAAI,GAAGQ,SAAP;AACA,QAAID,SAAS,IAAI,CAAb,IAAkBA,SAAS,GAAGV,IAAlC,EAAwC;AACpC,UAAIC,OAAJ,EAAa;AACT9Q,QAAAA,YAAY,CAAC8Q,OAAD,CAAZ;AACAA,QAAAA,OAAO,GAAG,IAAV;AACH;AACDrE,MAAAA,QAAQ,GAAG4E,GAAX;AACAJ,MAAAA,MAAM,GAAGL,IAAI,CAAC/c,KAAL,CAAWkd,OAAX,EAAoBC,IAApB,CAAT;AACA,UAAI,CAACF,OAAL,EAAcC,OAAO,GAAGC,IAAI,GAAG,IAAjB;AACjB,KARD,MAQO,IAAI,CAACF,OAAD,IAAYlV,OAAO,CAAC6V,QAAR,KAAqB,KAArC,EAA4C;AAC/CX,MAAAA,OAAO,GAAG3I,UAAU,CAAC+I,KAAD,EAAQK,SAAR,CAApB;AACH;AACD,WAAON,MAAP;AACH,GApBD;;AAsBAK,EAAAA,SAAS,CAACI,MAAV,GAAmB,YAAM;AACrB1R,IAAAA,YAAY,CAAC8Q,OAAD,CAAZ;AACArE,IAAAA,QAAQ,GAAG,CAAX;AACAqE,IAAAA,OAAO,GAAGC,OAAO,GAAGC,IAAI,GAAG,IAA3B;AACH,GAJD;;AAMAM,EAAAA,SAAS,CAACK,WAAV,GAAwB,YAAM;AAC1B,WAAO,CAAC,CAACb,OAAT;AACH,GAFD;;AAIA,SAAOQ,SAAP;AACH,CA7CD;;ACsCA,IAAM9W,UAAU,GAAG5J,MAAM,CAAC,MAAD,CAAzB;AACA,IAAM6J,eAAe,GAAG7J,MAAM,CAAC,WAAD,CAA9B;AACA,IAAMghB,mBAAmB,GAAGhhB,MAAM,CAAC,kBAAD,CAAlC;AACA,IAAMihB,oBAAoB,GAAGjhB,MAAM,CAAC,kBAAD,CAAnC;;AAEA,IAAMkhB,kBAAkB,GAAG,CAAC,EAAE,kBAAkB1O,MAAlB;AACtBA,MAAM,CAAC2O,aAAP,IAAwB3O,MAAM,CAAClS,QAAP,YAA2BkS,MAAM,CAAC2O,aADpC;AAEvB3O,MAAM,CAAC4O,SAAP,CAAiBC,cAFI,CAA5B;;;AAKA;AACA;AACA;AACA;AACA;AACA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAAUjV,EAAV,EAAcgC,SAAd,EAAyB;AACtC,MAAIhC,EAAE,YAAYC,OAAlB,EAA2B;AACvB,WAAOD,EAAE,CAACI,SAAH,CAAagL,QAAb,CAAsBpJ,SAAtB,CAAP;AACH;;AAED,SAAO,KAAP;AACH,CAND;;AAQA,IAAMkT,uBAAuB,GAAG;AAC5B,aAD4B;AAE5B,WAF4B;AAG5B,aAH4B;AAI5B,WAJ4B;AAK5B,gBAL4B;AAM5B,gBAN4B;AAO5B,cAP4B;AAQ5B,aAR4B;AAS5B,YAT4B;AAU5B,cAV4B;AAW5B,eAX4B,CAAhC;;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMvX,cAAc,GAAG;AACnBqC,EAAAA,EAAE,EAAE,IADe;AAEnBpC,EAAAA,aAAa,EAAE,WAFI;AAGnBuX,EAAAA,QAAQ,EAAE,KAHS;AAInBC,EAAAA,SAAS,EAAE,IAJQ;AAKnBC,EAAAA,gBAAgB,EAAE,IALC;AAMnBC,EAAAA,WAAW,EAAE,EANM;AAOnBC,EAAAA,iBAAiB,EAAE,IAPA;AAQnBC,EAAAA,aAAa,EAAE,IARI;AASnBC,EAAAA,oBAAoB,EAAE,IATH;AAUnBC,EAAAA,YAAY,EAAE,IAVK;AAWnBC,EAAAA,kBAAkB,EAAE,IAXD;AAYnBC,EAAAA,sBAAsB,EAAE,IAZL;AAanBC,EAAAA,qBAAqB,EAAE,OAbJ;AAcnB9X,EAAAA,KAAK,EAAE,KAdY;AAenB+X,EAAAA,aAAa,EAAE,IAfI;AAgBnBC,EAAAA,yBAAyB,EAAE,IAhBR;AAiBnBC,EAAAA,UAAU,EAAE,IAjBO;AAkBnBC,EAAAA,aAAa,EAAE,qBAlBI;AAmBnBC,EAAAA,oBAAoB,EAAE,GAnBH;AAoBnBC,EAAAA,iBAAiB,EAAE,KApBA;AAqBnB5X,EAAAA,SAAS,EAAE,OArBQ;AAsBnBC,EAAAA,SAAS,EAAE,OAtBQ;AAuBnB4X,EAAAA,kBAAkB,EAAE,aAvBD;AAwBnBC,EAAAA,aAAa,EAAE,IAxBI;AAyBnBC,EAAAA,2BAA2B,EAAE,IAzBV;AA0BnB1V,EAAAA,KAAK,EAAE,EA1BY;AA2BnB2V,EAAAA,cAAc,EAAExX,SA3BG;AA4BnBzB,EAAAA,KAAK,EAAEyB,SA5BY;AA6BnByX,EAAAA,aAAa,EAAE,KA7BI,EAAvB;;;AAgCA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,gCAAgC,GAAG,SAAnCA,gCAAmC,CAAC7V,KAAD,EAAQrC,SAAR,EAAsB;AAC3D,MAAIqC,KAAK,CAACgE,MAAN,KAAiB,CAArB;AACI,SAAO,EAAP;;AAEJ,MAAI8R,KAAK,GAAG9V,KAAK,CAAC,CAAD,CAAL,CAASrC,SAAT,IAAsB,EAAlC;;AAEA,MAAIqC,KAAK,CAACgE,MAAN,GAAe,CAAnB,EAAsB;AAClB8R,IAAAA,KAAK,iBAAU9V,KAAK,CAACgE,MAAN,GAAe,CAAzB,MAAL;AACH;;AAED,SAAO8R,KAAP;AACH,CAXD;;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;IACMC;AACF;AACJ;AACA;AACI,qBAAYhY,OAAZ,EAAqB;AACjB,QAAMC,CAAC,sBAAQjB,cAAR,CAAP;;AAEA,uCAAyBjM,MAAM,CAACmN,OAAP,mBAAgCF,OAAhC,CAAzB,sCAAK,gEAAKG,GAAL,yBAAUxB,KAAV;AACD,UAAIA,KAAK,KAAKyB,SAAd;AACIH,MAAAA,CAAC,CAACE,GAAD,CAAD,GAASxB,KAAT,CAFR;;AAIA,QAAM0B,CAAC,GAAG,KAAKC,EAAL,GAAU;AAChBC,MAAAA,MAAM,EAAE,IADQ;;AAGhBtB,MAAAA,aAAa,EAAEgB,CAAC,CAAChB,aAHD;;AAKhBgZ,MAAAA,WAAW,EAAEhY,CAAC,CAACgY,WALC;;AAOhBzB,MAAAA,QAAQ,EAAE,CAAC,CAACvW,CAAC,CAACuW,QAPE;AAQhBC,MAAAA,SAAS,EAAE,CAAC,CAACxW,CAAC,CAACwW,SARC;AAShBC,MAAAA,gBAAgB,EAAE,CAAC,CAACzW,CAAC,CAACyW,gBATN;AAUhBC,MAAAA,WAAW,EAAE1W,CAAC,CAAC0W,WAVC;AAWhBC,MAAAA,iBAAiB,EAAE,CAAC,CAAC3W,CAAC,CAAC2W,iBAXP;AAYhBC,MAAAA,aAAa,EAAE,CAAC,CAAC5W,CAAC,CAAC4W,aAZH;AAahBC,MAAAA,oBAAoB,EAAE,CAAC,CAAC7W,CAAC,CAAC6W,oBAbV;AAchBC,MAAAA,YAAY,EAAE5d,KAAK,CAACjB,OAAN,CAAc+H,CAAC,CAAC8W,YAAhB,IAAgC,IAAImB,GAAJ,CAAQjY,CAAC,CAAC8W,YAAV,CAAhC,GAA0D,IAdxD;AAehBC,MAAAA,kBAAkB,EAAE/W,CAAC,CAAC+W,kBAfN;AAgBhBC,MAAAA,sBAAsB,EAAE,CAAC,CAAChX,CAAC,CAACgX,sBAhBZ;AAiBhBC,MAAAA,qBAAqB,EAAEjX,CAAC,CAACiX,qBAjBT;AAkBhB9X,MAAAA,KAAK,EAAEa,CAAC,CAACb,KAlBO;AAmBhB+X,MAAAA,aAAa,EAAElX,CAAC,CAACkX,aAnBD;AAoBhBC,MAAAA,yBAAyB,EAAEnX,CAAC,CAACmX,yBApBb;AAqBhBC,MAAAA,UAAU,EAAEpX,CAAC,CAACoX,UArBE;AAsBhBC,MAAAA,aAAa,EAAErX,CAAC,CAACqX,aAtBD;AAuBhBC,MAAAA,oBAAoB,EAAEtX,CAAC,CAACsX,oBAvBR;AAwBhBC,MAAAA,iBAAiB,EAAEvX,CAAC,CAACuX,iBAxBL;;AA0BhB5X,MAAAA,SAAS,EAAEK,CAAC,CAACL,SA1BG;AA2BhBC,MAAAA,SAAS,EAAEI,CAAC,CAACJ,SA3BG;AA4BhB4X,MAAAA,kBAAkB,EAAExX,CAAC,CAACwX,kBA5BN;;AA8BhBC,MAAAA,aAAa,EAAEzX,CAAC,CAACyX,aA9BD;AA+BhBC,MAAAA,2BAA2B,EAAE1X,CAAC,CAAC0X,2BA/Bf;;AAiChBQ,MAAAA,gBAAgB,EAAElY,CAAC,CAACkY,gBAjCJ;AAkChBC,MAAAA,kBAAkB,EAAEnY,CAAC,CAACmY,kBAlCN;AAmChBC,MAAAA,eAAe,EAAEpY,CAAC,CAACoY,eAnCH;AAoChBC,MAAAA,iBAAiB,EAAErY,CAAC,CAACqY,iBApCL;AAqChBC,MAAAA,mBAAmB,EAAEtY,CAAC,CAACsY,mBArCP;AAsChBC,MAAAA,qBAAqB,EAAEvY,CAAC,CAACuY,qBAtCT;AAuChBC,MAAAA,mBAAmB,EAAExY,CAAC,CAACwY,mBAvCP;AAwChBC,MAAAA,qBAAqB,EAAEzY,CAAC,CAACyY,qBAxCT;AAyChBC,MAAAA,QAAQ,EAAE1Y,CAAC,CAAC0Y,QAzCI;AA0ChB7Y,MAAAA,EAAE,EAAEG,CAAC,CAACH,EAAF,IAAQ,IA1CI;AA2ChBc,MAAAA,aAAa,EAAE,IA3CC;AA4ChBC,MAAAA,IAAI,EAAEA,wBAAI,EA5CM;AA6ChBJ,MAAAA,iBAAiB,EAAER,CAAC,CAACQ,iBA7CL;;AA+ChBoX,MAAAA,aAAa,EAAE,CAAC,CAAC5X,CAAC,CAAC4X,aA/CH;;AAiDhB5V,MAAAA,KAAK,EAAE,EAjDS;AAkDhB2W,MAAAA,aAAa,EAAE,IAlDC;AAmDhBC,MAAAA,gBAAgB,EAAE,EAnDF;AAoDhBC,MAAAA,YAAY,EAAE,IApDE;;AAsDhB9X,MAAAA,IAAI,EAAE,IAAIC,iCAAJ,EAtDU;;AAwDhB;AACA8X,MAAAA,cAAc,EAAE,IAzDA;;AA2DhBC,MAAAA,aAAa,EAAE,EA3DC;AA4DhBpB,MAAAA,cAAc,EAAE,EA5DA;AA6DhBqB,MAAAA,gBAAgB,EAAE,IA7DF;AA8DhBC,MAAAA,uBAAuB,EAAE,KA9DT;;AAgEhBC,MAAAA,wBAAwB,EAAEpE,QAAQ,CAAC,oBAAM,KAAI,CAACqE,gBAAL,EAAN,EAAD;AAC9BnZ,MAAAA,CAAC,CAACsX,oBAD4B;AAE9B,QAAEhC,OAAO,EAAE,IAAX,EAAiBM,QAAQ,EAAE,IAA3B,EAF8B,CAhElB;;AAoEhBwD,MAAAA,UAAU,EAAE,EApEI,EAApB;;;AAuEA,QAAIhY,EAAE,GAAGpB,CAAC,CAACoB,EAAX;AACA,QAAIA,EAAE,YAAYC,OAAlB,EAA2B;AACvBjB,MAAAA,CAAC,CAACE,MAAF,GAAW,KAAX;AACH,KAFD,MAEO;AACHc,MAAAA,EAAE,GAAGQ,iBAAa,CAAC,MAAD,CAAlB;AACH;;AAEDyX,IAAAA,mBAAe,CAACjY,EAAD,EAAK;AAChBM,MAAAA,IAAI,EAAE,UADU;AAEhB,uBAAiB,MAFD;AAGhB,uBAAiB,OAHD,EAAL,CAAf;;AAKAtB,IAAAA,CAAC,CAACgB,EAAF,GAAOA,EAAP;;AAEA,SAAKyD,gBAAL;AACA,SAAKyU,WAAL;;AAEA;AACAlZ,IAAAA,CAAC,CAACmZ,YAAF,GAAiB,EAAjB;;AAEA,SAAKC,MAAL,CAAY,CAACpZ,CAAC,CAACmW,QAAf;;AAEA,SAAKkD,kBAAL;;AAEA;AACArZ,IAAAA,CAAC,CAACW,IAAF;AACKU,IAAAA,GADL,CACSL,EADT,EACa,OADb,EACsB,UAAC8O,GAAD,EAAS;AACvB,UAAI9P,CAAC,CAACsZ,kBAAF,IAAwBtZ,CAAC,CAACsZ,kBAAF,CAAqBlN,QAArB,CAA8B0D,GAAG,CAACzK,MAAlC,CAA5B,EAAuE;AACnE;AACH;;AAED,UAAI,CAACrE,EAAE,CAACoL,QAAH,CAAYnX,QAAQ,CAAC4Z,aAArB,CAAL,EAA0C;AACtC7O,QAAAA,CAAC,CAACuZ,KAAF,CAAQC,KAAR;AACA;AACAxZ,QAAAA,CAAC,CAACuZ,KAAF,CAAQE,cAAR,GAAyBzZ,CAAC,CAACuZ,KAAF,CAAQG,YAAR,GAAuB1Z,CAAC,CAACuZ,KAAF,CAAQjb,KAAR,CAAcsH,MAA9D;AACH;AACJ,KAXL;;AAaA;AACA5F,IAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAWL,EAAX,EAAe,OAAf,EAAwB,UAAA8O,GAAG,EAAI;AAC3B,UAAMzK,MAAM,eAAgByK,GAAG,CAACzK,MAAhC;;AAEA,UAAI,CAACrE,EAAE,CAACoL,QAAH,CAAY0D,GAAG,CAAC6J,aAAhB,CAAD;AACA,OAAC1D,QAAQ,CAAC5Q,MAAD,YAAYrF,CAAC,CAACpB,aAAd,oBADT;AAEA,OAACqX,QAAQ,CAAC5Q,MAAD,YAAYrF,CAAC,CAACpB,aAAd,YAFb,EAEmD;AAC/C,YAAIgb,KAAK,GAAG5Y,EAAE,CAAC6Y,aAAH,YAAqB7Z,CAAC,CAACpB,aAAvB,oBAAZ;AACAgb,QAAAA,KAAK,IAAIA,KAAK,CAACJ,KAAN,EAAT;AACH;AACJ,KATD,EASG,IATH;;AAWAxZ,IAAAA,CAAC,CAACW,IAAF;AACKU,IAAAA,GADL,CACSrB,CAAC,CAACuZ,KADX,EACkB,SADlB,EAC6B,6BAAmB1U,KAAnB,EAA6B;AAClD,MAAA,KAAI,CAACiV,mBAAL,CAAyBjV,KAAzB;AACH,KAHL;AAIKxD,IAAAA,GAJL,CAISrB,CAAC,CAACuZ,KAJX,EAIkB,OAJlB,EAI2B,YAAM;AACzB,MAAA,KAAI,CAACQ,YAAL;AACH,KANL;;AAQA,QAAMC,iBAAiB,GAAI,YAAM;AAC7B,UAAIC,CAAJ;AACA,aAAO,YAAM;AACT,YAAIA,CAAJ,EAAO;AACHlW,UAAAA,YAAY,CAACkW,CAAD,CAAZ;AACH;AACDA,QAAAA,CAAC,GAAG/N,UAAU,CAAC,YAAM;AACjBnH,UAAAA,qBAAW,CAAC/D,EAAD,YAAQhB,CAAC,CAACpB,aAAV,cAAkCoC,EAAE,CAACoL,QAAH,CAAYnX,QAAQ,CAAC4Z,aAArB,CAAlC,CAAX;AACH,SAFa,CAAd;AAGH,OAPD;AAQH,KAVyB,EAA1B;AAWA7O,IAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAWL,EAAX,EAAe,OAAf,EAAwBgZ,iBAAxB,EAA2C,IAA3C;AACAha,IAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAWL,EAAX,EAAe,MAAf,EAAuBgZ,iBAAvB,EAA0C,IAA1C;;AAEA;AACAha,IAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAW8F,MAAX,EAAmB,QAAnB,EAA6B,oBAAM,KAAI,CAAC4S,YAAL,EAAN,EAA7B;AACA/Z,IAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAW8F,MAAX,EAAmB,mBAAnB,EAAwC,oBAAM,KAAI,CAAC4S,YAAL,EAAN,EAAxC;;AAEA,QAAI5S,MAAM,CAAC+S,cAAP,KAA0Bna,SAA9B,EAAyC;AACrCC,MAAAA,CAAC,CAAC0Y,cAAF,GAAmB,IAAIwB,cAAJ,CAAmB,YAAM;AACxC,QAAA,KAAI,CAACH,YAAL;AACH,OAFkB,CAAnB;AAGA/Z,MAAAA,CAAC,CAAC0Y,cAAF,CAAiByB,OAAjB,CAAyBna,CAAC,CAACgB,EAA3B;AACH;;AAED,SAAKoZ,QAAL,CAAcxa,CAAC,CAACgC,KAAhB;;AAEA,QAAIhC,CAAC,CAACb,KAAF,IAAWjG,KAAK,CAACjB,OAAN,CAAc+H,CAAC,CAAC2X,cAAhB,CAAf,EAAgD;AAC5C,WAAK8C,iBAAL,CAAuBza,CAAC,CAAC2X,cAAzB;AACH,KAFD,MAEO,IAAI3X,CAAC,CAACtB,KAAF,IAAW,IAAf,EAAqB;AACxB,WAAKgc,QAAL,CAAc1a,CAAC,CAACtB,KAAhB;AACH;;AAED,SAAKic,aAAL;;AAEA,SAAKha,aAAL,GAAqB,KAArB;;AAEA,WAAO,IAAP;AACH;;AAED,uBAAU;AACN,UAAI,KAAK/B,eAAL,CAAJ;AACI;AACJ,WAAKA,eAAL,IAAwB,IAAxB;;AAEA,UAAMwB,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAID,CAAC,CAACwa,WAAN,EAAmB;AACfzW,QAAAA,YAAY,CAAC/D,CAAC,CAACwa,WAAH,CAAZ;AACA,eAAOxa,CAAC,CAACwa,WAAT;AACH;;AAED,WAAKC,qBAAL;;AAEAza,MAAAA,CAAC,CAACW,IAAF,CAAOuD,MAAP;AACAlE,MAAAA,CAAC,CAAC0a,QAAF,IAAc1a,CAAC,CAAC0a,QAAF,CAAWvW,OAAX,EAAd;;AAEA,UAAInE,CAAC,CAAC8Y,wBAAN;AACI9Y,MAAAA,CAAC,CAAC8Y,wBAAF,CAA2BrD,MAA3B;;AAEJ,WAAKkF,qBAAL;;AAEA,UAAI3a,CAAC,CAACiY,iBAAF,IAAuBjY,CAAC,CAACmY,qBAA7B,EAAoD;AAChD;AACA,eAAOnY,CAAC,CAACmZ,YAAF,CAAevT,MAAf,GAAwB,CAA/B,EAAkC;AAC9B;AACA,eAAKgV,8BAAL,CAAoC5a,CAAC,CAACmZ,YAAF,CAAevT,MAAf,GAAwB,CAA5D;AACH;AACJ;;AAED1B,MAAAA,gBAAM,CAAClE,CAAC,CAACiC,IAAH,CAAN;AACAiC,MAAAA,gBAAM,CAAClE,CAAC,CAAC6a,aAAH,CAAN;AACA3W,MAAAA,gBAAM,CAAClE,CAAC,CAACuZ,KAAH,CAAN;AACArV,MAAAA,gBAAM,CAAClE,CAAC,CAAC8a,eAAH,CAAN;AACA5W,MAAAA,gBAAM,CAAClE,CAAC,CAACsZ,kBAAH,CAAN;AACApV,MAAAA,gBAAM,CAAClE,CAAC,CAAC+a,aAAH,CAAN;;AAEA,UAAI,CAAC/a,CAAC,CAACE,MAAP,EAAe;AACX,wCAAiBpH,KAAK,CAACsL,IAAN,CAAWpE,CAAC,CAACgB,EAAF,CAAKI,SAAhB,CAAjB,mCAA6C,CAAxC,IAAIiD,IAAI,mBAAR;AACD,cAAIA,IAAI,CAACC,UAAL,CAAgBtE,CAAC,CAACpB,aAAlB,CAAJ,EAAsC;AAClCoB,YAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAe8C,MAAf,CAAsBG,IAAtB;AACH;AACJ;AACDrE,QAAAA,CAAC,CAACgB,EAAF,CAAKuD,eAAL,CAAqB,MAArB;AACAvE,QAAAA,CAAC,CAACgB,EAAF,CAAKuD,eAAL,CAAqB,eAArB;AACAvE,QAAAA,CAAC,CAACgB,EAAF,CAAKuD,eAAL,CAAqB,eAArB;AACH;;AAED,2BAAAvE,CAAC,CAAC0Y,cAAF,wEAAkBsC,UAAlB;;AAEA,WAAK/a,EAAL,GAAU,IAAV;AACH;;AAED,mBAAS;AACL,aAAO,KAAKA,EAAL,CAAQe,EAAf;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,oBAAOia,OAAP,EAAgB;AACZ,UAAMjb,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAIgb,OAAO,KAAKlb,SAAhB,EAA2B;AACvBkb,QAAAA,OAAO,GAAG,IAAV;AACH;AACDjb,MAAAA,CAAC,CAACmW,QAAF,GAAa,CAAC8E,OAAd;AACAjb,MAAAA,CAAC,CAACgB,EAAF,CAAK6B,YAAL,CAAkB,eAAlB,EAAmC7C,CAAC,CAACmW,QAAF,CAAWhkB,QAAX,EAAnC;AACA6N,MAAAA,CAAC,CAACuZ,KAAF,CAAQpD,QAAR,GAAmB,CAAC,CAACnW,CAAC,CAACmW,QAAvB;;AAEA,UAAMgD,YAAY,GAAGnZ,CAAC,CAACmZ,YAAvB,CAVY;;AAYOA,MAAAA,YAZP,aAYZ,oDAAiC,KAAxB3W,MAAwB;AAC7B,cAAIxC,CAAC,CAACmW,QAAN,EAAgB;AACZ3T,YAAAA,MAAM,CAAC+B,eAAP,CAAuB,UAAvB;AACH,WAFD,MAEO;AACH/B,YAAAA,MAAM,CAACK,YAAP,CAAoB,UAApB,EAAgC,GAAhC;AACH;AACJ,SAlBW;;AAoBZ,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,yBAAY;AACR,aAAO,CAAC,KAAK5C,EAAL,CAAQkW,QAAhB;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,qBAAQA,QAAR,EAAkB;AACd,aAAO,KAAKiD,MAAL,CAAYjD,QAAQ,KAAKpW,SAAb,GAAyB,KAAzB,GAAiC,CAACoW,QAA9C,CAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,0BAAa;AACT,aAAO,KAAKlW,EAAL,CAAQkW,QAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,kCAAqBtV,OAArB,EAA8B;AAC1B,UAAMb,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACI,iBAAF,GAAsBS,OAAtB;AACA,WAAK4D,gBAAL;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,sBAAS7C,KAAT,EAAoC,KAApBsZ,WAAoB,uEAAN,IAAM;AAChC,UAAMlb,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI,CAAC2B,KAAL;AACIA,MAAAA,KAAK,GAAG,EAAR;;AAEJ5B,MAAAA,CAAC,CAAC4B,KAAF,GAAUA,KAAK,CAACuZ,KAAN,CAAY,CAAZ,CAAV;AACAnb,MAAAA,CAAC,CAACuY,aAAF,GAAkB,IAAlB;AACAvY,MAAAA,CAAC,CAACyY,YAAF,GAAiB,IAAjB;;AAEA,UAAIyC,WAAJ,EAAiB;AACb,aAAKb,iBAAL,CAAuB,KAAKe,iBAAL,EAAvB;AACH;;AAED,WAAKxW,QAAL,CAAc,cAAd,EAA8B,EAAEyW,IAAI,EAAE,IAAR,EAAcC,OAAO,EAAE,IAAvB,EAA6BvV,KAAK,EAAE,KAAKwV,oBAAL,EAApC,EAA9B;;AAEA,aAAO,IAAP;AACH;;AAED,oCAAuB;AACnB,UAAMvb,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAID,CAAC,CAACuY,aAAN;AACI,aAAOvY,CAAC,CAACuY,aAAF,CAAgB3S,MAAvB;;AAEJ,UAAI5F,CAAC,CAAC4B,KAAN;AACI,aAAO5B,CAAC,CAAC4B,KAAF,CAAQgE,MAAf;;AAEJ,aAAO,CAAP;AACH;;AAED,+BAAkB;AACd,UAAM5F,CAAC,GAAG,KAAKC,EAAf;;AAEA,aAAO,CAAC,EAAED,CAAC,CAAC8Y,wBAAF,CAA2BpD,WAA3B;AACL,OAAC1V,CAAC,CAACuY,aAAH,KAAqBvY,CAAC,CAACgZ,UAAF,IAAiBhZ,CAAC,CAACmX,iBAAF,IAAuBnX,CAAC,CAACsY,QAA/D,CADG,CAAR;AAEH;;AAED,+BAAkBha,KAAlB,EAAyB8H,OAAzB,EAAkC;AAC9B,UAAMpG,CAAC,GAAG,KAAKC,EAAf,CAAmBT,SAAS,GAAGQ,CAAC,CAACR,SAAjC;;AAEA,UAAIgc,YAAY,GAAGxb,CAAC,CAAC4B,KAAF,CAAQgO,IAAR,CAAa,UAAA7I,CAAC,UAAIA,CAAC,CAACvH,SAAD,CAAD,KAAiBlB,KAArB,EAAd,CAAnB;AACA,UAAIkd,YAAJ;AACI9oB,MAAAA,MAAM,CAAC+oB,MAAP,CAAcD,YAAd,EAA4BpV,OAA5B;;AAEJ,UAAIpG,CAAC,CAAC0a,QAAN,EAAgB;AACZ1a,QAAAA,CAAC,CAAC0a,QAAF,CAAWgB,iBAAX,CAA6Bpd,KAA7B,EAAoC8H,OAApC;AACH;AACJ;;AAED;AACJ;AACA;AACI,wBAAW;AACP,UAAMpG,CAAC,GAAG,KAAKC,EAAf;AACA,aAAOD,CAAC,CAAC4B,KAAT;AACH;;AAED;AACJ;AACA;AACA;AACI,0BAAawU,SAAb,EAAwB;AACpBA,MAAAA,SAAS,GAAG,CAAC,CAACA,SAAd;;AAEA,UAAI,KAAKnW,EAAL,CAAQmW,SAAR,KAAsBA,SAA1B;AACI,aAAO,IAAP;;AAEJ,WAAKnW,EAAL,CAAQmW,SAAR,GAAoB,CAAC,CAACA,SAAtB;AACA,WAAKmE,aAAL;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,4BAAe;AACX,aAAO,KAAKta,EAAL,CAAQmW,SAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,iCAAoB6E,OAApB,EAA6B;AACzBA,MAAAA,OAAO,GAAG,CAAC,CAACA,OAAZ;;AAEA,UAAI,KAAKhb,EAAL,CAAQoW,gBAAR,KAA6B4E,OAAjC;AACI,aAAO,IAAP;;AAEJ,WAAKhb,EAAL,CAAQoW,gBAAR,GAA2B4E,OAA3B;AACA,WAAKV,aAAL;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,mCAAsB;AAClB,aAAO,KAAKta,EAAL,CAAQoW,gBAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,4BAAeC,WAAf,EAA4B;AACxB,WAAKrW,EAAL,CAAQqW,WAAR,GAAsBA,WAAW,IAAI,IAAf,GAAsB,EAAtB,GAA2B7iB,MAAM,CAAC6iB,WAAD,CAAvD;AACA,WAAKiE,aAAL;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,8BAAiB;AACb,aAAO,KAAKta,EAAL,CAAQqW,WAAf;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,2BAAc+E,IAAd,EAA2C,KAAvBM,aAAuB,uEAAP,KAAO;AACvC,UAAM3b,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI,CAACD,CAAC,CAACuZ,KAAP,EAAc,OAAO,IAAP;;AAEdvZ,MAAAA,CAAC,CAACuZ,KAAF,CAAQjb,KAAR,GAAgB+c,IAAhB;;AAEA,WAAKd,aAAL,CAAmB,cAAnB;;AAEA,UAAIoB,aAAJ,EAAmB;AACf3b,QAAAA,CAAC,CAACgZ,UAAF,GAAehZ,CAAC,CAACuZ,KAAF,CAAQjb,KAAR,CAAcsd,IAAd,EAAf;AACA5b,QAAAA,CAAC,CAACuY,aAAF,GAAkB,IAAlB;AACAvY,QAAAA,CAAC,CAACyY,YAAF,GAAiB,IAAjB;;AAEA,aAAK7T,QAAL,CAAc,QAAd,EAAwB,EAAEtG,KAAK,EAAE0B,CAAC,CAACuZ,KAAF,CAAQjb,KAAjB,EAAxB;AACA0B,QAAAA,CAAC,CAAC8Y,wBAAF;AACH;;AAED,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,6BAAgB;AACZ,UAAM9Y,CAAC,GAAG,KAAKC,EAAf;AACA,UAAID,CAAC,CAACuZ,KAAN;AACI,aAAOvZ,CAAC,CAACuZ,KAAF,CAAQjb,KAAf;AACJ,aAAO,EAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,kCAAqBiY,iBAArB,EAAwC;AACpC,UAAMvW,CAAC,GAAG,KAAKC,EAAf;AACAsW,MAAAA,iBAAiB,GAAG,CAAC,CAACA,iBAAtB;AACA,UAAIvW,CAAC,CAACuW,iBAAF,KAAwBA,iBAA5B;AACI,aAAO,IAAP;;AAEJvW,MAAAA,CAAC,CAACuW,iBAAF,GAAsBA,iBAAtB;AACA,WAAKgE,aAAL,CAAmB,MAAnB;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,0CAA6B;AACzB,aAAO,KAAKta,EAAL,CAAQsW,iBAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,8BAAiBC,aAAjB,EAAgC;AAC5B,UAAMxW,CAAC,GAAG,KAAKC,EAAf;AACAuW,MAAAA,aAAa,GAAG,CAAC,CAACA,aAAlB;AACA,UAAIxW,CAAC,CAACwW,aAAF,KAAoBA,aAAxB;AACI,aAAO,IAAP;;AAEJxW,MAAAA,CAAC,CAACwW,aAAF,GAAkBA,aAAlB;AACAxW,MAAAA,CAAC,CAACuY,aAAF,GAAkB,IAAlB;AACAvY,MAAAA,CAAC,CAACyY,YAAF,GAAiB,IAAjB;AACA,WAAK8B,aAAL;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,sCAAyB;AACrB,aAAO,KAAKta,EAAL,CAAQuW,aAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,qCAAwBC,oBAAxB,EAA8C;AAC1C,UAAMzW,CAAC,GAAG,KAAKC,EAAf;AACAwW,MAAAA,oBAAoB,GAAG,CAAC,CAACA,oBAAzB;AACA,UAAIzW,CAAC,CAAC6b,gBAAF,KAAuBpF,oBAA3B;AACI,aAAO,IAAP;;AAEJzW,MAAAA,CAAC,CAAC6b,gBAAF,GAAqBpF,oBAArB;AACAzW,MAAAA,CAAC,CAACyY,YAAF,GAAiB,IAAjB;AACA,WAAK8B,aAAL;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,6CAAgC;AAC5B,aAAO,KAAKta,EAAL,CAAQwW,oBAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,6BAAgB5K,MAAhB,EAAwB;AACpB,UAAM7L,CAAC,GAAG,KAAKC,EAAf;;AAEAD,MAAAA,CAAC,CAAC0W,YAAF,GAAiB5d,KAAK,CAACjB,OAAN,CAAcgU,MAAd,IAAwB,IAAIgM,GAAJ,CAAQhM,MAAR,CAAxB,GAA0C,IAA3D;AACA7L,MAAAA,CAAC,CAACyY,YAAF,GAAiB,IAAjB;AACA,WAAK8B,aAAL;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,+BAAkB;AACd,aAAO,KAAKta,EAAL,CAAQyW,YAAR,GAAuB5d,KAAK,CAACsL,IAAN,CAAW,KAAKnE,EAAL,CAAQyW,YAAnB,CAAvB,GAA0D,IAAjE;AACH;;AAED;AACJ;AACA;AACA;AACI,mCAAsBoF,UAAtB,EAAkC;AAC9B,UAAM9b,CAAC,GAAG,KAAKC,EAAf;AACA,UAAID,CAAC,CAAC2W,kBAAF,KAAyBmF,UAA7B;AACI,aAAO,IAAP;;AAEJ9b,MAAAA,CAAC,CAAC2W,kBAAF,GAAuBmF,UAAvB;AACA9b,MAAAA,CAAC,CAACyY,YAAF,GAAiB,IAAjB;AACA,WAAK8B,aAAL;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,qCAAwB;AACpB,aAAO,KAAKta,EAAL,CAAQ0W,kBAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,uCAA0BC,sBAA1B,EAAkD;AAC9C,UAAM5W,CAAC,GAAG,KAAKC,EAAf;AACA2W,MAAAA,sBAAsB,GAAG,CAAC,CAACA,sBAA3B;AACA,UAAI5W,CAAC,CAAC4W,sBAAF,KAA6BA,sBAAjC;AACI,aAAO,IAAP;;AAEJ5W,MAAAA,CAAC,CAAC4W,sBAAF,GAA2BA,sBAA3B;AACA5W,MAAAA,CAAC,CAACyY,YAAF,GAAiB,IAAjB;AACA,WAAK8B,aAAL;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,+CAAkC;AAC9B,aAAO,KAAKta,EAAL,CAAQ2W,sBAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,8BAAiBE,aAAjB,EAAgC;AAC5B,UAAM9W,CAAC,GAAG,KAAKC,EAAf;AACA6W,MAAAA,aAAa,GAAG,CAAC,CAACA,aAAlB;AACA,UAAI9W,CAAC,CAAC8W,aAAF,KAAoBA,aAAxB;AACI,aAAO,IAAP;;AAEJ,WAAK7W,EAAL,CAAQ6W,aAAR,GAAwBA,aAAxB;AACA,WAAKyD,aAAL,CAAmB,MAAnB;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,sCAAyB;AACrB,aAAO,KAAKta,EAAL,CAAQ6W,aAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,0CAA6BiF,SAA7B,EAAwC;AACpC,UAAM/b,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAID,CAAC,CAAC+W,yBAAF,KAAgCgF,SAApC;AACI,aAAO,IAAP;;AAEJ,WAAK9b,EAAL,CAAQ8W,yBAAR,GAAoCgF,SAApC;AACA,WAAKxB,aAAL,CAAmB,MAAnB;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,sCAAyBjc,KAAzB,EAAgC;AAC5B,UAAM0B,CAAC,GAAG,KAAKC,EAAf;AACA,UAAID,CAAC,CAAC6W,qBAAF,KAA4BvY,KAAhC;AACI,aAAO,IAAP;;AAEJ,WAAK2B,EAAL,CAAQ4W,qBAAR,GAAgCvY,KAAhC;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,wCAA2B;AACvB,aAAO,KAAK2B,EAAL,CAAQ4W,qBAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,sBAAS9X,KAAT,EAAgB;AACZ,UAAMiB,CAAC,GAAG,KAAKC,EAAf;AACAlB,MAAAA,KAAK,GAAG,CAAC,CAACA,KAAV;AACA,UAAIiB,CAAC,CAACjB,KAAF,KAAYA,KAAhB;AACI,aAAO,IAAP;;AAEJiB,MAAAA,CAAC,CAACjB,KAAF,GAAUA,KAAV;;AAEA,WAAKsa,kBAAL;;AAEA;AACAnV,MAAAA,gBAAM,CAAClE,CAAC,CAACsZ,kBAAH,CAAN;AACA,aAAOtZ,CAAC,CAACsZ,kBAAT;;AAEA,WAAKiB,aAAL,CAAmB,MAAnB;;AAEA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,8BAAiB;AACb,aAAO,KAAKta,EAAL,CAAQlB,KAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,2BAAciY,UAAd,EAA0B;AACtB,UAAMhX,CAAC,GAAG,KAAKC,EAAf;AACA+W,MAAAA,UAAU,GAAG,CAAC,CAACA,UAAf;AACA,UAAIhX,CAAC,CAACgX,UAAF,KAAiBA,UAArB;AACI,aAAO,IAAP;;AAEJhX,MAAAA,CAAC,CAACgX,UAAF,GAAeA,UAAf;AACA,WAAKuD,aAAL,CAAmB,MAAnB;;AAEA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,mCAAsB;AAClB,aAAO,KAAKta,EAAL,CAAQ+W,UAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,8BAAiBC,aAAjB,EAAgC;AAC5B,WAAKhX,EAAL,CAAQgX,aAAR,GAAwBA,aAAxB;AACA,WAAKsD,aAAL,CAAmB,MAAnB;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,gCAAmB;AACf,aAAO,KAAKta,EAAL,CAAQgX,aAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,qCAAwB9P,MAAxB,EAAgC;AAC5B,UAAMnH,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACkX,oBAAF,GAAyB/P,MAAzB;;AAEA,UAAIuO,WAAW,GAAG1V,CAAC,CAAC8Y,wBAAF,GAA6B9Y,CAAC,CAAC8Y,wBAAF,CAA2BpD,WAA3B,EAA7B,GAAwE,KAA1F;;AAEA,UAAI1V,CAAC,CAAC8Y,wBAAN;AACI9Y,MAAAA,CAAC,CAAC8Y,wBAAF,CAA2BrD,MAA3B;;AAEJzV,MAAAA,CAAC,CAAC8Y,wBAAF,GAA6BpE,QAAQ,CAAC,oBAAM,MAAI,CAACqE,gBAAL,EAAN,EAAD,EAAgC/Y,CAAC,CAACkX,oBAAlC,EAAwD,IAAxD,CAArC;;AAEA,UAAIxB,WAAJ;AACI1V,MAAAA,CAAC,CAAC8Y,wBAAF;;AAEJ,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,uCAA0B;AACtB,aAAO,KAAK7Y,EAAL,CAAQiX,oBAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,kCAAqB5Y,KAArB,EAA4B;AACxB,UAAM0B,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACmX,iBAAF,GAAsB7Y,KAAtB;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,oCAAuB;AACnB,aAAO,KAAK2B,EAAL,CAAQkX,iBAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,4BAAeS,WAAf,EAA4B;AACxB,UAAM5X,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAAC4X,WAAF,GAAgBA,WAAhB;AACA,WAAKyB,kBAAL;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,iCAAoBlT,MAApB,EAA4B6V,QAA5B,EAAsC;AAClC,UAAMhc,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAAC8X,gBAAF,GAAqB3R,MAArB;AACAnG,MAAAA,CAAC,CAAC+X,kBAAF,GAAuBiE,QAAvB;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,gCAAmB7V,MAAnB,EAA2B6V,QAA3B,EAAqC;AACjC,UAAMhc,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACgY,eAAF,GAAoB7R,MAApB;AACAnG,MAAAA,CAAC,CAACiY,iBAAF,GAAsB+D,QAAtB;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,oCAAuB7V,MAAvB,EAA+B6V,QAA/B,EAAyC;AACrC,UAAMhc,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACkY,mBAAF,GAAwB/R,MAAxB;AACAnG,MAAAA,CAAC,CAACmY,qBAAF,GAA0B6D,QAA1B;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,oCAAuB7V,MAAvB,EAA+B6V,QAA/B,EAAyC;AACrC,UAAMhc,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACoY,mBAAF,GAAwBjS,MAAxB;AACAnG,MAAAA,CAAC,CAACqY,qBAAF,GAA0B2D,QAA1B;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,0BAAatX,IAAb,EAAmB;AACf,UAAM1E,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACT,SAAF,GAAcmF,IAAd;;AAEN,UAAI1E,CAAC,CAAC0a,QAAN;AACC1a,MAAAA,CAAC,CAAC0a,QAAF,CAAWuB,YAAX,CAAwBvX,IAAxB;;AAEK,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,0BAAaA,IAAb,EAAmB;AACf,UAAM1E,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACR,SAAF,GAAckF,IAAd;;AAEN,UAAI1E,CAAC,CAAC0a,QAAN;AACC1a,MAAAA,CAAC,CAAC0a,QAAF,CAAWwB,YAAX,CAAwBxX,IAAxB;;AAEK,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,mCAAsBA,IAAtB,EAA4B;AACxB,UAAM1E,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACoX,kBAAF,GAAuB1S,IAAvB;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,8BAAiBpG,KAAjB,EAAwB;AACpB,UAAM0B,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACqX,aAAF,GAAkB/Y,KAAlB;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,4CAA+BA,KAA/B,EAAsC;AAClC,UAAM0B,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACsX,2BAAF,GAAgChZ,KAAhC;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,yBAAYiF,EAAZ,EAAgB;AACZ,UAAMvD,CAAC,GAAG,KAAKC,EAAf;AACAD,MAAAA,CAAC,CAACsY,QAAF,GAAa/U,EAAb;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,2BAAc;AACV,aAAO,KAAKtD,EAAL,CAAQqY,QAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,0BAAa;AACT,UAAMtY,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAID,CAAC,CAACuZ,KAAN;AACIvZ,MAAAA,CAAC,CAACuZ,KAAF,CAAQC,KAAR;;AAEJ,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,yBAAY;AACR,UAAMxZ,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAID,CAAC,CAACuZ,KAAN;AACIvZ,MAAAA,CAAC,CAACuZ,KAAF,CAAQ4C,IAAR;;AAEJ,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,qBAAQ;AACJ,UAAMnc,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAImc,QAAQ,GAAG,EAAE3G,MAAM,EAAE,KAAV,EAAf;AACA,WAAK7Q,QAAL,CAAc,cAAd,EAA8BwX,QAA9B;AACA,UAAIA,QAAQ,CAAC3G,MAAb;AACI,aAAO,IAAP;;AAEJzV,MAAAA,CAAC,CAAC2Y,aAAF,GAAkB,EAAlB;AACA3Y,MAAAA,CAAC,CAACuX,cAAF,GAAmB,EAAnB;AACAvX,MAAAA,CAAC,CAAC4Y,gBAAF,GAAqB,IAArB;AACA5Y,MAAAA,CAAC,CAAC6Y,uBAAF,GAA4B,IAA5B;;AAEA,WAAKjU,QAAL,CAAc,OAAd;;AAEA,UAAI,KAAKpG,eAAL,CAAJ,EAA2B,OAAO,IAAP,CAfvB;;AAiBJ,WAAKua,gBAAL;;AAEA,WAAKsD,aAAL,CAAmB,EAAnB;AACA,WAAK9B,aAAL,CAAmB,MAAnB;;AAEA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,wBAAW;AACP,UAAMva,CAAC,GAAG,KAAKC,EAAf;AACA,UAAID,CAAC,CAACjB,KAAN;AACI,aAAOiB,CAAC,CAACuX,cAAF,CAAiB4D,KAAjB,CAAuB,CAAvB,CAAP,CADJ;AAEK,UAAInb,CAAC,CAACuX,cAAF,CAAiB3R,MAAjB,GAA0B,CAA9B;AACD,aAAO5F,CAAC,CAACuX,cAAF,CAAiB,CAAjB,CAAP;AACJ,aAAOxX,SAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,sBAASzB,KAAT,EAAgB;AACZ,UAAM0B,CAAC,GAAG,KAAKC,EAAf;AACA,UAAID,CAAC,CAACjB,KAAN;AACI,aAAO,KAAKsb,iBAAL,CAAuBvhB,KAAK,CAACjB,OAAN,CAAcyG,KAAd,IAAuBA,KAAvB,GAA+BA,KAAK,KAAKyB,SAAV,GAAsB,CAACzB,KAAD,CAAtB,GAAgC,EAAtF,CAAP,CADJ;;AAGI,aAAO,KAAK+b,iBAAL,CAAuB/b,KAAK,KAAKyB,SAAV,GAAsB,CAACzB,KAAD,CAAtB,GAAgC,EAAvD,CAAP;AACP;;AAED;AACJ;AACA;AACA;AACA;AACI,iCAAoB;AAChB,UAAM0B,CAAC,GAAG,KAAKC,EAAf;AACA,aAAOD,CAAC,CAACuX,cAAF,CAAiB4D,KAAjB,CAAuB,CAAvB,CAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,+BAAkBtP,MAAlB,EAA0B;AACtB,UAAM7L,CAAC,GAAG,KAAKC,EAAf,CAAmBT,SAAS,GAAGQ,CAAC,CAACR,SAAjC;;AAEA,UAAI,CAACQ,CAAC,CAACjB,KAAP,EAAc;AACV8M,QAAAA,MAAM,GAAGA,MAAM,CAACsP,KAAP,CAAa,CAAb,EAAgB,CAAhB,CAAT;AACH;;AAED,UAAImB,GAAG,GAAG,IAAIzE,GAAJ,EAAV;AACA,UAAIN,cAAc,GAAG,EAArB;AACA,UAAIoB,aAAa,GAAG,EAApB,CATsB;;AAWJ9M,MAAAA,MAXI,gDAWbvN,KAXa;AAYlB,cAAIge,GAAG,CAACC,GAAJ,CAAQje,KAAR,CAAJ;AACI;AACJge,UAAAA,GAAG,CAACjb,GAAJ,CAAQ/C,KAAR;;AAEAiZ,UAAAA,cAAc,CAACtgB,IAAf,CAAoBqH,KAApB;;AAEA,cAAIoE,IAAI,GAAG1C,CAAC,CAAC4B,KAAF,CAAQgO,IAAR,CAAa,UAAA7I,CAAC,UAAIA,CAAC,CAACvH,SAAD,CAAD,KAAiBlB,KAArB,EAAd,CAAX;AACA,cAAIoE,IAAI,KAAK3C,SAAb,EAAwB;AACpB4Y,YAAAA,aAAa,CAAC1hB,IAAd,CAAmByL,IAAnB;AACH,WAFD,MAEO;AACHiW,YAAAA,aAAa,CAAC1hB,IAAd,qBAAsB+I,CAAC,CAACR,SAAxB,EAAoClB,KAApC;AACH,WAvBiB,EAWtB,uDAA0B,6CAElB;AAWP,SAxBqB;;AA0BtB0B,MAAAA,CAAC,CAACuX,cAAF,GAAmBA,cAAnB;AACAvX,MAAAA,CAAC,CAAC2Y,aAAF,GAAkBA,aAAlB;AACA3Y,MAAAA,CAAC,CAAC4Y,gBAAF,GAAqB,IAArB;AACA5Y,MAAAA,CAAC,CAAC6Y,uBAAF,GAA4B,IAA5B;;AAEA,WAAKE,gBAAL;AACA,WAAKwB,aAAL,CAAmB,MAAnB;;AAEA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,qCAAwB;AACpB,UAAMva,CAAC,GAAG,KAAKC,EAAf;AACA,aAAOD,CAAC,CAACuX,cAAF,CAAiB3R,MAAxB;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,gCAAmB;AACf,UAAM5F,CAAC,GAAG,KAAKC,EAAf;AACA,aAAOD,CAAC,CAAC2Y,aAAF,CAAgBwC,KAAhB,CAAsB,CAAtB,CAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACI,8BAAiBvZ,KAAjB,EAAwB;AACpB,WAAK4a,iBAAL,CAAuB5a,KAAvB;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,wBAAW;AACP,UAAM5B,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAID,CAAC,CAAC0a,QAAF,CAAWzT,SAAX,EAAJ;AACI,aAAO,IAAP;;AAEJ,UAAIjH,CAAC,CAACwX,aAAF,IAAmBxX,CAAC,CAAC4B,KAAF,CAAQgE,MAAR,KAAmB,CAA1C;AACI,aAAO,IAAP;;AAEJ,WAAKhB,QAAL,CAAc,aAAd,EAA6B,EAAE3C,IAAI,EAAEjC,CAAC,CAAC0a,QAAV,EAA7B;;AAEA1a,MAAAA,CAAC,CAAC0a,QAAF,CAAW+B,IAAX,CAAgB,KAAKC,2BAAL,EAAhB;AACA,WAAKC,mBAAL;;AAEA;AACA;AACA;AACA,WAAKA,mBAAL;;AAEA,UAAI3c,CAAC,CAAC0a,QAAF,CAAW/V,cAAX,EAAJ,EAAiC;AAC7B3E,QAAAA,CAAC,CAAC0a,QAAF,CAAWlN,qBAAX,CAAiCxN,CAAC,CAAC0a,QAAF,CAAWkC,mBAAX,EAAjC;AACH;;AAED,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,yBAAY;AACR,UAAM5c,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI,KAAKzB,eAAL,CAAJ;AACI,aAAO,IAAP;;AAEJ,UAAI,CAACwB,CAAC,CAAC0a,QAAF,CAAWzT,SAAX,EAAL;AACI,aAAO,IAAP;;AAEJjH,MAAAA,CAAC,CAAC0a,QAAF,CAAW7J,IAAX;;AAEA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,wBAAWgM,IAAX,EAAiB;AACb,UAAM7c,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI6c,UAAU,GAAGD,IAAI,KAAK9c,SAAT,GAAqB,CAACC,CAAC,CAAC0a,QAAF,CAAWzT,SAAX,EAAtB,GAA+C,CAAC,CAAC4V,IAAlE;;AAEA,UAAIC,UAAJ;AACI,aAAO,KAAKC,QAAL,EAAP,CADJ;AAEK,aAAO,KAAKC,SAAL,EAAP;AACR;;AAED;AACJ;AACA;AACI,0BAAa;AACT,aAAO,CAAC,CAAC,KAAK/c,EAAL,CAAQgd,eAAjB;AACH;;AAED;AACJ;AACA;AACA;AACI,2BAAcxd,EAAd,EAAkB;AACd,aAAO,KAAKyd,gBAAL,CAAsBzd,EAAE,KAAKM,SAAP,GAAmB,CAAC,KAAKod,gBAAL,EAApB,GAA8C,CAAC,CAAC1d,EAAtE,CAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,8BAAiB+X,aAAjB,EAAgC;AAC5B,UAAMxX,CAAC,GAAG,KAAKC,EAAf;;AAEAuX,MAAAA,aAAa,GAAGA,aAAa,KAAKzX,SAAlB,GAA8B,IAA9B,GAAqC,CAAC,CAACyX,aAAvD;;AAEA,UAAIxX,CAAC,CAACwX,aAAF,KAAoBA,aAAxB;AACI,aAAO,IAAP;;AAEJxX,MAAAA,CAAC,CAACwX,aAAF,GAAkBA,aAAlB;;AAEA,UAAIxX,CAAC,CAACwX,aAAF,IAAmBxX,CAAC,CAAC4B,KAAF,CAAQgE,MAAR,KAAmB,CAAtC,IAA2C,KAAKwX,UAAL,EAA/C,EAAkE;AAC9D,aAAKJ,SAAL;AACH,OAFD,MAEO,IAAI,CAAChd,CAAC,CAACwX,aAAH,IAAoBviB,QAAQ,CAAC4Z,aAA7B;AACN,OAAC7O,CAAC,CAACjB,KAAF,IAAWiB,CAAC,CAACgX,UAAd,KAA6BhX,CAAC,CAACuZ,KAAF,CAAQnN,QAAR,CAAiBnX,QAAQ,CAAC4Z,aAA1B,CAA7B;AACI,OAAC7O,CAAC,CAACjB,KAAH,IAAY,CAACiB,CAAC,CAACgX,UAAhB,IAA+BhX,CAAC,CAACgB,EAAF,CAAKoL,QAAL,CAAcnX,QAAQ,CAAC4Z,aAAvB,CAF5B,CAAJ,EAEwE;AAC3E,aAAKkO,QAAL;AACH;;AAED,WAAKxC,aAAL;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACI,gCAAmB;AACf,aAAO,KAAKta,EAAL,CAAQuX,aAAf;AACH;;AAED;AACJ;AACA;AACA;AACI,2BAAc;AACV,WAAKuC,YAAL;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,gCAAkBlV,KAAlB,gBAAuCqJ,OAAvC,EAAgD;AAC5C,WAAKjO,EAAL,CAAQO,IAAR,CAAaf,EAAb,CAAgBoF,KAAhB,EAAuBqJ,OAAvB;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,kCAAoBrJ,KAApB,gBAAyCqJ,OAAzC,EAAkD;AAC9C,UAAIC,OAAO,GAAG,SAAVA,OAAU,CAAC7P,KAAD,EAAW;AACrB,QAAA,MAAI,CAAC2B,EAAL,CAAQO,IAAR,CAAa4N,GAAb,CAAiBvJ,KAAjB,EAAwBsJ,OAAxB;AACAD,QAAAA,OAAO,CAAC5P,KAAD,CAAP;AACH,OAHD;AAIA,WAAK2B,EAAL,CAAQO,IAAR,CAAaf,EAAb,CAAgBoF,KAAhB,EAAuBsJ,OAAvB;AACA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,oCAAsBtJ,KAAtB,gBAA2CqJ,OAA3C,EAAoD;AAChD,UAAI,CAACrJ,KAAD,IAAU,CAACA,KAAf,EAAsB;AAClB,aAAK5E,EAAL,CAAQO,IAAR,CAAa6N,GAAb,CAAiBC,KAAjB;AACH,OAFD,MAEO;AACH,aAAKrO,EAAL,CAAQO,IAAR,CAAa4N,GAAb,CAAiBvJ,KAAjB,EAAwBqJ,OAAxB;AACH;AACD,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,kCAAoBrJ,KAApB,WAAoCvG,KAApC,EAA2C;AACvC,WAAK2B,EAAL,CAAQO,IAAR,CAAa+N,IAAb,CAAkB1J,KAAlB,EAAyBvG,KAAzB;AACA,aAAO,IAAP;AACH;;AAED;AACA,2BAAc;AACV,UAAM0B,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI,CAACD,CAAC,CAAC8a,eAAP,EAAwB;AACpB9a,QAAAA,CAAC,CAAC8a,eAAF,GAAoBtZ,iBAAa,CAAC,MAAD,EAAS;AACtCG,UAAAA,GAAG,EAAE;AACD4G,YAAAA,QAAQ,EAAE,UADT;AAED8U,YAAAA,MAAM,EAAE,CAAC,CAFR;AAGD7V,YAAAA,IAAI,EAAE,CAHL;AAIDzG,YAAAA,GAAG,EAAE,SAJJ;AAKDuc,YAAAA,UAAU,EAAE,KALX,EADiC,EAAT,CAAjC;;;AASH;;AAED,UAAI,CAACtd,CAAC,CAACuZ,KAAP,EAAc;AACVvZ,QAAAA,CAAC,CAACud,YAAF,GAAiB/b,iBAAa,CAAC,MAAD;AAC1B;AACIC,UAAAA,KAAK,YAAKzB,CAAC,CAACpB,aAAP,qBADT,EAD0B;;AAI1BoB,QAAAA,CAAC,CAACuZ,KAAF,GAAU/X,iBAAa,CAAC,OAAD,EAAU;AAC7BC,UAAAA,KAAK,YAAKzB,CAAC,CAACpB,aAAP,mBADwB;AAE7BkS,UAAAA,IAAI,EAAE,QAFuB;AAG7B0M,UAAAA,YAAY,EAAE,KAHe;AAI7BC,UAAAA,WAAW,EAAE,KAJgB;AAK7BC,UAAAA,cAAc,EAAE,KALa;AAM7BC,UAAAA,UAAU,EAAE,OANiB;AAO7Brc,UAAAA,IAAI,EAAE,SAPuB;AAQ7B,+BAAqB,MARQ;AAS7Bsc,UAAAA,QAAQ,EAAE,EAAE5d,CAAC,CAACgX,UAAF,IAAgBhX,CAAC,CAACjB,KAApB,CATmB,EAAV,CAJG,CAA9B;;;AAgBH;;AAED,UAAIiB,CAAC,CAACjB,KAAN,EAAa;AACT,YAAIiB,CAAC,CAAC6a,aAAN,EAAqB;AACjB,eAAKF,qBAAL;AACAzW,UAAAA,gBAAM,CAAClE,CAAC,CAAC6a,aAAH,CAAN;AACA,iBAAO7a,CAAC,CAAC6a,aAAT;AACH;;AAED,YAAI,CAAC7a,CAAC,CAACiC,IAAP,EAAa;AACT;AACA;AACA,eAAK4b,yBAAL;;AAEA;AACA,cAAMC,iBAAiB,GAAG7oB,QAAQ,CAAC4Z,aAAnC;;AAEA7O,UAAAA,CAAC,CAACiC,IAAF,GAAST,iBAAa,CAAC,IAAD,EAAO;AACzBC,YAAAA,KAAK,YAAKzB,CAAC,CAACpB,aAAP,WADoB,EAAP,CAAtB;;AAGAoB,UAAAA,CAAC,CAACgB,EAAF,CAAKsL,WAAL,CAAiBtM,CAAC,CAACiC,IAAnB;AACAjC,UAAAA,CAAC,CAACiC,IAAF,CAAOqK,WAAP,CAAmBtM,CAAC,CAACud,YAArB;AACAvd,UAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAe8C,MAAf,WAAyBlE,CAAC,CAACpB,aAA3B;AACAoB,UAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAeC,GAAf,WAAsBrB,CAAC,CAACpB,aAAxB;;AAEA;AACAoB,UAAAA,CAAC,CAACW,IAAF;AACKU,UAAAA,GADL,CACSrB,CAAC,CAACiC,IADX,EACiB,OADjB,EAC0B,UAAC6N,GAAD,EAAS;AAC3B,gBAAI,CAAC1K,gBAAY,CAAC0K,GAAG,CAACzK,MAAL,aAAiBrF,CAAC,CAACpB,aAAnB,oBAAiDkR,GAAG,CAAChB,aAArD,CAAjB;AACI;;AAEJ,gBAAI9O,CAAC,CAACmW,QAAN,EAAgB;;AAEhB,YAAA,MAAI,CAAC4H,yBAAL;AACI;AACA3Y,YAAAA,gBAAY,CAAC0K,GAAG,CAACzK,MAAL,aAAiBrF,CAAC,CAACpB,aAAnB,aAA0CkR,GAAG,CAAChB,aAA9C,CAFhB;AAGIgB,YAAAA,GAHJ;AAIH,WAXL;AAYKzO,UAAAA,GAZL,CAYSrB,CAAC,CAACiC,IAZX,EAYiB,SAZjB,EAY4B,6BAAmB6N,GAAnB,EAA2B;AAC/C,gBAAI,CAAC1K,gBAAY,CAAC0K,GAAG,CAACzK,MAAL,aAAiBrF,CAAC,CAACpB,aAAnB,aAA0CkR,GAAG,CAAChB,aAA9C,CAAjB;AACI;;AAEJ,YAAA,MAAI,CAACkP,mBAAL,CAAyBlO,GAAzB;AACH,WAjBL;;AAmBA,cAAIgO,iBAAiB,KAAK9d,CAAC,CAACuZ,KAA5B;AACIvZ,UAAAA,CAAC,CAACuZ,KAAF,CAAQC,KAAR;;AAEJ,eAAKyE,uBAAL;AACH;AACJ,OAhDD,MAgDO;AACH,YAAIje,CAAC,CAACiC,IAAN,EAAY;AACRiC,UAAAA,gBAAM,CAAClE,CAAC,CAACiC,IAAH,CAAN;AACAjC,UAAAA,CAAC,CAACW,IAAF,CAAOuD,MAAP,CAAclE,CAAC,CAACiC,IAAhB;AACA,iBAAOjC,CAAC,CAACiC,IAAT;AACH;;AAED,YAAI,CAACjC,CAAC,CAAC6a,aAAP,EAAsB;AAClB;AACA;AACA,eAAKgD,yBAAL;;AAEA;AACA,cAAMC,kBAAiB,GAAG7oB,QAAQ,CAAC4Z,aAAnC;;AAEA7O,UAAAA,CAAC,CAAC6a,aAAF,GAAkBrZ,iBAAa,CAAC,KAAD,EAAQ;AACnCC,YAAAA,KAAK,YAAKzB,CAAC,CAACpB,aAAP,qBAD8B,EAAR,CAA/B;;AAGAoB,UAAAA,CAAC,CAACgB,EAAF,CAAKsL,WAAL,CAAiBtM,CAAC,CAAC6a,aAAnB;AACA7a,UAAAA,CAAC,CAACgB,EAAF,CAAKsL,WAAL,CAAiBtM,CAAC,CAACud,YAAnB;AACAvd,UAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAe8C,MAAf,WAAyBlE,CAAC,CAACpB,aAA3B;AACAoB,UAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAeC,GAAf,WAAsBrB,CAAC,CAACpB,aAAxB;;AAEA,cAAIkf,kBAAiB,KAAK9d,CAAC,CAACuZ,KAA5B;AACIvZ,UAAAA,CAAC,CAACuZ,KAAF,CAAQC,KAAR;;AAEJ,eAAKyE,uBAAL;AACH;AACJ;;AAED,UAAIje,CAAC,CAACqW,gBAAF,KAAuB,CAAC,CAACrW,CAAC,CAAC+a,aAA/B,EAA8C;AAC1C,YAAI/a,CAAC,CAACqW,gBAAN,EAAwB;AACpBrW,UAAAA,CAAC,CAAC+a,aAAF,GAAkBvZ,iBAAa,CAAC,MAAD,EAAS,EAAEC,KAAK,YAAKzB,CAAC,CAACpB,aAAP,qBAAP,EAAT,CAA/B;AACAoB,UAAAA,CAAC,CAACgB,EAAF,CAAKsL,WAAL,CAAiBtM,CAAC,CAAC+a,aAAnB;AACH,SAHD,MAGO;AACH7W,UAAAA,gBAAM,CAAClE,CAAC,CAAC+a,aAAH,CAAN;AACA,iBAAO/a,CAAC,CAAC+a,aAAT;AACA/a,UAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAe8C,MAAf,WAAyBlE,CAAC,CAACpB,aAA3B;AACH;AACJ;;AAED,UAAIoB,CAAC,CAACwX,aAAF,KAAoB,CAAC,CAACxX,CAAC,CAACke,OAA5B,EAAqC;AACjC,YAAIle,CAAC,CAACwX,aAAN,EAAqB;AACjBxX,UAAAA,CAAC,CAACke,OAAF,GAAY1c,iBAAa,CAAC,MAAD,EAAS,EAAEC,KAAK,YAAKzB,CAAC,CAACpB,aAAP,cAAP,EAAT,CAAzB;AACAoB,UAAAA,CAAC,CAACgB,EAAF,CAAKsL,WAAL,CAAiBtM,CAAC,CAACke,OAAnB;AACAle,UAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAeC,GAAf,WAAsBrB,CAAC,CAACpB,aAAxB;AACH,SAJD,MAIO;AACHsF,UAAAA,gBAAM,CAAClE,CAAC,CAACke,OAAH,CAAN;AACA,iBAAOle,CAAC,CAACke,OAAT;AACAle,UAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAe8C,MAAf,WAAyBlE,CAAC,CAACpB,aAA3B;AACH;AACJ;AACJ;;AAED;AACJ;AACA;AACI,gCAAmB;AACf,UAAMoB,CAAC,GAAG,KAAKC,EAAf,CAAmBe,EAAE,GAAGhB,CAAC,CAACgB,EAA1B;;AAEA,UAAI,CAACA,EAAL;AACI;;AAEJ,UAAIH,OAAO,GAAG,CAACb,CAAC,CAACpB,aAAH,CAAd;;AAEA,UAAIoB,CAAC,CAACjB,KAAN;AACI8B,MAAAA,OAAO,CAAC5J,IAAR,WAAgB+I,CAAC,CAACpB,aAAlB,cADJ;AAEKiC,MAAAA,OAAO,CAAC5J,IAAR,WAAgB+I,CAAC,CAACpB,aAAlB;;AAEL,UAAI,KAAKwe,UAAL,EAAJ;AACIvc,MAAAA,OAAO,CAAC5J,IAAR,WAAgB+I,CAAC,CAACpB,aAAlB,kBADJ;AAEKiC,MAAAA,OAAO,CAAC5J,IAAR,WAAgB+I,CAAC,CAACpB,aAAlB;;AAEL,UAAIoB,CAAC,CAACqW,gBAAN;AACIxV,MAAAA,OAAO,CAAC5J,IAAR,WAAgB+I,CAAC,CAACpB,aAAlB;;AAEJ,UAAIoB,CAAC,CAACsZ,kBAAN;AACIzY,MAAAA,OAAO,CAAC5J,IAAR,WAAgB+I,CAAC,CAACpB,aAAlB;;AAEJ,UAAIoB,CAAC,CAACwX,aAAN;AACI3W,MAAAA,OAAO,CAAC5J,IAAR,WAAgB+I,CAAC,CAACpB,aAAlB;;AAEJ,UAAIoB,CAAC,CAACuX,cAAF,CAAiB3R,MAAjB,KAA4B,CAAhC;AACI/E,MAAAA,OAAO,CAAC5J,IAAR,WAAgB+I,CAAC,CAACpB,aAAlB;;AAEJ,UAAIoB,CAAC,CAACuX,cAAF,CAAiB3R,MAAjB,GAA0B,CAA9B;AACI/E,MAAAA,OAAO,CAAC5J,IAAR,WAAgB+I,CAAC,CAACpB,aAAlB;;AAEJ,UAAIoB,CAAC,CAACgX,UAAF,IAAgBhX,CAAC,CAACjB,KAAtB;AACI8B,MAAAA,OAAO,CAAC5J,IAAR,WAAgB+I,CAAC,CAACpB,aAAlB;;AAEJ,UAAIoB,CAAC,CAACI,iBAAN,EAAyB;AACrBS,QAAAA,OAAO,GAAGA,OAAO,CAACvJ,MAAR,CAAe0I,CAAC,CAACI,iBAAjB,CAAV;AACH;;AAEDY,MAAAA,EAAE,CAACgC,SAAH,GAAenC,OAAO,CAACa,IAAR,CAAa,GAAb,CAAf;AACH;;AAED;AACA,kCAAqB;AACjB,UAAM1B,CAAC,GAAG,KAAKC,EAAf,CAAmBT,SAAS,GAAGQ,CAAC,CAACR,SAAjC;;AAEA,UAAIQ,CAAC,CAAC0a,QAAN,EAAgB;AACZ1a,QAAAA,CAAC,CAAC0a,QAAF,CAAWvW,OAAX;AACA,eAAOnE,CAAC,CAAC0a,QAAT;AACA1a,QAAAA,CAAC,CAACyY,YAAF,GAAiB,IAAjB;AACAzY,QAAAA,CAAC,CAAC4Y,gBAAF,GAAqB,IAArB;AACA5Y,QAAAA,CAAC,CAAC6Y,uBAAF,GAA4B,IAA5B;AACH;;AAED,UAAMT,mBAAmB,GAAGpY,CAAC,CAACoY,mBAA9B;AACA,UAAMC,qBAAqB,GAAGrY,CAAC,CAACqY,qBAAhC;AACA,UAAM8F,gBAAgB,GAAG,CAACne,CAAC,CAAC4X,WAAF,IAAiB,EAAlB,EAAsBvX,UAA/C;AACA,UAAM+d,kBAAkB,GAAG,CAACpe,CAAC,CAAC4X,WAAF,IAAiB,EAAlB,EAAsBtX,YAAjD;;AAEA,UAAMD,UAAU,GAAI+X,mBAAmB,IAAI+F,gBAAxB,GAA4C,UAACzb,IAAD,EAAOF,MAAP,EAAkB;AAC7E,YAAIE,IAAI,IAAIA,IAAI,CAAClD,SAAD,CAAJ,KAAoBmW,mBAAhC,EAAqD;AACjD,cAAIyC,mBAAmB,IAAIA,mBAAmB,CAAC1V,IAAD,EAAOF,MAAP,CAAnB,KAAsC,KAAjE,EAAwE;AACpE,mBAAO,IAAP;AACH;;AAEDA,UAAAA,MAAM,CAAC8J,WAAP,CAAmB9K,iBAAa,CAAC,KAAD,EAAQ;AACpCC,YAAAA,KAAK,EAAE,6BAD6B;AAEpC+R,YAAAA,WAAW,EAAExT,CAAC,CAACiX,aAFqB,EAAR,CAAhC;;AAIA,iBAAO,IAAP;AACH,SAVD,MAUO;AACH,cAAIkH,gBAAJ;AACI,iBAAOA,gBAAgB,CAACzb,IAAD,EAAOF,MAAP,CAAvB;AACP;AACD,eAAO,KAAP;AACH,OAhBkB,GAgBf,IAhBJ;;AAkBA,UAAMlC,YAAY,GAAI+X,qBAAqB,IAAI8F,gBAA1B,GAA8C,UAACzb,IAAD,EAAOF,MAAP,EAAkB;AACjF,YAAIE,IAAI,IAAIA,IAAI,CAAClD,SAAD,CAAJ,KAAoBmW,mBAAhC,EAAqD;AACjD,cAAI0C,qBAAJ;AACI,iBAAOA,qBAAqB,CAAC3V,IAAD,EAAOF,MAAP,CAA5B;AACP,SAHD,MAGO;AACH,cAAI4b,kBAAJ;AACI,iBAAOA,kBAAkB,CAAC1b,IAAD,EAAOF,MAAP,CAAzB;AACP;AACD,eAAO,KAAP;AACH,OAToB,GASjB,IATJ;;AAWA,UAAMkY,QAAQ,GAAG1a,CAAC,CAAC0a,QAAF,GAAa,IAAIhb,QAAJ;AAC1BJ,QAAAA,eAAe,EAAE,EADS;;AAGvBU,MAAAA,CAAC,CAAC4X,WAHqB;;AAK1BvX,QAAAA,UAAU,EAAEA,UALc;AAM1BC,QAAAA,YAAY,EAAEA,YANY;;AAQ1BvB,QAAAA,KAAK,EAAEiB,CAAC,CAACjB,KARiB;AAS1BD,QAAAA,aAAa,EAAE,KATW;;AAW1BS,QAAAA,SAAS,EAAES,CAAC,CAACT,SAXa;AAY1BC,QAAAA,SAAS,EAAEQ,CAAC,CAACR,SAZa;;AAc1BC,QAAAA,EAAE,EAAE,YAAC4E,IAAD,EAAOQ,KAAP,EAAiB;AACjB,kBAAQR,IAAR;AACI,iBAAK,aAAL,CAAoB;AAChBrE,gBAAAA,CAAC,CAACid,eAAF,GAAoB,IAApB;AACAjd,gBAAAA,CAAC,CAACgB,EAAF,CAAK6B,YAAL,CAAkB,eAAlB,EAAmC,MAAnC;AACA7C,gBAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAeC,GAAf,WAAsBrB,CAAC,CAACpB,aAAxB;AACAoB,gBAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAe8C,MAAf,WAAyBlE,CAAC,CAACpB,aAA3B;;AAEA,oBAAIoB,CAAC,CAAC6Y,uBAAF,IAA8B7Y,CAAC,CAACyW,oBAAF,IAA0BzW,CAAC,CAACjB,KAA9D;AACIiB,gBAAAA,CAAC,CAACyY,YAAF,GAAiB,IAAjB;;AAEJ,gBAAA,MAAI,CAACM,gBAAL;AACA,gBAAA,MAAI,CAACnU,QAAL,CAAc,MAAd,EAAsB,EAAE3C,IAAI,EAAEyY,QAAR,EAAtB;;AAEA,gBAAA,MAAI,CAAC2D,sBAAL;;AAEAre,gBAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAW8F,MAAX,EAAmB,sBAAnB,EAA2C,oBAAM,MAAI,CAACwV,mBAAL,EAAN,EAA3C;;AAEA,oBAAI2B,MAAM,GAAGte,CAAC,CAACgB,EAAF,CAAKgK,UAAlB;AACA,uBAAOsT,MAAP,EAAe;AACX,sBAAIA,MAAM,CAACzU,YAAP,GAAsByU,MAAM,CAACC,YAA7B;AACAD,kBAAAA,MAAM,CAACpT,WAAP,GAAqBoT,MAAM,CAACE,WADhC,EAC6C;AACzC,wBAAIF,MAAM,KAAKrpB,QAAQ,CAACwV,eAAxB,EAAyC;AACrC6T,sBAAAA,MAAM,GAAGnX,MAAT;AACH;AACDnH,oBAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAWid,MAAX,EAAmB,sBAAnB,EAA2C,oBAAM,MAAI,CAAC3B,mBAAL,EAAN,EAA3C;AACH;AACD2B,kBAAAA,MAAM,GAAGA,MAAM,CAACtT,UAAhB;AACH;AACJ;AACG;;AAEJ,iBAAK,MAAL,CAAa;AACThL,gBAAAA,CAAC,CAACid,eAAF,GAAoB,KAApB;AACAjd,gBAAAA,CAAC,CAACgB,EAAF,CAAK6B,YAAL,CAAkB,eAAlB,EAAmC,OAAnC;AACA7C,gBAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAe8C,MAAf,WAAyBlE,CAAC,CAACpB,aAA3B;AACAoB,gBAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAeC,GAAf,WAAsBrB,CAAC,CAACpB,aAAxB;;AAEA,oBAAI,CAACoB,CAAC,CAACjB,KAAP,EAAc;AACV,kBAAA,MAAI,CAACsd,aAAL,CAAmB,EAAnB;AACA,kBAAA,MAAI,CAAC9B,aAAL;AACH;;AAED,gBAAA,MAAI,CAAC3V,QAAL,CAAc,OAAd;;AAEA,oBAAI,MAAI,CAACpG,eAAD,CAAR,EAA2B,OAblB;;AAeT,gBAAA,MAAI,CAACic,qBAAL;AACAza,gBAAAA,CAAC,CAACW,IAAF,CAAOuD,MAAP,CAAc,IAAd,EAAoB,gBAApB;AACH;AACG;;AAEJ,iBAAK,OAAL,CAAc;AACV,oBAAI,CAAClE,CAAC,CAACjB,KAAP,EAAc;;AAEd,oBAAM2D,IAAI,2BAA2BmC,KAAK,CAACnC,IAA3C;AACA,oBAAMpE,KAAK,GAAGuG,KAAK,CAACvG,KAApB;;AAEA,oBAAI0G,OAAO,GAAGH,KAAK,CAACG,OAApB;AACA,oBAAIH,KAAK,CAACI,OAAV,EAAmB,OAPT;;AASV,oBAAIwZ,MAAM,GAAG,EAAEngB,KAAK,EAAEA,KAAT,EAAgBoE,IAAI,EAAEA,IAAtB,EAA4B+S,MAAM,EAAE,KAApC,EAAb;AACA,gBAAA,MAAI,CAAC7Q,QAAL,CAAc,CAACI,OAAO,GAAG,QAAH,GAAc,WAAtB,IAAqC,SAAnD,EAA8DyZ,MAA9D;;AAEA,oBAAIA,MAAM,CAAChJ,MAAX,EAAmB;AACf;AACAzV,kBAAAA,CAAC,CAAC0a,QAAF,CAAWgE,cAAX,CAA0BpgB,KAA1B,EAAiC,CAAC0G,OAAlC;AACA;AACH;;AAED,oBAAIA,OAAJ,EAAa;AACThF,kBAAAA,CAAC,CAAC2Y,aAAF,CAAgB1hB,IAAhB,CAAqByL,IAArB;AACA1C,kBAAAA,CAAC,CAACuX,cAAF,CAAiBtgB,IAAjB,CAAsBqH,KAAtB;AACH,iBAHD,MAGO;AACH,sBAAMqgB,GAAG,GAAG3e,CAAC,CAACuX,cAAF,CAAiBvgB,OAAjB,CAAyBsH,KAAzB,CAAZ;AACA,sBAAIqgB,GAAG,KAAK,CAAC,CAAb,EAAgB;AACZ3e,oBAAAA,CAAC,CAAC2Y,aAAF,CAAgB1S,MAAhB,CAAuB0Y,GAAvB,EAA4B,CAA5B;AACA3e,oBAAAA,CAAC,CAACuX,cAAF,CAAiBtR,MAAjB,CAAwB0Y,GAAxB,EAA6B,CAA7B;AACH;AACJ;;AAED;AACA,oBAAMC,YAAY,GAAG,CAAC,CAAC/Z,KAAK,CAACK,eAA7B;;AAEA,oBAAIlF,CAAC,CAAC8W,aAAN,EAAqB;AACjB,sBAAI9R,OAAJ,EAAa;AACT,wBAAI0V,QAAQ,CAACvI,SAAT,OAAyB,CAA7B,EAAgC;AAC5B,sBAAA,MAAI,CAACkK,aAAL,CAAmB,EAAnB;AACH;;AAED,wBAAIrc,CAAC,CAACuW,iBAAN,EAAyB;AACrB,0BAAI,CAACqI,YAAL;AACI,sBAAA,MAAI,CAACrE,aAAL,CAAmB,MAAnB;AACP,qBAHD,MAGO;AACH,0BAAIva,CAAC,CAACqX,aAAF,IAAmB,IAAnB;AACArX,sBAAAA,CAAC,CAAC2Y,aAAF,CAAgBkG,MAAhB,CAAuB,UAAA9X,CAAC,UAAI,CAACA,CAAC,CAAC5D,MAAP,EAAxB,EAAuCyC,MAAvC,GAAgD5F,CAAC,CAACqX,aADtD,EACqE;AACjE,wBAAA,MAAI,CAACkD,aAAL,CAAmB,iCAAnB;AACH,uBAHD,MAGO;AACH,wBAAA,MAAI,CAACA,aAAL,CAAmB,qBAAnB,EAA0C7X,IAA1C;AACH;;AAED,0BAAI,CAACkc,YAAL;AACI,sBAAA,MAAI,CAACrE,aAAL;AACP;AACJ,mBAnBD,MAmBO;AACH,wBAAIva,CAAC,CAACqX,aAAF,IAAmB,IAAnB;AACArX,oBAAAA,CAAC,CAAC2Y,aAAF,CAAgBkG,MAAhB,CAAuB,UAAA9X,CAAC,UAAI,CAACA,CAAC,CAAC5D,MAAP,EAAxB,EAAuCyC,MAAvC,KAAkD5F,CAAC,CAACqX,aADxD,EACuE;AACnE,sBAAA,MAAI,CAACkD,aAAL,CAAmB,4BAAnB;AACH,qBAHD,MAGO;AACH,sBAAA,MAAI,CAACA,aAAL,CAAmB,wBAAnB,EAA6C7X,IAA7C;AACH;;AAED,wBAAI,CAACkc,YAAL;AACI,oBAAA,MAAI,CAACrE,aAAL;AACP;AACJ;;AAED,gBAAA,MAAI,CAAC3V,QAAL,CAAcI,OAAO,GAAG,QAAH,GAAc,WAAnC,EAAgD,EAAE1G,KAAK,EAAEA,KAAT,EAAgBoE,IAAI,EAAEA,IAAtB,EAAhD;AACH;AACG;;AAEJ,iBAAK,YAAL,CAAmB;AACf,oBAAI,CAAC1C,CAAC,CAACjB,KAAP,EAAc;;AAEd,oBAAI8F,KAAK,CAACyN,aAAV,EAAyB;AACrB,kBAAA,MAAI,CAACiI,aAAL,CAAmBva,CAAC,CAACuW,iBAAF,GAAsB,MAAtB,GAA+B,IAAlD;AACH;AACJ;AACG;;AAEJ,iBAAK,QAAL,CAAe;AACX,oBAAIvW,CAAC,CAACjB,KAAN,EAAa;;AAEb,oBAAM2D,KAAI,GAAGmC,KAAK,CAACnC,IAAnB;AACA,oBAAMpE,MAAK,GAAGuG,KAAK,CAACvG,KAApB;;AAEA,oBAAIwgB,SAAS,GAAG,EAAExgB,KAAK,EAAEA,MAAT,EAAgBoE,IAAI,EAAEA,KAAtB,EAA4B+S,MAAM,EAAE,KAApC,EAAhB;AACA,gBAAA,MAAI,CAAC7Q,QAAL,CAAc,eAAd,EAA+Bka,SAA/B;;AAEA,oBAAIA,SAAS,CAACrJ,MAAd;AACI;;AAEJ,oBAAI,MAAI,CAACjX,eAAD,CAAR,EAA2B,OAZhB;;AAcX,gBAAA,MAAI,CAACge,iBAAL,CAAuB,CAAC9Z,KAAD,CAAvB;AACA,gBAAA,MAAI,CAACkC,QAAL,CAAc,QAAd,EAAwB,EAAEtG,KAAK,EAAEA,MAAT,EAAgBoE,IAAI,EAAEA,KAAtB,EAAxB;;AAEA,oBAAI,MAAI,CAAClE,eAAD,CAAR,EAA2B,OAjBhB;;AAmBX,gBAAA,MAAI,CAACwe,SAAL;;AAEA,oBAAIhd,CAAC,CAAC6W,qBAAF,KAA4B,OAA5B,IAAuChB,kBAAvC;AACA7V,gBAAAA,CAAC,CAAC6W,qBAAF,KAA4B,OAA5B,IAAuC7W,CAAC,CAAC6W,qBAD7C,EACoE;AAChE7W,kBAAAA,CAAC,CAACuZ,KAAF,IAAWvZ,CAAC,CAACuZ,KAAF,CAAQ4C,IAAR,EAAX;AACH;AACJ;AACG,oBA3JR;;AA6JH,SA5KyB,IAA9B;;;AA+KA,WAAK8B,uBAAL;AACH;;AAED,yCAA4B;AACxB,UAAMje,CAAC,GAAG,KAAKC,EAAf;;AAEAD,MAAAA,CAAC,CAACW,IAAF,CAAOuD,MAAP,CAAc,IAAd,EAAoB,WAApB;AACH;;AAED,uCAA0B;AACtB,UAAMlE,CAAC,GAAG,KAAKC,EAAf;;AAEA,WAAK4d,yBAAL;;AAEA,UAAMnD,QAAQ,GAAG1a,CAAC,CAAC0a,QAAnB;AACA,UAAI,CAACA,QAAL,EAAe;;AAEf,UAAIqE,oBAAoB,GAAG,KAA3B;AACI3P,MAAAA,cAAc,GAAG,IADrB;AAEI4P,MAAAA,gBAAgB,GAAG,KAFvB;AAGIC,MAAAA,sBAAsB,GAAG,KAH7B;;AAKA,UAAMC,eAAe,GAAGlf,CAAC,CAACjB,KAAF,IAAWiB,CAAC,CAACgX,UAAb,GAA0BhX,CAAC,CAACuZ,KAA5B,GAAoCvZ,CAAC,CAACgB,EAA9D;;AAEAhB,MAAAA,CAAC,CAACW,IAAF;AACKU,MAAAA,GADL,CACS6d,eADT,EAC0B,kBAD1B,EAC8C,UAAApP,GAAG,EAAI;AAC7C,wCAAgCA,GAAG,CAAChB,aAAhC,CAA+C8O,QAAnD;AACI;;AAEJoB,QAAAA,gBAAgB,GAAG,KAAnB;AACAC,QAAAA,sBAAsB,GAAG,KAAzB;;AAEA,gBAAQnP,GAAG,CAAChQ,GAAZ;AACI,eAAKkQ,uBAAL;AACA,eAAKC,yBAAL;AACA,eAAKG,kBAAL;AACA,eAAKC,oBAAL;AACI2O,YAAAA,gBAAgB,GAAG,IAAnB;AACAlP,YAAAA,GAAG,CAACf,cAAJ;;AAEA,oBAAQe,GAAG,CAAChQ,GAAZ;AACI,mBAAKkQ,uBAAL;AACI,oBAAI0K,QAAQ,CAACzT,SAAT,EAAJ;AACIyT,gBAAAA,QAAQ,CAACpK,YAAT,CAAsBR,GAAtB;AACJ;AACJ,mBAAKG,yBAAL;AACI,oBAAIyK,QAAQ,CAACzT,SAAT,EAAJ;AACIyT,gBAAAA,QAAQ,CAACnK,QAAT,CAAkBT,GAAlB;AACJ;AACJ,mBAAKM,kBAAL;AACI,oBAAIsK,QAAQ,CAACzT,SAAT,EAAJ,EAA0B;AACtByT,kBAAAA,QAAQ,CAAClK,QAAT,CAAkBV,GAAlB;AACH,iBAFD,MAEO;AACH,kBAAA,MAAI,CAACqP,SAAL;AACH;AACD;AACJ,mBAAK9O,oBAAL;AACI,oBAAIqK,QAAQ,CAACzT,SAAT,EAAJ,EAA0B;AACtByT,kBAAAA,QAAQ,CAACjK,IAAT,CAAcX,GAAd;AACH,iBAFD,MAEO;AACH,kBAAA,MAAI,CAACsP,SAAL;AACH;AACD,sBAtBR;;;AAyBA;;AAEJ,eAAKzO,qBAAL;AACI,gBAAI3Q,CAAC,CAACqf,wBAAN,EAAgC;AAC5B,kBAAI3E,QAAQ,CAACzT,SAAT,MAAwByT,QAAQ,CAAC/V,cAAT,EAA5B,EAAuD;AACnDqa,gBAAAA,gBAAgB,GAAG,IAAnB;AACAC,gBAAAA,sBAAsB,GAAG,IAAzB;AACA,oBAAIjf,CAAC,CAACjB,KAAN;AACI2b,gBAAAA,QAAQ,CAAC9L,iBAAT,CAA2BkB,GAA3B,EADJ;AAEK4K,gBAAAA,QAAQ,CAAC/L,oBAAT,CAA8BmB,GAA9B;AACLA,gBAAAA,GAAG,CAACf,cAAJ;AACH;AACJ;AACD;;AAEJ,eAAK2B,qBAAL;AACI,gBAAIgK,QAAQ,CAACzT,SAAT,MAAwByT,QAAQ,CAAC/V,cAAT,EAA5B,EAAuD;AACnDqa,cAAAA,gBAAgB,GAAG,IAAnB;AACAC,cAAAA,sBAAsB,GAAG,IAAzB;AACAnP,cAAAA,GAAG,CAACf,cAAJ;AACA2L,cAAAA,QAAQ,CAAC/L,oBAAT,CAA8BmB,GAA9B;AACH;;AAED;;AAEJ,eAAKwP,mBAAL;AACI,gBAAI5E,QAAQ,CAACzT,SAAT,MAAwByT,QAAQ,CAAC/V,cAAT,EAA5B,EAAuD;AACnD+V,cAAAA,QAAQ,CAAC/L,oBAAT,CAA8BmB,GAA9B;AACH;AACD;;AAEJ,eAAKc,sBAAL;AACI,gBAAI8J,QAAQ,CAACzT,SAAT,EAAJ,EAA0B;AACtByT,cAAAA,QAAQ,CAAC7J,IAAT,CAAcf,GAAd;AACAA,cAAAA,GAAG,CAACf,cAAJ;AACH;AACD;;AAEJ;AACIkQ,YAAAA,sBAAsB,GAAG,IAAzB;AACAvE,YAAAA,QAAQ,CAAC3J,gBAAT,CAA0BjB,GAA1B;AACA,kBA1ER;;;AA6EA9P,QAAAA,CAAC,CAACqf,wBAAF,GAA6BvP,GAAG,CAAChQ,GAAJ,KAAYsQ,kBAAZ;AACzBN,QAAAA,GAAG,CAAChQ,GAAJ,KAAYuQ,oBADa;AAEzBP,QAAAA,GAAG,CAAChQ,GAAJ,KAAYkQ,uBAFa;AAGzBF,QAAAA,GAAG,CAAChQ,GAAJ,KAAYmQ,yBAHa;AAIxBH,QAAAA,GAAG,CAAChQ,GAAJ,KAAY6Q,qBAAZ,IAA2B,CAAC,CAAC3Q,CAAC,CAACqf,wBAJpC;AAKH,OA1FL;AA2FKhe,MAAAA,GA3FL,CA2FS6d,eA3FT,EA2F0B,mBA3F1B,EA2F+C,UAAApP,GAAG,EAAI;AAC9C,YAAIkP,gBAAJ,EAAsB;AAClBA,UAAAA,gBAAgB,GAAG,KAAnB;AACAlP,UAAAA,GAAG,CAACf,cAAJ;AACA;AACH;;AAED,YAAIkQ,sBAAJ;AACI;;AAEJ,YAAInP,GAAG,CAAChQ,GAAJ,KAAY4Q,qBAAZ;;AAEIZ,QAAAA,GAAG,CAAChQ,GAAJ,KAAY6Q,qBAAZ;AACA3Q,QAAAA,CAAC,CAACqf,wBADF;AAEA,SAACrf,CAAC,CAACjB,KAFH;AAGA,SAAC2b,QAAQ,CAAC/V,cAAT,EALT;;AAOE;AACE,UAAA,MAAI,CAAC4a,UAAL;AACAzP,UAAAA,GAAG,CAACf,cAAJ;AACAe,UAAAA,GAAG,CAAC0P,eAAJ;AACA;AACH;;AAED,gBAAQ1P,GAAG,CAAChQ,GAAZ;AACI,eAAKkQ,uBAAL;AACA,eAAKC,yBAAL;AACA,eAAKG,kBAAL;AACA,eAAKC,oBAAL;AACIP,YAAAA,GAAG,CAACf,cAAJ;;AAEA,oBAAQe,GAAG,CAAChQ,GAAZ;AACI,mBAAKkQ,uBAAL;AACI,oBAAI0K,QAAQ,CAACzT,SAAT,EAAJ;AACIyT,gBAAAA,QAAQ,CAACpK,YAAT,CAAsBR,GAAtB;AACJ;AACJ,mBAAKG,yBAAL;AACI,oBAAIyK,QAAQ,CAACzT,SAAT,EAAJ;AACIyT,gBAAAA,QAAQ,CAACnK,QAAT,CAAkBT,GAAlB;AACJ;AACJ,mBAAKM,kBAAL;AACI,oBAAIsK,QAAQ,CAACzT,SAAT,EAAJ,EAA0B;AACtByT,kBAAAA,QAAQ,CAAClK,QAAT,CAAkBV,GAAlB;AACH,iBAFD,MAEO;AACH,kBAAA,MAAI,CAACqP,SAAL;AACH;AACD;AACJ,mBAAK9O,oBAAL;AACI,oBAAIqK,QAAQ,CAACzT,SAAT,EAAJ,EAA0B;AACtByT,kBAAAA,QAAQ,CAACjK,IAAT,CAAcX,GAAd;AACH,iBAFD,MAEO;AACH,kBAAA,MAAI,CAACsP,SAAL;AACH;AACD,sBAtBR;;AAwBA,kBA/BR;;AAiCH,OApJL;;AAsJA,UAAIpf,CAAC,CAACuZ,KAAN,EAAa;AACTvZ,QAAAA,CAAC,CAACW,IAAF;AACKU,QAAAA,GADL,CACSrB,CAAC,CAACuZ,KADX,EACkB,gBADlB,EACoC,YAAM;AAClCvZ,UAAAA,CAAC,CAACgZ,UAAF,GAAehZ,CAAC,CAACuZ,KAAF,CAAQjb,KAAR,CAAcsd,IAAd,EAAf;AACA5b,UAAAA,CAAC,CAACuY,aAAF,GAAkB,IAAlB;AACAvY,UAAAA,CAAC,CAACyY,YAAF,GAAiB,IAAjB;;AAEA,UAAA,MAAI,CAAC7T,QAAL,CAAc,QAAd,EAAwB,EAAEtG,KAAK,EAAE0B,CAAC,CAACuZ,KAAF,CAAQjb,KAAjB,EAAxB;;AAEA0B,UAAAA,CAAC,CAAC8Y,wBAAF;AACH,SATL;AAUKzX,QAAAA,GAVL,CAUSrB,CAAC,CAACuZ,KAVX,EAUkB,gBAVlB,EAUoC,YAAM;AAClC,cAAI,CAACvZ,CAAC,CAACjB,KAAH,IAAYiB,CAAC,CAACgX,UAAlB,EAA8B;AAC1B,YAAA,MAAI,CAAC+F,QAAL;AACH;AACJ,SAdL;AAeK1b,QAAAA,GAfL,CAeSrB,CAAC,CAACuZ,KAfX,EAekB,gBAflB,EAeoC,YAAM;AAClC,UAAA,MAAI,CAAC3U,QAAL,CAAc,cAAd;;AAEA,cAAI,MAAI,CAACpG,eAAD,CAAR,EAA2B,OAHO;;AAKlCugB,UAAAA,oBAAoB,GAAG,KAAvB;AACA,UAAA,MAAI,CAAChC,QAAL;;AAEAgC,UAAAA,oBAAoB,GAAG,IAAvB;AACA7S,UAAAA,UAAU,CAAC,YAAM,CAAE6S,oBAAoB,GAAG,KAAvB,CAA+B,CAAxC,EAA0C,EAA1C,CAAV;AACH,SAzBL;AA0BK1d,QAAAA,GA1BL,CA0BSrB,CAAC,CAACuZ,KA1BX,EA0BkB,eA1BlB,EA0BmC,YAAM;AACjC,UAAA,MAAI,CAAC3U,QAAL,CAAc,aAAd;;AAEA,cAAI,MAAI,CAACpG,eAAD,CAAR,EAA2B,OAHM;;AAKjC,cAAIwB,CAAC,CAAC8Y,wBAAN;AACI9Y,UAAAA,CAAC,CAAC8Y,wBAAF,CAA2BrD,MAA3B;;AAEJ,UAAA,MAAI,CAACuH,SAAL;AACH,SAnCL;AAoCH;;AAEDhd,MAAAA,CAAC,CAACW,IAAF;AACKU,MAAAA,GADL,CACSrB,CAAC,CAACgB,EADX,EACe,oBADf,EACqC,YAAM;AACnC,YAAI,CAAChB,CAAC,CAACjB,KAAH,IAAY,CAACiB,CAAC,CAACgX,UAAf,IAA6B,CAAC+H,oBAAlC,EAAwD;AACpD,UAAA,MAAI,CAACQ,UAAL;AACH;AACDR,QAAAA,oBAAoB,GAAG,KAAvB;AACH,OANL;AAOK1d,MAAAA,GAPL,CAOSrB,CAAC,CAACgB,EAPX,EAOe,qBAPf,EAOsC,UAAA8O,GAAG,EAAI;AACrC,YAAIV,cAAJ,EAAoB;AACpBA,QAAAA,cAAc,GAAGU,GAAG,CAACT,cAAJ,CAAmB,CAAnB,EAAsBC,UAAvC;;AAEA,YAAI,MAAI,CAACmQ,UAAL,EAAJ;AACI;;AAEJ,YAAIra,gBAAY,CAAC0K,GAAG,CAACzK,MAAL,aAAiBrF,CAAC,CAACpB,aAAnB,qBAA2CoB,CAAC,CAACpB,aAA7C,cAAqEoB,CAAC,CAACgB,EAAvE,CAAhB;AACI;;AAEJ,YAAIyO,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AACtBL,UAAAA,cAAc,GAAG,IAAjB;AACApP,UAAAA,CAAC,CAACW,IAAF,CAAOuD,MAAP,CAAclE,CAAC,CAACgB,EAAhB,EAAoB,sBAApB;AACH,SAHD;;AAKA,SAAChB,CAAC,CAACuZ,KAAF,IAAWvZ,CAAC,CAACgB,EAAd,EAAkBwY,KAAlB;;AAEAxZ,QAAAA,CAAC,CAACW,IAAF;AACKU,QAAAA,GADL,CACSrB,CAAC,CAACgB,EADX,EACe,8BADf,EAC+C,UAAC0e,IAAD,EAAU;AACjD,cAAI/P,KAAK,GAAG7W,KAAK,CAAC4F,SAAN,CAAgBkR,IAAhB,CAAqBhe,IAArB,CAA0Bke,GAAG,CAACT,cAA9B;AACR,oBAAAM,KAAK,UAAIA,KAAK,CAACL,UAAN,KAAqBF,cAAzB,EADG,CAAZ;AAEA,cAAI,CAACO,KAAL,EAAY,OAAOF,aAAa,EAApB;;AAEZiQ,UAAAA,IAAI,CAAC3Q,cAAL;AACAU,UAAAA,aAAa;AAChB,SARL;AASKpO,QAAAA,GATL,CASSrB,CAAC,CAACgB,EATX,EASe,+BATf,EASgD,UAAC0e,IAAD,EAAU;AAClDA,UAAAA,IAAI,CAAC3Q,cAAL;AACH,SAXL;AAYK1N,QAAAA,GAZL,CAYSrB,CAAC,CAACgB,EAZX,EAYe,iCAZf,EAYkDyO,aAZlD;AAaH,OArCL;AAsCH;;AAED,yBAAY;AACR,UAAMzP,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI,KAAK0f,cAAL,EAAJ,EAA2B;;AAE3B,UAAIhH,aAAa,GAAG,KAAKiH,gBAAL,EAApB;AACA,UAAIhe,KAAK,uBAAG5B,CAAC,CAACuY,aAAL,+DAAsBvY,CAAC,CAAC4B,KAAjC;AACA,UAAI5B,CAAC,CAACwY,gBAAF,IAAsBxY,CAAC,CAACwY,gBAAF,CAAmB5S,MAAnB,KAA8BhE,KAAK,CAACgE,MAA9D;AACIhE,MAAAA,KAAK,GAAG5B,CAAC,CAACwY,gBAAV;AACJ,UAAK5W,KAAK,CAACgE,MAAN,IAAgB5F,CAAC,CAACoW,SAAF,GAAc,CAAd,GAAkB,CAAlC,CAAD,GAAyC,CAA7C,EAAgD;AAC5C,YAAI1E,SAAS,GAAGiH,aAAa,CAAC/S,MAAd,GAAuB,CAAvB,GAA2BhE,KAAK,CAAC5K,OAAN,CAAc2hB,aAAa,CAAC,CAAD,CAA3B,IAAkC,CAA7D,GAAkE/W,KAAK,CAACgE,MAAN,GAAe,CAAjG;AACA,YAAI8L,SAAS,KAAK,CAAC,CAAf,IAAoB,CAAC1R,CAAC,CAACoW,SAA3B;AACI1E,QAAAA,SAAS,GAAG9P,KAAK,CAACgE,MAAN,GAAe,CAA3B;AACJ,aAAKia,gBAAL,CAAsBnO,SAAS,KAAK,CAAC,CAAf,GAAmB,EAAnB,GAAwB,CAAC9P,KAAK,CAAC8P,SAAD,CAAN,CAA9C;AACH;AACJ;;AAED,yBAAY;AACR,UAAM1R,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI,KAAK0f,cAAL,EAAJ,EAA2B;;AAE3B,UAAIhH,aAAa,GAAG,KAAKiH,gBAAL,EAApB;AACA,UAAIhe,KAAK,wBAAG5B,CAAC,CAACuY,aAAL,iEAAsBvY,CAAC,CAAC4B,KAAjC;AACA,UAAI5B,CAAC,CAACwY,gBAAF,IAAsBxY,CAAC,CAACwY,gBAAF,CAAmB5S,MAAnB,KAA8BhE,KAAK,CAACgE,MAA9D;AACIhE,MAAAA,KAAK,GAAG5B,CAAC,CAACwY,gBAAV;AACJ,UAAK5W,KAAK,CAACgE,MAAN,IAAgB5F,CAAC,CAACoW,SAAF,GAAc,CAAd,GAAkB,CAAlC,CAAD,GAAyC,CAA7C,EAAgD;AAC5C,YAAI1E,SAAS,GAAGiH,aAAa,CAAC/S,MAAd,GAAuB,CAAvB,GAA2BhE,KAAK,CAAC5K,OAAN,CAAc2hB,aAAa,CAAC,CAAD,CAA3B,IAAkC,CAA7D,GAAiE,CAAjF;AACA,YAAIjH,SAAS,KAAK9P,KAAK,CAACgE,MAAxB;AACI8L,QAAAA,SAAS,GAAG1R,CAAC,CAACoW,SAAF,GAAc,CAAC,CAAf,GAAmB,CAA/B;AACJ,aAAKyJ,gBAAL,CAAsBnO,SAAS,KAAK,CAAC,CAAf,GAAmB,EAAnB,GAAwB,CAAC9P,KAAK,CAAC8P,SAAD,CAAN,CAA9C;AACH;AACJ;;AAED;AACA,gCAAmB;AACf,UAAM1R,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAMya,QAAQ,GAAG1a,CAAC,CAAC0a,QAAnB;AACA,UAAI,CAACA,QAAD,IAAa,CAAC1a,CAAC,CAACid,eAApB;AACI;;AAEJ;AACA;AACA,UAAI,CAACjd,CAAC,CAACuY,aAAH,KAAqBvY,CAAC,CAACgZ,UAAF,IAAiBhZ,CAAC,CAACmX,iBAAF,IAAuBnX,CAAC,CAACsY,QAA/D,CAAJ,EAA+E;AAC3E,aAAKwH,cAAL;AACH;;AAED,UAAI9f,CAAC,CAACyY,YAAF,IAAkBzY,CAAC,CAAC4Y,gBAAxB,EAA0C;AACtC5Y,QAAAA,CAAC,CAAC0a,QAAF,CAAWqF,kBAAX,GAAgC,IAAhC;AACH;;AAED,UAAI/f,CAAC,CAACyY,YAAN,EAAoB;AAChB,YAAI7W,KAAK,GAAG5B,CAAC,CAACuY,aAAF,IAAmBvY,CAAC,CAAC4B,KAAjC;AACA,YAAI5B,CAAC,CAACwW,aAAF,IAAoBxW,CAAC,CAACyW,oBAAF,IAA0BzW,CAAC,CAACjB,KAApD,EAA4D;AACxD6C,UAAAA,KAAK,GAAG,KAAKoe,UAAL,CAAgBpe,KAAhB;AACJ5B,UAAAA,CAAC,CAACwW,aADE;AAEJxW,UAAAA,CAAC,CAACyW,oBAAF,IAA0BzW,CAAC,CAACjB,KAFxB;AAGJiB,UAAAA,CAAC,CAAC4W,sBAHE,CAAR;AAIH;AACD8D,QAAAA,QAAQ,CAACuF,cAAT;;AAEA,YAAIre,KAAK,CAACgE,MAAN,KAAiB,CAAjB,IAAsB5F,CAAC,CAACiX,aAA5B,EAA2C;AACvCrV,UAAAA,KAAK,GAAG;AACH5B,UAAAA,CAAC,CAACT,SADC,EACWS,CAAC,CAACiX,aADb;AAEHjX,UAAAA,CAAC,CAACR,SAFC,EAEWmW,mBAFX;AAGY,cAHZ;AAIM,cAJN,SAAR;;AAMH;;AAED+E,QAAAA,QAAQ,CAACjV,QAAT,CAAkB7D,KAAlB;AACA5B,QAAAA,CAAC,CAACwY,gBAAF,GAAqB5W,KAArB;AACA5B,QAAAA,CAAC,CAACyY,YAAF,GAAiB,KAAjB;AACAzY,QAAAA,CAAC,CAAC4Y,gBAAF,GAAqB,IAArB;AACA5Y,QAAAA,CAAC,CAAC6Y,uBAAF,GAA4B,KAA5B;AACH;;AAED,UAAIqH,gBAAgB,GAAG,KAAvB;;AAEA,UAAIlgB,CAAC,CAAC4Y,gBAAN,EAAwB;AACpB,YAAI5Y,CAAC,CAACjB,KAAN,EAAa;AACTiB,UAAAA,CAAC,CAAC0a,QAAF,CAAWyF,gBAAX,CAA4BngB,CAAC,CAACuX,cAA9B;AACH,SAFD,MAEO;AACH,cAAM6I,eAAe,GAAGpgB,CAAC,CAAC0a,QAAF,CAAWpU,gBAAX,CAA4B,KAAK+Z,QAAL,EAA5B,CAAxB;;AAEArgB,UAAAA,CAAC,CAAC0a,QAAF;AACKlN,UAAAA,qBADL,CAC2B4S,eAD3B;AAEK3S,UAAAA,4BAFL,CAEkC2S,eAFlC;;AAIAF,UAAAA,gBAAgB,GAAGlgB,CAAC,CAAC0a,QAAF,CAAW/V,cAAX,EAAnB;AACH;AACD3E,QAAAA,CAAC,CAAC4Y,gBAAF,GAAqB,KAArB;AACH;;AAED,WAAK+D,mBAAL;;AAEA,UAAIuD,gBAAJ,EAAsB;AAClBlgB,QAAAA,CAAC,CAAC0a,QAAF,CAAWlN,qBAAX,CAAiCxN,CAAC,CAAC0a,QAAF,CAAWkC,mBAAX,EAAjC;AACH;AACJ;;AAED,8BAAiB;AACb,UAAM5c,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAMob,IAAI,GAAGrb,CAAC,CAACgZ,UAAf;;AAEA,UAAIqC,IAAI,IAAKrb,CAAC,CAACmX,iBAAF,IAAuBnX,CAAC,CAACsY,QAAtC,EAAiD;AAC7C,YAAI/U,EAAE,GAAGvD,CAAC,CAACsY,QAAX;;AAEA,YAAIC,aAAJ;;AAEA,YAAI,OAAOhV,EAAP,KAAc,UAAlB,EAA8B;AAC1BgV,UAAAA,aAAa,GAAGvY,CAAC,CAACsY,QAAF,CAAWtY,CAAC,CAAC4B,KAAb,EAAoByZ,IAApB,CAAhB;AACH;;AAED;AACA,YAAI,CAACviB,KAAK,CAACjB,OAAN,CAAc0gB,aAAd,CAAL,EAAmC;AAC/B,cAAI8C,IAAJ,EAAU;AACN,gBAAMiF,OAAO,GAAG,IAAIhP,MAAJ,CAAWC,WAAW,CAAC8J,IAAD,CAAtB,EAA8B,GAA9B,CAAhB;AACA,gBAAM9b,SAAS,GAAGS,CAAC,CAACT,SAApB;AACI6X,YAAAA,kBAAkB,GAAGpX,CAAC,CAACoX,kBAD3B;;AAGAmB,YAAAA,aAAa,GAAGvY,CAAC,CAAC4B,KAAF,CAAQid,MAAR,CAAe,UAAA9X,CAAC,EAAI;AAChC,kBAAIA,CAAC,CAAC5D,MAAN,EAAc,OAAO,IAAP;AACd,qBAAOmd,OAAO,CAACvoB,IAAR,CAAagP,CAAC,CAACxH,SAAD,CAAD,IAAgBwH,CAAC,CAACqQ,kBAAD,CAA9B,CAAP;AACH,aAHe,CAAhB;AAIH,WATD,MASO;AACHmB,YAAAA,aAAa,GAAG,IAAhB;AACH;AACJ;;AAEDvY,QAAAA,CAAC,CAACuY,aAAF,GAAkBA,aAAlB;;AAEA,YAAIA,aAAJ,EAAmB;AACf;;AAEA,cAAIgI,SAAS,GAAG,CAAC,CAAjB;AACA,cAAIhO,GAAG,GAAGgG,aAAa,CAAC3S,MAAxB;;AAEA,eAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyM,GAApB,EAAyBzM,CAAC,EAA1B,EAA8B;AAC1B,gBAAIpD,IAAI,GAAG6V,aAAa,CAACzS,CAAD,CAAxB;;AAEA,gBAAIpD,IAAI,CAACS,MAAT,EAAiB;AACb,kBAAIod,SAAS,KAAK,CAAC,CAAf,IAAoBA,SAAS,KAAKza,CAAC,GAAG,CAA1C,EAA6C;AACzC;AACAyS,gBAAAA,aAAa,CAACtS,MAAd,CAAqBsa,SAArB,EAAgC,CAAhC;AACAza,gBAAAA,CAAC;AACDyM,gBAAAA,GAAG;AACN;;AAEDgO,cAAAA,SAAS,GAAGza,CAAZ;AACH;AACJ;;AAED,cAAIya,SAAS,KAAK,CAAC,CAAnB,EAAsB;AAClB,gBAAIA,SAAS,KAAKhO,GAAG,GAAG,CAAxB,EAA2B;AACvB;AACAgG,cAAAA,aAAa,CAACtS,MAAd,CAAqBsa,SAArB,EAAgC,CAAhC;AACH;AACJ;AACJ;AACJ,OAvDD,MAuDO;AACHvgB,QAAAA,CAAC,CAACuY,aAAF,GAAkB,IAAlB;AACH;;AAED,WAAK3T,QAAL,CAAc,cAAd,EAA8B,EAAEyW,IAAI,EAAEA,IAAR,EAAcC,OAAO,EAAE,KAAvB,EAA8BvV,KAAK,EAAE,KAAKwV,oBAAL,EAArC,EAA9B;;AAEAvb,MAAAA,CAAC,CAACyY,YAAF,GAAiB,IAAjB;AACH;;AAED,+BAAkB7W,KAAlB,EAAyB;AACrB,UAAM5B,CAAC,GAAG,KAAKC,EAAf,CAAmBT,SAAS,GAAGQ,CAAC,CAACR,SAAjC;;AAEA,UAAIQ,CAAC,CAACjB,KAAN,EAAa;AACTiB,QAAAA,CAAC,CAAC2Y,aAAF,GAAkB/W,KAAK,CAACid,MAAN,CAAa,UAAA9X,CAAC,UAAIA,CAAC,CAACvH,SAAD,CAAD,KAAiBO,SAArB,EAAd,CAAlB;AACAC,QAAAA,CAAC,CAACuX,cAAF,GAAmBvX,CAAC,CAAC2Y,aAAF,CAAgB7R,GAAhB,CAAoB,UAAAC,CAAC,UAAIA,CAAC,CAACvH,SAAD,CAAL,EAArB,CAAnB;AACH,OAHD,MAGO;AACHQ,QAAAA,CAAC,CAAC2Y,aAAF,GAAkB/W,KAAK,CAACuZ,KAAN,CAAY,CAAZ,EAAe,CAAf,CAAlB;AACAnb,QAAAA,CAAC,CAACuX,cAAF,GAAmB3V,KAAK,CAACuZ,KAAN,CAAY,CAAZ,EAAe,CAAf,EAAkBrU,GAAlB,CAAsB,UAAAC,CAAC,UAAIA,CAAC,CAACvH,SAAD,CAAL,EAAvB,CAAnB;AACH;;AAEDQ,MAAAA,CAAC,CAAC4Y,gBAAF,GAAqB,IAArB;AACA5Y,MAAAA,CAAC,CAAC6Y,uBAAF,GAA4B,IAA5B;;AAEA,WAAKE,gBAAL;AACA,WAAKwB,aAAL,CAAmB,MAAnB;AACH;;AAED,2BAAciG,IAAd,EAAoB/R,IAApB,EAA0B;AACtB,UAAMzO,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI,CAACD,CAAC,CAACygB,SAAP;AACIzgB,MAAAA,CAAC,CAACygB,SAAF,GAAc,EAAd;;AAEJ,UAAID,IAAI,KAAK,MAAb;AACIxgB,MAAAA,CAAC,CAACygB,SAAF,CAAY7a,MAAZ,GAAqB,CAArB;;AAEJ,UAAI5F,CAAC,CAACygB,SAAF,CAAY7a,MAAZ,KAAuB,CAAvB,IAA4B5F,CAAC,CAACygB,SAAF,CAAY,CAAZ,EAAeD,IAAf,KAAwB,MAAxD;AACIxgB,MAAAA,CAAC,CAACygB,SAAF,CAAYxpB,IAAZ,CAAiB,EAAEupB,IAAI,EAAEA,IAAR,EAAc/R,IAAI,EAAEA,IAApB,EAAjB;;AAEJ,UAAIzO,CAAC,CAACwa,WAAN;AACI;;AAEJxa,MAAAA,CAAC,CAACwa,WAAF,GAAgBtO,UAAU,CAAC,YAAM;AAC7B,eAAOlM,CAAC,CAACwa,WAAT;AACA,YAAIkG,KAAK,GAAG1gB,CAAC,CAACygB,SAAd;AACA,eAAOzgB,CAAC,CAACygB,SAAT;AACA,QAAA,MAAI,CAACE,YAAL,CAAkBD,KAAlB;AACH,OALyB,CAA1B;AAMH;;AAED,0BAAaA,KAAb,EAAoB;AAChB,UAAM1gB,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI,KAAKzB,eAAL,CAAJ;AACI,aAJY;;AAMDkiB,MAAAA,KANC,cAMhB,uDAAsB,KAAbE,EAAa;AAClB,kBAAQA,EAAE,CAACJ,IAAX;AACI,iBAAK,MAAL;AACI,mBAAKK,SAAL,CAAe,IAAf;AACA;;AAEJ,iBAAK,YAAL;AACI,mBAAKC,eAAL;AACA;;AAEJ,iBAAK,wBAAL,CAA+B;AAC3B,oBAAI9gB,CAAC,CAAC8W,aAAN,EAAqB;AACjB,uBAAKiK,gBAAL;AACH,iBAFD,MAEO;AACH,wBAAMvhB,SAAS,GAAGQ,CAAC,CAACR,SAApB;AACA,wBAAMkD,IAAI,GAAGke,EAAE,CAACnS,IAAhB;AACInQ,oBAAAA,KAAK,GAAGoE,IAAI,CAAClD,SAAD,CADhB;;AAGA,wBAAImf,GAAG,GAAG3e,CAAC,CAACmZ,YAAF,CAAe6H,SAAf,CAAyB,UAAAja,CAAC,UAAIA,CAAC,CAACxI,UAAD,CAAD,CAAciB,SAAd,MAA6BlB,KAAjC,EAA1B,CAAV;AACA,wBAAIqgB,GAAG,KAAK,CAAC,CAAb,EAAgB;AACZ,sBAAA,MAAI,CAAC/D,8BAAL,CAAoC+D,GAApC;AACH,qBARE;AASN;AACJ;AACG;;AAEJ,iBAAK,qBAAL,CAA4B;AACxB,oBAAI,CAAC3e,CAAC,CAAC8W,aAAP,EAAsB;AAClB,uBAAKiK,gBAAL;AACH,iBAFD,MAEO;AACH,uBAAKE,oBAAL,CAA0BL,EAAE,CAACnS,IAA7B;AACH;AACJ;AACG;;AAEJ,iBAAK,iCAAL,CAAwC;AACpC,oBAAI,CAACzO,CAAC,CAAC8W,aAAP,EAAsB;AAClB,uBAAKiK,gBAAL;AACH,iBAFD,MAEO;AACH,uBAAKG,wBAAL;AACH;AACJ;AACG;;AAEJ,iBAAK,4BAAL,CAAmC;AAC/B,oBAAI,CAAClhB,CAAC,CAAC8W,aAAP,EAAsB;AAClB,uBAAKiK,gBAAL;AACH,iBAFD,MAEO;AACH,sBAAIve,MAAM,GAAGxC,CAAC,CAACmZ,YAAF,CAAenZ,CAAC,CAACmZ,YAAF,CAAevT,MAAf,GAAwB,CAAvC,CAAb;AACA,sBAAI,CAAApD,MAAM,SAAN,IAAAA,MAAM,WAAN,kCAAAA,MAAM,CAAGjE,UAAH,CAAN,0EAAuByB,CAAC,CAACR,SAAzB,OAAwCoW,oBAA5C,EAAkE;AAC9D,yBAAKgF,8BAAL,CAAoC5a,CAAC,CAACmZ,YAAF,CAAevT,MAAf,GAAwB,CAA5D;AACH;AACJ;AACJ;AACG;;AAEJ,iBAAK,cAAL,CAAqB;AACjB,qBAAKmU,YAAL;AACH;AACG;;AAEJ;AACI,mBAAK8G,SAAL,CAAe,KAAf;AACA,oBA9DR;;AAgEH,SAvEe;AAwEnB;;AAED,qCAAwB;AACpB,UAAM7gB,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI,CAACD,CAAC,CAAC6a,aAAP,EAAsB;;AAEtB,UAAI7a,CAAC,CAAC+X,kBAAF,IAAwB/X,CAAC,CAAC6a,aAAF,CAAgBsG,UAAhB,CAA2Bvb,MAA3B,GAAoC,CAAhE,EAAmE;AAC/D,YAAI;AACA5F,UAAAA,CAAC,CAAC+X,kBAAF,CAAqB/X,CAAC,CAAC6a,aAAF,CAAgBtc,UAAhB,CAArB,EAAkDyB,CAAC,CAAC6a,aAApD;AACH,SAFD,CAEE,OAAOpX,GAAP,EAAY,CAAEX,OAAO,CAACY,KAAR,CAAcD,GAAd,EAAqB,CAH0B;AAIlE;;AAED,aAAOzD,CAAC,CAAC6a,aAAF,CAAgBtc,UAAhB,CAAP;AACAyB,MAAAA,CAAC,CAAC6a,aAAF,CAAgBuG,SAAhB,GAA4B,EAA5B;AACH;;AAED;AACJ;AACA;AACA;AACI,4CAA+B3e,KAA/B,EAAsC;AAClC,UAAMzC,CAAC,GAAG,KAAKC,EAAf,CAAmBkZ,YAAY,GAAGnZ,CAAC,CAACmZ,YAApC;;AAEA,UAAIA,YAAY,CAACvT,MAAb,GAAsBnD,KAA1B,EAAiC;AAC7B,YAAMD,MAAM,GAAG2W,YAAY,CAAC1W,KAAD,CAA3B;AACA,YAAMC,IAAI,GAAGF,MAAM,CAACjE,UAAD,CAAnB;;AAEA,YAAIyd,QAAQ,GAAG,CAAAtZ,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAG1C,CAAC,CAACR,SAAL,CAAJ,MAAwBoW,oBAAxB;AACT5V,QAAAA,CAAC,CAACmY,qBADO,yEACkBnY,CAAC,CAACiY,iBADpB;AAETjY,QAAAA,CAAC,CAACiY,iBAFR;;AAIA,YAAI+D,QAAQ,IAAIxZ,MAAM,CAAC2e,UAAP,CAAkBvb,MAAlB,GAA2B,CAA3C,EAA8C;AAC1C,cAAI;AACAoW,YAAAA,QAAQ,CAACtZ,IAAD,EAAOF,MAAP,CAAR;AACH,WAFD,CAEE,OAAOiB,GAAP,EAAY,CAAEX,OAAO,CAACY,KAAR,CAAcD,GAAd,EAAqB,CAHK;AAI7C;AACDS,QAAAA,gBAAM,CAAC1B,MAAD,CAAN;;AAEA;AACA,YAAIC,KAAK,KAAK0W,YAAY,CAACvT,MAAb,GAAsB,CAApC,EAAuCuT,YAAY,CAACkI,GAAb,GAAvC;AACKlI,QAAAA,YAAY,CAAClT,MAAb,CAAoBxD,KAApB,EAA2B,CAA3B;AACR;AACJ;;AAED;AACJ;AACA;AACA;AACI,sCAAyBC,IAAzB,EAA+B;AAC3B,UAAM1C,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI,CAACD,CAAC,CAAC8X,gBAAH,IAAuB9X,CAAC,CAAC8X,gBAAF,CAAmBpV,IAAnB,EAAyB1C,CAAC,CAAC6a,aAA3B,MAA8C,KAAzE,EAAgF;AAC5E,YAAMtb,SAAS,GAAGS,CAAC,CAACT,SAApB;AACI6X,QAAAA,kBAAkB,GAAGpX,CAAC,CAACoX,kBAD3B;;AAGA,YAAIzU,KAAK,GAAGD,IAAI,CAAC0U,kBAAD,CAAJ,IAA4B1U,IAAI,CAACnD,SAAD,CAA5C;AACA,YAAIoD,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK5C,SAAhC;AACI4C,QAAAA,KAAK,GAAG,EAAR;;AAEJ3C,QAAAA,CAAC,CAAC6a,aAAF,CAAgBvO,WAAhB,CAA4BrX,QAAQ,CAACqsB,cAAT,CAAwB3e,KAAxB,CAA5B;AACH;AACJ;;AAED;AACJ;AACA;AACA;AACA;AACI,qCAAwBD,IAAxB,EAA8BF,MAA9B,EAAsC;AAClC,UAAMxC,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAIkG,MAAM,GAAGzD,IAAI,CAAC1C,CAAC,CAACR,SAAH,CAAJ,KAAsBoW,oBAAtB;AACP5V,MAAAA,CAAC,CAACkY,mBADK,yEACkBlY,CAAC,CAACgY,eADpB;AAEPhY,MAAAA,CAAC,CAACgY,eAFR;;AAIA,UAAI,CAAC7R,MAAD,IAAWA,MAAM,CAACzD,IAAD,EAAOF,MAAP,CAAN,KAAyB,KAAxC,EAA+C;AAC3C,YAAMjD,SAAS,GAAGS,CAAC,CAACT,SAApB;AACI6X,QAAAA,kBAAkB,GAAGpX,CAAC,CAACoX,kBAD3B;AAEA,YAAMzU,KAAK,GAAGD,IAAI,CAAC0U,kBAAD,CAAJ,IAA4B1U,IAAI,CAACnD,SAAD,CAA9C;AACAiD,QAAAA,MAAM,CAAC8J,WAAP,CAAmB9K,iBAAa,CAAC,MAAD,EAAS;AACrCgS,UAAAA,WAAW,EAAE7Q,KADwB,EAAT,CAAhC;;AAGH;AACJ;;AAED;AACJ;AACA;AACA;AACI,kCAAqBD,IAArB,EAA2B;AACvB,UAAM1C,CAAC,GAAG,KAAKC,EAAf;AACA,UAAMuC,MAAM,GAAG,KAAK+e,gBAAL,CAAsB7e,IAAtB,CAAf;AACA,UAAI,CAACF,MAAL,EAAa;;AAEbgf,MAAAA,gBAAM,CAACxhB,CAAC,CAACud,YAAH,EAAiB/a,MAAjB,CAAN;AACAxC,MAAAA,CAAC,CAACmZ,YAAF,CAAeliB,IAAf,CAAoBuL,MAApB;AACH;;AAED;AACA,wCAA2B;AACvB,UAAMxC,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI2B,KAAK,GAAG5B,CAAC,CAAC2Y,aAAF,CAAgBwC,KAAhB,CAAsB,CAAtB,CAAZ;AACA,UAAIpV,KAAK,GAAGnE,KAAK,CAACid,MAAN,CAAa,UAAA9X,CAAC,UAAI,CAACA,CAAC,CAAC5D,MAAP,EAAd,EAA6ByC,MAA7B,GAAsC5F,CAAC,CAACqX,aAApD;AACA,UAAI1U,KAAK,GAAG3C,CAAC,CAACsX,2BAAF;AACNtX,MAAAA,CAAC,CAACsX,2BAAF,CAA8BvR,KAA9B,EAAqCnE,KAArC,CADM;AAEDmE,MAAAA,KAFC,CAAZ;;AAIA,WAAKkb,oBAAL;AACIrf,QAAAA,KAAK,EAAEA,KADX;AAEK5B,MAAAA,CAAC,CAACR,SAFP,EAEmBoW,oBAFnB;AAGK5V,MAAAA,CAAC,CAACT,SAHP,EAGmBoD,KAHnB;;AAKH;;AAED;AACA,gCAAmB;AACf,UAAM3C,CAAC,GAAG,KAAKC,EAAf;;AAEA;AACA,UAAID,CAAC,CAAC2Y,aAAF,CAAgB/S,MAAhB,GAAyB,CAAzB,IAA8B5F,CAAC,CAACoW,SAAhC,IAA6CpW,CAAC,CAAC8W,aAAnD,EAAkE;AAC9D,YAAI,CAAC9W,CAAC,CAACsZ,kBAAP,EAA2B;AACvBtZ,UAAAA,CAAC,CAACsZ,kBAAF,GAAuB9X,iBAAa;AAChCxB,UAAAA,CAAC,CAACjB,KAAF,GAAU,IAAV,GAAiB,MADe;AAEhC,YAAE0C,KAAK,YAAKzB,CAAC,CAACpB,aAAP,YAAP,EAFgC;AAGhCoB,UAAAA,CAAC,CAACyhB,WAAF,GAAgBjgB,iBAAa,CAAC,QAAD,CAHG,CAApC;AAIA,cAAIxB,CAAC,CAACjB,KAAN;AACI2iB,UAAAA,gBAAM,CAAC1hB,CAAC,CAACiC,IAAH,EAASjC,CAAC,CAACsZ,kBAAX,CAAN,CADJ;AAEKoI,UAAAA,gBAAM,CAAC1hB,CAAC,CAACgB,EAAH,EAAOhB,CAAC,CAACsZ,kBAAT,CAAN;AACLtZ,UAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAeC,GAAf,WAAsBrB,CAAC,CAACpB,aAAxB;;AAEAoB,UAAAA,CAAC,CAACW,IAAF,CAAOU,GAAP,CAAWrB,CAAC,CAACyhB,WAAb,EAA0B,OAA1B,EAAmC,YAAM;AACrC,gBAAI,MAAI,CAAChC,UAAL,EAAJ,EAAuB;AACvB,YAAA,MAAI,CAACnR,KAAL;AACH,WAHD;AAIH;AACJ,OAhBD,MAgBO;AACH,YAAItO,CAAC,CAACsZ,kBAAN,EAA0B;AACtBtZ,UAAAA,CAAC,CAACW,IAAF,CAAOuD,MAAP,CAAclE,CAAC,CAACyhB,WAAhB,EAA6B,OAA7B;;AAEAvd,UAAAA,gBAAM,CAAClE,CAAC,CAACsZ,kBAAH,CAAN;AACA,iBAAOtZ,CAAC,CAACsZ,kBAAT;AACA,iBAAOtZ,CAAC,CAACyhB,WAAT;AACAzhB,UAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAe8C,MAAf,WAAyBlE,CAAC,CAACpB,aAA3B;AACH;AACJ;AACJ;;AAED;AACA,gCAAmB;AACf,UAAMoB,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAIqW,WAAW,GAAG,EAAlB;;AAEA,UAAItW,CAAC,CAACjB,KAAF,IAAW,CAACiB,CAAC,CAAC8W,aAAlB,EAAiC;AAC7B,YAAI,OAAO9W,CAAC,CAAC+W,yBAAT,KAAuC,UAA3C,EAAuD;AACnDT,UAAAA,WAAW,GAAGtW,CAAC,CAAC+W,yBAAF,CAA4B/W,CAAC,CAAC2Y,aAA9B,CAAd;AACH,SAFD,MAEO;AACHrC,UAAAA,WAAW,GAAGmB,gCAAgC,CAACzX,CAAC,CAAC2Y,aAAH,EAAkB3Y,CAAC,CAACT,SAApB,CAA9C;AACH;AACJ,OAND,MAMO,IAAIS,CAAC,CAAC2Y,aAAF,CAAgB/S,MAAhB,KAA2B,CAA3B,IAAgC,CAAC5F,CAAC,CAAC8W,aAAvC,EAAsD;AACzDR,QAAAA,WAAW,GAAGtW,CAAC,CAACsW,WAAF,IAAiB,IAAjB,GAAwB,EAAxB,GAA8BtW,CAAC,CAACsW,WAAF,GAAgB,EAA5D;AACH;;AAED;AACAtW,MAAAA,CAAC,CAACuZ,KAAF,CAAQ1W,YAAR,CAAqB,aAArB,EAAoCyT,WAApC;AACH;;AAED;AACA,+BAAkB;AACd,UAAMtW,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAID,CAAC,CAAC6a,aAAN;AACI,WAAKF,qBAAL;;AAEJ,UAAM/Y,KAAK,GAAG5B,CAAC,CAAC2Y,aAAhB;;AAEA,UAAI/W,KAAK,CAACgE,MAAN,GAAe,CAAnB,EAAsB;AAClB,aAAK+b,wBAAL,CAA8B/f,KAAK,CAAC,CAAD,CAAnC;AACA5B,QAAAA,CAAC,CAAC6a,aAAF,CAAgBtc,UAAhB,IAA8BqD,KAAK,CAAC,CAAD,CAAnC;AACH;AACJ;;AAED;AACJ;AACA;AACA;AACA;AACI,uBAAUggB,eAAV,EAA2B;AACvB,UAAM5hB,CAAC,GAAG,KAAKC,EAAf;;AAEA,WAAKiZ,WAAL;AACA,WAAK2I,gBAAL;AACA,WAAKd,gBAAL;;AAEAa,MAAAA,eAAe,GAAG5hB,CAAC,CAACjB,KAAF,IAAWiB,CAAC,CAAC8W,aAAb,KAA+B8K,eAAe,IAAI5hB,CAAC,CAAC2Y,aAAF,CAAgB/S,MAAhB,KAA2B5F,CAAC,CAACmZ,YAAF,CAAevT,MAA5F,CAAlB;;AAEA,UAAIgc,eAAe,IAAI,CAAC5hB,CAAC,CAAC8W,aAAtB,IAAuC,CAAC9W,CAAC,CAACjB,KAA9C,EAAqD;AACjD;AACA,eAAOiB,CAAC,CAACmZ,YAAF,CAAevT,MAAf,GAAwB,CAA/B,EAAkC;AAC9B;AACA,eAAKgV,8BAAL,CAAoC5a,CAAC,CAACmZ,YAAF,CAAevT,MAAf,GAAwB,CAA5D;AACH;AACJ;;AAED,UAAI5F,CAAC,CAACjB,KAAN,EAAa;AACT,YAAI6iB,eAAJ,EAAqB;AACjB,cAAMhgB,KAAK,GAAG5B,CAAC,CAAC2Y,aAAhB;;AAEA;AACA,cAAI3Y,CAAC,CAACuW,iBAAN,EAAyB;AACrB,gBAAMhX,SAAS,GAAGS,CAAC,CAACT,SAApB;AACI6X,YAAAA,kBAAkB,GAAGpX,CAAC,CAACoX,kBAD3B;AAEI5X,YAAAA,SAAS,GAAGQ,CAAC,CAACR,SAFlB;AAGIkX,YAAAA,YAAY,GAAG1W,CAAC,CAAC0W,YAHrB;;AAKA,gBAAMoF,UAAU,GAAG9b,CAAC,CAAC2W,kBAAF,IAAyB,UAACmL,CAAD,EAAIC,CAAJ,EAAU;AAClD,kBAAIrL,YAAY,KAAK,IAArB,EAA2B;AACvB,oBAAIsL,EAAE,GAAGtL,YAAY,CAAC6F,GAAb,CAAiBuF,CAAC,CAACtiB,SAAD,CAAlB,CAAT;AACA,oBAAIyiB,EAAE,GAAGvL,YAAY,CAAC6F,GAAb,CAAiBwF,CAAC,CAACviB,SAAD,CAAlB,CAAT;AACA,oBAAIwiB,EAAE,IAAI,CAACC,EAAX,EAAe,OAAO,CAAC,CAAR;AACf,oBAAI,CAACD,EAAD,IAAOC,EAAX,EAAe,OAAO,CAAP;AAClB;;AAED,kBAAMC,MAAM,GAAGJ,CAAC,CAAC1K,kBAAD,CAAD,IAAyB0K,CAAC,CAACviB,SAAD,CAAzC;AACA,kBAAM4iB,MAAM,GAAGJ,CAAC,CAAC3K,kBAAD,CAAD,IAAyB2K,CAAC,CAACxiB,SAAD,CAAzC;AACA,qBAAO2iB,MAAM,GAAGC,MAAT,GAAkB,CAAC,CAAnB,GAAwBD,MAAM,GAAGC,MAAT,GAAkB,CAAlB,GAAsB,CAArD;AACH,aAXD;;AAaAvgB,YAAAA,KAAK,CAACwgB,IAAN,CAAWtG,UAAX;;AAEA9b,YAAAA,CAAC,CAACuX,cAAF,GAAmB3V,KAAK,CAACkF,GAAN,CAAU,UAAAC,CAAC,UAAIA,CAAC,CAACvH,SAAD,CAAL,EAAX,CAAnB;AACH;;AAED,cAAI6iB,eAAe,GAAG,CAAtB;AACA,cAAI3rB,GAAG,GAAGsJ,CAAC,CAACqX,aAAZ;AACA,cAAIiL,WAAW,GAAG,KAAlB;;AAEA;AACA,eAAK,IAAIxc,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGlE,KAAK,CAACgE,MAA1B,EAAkCE,CAAC,EAAnC,EAAuC;AACnC,gBAAIlE,KAAK,CAACkE,CAAD,CAAL,CAAS3C,MAAb,EAAqB;;AAErB,gBAAIzM,GAAG,IAAI,IAAP,IAAe2rB,eAAe,KAAK3rB,GAAvC,EAA4C;AACxC4rB,cAAAA,WAAW,GAAG,IAAd;AACA;AACH;;AAEDD,YAAAA,eAAe;AACf,iBAAKpB,oBAAL,CAA0Brf,KAAK,CAACkE,CAAD,CAA/B;AACH;;AAED,cAAIwc,WAAJ,EAAiB;AACb,iBAAKpB,wBAAL;AACH;AACJ;AACJ,OAlDD,MAkDO,IAAI,CAAClhB,CAAC,CAACjB,KAAP,EAAc;AACjB,aAAK+hB,eAAL;AACH;;AAED,UAAIyB,qBAAW,CAACviB,CAAC,CAACgB,EAAH,CAAX,KAAsB/L,QAA1B;AACI,aAAO,IAAP;;AAEJ8P,MAAAA,qBAAW,CAAC/E,CAAC,CAACgB,EAAH,YAAUhB,CAAC,CAACpB,aAAZ,wBAA8CoB,CAAC,CAACuX,cAAF,CAAiB3R,MAAjB,KAA4B,CAA1E,CAAX;AACAb,MAAAA,qBAAW,CAAC/E,CAAC,CAACgB,EAAH,YAAUhB,CAAC,CAACpB,aAAZ,sBAA4CoB,CAAC,CAACuX,cAAF,CAAiB3R,MAAjB,GAA0B,CAAtE,CAAX;;AAEA,UAAI5F,CAAC,CAACgX,UAAF,IAAgBhX,CAAC,CAACjB,KAAtB,EAA6B;AACzB,YAAIiB,CAAC,CAACuZ,KAAN,EAAavZ,CAAC,CAACuZ,KAAF,CAAQqE,QAAR,GAAmB,KAAnB;AACb5d,QAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAeC,GAAf,WAAsBrB,CAAC,CAACpB,aAAxB;AACH,OAHD,MAGO;AACH,YAAIoB,CAAC,CAACuZ,KAAN,EAAavZ,CAAC,CAACuZ,KAAF,CAAQqE,QAAR,GAAmB,IAAnB;AACb5d,QAAAA,CAAC,CAACgB,EAAF,CAAKI,SAAL,CAAe8C,MAAf,WAAyBlE,CAAC,CAACpB,aAA3B;AACH;;AAED;AACA,WAAKmb,YAAL,GAAoBhB,gBAApB;;AAEA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,sBAASlU,KAAT,EAAgB4J,IAAhB,EAAsB;AAClB,UAAMzO,CAAC,GAAG,KAAKC,EAAf;AACA,UAAID,CAAC,CAACP,EAAN;AACIO,MAAAA,CAAC,CAACP,EAAF,OAAAO,CAAC,GAAI6E,KAAJ,4BAAe4J,IAAI,KAAK1O,SAAT,GAAqB,EAArB,GAA0B,CAAC0O,IAAD,CAAzC,GAAD;AACJzO,MAAAA,CAAC,CAACQ,IAAF,CAAO+N,IAAP,CAAY1J,KAAZ,EAAmB4J,IAAnB;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACI,8BAAiB/L,IAAjB,EAAuB;AACnB,UAAM1C,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAMV,SAAS,GAAGS,CAAC,CAACT,SAApB;AACI6X,MAAAA,kBAAkB,GAAGpX,CAAC,CAACoX,kBAD3B;AAEA,UAAMzU,KAAK,4BAAGD,IAAI,CAAC0U,kBAAD,CAAP,yEAA+B1U,IAAI,CAACnD,SAAD,CAA9C;AACA,UAAIoD,KAAK,KAAK,KAAd;AACI,aAAO,IAAP;;AAEJ,UAAMH,MAAM,GAAGhB,iBAAa,CAAC,IAAD;AACxB;AACIC,QAAAA,KAAK,YAAKzB,CAAC,CAACpB,aAAP,WADT;AAEI4jB,QAAAA,QAAQ,EAAE,GAFd;AAGI9K,QAAAA,KAAK,EAAE/U,KAHX,EADwB;;AAMxB;AACInB,MAAAA,iBAAa,CAAC,MAAD,EAAS;AAClBC,QAAAA,KAAK,YAAKzB,CAAC,CAACpB,aAAP,kBADa;AAElB0C,QAAAA,IAAI,EAAE,cAFY,EAAT,CADjB,CANwB,CAA5B;;;;;AAcA,WAAKmhB,uBAAL,CAA6B/f,IAA7B,EAAmCF,MAAnC;;AAEAA,MAAAA,MAAM,CAACjE,UAAD,CAAN,GAAqBmE,IAArB;;AAEA,aAAOF,MAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACI,uCAA0BA,MAA1B,EAAkCkgB,gBAAlC,EAAoD;AAChD,UAAM1iB,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI0iB,SAAJ;AACA,UAAI,MAAM5qB,IAAN,CAAW2qB,gBAAgB,CAAC5R,IAA5B,CAAJ,EAAuC;AACnC,YAAM8R,MAAM,2BAA2BF,gBAAvC;AACA,YAAIE,MAAM,CAAC9iB,GAAP,KAAe+iB,sBAAnB,EAAiC;AAC7BF,UAAAA,SAAS,GAAGlS,QAAI,CAACjO,MAAD,aAAaxC,CAAC,CAACpB,aAAf,qBAAuCoB,CAAC,CAACpB,aAAzC,sBAAhB;AACH,SAFD,MAEO,IAAIgkB,MAAM,CAAC9iB,GAAP,KAAegjB,0BAAnB,EAAqC;AACxCH,UAAAA,SAAS,GAAGI,QAAI,CAACvgB,MAAD,aAAaxC,CAAC,CAACpB,aAAf,qBAAuCoB,CAAC,CAACpB,aAAzC,sBAAhB;AACH;AACJ,OAPD,MAOO,IAAI,oBAAoB7G,IAApB,CAAyB2qB,gBAAgB,CAAC5R,IAA1C,CAAJ,EAAqD;AACxD6R,QAAAA,SAAS,GAAGlS,QAAI,CAACjO,MAAD,aAAaxC,CAAC,CAACpB,aAAf,qBAAuCoB,CAAC,CAACpB,aAAzC,sBAAhB;AACH;;AAED,UAAM8D,IAAI,GAAGF,MAAM,CAACjE,UAAD,CAAnB,CAAiCD,KAAK,GAAGoE,IAAI,CAAC1C,CAAC,CAACR,SAAH,CAA7C;;AAEA,UAAIkD,IAAI,KAAK3C,SAAb,EAAwB;AACpB,YAAIzB,KAAK,KAAKsX,oBAAd,EAAoC;AAChC,cAAIhU,KAAK,GAAG5B,CAAC,CAAC2Y,aAAF,CAAgBkG,MAAhB,CAAuB,UAAA9X,CAAC,UAAI,CAACA,CAAC,CAAC5D,MAAP,EAAxB,EAAuCgY,KAAvC,CAA6Cnb,CAAC,CAACqX,aAA/C,CAAZ;AACA,cAAI2L,aAAa,GAAG,EAApB,CAFgC;;AAIfphB,UAAAA,KAJe,cAIhC,uDAAwB,KAAfc,MAAe;AACpB,kBAAIugB,YAAY,GAAG,EAAE3kB,KAAK,EAAEA,KAAT,EAAgBoE,IAAI,EAAEA,MAAtB,EAA4B+S,MAAM,EAAE,KAApC,EAAnB;AACA,mBAAK7Q,QAAL,CAAc,kBAAd,EAAkCqe,YAAlC;AACA,kBAAI,CAACA,YAAY,CAACxN,MAAlB;AACIuN,cAAAA,aAAa,CAAC/rB,IAAd,CAAmByL,MAAnB;AACP,aAT+B;;AAWhC,cAAIsgB,aAAa,CAACpd,MAAd,GAAuB,CAA3B,EAA8B;AAC1B,iBAAKgV,8BAAL,CAAoC5a,CAAC,CAACmZ,YAAF,CAAevT,MAAf,GAAwB,CAA5D,EAD0B;;AAGTod,YAAAA,aAHS,cAG1B,uDAAgC,KAAvBtgB,MAAuB;AAC5B;AACA,oBAAIic,GAAG,GAAG3e,CAAC,CAAC2Y,aAAF,CAAgB3hB,OAAhB,CAAwB0L,MAAxB,CAAV;AACA,oBAAIic,GAAG,KAAK,CAAC,CAAb;AACIA,gBAAAA,GAAG,GAAG3e,CAAC,CAACuX,cAAF,CAAiBvgB,OAAjB,CAAyBsH,KAAK,CAAC0B,CAAC,CAACR,SAAH,CAA9B,CAAN;AACJ,oBAAImf,GAAG,KAAK,CAAC,CAAb,EAAgB;AACZ3e,kBAAAA,CAAC,CAAC2Y,aAAF,CAAgB1S,MAAhB,CAAuB0Y,GAAvB,EAA4B,CAA5B;AACA3e,kBAAAA,CAAC,CAACuX,cAAF,CAAiBtR,MAAjB,CAAwB0Y,GAAxB,EAA6B,CAA7B;AACA3e,kBAAAA,CAAC,CAAC4Y,gBAAF,GAAqB,IAArB;AACA5Y,kBAAAA,CAAC,CAAC6Y,uBAAF,GAA4B,IAA5B;AACH;AACJ,eAdyB;AAe7B;;AAED,cAAIjX,KAAK,CAACgE,MAAN,GAAeod,aAAa,CAACpd,MAAjC,EAAyC;AACrC,iBAAKsb,wBAAL;AACH;;AAED,cAAI8B,aAAa,CAACpd,MAAd,GAAuB,CAA3B,EAA8B;AAC1B,iBAAK2U,aAAL;AACH;AACJ,SAnCD,MAmCO;AACH,cAAI0I,aAAY,GAAG,EAAE3kB,KAAK,EAAEA,KAAT,EAAgBoE,IAAI,EAAEA,IAAtB,EAA4B+S,MAAM,EAAE,KAApC,EAAnB;AACA,eAAK7Q,QAAL,CAAc,kBAAd,EAAkCqe,aAAlC;AACA,cAAIA,aAAY,CAACxN,MAAjB;AACI,iBAAO,IAAP;;AAEJ,eAAKyN,gBAAL,CAAsBxgB,IAAtB;;AAEA;AACA,eAAKkC,QAAL,CAAc,WAAd,EAA2B,EAAEtG,KAAK,EAAEA,KAAT,EAAgBoE,IAAI,EAAEA,IAAtB,EAA3B;AACH;AACJ;;AAED,UAAI,CAACigB,SAAL,EAAgB;AACZA,QAAAA,SAAS,GAAG3iB,CAAC,CAACgB,EAAF,CAAK6Y,aAAL,YAAuB7Z,CAAC,CAACpB,aAAzB,sBAAkDoB,CAAC,CAACpB,aAApD,oBAAZ;AACH;;AAED,UAAIqX,QAAQ,CAAC0M,SAAD,YAAe3iB,CAAC,CAACpB,aAAjB,sBAAZ,EAA+D;AAC3D+jB,QAAAA,SAAS,GAAGA,SAAS,CAAC9I,aAAV,CAAwB,OAAxB,CAAZ;AACH;;AAED8I,MAAAA,SAAS,IAAIA,SAAS,CAACnJ,KAAV,EAAb;;AAEA,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,8BAAiB9W,IAAjB,EAAyC,KAAlBygB,QAAkB,uEAAP,KAAO;AACrC,UAAMnjB,CAAC,GAAG,KAAKC,EAAf;AACA,UAAMT,SAAS,GAAGQ,CAAC,CAACR,SAApB;AACID,MAAAA,SAAS,GAAGS,CAAC,CAACT,SADlB;AAEA,UAAMjB,KAAK,GAAGoE,IAAI,CAAClD,SAAD,CAAlB;;AAEA;AACA,UAAImf,GAAG,GAAG3e,CAAC,CAAC2Y,aAAF,CAAgB3hB,OAAhB,CAAwB0L,IAAxB,CAAV;AACA,UAAIic,GAAG,KAAK,CAAC,CAAb;AACIA,MAAAA,GAAG,GAAG3e,CAAC,CAACuX,cAAF,CAAiBvgB,OAAjB,CAAyBsH,KAAzB,CAAN;AACJ,UAAIqgB,GAAG,KAAK,CAAC,CAAb,EAAgB;AACZ3e,QAAAA,CAAC,CAAC2Y,aAAF,CAAgB1S,MAAhB,CAAuB0Y,GAAvB,EAA4B,CAA5B;AACA3e,QAAAA,CAAC,CAACuX,cAAF,CAAiBtR,MAAjB,CAAwB0Y,GAAxB,EAA6B,CAA7B;AACA3e,QAAAA,CAAC,CAAC4Y,gBAAF,GAAqB,IAArB;AACA5Y,QAAAA,CAAC,CAAC6Y,uBAAF,GAA4B,IAA5B;AACH;;AAED;AACA8F,MAAAA,GAAG,GAAG3e,CAAC,CAACmZ,YAAF,CAAe6H,SAAf,CAAyB,UAAAja,CAAC,UAAIA,CAAC,CAACxI,UAAD,CAAD,KAAkBmE,IAAtB,EAA1B,CAAN;AACA,UAAIic,GAAG,KAAK,CAAC,CAAb;AACIA,MAAAA,GAAG,GAAG3e,CAAC,CAACmZ,YAAF,CAAe6H,SAAf,CAAyB,UAAAja,CAAC,UAAIA,CAAC,CAACxI,UAAD,CAAD,CAAciB,SAAd,MAA6BlB,KAAjC,EAA1B,CAAN;AACJ,UAAIqgB,GAAG,KAAK,CAAC,CAAb,EAAgB;AACZ,aAAK/D,8BAAL,CAAoC+D,GAApC;AACH;;AAED,UAAIwE,QAAJ,EAAc;AACV,aAAK9G,aAAL,CAAmB3Z,IAAI,CAAC1C,CAAC,CAACoX,kBAAH,CAAJ,IAA8B1U,IAAI,CAACnD,SAAD,CAArD;;AAEAS,QAAAA,CAAC,CAACuZ,KAAF,CAAQC,KAAR;;AAEA;AACAxZ,QAAAA,CAAC,CAACuZ,KAAF,CAAQE,cAAR,GAAyBzZ,CAAC,CAACuZ,KAAF,CAAQG,YAAR,GAAuB1Z,CAAC,CAACuZ,KAAF,CAAQjb,KAAR,CAAcsH,MAA9D;AACH;;AAED;AACA,WAAK2U,aAAL;AACH;;AAED;AACJ;AACA;AACA;AACI,2BAAcjc,KAAd,EAAqB;AACjB,UAAM0B,CAAC,GAAG,KAAKC,EAAf;;AAEAD,MAAAA,CAAC,CAACuZ,KAAF,CAAQjb,KAAR,GAAgBA,KAAK,IAAI,IAAT,GAAgB,EAAhB,GAAqB7K,MAAM,CAAC6K,KAAD,CAA3C;;AAEA0B,MAAAA,CAAC,CAACgZ,UAAF,GAAe,EAAf;AACAhZ,MAAAA,CAAC,CAACuY,aAAF,GAAkB,IAAlB;AACAvY,MAAAA,CAAC,CAACyY,YAAF,GAAiB,IAAjB;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,4BAAe;AACX,UAAMzY,CAAC,GAAG,KAAKC,EAAf,CAAmBe,EAAE,GAAGhB,CAAC,CAACgB,EAA1B;;AAEA,UAAI,CAACA,EAAE,CAACgK,UAAJ,IAAkB,CAAC/V,QAAQ,CAAC8V,IAAT,CAAcqB,QAAd,CAAuBpL,EAAvB,CAAvB;AACI,aAAO,IAAP;;AAEJ,UAAMuY,KAAK,GAAGvZ,CAAC,CAACuZ,KAAhB,CAAuB6J,YAAY,GAAGpjB,CAAC,CAAC8a,eAAxC;;AAEA,UAAIuI,UAAU,GAAG9J,KAAK,CAACjb,KAAN,IAAeib,KAAK,CAACjD,WAAtC;AACAvR,MAAAA,qBAAW,CAAC/D,EAAD,YAAQhB,CAAC,CAACpB,aAAV,kBAAsC,CAAC,CAACykB,UAAxC,CAAX;AACAte,MAAAA,qBAAW,CAAC/D,EAAD,YAAQhB,CAAC,CAACpB,aAAV,oBAAwC,CAACykB,UAAzC,CAAX;;AAEA,UAAIC,SAAS,GAAG,KAAhB;;AAEA,UAAItjB,CAAC,CAACjB,KAAF,IAAWiB,CAAC,CAACmZ,YAAF,CAAevT,MAAf,KAA0B,CAArC,IAA0C5F,CAAC,CAAC8W,aAAhD,EAA+D;AAC3D;AACAyC,QAAAA,KAAK,CAACrY,KAAN,CAAY0G,KAAZ,GAAoB,EAApB,CAF2D;;AAI3D,YAAI2b,WAAW,GAAG,CAAlB,CAAqBC,UAAU,GAAG,CAAlC;;AAEA,YAAIC,WAAW,GAAGxa,gBAAgB,CAACjJ,CAAC,CAACiC,IAAF,IAAUjB,EAAX,EAAe,UAAf,CAAlC;AACA,YAAIyiB,WAAW,CAACC,OAAZ;AACAD,QAAAA,WAAW,CAACC,OAAZ,KAAwB,MADxB;AAEAD,QAAAA,WAAW,CAAClb,QAAZ,KAAyB,UAFzB;AAGAkb,QAAAA,WAAW,CAACE,KAAZ,KAAsB,MAH1B,EAGkC;AAC9BJ,UAAAA,WAAW,GAAGK,yBAAqB,CAAC5jB,CAAC,CAACiC,IAAF,IAAUjB,EAAX,EAAe,UAAf,EAA2B,IAA3B,EAAiC,IAAjC,EAAuC,IAAvC,CAAnC;AACH;;AAED,YAAI6iB,UAAU,GAAG5a,gBAAgB,CAACjJ,CAAC,CAACiC,IAAF,IAAUjB,EAAX,EAAe,SAAf,CAAjC;AACA,YAAI6iB,UAAU,CAACH,OAAX;AACAG,QAAAA,UAAU,CAACH,OAAX,KAAuB,MADvB;AAEAG,QAAAA,UAAU,CAACtb,QAAX,KAAwB,UAFxB;AAGAsb,QAAAA,UAAU,CAACF,KAAX,KAAqB,MAHzB,EAGiC;AAC7BH,UAAAA,UAAU,GAAGI,yBAAqB,CAAC5jB,CAAC,CAACiC,IAAF,IAAUjB,EAAX,EAAe,SAAf,EAA0B,IAA1B,EAAgC,IAAhC,EAAsC,IAAtC,CAAlC;AACH;;AAED,YAAI8iB,YAAY,GAAGhc,mBAAe,CAAC9H,CAAC,CAACiC,IAAF,IAAUjB,EAAX,CAAlC,CAtB2D;AAuB3D8iB,QAAAA,YAAY,IAAIP,WAAW,GAAGC,UAA9B;;AAEAjK,QAAAA,KAAK,CAACrY,KAAN,CAAY0G,KAAZ,aAAuBkc,YAAvB;;AAEAR,QAAAA,SAAS,GAAG,IAAZ,CA3B2D;AA4B9D,OA5BD,MA4BO;AACH;AACA/hB,QAAAA,eAAW,CAAC6hB,YAAD,EAAeW,eAAW,CAACxK,KAAD,EAAQrD,uBAAR,CAA1B,CAAX;AACAkN,QAAAA,YAAY,CAAC5P,WAAb,GAA2B6P,UAA3B;AACAriB,QAAAA,EAAE,CAACsL,WAAH,CAAe8W,YAAf;;AAEA;AACA,YAAMY,aAAa,GAAG/a,gBAAgB,CAACsQ,KAAD,CAAtC;AACA,YAAM0K,YAAY,GAAG,CAAC5a,UAAU,CAAC2a,aAAa,CAACE,WAAf,CAAV,IAAyC,CAA1C,KAAgD7a,UAAU,CAAC2a,aAAa,CAACG,YAAf,CAAV,IAA0C,CAA1F,CAArB;AACA,YAAMC,QAAQ,GAAG,CAAC/a,UAAU,CAAC2a,aAAa,CAAC,WAAD,CAAd,CAAV,IAA0C,CAA3C,IAAgD,IAAhD,GAAuDC,YAAxE;AACA,YAAMI,eAAe,GAAGvc,mBAAe,CAACsb,YAAD,EAAe,IAAf,EAAqB,IAArB,CAAvC;AACA,YAAMkB,YAAY,GAAGxc,mBAAe,CAACyR,KAAD,EAAQ,IAAR,EAAc,IAAd,CAApC;AACA,YAAIgL,QAAQ,GAAG3a,IAAI,CAAClT,GAAL,CAAS2tB,eAAT,EAA0BD,QAA1B,CAAf;;AAEA;AACA,YAAIG,QAAQ,KAAKD,YAAjB,EAA+B;AAC3B;AACA1Q,UAAAA,mBAAe,CAAC2F,KAAD,EAAQgL,QAAR,EAAkB,IAAlB,EAAwB,IAAxB,CAAf;;AAEA,cAAI1Q,YAAY,GAAG,CAACxK,UAAU,CAAC2a,aAAa,CAAClQ,eAAf,CAAV,IAA6C,CAA9C,KAAoDzK,UAAU,CAAC2a,aAAa,CAACjQ,gBAAf,CAAV,IAA8C,CAAlG,CAAnB;AACA,cAAI7I,WAAW,GAAGqO,KAAK,CAACrO,WAAN,GAAoB2I,YAAtC;;AAEA,cAAI3I,WAAW,GAAGqZ,QAAlB,EAA4B;AACxB;AACA,gBAAIvQ,KAAK,GAAG9I,WAAW,GAAGqZ,QAA1B;AACAhL,YAAAA,KAAK,CAACrY,KAAN,CAAY0G,KAAZ,aAAuByB,UAAU,CAACkQ,KAAK,CAACrY,KAAN,CAAY0G,KAAb,CAAV,GAAgCoM,KAAvD;;AAEAuQ,YAAAA,QAAQ,IAAIvQ,KAAZ;AACH;;AAED;AACA;AACA,cAAIhU,CAAC,CAAC6a,aAAN,EAAqB;AACjB7a,YAAAA,CAAC,CAAC6a,aAAF,CAAgB3Z,KAAhB,CAAsB0G,KAAtB,GAA8B,EAA9B;;AAEA,gBAAIyb,UAAJ,EAAgB;AACZ,kBAAIzb,KAAK,GAAG2c,QAAQ,GAAGN,YAAX,GAA0BpQ,YAAtC;AACA,kBAAI/L,mBAAe,CAAC9H,CAAC,CAAC6a,aAAH,EAAkB,KAAlB,EAAyB,KAAzB,CAAf,GAAiDjT,KAArD,EAA4D;AACxDgM,gBAAAA,mBAAe,CAAC5T,CAAC,CAAC6a,aAAH,EAAkBjT,KAAlB,EAAyB,KAAzB,EAAgC,KAAhC,CAAf;AACH;AACJ;AACJ;;AAED0b,UAAAA,SAAS,GAAG,IAAZ;AACH;;AAED;AACApf,QAAAA,gBAAM,CAACkf,YAAD,CAAN;AACH;;AAED,UAAIE,SAAJ;AACI,WAAK1e,QAAL,CAAc,cAAd;;AAEJ,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACA;AACI,mCAAsB;AAClB,UAAM5E,CAAC,GAAG,KAAKC,EAAf,CAAmBe,EAAE,GAAGhB,CAAC,CAACgB,EAA1B;;AAEA,UAAI,CAAChB,CAAC,CAAC0a,QAAH,IAAe,CAAC1a,CAAC,CAACid,eAAlB,IAAqC,CAACjd,CAAC,CAAC0a,QAAF,CAAWzT,SAAX,EAA1C;AACI,aAAO,IAAP;;AAEJ,UAAMud,GAAG,GAAGxjB,EAAE,CAACyjB,qBAAH,EAAZ;AACA,UAAMC,UAAU,GAAGF,GAAG,CAAChd,IAAJ,GAAW,GAAX,GAAiBgd,GAAG,CAACzjB,GAArB,GAA2B,GAA3B,GAAiCyjB,GAAG,CAACnc,KAArC,GAA6C,GAA7C,GAAmDmc,GAAG,CAACzc,MAA1E;;AAEA,UAAI/H,CAAC,CAAC0a,QAAF,CAAWqF,kBAAX,KAAkC2E,UAAtC,EAAkD;AAC9C1kB,QAAAA,CAAC,CAAC0a,QAAF,CAAW9N,QAAX,CAAoB,KAAK8P,2BAAL,EAApB;AACA1c,QAAAA,CAAC,CAAC0a,QAAF,CAAWqF,kBAAX,GAAgC2E,UAAhC;AACH;;AAED,aAAO,IAAP;AACH;;AAED;AACJ;AACA;AACA;AACI,iCAAoB7f,KAApB,EAA2B;AACvB,UAAM7E,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAMoF,MAAM,8BAA+BR,KAAK,CAACQ,MAAjD;;AAEA,UAAIR,KAAK,CAAC/E,GAAN,KAAcgjB,0BAAd,IAAkCje,KAAK,CAAC8f,OAAxC,IAAmDtf,MAAM,CAAC/G,KAAP,CAAasH,MAAb,KAAwB,CAA/E,EAAkF;AAC9E,aAAK0I,KAAL;;AAEAzJ,QAAAA,KAAK,CAACkK,cAAN;AACH,OAJD,MAIO,IAAIlK,KAAK,CAAC/E,GAAN,KAAcgjB,0BAAd,IAAkCzd,MAAM,CAAC/G,KAAP,CAAasH,MAAb,KAAwB,CAA9D,EAAiE;AACpE,YAAMpD,MAAM,GAAGxC,CAAC,CAACmZ,YAAF,CAAenZ,CAAC,CAACmZ,YAAF,CAAevT,MAAf,GAAwB,CAAvC,CAAf;AACA,YAAI,CAACpD,MAAD,IAAWA,MAAM,CAACjE,UAAD,CAAN,CAAmBD,KAAnB,KAA6ByB,SAA5C;AACI;;AAEJ,YAAM2C,IAAI,GAAGF,MAAM,CAACjE,UAAD,CAAnB,CAAiCD,KAAK,GAAGoE,IAAI,CAAC1C,CAAC,CAACR,SAAH,CAA7C;;AAEA,YAAIyjB,YAAY,GAAG,EAAE3kB,KAAK,EAAEA,KAAT,EAAgBoE,IAAI,EAAEA,IAAtB,EAA4B+S,MAAM,EAAE,KAApC,EAAnB;AACA,aAAK7Q,QAAL,CAAc,kBAAd,EAAkCqe,YAAlC;AACA,YAAIA,YAAY,CAACxN,MAAjB;AACI;;AAEJ,aAAKyN,gBAAL,CAAsBxgB,IAAtB,EAA4B,IAA5B;;AAEA;AACA,aAAKkC,QAAL,CAAc,WAAd,EAA2B,EAAEtG,KAAK,EAAEA,KAAT,EAAgBoE,IAAI,EAAEA,IAAtB,EAA3B;;AAEAmC,QAAAA,KAAK,CAACkK,cAAN;AACH;AACJ;;AAED;AACJ;AACA;AACA;AACI,iCAAoBlK,KAApB,EAA2B;AACvB,UAAM7E,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAID,CAAC,CAACmW,QAAN,EAAgB;;AAEhB,UAAMyO,KAAK,GAAG3b,gBAAgB,CAACjJ,CAAC,CAACgB,EAAH,CAAhB,CAAuBuJ,SAAvB,KAAqC,KAAnD;;AAEA,UAAIoY,SAAJ;;AAEA,UAAI9d,KAAK,CAAC/E,GAAN,MAAe8kB,KAAK,GAAGC,oBAAH,GAAgBC,qBAApC,CAAJ,EAAsD;AAClDnC,QAAAA,SAAS,GAAGlS,QAAI,oBAAmB5L,KAAK,CAACQ,MAAzB,aAAqCrF,CAAC,CAACpB,aAAvC,qBAA+DoB,CAAC,CAACpB,aAAjE,sBAAhB;AACA,YAAIqX,QAAQ,CAAC0M,SAAD,YAAe3iB,CAAC,CAACpB,aAAjB,sBAAZ,EAA+D;AAC3D+jB,UAAAA,SAAS,GAAGA,SAAS,CAAC9I,aAAV,CAAwB,OAAxB,CAAZ;AACH;AACD8I,QAAAA,SAAS,IAAIA,SAAS,CAACnJ,KAAV,EAAb;;AAEA3U,QAAAA,KAAK,CAACkK,cAAN;AACH,OARD,MAQO,IAAIlK,KAAK,CAAC/E,GAAN,MAAe8kB,KAAK,GAAGE,qBAAH,GAAiBD,oBAArC,CAAJ,EAAsD;AACzDlC,QAAAA,SAAS,GAAGI,QAAI,oBAAmBle,KAAK,CAACQ,MAAzB,aAAqCrF,CAAC,CAACpB,aAAvC,qBAA+DoB,CAAC,CAACpB,aAAjE,sBAAhB;AACA,YAAIqX,QAAQ,CAAC0M,SAAD,YAAe3iB,CAAC,CAACpB,aAAjB,sBAAZ,EAA+D;AAC3D+jB,UAAAA,SAAS,GAAGA,SAAS,CAAC9I,aAAV,CAAwB,OAAxB,CAAZ;AACH;AACD8I,QAAAA,SAAS,IAAIA,SAAS,CAACnJ,KAAV,EAAb;;AAEA3U,QAAAA,KAAK,CAACkK,cAAN;AACH,OARM,MAQA,IAAIlK,KAAK,CAAC/E,GAAN,KAAcgjB,0BAAd,IAAkCje,KAAK,CAAC8f,OAA5C,EAAqD;AACxD,YAAMxL,YAAY,GAAG,EAArB;AACA,YAAI3W,MAAM,GAAGqC,KAAK,CAACQ,MAAnB;AACA,eAAO7C,MAAP,EAAe;AACX2W,UAAAA,YAAY,CAACliB,IAAb,CAAkBuL,MAAlB;AACAA,UAAAA,MAAM,GAAGugB,QAAI,oBAAmBvgB,MAAnB,aAA+BxC,CAAC,CAACpB,aAAjC,YAAb;AACH;;AAED,eAAOua,YAAY,CAACvT,MAApB,EAA4B;AACxB,eAAKmY,yBAAL,CAA+B5E,YAAY,CAAC4L,KAAb,EAA/B,EAAqDlgB,KAArD;AACH;;AAEDA,QAAAA,KAAK,CAACkK,cAAN;AACH,OAbM,MAaA,IAAIlK,KAAK,CAAC/E,GAAN,KAAc+iB,sBAAd,IAA8Bhe,KAAK,CAAC/E,GAAN,KAAcgjB,0BAAhD,EAAkE;AACrE,aAAK/E,yBAAL,CAA+B3Y,gBAAY,CAACP,KAAK,CAACQ,MAAP,aAAmBrF,CAAC,CAACpB,aAArB,aAA4CoB,CAAC,CAACgB,EAA9C,CAA3C,EAA8F6D,KAA9F;AACAA,QAAAA,KAAK,CAACkK,cAAN;AACH;AACJ;;AAED;AACJ;AACA;AACA;AACI,2CAA8B;AAC1B,UAAM/O,CAAC,GAAG,KAAKC,EAAf;;AAEA,aAAO;AACHoF,QAAAA,MAAM,oBAAoBrF,CAAC,CAACgB,EADzB;AAEHqG,QAAAA,MAAM,EAAE,EAAEN,CAAC,EAAE,CAAL,EAAQyB,CAAC,EAAE,CAAX,EAFL;AAGHkC,QAAAA,MAAM,EAAE,EAAE3D,CAAC,EAAE,OAAL,EAAcyB,CAAC,EAAE,QAAjB,EAHL;AAIHD,QAAAA,QAAQ,EAAE,EAAExB,CAAC,EAAE,OAAL,EAAcyB,CAAC,EAAE,KAAjB,EAJP;AAKHG,QAAAA,WAAW,EAAE,IALV,EAAP;;AAOH;;AAED;AACA,sCAAyB;AACrB,UAAM3I,CAAC,GAAG,KAAKC,EAAf;;AAEA,WAAKwa,qBAAL;;AAEAza,MAAAA,CAAC,CAACglB,WAAF,GAAgBC,WAAW,CAAC,YAAY;AACpC,YAAI1C,qBAAW,CAACviB,CAAC,CAACgB,EAAH,CAAX,KAAsB/L,QAA1B;AACI,aAAK4b,IAAL;AACP,OAH0B,EAGxB,GAHwB,CAA3B;AAIH;;AAED;AACA,qCAAwB;AACpB,UAAM7Q,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAID,CAAC,CAACglB,WAAN,EAAmB;AACfE,QAAAA,aAAa,CAACllB,CAAC,CAACglB,WAAH,CAAb;AACAhlB,QAAAA,CAAC,CAACglB,WAAF,GAAgB,IAAhB;AACH;AACJ;;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI,wBAAWpjB,KAAX,EAAkBwgB,IAAlB,EAAwBvG,gBAAxB,EAA0CsJ,kBAA1C,EAA8D;AAC1D,UAAMnlB,CAAC,GAAG,KAAKC,EAAf;;AAEA,UAAI,CAACmiB,IAAD,IAAS,CAACvG,gBAAd;AACI,aAAOja,KAAP,CAJsD;;AAM1D,UAAMrC,SAAS,GAAGS,CAAC,CAACT,SAApB;AACI6X,MAAAA,kBAAkB,GAAGpX,CAAC,CAACoX,kBAD3B;AAEI5X,MAAAA,SAAS,GAAGQ,CAAC,CAACR,SAFlB;AAGIkX,MAAAA,YAAY,GAAG1W,CAAC,CAAC0W,YAHrB;AAIIoF,MAAAA,UAAU,GAAG9b,CAAC,CAAC2W,kBAAF,IAAyB,UAACmL,CAAD,EAAIC,CAAJ,EAAU;AAC5C,YAAIrL,YAAY,KAAK,IAArB,EAA2B;AACvB,cAAIsL,EAAE,GAAGtL,YAAY,CAAC6F,GAAb,CAAiBuF,CAAC,CAACtiB,SAAD,CAAlB,CAAT;AACA,cAAIyiB,EAAE,GAAGvL,YAAY,CAAC6F,GAAb,CAAiBwF,CAAC,CAACviB,SAAD,CAAlB,CAAT;AACA,cAAIwiB,EAAE,IAAI,CAACC,EAAX,EAAe,OAAO,CAAC,CAAR;AACf,cAAI,CAACD,EAAD,IAAOC,EAAX,EAAe,OAAO,CAAP;AAClB;;AAED,YAAMC,MAAM,GAAGJ,CAAC,CAACviB,SAAD,CAAD,IAAgBuiB,CAAC,CAAC1K,kBAAD,CAAhC;AACA,YAAM+K,MAAM,GAAGJ,CAAC,CAACxiB,SAAD,CAAD,IAAgBwiB,CAAC,CAAC3K,kBAAD,CAAhC;;AAEA,YAAI8K,MAAM,GAAGC,MAAb,EAAqB,OAAO,CAAC,CAAR;AACrB,YAAID,MAAM,GAAGC,MAAb,EAAqB,OAAO,CAAP;;AAErB,eAAO,CAAP;AACH,OAnBL;;AAqBA,UAAIiD,KAAK,GAAG,EAAZ,CAAgBC,WAAW,GAAG,IAA9B;AACA,UAAIC,MAAM,GAAG,CAACF,KAAD,CAAb;AACA,UAAMG,iBAAiB,GAAG,IAAI1N,GAAJ,CAAQ7X,CAAC,CAACuX,cAAV,CAA1B;AACA,UAAI7U,IAAJ,EAAUoD,CAAV,EAAayM,GAAb;;AAEA;AACA,WAAKzM,CAAC,GAAG,CAAJ,EAAOyM,GAAG,GAAG3Q,KAAK,CAACgE,MAAxB,EAAgCE,CAAC,GAAGyM,GAApC,EAAyCzM,CAAC,EAA1C,EAA8C;AAC1CpD,QAAAA,IAAI,GAAGd,KAAK,CAACkE,CAAD,CAAZ;AACA,YAAIpD,IAAI,CAACS,MAAL,IAAeiiB,KAAK,CAACxf,MAAzB,EAAiC;AAC7Bwf,UAAAA,KAAK,GAAG,EAAR;AACAE,UAAAA,MAAM,CAACruB,IAAP,CAAYmuB,KAAZ;AACH;AACDA,QAAAA,KAAK,CAACnuB,IAAN,CAAWyL,IAAX;AACH;;AAED;AACA,UAAI,CAAC0iB,KAAK,CAACxf,MAAX,EAAmB;AACf0f,QAAAA,MAAM,CAAC1f,MAAP,GAAgB,CAAhB;AACH;;AAED;AACA,UAAI8Q,YAAY,IAAI9U,KAAK,CAACgE,MAAN,GAAe,CAA/B,IAAoC,CAAChE,KAAK,CAAC,CAAD,CAAL,CAASuB,MAAlD,EAA0D;AACtDkiB,QAAAA,WAAW,GAAGC,MAAM,CAAC,CAAD,CAAN,CAAUzG,MAAV,CAAiB,UAAA9X,CAAC,UAAI2P,YAAY,CAAC6F,GAAb,CAAiBxV,CAAC,CAACvH,SAAD,CAAlB,CAAJ,EAAlB,CAAd;AACA,YAAI6lB,WAAW,CAACzf,MAAZ,GAAqB,CAAzB,EAA4B;AACxB0f,UAAAA,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAN,CAAUzG,MAAV,CAAiB,UAAA9X,CAAC,UAAI,CAAC2P,YAAY,CAAC6F,GAAb,CAAiBxV,CAAC,CAACvH,SAAD,CAAlB,CAAL,EAAlB,CAAZ;AACH;AACJ;;AAED,UAAI4iB,IAAJ,EAAU;AACN;AACAkD,QAAAA,MAAM,CAAClD,IAAP,CAAY,UAACN,CAAD,EAAIC,CAAJ,EAAU;AAClBD,UAAAA,CAAC,GAAGA,CAAC,CAAC,CAAD,CAAL;AACAC,UAAAA,CAAC,GAAGA,CAAC,CAAC,CAAD,CAAL;;AAEA,cAAIrL,YAAY,KAAK,IAArB,EAA2B;AACvB,gBAAIsL,EAAE,GAAGtL,YAAY,CAAC6F,GAAb,CAAiBuF,CAAC,CAACtiB,SAAD,CAAlB,CAAT;AACA,gBAAIyiB,EAAE,GAAGvL,YAAY,CAAC6F,GAAb,CAAiBwF,CAAC,CAACviB,SAAD,CAAlB,CAAT;AACA,gBAAIwiB,EAAE,IAAI,CAACC,EAAX,EAAe,OAAO,CAAC,CAAR;AACf,gBAAI,CAACD,EAAD,IAAOC,EAAX,EAAe,OAAO,CAAP;AAClB;;AAED;AACA,cAAI,CAACH,CAAC,CAAC3e,MAAH,IAAa4e,CAAC,CAAC5e,MAAnB,EAA2B,OAAO,CAAC,CAAR;AAC3B,cAAI2e,CAAC,CAAC3e,MAAF,IAAY,CAAC4e,CAAC,CAAC5e,MAAnB,EAA2B,OAAO,CAAP;;AAE3B,iBAAO2Y,UAAU,CAACgG,CAAD,EAAIC,CAAJ,CAAjB;AACH,SAhBD;AAiBH;;AAED,UAAIsD,WAAW,IAAIA,WAAW,CAACzf,MAAZ,GAAqB,CAAxC,EAA2C;AACvC0f,QAAAA,MAAM,CAACE,OAAP,CAAeH,WAAf;AACH;;AAED;AACA;AACA;;AAEA,UAAMI,aAAa,GAAG,EAAtB,CAA0BC,eAAe,GAAG,EAA5C;;AAEA;AACA,WAAK,IAAIC,CAAC,GAAG,CAAR,EAAWC,IAAI,GAAGN,MAAM,CAAC1f,MAA9B,EAAsC+f,CAAC,GAAGC,IAA1C,EAAgDD,CAAC,EAAjD,EAAqD;AACjDP,QAAAA,KAAK,GAAGE,MAAM,CAACK,CAAD,CAAd;;AAEA;AACAP,QAAAA,KAAK,CAAChD,IAAN,CAAW,UAACN,CAAD,EAAIC,CAAJ,EAAU;;AAEjB;AACA,cAAID,CAAC,CAAC3e,MAAF,IAAY,CAAC4e,CAAC,CAAC5e,MAAnB,EAA2B,OAAO,CAAC,CAAR;AAC3B,cAAI,CAAC2e,CAAC,CAAC3e,MAAH,IAAa4e,CAAC,CAAC5e,MAAnB,EAA2B,OAAO,CAAP;;AAE3B,cAAI0Y,gBAAJ,EAAsB;AAClB,gBAAMgK,QAAQ,GAAGN,iBAAiB,CAAChJ,GAAlB,CAAsBuF,CAAC,CAACtiB,SAAD,CAAvB,CAAjB;AACA,gBAAMsmB,QAAQ,GAAGP,iBAAiB,CAAChJ,GAAlB,CAAsBwF,CAAC,CAACviB,SAAD,CAAvB,CAAjB;;AAEA,gBAAIqmB,QAAQ,IAAI,CAACC,QAAjB,EAA2B,OAAO,CAAC,CAAR;AAC3B,gBAAI,CAACD,QAAD,IAAaC,QAAjB,EAA2B,OAAO,CAAP;AAC9B;;AAED,cAAI1D,IAAJ,EAAU;AACN,mBAAOtG,UAAU,CAACgG,CAAD,EAAIC,CAAJ,CAAjB;AACH;;AAED,iBAAO,CAAP;AACH,SAnBD;;AAqBA2D,QAAAA,eAAe,CAACzuB,IAAhB,CAAqBmuB,KAArB;AACH;;AAED,UAAIvJ,gBAAgB,IAAIsJ,kBAAxB,EAA4C;;AAExC,YAAIY,YAAJ;;AAEA;AACA,aAAK,IAAIJ,EAAC,GAAG,CAAR,EAAWC,KAAI,GAAGN,MAAM,CAAC1f,MAA9B,EAAsC+f,EAAC,GAAGC,KAA1C,EAAgDD,EAAC,EAAjD,EAAqD;AACjDP,UAAAA,KAAK,GAAGE,MAAM,CAACK,EAAD,CAAd;;AAEA,cAAIP,KAAK,KAAKC,WAAd,EAA2B;AACvBI,YAAAA,aAAa,CAACxuB,IAAd,CAAmBouB,WAAnB;AACA,gBAAIW,GAAG,GAAGN,eAAe,CAAC1uB,OAAhB,CAAwBquB,WAAxB,CAAV;AACA,gBAAIW,GAAG,KAAK,CAAC,CAAb,EAAgB;AACZN,cAAAA,eAAe,CAACzf,MAAhB,CAAuB+f,GAAvB,EAA4B,CAA5B;AACH;AACD;AACH;;AAEDD,UAAAA,YAAY,GAAG,IAAf;;AAEA,eAAK,IAAIE,EAAE,GAAG,CAAT,EAAYC,KAAK,GAAGd,KAAK,CAACxf,MAA/B,EAAuCqgB,EAAE,GAAGC,KAA5C,EAAmDD,EAAE,EAArD,EAAyD;AACrDvjB,YAAAA,IAAI,GAAG0iB,KAAK,CAACa,EAAD,CAAZ;AACA,gBAAIvjB,IAAI,CAACS,MAAT,EAAiB;AACjB,gBAAI,CAACoiB,iBAAiB,CAAChJ,GAAlB,CAAsB7Z,IAAI,CAAC1C,CAAC,CAACR,SAAH,CAA1B,CAAL,EAA+C;;AAE/C,gBAAI,CAACumB,YAAL,EAAmB;AACfA,cAAAA,YAAY,GAAG,EAAf;AACA,kBAAIX,KAAK,CAAC,CAAD,CAAL,CAASjiB,MAAb,EAAqB;AACjB4iB,gBAAAA,YAAY,CAAC9uB,IAAb,CAAkBmuB,KAAK,CAAC,CAAD,CAAvB;AACH;AACJ;;AAEDW,YAAAA,YAAY,CAAC9uB,IAAb,CAAkByL,IAAlB;AACA0iB,YAAAA,KAAK,CAACnf,MAAN,CAAaggB,EAAE,EAAf,EAAmB,CAAnB;AACAC,YAAAA,KAAK;AACR;;AAED,cAAIH,YAAJ,EAAkB;AACdN,YAAAA,aAAa,CAACxuB,IAAd,CAAmB8uB,YAAnB;AACA,gBAAIX,KAAK,CAACxf,MAAN,KAAiB,CAAjB,IAAuBwf,KAAK,CAACxf,MAAN,KAAiB,CAAjB,IAAsBwf,KAAK,CAAC,CAAD,CAAL,CAASjiB,MAA1D,EAAmE;AAC/DmiB,cAAAA,MAAM,CAACrf,MAAP,CAAc0f,EAAC,EAAf,EAAmB,CAAnB;AACAC,cAAAA,KAAI;AACP;AACJ;AACJ;AACJ;;AAED;AACA,UAAMO,MAAM,GAAG,EAAf;AACAA,MAAAA,MAAM,CAACvgB,MAAP,GAAgBhE,KAAK,CAACgE,MAAtB;AACA,UAAIS,SAAS,GAAG,CAAhB;;AAEAif,MAAAA,MAAM,GAAGG,aAAa,CAAC7f,MAAd;AACL6f,MAAAA,aAAa,CAACnuB,MAAd,CAAqBouB,eAArB,CADK;AAELA,MAAAA,eAFJ,CAtK0D;;AA0K1D,WAAK,IAAIC,GAAC,GAAG,CAAR,EAAWC,MAAI,GAAGN,MAAM,CAAC1f,MAA9B,EAAsC+f,GAAC,GAAGC,MAA1C,EAAgDD,GAAC,EAAjD,EAAqD;AACjDP,QAAAA,KAAK,GAAGE,MAAM,CAACK,GAAD,CAAd;;AAEA,aAAK7f,CAAC,GAAG,CAAJ,EAAOyM,GAAG,GAAG6S,KAAK,CAACxf,MAAxB,EAAgCE,CAAC,GAAGyM,GAApC,EAAyCzM,CAAC,EAA1C,EAA8C;AAC1CqgB,UAAAA,MAAM,CAAC9f,SAAS,EAAV,CAAN,GAAsB+e,KAAK,CAACtf,CAAD,CAA3B;AACH;AACJ;;AAED,aAAOqgB,MAAP;AACH;;;"}