{"version":3,"file":"bvi.js","sources":["../../node_modules/regenerator-runtime/runtime.js","../../src/js/util/index.js","../../src/js/util/cookie.js","../../src/js/i18n.js","../../src/js/bvi.js","../../src/js/index.umd.js"],"sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): util/index.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\n(function (arr) {\n arr.forEach(function (item) {\n if (item.hasOwnProperty('prepend')) {\n return\n }\n Object.defineProperty(item, 'prepend', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: function prepend () {\n var argArr = Array.prototype.slice.call(arguments),\n docFrag = document.createDocumentFragment()\n\n argArr.forEach(function (argItem) {\n var isNode = argItem instanceof Node\n docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)))\n })\n\n this.insertBefore(docFrag, this.firstChild)\n },\n })\n })\n})([Element.prototype, Document.prototype, DocumentFragment.prototype])\n\nif (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach\n}\n\nif (window.HTMLCollection && !HTMLCollection.prototype.forEach) {\n HTMLCollection.prototype.forEach = Array.prototype.forEach\n}\n\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst checkConfig = (config, configTypes, configOptions) => {\n Object.keys(configTypes).forEach(key => {\n const expectedTypes = configTypes[key]\n const value = config[key]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `Bvi console: Опция \"${key}\" предоставленный тип \"${valueType}\", ожидаемый тип \"${expectedTypes}\".`,\n )\n }\n })\n\n Object.keys(configOptions).forEach(key => {\n const expectedOptions = configOptions[key]\n const value = config[key]\n\n if (!new RegExp(expectedOptions).test(value)) {\n throw new TypeError(\n `Bvi console: Опция \"${key}\" параметр \"${value}\", ожидаемый параметр \"${expectedOptions}\".`,\n )\n }\n })\n}\n\nconst plural = (number, text = ['пиксель', 'пекселя', 'пикселей']) => {\n if (number % 10 === 1 && number % 100 !== 11) {\n return `${number} ${text[0]}`\n } else if (number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n return `${number} ${text[1]}`\n } else {\n return `${number} ${text[2]}`\n }\n}\n\nconst stringToBoolean = string => {\n switch (string) {\n case 'on':\n case 'true':\n case '1':\n return true\n default:\n return false\n }\n}\n\nconst wrapInner = (parent, wrapper, className) => {\n if (typeof wrapper === 'string') {\n wrapper = document.createElement(wrapper)\n }\n\n parent.appendChild(wrapper).className = className\n\n while (parent.firstChild !== wrapper) {\n wrapper.appendChild(parent.firstChild)\n }\n}\n\nconst unwrap = wrapper => {\n let docFrag = document.createDocumentFragment()\n\n if (!wrapper) return\n\n while (wrapper.firstChild) {\n let child = wrapper.removeChild(wrapper.firstChild)\n docFrag.appendChild(child)\n }\n\n wrapper.parentNode.replaceChild(docFrag, wrapper)\n}\n\nconst getObject = (object, callback) => {\n Object.keys(object).forEach(key => {\n if (typeof callback === 'function') {\n callback(key)\n }\n })\n}\n\nconst getArray = (array, callback) => {\n Array.from(array).forEach(key => {\n if (typeof callback === 'function') {\n callback(key)\n }\n })\n}\n\nconst inArray = (needle, haystack) => {\n let length = haystack.length\n\n for (let i = 0; i < length; i++) {\n if (haystack[i] === needle) {\n return true\n }\n }\n\n return false\n}\n\nconst synth = () => window.speechSynthesis\n\nconst synthSupportBrowser = () => {\n return 'speechSynthesis' in window\n}\n\nexport {\n plural,\n checkConfig,\n stringToBoolean,\n wrapInner,\n unwrap,\n getObject,\n getArray,\n synth,\n synthSupportBrowser,\n inArray,\n}\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): util/cookie.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nconst setCookie = function (name = '', value = '') {\n let now = new Date();\n let time = now.getTime();\n time += 24 * 60 * 60 * 1000;\n now.setTime(time);\n document.cookie = `bvi_${name}=${value};path=/;expires=${now.toUTCString()};domain=${location.host}`;\n};\n\nconst getCookie = function (name = '') {\n name = `bvi_${name}=`;\n let decodedCookie = decodeURIComponent(document.cookie);\n let cookies = decodedCookie.split(';');\n\n for (let i = 0; i < cookies.length; i++) {\n let cookie = cookies[i].trim();\n\n if (cookie.indexOf(name) !== -1) {\n return cookie.substring(name.length, cookie.length);\n }\n }\n};\n\nconst removeCookie = function (name = '') {\n document.cookie = `bvi_${name}=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=${location.host}`;\n};\n\nexport {\n setCookie,\n getCookie,\n removeCookie,\n};\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): i18n.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nconst lang = {\n 'ru-RU': {\n 'text': {\n 'fontSize': 'Размер шрифта',\n 'siteColors': 'Цвета сайта',\n 'images': 'Изображения',\n 'speech': 'Синтез речи',\n 'settings': 'Настройки',\n 'regularVersionOfTheSite': 'Обычная версия сайта',\n 'letterSpacing': 'Межбуквенное расстояние',\n 'normal': 'Стандартный',\n 'average': 'Средний',\n 'big': 'Большой',\n 'lineHeight': 'Межстрочный интервал',\n 'font': 'Шрифт',\n 'arial': 'Без засечек',\n 'times': 'С засечками',\n 'builtElements': 'Встроенные элементы (Видео, карты и тд.)',\n 'on': 'Включить',\n 'off': 'Выключить',\n 'reset': 'Сбросить настройки',\n 'plural_0': 'пиксель',\n 'plural_1': 'пекселя',\n 'plural_2': 'пикселей',\n },\n 'voice': {\n 'fontSizePlus': 'Размер шрифта увели́чен',\n 'fontSizeMinus': 'Размер шрифта уме́ньшен',\n 'siteColorBlackOnWhite': 'Цвет сайта черным по белому',\n 'siteColorWhiteOnBlack': 'Цвет сайта белым по черному',\n 'siteColorDarkBlueOnBlue': 'Цвет сайта тёмно-синим по голубому',\n 'siteColorBeigeBrown': 'Цвет сайта кори́чневым по бе́жевому',\n 'siteColorGreenOnDarkBrown': 'Цвет сайта зеленым по тёмно-коричневому',\n 'imagesOn': 'Изображения включены',\n 'imagesOFF': 'Изображения выключены',\n 'imagesGrayscale': 'Изображения чёрно-белые',\n 'speechOn': 'Синтез речи включён',\n 'speechOff': 'Синтез речи вы́ключен',\n 'lineHeightNormal': 'Межстрочный интервал стандартный',\n 'lineHeightAverage': 'Межстрочный интервал средний',\n 'lineHeightBig': 'Межстрочный интервал большой',\n 'LetterSpacingNormal': 'Интервал между буквами стандартный',\n 'LetterSpacingAverage': 'Интервал между буквами средний',\n 'LetterSpacingBig': 'Интервал между буквами большой',\n 'fontArial': 'Шрифт без засечек',\n 'fontTimes': 'Шрифт с засечками',\n 'builtElementsOn': 'Встроенные элементы включены',\n 'builtElementsOFF': 'Встроенные элементы выключены',\n 'resetSettings': 'Установлены настройки по умолча́нию',\n 'panelShow': 'Панель открыта',\n 'panelHide': 'Панель скрыта',\n 'panelOn': 'Версия сайта для слабови́дящий',\n 'panelOff': 'Обычная версия сайта',\n }\n },\n 'en-US': {\n 'text': {\n 'fontSize': 'Font size',\n 'siteColors': 'Site colors',\n 'images': 'Images',\n 'speech': 'Speech synthesis',\n 'settings': 'Settings',\n 'regularVersionOfTheSite': 'Regular version Of The site',\n 'letterSpacing': 'Letter spacing',\n 'normal': 'Single',\n 'average': 'One and a half',\n 'big': 'Double',\n 'lineHeight': 'Line spacing',\n 'font':'Font',\n 'arial': 'Sans Serif - Arial',\n 'times': 'Serif - Times New Roman',\n 'builtElements': 'Include inline elements (Videos, maps, etc.)',\n 'on': 'Enable',\n 'off': 'Disabled',\n 'reset': 'Reset settings',\n 'plural_0': 'pixel',\n 'plural_1': 'pixels',\n 'plural_2': 'pixels',\n },\n 'voice': {\n 'fontSizePlus': 'Font size increased',\n 'fontSizeMinus': 'Font size reduced',\n 'siteColorBlackOnWhite': 'Site color black on white',\n 'siteColorWhiteOnBlack': 'Site color white on black',\n 'siteColorDarkBlueOnBlue': 'Site color dark blue on cyan',\n 'siteColorBeigeBrown': 'SiteColorBeigeBrown',\n 'siteColorGreenOnDarkBrown': 'Site color green on dark brown',\n 'imagesOn': 'Images enable',\n 'imagesOFF': 'Images disabled',\n 'imagesGrayscale': 'Images gray scale',\n 'speechOn': 'Synthesis speech enable',\n 'speechOff': 'Synthesis speech disabled',\n 'lineHeightNormal': 'Line spacing single',\n 'lineHeightAverage': 'Line spacing one and a half',\n 'lineHeightBig': 'Line spacing double',\n 'LetterSpacingNormal': 'Letter spacing single',\n 'LetterSpacingAverage': 'Letter spacing one and a half',\n 'LetterSpacingBig': 'Letter spacing letter double',\n 'fontArial': 'Sans Serif - Arial',\n 'fontTimes': 'Serif - Times New Roman',\n 'builtElementsOn': 'Include inline elements are enabled',\n 'builtElementsOFF': 'Include inline elements are disabled',\n 'resetSettings': 'Default settings have been set',\n 'panelShow': 'Panel show',\n 'panelHide': 'Panel hide',\n 'panelOn': 'Site version for visually impaired',\n 'panelOff': 'Regular version of the site',\n }\n }\n}\n\nclass I18n {\n constructor(options) {\n this._config = options\n }\n\n t(key) {\n return lang[this._config.lang]['text'][key]\n }\n\n v(key) {\n return lang[this._config.lang]['voice'][key]\n }\n}\n\nexport default I18n\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): bvi.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nimport {\n checkConfig,\n stringToBoolean,\n wrapInner,\n unwrap,\n getObject,\n getArray,\n synth,\n} from './util'\n\nimport {\n setCookie,\n getCookie,\n removeCookie,\n} from './util/cookie'\nimport I18n from './i18n'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst Default = {\n target: '.bvi-open',\n fontSize: 16,\n theme: 'white',\n images: 'grayscale',\n letterSpacing: 'normal',\n lineHeight: 'normal',\n speech: true,\n fontFamily: 'arial',\n builtElements: false,\n panelFixed: true,\n panelHide: false,\n reload: false,\n lang: 'ru-RU',\n}\n\nconst DefaultType = {\n target: 'string',\n fontSize: 'number',\n theme: 'string',\n images: '(string|boolean)',\n letterSpacing: 'string',\n lineHeight: 'string',\n speech: 'boolean',\n fontFamily: 'string',\n builtElements: 'boolean',\n panelFixed: 'boolean',\n panelHide: 'boolean',\n reload: 'boolean',\n lang: 'string',\n}\n\nconst DefaultOptions = {\n target: '',\n fontSize: '(^[1-9]$|^[1-3][0-9]?$|^39$)',\n theme: '(white|black|blue|brown|green)',\n images: '(true|false|grayscale)',\n letterSpacing: '(normal|average|big)',\n lineHeight: '(normal|average|big)',\n speech: '(true|false)',\n fontFamily: '(arial|times)',\n builtElements: '(true|false)',\n panelFixed: '(true|false)',\n panelHide: '(true|false)',\n reload: '(true|false)',\n lang: '(ru-RU|en-US)',\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Bvi {\n constructor(options) {\n this._config = this._getConfig(options)\n this._elements = document.querySelectorAll(this._config.target)\n this._i18n = new I18n({\n lang: this._config.lang\n })\n\n this._addEventListeners()\n this._init()\n\n console.log('Bvi console: ready Button visually impaired v1.0.0')\n }\n\n // Private\n\n _init() {\n getObject(this._config, key => {\n if (typeof getCookie(key) === 'undefined') {\n removeCookie('panelActive')\n }\n })\n\n if (stringToBoolean(getCookie('panelActive'))) {\n this._set()\n this._getPanel()\n this._addEventListenersPanel()\n this._images()\n this._speechPlayer()\n\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n\n setInterval(() => {\n if (synth().pending === false) {\n let play = document.querySelectorAll('.bvi-speech-play')\n let pause = document.querySelectorAll('.bvi-speech-pause')\n let resume = document.querySelectorAll('.bvi-speech-resume')\n let stop = document.querySelectorAll('.bvi-speech-stop')\n const el = (elements, callback) => {\n elements.forEach(element => {\n return callback(element)\n })\n }\n\n el(play, element => element.classList.remove('disabled'))\n el(pause, element => element.classList.add('disabled'))\n el(resume, element => element.classList.add('disabled'))\n el(stop, element => element.classList.add('disabled'))\n }\n }, 1000)\n }\n\n } else {\n this._remove()\n }\n }\n\n _addEventListeners() {\n if (!this._elements) {\n return false\n }\n\n this._elements.forEach(element => {\n element.addEventListener('click', event => {\n event.preventDefault()\n\n getObject(this._config, key => setCookie(key, this._config[key]))\n setCookie('panelActive', true)\n\n this._init()\n this._speech(`${this._i18n.v('panelOn')}`)\n })\n })\n\n }\n\n _addEventListenersPanel() {\n const elements = {\n fontSizeMinus: document.querySelector('.bvi-fontSize-minus'),\n fontSizePlus: document.querySelector('.bvi-fontSize-plus'),\n themeWhite: document.querySelector('.bvi-theme-white'),\n themeBlack: document.querySelector('.bvi-theme-black'),\n themeBlue: document.querySelector('.bvi-theme-blue'),\n themeBrown: document.querySelector('.bvi-theme-brown'),\n themeGreen: document.querySelector('.bvi-theme-green'),\n imagesOn: document.querySelector('.bvi-images-on'),\n imagesOff: document.querySelector('.bvi-images-off'),\n imagesGrayscale: document.querySelector('.bvi-images-grayscale'),\n speechOn: document.querySelector('.bvi-speech-on'),\n speechOff: document.querySelector('.bvi-speech-off'),\n lineHeightNormal: document.querySelector('.bvi-line-height-normal'),\n lineHeightAverage: document.querySelector('.bvi-line-height-average'),\n lineHeightBig: document.querySelector('.bvi-line-height-big'),\n letterSpacingNormal: document.querySelector('.bvi-letter-spacing-normal'),\n letterSpacingAverage: document.querySelector('.bvi-letter-spacing-average'),\n letterSpacingBig: document.querySelector('.bvi-letter-spacing-big'),\n fontFamilyArial: document.querySelector('.bvi-font-family-arial'),\n fontFamilyTimes: document.querySelector('.bvi-font-family-times'),\n builtElementsOn: document.querySelector('.bvi-built-elements-on'),\n builtElementsOff: document.querySelector('.bvi-built-elements-off'),\n reset: document.querySelector('.bvi-reset'),\n links: document.querySelectorAll('.bvi-link'),\n modal: document.querySelector('.bvi-modal')\n }\n\n const activeLink = element => {\n for (let sibling of element.parentNode.children) {\n sibling.classList.remove('active')\n }\n\n element.classList.add('active')\n }\n\n const click = (element, callback) => {\n element.addEventListener('click', event => {\n event.preventDefault()\n\n if (typeof callback === 'function') {\n callback(event)\n }\n })\n }\n\n const activeAll = () => {\n let links = document.querySelectorAll('.bvi-link')\n\n links.forEach(link => {\n link.classList.remove('active')\n })\n\n getObject(this._config, key => {\n if (key === 'theme') {\n let value = getCookie(key)\n document.querySelector(`.bvi-theme-${value}`).classList.add('active')\n }\n\n if (key === 'images') {\n let value = getCookie(key) === 'grayscale' ? 'grayscale' : stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-images-${value}`).classList.add('active')\n }\n\n if (key === 'speech') {\n let value = stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-speech-${value}`).classList.add('active')\n }\n\n if (key === 'lineHeight') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-line-height-${value}`).classList.add('active')\n }\n\n if (key === 'letterSpacing') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-letter-spacing-${value}`).classList.add('active')\n }\n\n if (key === 'fontFamily') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-font-family-${value}`).classList.add('active')\n }\n\n if (key === 'builtElements') {\n let value = stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-built-elements-${value}`).classList.add('active')\n }\n })\n }\n\n activeAll()\n\n // Font size\n click(elements.fontSizeMinus, () => {\n let size = parseFloat(getCookie('fontSize')) - 1\n\n if (size !== 0) {\n this._setAttrDataBviBody('fontSize', size)\n setCookie('fontSize', size)\n this._speech(`${this._i18n.v('fontSizeMinus')}`)\n activeLink(elements.fontSizeMinus)\n }\n })\n\n click(elements.fontSizePlus, () => {\n let size = parseFloat(getCookie('fontSize')) + 1\n\n if (size !== 40) {\n this._setAttrDataBviBody('fontSize', size)\n setCookie('fontSize', size)\n this._speech(`${this._i18n.v('fontSizePlus')}`)\n activeLink(elements.fontSizePlus)\n }\n })\n\n // Theme\n click(elements.themeWhite, () => {\n this._setAttrDataBviBody('theme', 'white')\n setCookie('theme', 'white')\n this._speech(`${this._i18n.v('siteColorBlackOnWhite')}`)\n activeLink(elements.themeWhite)\n })\n\n click(elements.themeBlack, () => {\n this._setAttrDataBviBody('theme', 'black')\n setCookie('theme', 'black')\n this._speech(`${this._i18n.v('siteColorWhiteOnBlack')}`)\n activeLink(elements.themeBlack)\n })\n\n click(elements.themeBlue, () => {\n this._setAttrDataBviBody('theme', 'blue')\n setCookie('theme', 'blue')\n this._speech(`${this._i18n.v('siteColorDarkBlueOnBlue')}`)\n activeLink(elements.themeBlue)\n })\n\n click(elements.themeBrown, () => {\n this._setAttrDataBviBody('theme', 'brown')\n setCookie('theme', 'brown')\n this._speech(`${this._i18n.v('siteColorBeigeBrown')}`)\n activeLink(elements.themeBrown)\n })\n\n click(elements.themeGreen, () => {\n this._setAttrDataBviBody('theme', 'green')\n setCookie('theme', 'green')\n this._speech(`${this._i18n.v('siteColorGreenOnDarkBrown')}`)\n activeLink(elements.themeGreen)\n })\n\n // Images\n click(elements.imagesOn, () => {\n this._setAttrDataBviBody('images', 'true')\n setCookie('images', 'true')\n this._speech(`${this._i18n.v('imagesOn')}`)\n activeLink(elements.imagesOn)\n })\n\n click(elements.imagesOff, () => {\n this._setAttrDataBviBody('images', 'false')\n setCookie('images', 'false')\n this._speech(`${this._i18n.v('imagesOFF')}`)\n activeLink(elements.imagesOff)\n })\n\n click(elements.imagesGrayscale, () => {\n this._setAttrDataBviBody('images', 'grayscale')\n setCookie('images', 'grayscale')\n this._speech(`${this._i18n.v('imagesGrayscale')}`)\n activeLink(elements.imagesGrayscale)\n })\n\n // Speech\n click(elements.speechOn, () => {\n this._setAttrDataBviBody('speech', 'true')\n setCookie('speech', 'true')\n this._speech(`${this._i18n.v('speechOn')}`)\n activeLink(elements.speechOn)\n this._speechPlayer()\n })\n\n click(elements.speechOff, () => {\n this._speech(`${this._i18n.v('speechOff')}`)\n this._setAttrDataBviBody('speech', 'false')\n setCookie('speech', 'false')\n activeLink(elements.speechOff)\n this._speechPlayer()\n })\n\n // Line height\n click(elements.lineHeightNormal, () => {\n this._setAttrDataBviBody('lineHeight', 'normal')\n setCookie('lineHeight', 'normal')\n this._speech(`${this._i18n.v('lineHeightNormal')}`)\n activeLink(elements.lineHeightNormal)\n })\n\n click(elements.lineHeightAverage, () => {\n this._setAttrDataBviBody('lineHeight', 'average')\n setCookie('lineHeight', 'average')\n this._speech(`${this._i18n.v('lineHeightAverage')}`)\n activeLink(elements.lineHeightAverage)\n })\n\n click(elements.lineHeightBig, () => {\n this._setAttrDataBviBody('lineHeight', 'big')\n setCookie('lineHeight', 'big')\n this._speech(`${this._i18n.v('lineHeightBig')}`)\n activeLink(elements.lineHeightBig)\n })\n\n // Letter spacing\n click(elements.letterSpacingNormal, () => {\n this._setAttrDataBviBody('letterSpacing', 'normal')\n setCookie('letterSpacing', 'normal')\n this._speech(`${this._i18n.v('LetterSpacingNormal')}`)\n activeLink(elements.letterSpacingNormal)\n })\n\n click(elements.letterSpacingAverage, () => {\n this._setAttrDataBviBody('letterSpacing', 'average')\n setCookie('letterSpacing', 'average')\n this._speech(`${this._i18n.v('LetterSpacingAverage')}`)\n activeLink(elements.letterSpacingAverage)\n })\n\n click(elements.letterSpacingBig, () => {\n this._setAttrDataBviBody('letterSpacing', 'big')\n setCookie('letterSpacing', 'big')\n this._speech(`${this._i18n.v('LetterSpacingBig')}`)\n activeLink(elements.letterSpacingBig)\n })\n\n // Font family\n click(elements.fontFamilyArial, () => {\n this._setAttrDataBviBody('fontFamily', 'arial')\n setCookie('fontFamily', 'arial')\n this._speech(`${this._i18n.v('fontArial')}`)\n activeLink(elements.fontFamilyArial)\n })\n\n click(elements.fontFamilyTimes, () => {\n this._setAttrDataBviBody('fontFamily', 'times')\n setCookie('fontFamily', 'times')\n this._speech(`${this._i18n.v('fontTimes')}`)\n activeLink(elements.fontFamilyTimes)\n })\n\n // Built elements\n click(elements.builtElementsOn, () => {\n this._setAttrDataBviBody('builtElements', 'true')\n setCookie('builtElements', 'true')\n this._speech(`${this._i18n.v('builtElementsOn')}`)\n activeLink(elements.builtElementsOn)\n })\n\n click(elements.builtElementsOff, () => {\n this._setAttrDataBviBody('builtElements', 'false')\n setCookie('builtElements', 'false')\n this._speech(`${this._i18n.v('builtElementsOFF')}`)\n activeLink(elements.builtElementsOff)\n })\n\n // Reset\n click(elements.reset, () => {\n this._speech(`${this._i18n.v('resetSettings')}`)\n getObject(this._config, key => {\n this._setAttrDataBviBody(key, this._config[key])\n setCookie(key, this._config[key])\n activeAll()\n })\n })\n\n getArray(elements.links, element => {\n click(element, event => {\n let target = event.target.getAttribute('data-bvi')\n\n if (target === 'close') {\n this._setAttrDataBviBody('panelActive', 'false')\n setCookie('panelActive', 'false')\n this._init()\n }\n\n if (target === 'modal') {\n document.body.style.overflow = 'hidden'\n document.body.classList.add('bvi-noscroll')\n elements.modal.classList.toggle('show')\n }\n\n if (target === 'modal-close') {\n document.body.classList.remove('bvi-noscroll')\n document.body.style.overflow = ''\n elements.modal.classList.remove('show')\n }\n\n if (target === 'panel-hide') {\n document.querySelector('.bvi-panel').classList.add('bvi-panel-hide')\n document.querySelector('.bvi-link-fixed-top').classList.remove('bvi-hide')\n document.querySelector('.bvi-link-fixed-top').classList.add('bvi-show')\n setCookie('panelHide', 'true')\n this._speech(`${this._i18n.v('panelHide')}`)\n }\n\n if (target === 'panel-show') {\n document.querySelector('.bvi-link-fixed-top').classList.remove('bvi-show')\n document.querySelector('.bvi-link-fixed-top').classList.add('bvi-hide')\n document.querySelector('.bvi-panel').classList.remove('bvi-panel-hide')\n setCookie('panelHide', 'false')\n this._speech(`${this._i18n.v('panelShow')}`)\n }\n })\n })\n\n click(elements.modal, event => {\n if (event.target.contains(elements.modal)) {\n document.body.classList.remove('bvi-noscroll')\n document.body.style.overflow = ''\n elements.modal.classList.remove('show')\n }\n })\n }\n\n _getPanel() {\n const scroll = () => {\n let scroll = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop\n\n if (stringToBoolean(getCookie('panelFixed'))) {\n if (scroll > 200) {\n document.querySelector('.bvi-panel').classList.add('bvi-fixed-top')\n } else {\n document.querySelector('.bvi-panel').classList.remove('bvi-fixed-top')\n }\n }\n }\n\n let panelHide = stringToBoolean(getCookie('panelHide')) ? ' bvi-panel-hide' : ''\n let linkHide = !stringToBoolean(getCookie('panelHide')) ? ' bvi-hide' : 'bvi-show'\n let html = `\n
\n
\n
\n
${this._i18n.t('fontSize')}
\n А-\n А+\n
\n
\n
${this._i18n.t('siteColors')}
\n Ц\n Ц\n Ц\n Ц\n Ц\n
\n
\n
${this._i18n.t('images')}
\n \n \n \n \n \n \n \n \n \n
\n
\n
${this._i18n.t('speech')}
\n \n \n \n \n \n \n
\n
\n
${this._i18n.t('settings')}
\n \n \n \n \n ${this._i18n.t('regularVersionOfTheSite')}\n \n \n \n \n
\n
\n
\n
\n
\n
\n
${this._i18n.t('settings')}
\n ×\n
\n
\n
\n \n \n
\n
${this._i18n.t('font')}
\n ${this._i18n.t('arial')}\n ${this._i18n.t('times')}\n
\n
\n
${this._i18n.t('builtElements')}
\n ${this._i18n.t('on')}\n ${this._i18n.t('off')}\n
\n
\n \n
\n \n
\n
\n
\n
`\n\n let link = `` +\n ''\n\n window.addEventListener('scroll', scroll)\n document.querySelector('.bvi-body').insertAdjacentHTML('beforebegin', html)\n document.querySelector('.bvi-body').insertAdjacentHTML('afterbegin', link)\n scroll()\n }\n\n _set() {\n document.body.classList.add('bvi-active')\n wrapInner(document.body, 'div', 'bvi-body')\n getObject(this._config, key => this._setAttrDataBviBody(key, getCookie(key)))\n getArray(this._elements, element => element.style.display = 'none')\n\n document.querySelectorAll('img')\n .forEach(element => {\n if (element.classList.contains('bvi-img')) {\n element.classList.remove('bvi-img')\n }\n })\n\n document.querySelectorAll('body *')\n .forEach(element => {\n if (element.classList.contains('bvi-background-image')) {\n element.classList.remove('bvi-background-image')\n }\n })\n }\n\n _remove() {\n let bviPanel = document.querySelector('.bvi-panel')\n let bviBody = document.querySelector('.bvi-body')\n let bviLinkFixedTop = document.querySelector('.bvi-link-fixed-top')\n\n if (bviPanel) {\n bviPanel.remove()\n }\n\n if (bviBody) {\n unwrap(bviBody)\n }\n\n if (bviLinkFixedTop) {\n bviLinkFixedTop.remove()\n }\n\n this._speech(`${this._i18n.v('panelOff')}`)\n\n document.body.classList.remove('bvi-active')\n\n getArray(this._elements, element => element.style.display = '')\n\n if (stringToBoolean(getCookie('reload'))) {\n document.location.reload()\n }\n\n getObject(this._config, key => {\n removeCookie(key)\n })\n\n this._speechPlayer()\n\n removeCookie('panelActive')\n }\n\n _images() {\n document.querySelectorAll('img').forEach(element => {\n if (!element.classList.contains('bvi-no-style')) {\n element.classList.add('bvi-img')\n }\n })\n\n document.querySelectorAll('.bvi-body *').forEach(element => {\n let style = getComputedStyle(element)\n if (style.backgroundImage !== 'none' && style.background !== 'none' && !element.classList.contains('bvi-no-style')) {\n element.classList.add('bvi-background-image')\n }\n })\n }\n\n _getConfig(config) {\n config = {...Default, ...config}\n let extended = {}\n\n for (let keyDefault in Default) {\n extended[keyDefault] = config[keyDefault]\n }\n\n checkConfig(extended, DefaultType, DefaultOptions)\n\n return extended\n }\n\n _setAttrDataBviBody(name = '', value = '') {\n document.querySelector('.bvi-body').setAttribute(`data-bvi-${name}`, value)\n }\n\n _speechPlayer() {\n let selectorSpeechText = document.querySelectorAll('.bvi-speech-text')\n let selectorSpeechLink = document.querySelectorAll('.bvi-speech-link')\n let selectorBviSpeech = document.querySelectorAll('.bvi-speech')\n\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n\n if (selectorBviSpeech) {\n if (selectorSpeechText) {\n selectorSpeechText.forEach(element => unwrap(element))\n }\n\n if (selectorSpeechLink) {\n selectorSpeechLink.forEach(element => element.remove())\n }\n\n selectorBviSpeech.forEach((speechDivBlock, index) => {\n let id = `bvi-speech-text-id-${index + 1}`\n let html = `\n
\n Воспроизвести\n Пауза\n Продолжить\n Стоп\n
`\n\n wrapInner(speechDivBlock, 'div', `bvi-speech-text ${id}`)\n speechDivBlock.insertAdjacentHTML('afterbegin', html)\n })\n\n let selectorPlay = document.querySelectorAll('.bvi-speech-play')\n let selectorPause = document.querySelectorAll('.bvi-speech-pause')\n let selectorResume = document.querySelectorAll('.bvi-speech-resume')\n let selectorStop = document.querySelectorAll('.bvi-speech-stop')\n const el = (elements, callback) => {\n elements.forEach(element => {\n element.addEventListener('click', event => {\n event.preventDefault()\n if (typeof callback === 'function') {\n return callback(element, event)\n }\n }, false)\n })\n }\n\n el(selectorPlay, (element, event) => {\n let target = event.target\n let text = target.parentNode.nextElementSibling;\n let closest = event.target.closest('.bvi-speech-link')\n let play = document.querySelectorAll('.bvi-speech-play')\n let pause = document.querySelectorAll('.bvi-speech-pause')\n let resume = document.querySelectorAll('.bvi-speech-resume')\n let stop = document.querySelectorAll('.bvi-speech-stop')\n\n this._speech(text.textContent, text, true);\n\n play.forEach(element => element.classList.remove('disabled'))\n pause.forEach(element => element.classList.add('disabled'))\n resume.forEach(element => element.classList.add('disabled'))\n stop.forEach(element => element.classList.add('disabled'))\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.remove('disabled')\n closest.querySelector('.bvi-speech-stop').classList.remove('disabled')\n })\n\n el(selectorPause, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-resume').classList.remove('disabled')\n synth().pause()\n })\n\n el(selectorResume, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.remove('disabled')\n synth().resume()\n })\n\n el(selectorStop, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.add('disabled')\n closest.querySelector('.bvi-speech-play').classList.remove('disabled')\n synth().cancel();\n })\n }\n } else {\n if (selectorSpeechText) {\n selectorSpeechText.forEach(element => unwrap(element))\n }\n\n if (selectorSpeechLink) {\n selectorSpeechLink.forEach(element => element.remove())\n }\n }\n }\n\n _speech(text, element, echo = false) {\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n synth().cancel()\n const getWordAt = (str, pos) => {\n str = String(str)\n pos = Number(pos) >>> 0\n\n let left = str.slice(0, pos + 1).search(/\\S+$/)\n let right = str.slice(pos).search(/\\s/)\n\n if (right < 0) {\n return str.slice(left)\n }\n return str.slice(left, right + pos)\n }\n\n let chunkLength = 120\n let patternRegex = new RegExp('^[\\\\s\\\\S]{' + Math.floor(chunkLength / 2) + ',' + chunkLength + '}[.!?,]{1}|^[\\\\s\\\\S]{1,' + chunkLength + '}$|^[\\\\s\\\\S]{1,' + chunkLength + '} ')\n let array = []\n let $text = text\n let voices = synth().getVoices()\n\n while ($text.length > 0) {\n array.push($text.match(patternRegex)[0])\n $text = $text.substring(array[array.length - 1].length)\n }\n\n array.forEach(getText => {\n let utter = new SpeechSynthesisUtterance(getText.trim())\n utter.volume = 1\n utter.rate = 1\n utter.pitch = 1\n utter.lang = this._config.lang\n\n for (let i = 0; i < voices.length; i++) {\n if (this._config.lang === 'ru-RU' && voices[i].name === 'Microsoft Pavel - Russian (Russia)') {\n utter.voice = voices[i]\n }\n\n if (this._config.lang === 'en-US' && voices[i].name === 'Microsoft Pavel - English (English)') {\n utter.voice = voices[i]\n }\n }\n\n if (echo) {\n utter.onboundary = event => {\n\n element.classList.add('bvi-highlighting')\n let world = getWordAt(event.utterance.text, event.charIndex)\n let textContent = element.textContent\n let term = world.replace(/(\\s+)/, '((<[^>]+>)*$1(<[^>]+>)*)')\n let pattern = new RegExp('(' + term + ')', 'gi')\n textContent = textContent.replace(pattern, '$1')\n textContent = textContent.replace(/([^<>]*)((<[^>]+>)+)([^<>]*<\\/mark>)/, '$1$2$4')\n element.innerHTML = textContent\n }\n\n utter.onend = event => {\n element.classList.remove('bvi-highlighting')\n let textContent = element.textContent\n textContent = textContent.replace(/($1<\\/mark>)/, '$1')\n element.innerHTML = textContent\n }\n }\n\n synth().speak(utter)\n })\n }\n }\n}\n\nexport default Bvi\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): index.umd.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\n/*import 'core-js/stable';*/\nimport 'regenerator-runtime/runtime'\nimport Bvi from './bvi'\n\nexport default { Bvi }\n"],"names":["runtime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","undefined","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","key","value","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","type","call","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","displayName","defineIteratorMethods","forEach","method","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","__await","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","async","Promise","iter","next","done","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","keys","object","reverse","length","pop","iterable","iteratorMethod","isNaN","i","skipTempReset","prev","charAt","slice","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","globalThis","Function","arr","item","prepend","argArr","Array","arguments","docFrag","document","createDocumentFragment","argItem","isNode","Node","appendChild","createTextNode","String","insertBefore","firstChild","Element","Document","DocumentFragment","window","NodeList","HTMLCollection","toType","toString","match","toLowerCase","isElement","nodeType","checkConfig","config","configTypes","configOptions","expectedTypes","valueType","RegExp","test","expectedOptions","stringToBoolean","string","wrapInner","parent","wrapper","className","createElement","unwrap","child","removeChild","parentNode","replaceChild","getObject","callback","getArray","array","from","synth","speechSynthesis","setCookie","now","Date","time","getTime","setTime","cookie","toUTCString","location","host","getCookie","decodedCookie","decodeURIComponent","cookies","split","trim","indexOf","substring","removeCookie","lang","I18n","options","_config","Default","target","fontSize","theme","images","letterSpacing","lineHeight","speech","fontFamily","builtElements","panelFixed","panelHide","reload","DefaultType","DefaultOptions","Bvi","_getConfig","_elements","querySelectorAll","_i18n","_addEventListeners","_init","console","log","_set","_getPanel","_addEventListenersPanel","_images","_speechPlayer","setInterval","pending","play","pause","resume","el","elements","element","classList","remove","add","_remove","addEventListener","event","preventDefault","_speech","v","fontSizeMinus","querySelector","fontSizePlus","themeWhite","themeBlack","themeBlue","themeBrown","themeGreen","imagesOn","imagesOff","imagesGrayscale","speechOn","speechOff","lineHeightNormal","lineHeightAverage","lineHeightBig","letterSpacingNormal","letterSpacingAverage","letterSpacingBig","fontFamilyArial","fontFamilyTimes","builtElementsOn","builtElementsOff","links","modal","activeLink","children","sibling","click","activeAll","link","size","parseFloat","_setAttrDataBviBody","getAttribute","body","style","overflow","toggle","contains","scroll","pageYOffset","documentElement","scrollTop","linkHide","html","t","insertAdjacentHTML","display","bviPanel","bviBody","bviLinkFixedTop","getComputedStyle","backgroundImage","background","extended","keyDefault","setAttribute","selectorSpeechText","selectorSpeechLink","selectorBviSpeech","speechDivBlock","index","id","selectorPlay","selectorPause","selectorResume","selectorStop","text","nextElementSibling","closest","textContent","cancel","echo","getWordAt","str","pos","Number","left","search","right","chunkLength","patternRegex","Math","floor","$text","voices","getVoices","getText","utter","SpeechSynthesisUtterance","volume","rate","pitch","voice","onboundary","world","utterance","charIndex","term","replace","pattern","innerHTML","onend","speak"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOA,MAAIA,OAAO,GAAI,UAAUC,OAAV,EAAmB;;EAGhC,QAAIC,EAAE,GAAGC,MAAM,CAACC,SAAhB;EACA,QAAIC,MAAM,GAAGH,EAAE,CAACI,cAAhB;EACA,QAAIC,WAAJ,CALgC;;EAMhC,QAAIC,OAAO,GAAG,OAAOC,MAAP,KAAkB,UAAlB,GAA+BA,MAA/B,GAAwC,EAAtD;EACA,QAAIC,cAAc,GAAGF,OAAO,CAACG,QAAR,IAAoB,YAAzC;EACA,QAAIC,mBAAmB,GAAGJ,OAAO,CAACK,aAAR,IAAyB,iBAAnD;EACA,QAAIC,iBAAiB,GAAGN,OAAO,CAACO,WAAR,IAAuB,eAA/C;;EAEA,aAASC,MAAT,CAAgBC,GAAhB,EAAqBC,GAArB,EAA0BC,KAA1B,EAAiC;EAC/BhB,MAAAA,MAAM,CAACiB,cAAP,CAAsBH,GAAtB,EAA2BC,GAA3B,EAAgC;EAC9BC,QAAAA,KAAK,EAAEA,KADuB;EAE9BE,QAAAA,UAAU,EAAE,IAFkB;EAG9BC,QAAAA,YAAY,EAAE,IAHgB;EAI9BC,QAAAA,QAAQ,EAAE;EAJoB,OAAhC;EAMA,aAAON,GAAG,CAACC,GAAD,CAAV;EACD;;EACD,QAAI;;EAEFF,MAAAA,MAAM,CAAC,EAAD,EAAK,EAAL,CAAN;EACD,KAHD,CAGE,OAAOQ,GAAP,EAAY;EACZR,MAAAA,MAAM,GAAG,gBAASC,GAAT,EAAcC,GAAd,EAAmBC,KAAnB,EAA0B;EACjC,eAAOF,GAAG,CAACC,GAAD,CAAH,GAAWC,KAAlB;EACD,OAFD;EAGD;;EAED,aAASM,IAAT,CAAcC,OAAd,EAAuBC,OAAvB,EAAgCC,IAAhC,EAAsCC,WAAtC,EAAmD;;EAEjD,UAAIC,cAAc,GAAGH,OAAO,IAAIA,OAAO,CAACvB,SAAR,YAA6B2B,SAAxC,GAAoDJ,OAApD,GAA8DI,SAAnF;EACA,UAAIC,SAAS,GAAG7B,MAAM,CAAC8B,MAAP,CAAcH,cAAc,CAAC1B,SAA7B,CAAhB;EACA,UAAI8B,OAAO,GAAG,IAAIC,OAAJ,CAAYN,WAAW,IAAI,EAA3B,CAAd,CAJiD;;;EAQjDG,MAAAA,SAAS,CAACI,OAAV,GAAoBC,gBAAgB,CAACX,OAAD,EAAUE,IAAV,EAAgBM,OAAhB,CAApC;EAEA,aAAOF,SAAP;EACD;;EACD/B,IAAAA,OAAO,CAACwB,IAAR,GAAeA,IAAf,CAzCgC;;;;;;;;;;;EAqDhC,aAASa,QAAT,CAAkBC,EAAlB,EAAsBtB,GAAtB,EAA2BuB,GAA3B,EAAgC;EAC9B,UAAI;EACF,eAAO;EAAEC,UAAAA,IAAI,EAAE,QAAR;EAAkBD,UAAAA,GAAG,EAAED,EAAE,CAACG,IAAH,CAAQzB,GAAR,EAAauB,GAAb;EAAvB,SAAP;EACD,OAFD,CAEE,OAAOhB,GAAP,EAAY;EACZ,eAAO;EAAEiB,UAAAA,IAAI,EAAE,OAAR;EAAiBD,UAAAA,GAAG,EAAEhB;EAAtB,SAAP;EACD;EACF;;EAED,QAAImB,sBAAsB,GAAG,gBAA7B;EACA,QAAIC,sBAAsB,GAAG,gBAA7B;EACA,QAAIC,iBAAiB,GAAG,WAAxB;EACA,QAAIC,iBAAiB,GAAG,WAAxB,CAhEgC;;;EAoEhC,QAAIC,gBAAgB,GAAG,EAAvB,CApEgC;;;;;EA0EhC,aAAShB,SAAT,GAAqB;;EACrB,aAASiB,iBAAT,GAA6B;;EAC7B,aAASC,0BAAT,GAAsC,EA5EN;;;;EAgFhC,QAAIC,iBAAiB,GAAG,EAAxB;EACAlC,IAAAA,MAAM,CAACkC,iBAAD,EAAoBxC,cAApB,EAAoC,YAAY;EACpD,aAAO,IAAP;EACD,KAFK,CAAN;EAIA,QAAIyC,QAAQ,GAAGhD,MAAM,CAACiD,cAAtB;EACA,QAAIC,uBAAuB,GAAGF,QAAQ,IAAIA,QAAQ,CAACA,QAAQ,CAACG,MAAM,CAAC,EAAD,CAAP,CAAT,CAAlD;;EACA,QAAID,uBAAuB,IACvBA,uBAAuB,KAAKnD,EAD5B,IAEAG,MAAM,CAACqC,IAAP,CAAYW,uBAAZ,EAAqC3C,cAArC,CAFJ,EAE0D;;;EAGxDwC,MAAAA,iBAAiB,GAAGG,uBAApB;EACD;;EAED,QAAIE,EAAE,GAAGN,0BAA0B,CAAC7C,SAA3B,GACP2B,SAAS,CAAC3B,SAAV,GAAsBD,MAAM,CAAC8B,MAAP,CAAciB,iBAAd,CADxB;EAEAF,IAAAA,iBAAiB,CAAC5C,SAAlB,GAA8B6C,0BAA9B;EACAjC,IAAAA,MAAM,CAACuC,EAAD,EAAK,aAAL,EAAoBN,0BAApB,CAAN;EACAjC,IAAAA,MAAM,CAACiC,0BAAD,EAA6B,aAA7B,EAA4CD,iBAA5C,CAAN;EACAA,IAAAA,iBAAiB,CAACQ,WAAlB,GAAgCxC,MAAM,CACpCiC,0BADoC,EAEpCnC,iBAFoC,EAGpC,mBAHoC,CAAtC,CApGgC;;;EA4GhC,aAAS2C,qBAAT,CAA+BrD,SAA/B,EAA0C;EACxC,OAAC,MAAD,EAAS,OAAT,EAAkB,QAAlB,EAA4BsD,OAA5B,CAAoC,UAASC,MAAT,EAAiB;EACnD3C,QAAAA,MAAM,CAACZ,SAAD,EAAYuD,MAAZ,EAAoB,UAASnB,GAAT,EAAc;EACtC,iBAAO,KAAKJ,OAAL,CAAauB,MAAb,EAAqBnB,GAArB,CAAP;EACD,SAFK,CAAN;EAGD,OAJD;EAKD;;EAEDvC,IAAAA,OAAO,CAAC2D,mBAAR,GAA8B,UAASC,MAAT,EAAiB;EAC7C,UAAIC,IAAI,GAAG,OAAOD,MAAP,KAAkB,UAAlB,IAAgCA,MAAM,CAACE,WAAlD;EACA,aAAOD,IAAI,GACPA,IAAI,KAAKd,iBAAT;;EAGA,OAACc,IAAI,CAACN,WAAL,IAAoBM,IAAI,CAACE,IAA1B,MAAoC,mBAJ7B,GAKP,KALJ;EAMD,KARD;;EAUA/D,IAAAA,OAAO,CAACgE,IAAR,GAAe,UAASJ,MAAT,EAAiB;EAC9B,UAAI1D,MAAM,CAAC+D,cAAX,EAA2B;EACzB/D,QAAAA,MAAM,CAAC+D,cAAP,CAAsBL,MAAtB,EAA8BZ,0BAA9B;EACD,OAFD,MAEO;EACLY,QAAAA,MAAM,CAACM,SAAP,GAAmBlB,0BAAnB;EACAjC,QAAAA,MAAM,CAAC6C,MAAD,EAAS/C,iBAAT,EAA4B,mBAA5B,CAAN;EACD;;EACD+C,MAAAA,MAAM,CAACzD,SAAP,GAAmBD,MAAM,CAAC8B,MAAP,CAAcsB,EAAd,CAAnB;EACA,aAAOM,MAAP;EACD,KATD,CA9HgC;;;;;;EA6IhC5D,IAAAA,OAAO,CAACmE,KAAR,GAAgB,UAAS5B,GAAT,EAAc;EAC5B,aAAO;EAAE6B,QAAAA,OAAO,EAAE7B;EAAX,OAAP;EACD,KAFD;;EAIA,aAAS8B,aAAT,CAAuBtC,SAAvB,EAAkCuC,WAAlC,EAA+C;EAC7C,eAASC,MAAT,CAAgBb,MAAhB,EAAwBnB,GAAxB,EAA6BiC,OAA7B,EAAsCC,MAAtC,EAA8C;EAC5C,YAAIC,MAAM,GAAGrC,QAAQ,CAACN,SAAS,CAAC2B,MAAD,CAAV,EAAoB3B,SAApB,EAA+BQ,GAA/B,CAArB;;EACA,YAAImC,MAAM,CAAClC,IAAP,KAAgB,OAApB,EAA6B;EAC3BiC,UAAAA,MAAM,CAACC,MAAM,CAACnC,GAAR,CAAN;EACD,SAFD,MAEO;EACL,cAAIoC,MAAM,GAAGD,MAAM,CAACnC,GAApB;EACA,cAAIrB,KAAK,GAAGyD,MAAM,CAACzD,KAAnB;;EACA,cAAIA,KAAK,IACL,QAAOA,KAAP,MAAiB,QADjB,IAEAd,MAAM,CAACqC,IAAP,CAAYvB,KAAZ,EAAmB,SAAnB,CAFJ,EAEmC;EACjC,mBAAOoD,WAAW,CAACE,OAAZ,CAAoBtD,KAAK,CAACkD,OAA1B,EAAmCQ,IAAnC,CAAwC,UAAS1D,KAAT,EAAgB;EAC7DqD,cAAAA,MAAM,CAAC,MAAD,EAASrD,KAAT,EAAgBsD,OAAhB,EAAyBC,MAAzB,CAAN;EACD,aAFM,EAEJ,UAASlD,GAAT,EAAc;EACfgD,cAAAA,MAAM,CAAC,OAAD,EAAUhD,GAAV,EAAeiD,OAAf,EAAwBC,MAAxB,CAAN;EACD,aAJM,CAAP;EAKD;;EAED,iBAAOH,WAAW,CAACE,OAAZ,CAAoBtD,KAApB,EAA2B0D,IAA3B,CAAgC,UAASC,SAAT,EAAoB;;;;EAIzDF,YAAAA,MAAM,CAACzD,KAAP,GAAe2D,SAAf;EACAL,YAAAA,OAAO,CAACG,MAAD,CAAP;EACD,WANM,EAMJ,UAASG,KAAT,EAAgB;;;EAGjB,mBAAOP,MAAM,CAAC,OAAD,EAAUO,KAAV,EAAiBN,OAAjB,EAA0BC,MAA1B,CAAb;EACD,WAVM,CAAP;EAWD;EACF;;EAED,UAAIM,eAAJ;;EAEA,eAASC,OAAT,CAAiBtB,MAAjB,EAAyBnB,GAAzB,EAA8B;EAC5B,iBAAS0C,0BAAT,GAAsC;EACpC,iBAAO,IAAIX,WAAJ,CAAgB,UAASE,OAAT,EAAkBC,MAAlB,EAA0B;EAC/CF,YAAAA,MAAM,CAACb,MAAD,EAASnB,GAAT,EAAciC,OAAd,EAAuBC,MAAvB,CAAN;EACD,WAFM,CAAP;EAGD;;EAED,eAAOM,eAAe;;;;;;;;;;;;EAapBA,QAAAA,eAAe,GAAGA,eAAe,CAACH,IAAhB,CAChBK,0BADgB;;EAIhBA,QAAAA,0BAJgB,CAAH,GAKXA,0BAA0B,EAlBhC;EAmBD,OA5D4C;;;;EAgE7C,WAAK9C,OAAL,GAAe6C,OAAf;EACD;;EAEDxB,IAAAA,qBAAqB,CAACa,aAAa,CAAClE,SAAf,CAArB;EACAY,IAAAA,MAAM,CAACsD,aAAa,CAAClE,SAAf,EAA0BQ,mBAA1B,EAA+C,YAAY;EAC/D,aAAO,IAAP;EACD,KAFK,CAAN;EAGAX,IAAAA,OAAO,CAACqE,aAAR,GAAwBA,aAAxB,CAxNgC;;;;EA6NhCrE,IAAAA,OAAO,CAACkF,KAAR,GAAgB,UAASzD,OAAT,EAAkBC,OAAlB,EAA2BC,IAA3B,EAAiCC,WAAjC,EAA8C0C,WAA9C,EAA2D;EACzE,UAAIA,WAAW,KAAK,KAAK,CAAzB,EAA4BA,WAAW,GAAGa,OAAd;EAE5B,UAAIC,IAAI,GAAG,IAAIf,aAAJ,CACT7C,IAAI,CAACC,OAAD,EAAUC,OAAV,EAAmBC,IAAnB,EAAyBC,WAAzB,CADK,EAET0C,WAFS,CAAX;EAKA,aAAOtE,OAAO,CAAC2D,mBAAR,CAA4BjC,OAA5B,IACH0D,IADG;EAAA,QAEHA,IAAI,CAACC,IAAL,GAAYT,IAAZ,CAAiB,UAASD,MAAT,EAAiB;EAChC,eAAOA,MAAM,CAACW,IAAP,GAAcX,MAAM,CAACzD,KAArB,GAA6BkE,IAAI,CAACC,IAAL,EAApC;EACD,OAFD,CAFJ;EAKD,KAbD;;EAeA,aAASjD,gBAAT,CAA0BX,OAA1B,EAAmCE,IAAnC,EAAyCM,OAAzC,EAAkD;EAChD,UAAIsD,KAAK,GAAG7C,sBAAZ;EAEA,aAAO,SAAS6B,MAAT,CAAgBb,MAAhB,EAAwBnB,GAAxB,EAA6B;EAClC,YAAIgD,KAAK,KAAK3C,iBAAd,EAAiC;EAC/B,gBAAM,IAAI4C,KAAJ,CAAU,8BAAV,CAAN;EACD;;EAED,YAAID,KAAK,KAAK1C,iBAAd,EAAiC;EAC/B,cAAIa,MAAM,KAAK,OAAf,EAAwB;EACtB,kBAAMnB,GAAN;EACD,WAH8B;;;;EAO/B,iBAAOkD,UAAU,EAAjB;EACD;;EAEDxD,QAAAA,OAAO,CAACyB,MAAR,GAAiBA,MAAjB;EACAzB,QAAAA,OAAO,CAACM,GAAR,GAAcA,GAAd;;EAEA,eAAO,IAAP,EAAa;EACX,cAAImD,QAAQ,GAAGzD,OAAO,CAACyD,QAAvB;;EACA,cAAIA,QAAJ,EAAc;EACZ,gBAAIC,cAAc,GAAGC,mBAAmB,CAACF,QAAD,EAAWzD,OAAX,CAAxC;;EACA,gBAAI0D,cAAJ,EAAoB;EAClB,kBAAIA,cAAc,KAAK7C,gBAAvB,EAAyC;EACzC,qBAAO6C,cAAP;EACD;EACF;;EAED,cAAI1D,OAAO,CAACyB,MAAR,KAAmB,MAAvB,EAA+B;;;EAG7BzB,YAAAA,OAAO,CAAC4D,IAAR,GAAe5D,OAAO,CAAC6D,KAAR,GAAgB7D,OAAO,CAACM,GAAvC;EAED,WALD,MAKO,IAAIN,OAAO,CAACyB,MAAR,KAAmB,OAAvB,EAAgC;EACrC,gBAAI6B,KAAK,KAAK7C,sBAAd,EAAsC;EACpC6C,cAAAA,KAAK,GAAG1C,iBAAR;EACA,oBAAMZ,OAAO,CAACM,GAAd;EACD;;EAEDN,YAAAA,OAAO,CAAC8D,iBAAR,CAA0B9D,OAAO,CAACM,GAAlC;EAED,WARM,MAQA,IAAIN,OAAO,CAACyB,MAAR,KAAmB,QAAvB,EAAiC;EACtCzB,YAAAA,OAAO,CAAC+D,MAAR,CAAe,QAAf,EAAyB/D,OAAO,CAACM,GAAjC;EACD;;EAEDgD,UAAAA,KAAK,GAAG3C,iBAAR;EAEA,cAAI8B,MAAM,GAAGrC,QAAQ,CAACZ,OAAD,EAAUE,IAAV,EAAgBM,OAAhB,CAArB;;EACA,cAAIyC,MAAM,CAAClC,IAAP,KAAgB,QAApB,EAA8B;;;EAG5B+C,YAAAA,KAAK,GAAGtD,OAAO,CAACqD,IAAR,GACJzC,iBADI,GAEJF,sBAFJ;;EAIA,gBAAI+B,MAAM,CAACnC,GAAP,KAAeO,gBAAnB,EAAqC;EACnC;EACD;;EAED,mBAAO;EACL5B,cAAAA,KAAK,EAAEwD,MAAM,CAACnC,GADT;EAEL+C,cAAAA,IAAI,EAAErD,OAAO,CAACqD;EAFT,aAAP;EAKD,WAhBD,MAgBO,IAAIZ,MAAM,CAAClC,IAAP,KAAgB,OAApB,EAA6B;EAClC+C,YAAAA,KAAK,GAAG1C,iBAAR,CADkC;;;EAIlCZ,YAAAA,OAAO,CAACyB,MAAR,GAAiB,OAAjB;EACAzB,YAAAA,OAAO,CAACM,GAAR,GAAcmC,MAAM,CAACnC,GAArB;EACD;EACF;EACF,OAxED;EAyED,KAxT+B;;;;;;EA8ThC,aAASqD,mBAAT,CAA6BF,QAA7B,EAAuCzD,OAAvC,EAAgD;EAC9C,UAAIyB,MAAM,GAAGgC,QAAQ,CAAChF,QAAT,CAAkBuB,OAAO,CAACyB,MAA1B,CAAb;;EACA,UAAIA,MAAM,KAAKpD,WAAf,EAA0B;;;EAGxB2B,QAAAA,OAAO,CAACyD,QAAR,GAAmB,IAAnB;;EAEA,YAAIzD,OAAO,CAACyB,MAAR,KAAmB,OAAvB,EAAgC;;EAE9B,cAAIgC,QAAQ,CAAChF,QAAT,CAAkB,QAAlB,CAAJ,EAAiC;;;EAG/BuB,YAAAA,OAAO,CAACyB,MAAR,GAAiB,QAAjB;EACAzB,YAAAA,OAAO,CAACM,GAAR,GAAcjC,WAAd;EACAsF,YAAAA,mBAAmB,CAACF,QAAD,EAAWzD,OAAX,CAAnB;;EAEA,gBAAIA,OAAO,CAACyB,MAAR,KAAmB,OAAvB,EAAgC;;;EAG9B,qBAAOZ,gBAAP;EACD;EACF;;EAEDb,UAAAA,OAAO,CAACyB,MAAR,GAAiB,OAAjB;EACAzB,UAAAA,OAAO,CAACM,GAAR,GAAc,IAAI0D,SAAJ,CACZ,gDADY,CAAd;EAED;;EAED,eAAOnD,gBAAP;EACD;;EAED,UAAI4B,MAAM,GAAGrC,QAAQ,CAACqB,MAAD,EAASgC,QAAQ,CAAChF,QAAlB,EAA4BuB,OAAO,CAACM,GAApC,CAArB;;EAEA,UAAImC,MAAM,CAAClC,IAAP,KAAgB,OAApB,EAA6B;EAC3BP,QAAAA,OAAO,CAACyB,MAAR,GAAiB,OAAjB;EACAzB,QAAAA,OAAO,CAACM,GAAR,GAAcmC,MAAM,CAACnC,GAArB;EACAN,QAAAA,OAAO,CAACyD,QAAR,GAAmB,IAAnB;EACA,eAAO5C,gBAAP;EACD;;EAED,UAAIoD,IAAI,GAAGxB,MAAM,CAACnC,GAAlB;;EAEA,UAAI,CAAE2D,IAAN,EAAY;EACVjE,QAAAA,OAAO,CAACyB,MAAR,GAAiB,OAAjB;EACAzB,QAAAA,OAAO,CAACM,GAAR,GAAc,IAAI0D,SAAJ,CAAc,kCAAd,CAAd;EACAhE,QAAAA,OAAO,CAACyD,QAAR,GAAmB,IAAnB;EACA,eAAO5C,gBAAP;EACD;;EAED,UAAIoD,IAAI,CAACZ,IAAT,EAAe;;;EAGbrD,QAAAA,OAAO,CAACyD,QAAQ,CAACS,UAAV,CAAP,GAA+BD,IAAI,CAAChF,KAApC,CAHa;;EAMbe,QAAAA,OAAO,CAACoD,IAAR,GAAeK,QAAQ,CAACU,OAAxB,CANa;;;;;;;EAcb,YAAInE,OAAO,CAACyB,MAAR,KAAmB,QAAvB,EAAiC;EAC/BzB,UAAAA,OAAO,CAACyB,MAAR,GAAiB,MAAjB;EACAzB,UAAAA,OAAO,CAACM,GAAR,GAAcjC,WAAd;EACD;EAEF,OAnBD,MAmBO;;EAEL,eAAO4F,IAAP;EACD,OAvE6C;;;;EA2E9CjE,MAAAA,OAAO,CAACyD,QAAR,GAAmB,IAAnB;EACA,aAAO5C,gBAAP;EACD,KA3Y+B;;;;EA+YhCU,IAAAA,qBAAqB,CAACF,EAAD,CAArB;EAEAvC,IAAAA,MAAM,CAACuC,EAAD,EAAKzC,iBAAL,EAAwB,WAAxB,CAAN,CAjZgC;;;;;;EAwZhCE,IAAAA,MAAM,CAACuC,EAAD,EAAK7C,cAAL,EAAqB,YAAW;EACpC,aAAO,IAAP;EACD,KAFK,CAAN;EAIAM,IAAAA,MAAM,CAACuC,EAAD,EAAK,UAAL,EAAiB,YAAW;EAChC,aAAO,oBAAP;EACD,KAFK,CAAN;;EAIA,aAAS+C,YAAT,CAAsBC,IAAtB,EAA4B;EAC1B,UAAIC,KAAK,GAAG;EAAEC,QAAAA,MAAM,EAAEF,IAAI,CAAC,CAAD;EAAd,OAAZ;;EAEA,UAAI,KAAKA,IAAT,EAAe;EACbC,QAAAA,KAAK,CAACE,QAAN,GAAiBH,IAAI,CAAC,CAAD,CAArB;EACD;;EAED,UAAI,KAAKA,IAAT,EAAe;EACbC,QAAAA,KAAK,CAACG,UAAN,GAAmBJ,IAAI,CAAC,CAAD,CAAvB;EACAC,QAAAA,KAAK,CAACI,QAAN,GAAiBL,IAAI,CAAC,CAAD,CAArB;EACD;;EAED,WAAKM,UAAL,CAAgBC,IAAhB,CAAqBN,KAArB;EACD;;EAED,aAASO,aAAT,CAAuBP,KAAvB,EAA8B;EAC5B,UAAI7B,MAAM,GAAG6B,KAAK,CAACQ,UAAN,IAAoB,EAAjC;EACArC,MAAAA,MAAM,CAAClC,IAAP,GAAc,QAAd;EACA,aAAOkC,MAAM,CAACnC,GAAd;EACAgE,MAAAA,KAAK,CAACQ,UAAN,GAAmBrC,MAAnB;EACD;;EAED,aAASxC,OAAT,CAAiBN,WAAjB,EAA8B;;;;EAI5B,WAAKgF,UAAL,GAAkB,CAAC;EAAEJ,QAAAA,MAAM,EAAE;EAAV,OAAD,CAAlB;EACA5E,MAAAA,WAAW,CAAC6B,OAAZ,CAAoB4C,YAApB,EAAkC,IAAlC;EACA,WAAKW,KAAL,CAAW,IAAX;EACD;;EAEDhH,IAAAA,OAAO,CAACiH,IAAR,GAAe,UAASC,MAAT,EAAiB;EAC9B,UAAID,IAAI,GAAG,EAAX;;EACA,WAAK,IAAIhG,GAAT,IAAgBiG,MAAhB,EAAwB;EACtBD,QAAAA,IAAI,CAACJ,IAAL,CAAU5F,GAAV;EACD;;EACDgG,MAAAA,IAAI,CAACE,OAAL,GAL8B;;;EAS9B,aAAO,SAAS9B,IAAT,GAAgB;EACrB,eAAO4B,IAAI,CAACG,MAAZ,EAAoB;EAClB,cAAInG,GAAG,GAAGgG,IAAI,CAACI,GAAL,EAAV;;EACA,cAAIpG,GAAG,IAAIiG,MAAX,EAAmB;EACjB7B,YAAAA,IAAI,CAACnE,KAAL,GAAaD,GAAb;EACAoE,YAAAA,IAAI,CAACC,IAAL,GAAY,KAAZ;EACA,mBAAOD,IAAP;EACD;EACF,SARoB;;;;;EAarBA,QAAAA,IAAI,CAACC,IAAL,GAAY,IAAZ;EACA,eAAOD,IAAP;EACD,OAfD;EAgBD,KAzBD;;EA2BA,aAAShC,MAAT,CAAgBiE,QAAhB,EAA0B;EACxB,UAAIA,QAAJ,EAAc;EACZ,YAAIC,cAAc,GAAGD,QAAQ,CAAC7G,cAAD,CAA7B;;EACA,YAAI8G,cAAJ,EAAoB;EAClB,iBAAOA,cAAc,CAAC9E,IAAf,CAAoB6E,QAApB,CAAP;EACD;;EAED,YAAI,OAAOA,QAAQ,CAACjC,IAAhB,KAAyB,UAA7B,EAAyC;EACvC,iBAAOiC,QAAP;EACD;;EAED,YAAI,CAACE,KAAK,CAACF,QAAQ,CAACF,MAAV,CAAV,EAA6B;EAC3B,cAAIK,CAAC,GAAG,CAAC,CAAT;EAAA,cAAYpC,IAAI,GAAG,SAASA,IAAT,GAAgB;EACjC,mBAAO,EAAEoC,CAAF,GAAMH,QAAQ,CAACF,MAAtB,EAA8B;EAC5B,kBAAIhH,MAAM,CAACqC,IAAP,CAAY6E,QAAZ,EAAsBG,CAAtB,CAAJ,EAA8B;EAC5BpC,gBAAAA,IAAI,CAACnE,KAAL,GAAaoG,QAAQ,CAACG,CAAD,CAArB;EACApC,gBAAAA,IAAI,CAACC,IAAL,GAAY,KAAZ;EACA,uBAAOD,IAAP;EACD;EACF;;EAEDA,YAAAA,IAAI,CAACnE,KAAL,GAAaZ,WAAb;EACA+E,YAAAA,IAAI,CAACC,IAAL,GAAY,IAAZ;EAEA,mBAAOD,IAAP;EACD,WAbD;;EAeA,iBAAOA,IAAI,CAACA,IAAL,GAAYA,IAAnB;EACD;EACF,OA7BuB;;;EAgCxB,aAAO;EAAEA,QAAAA,IAAI,EAAEI;EAAR,OAAP;EACD;;EACDzF,IAAAA,OAAO,CAACqD,MAAR,GAAiBA,MAAjB;;EAEA,aAASoC,UAAT,GAAsB;EACpB,aAAO;EAAEvE,QAAAA,KAAK,EAAEZ,WAAT;EAAoBgF,QAAAA,IAAI,EAAE;EAA1B,OAAP;EACD;;EAEDpD,IAAAA,OAAO,CAAC/B,SAAR,GAAoB;EAClB2D,MAAAA,WAAW,EAAE5B,OADK;EAGlB8E,MAAAA,KAAK,EAAE,eAASU,aAAT,EAAwB;EAC7B,aAAKC,IAAL,GAAY,CAAZ;EACA,aAAKtC,IAAL,GAAY,CAAZ,CAF6B;;;EAK7B,aAAKQ,IAAL,GAAY,KAAKC,KAAL,GAAaxF,WAAzB;EACA,aAAKgF,IAAL,GAAY,KAAZ;EACA,aAAKI,QAAL,GAAgB,IAAhB;EAEA,aAAKhC,MAAL,GAAc,MAAd;EACA,aAAKnB,GAAL,GAAWjC,WAAX;EAEA,aAAKsG,UAAL,CAAgBnD,OAAhB,CAAwBqD,aAAxB;;EAEA,YAAI,CAACY,aAAL,EAAoB;EAClB,eAAK,IAAI3D,IAAT,IAAiB,IAAjB,EAAuB;;EAErB,gBAAIA,IAAI,CAAC6D,MAAL,CAAY,CAAZ,MAAmB,GAAnB,IACAxH,MAAM,CAACqC,IAAP,CAAY,IAAZ,EAAkBsB,IAAlB,CADA,IAEA,CAACyD,KAAK,CAAC,CAACzD,IAAI,CAAC8D,KAAL,CAAW,CAAX,CAAF,CAFV,EAE4B;EAC1B,mBAAK9D,IAAL,IAAazD,WAAb;EACD;EACF;EACF;EACF,OA3BiB;EA6BlBwH,MAAAA,IAAI,EAAE,gBAAW;EACf,aAAKxC,IAAL,GAAY,IAAZ;EAEA,YAAIyC,SAAS,GAAG,KAAKnB,UAAL,CAAgB,CAAhB,CAAhB;EACA,YAAIoB,UAAU,GAAGD,SAAS,CAAChB,UAA3B;;EACA,YAAIiB,UAAU,CAACxF,IAAX,KAAoB,OAAxB,EAAiC;EAC/B,gBAAMwF,UAAU,CAACzF,GAAjB;EACD;;EAED,eAAO,KAAK0F,IAAZ;EACD,OAvCiB;EAyClBlC,MAAAA,iBAAiB,EAAE,2BAASmC,SAAT,EAAoB;EACrC,YAAI,KAAK5C,IAAT,EAAe;EACb,gBAAM4C,SAAN;EACD;;EAED,YAAIjG,OAAO,GAAG,IAAd;;EACA,iBAASkG,MAAT,CAAgBC,GAAhB,EAAqBC,MAArB,EAA6B;EAC3B3D,UAAAA,MAAM,CAAClC,IAAP,GAAc,OAAd;EACAkC,UAAAA,MAAM,CAACnC,GAAP,GAAa2F,SAAb;EACAjG,UAAAA,OAAO,CAACoD,IAAR,GAAe+C,GAAf;;EAEA,cAAIC,MAAJ,EAAY;;;EAGVpG,YAAAA,OAAO,CAACyB,MAAR,GAAiB,MAAjB;EACAzB,YAAAA,OAAO,CAACM,GAAR,GAAcjC,WAAd;EACD;;EAED,iBAAO,CAAC,CAAE+H,MAAV;EACD;;EAED,aAAK,IAAIZ,CAAC,GAAG,KAAKb,UAAL,CAAgBQ,MAAhB,GAAyB,CAAtC,EAAyCK,CAAC,IAAI,CAA9C,EAAiD,EAAEA,CAAnD,EAAsD;EACpD,cAAIlB,KAAK,GAAG,KAAKK,UAAL,CAAgBa,CAAhB,CAAZ;EACA,cAAI/C,MAAM,GAAG6B,KAAK,CAACQ,UAAnB;;EAEA,cAAIR,KAAK,CAACC,MAAN,KAAiB,MAArB,EAA6B;;;;EAI3B,mBAAO2B,MAAM,CAAC,KAAD,CAAb;EACD;;EAED,cAAI5B,KAAK,CAACC,MAAN,IAAgB,KAAKmB,IAAzB,EAA+B;EAC7B,gBAAIW,QAAQ,GAAGlI,MAAM,CAACqC,IAAP,CAAY8D,KAAZ,EAAmB,UAAnB,CAAf;EACA,gBAAIgC,UAAU,GAAGnI,MAAM,CAACqC,IAAP,CAAY8D,KAAZ,EAAmB,YAAnB,CAAjB;;EAEA,gBAAI+B,QAAQ,IAAIC,UAAhB,EAA4B;EAC1B,kBAAI,KAAKZ,IAAL,GAAYpB,KAAK,CAACE,QAAtB,EAAgC;EAC9B,uBAAO0B,MAAM,CAAC5B,KAAK,CAACE,QAAP,EAAiB,IAAjB,CAAb;EACD,eAFD,MAEO,IAAI,KAAKkB,IAAL,GAAYpB,KAAK,CAACG,UAAtB,EAAkC;EACvC,uBAAOyB,MAAM,CAAC5B,KAAK,CAACG,UAAP,CAAb;EACD;EAEF,aAPD,MAOO,IAAI4B,QAAJ,EAAc;EACnB,kBAAI,KAAKX,IAAL,GAAYpB,KAAK,CAACE,QAAtB,EAAgC;EAC9B,uBAAO0B,MAAM,CAAC5B,KAAK,CAACE,QAAP,EAAiB,IAAjB,CAAb;EACD;EAEF,aALM,MAKA,IAAI8B,UAAJ,EAAgB;EACrB,kBAAI,KAAKZ,IAAL,GAAYpB,KAAK,CAACG,UAAtB,EAAkC;EAChC,uBAAOyB,MAAM,CAAC5B,KAAK,CAACG,UAAP,CAAb;EACD;EAEF,aALM,MAKA;EACL,oBAAM,IAAIlB,KAAJ,CAAU,wCAAV,CAAN;EACD;EACF;EACF;EACF,OAnGiB;EAqGlBQ,MAAAA,MAAM,EAAE,gBAASxD,IAAT,EAAeD,GAAf,EAAoB;EAC1B,aAAK,IAAIkF,CAAC,GAAG,KAAKb,UAAL,CAAgBQ,MAAhB,GAAyB,CAAtC,EAAyCK,CAAC,IAAI,CAA9C,EAAiD,EAAEA,CAAnD,EAAsD;EACpD,cAAIlB,KAAK,GAAG,KAAKK,UAAL,CAAgBa,CAAhB,CAAZ;;EACA,cAAIlB,KAAK,CAACC,MAAN,IAAgB,KAAKmB,IAArB,IACAvH,MAAM,CAACqC,IAAP,CAAY8D,KAAZ,EAAmB,YAAnB,CADA,IAEA,KAAKoB,IAAL,GAAYpB,KAAK,CAACG,UAFtB,EAEkC;EAChC,gBAAI8B,YAAY,GAAGjC,KAAnB;EACA;EACD;EACF;;EAED,YAAIiC,YAAY,KACXhG,IAAI,KAAK,OAAT,IACAA,IAAI,KAAK,UAFE,CAAZ,IAGAgG,YAAY,CAAChC,MAAb,IAAuBjE,GAHvB,IAIAA,GAAG,IAAIiG,YAAY,CAAC9B,UAJxB,EAIoC;;;EAGlC8B,UAAAA,YAAY,GAAG,IAAf;EACD;;EAED,YAAI9D,MAAM,GAAG8D,YAAY,GAAGA,YAAY,CAACzB,UAAhB,GAA6B,EAAtD;EACArC,QAAAA,MAAM,CAAClC,IAAP,GAAcA,IAAd;EACAkC,QAAAA,MAAM,CAACnC,GAAP,GAAaA,GAAb;;EAEA,YAAIiG,YAAJ,EAAkB;EAChB,eAAK9E,MAAL,GAAc,MAAd;EACA,eAAK2B,IAAL,GAAYmD,YAAY,CAAC9B,UAAzB;EACA,iBAAO5D,gBAAP;EACD;;EAED,eAAO,KAAK2F,QAAL,CAAc/D,MAAd,CAAP;EACD,OArIiB;EAuIlB+D,MAAAA,QAAQ,EAAE,kBAAS/D,MAAT,EAAiBiC,QAAjB,EAA2B;EACnC,YAAIjC,MAAM,CAAClC,IAAP,KAAgB,OAApB,EAA6B;EAC3B,gBAAMkC,MAAM,CAACnC,GAAb;EACD;;EAED,YAAImC,MAAM,CAAClC,IAAP,KAAgB,OAAhB,IACAkC,MAAM,CAAClC,IAAP,KAAgB,UADpB,EACgC;EAC9B,eAAK6C,IAAL,GAAYX,MAAM,CAACnC,GAAnB;EACD,SAHD,MAGO,IAAImC,MAAM,CAAClC,IAAP,KAAgB,QAApB,EAA8B;EACnC,eAAKyF,IAAL,GAAY,KAAK1F,GAAL,GAAWmC,MAAM,CAACnC,GAA9B;EACA,eAAKmB,MAAL,GAAc,QAAd;EACA,eAAK2B,IAAL,GAAY,KAAZ;EACD,SAJM,MAIA,IAAIX,MAAM,CAAClC,IAAP,KAAgB,QAAhB,IAA4BmE,QAAhC,EAA0C;EAC/C,eAAKtB,IAAL,GAAYsB,QAAZ;EACD;;EAED,eAAO7D,gBAAP;EACD,OAxJiB;EA0JlB4F,MAAAA,MAAM,EAAE,gBAAShC,UAAT,EAAqB;EAC3B,aAAK,IAAIe,CAAC,GAAG,KAAKb,UAAL,CAAgBQ,MAAhB,GAAyB,CAAtC,EAAyCK,CAAC,IAAI,CAA9C,EAAiD,EAAEA,CAAnD,EAAsD;EACpD,cAAIlB,KAAK,GAAG,KAAKK,UAAL,CAAgBa,CAAhB,CAAZ;;EACA,cAAIlB,KAAK,CAACG,UAAN,KAAqBA,UAAzB,EAAqC;EACnC,iBAAK+B,QAAL,CAAclC,KAAK,CAACQ,UAApB,EAAgCR,KAAK,CAACI,QAAtC;EACAG,YAAAA,aAAa,CAACP,KAAD,CAAb;EACA,mBAAOzD,gBAAP;EACD;EACF;EACF,OAnKiB;EAqKlB,eAAS,gBAAS0D,MAAT,EAAiB;EACxB,aAAK,IAAIiB,CAAC,GAAG,KAAKb,UAAL,CAAgBQ,MAAhB,GAAyB,CAAtC,EAAyCK,CAAC,IAAI,CAA9C,EAAiD,EAAEA,CAAnD,EAAsD;EACpD,cAAIlB,KAAK,GAAG,KAAKK,UAAL,CAAgBa,CAAhB,CAAZ;;EACA,cAAIlB,KAAK,CAACC,MAAN,KAAiBA,MAArB,EAA6B;EAC3B,gBAAI9B,MAAM,GAAG6B,KAAK,CAACQ,UAAnB;;EACA,gBAAIrC,MAAM,CAAClC,IAAP,KAAgB,OAApB,EAA6B;EAC3B,kBAAImG,MAAM,GAAGjE,MAAM,CAACnC,GAApB;EACAuE,cAAAA,aAAa,CAACP,KAAD,CAAb;EACD;;EACD,mBAAOoC,MAAP;EACD;EACF,SAXuB;;;;EAexB,cAAM,IAAInD,KAAJ,CAAU,uBAAV,CAAN;EACD,OArLiB;EAuLlBoD,MAAAA,aAAa,EAAE,uBAAStB,QAAT,EAAmBnB,UAAnB,EAA+BC,OAA/B,EAAwC;EACrD,aAAKV,QAAL,GAAgB;EACdhF,UAAAA,QAAQ,EAAE2C,MAAM,CAACiE,QAAD,CADF;EAEdnB,UAAAA,UAAU,EAAEA,UAFE;EAGdC,UAAAA,OAAO,EAAEA;EAHK,SAAhB;;EAMA,YAAI,KAAK1C,MAAL,KAAgB,MAApB,EAA4B;;;EAG1B,eAAKnB,GAAL,GAAWjC,WAAX;EACD;;EAED,eAAOwC,gBAAP;EACD;EArMiB,KAApB,CAlgBgC;;;;;EA8sBhC,WAAO9C,OAAP;EAED,GAhtBc;;;;EAqtBb,EAA6B6I,MAAM,CAAC7I,OAApC,CArtBa,CAAf;;EAwtBA,MAAI;EACF8I,IAAAA,kBAAkB,GAAG/I,OAArB;EACD,GAFD,CAEE,OAAOgJ,oBAAP,EAA6B;;;;;;;;;;;EAW7B,QAAI,QAAOC,UAAP,yCAAOA,UAAP,OAAsB,QAA1B,EAAoC;EAClCA,MAAAA,UAAU,CAACF,kBAAX,GAAgC/I,OAAhC;EACD,KAFD,MAEO;EACLkJ,MAAAA,QAAQ,CAAC,GAAD,EAAM,wBAAN,CAAR,CAAwClJ,OAAxC;EACD;;;;EChvBH;EACA;EACA;EACA;EACA;EACA;EAEA,CAAC,UAAUmJ,GAAV,EAAe;EACdA,EAAAA,GAAG,CAACzF,OAAJ,CAAY,UAAU0F,IAAV,EAAgB;EAC1B,QAAIA,IAAI,CAAC9I,cAAL,CAAoB,SAApB,CAAJ,EAAoC;EAClC;EACD;;EACDH,IAAAA,MAAM,CAACiB,cAAP,CAAsBgI,IAAtB,EAA4B,SAA5B,EAAuC;EACrC9H,MAAAA,YAAY,EAAE,IADuB;EAErCD,MAAAA,UAAU,EAAE,IAFyB;EAGrCE,MAAAA,QAAQ,EAAE,IAH2B;EAIrCJ,MAAAA,KAAK,EAAE,SAASkI,OAAT,GAAoB;EACzB,YAAIC,MAAM,GAAGC,KAAK,CAACnJ,SAAN,CAAgB0H,KAAhB,CAAsBpF,IAAtB,CAA2B8G,SAA3B,CAAb;EAAA,YACEC,OAAO,GAAGC,QAAQ,CAACC,sBAAT,EADZ;EAGAL,QAAAA,MAAM,CAAC5F,OAAP,CAAe,UAAUkG,OAAV,EAAmB;EAChC,cAAIC,MAAM,GAAGD,OAAO,YAAYE,IAAhC;EACAL,UAAAA,OAAO,CAACM,WAAR,CAAoBF,MAAM,GAAGD,OAAH,GAAaF,QAAQ,CAACM,cAAT,CAAwBC,MAAM,CAACL,OAAD,CAA9B,CAAvC;EACD,SAHD;EAKA,aAAKM,YAAL,CAAkBT,OAAlB,EAA2B,KAAKU,UAAhC;EACD;EAdoC,KAAvC;EAgBD,GApBD;EAqBD,CAtBD,EAsBG,CAACC,OAAO,CAAChK,SAAT,EAAoBiK,QAAQ,CAACjK,SAA7B,EAAwCkK,gBAAgB,CAAClK,SAAzD,CAtBH;;EAwBA,IAAImK,MAAM,CAACC,QAAP,IAAmB,CAACA,QAAQ,CAACpK,SAAT,CAAmBsD,OAA3C,EAAoD;EAClD8G,EAAAA,QAAQ,CAACpK,SAAT,CAAmBsD,OAAnB,GAA6B6F,KAAK,CAACnJ,SAAN,CAAgBsD,OAA7C;EACD;;EAED,IAAI6G,MAAM,CAACE,cAAP,IAAyB,CAACA,cAAc,CAACrK,SAAf,CAAyBsD,OAAvD,EAAgE;EAC9D+G,EAAAA,cAAc,CAACrK,SAAf,CAAyBsD,OAAzB,GAAmC6F,KAAK,CAACnJ,SAAN,CAAgBsD,OAAnD;EACD;;EAED,IAAMgH,MAAM,GAAG,SAATA,MAAS,CAAAzJ,GAAG,EAAI;EACpB,MAAIA,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAKV,SAA5B,EAAuC;EACrC,qBAAUU,GAAV;EACD;;EAED,SAAO,GAAG0J,QAAH,CAAYjI,IAAZ,CAAiBzB,GAAjB,EAAsB2J,KAAtB,CAA4B,aAA5B,EAA2C,CAA3C,EAA8CC,WAA9C,EAAP;EACD,CAND;;EAQA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAAA7J,GAAG,EAAI;EACvB,MAAI,CAACA,GAAD,IAAQ,QAAOA,GAAP,MAAe,QAA3B,EAAqC;EACnC,WAAO,KAAP;EACD;;EAED,SAAO,OAAOA,GAAG,CAAC8J,QAAX,KAAwB,WAA/B;EACD,CAND;;EAQA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD,EAASC,WAAT,EAAsBC,aAAtB,EAAwC;EAC1DhL,EAAAA,MAAM,CAAC+G,IAAP,CAAYgE,WAAZ,EAAyBxH,OAAzB,CAAiC,UAAAxC,GAAG,EAAI;EACtC,QAAMkK,aAAa,GAAGF,WAAW,CAAChK,GAAD,CAAjC;EACA,QAAMC,KAAK,GAAG8J,MAAM,CAAC/J,GAAD,CAApB;EACA,QAAMmK,SAAS,GAAGlK,KAAK,IAAI2J,SAAS,CAAC3J,KAAD,CAAlB,GAA4B,SAA5B,GAAwCuJ,MAAM,CAACvJ,KAAD,CAAhE;;EAEA,QAAI,CAAC,IAAImK,MAAJ,CAAWF,aAAX,EAA0BG,IAA1B,CAA+BF,SAA/B,CAAL,EAAgD;EAC9C,YAAM,IAAInF,SAAJ,yDACmBhF,GADnB,gIACgDmK,SADhD,6FAC8ED,aAD9E,SAAN;EAGD;EACF,GAVD;EAYAjL,EAAAA,MAAM,CAAC+G,IAAP,CAAYiE,aAAZ,EAA2BzH,OAA3B,CAAmC,UAAAxC,GAAG,EAAI;EACxC,QAAMsK,eAAe,GAAGL,aAAa,CAACjK,GAAD,CAArC;EACA,QAAMC,KAAK,GAAG8J,MAAM,CAAC/J,GAAD,CAApB;;EAEA,QAAI,CAAC,IAAIoK,MAAJ,CAAWE,eAAX,EAA4BD,IAA5B,CAAiCpK,KAAjC,CAAL,EAA8C;EAC5C,YAAM,IAAI+E,SAAJ,yDACmBhF,GADnB,mEACqCC,KADrC,2HACoEqK,eADpE,SAAN;EAGD;EACF,GATD;EAUD,CAvBD;;EAmCA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,MAAM,EAAI;EAChC,UAAQA,MAAR;EACE,SAAK,IAAL;EACA,SAAK,MAAL;EACA,SAAK,GAAL;EACE,aAAO,IAAP;;EACF;EACE,aAAO,KAAP;EANJ;EAQD,CATD;;EAWA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,MAAD,EAASC,OAAT,EAAkBC,SAAlB,EAAgC;EAChD,MAAI,OAAOD,OAAP,KAAmB,QAAvB,EAAiC;EAC/BA,IAAAA,OAAO,GAAGnC,QAAQ,CAACqC,aAAT,CAAuBF,OAAvB,CAAV;EACD;;EAEDD,EAAAA,MAAM,CAAC7B,WAAP,CAAmB8B,OAAnB,EAA4BC,SAA5B,GAAwCA,SAAxC;;EAEA,SAAOF,MAAM,CAACzB,UAAP,KAAsB0B,OAA7B,EAAsC;EACpCA,IAAAA,OAAO,CAAC9B,WAAR,CAAoB6B,MAAM,CAACzB,UAA3B;EACD;EACF,CAVD;;EAYA,IAAM6B,MAAM,GAAG,SAATA,MAAS,CAAAH,OAAO,EAAI;EACxB,MAAIpC,OAAO,GAAGC,QAAQ,CAACC,sBAAT,EAAd;EAEA,MAAI,CAACkC,OAAL,EAAc;;EAEd,SAAOA,OAAO,CAAC1B,UAAf,EAA2B;EACzB,QAAI8B,KAAK,GAAGJ,OAAO,CAACK,WAAR,CAAoBL,OAAO,CAAC1B,UAA5B,CAAZ;EACAV,IAAAA,OAAO,CAACM,WAAR,CAAoBkC,KAApB;EACD;;EAEDJ,EAAAA,OAAO,CAACM,UAAR,CAAmBC,YAAnB,CAAgC3C,OAAhC,EAAyCoC,OAAzC;EACD,CAXD;;EAaA,IAAMQ,SAAS,GAAG,SAAZA,SAAY,CAAClF,MAAD,EAASmF,QAAT,EAAsB;EACtCnM,EAAAA,MAAM,CAAC+G,IAAP,CAAYC,MAAZ,EAAoBzD,OAApB,CAA4B,UAAAxC,GAAG,EAAI;EACjC,QAAI,OAAOoL,QAAP,KAAoB,UAAxB,EAAoC;EAClCA,MAAAA,QAAQ,CAACpL,GAAD,CAAR;EACD;EACF,GAJD;EAKD,CAND;;EAQA,IAAMqL,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAQF,QAAR,EAAqB;EACpC/C,EAAAA,KAAK,CAACkD,IAAN,CAAWD,KAAX,EAAkB9I,OAAlB,CAA0B,UAAAxC,GAAG,EAAI;EAC/B,QAAI,OAAOoL,QAAP,KAAoB,UAAxB,EAAoC;EAClCA,MAAAA,QAAQ,CAACpL,GAAD,CAAR;EACD;EACF,GAJD;EAKD,CAND;;EAoBA,IAAMwL,KAAK,GAAG,SAARA,KAAQ;EAAA,SAAMnC,MAAM,CAACoC,eAAb;EAAA,CAAd;;EC1JA;EACA;EACA;EACA;EACA;EACA;EAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,GAAiC;EAAA,MAAvB5I,IAAuB,uEAAhB,EAAgB;EAAA,MAAZ7C,KAAY,uEAAJ,EAAI;EACjD,MAAI0L,GAAG,GAAG,IAAIC,IAAJ,EAAV;EACA,MAAIC,IAAI,GAAGF,GAAG,CAACG,OAAJ,EAAX;EACAD,EAAAA,IAAI,IAAI,KAAK,EAAL,GAAU,EAAV,GAAe,IAAvB;EACAF,EAAAA,GAAG,CAACI,OAAJ,CAAYF,IAAZ;EACArD,EAAAA,QAAQ,CAACwD,MAAT,iBAAyBlJ,IAAzB,cAAiC7C,KAAjC,6BAAyD0L,GAAG,CAACM,WAAJ,EAAzD,qBAAqFC,QAAQ,CAACC,IAA9F;EACD,CAND;;EAQA,IAAMC,SAAS,GAAG,SAAZA,SAAY,GAAqB;EAAA,MAAXtJ,IAAW,uEAAJ,EAAI;EACrCA,EAAAA,IAAI,iBAAUA,IAAV,MAAJ;EACA,MAAIuJ,aAAa,GAAGC,kBAAkB,CAAC9D,QAAQ,CAACwD,MAAV,CAAtC;EACA,MAAIO,OAAO,GAAGF,aAAa,CAACG,KAAd,CAAoB,GAApB,CAAd;;EAEA,OAAK,IAAIhG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+F,OAAO,CAACpG,MAA5B,EAAoCK,CAAC,EAArC,EAAyC;EACvC,QAAIwF,MAAM,GAAGO,OAAO,CAAC/F,CAAD,CAAP,CAAWiG,IAAX,EAAb;;EAEA,QAAIT,MAAM,CAACU,OAAP,CAAe5J,IAAf,MAAyB,CAAC,CAA9B,EAAiC;EAC/B,aAAOkJ,MAAM,CAACW,SAAP,CAAiB7J,IAAI,CAACqD,MAAtB,EAA8B6F,MAAM,CAAC7F,MAArC,CAAP;EACD;EACF;EACF,CAZD;;EAcA,IAAMyG,YAAY,GAAG,SAAfA,YAAe,GAAqB;EAAA,MAAX9J,IAAW,uEAAJ,EAAI;EACxC0F,EAAAA,QAAQ,CAACwD,MAAT,iBAAyBlJ,IAAzB,mEAAsFoJ,QAAQ,CAACC,IAA/F;EACD,CAFD;;EC7BA;EACA;EACA;EACA;EACA;EACA;EAEA,IAAMU,IAAI,GAAG;EACX,WAAS;EACP,YAAQ;EACN,kBAAY,eADN;EAEN,oBAAc,aAFR;EAGN,gBAAU,aAHJ;EAIN,gBAAU,aAJJ;EAKN,kBAAY,WALN;EAMN,iCAA2B,sBANrB;EAON,uBAAiB,yBAPX;EAQN,gBAAU,aARJ;EASN,iBAAW,SATL;EAUN,aAAO,SAVD;EAWN,oBAAc,sBAXR;EAYN,cAAQ,OAZF;EAaN,eAAS,aAbH;EAcN,eAAS,aAdH;EAeN,uBAAiB,0CAfX;EAgBN,YAAM,UAhBA;EAiBN,aAAO,WAjBD;EAkBN,eAAS,oBAlBH;EAmBN,kBAAY,SAnBN;EAoBN,kBAAY,SApBN;EAqBN,kBAAY;EArBN,KADD;EAwBP,aAAS;EACP,sBAAgB,yBADT;EAEP,uBAAiB,yBAFV;EAGP,+BAAyB,6BAHlB;EAIP,+BAAyB,6BAJlB;EAKP,iCAA2B,oCALpB;EAMP,6BAAuB,qCANhB;EAOP,mCAA6B,yCAPtB;EAQP,kBAAY,sBARL;EASP,mBAAa,uBATN;EAUP,yBAAmB,yBAVZ;EAWP,kBAAY,qBAXL;EAYP,mBAAa,uBAZN;EAaP,0BAAoB,kCAbb;EAcP,2BAAqB,8BAdd;EAeP,uBAAiB,8BAfV;EAgBP,6BAAuB,oCAhBhB;EAiBP,8BAAwB,gCAjBjB;EAkBP,0BAAoB,gCAlBb;EAmBP,mBAAa,mBAnBN;EAoBP,mBAAa,mBApBN;EAqBP,yBAAmB,8BArBZ;EAsBP,0BAAoB,+BAtBb;EAuBP,uBAAiB,qCAvBV;EAwBP,mBAAa,gBAxBN;EAyBP,mBAAa,eAzBN;EA0BP,iBAAW,gCA1BJ;EA2BP,kBAAY;EA3BL;EAxBF,GADE;EAuDX,WAAS;EACP,YAAQ;EACN,kBAAY,WADN;EAEN,oBAAc,aAFR;EAGN,gBAAU,QAHJ;EAIN,gBAAU,kBAJJ;EAKN,kBAAY,UALN;EAMN,iCAA2B,6BANrB;EAON,uBAAiB,gBAPX;EAQN,gBAAU,QARJ;EASN,iBAAW,gBATL;EAUN,aAAO,QAVD;EAWN,oBAAc,cAXR;EAYN,cAAO,MAZD;EAaN,eAAS,oBAbH;EAcN,eAAS,yBAdH;EAeN,uBAAiB,8CAfX;EAgBN,YAAM,QAhBA;EAiBN,aAAO,UAjBD;EAkBN,eAAS,gBAlBH;EAmBN,kBAAY,OAnBN;EAoBN,kBAAY,QApBN;EAqBN,kBAAY;EArBN,KADD;EAwBP,aAAS;EACP,sBAAgB,qBADT;EAEP,uBAAiB,mBAFV;EAGP,+BAAyB,2BAHlB;EAIP,+BAAyB,2BAJlB;EAKP,iCAA2B,8BALpB;EAMP,6BAAuB,qBANhB;EAOP,mCAA6B,gCAPtB;EAQP,kBAAY,eARL;EASP,mBAAa,iBATN;EAUP,yBAAmB,mBAVZ;EAWP,kBAAY,yBAXL;EAYP,mBAAa,2BAZN;EAaP,0BAAoB,qBAbb;EAcP,2BAAqB,6BAdd;EAeP,uBAAiB,qBAfV;EAgBP,6BAAuB,uBAhBhB;EAiBP,8BAAwB,+BAjBjB;EAkBP,0BAAoB,8BAlBb;EAmBP,mBAAa,oBAnBN;EAoBP,mBAAa,yBApBN;EAqBP,yBAAmB,qCArBZ;EAsBP,0BAAoB,sCAtBb;EAuBP,uBAAiB,gCAvBV;EAwBP,mBAAa,YAxBN;EAyBP,mBAAa,YAzBN;EA0BP,iBAAW,oCA1BJ;EA2BP,kBAAY;EA3BL;EAxBF;EAvDE,CAAb;;MA+GMC;EACJ,gBAAYC,OAAZ,EAAqB;EAAA;;EACnB,SAAKC,OAAL,GAAeD,OAAf;EACD;;;;aAED,WAAE/M,GAAF,EAAO;EACL,aAAO6M,IAAI,CAAC,KAAKG,OAAL,CAAaH,IAAd,CAAJ,CAAwB,MAAxB,EAAgC7M,GAAhC,CAAP;EACD;;;aAED,WAAEA,GAAF,EAAO;EACL,aAAO6M,IAAI,CAAC,KAAKG,OAAL,CAAaH,IAAd,CAAJ,CAAwB,OAAxB,EAAiC7M,GAAjC,CAAP;EACD;;;;;;ECzGH;EACA;EACA;EACA;EACA;;EAEA,IAAMiN,OAAO,GAAG;EACdC,EAAAA,MAAM,EAAE,WADM;EAEdC,EAAAA,QAAQ,EAAE,EAFI;EAGdC,EAAAA,KAAK,EAAE,OAHO;EAIdC,EAAAA,MAAM,EAAE,WAJM;EAKdC,EAAAA,aAAa,EAAE,QALD;EAMdC,EAAAA,UAAU,EAAE,QANE;EAOdC,EAAAA,MAAM,EAAE,IAPM;EAQdC,EAAAA,UAAU,EAAE,OARE;EASdC,EAAAA,aAAa,EAAE,KATD;EAUdC,EAAAA,UAAU,EAAE,IAVE;EAWdC,EAAAA,SAAS,EAAE,KAXG;EAYdC,EAAAA,MAAM,EAAE,KAZM;EAadhB,EAAAA,IAAI,EAAE;EAbQ,CAAhB;EAgBA,IAAMiB,WAAW,GAAG;EAClBZ,EAAAA,MAAM,EAAE,QADU;EAElBC,EAAAA,QAAQ,EAAE,QAFQ;EAGlBC,EAAAA,KAAK,EAAE,QAHW;EAIlBC,EAAAA,MAAM,EAAE,kBAJU;EAKlBC,EAAAA,aAAa,EAAE,QALG;EAMlBC,EAAAA,UAAU,EAAE,QANM;EAOlBC,EAAAA,MAAM,EAAE,SAPU;EAQlBC,EAAAA,UAAU,EAAE,QARM;EASlBC,EAAAA,aAAa,EAAE,SATG;EAUlBC,EAAAA,UAAU,EAAE,SAVM;EAWlBC,EAAAA,SAAS,EAAE,SAXO;EAYlBC,EAAAA,MAAM,EAAE,SAZU;EAalBhB,EAAAA,IAAI,EAAE;EAbY,CAApB;EAgBA,IAAMkB,cAAc,GAAG;EACrBb,EAAAA,MAAM,EAAE,EADa;EAErBC,EAAAA,QAAQ,EAAE,8BAFW;EAGrBC,EAAAA,KAAK,EAAE,gCAHc;EAIrBC,EAAAA,MAAM,EAAE,wBAJa;EAKrBC,EAAAA,aAAa,EAAE,sBALM;EAMrBC,EAAAA,UAAU,EAAE,sBANS;EAOrBC,EAAAA,MAAM,EAAE,cAPa;EAQrBC,EAAAA,UAAU,EAAE,eARS;EASrBC,EAAAA,aAAa,EAAE,cATM;EAUrBC,EAAAA,UAAU,EAAE,cAVS;EAWrBC,EAAAA,SAAS,EAAE,cAXU;EAYrBC,EAAAA,MAAM,EAAE,cAZa;EAarBhB,EAAAA,IAAI,EAAE;EAbe,CAAvB;EAgBA;EACA;EACA;EACA;EACA;;MACMmB;EACJ,eAAYjB,OAAZ,EAAqB;EAAA;;EACnB,SAAKC,OAAL,GAAe,KAAKiB,UAAL,CAAgBlB,OAAhB,CAAf;EACA,SAAKmB,SAAL,GAAiB1F,QAAQ,CAAC2F,gBAAT,CAA0B,KAAKnB,OAAL,CAAaE,MAAvC,CAAjB;EACA,SAAKkB,KAAL,GAAa,IAAItB,IAAJ,CAAS;EACpBD,MAAAA,IAAI,EAAE,KAAKG,OAAL,CAAaH;EADC,KAAT,CAAb;;EAIA,SAAKwB,kBAAL;;EACA,SAAKC,KAAL;;EAEAC,IAAAA,OAAO,CAACC,GAAR,CAAY,oDAAZ;EACD;;;;;aAID,iBAAQ;EACNrD,MAAAA,SAAS,CAAC,KAAK6B,OAAN,EAAe,UAAAhN,GAAG,EAAI;EAC7B,YAAI,OAAOoM,SAAS,CAACpM,GAAD,CAAhB,KAA0B,WAA9B,EAA2C;EACzC4M,UAAAA,YAAY,CAAC,aAAD,CAAZ;EACD;EACF,OAJQ,CAAT;;EAMA,UAAIrC,eAAe,CAAC6B,SAAS,CAAC,aAAD,CAAV,CAAnB,EAA+C;EAC7C,aAAKqC,IAAL;;EACA,aAAKC,SAAL;;EACA,aAAKC,uBAAL;;EACA,aAAKC,OAAL;;EACA,aAAKC,aAAL;;EAEA,YAAI,qBAAqBxF,MAArB,IAA+BkB,eAAe,CAAC6B,SAAS,CAAC,QAAD,CAAV,CAAlD,EAAyE;EAEvE0C,UAAAA,WAAW,CAAC,YAAM;EAChB,gBAAItD,KAAK,GAAGuD,OAAR,KAAoB,KAAxB,EAA+B;EAC7B,kBAAIC,IAAI,GAAGxG,QAAQ,CAAC2F,gBAAT,CAA0B,kBAA1B,CAAX;EACA,kBAAIc,KAAK,GAAGzG,QAAQ,CAAC2F,gBAAT,CAA0B,mBAA1B,CAAZ;EACA,kBAAIe,MAAM,GAAG1G,QAAQ,CAAC2F,gBAAT,CAA0B,oBAA1B,CAAb;EACA,kBAAItH,IAAI,GAAG2B,QAAQ,CAAC2F,gBAAT,CAA0B,kBAA1B,CAAX;;EACA,kBAAMgB,EAAE,GAAG,SAALA,EAAK,CAACC,QAAD,EAAWhE,QAAX,EAAwB;EACjCgE,gBAAAA,QAAQ,CAAC5M,OAAT,CAAiB,UAAA6M,OAAO,EAAI;EAC1B,yBAAOjE,QAAQ,CAACiE,OAAD,CAAf;EACD,iBAFD;EAGD,eAJD;;EAMAF,cAAAA,EAAE,CAACH,IAAD,EAAO,UAAAK,OAAO;EAAA,uBAAIA,OAAO,CAACC,SAAR,CAAkBC,MAAlB,CAAyB,UAAzB,CAAJ;EAAA,eAAd,CAAF;EACAJ,cAAAA,EAAE,CAACF,KAAD,EAAQ,UAAAI,OAAO;EAAA,uBAAIA,OAAO,CAACC,SAAR,CAAkBE,GAAlB,CAAsB,UAAtB,CAAJ;EAAA,eAAf,CAAF;EACAL,cAAAA,EAAE,CAACD,MAAD,EAAS,UAAAG,OAAO;EAAA,uBAAIA,OAAO,CAACC,SAAR,CAAkBE,GAAlB,CAAsB,UAAtB,CAAJ;EAAA,eAAhB,CAAF;EACAL,cAAAA,EAAE,CAACtI,IAAD,EAAO,UAAAwI,OAAO;EAAA,uBAAIA,OAAO,CAACC,SAAR,CAAkBE,GAAlB,CAAsB,UAAtB,CAAJ;EAAA,eAAd,CAAF;EACD;EACF,WAjBU,EAiBR,IAjBQ,CAAX;EAkBD;EAEF,OA7BD,MA6BO;EACL,aAAKC,OAAL;EACD;EACF;;;aAED,8BAAqB;EAAA;;EACnB,UAAI,CAAC,KAAKvB,SAAV,EAAqB;EACnB,eAAO,KAAP;EACD;;EAED,WAAKA,SAAL,CAAe1L,OAAf,CAAuB,UAAA6M,OAAO,EAAI;EAChCA,QAAAA,OAAO,CAACK,gBAAR,CAAyB,OAAzB,EAAkC,UAAAC,KAAK,EAAI;EACzCA,UAAAA,KAAK,CAACC,cAAN;EAEAzE,UAAAA,SAAS,CAAC,KAAI,CAAC6B,OAAN,EAAe,UAAAhN,GAAG;EAAA,mBAAI0L,SAAS,CAAC1L,GAAD,EAAM,KAAI,CAACgN,OAAL,CAAahN,GAAb,CAAN,CAAb;EAAA,WAAlB,CAAT;EACA0L,UAAAA,SAAS,CAAC,aAAD,EAAgB,IAAhB,CAAT;;EAEA,UAAA,KAAI,CAAC4C,KAAL;;EACA,UAAA,KAAI,CAACuB,OAAL,WAAgB,KAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,SAAb,CAAhB;EACD,SARD;EASD,OAVD;EAYD;;;aAED,mCAA0B;EAAA;;EACxB,UAAMV,QAAQ,GAAG;EACfW,QAAAA,aAAa,EAAEvH,QAAQ,CAACwH,aAAT,CAAuB,qBAAvB,CADA;EAEfC,QAAAA,YAAY,EAAEzH,QAAQ,CAACwH,aAAT,CAAuB,oBAAvB,CAFC;EAGfE,QAAAA,UAAU,EAAE1H,QAAQ,CAACwH,aAAT,CAAuB,kBAAvB,CAHG;EAIfG,QAAAA,UAAU,EAAE3H,QAAQ,CAACwH,aAAT,CAAuB,kBAAvB,CAJG;EAKfI,QAAAA,SAAS,EAAE5H,QAAQ,CAACwH,aAAT,CAAuB,iBAAvB,CALI;EAMfK,QAAAA,UAAU,EAAE7H,QAAQ,CAACwH,aAAT,CAAuB,kBAAvB,CANG;EAOfM,QAAAA,UAAU,EAAE9H,QAAQ,CAACwH,aAAT,CAAuB,kBAAvB,CAPG;EAQfO,QAAAA,QAAQ,EAAE/H,QAAQ,CAACwH,aAAT,CAAuB,gBAAvB,CARK;EASfQ,QAAAA,SAAS,EAAEhI,QAAQ,CAACwH,aAAT,CAAuB,iBAAvB,CATI;EAUfS,QAAAA,eAAe,EAAEjI,QAAQ,CAACwH,aAAT,CAAuB,uBAAvB,CAVF;EAWfU,QAAAA,QAAQ,EAAElI,QAAQ,CAACwH,aAAT,CAAuB,gBAAvB,CAXK;EAYfW,QAAAA,SAAS,EAAEnI,QAAQ,CAACwH,aAAT,CAAuB,iBAAvB,CAZI;EAafY,QAAAA,gBAAgB,EAAEpI,QAAQ,CAACwH,aAAT,CAAuB,yBAAvB,CAbH;EAcfa,QAAAA,iBAAiB,EAAErI,QAAQ,CAACwH,aAAT,CAAuB,0BAAvB,CAdJ;EAefc,QAAAA,aAAa,EAAEtI,QAAQ,CAACwH,aAAT,CAAuB,sBAAvB,CAfA;EAgBfe,QAAAA,mBAAmB,EAAEvI,QAAQ,CAACwH,aAAT,CAAuB,4BAAvB,CAhBN;EAiBfgB,QAAAA,oBAAoB,EAAExI,QAAQ,CAACwH,aAAT,CAAuB,6BAAvB,CAjBP;EAkBfiB,QAAAA,gBAAgB,EAAEzI,QAAQ,CAACwH,aAAT,CAAuB,yBAAvB,CAlBH;EAmBfkB,QAAAA,eAAe,EAAE1I,QAAQ,CAACwH,aAAT,CAAuB,wBAAvB,CAnBF;EAoBfmB,QAAAA,eAAe,EAAE3I,QAAQ,CAACwH,aAAT,CAAuB,wBAAvB,CApBF;EAqBfoB,QAAAA,eAAe,EAAE5I,QAAQ,CAACwH,aAAT,CAAuB,wBAAvB,CArBF;EAsBfqB,QAAAA,gBAAgB,EAAE7I,QAAQ,CAACwH,aAAT,CAAuB,yBAAvB,CAtBH;EAuBfjK,QAAAA,KAAK,EAAEyC,QAAQ,CAACwH,aAAT,CAAuB,YAAvB,CAvBQ;EAwBfsB,QAAAA,KAAK,EAAE9I,QAAQ,CAAC2F,gBAAT,CAA0B,WAA1B,CAxBQ;EAyBfoD,QAAAA,KAAK,EAAE/I,QAAQ,CAACwH,aAAT,CAAuB,YAAvB;EAzBQ,OAAjB;;EA4BA,UAAMwB,UAAU,GAAG,SAAbA,UAAa,CAAAnC,OAAO,EAAI;EAAA,mDACRA,OAAO,CAACpE,UAAR,CAAmBwG,QADX;EAAA;;EAAA;EAC5B,8DAAiD;EAAA,gBAAxCC,OAAwC;EAC/CA,YAAAA,OAAO,CAACpC,SAAR,CAAkBC,MAAlB,CAAyB,QAAzB;EACD;EAH2B;EAAA;EAAA;EAAA;EAAA;;EAK5BF,QAAAA,OAAO,CAACC,SAAR,CAAkBE,GAAlB,CAAsB,QAAtB;EACD,OAND;;EAQA,UAAMmC,KAAK,GAAG,SAARA,KAAQ,CAACtC,OAAD,EAAUjE,QAAV,EAAuB;EACnCiE,QAAAA,OAAO,CAACK,gBAAR,CAAyB,OAAzB,EAAkC,UAAAC,KAAK,EAAI;EACzCA,UAAAA,KAAK,CAACC,cAAN;;EAEA,cAAI,OAAOxE,QAAP,KAAoB,UAAxB,EAAoC;EAClCA,YAAAA,QAAQ,CAACuE,KAAD,CAAR;EACD;EACF,SAND;EAOD,OARD;;EAUA,UAAMiC,SAAS,GAAG,SAAZA,SAAY,GAAM;EACtB,YAAIN,KAAK,GAAG9I,QAAQ,CAAC2F,gBAAT,CAA0B,WAA1B,CAAZ;EAEAmD,QAAAA,KAAK,CAAC9O,OAAN,CAAc,UAAAqP,IAAI,EAAI;EACpBA,UAAAA,IAAI,CAACvC,SAAL,CAAeC,MAAf,CAAsB,QAAtB;EACD,SAFD;EAIApE,QAAAA,SAAS,CAAC,MAAI,CAAC6B,OAAN,EAAe,UAAAhN,GAAG,EAAI;EAC7B,cAAIA,GAAG,KAAK,OAAZ,EAAqB;EACnB,gBAAIC,KAAK,GAAGmM,SAAS,CAACpM,GAAD,CAArB;EACAwI,YAAAA,QAAQ,CAACwH,aAAT,sBAAqC/P,KAArC,GAA8CqP,SAA9C,CAAwDE,GAAxD,CAA4D,QAA5D;EACD;;EAED,cAAIxP,GAAG,KAAK,QAAZ,EAAsB;EACpB,gBAAIC,MAAK,GAAGmM,SAAS,CAACpM,GAAD,CAAT,KAAmB,WAAnB,GAAiC,WAAjC,GAA+CuK,eAAe,CAAC6B,SAAS,CAACpM,GAAD,CAAV,CAAf,GAAkC,IAAlC,GAAyC,KAApG;;EAEAwI,YAAAA,QAAQ,CAACwH,aAAT,uBAAsC/P,MAAtC,GAA+CqP,SAA/C,CAAyDE,GAAzD,CAA6D,QAA7D;EACD;;EAED,cAAIxP,GAAG,KAAK,QAAZ,EAAsB;EACpB,gBAAIC,OAAK,GAAGsK,eAAe,CAAC6B,SAAS,CAACpM,GAAD,CAAV,CAAf,GAAkC,IAAlC,GAAyC,KAArD;;EAEAwI,YAAAA,QAAQ,CAACwH,aAAT,uBAAsC/P,OAAtC,GAA+CqP,SAA/C,CAAyDE,GAAzD,CAA6D,QAA7D;EACD;;EAED,cAAIxP,GAAG,KAAK,YAAZ,EAA0B;EACxB,gBAAIC,OAAK,GAAGmM,SAAS,CAACpM,GAAD,CAArB;;EAEAwI,YAAAA,QAAQ,CAACwH,aAAT,4BAA2C/P,OAA3C,GAAoDqP,SAApD,CAA8DE,GAA9D,CAAkE,QAAlE;EACD;;EAED,cAAIxP,GAAG,KAAK,eAAZ,EAA6B;EAC3B,gBAAIC,OAAK,GAAGmM,SAAS,CAACpM,GAAD,CAArB;;EAEAwI,YAAAA,QAAQ,CAACwH,aAAT,+BAA8C/P,OAA9C,GAAuDqP,SAAvD,CAAiEE,GAAjE,CAAqE,QAArE;EACD;;EAED,cAAIxP,GAAG,KAAK,YAAZ,EAA0B;EACxB,gBAAIC,OAAK,GAAGmM,SAAS,CAACpM,GAAD,CAArB;;EAEAwI,YAAAA,QAAQ,CAACwH,aAAT,4BAA2C/P,OAA3C,GAAoDqP,SAApD,CAA8DE,GAA9D,CAAkE,QAAlE;EACD;;EAED,cAAIxP,GAAG,KAAK,eAAZ,EAA6B;EAC3B,gBAAIC,OAAK,GAAGsK,eAAe,CAAC6B,SAAS,CAACpM,GAAD,CAAV,CAAf,GAAkC,IAAlC,GAAyC,KAArD;;EAEAwI,YAAAA,QAAQ,CAACwH,aAAT,+BAA8C/P,OAA9C,GAAuDqP,SAAvD,CAAiEE,GAAjE,CAAqE,QAArE;EACD;EACF,SAzCQ,CAAT;EA0CD,OAjDD;;EAmDAoC,MAAAA,SAAS,GAlGe;;EAqGxBD,MAAAA,KAAK,CAACvC,QAAQ,CAACW,aAAV,EAAyB,YAAM;EAClC,YAAI+B,IAAI,GAAGC,UAAU,CAAC3F,SAAS,CAAC,UAAD,CAAV,CAAV,GAAoC,CAA/C;;EAEA,YAAI0F,IAAI,KAAK,CAAb,EAAgB;EACd,UAAA,MAAI,CAACE,mBAAL,CAAyB,UAAzB,EAAqCF,IAArC;;EACApG,UAAAA,SAAS,CAAC,UAAD,EAAaoG,IAAb,CAAT;;EACA,UAAA,MAAI,CAACjC,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,eAAb,CAAhB;;EACA0B,UAAAA,UAAU,CAACpC,QAAQ,CAACW,aAAV,CAAV;EACD;EACF,OATI,CAAL;EAWA4B,MAAAA,KAAK,CAACvC,QAAQ,CAACa,YAAV,EAAwB,YAAM;EACjC,YAAI6B,IAAI,GAAGC,UAAU,CAAC3F,SAAS,CAAC,UAAD,CAAV,CAAV,GAAoC,CAA/C;;EAEA,YAAI0F,IAAI,KAAK,EAAb,EAAiB;EACf,UAAA,MAAI,CAACE,mBAAL,CAAyB,UAAzB,EAAqCF,IAArC;;EACApG,UAAAA,SAAS,CAAC,UAAD,EAAaoG,IAAb,CAAT;;EACA,UAAA,MAAI,CAACjC,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,cAAb,CAAhB;;EACA0B,UAAAA,UAAU,CAACpC,QAAQ,CAACa,YAAV,CAAV;EACD;EACF,OATI,CAAL,CAhHwB;;EA4HxB0B,MAAAA,KAAK,CAACvC,QAAQ,CAACc,UAAV,EAAsB,YAAM;EAC/B,QAAA,MAAI,CAAC8B,mBAAL,CAAyB,OAAzB,EAAkC,OAAlC;;EACAtG,QAAAA,SAAS,CAAC,OAAD,EAAU,OAAV,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,uBAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAACc,UAAV,CAAV;EACD,OALI,CAAL;EAOAyB,MAAAA,KAAK,CAACvC,QAAQ,CAACe,UAAV,EAAsB,YAAM;EAC/B,QAAA,MAAI,CAAC6B,mBAAL,CAAyB,OAAzB,EAAkC,OAAlC;;EACAtG,QAAAA,SAAS,CAAC,OAAD,EAAU,OAAV,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,uBAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAACe,UAAV,CAAV;EACD,OALI,CAAL;EAOAwB,MAAAA,KAAK,CAACvC,QAAQ,CAACgB,SAAV,EAAqB,YAAM;EAC9B,QAAA,MAAI,CAAC4B,mBAAL,CAAyB,OAAzB,EAAkC,MAAlC;;EACAtG,QAAAA,SAAS,CAAC,OAAD,EAAU,MAAV,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,yBAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAACgB,SAAV,CAAV;EACD,OALI,CAAL;EAOAuB,MAAAA,KAAK,CAACvC,QAAQ,CAACiB,UAAV,EAAsB,YAAM;EAC/B,QAAA,MAAI,CAAC2B,mBAAL,CAAyB,OAAzB,EAAkC,OAAlC;;EACAtG,QAAAA,SAAS,CAAC,OAAD,EAAU,OAAV,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,qBAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAACiB,UAAV,CAAV;EACD,OALI,CAAL;EAOAsB,MAAAA,KAAK,CAACvC,QAAQ,CAACkB,UAAV,EAAsB,YAAM;EAC/B,QAAA,MAAI,CAAC0B,mBAAL,CAAyB,OAAzB,EAAkC,OAAlC;;EACAtG,QAAAA,SAAS,CAAC,OAAD,EAAU,OAAV,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,2BAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAACkB,UAAV,CAAV;EACD,OALI,CAAL,CAxJwB;;EAgKxBqB,MAAAA,KAAK,CAACvC,QAAQ,CAACmB,QAAV,EAAoB,YAAM;EAC7B,QAAA,MAAI,CAACyB,mBAAL,CAAyB,QAAzB,EAAmC,MAAnC;;EACAtG,QAAAA,SAAS,CAAC,QAAD,EAAW,MAAX,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,UAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAACmB,QAAV,CAAV;EACD,OALI,CAAL;EAOAoB,MAAAA,KAAK,CAACvC,QAAQ,CAACoB,SAAV,EAAqB,YAAM;EAC9B,QAAA,MAAI,CAACwB,mBAAL,CAAyB,QAAzB,EAAmC,OAAnC;;EACAtG,QAAAA,SAAS,CAAC,QAAD,EAAW,OAAX,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,WAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAACoB,SAAV,CAAV;EACD,OALI,CAAL;EAOAmB,MAAAA,KAAK,CAACvC,QAAQ,CAACqB,eAAV,EAA2B,YAAM;EACpC,QAAA,MAAI,CAACuB,mBAAL,CAAyB,QAAzB,EAAmC,WAAnC;;EACAtG,QAAAA,SAAS,CAAC,QAAD,EAAW,WAAX,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,iBAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAACqB,eAAV,CAAV;EACD,OALI,CAAL,CA9KwB;;EAsLxBkB,MAAAA,KAAK,CAACvC,QAAQ,CAACsB,QAAV,EAAoB,YAAM;EAC7B,QAAA,MAAI,CAACsB,mBAAL,CAAyB,QAAzB,EAAmC,MAAnC;;EACAtG,QAAAA,SAAS,CAAC,QAAD,EAAW,MAAX,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,UAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAACsB,QAAV,CAAV;;EACA,QAAA,MAAI,CAAC7B,aAAL;EACD,OANI,CAAL;EAQA8C,MAAAA,KAAK,CAACvC,QAAQ,CAACuB,SAAV,EAAqB,YAAM;EAC9B,QAAA,MAAI,CAACd,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,WAAb,CAAhB;;EACA,QAAA,MAAI,CAACkC,mBAAL,CAAyB,QAAzB,EAAmC,OAAnC;;EACAtG,QAAAA,SAAS,CAAC,QAAD,EAAW,OAAX,CAAT;EACA8F,QAAAA,UAAU,CAACpC,QAAQ,CAACuB,SAAV,CAAV;;EACA,QAAA,MAAI,CAAC9B,aAAL;EACD,OANI,CAAL,CA9LwB;;EAuMxB8C,MAAAA,KAAK,CAACvC,QAAQ,CAACwB,gBAAV,EAA4B,YAAM;EACrC,QAAA,MAAI,CAACoB,mBAAL,CAAyB,YAAzB,EAAuC,QAAvC;;EACAtG,QAAAA,SAAS,CAAC,YAAD,EAAe,QAAf,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,kBAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAACwB,gBAAV,CAAV;EACD,OALI,CAAL;EAOAe,MAAAA,KAAK,CAACvC,QAAQ,CAACyB,iBAAV,EAA6B,YAAM;EACtC,QAAA,MAAI,CAACmB,mBAAL,CAAyB,YAAzB,EAAuC,SAAvC;;EACAtG,QAAAA,SAAS,CAAC,YAAD,EAAe,SAAf,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,mBAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAACyB,iBAAV,CAAV;EACD,OALI,CAAL;EAOAc,MAAAA,KAAK,CAACvC,QAAQ,CAAC0B,aAAV,EAAyB,YAAM;EAClC,QAAA,MAAI,CAACkB,mBAAL,CAAyB,YAAzB,EAAuC,KAAvC;;EACAtG,QAAAA,SAAS,CAAC,YAAD,EAAe,KAAf,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,eAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAAC0B,aAAV,CAAV;EACD,OALI,CAAL,CArNwB;;EA6NxBa,MAAAA,KAAK,CAACvC,QAAQ,CAAC2B,mBAAV,EAA+B,YAAM;EACxC,QAAA,MAAI,CAACiB,mBAAL,CAAyB,eAAzB,EAA0C,QAA1C;;EACAtG,QAAAA,SAAS,CAAC,eAAD,EAAkB,QAAlB,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,qBAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAAC2B,mBAAV,CAAV;EACD,OALI,CAAL;EAOAY,MAAAA,KAAK,CAACvC,QAAQ,CAAC4B,oBAAV,EAAgC,YAAM;EACzC,QAAA,MAAI,CAACgB,mBAAL,CAAyB,eAAzB,EAA0C,SAA1C;;EACAtG,QAAAA,SAAS,CAAC,eAAD,EAAkB,SAAlB,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,sBAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAAC4B,oBAAV,CAAV;EACD,OALI,CAAL;EAOAW,MAAAA,KAAK,CAACvC,QAAQ,CAAC6B,gBAAV,EAA4B,YAAM;EACrC,QAAA,MAAI,CAACe,mBAAL,CAAyB,eAAzB,EAA0C,KAA1C;;EACAtG,QAAAA,SAAS,CAAC,eAAD,EAAkB,KAAlB,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,kBAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAAC6B,gBAAV,CAAV;EACD,OALI,CAAL,CA3OwB;;EAmPxBU,MAAAA,KAAK,CAACvC,QAAQ,CAAC8B,eAAV,EAA2B,YAAM;EACpC,QAAA,MAAI,CAACc,mBAAL,CAAyB,YAAzB,EAAuC,OAAvC;;EACAtG,QAAAA,SAAS,CAAC,YAAD,EAAe,OAAf,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,WAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAAC8B,eAAV,CAAV;EACD,OALI,CAAL;EAOAS,MAAAA,KAAK,CAACvC,QAAQ,CAAC+B,eAAV,EAA2B,YAAM;EACpC,QAAA,MAAI,CAACa,mBAAL,CAAyB,YAAzB,EAAuC,OAAvC;;EACAtG,QAAAA,SAAS,CAAC,YAAD,EAAe,OAAf,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,WAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAAC+B,eAAV,CAAV;EACD,OALI,CAAL,CA1PwB;;EAkQxBQ,MAAAA,KAAK,CAACvC,QAAQ,CAACgC,eAAV,EAA2B,YAAM;EACpC,QAAA,MAAI,CAACY,mBAAL,CAAyB,eAAzB,EAA0C,MAA1C;;EACAtG,QAAAA,SAAS,CAAC,eAAD,EAAkB,MAAlB,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,iBAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAACgC,eAAV,CAAV;EACD,OALI,CAAL;EAOAO,MAAAA,KAAK,CAACvC,QAAQ,CAACiC,gBAAV,EAA4B,YAAM;EACrC,QAAA,MAAI,CAACW,mBAAL,CAAyB,eAAzB,EAA0C,OAA1C;;EACAtG,QAAAA,SAAS,CAAC,eAAD,EAAkB,OAAlB,CAAT;;EACA,QAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,kBAAb,CAAhB;;EACA0B,QAAAA,UAAU,CAACpC,QAAQ,CAACiC,gBAAV,CAAV;EACD,OALI,CAAL,CAzQwB;;EAiRxBM,MAAAA,KAAK,CAACvC,QAAQ,CAACrJ,KAAV,EAAiB,YAAM;EAC1B,QAAA,MAAI,CAAC8J,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,eAAb,CAAhB;;EACA3E,QAAAA,SAAS,CAAC,MAAI,CAAC6B,OAAN,EAAe,UAAAhN,GAAG,EAAI;EAC7B,UAAA,MAAI,CAACgS,mBAAL,CAAyBhS,GAAzB,EAA8B,MAAI,CAACgN,OAAL,CAAahN,GAAb,CAA9B;;EACA0L,UAAAA,SAAS,CAAC1L,GAAD,EAAM,MAAI,CAACgN,OAAL,CAAahN,GAAb,CAAN,CAAT;EACA4R,UAAAA,SAAS;EACV,SAJQ,CAAT;EAKD,OAPI,CAAL;EASAvG,MAAAA,QAAQ,CAAC+D,QAAQ,CAACkC,KAAV,EAAiB,UAAAjC,OAAO,EAAI;EAClCsC,QAAAA,KAAK,CAACtC,OAAD,EAAU,UAAAM,KAAK,EAAI;EACtB,cAAIzC,MAAM,GAAGyC,KAAK,CAACzC,MAAN,CAAa+E,YAAb,CAA0B,UAA1B,CAAb;;EAEA,cAAI/E,MAAM,KAAK,OAAf,EAAwB;EACtB,YAAA,MAAI,CAAC8E,mBAAL,CAAyB,aAAzB,EAAwC,OAAxC;;EACAtG,YAAAA,SAAS,CAAC,aAAD,EAAgB,OAAhB,CAAT;;EACA,YAAA,MAAI,CAAC4C,KAAL;EACD;;EAED,cAAIpB,MAAM,KAAK,OAAf,EAAwB;EACtB1E,YAAAA,QAAQ,CAAC0J,IAAT,CAAcC,KAAd,CAAoBC,QAApB,GAA+B,QAA/B;EACA5J,YAAAA,QAAQ,CAAC0J,IAAT,CAAc5C,SAAd,CAAwBE,GAAxB,CAA4B,cAA5B;EACAJ,YAAAA,QAAQ,CAACmC,KAAT,CAAejC,SAAf,CAAyB+C,MAAzB,CAAgC,MAAhC;EACD;;EAED,cAAInF,MAAM,KAAK,aAAf,EAA8B;EAC5B1E,YAAAA,QAAQ,CAAC0J,IAAT,CAAc5C,SAAd,CAAwBC,MAAxB,CAA+B,cAA/B;EACA/G,YAAAA,QAAQ,CAAC0J,IAAT,CAAcC,KAAd,CAAoBC,QAApB,GAA+B,EAA/B;EACAhD,YAAAA,QAAQ,CAACmC,KAAT,CAAejC,SAAf,CAAyBC,MAAzB,CAAgC,MAAhC;EACD;;EAED,cAAIrC,MAAM,KAAK,YAAf,EAA6B;EAC3B1E,YAAAA,QAAQ,CAACwH,aAAT,CAAuB,YAAvB,EAAqCV,SAArC,CAA+CE,GAA/C,CAAmD,gBAAnD;EACAhH,YAAAA,QAAQ,CAACwH,aAAT,CAAuB,qBAAvB,EAA8CV,SAA9C,CAAwDC,MAAxD,CAA+D,UAA/D;EACA/G,YAAAA,QAAQ,CAACwH,aAAT,CAAuB,qBAAvB,EAA8CV,SAA9C,CAAwDE,GAAxD,CAA4D,UAA5D;EACA9D,YAAAA,SAAS,CAAC,WAAD,EAAc,MAAd,CAAT;;EACA,YAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,WAAb,CAAhB;EACD;;EAED,cAAI5C,MAAM,KAAK,YAAf,EAA6B;EAC3B1E,YAAAA,QAAQ,CAACwH,aAAT,CAAuB,qBAAvB,EAA8CV,SAA9C,CAAwDC,MAAxD,CAA+D,UAA/D;EACA/G,YAAAA,QAAQ,CAACwH,aAAT,CAAuB,qBAAvB,EAA8CV,SAA9C,CAAwDE,GAAxD,CAA4D,UAA5D;EACAhH,YAAAA,QAAQ,CAACwH,aAAT,CAAuB,YAAvB,EAAqCV,SAArC,CAA+CC,MAA/C,CAAsD,gBAAtD;EACA7D,YAAAA,SAAS,CAAC,WAAD,EAAc,OAAd,CAAT;;EACA,YAAA,MAAI,CAACmE,OAAL,WAAgB,MAAI,CAACzB,KAAL,CAAW0B,CAAX,CAAa,WAAb,CAAhB;EACD;EACF,SApCI,CAAL;EAqCD,OAtCO,CAAR;EAwCA6B,MAAAA,KAAK,CAACvC,QAAQ,CAACmC,KAAV,EAAiB,UAAA5B,KAAK,EAAI;EAC7B,YAAIA,KAAK,CAACzC,MAAN,CAAaoF,QAAb,CAAsBlD,QAAQ,CAACmC,KAA/B,CAAJ,EAA2C;EACzC/I,UAAAA,QAAQ,CAAC0J,IAAT,CAAc5C,SAAd,CAAwBC,MAAxB,CAA+B,cAA/B;EACA/G,UAAAA,QAAQ,CAAC0J,IAAT,CAAcC,KAAd,CAAoBC,QAApB,GAA+B,EAA/B;EACAhD,UAAAA,QAAQ,CAACmC,KAAT,CAAejC,SAAf,CAAyBC,MAAzB,CAAgC,MAAhC;EACD;EACF,OANI,CAAL;EAOD;;;aAED,qBAAY;EACV,UAAMgD,MAAM,GAAG,kBAAM;EACnB,YAAIA,MAAM,GAAIlJ,MAAM,CAACmJ,WAAP,KAAuBnT,SAAxB,GAAqCgK,MAAM,CAACmJ,WAA5C,GAA0D,CAAChK,QAAQ,CAACiK,eAAT,IAA4BjK,QAAQ,CAAC0J,IAAT,CAAcjH,UAA1C,IAAwDzC,QAAQ,CAAC0J,IAAlE,EAAwEQ,SAA/I;;EAEA,YAAInI,eAAe,CAAC6B,SAAS,CAAC,YAAD,CAAV,CAAnB,EAA8C;EAC5C,cAAImG,MAAM,GAAG,GAAb,EAAkB;EAChB/J,YAAAA,QAAQ,CAACwH,aAAT,CAAuB,YAAvB,EAAqCV,SAArC,CAA+CE,GAA/C,CAAmD,eAAnD;EACD,WAFD,MAEO;EACLhH,YAAAA,QAAQ,CAACwH,aAAT,CAAuB,YAAvB,EAAqCV,SAArC,CAA+CC,MAA/C,CAAsD,eAAtD;EACD;EACF;EACF,OAVD;;EAYA,UAAI3B,SAAS,GAAGrD,eAAe,CAAC6B,SAAS,CAAC,WAAD,CAAV,CAAf,GAA0C,iBAA1C,GAA8D,EAA9E;EACA,UAAIuG,QAAQ,GAAG,CAACpI,eAAe,CAAC6B,SAAS,CAAC,WAAD,CAAV,CAAhB,GAA2C,WAA3C,GAAyD,UAAxE;EACA,UAAIwG,IAAI,wCACehF,SADf,4JAImC,KAAKQ,KAAL,CAAWyE,CAAX,CAAa,UAAb,CAJnC,0QASmC,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,YAAb,CATnC,+fAiBmC,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,QAAb,CAjBnC,6lBA6BmC,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,QAAb,CA7BnC,6bAsCmC,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,UAAb,CAtCnC,4QA2CU,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,yBAAb,CA3CV,8dAsD2C,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,UAAb,CAtD3C,4YA4DmD,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,eAAb,CA5DnD,gHA6D6E,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,QAAb,CA7D7E,+GA8D8E,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,SAAb,CA9D9E,2GA+D0E,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,KAAb,CA/D1E,6KAkEmD,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,YAAb,CAlEnD,6GAmE0E,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,QAAb,CAnE1E,4GAoE2E,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,SAAb,CApE3E,wGAqEuE,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,KAAb,CArEvE,6KAwEmD,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,MAAb,CAxEnD,4GAyEyE,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,OAAb,CAzEzE,0GA0EyE,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,OAAb,CA1EzE,6KA6EmD,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,eAAb,CA7EnD,4GA8EyE,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,IAAb,CA9EzE,2GA+E0E,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,KAAb,CA/E1E,0cAuFqD,KAAKzE,KAAL,CAAWyE,CAAX,CAAa,OAAb,CAvFrD,6GAAR;EA8FA,UAAIhB,IAAI,GAAG,0EAAgEc,QAAhE,mCACT,gFADF;EAGAtJ,MAAAA,MAAM,CAACqG,gBAAP,CAAwB,QAAxB,EAAkC6C,MAAlC;EACA/J,MAAAA,QAAQ,CAACwH,aAAT,CAAuB,WAAvB,EAAoC8C,kBAApC,CAAuD,aAAvD,EAAsEF,IAAtE;EACApK,MAAAA,QAAQ,CAACwH,aAAT,CAAuB,WAAvB,EAAoC8C,kBAApC,CAAuD,YAAvD,EAAqEjB,IAArE;EACAU,MAAAA,MAAM;EACP;;;aAED,gBAAO;EAAA;;EACL/J,MAAAA,QAAQ,CAAC0J,IAAT,CAAc5C,SAAd,CAAwBE,GAAxB,CAA4B,YAA5B;EACA/E,MAAAA,SAAS,CAACjC,QAAQ,CAAC0J,IAAV,EAAgB,KAAhB,EAAuB,UAAvB,CAAT;EACA/G,MAAAA,SAAS,CAAC,KAAK6B,OAAN,EAAe,UAAAhN,GAAG;EAAA,eAAI,MAAI,CAACgS,mBAAL,CAAyBhS,GAAzB,EAA8BoM,SAAS,CAACpM,GAAD,CAAvC,CAAJ;EAAA,OAAlB,CAAT;EACAqL,MAAAA,QAAQ,CAAC,KAAK6C,SAAN,EAAiB,UAAAmB,OAAO;EAAA,eAAIA,OAAO,CAAC8C,KAAR,CAAcY,OAAd,GAAwB,MAA5B;EAAA,OAAxB,CAAR;EAEAvK,MAAAA,QAAQ,CAAC2F,gBAAT,CAA0B,KAA1B,EACG3L,OADH,CACW,UAAA6M,OAAO,EAAI;EAClB,YAAIA,OAAO,CAACC,SAAR,CAAkBgD,QAAlB,CAA2B,SAA3B,CAAJ,EAA2C;EACzCjD,UAAAA,OAAO,CAACC,SAAR,CAAkBC,MAAlB,CAAyB,SAAzB;EACD;EACF,OALH;EAOA/G,MAAAA,QAAQ,CAAC2F,gBAAT,CAA0B,QAA1B,EACG3L,OADH,CACW,UAAA6M,OAAO,EAAI;EAClB,YAAIA,OAAO,CAACC,SAAR,CAAkBgD,QAAlB,CAA2B,sBAA3B,CAAJ,EAAwD;EACtDjD,UAAAA,OAAO,CAACC,SAAR,CAAkBC,MAAlB,CAAyB,sBAAzB;EACD;EACF,OALH;EAMD;;;aAED,mBAAU;EACR,UAAIyD,QAAQ,GAAGxK,QAAQ,CAACwH,aAAT,CAAuB,YAAvB,CAAf;EACA,UAAIiD,OAAO,GAAGzK,QAAQ,CAACwH,aAAT,CAAuB,WAAvB,CAAd;EACA,UAAIkD,eAAe,GAAG1K,QAAQ,CAACwH,aAAT,CAAuB,qBAAvB,CAAtB;;EAEA,UAAIgD,QAAJ,EAAc;EACZA,QAAAA,QAAQ,CAACzD,MAAT;EACD;;EAED,UAAI0D,OAAJ,EAAa;EACXnI,QAAAA,MAAM,CAACmI,OAAD,CAAN;EACD;;EAED,UAAIC,eAAJ,EAAqB;EACnBA,QAAAA,eAAe,CAAC3D,MAAhB;EACD;;EAED,WAAKM,OAAL,WAAgB,KAAKzB,KAAL,CAAW0B,CAAX,CAAa,UAAb,CAAhB;;EAEAtH,MAAAA,QAAQ,CAAC0J,IAAT,CAAc5C,SAAd,CAAwBC,MAAxB,CAA+B,YAA/B;EAEAlE,MAAAA,QAAQ,CAAC,KAAK6C,SAAN,EAAiB,UAAAmB,OAAO;EAAA,eAAIA,OAAO,CAAC8C,KAAR,CAAcY,OAAd,GAAwB,EAA5B;EAAA,OAAxB,CAAR;;EAEA,UAAIxI,eAAe,CAAC6B,SAAS,CAAC,QAAD,CAAV,CAAnB,EAA0C;EACxC5D,QAAAA,QAAQ,CAAC0D,QAAT,CAAkB2B,MAAlB;EACD;;EAED1C,MAAAA,SAAS,CAAC,KAAK6B,OAAN,EAAe,UAAAhN,GAAG,EAAI;EAC7B4M,QAAAA,YAAY,CAAC5M,GAAD,CAAZ;EACD,OAFQ,CAAT;;EAIA,WAAK6O,aAAL;;EAEAjC,MAAAA,YAAY,CAAC,aAAD,CAAZ;EACD;;;aAED,mBAAU;EACRpE,MAAAA,QAAQ,CAAC2F,gBAAT,CAA0B,KAA1B,EAAiC3L,OAAjC,CAAyC,UAAA6M,OAAO,EAAI;EAClD,YAAI,CAACA,OAAO,CAACC,SAAR,CAAkBgD,QAAlB,CAA2B,cAA3B,CAAL,EAAiD;EAC/CjD,UAAAA,OAAO,CAACC,SAAR,CAAkBE,GAAlB,CAAsB,SAAtB;EACD;EACF,OAJD;EAMAhH,MAAAA,QAAQ,CAAC2F,gBAAT,CAA0B,aAA1B,EAAyC3L,OAAzC,CAAiD,UAAA6M,OAAO,EAAI;EAC1D,YAAI8C,KAAK,GAAGgB,gBAAgB,CAAC9D,OAAD,CAA5B;;EACA,YAAI8C,KAAK,CAACiB,eAAN,KAA0B,MAA1B,IAAoCjB,KAAK,CAACkB,UAAN,KAAqB,MAAzD,IAAmE,CAAChE,OAAO,CAACC,SAAR,CAAkBgD,QAAlB,CAA2B,cAA3B,CAAxE,EAAoH;EAClHjD,UAAAA,OAAO,CAACC,SAAR,CAAkBE,GAAlB,CAAsB,sBAAtB;EACD;EACF,OALD;EAMD;;;aAED,oBAAWzF,MAAX,EAAmB;EACjBA,MAAAA,MAAM,qCAAOkD,OAAP,GAAmBlD,MAAnB,CAAN;EACA,UAAIuJ,QAAQ,GAAG,EAAf;;EAEA,WAAK,IAAIC,UAAT,IAAuBtG,OAAvB,EAAgC;EAC9BqG,QAAAA,QAAQ,CAACC,UAAD,CAAR,GAAuBxJ,MAAM,CAACwJ,UAAD,CAA7B;EACD;;EAEDzJ,MAAAA,WAAW,CAACwJ,QAAD,EAAWxF,WAAX,EAAwBC,cAAxB,CAAX;EAEA,aAAOuF,QAAP;EACD;;;aAED,+BAA2C;EAAA,UAAvBxQ,IAAuB,uEAAhB,EAAgB;EAAA,UAAZ7C,KAAY,uEAAJ,EAAI;EACzCuI,MAAAA,QAAQ,CAACwH,aAAT,CAAuB,WAAvB,EAAoCwD,YAApC,oBAA6D1Q,IAA7D,GAAqE7C,KAArE;EACD;;;aAED,yBAAgB;EAAA;;EACd,UAAIwT,kBAAkB,GAAGjL,QAAQ,CAAC2F,gBAAT,CAA0B,kBAA1B,CAAzB;EACA,UAAIuF,kBAAkB,GAAGlL,QAAQ,CAAC2F,gBAAT,CAA0B,kBAA1B,CAAzB;EACA,UAAIwF,iBAAiB,GAAGnL,QAAQ,CAAC2F,gBAAT,CAA0B,aAA1B,CAAxB;;EAEA,UAAI,qBAAqB9E,MAArB,IAA+BkB,eAAe,CAAC6B,SAAS,CAAC,QAAD,CAAV,CAAlD,EAAyE;EAEvE,YAAIuH,iBAAJ,EAAuB;EACrB,cAAIF,kBAAJ,EAAwB;EACtBA,YAAAA,kBAAkB,CAACjR,OAAnB,CAA2B,UAAA6M,OAAO;EAAA,qBAAIvE,MAAM,CAACuE,OAAD,CAAV;EAAA,aAAlC;EACD;;EAED,cAAIqE,kBAAJ,EAAwB;EACtBA,YAAAA,kBAAkB,CAAClR,OAAnB,CAA2B,UAAA6M,OAAO;EAAA,qBAAIA,OAAO,CAACE,MAAR,EAAJ;EAAA,aAAlC;EACD;;EAEDoE,UAAAA,iBAAiB,CAACnR,OAAlB,CAA0B,UAACoR,cAAD,EAAiBC,KAAjB,EAA2B;EACnD,gBAAIC,EAAE,gCAAyBD,KAAK,GAAG,CAAjC,CAAN;EACA,gBAAIjB,IAAI,syBAAR;EAQAnI,YAAAA,SAAS,CAACmJ,cAAD,EAAiB,KAAjB,4BAA2CE,EAA3C,EAAT;EACAF,YAAAA,cAAc,CAACd,kBAAf,CAAkC,YAAlC,EAAgDF,IAAhD;EACD,WAZD;EAcA,cAAImB,YAAY,GAAGvL,QAAQ,CAAC2F,gBAAT,CAA0B,kBAA1B,CAAnB;EACA,cAAI6F,aAAa,GAAGxL,QAAQ,CAAC2F,gBAAT,CAA0B,mBAA1B,CAApB;EACA,cAAI8F,cAAc,GAAGzL,QAAQ,CAAC2F,gBAAT,CAA0B,oBAA1B,CAArB;EACA,cAAI+F,YAAY,GAAG1L,QAAQ,CAAC2F,gBAAT,CAA0B,kBAA1B,CAAnB;;EACA,cAAMgB,EAAE,GAAG,SAALA,EAAK,CAACC,QAAD,EAAWhE,QAAX,EAAwB;EACjCgE,YAAAA,QAAQ,CAAC5M,OAAT,CAAiB,UAAA6M,OAAO,EAAI;EAC1BA,cAAAA,OAAO,CAACK,gBAAR,CAAyB,OAAzB,EAAkC,UAAAC,KAAK,EAAI;EACzCA,gBAAAA,KAAK,CAACC,cAAN;;EACA,oBAAI,OAAOxE,QAAP,KAAoB,UAAxB,EAAoC;EAClC,yBAAOA,QAAQ,CAACiE,OAAD,EAAUM,KAAV,CAAf;EACD;EACF,eALD,EAKG,KALH;EAMD,aAPD;EAQD,WATD;;EAWAR,UAAAA,EAAE,CAAC4E,YAAD,EAAe,UAAC1E,OAAD,EAAUM,KAAV,EAAoB;EACnC,gBAAIzC,MAAM,GAAGyC,KAAK,CAACzC,MAAnB;EACA,gBAAIiH,IAAI,GAAGjH,MAAM,CAACjC,UAAP,CAAkBmJ,kBAA7B;EACA,gBAAIC,OAAO,GAAG1E,KAAK,CAACzC,MAAN,CAAamH,OAAb,CAAqB,kBAArB,CAAd;EACA,gBAAIrF,IAAI,GAAGxG,QAAQ,CAAC2F,gBAAT,CAA0B,kBAA1B,CAAX;EACA,gBAAIc,KAAK,GAAGzG,QAAQ,CAAC2F,gBAAT,CAA0B,mBAA1B,CAAZ;EACA,gBAAIe,MAAM,GAAG1G,QAAQ,CAAC2F,gBAAT,CAA0B,oBAA1B,CAAb;EACA,gBAAItH,IAAI,GAAG2B,QAAQ,CAAC2F,gBAAT,CAA0B,kBAA1B,CAAX;;EAEA,YAAA,MAAI,CAAC0B,OAAL,CAAasE,IAAI,CAACG,WAAlB,EAA+BH,IAA/B,EAAqC,IAArC;;EAEAnF,YAAAA,IAAI,CAACxM,OAAL,CAAa,UAAA6M,OAAO;EAAA,qBAAIA,OAAO,CAACC,SAAR,CAAkBC,MAAlB,CAAyB,UAAzB,CAAJ;EAAA,aAApB;EACAN,YAAAA,KAAK,CAACzM,OAAN,CAAc,UAAA6M,OAAO;EAAA,qBAAIA,OAAO,CAACC,SAAR,CAAkBE,GAAlB,CAAsB,UAAtB,CAAJ;EAAA,aAArB;EACAN,YAAAA,MAAM,CAAC1M,OAAP,CAAe,UAAA6M,OAAO;EAAA,qBAAIA,OAAO,CAACC,SAAR,CAAkBE,GAAlB,CAAsB,UAAtB,CAAJ;EAAA,aAAtB;EACA3I,YAAAA,IAAI,CAACrE,OAAL,CAAa,UAAA6M,OAAO;EAAA,qBAAIA,OAAO,CAACC,SAAR,CAAkBE,GAAlB,CAAsB,UAAtB,CAAJ;EAAA,aAApB;EAEAtC,YAAAA,MAAM,CAACoC,SAAP,CAAiBE,GAAjB,CAAqB,UAArB;EACA6E,YAAAA,OAAO,CAACrE,aAAR,CAAsB,mBAAtB,EAA2CV,SAA3C,CAAqDC,MAArD,CAA4D,UAA5D;EACA8E,YAAAA,OAAO,CAACrE,aAAR,CAAsB,kBAAtB,EAA0CV,SAA1C,CAAoDC,MAApD,CAA2D,UAA3D;EACD,WAnBC,CAAF;EAqBAJ,UAAAA,EAAE,CAAC6E,aAAD,EAAgB,UAAC3E,OAAD,EAAUM,KAAV,EAAoB;EACpC,gBAAIzC,MAAM,GAAGyC,KAAK,CAACzC,MAAnB;EACA,gBAAImH,OAAO,GAAG1E,KAAK,CAACzC,MAAN,CAAamH,OAAb,CAAqB,kBAArB,CAAd;EAEAnH,YAAAA,MAAM,CAACoC,SAAP,CAAiBE,GAAjB,CAAqB,UAArB;EACA6E,YAAAA,OAAO,CAACrE,aAAR,CAAsB,oBAAtB,EAA4CV,SAA5C,CAAsDC,MAAtD,CAA6D,UAA7D;EACA/D,YAAAA,KAAK,GAAGyD,KAAR;EACD,WAPC,CAAF;EASAE,UAAAA,EAAE,CAAC8E,cAAD,EAAiB,UAAC5E,OAAD,EAAUM,KAAV,EAAoB;EACrC,gBAAIzC,MAAM,GAAGyC,KAAK,CAACzC,MAAnB;EACA,gBAAImH,OAAO,GAAG1E,KAAK,CAACzC,MAAN,CAAamH,OAAb,CAAqB,kBAArB,CAAd;EAEAnH,YAAAA,MAAM,CAACoC,SAAP,CAAiBE,GAAjB,CAAqB,UAArB;EACA6E,YAAAA,OAAO,CAACrE,aAAR,CAAsB,mBAAtB,EAA2CV,SAA3C,CAAqDC,MAArD,CAA4D,UAA5D;EACA/D,YAAAA,KAAK,GAAG0D,MAAR;EACD,WAPC,CAAF;EASAC,UAAAA,EAAE,CAAC+E,YAAD,EAAe,UAAC7E,OAAD,EAAUM,KAAV,EAAoB;EACnC,gBAAIzC,MAAM,GAAGyC,KAAK,CAACzC,MAAnB;EACA,gBAAImH,OAAO,GAAG1E,KAAK,CAACzC,MAAN,CAAamH,OAAb,CAAqB,kBAArB,CAAd;EAEAnH,YAAAA,MAAM,CAACoC,SAAP,CAAiBE,GAAjB,CAAqB,UAArB;EACA6E,YAAAA,OAAO,CAACrE,aAAR,CAAsB,mBAAtB,EAA2CV,SAA3C,CAAqDE,GAArD,CAAyD,UAAzD;EACA6E,YAAAA,OAAO,CAACrE,aAAR,CAAsB,kBAAtB,EAA0CV,SAA1C,CAAoDC,MAApD,CAA2D,UAA3D;EACA/D,YAAAA,KAAK,GAAG+I,MAAR;EACD,WARC,CAAF;EASD;EACF,OAzFD,MAyFO;EACL,YAAId,kBAAJ,EAAwB;EACtBA,UAAAA,kBAAkB,CAACjR,OAAnB,CAA2B,UAAA6M,OAAO;EAAA,mBAAIvE,MAAM,CAACuE,OAAD,CAAV;EAAA,WAAlC;EACD;;EAED,YAAIqE,kBAAJ,EAAwB;EACtBA,UAAAA,kBAAkB,CAAClR,OAAnB,CAA2B,UAAA6M,OAAO;EAAA,mBAAIA,OAAO,CAACE,MAAR,EAAJ;EAAA,WAAlC;EACD;EACF;EACF;;;aAED,iBAAQ4E,IAAR,EAAc9E,OAAd,EAAqC;EAAA;;EAAA,UAAdmF,IAAc,uEAAP,KAAO;;EACnC,UAAI,qBAAqBnL,MAArB,IAA+BkB,eAAe,CAAC6B,SAAS,CAAC,QAAD,CAAV,CAAlD,EAAyE;EACvEZ,QAAAA,KAAK,GAAG+I,MAAR;;EACA,YAAME,SAAS,GAAG,SAAZA,SAAY,CAACC,GAAD,EAAMC,GAAN,EAAc;EAC9BD,UAAAA,GAAG,GAAG3L,MAAM,CAAC2L,GAAD,CAAZ;EACAC,UAAAA,GAAG,GAAGC,MAAM,CAACD,GAAD,CAAN,KAAgB,CAAtB;EAEA,cAAIE,IAAI,GAAGH,GAAG,CAAC9N,KAAJ,CAAU,CAAV,EAAa+N,GAAG,GAAG,CAAnB,EAAsBG,MAAtB,CAA6B,MAA7B,CAAX;EACA,cAAIC,KAAK,GAAGL,GAAG,CAAC9N,KAAJ,CAAU+N,GAAV,EAAeG,MAAf,CAAsB,IAAtB,CAAZ;;EAEA,cAAIC,KAAK,GAAG,CAAZ,EAAe;EACb,mBAAOL,GAAG,CAAC9N,KAAJ,CAAUiO,IAAV,CAAP;EACD;;EACD,iBAAOH,GAAG,CAAC9N,KAAJ,CAAUiO,IAAV,EAAgBE,KAAK,GAAGJ,GAAxB,CAAP;EACD,SAXD;;EAaA,YAAIK,WAAW,GAAG,GAAlB;EACA,YAAIC,YAAY,GAAG,IAAI7K,MAAJ,CAAW,eAAe8K,IAAI,CAACC,KAAL,CAAWH,WAAW,GAAG,CAAzB,CAAf,GAA6C,GAA7C,GAAmDA,WAAnD,GAAiE,yBAAjE,GAA6FA,WAA7F,GAA2G,iBAA3G,GAA+HA,WAA/H,GAA6I,IAAxJ,CAAnB;EACA,YAAI1J,KAAK,GAAG,EAAZ;EACA,YAAI8J,KAAK,GAAGjB,IAAZ;EACA,YAAIkB,MAAM,GAAG7J,KAAK,GAAG8J,SAAR,EAAb;;EAEA,eAAOF,KAAK,CAACjP,MAAN,GAAe,CAAtB,EAAyB;EACvBmF,UAAAA,KAAK,CAAC1F,IAAN,CAAWwP,KAAK,CAAC1L,KAAN,CAAYuL,YAAZ,EAA0B,CAA1B,CAAX;EACAG,UAAAA,KAAK,GAAGA,KAAK,CAACzI,SAAN,CAAgBrB,KAAK,CAACA,KAAK,CAACnF,MAAN,GAAe,CAAhB,CAAL,CAAwBA,MAAxC,CAAR;EACD;;EAEDmF,QAAAA,KAAK,CAAC9I,OAAN,CAAc,UAAA+S,OAAO,EAAI;EACvB,cAAIC,KAAK,GAAG,IAAIC,wBAAJ,CAA6BF,OAAO,CAAC9I,IAAR,EAA7B,CAAZ;EACA+I,UAAAA,KAAK,CAACE,MAAN,GAAe,CAAf;EACAF,UAAAA,KAAK,CAACG,IAAN,GAAa,CAAb;EACAH,UAAAA,KAAK,CAACI,KAAN,GAAc,CAAd;EACAJ,UAAAA,KAAK,CAAC3I,IAAN,GAAa,MAAI,CAACG,OAAL,CAAaH,IAA1B;;EAEA,eAAK,IAAIrG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6O,MAAM,CAAClP,MAA3B,EAAmCK,CAAC,EAApC,EAAwC;EACtC,gBAAI,MAAI,CAACwG,OAAL,CAAaH,IAAb,KAAsB,OAAtB,IAAiCwI,MAAM,CAAC7O,CAAD,CAAN,CAAU1D,IAAV,KAAmB,oCAAxD,EAA8F;EAC5F0S,cAAAA,KAAK,CAACK,KAAN,GAAcR,MAAM,CAAC7O,CAAD,CAApB;EACD;;EAED,gBAAI,MAAI,CAACwG,OAAL,CAAaH,IAAb,KAAsB,OAAtB,IAAiCwI,MAAM,CAAC7O,CAAD,CAAN,CAAU1D,IAAV,KAAmB,qCAAxD,EAA+F;EAC7F0S,cAAAA,KAAK,CAACK,KAAN,GAAcR,MAAM,CAAC7O,CAAD,CAApB;EACD;EACF;;EAED,cAAIgO,IAAJ,EAAU;EACRgB,YAAAA,KAAK,CAACM,UAAN,GAAmB,UAAAnG,KAAK,EAAI;EAE1BN,cAAAA,OAAO,CAACC,SAAR,CAAkBE,GAAlB,CAAsB,kBAAtB;EACA,kBAAIuG,KAAK,GAAGtB,SAAS,CAAC9E,KAAK,CAACqG,SAAN,CAAgB7B,IAAjB,EAAuBxE,KAAK,CAACsG,SAA7B,CAArB;EACA,kBAAI3B,WAAW,GAAGjF,OAAO,CAACiF,WAA1B;EACA,kBAAI4B,IAAI,GAAGH,KAAK,CAACI,OAAN,CAAc,OAAd,EAAuB,0BAAvB,CAAX;EACA,kBAAIC,OAAO,GAAG,IAAIhM,MAAJ,CAAW,MAAM8L,IAAN,GAAa,GAAxB,EAA6B,IAA7B,CAAd;EACA5B,cAAAA,WAAW,GAAGA,WAAW,CAAC6B,OAAZ,CAAoBC,OAApB,EAA6B,iBAA7B,CAAd;EACA9B,cAAAA,WAAW,GAAGA,WAAW,CAAC6B,OAAZ,CAAoB,4CAApB,EAAkE,qBAAlE,CAAd;EACA9G,cAAAA,OAAO,CAACgH,SAAR,GAAoB/B,WAApB;EACD,aAVD;;EAYAkB,YAAAA,KAAK,CAACc,KAAN,GAAc,UAAA3G,KAAK,EAAI;EACrBN,cAAAA,OAAO,CAACC,SAAR,CAAkBC,MAAlB,CAAyB,kBAAzB;EACA,kBAAI+E,WAAW,GAAGjF,OAAO,CAACiF,WAA1B;EACAA,cAAAA,WAAW,GAAGA,WAAW,CAAC6B,OAAZ,CAAoB,oBAApB,EAA0C,IAA1C,CAAd;EACA9G,cAAAA,OAAO,CAACgH,SAAR,GAAoB/B,WAApB;EACD,aALD;EAMD;;EAED9I,UAAAA,KAAK,GAAG+K,KAAR,CAAcf,KAAd;EACD,SAvCD;EAwCD;EACF;;;;;;ECt2BH;EACA;EACA;EACA;EACA;EACA;AAMA,kBAAe;EAAExH,EAAAA,GAAG,EAAHA;EAAF,CAAf;;;;;;;;"}